Skip to content

Commit d4d20c8

Browse files
authored
Merge pull request #26 from lutraconsulting/geodiff_import
geodiff dist
2 parents 84edc2c + 4b0d59e commit d4d20c8

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@
33
Repo for [mergin](https://public.cloudmergin.com/) client and basic utils.
44

55
## Development
6-
Python 3.6+ required. Install dependencies:
7-
6+
Python 3.6+ required. Create `mergin/deps` folder where [geodiff](https://github.com/lutraconsulting/geodiff) lib is supposed to be and install dependencies:
7+
8+
mkdir -p mergin/deps
89
pipenv install --dev --three
10+
pipenv run pip install -r <(pipenv lock -r | grep pygeodiff) --target mergin/deps
911

1012
For using mergin client with its dependencies packaged locally run:
1113

1214
pip install wheel
1315
python3 setup.py sdist bdist_wheel
1416
mkdir -p mergin/deps
1517
pip wheel -r mergin_client.egg-info/requires.txt -w mergin/deps
16-
18+
unzip mergin/deps/pygeodiff-*.whl -d mergin/deps
1719

1820
## Tests
1921
For running test do:

mergin/client.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
try:
2121
import dateutil.parser
2222
from dateutil.tz import tzlocal
23-
import pygeodiff
2423
except ImportError:
2524
# this is to import all dependencies shipped with package (e.g. to use in qgis-plugin)
2625
deps_dir = os.path.join(this_dir, 'deps')
@@ -31,7 +30,11 @@
3130

3231
import dateutil.parser
3332
from dateutil.tz import tzlocal
34-
import pygeodiff
33+
34+
try:
35+
from .deps import pygeodiff
36+
except ImportError:
37+
os.environ['GEODIFF_ENABLED'] = 'False'
3538

3639
CHUNK_SIZE = 100 * 1024 * 1024
3740
# there is an upper limit for chunk size on server, ideally should be requested from there once implemented
@@ -60,7 +63,15 @@ def __init__(self, directory):
6063
if not os.path.exists(self.dir):
6164
raise InvalidProject('Project directory does not exist')
6265

63-
self.geodiff = pygeodiff.GeoDiff() if os.environ.get('GEODIFF_ENABLED', 'True').lower() == 'true' else None
66+
# make sure we can load correct pygeodiff
67+
if os.environ.get('GEODIFF_ENABLED', 'True').lower() == 'true':
68+
try:
69+
self.geodiff = pygeodiff.GeoDiff()
70+
except pygeodiff.geodifflib.GeoDiffLibVersionError:
71+
self.geodiff = None
72+
else:
73+
self.geodiff = None
74+
6475
self.meta_dir = os.path.join(self.dir, '.mergin')
6576
if not os.path.exists(self.meta_dir):
6677
os.mkdir(self.meta_dir)

0 commit comments

Comments
 (0)