ellipsis 3.1.4__tar.gz → 3.1.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ellipsis might be problematic. Click here for more details.

Files changed (66) hide show
  1. {ellipsis-3.1.4 → ellipsis-3.1.6}/PKG-INFO +1 -1
  2. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/__init__.py +1 -1
  3. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/root.py +3 -2
  4. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/file/root.py +1 -1
  5. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/root.py +1 -1
  6. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/root.py +4 -16
  7. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/root.py +2 -2
  8. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/sanitize.py +19 -0
  9. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/util/root.py +1 -1
  10. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/PKG-INFO +1 -1
  11. {ellipsis-3.1.4 → ellipsis-3.1.6}/setup.py +1 -1
  12. {ellipsis-3.1.4 → ellipsis-3.1.6}/test/test.py +2 -0
  13. {ellipsis-3.1.4 → ellipsis-3.1.6}/LICENSE +0 -0
  14. {ellipsis-3.1.4 → ellipsis-3.1.6}/README.md +0 -0
  15. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/__init__.py +0 -0
  16. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/accessToken/__init__.py +0 -0
  17. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/accessToken/root.py +0 -0
  18. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/root.py +0 -0
  19. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/apiManager.py +0 -0
  20. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/__init__.py +0 -0
  21. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/file/__init__.py +0 -0
  22. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/file/root.py +0 -0
  23. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/folder/__init__.py +0 -0
  24. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/folder/root.py +0 -0
  25. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/hashtag/__init__.py +0 -0
  26. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/hashtag/root.py +0 -0
  27. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/invite/__init__.py +0 -0
  28. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/invite/root.py +0 -0
  29. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/member/__init__.py +0 -0
  30. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/member/root.py +0 -0
  31. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/__init__.py +0 -0
  32. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/style/__init__.py +0 -0
  33. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/style/root.py +0 -0
  34. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/__init__.py +0 -0
  35. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/file/__init__.py +0 -0
  36. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/order/__init__.py +0 -0
  37. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/order/root.py +0 -0
  38. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/root.py +0 -0
  39. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/usage/__init__.py +0 -0
  40. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/usage/root.py +0 -0
  41. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/__init__.py +0 -0
  42. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/featureProperty/__init__.py +0 -0
  43. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/featureProperty/root.py +0 -0
  44. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/root.py +0 -0
  45. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/style/__init__.py +0 -0
  46. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/style/root.py +0 -0
  47. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/__init__.py +0 -0
  48. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/__init__.py +0 -0
  49. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/message/__init__.py +0 -0
  50. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/message/root.py +0 -0
  51. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/series/__init__.py +0 -0
  52. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/series/root.py +0 -0
  53. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/file/__init__.py +0 -0
  54. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/file/root.py +0 -0
  55. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/order/__init__.py +0 -0
  56. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/order/root.py +0 -0
  57. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/user/__init__.py +0 -0
  58. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/user/root.py +0 -0
  59. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/util/__init__.py +0 -0
  60. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/view/__init__.py +0 -0
  61. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/view/root.py +0 -0
  62. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/SOURCES.txt +0 -0
  63. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/dependency_links.txt +0 -0
  64. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/requires.txt +0 -0
  65. {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/top_level.txt +0 -0
  66. {ellipsis-3.1.4 → ellipsis-3.1.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ellipsis
3
- Version: 3.1.4
3
+ Version: 3.1.6
4
4
  Summary: Package to interact with the Ellipsis API
5
5
  Home-page: https://github.com/ellipsis-drive-internal/python-package
6
6
  Author: Daniel van der Maas
@@ -7,4 +7,4 @@ from ellipsis import path
7
7
  from ellipsis import view
8
8
  from ellipsis import util
9
9
 
10
- __version__ = '3.1.4'
10
+ __version__ = '3.1.6'
@@ -24,14 +24,15 @@ def editBand(pathId, bandNumber, name, token):
24
24
  return(r)
25
25
 
26
26
  # /path/{pathId}/raster
27
- def edit(pathId, token, interpolation = None, includesTransparent = None):
27
+ def edit(pathId, token, interpolation = None, includesTransparent = None, compressionQuality = None):
28
28
 
29
29
  token = sanitize.validString('token', token, True)
30
30
  pathId = sanitize.validUuid('pathId', pathId, True)
31
31
  interpolation = sanitize.validString('interpolation', interpolation, False)
32
32
  includesTransparent = sanitize.validBool('includesTransparent', includesTransparent, False)
33
+ compressionQuality = sanitize.validInt('compressionQuality', compressionQuality, False)
33
34
 
34
- body = {'interpolation':interpolation, 'includesTransparent':includesTransparent}
35
+ body = {'interpolation':interpolation, 'includesTransparent':includesTransparent, 'compressionQuality':compressionQuality}
35
36
  r = apiManager.patch('/path/' + pathId + '/raster' , body, token)
36
37
  return(r)
37
38
 
@@ -29,7 +29,7 @@ def get(pathId, timestampId, token, pageStart= None, listAll = True):
29
29
  pageStart = sanitize.validUuid('pageStart', pageStart, False)
30
30
 
31
31
  def f(body):
32
- r = apiManager.get('/path/' + pathId + '/raster/timestamp/' + timestampId + '/file', None, token)
32
+ r = apiManager.get('/path/' + pathId + '/raster/timestamp/' + timestampId + '/file', body, token)
33
33
  for i in np.arange( len(r['result'])):
34
34
  if 'info' in r['result'][i].keys() and 'bounds' in r['result'][i]['info'].keys() and type(r['result'][i]['info']['bounds']) != type(None):
35
35
  r['result'][i]['info']['bounds'] = gpd.GeoDataFrame.from_features([{'id': 0, 'properties':{}, 'geometry':r['result'][i]['info']['bounds']}]).unary_union
@@ -26,7 +26,7 @@ def search(pathTypes = ['raster', 'vector', 'file', 'folder'] ,root=None, text=N
26
26
  date = sanitize.validDateRange('date', date, False)
27
27
 
28
28
 
29
- resolution = sanitize.validFloatArray('resolution', resolution, False)
29
+ resolution = sanitize.validResolution('resolution', resolution, False)
30
30
 
31
31
  body = {
32
32
  'type': pathTypes,
@@ -76,12 +76,11 @@ def zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, le
76
76
  levels = None
77
77
  return levels
78
78
 
79
- def add(pathId, timestampId, features, token, showProgress = True, zoomLevels = None, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
79
+ def add(pathId, timestampId, features, token, showProgress = True, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
80
80
  pathId = sanitize.validUuid('pathId', pathId, True)
81
81
  timestampId = sanitize.validUuid('timestampId', timestampId, True)
82
82
  token = sanitize.validString('token', token, True)
83
83
  features = sanitize.validGeopandas('features', features, True, cores = cores)
84
- zoomLevels = sanitize.validIntArray('zoomLevels', zoomLevels, False)
85
84
  showProgress = sanitize.validBool('showProgress', showProgress, True)
86
85
  cores = sanitize.validInt('cores', cores, True)
87
86
 
@@ -127,9 +126,9 @@ def add(pathId, timestampId, features, token, showProgress = True, zoomLevels =
127
126
  levels = zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, levelOfDetail5, indices_sub)
128
127
 
129
128
  if type(levels) != type(None):
130
- featuresBody = [{'feature': features_sub[i], 'zoomLevels':zoomLevels, 'levelsOfDetail': levels[i] } for i in np.arange(len(indices_sub))]
129
+ featuresBody = [{'feature': features_sub[i], 'levelsOfDetail': levels[i] } for i in np.arange(len(indices_sub))]
131
130
  else:
132
- featuresBody = [{'feature': features_sub[i], 'zoomLevels':zoomLevels } for i in np.arange(len(indices_sub))]
131
+ featuresBody = [{'feature': features_sub[i] } for i in np.arange(len(indices_sub))]
133
132
  body = {"features":featuresBody}
134
133
  r = apiManager.post('/path/' + pathId + '/vector/timestamp/' + timestampId + '/feature', body, token)
135
134
  addedIds = addedIds + r
@@ -141,12 +140,11 @@ def add(pathId, timestampId, features, token, showProgress = True, zoomLevels =
141
140
 
142
141
 
143
142
 
144
- def edit(pathId, timestampId, featureIds, token, features = None, showProgress = True, newZoomLevels = None, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
143
+ def edit(pathId, timestampId, featureIds, token, features = None, showProgress = True, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
145
144
  pathId = sanitize.validUuid('pathId', pathId, True)
146
145
  timestampId = sanitize.validUuid('timestampId', timestampId, True)
147
146
  token = sanitize.validString('token', token, True)
148
147
  features = sanitize.validGeopandas('features', features, False, cores=cores)
149
- newZoomLevels = sanitize.validIntArray('newZoomLevels', newZoomLevels, False)
150
148
  featureIds = sanitize.validUuidArray('featureIds', featureIds, True)
151
149
  showProgress = sanitize.validBool('showProgress', showProgress, True)
152
150
  cores = sanitize.validInt('cores', cores, True)
@@ -172,18 +170,8 @@ def edit(pathId, timestampId, featureIds, token, features = None, showProgress =
172
170
  levels = zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, levelOfDetail5, indices_sub)
173
171
 
174
172
  if type(levels) == type(None):
175
- if str(type(newZoomLevels)) != str(type(None)) and str(type(features)) != str(type(None)):
176
- changes = [{'featureId':x[0] , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry'], 'newZoomLevels':newZoomLevels} for x in zip(featureIds_sub, features_sub['features'])]
177
- elif str(type(newZoomLevels)) != str(type(None)) and str(type(features)) == str(type(None)):
178
- changes = [{'featureId':geometryId, 'newZoomLevels':newZoomLevels} for geometryId in featureIds]
179
- else:
180
173
  changes = [{'featureId':x[0] , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry']} for x in zip(featureIds_sub, features_sub['features'])]
181
174
  else:
182
- if str(type(newZoomLevels)) != str(type(None)) and str(type(features)) != str(type(None)):
183
- changes = [{'featureId':x[0] , 'levelsOfDetail': levels , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry'], 'newZoomLevels':newZoomLevels} for x in zip(featureIds_sub, features_sub['features'])]
184
- elif str(type(newZoomLevels)) != str(type(None)) and str(type(features)) == str(type(None)):
185
- changes = [{'featureId':geometryId, 'levelsOfDetail': levels, 'newZoomLevels':newZoomLevels} for geometryId in featureIds]
186
- else:
187
175
  changes = [{'featureId':x[0], 'levelsOfDetail': levels , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry']} for x in zip(featureIds_sub, features_sub['features'])]
188
176
 
189
177
  body = {'changes':changes}
@@ -146,7 +146,7 @@ def getFeaturesByExtent(pathId, timestampId, extent, propertyFilter = None, toke
146
146
  extent = sanitize.validBounds('extent', extent, True)
147
147
  propertyFilter = sanitize.validObject('propertyFilter', propertyFilter, False)
148
148
  listAll = sanitize.validBool('listAll', listAll, True)
149
- pageStart = sanitize.validUuid('pageStart', pageStart, False)
149
+ pageStart = sanitize.validObject('pageStart', pageStart, False)
150
150
 
151
151
  p = geometry.Polygon( [(extent['xMin'], extent['yMin']), (extent['xMin'], extent['yMax']),(extent['xMax'], extent['yMax']),(extent['xMax'], extent['yMin'])] )
152
152
  p = gpd.GeoDataFrame({'geometry':[p]})
@@ -195,7 +195,7 @@ def listFeatures(pathId, timestampId, token = None, listAll = True, pageStart =
195
195
  timestampId = sanitize.validUuid('timestampId', timestampId, True)
196
196
  token = sanitize.validString('token', token, False)
197
197
  listAll = sanitize.validBool('listAll', listAll, True)
198
- pageStart = sanitize.validUuid('pageStart', pageStart, False)
198
+ pageStart = sanitize.validObject('pageStart', pageStart, False)
199
199
 
200
200
  body = {'pageStart': pageStart}
201
201
 
@@ -18,6 +18,25 @@ def validUuid(name, value, required):
18
18
  raise ValueError(name + ' must be of type string and be a uuid')
19
19
  return(value)
20
20
 
21
+ def validResolution(name, value, required):
22
+ if not required and type(value) == type(None):
23
+ return
24
+
25
+ if type(value) != type({}):
26
+ raise ValueError(name + ' must be of type dictionary with properties min and max as float')
27
+
28
+ if 'min' not in value.keys() or 'max' not in value.keys():
29
+ raise ValueError(name + ' must be of type dictionary with properties min and max as float')
30
+
31
+ try:
32
+ value = {'min': float(value['min']), 'max':float(value['max']) }
33
+ except:
34
+ raise ValueError(name + ' must be of type dictionary with properties min and max as float')
35
+
36
+ return(value)
37
+
38
+
39
+
21
40
  def validDateRange(name, value, required):
22
41
 
23
42
  if not required and type(value) == type(None):
@@ -29,7 +29,7 @@ warnings.simplefilter("ignore")
29
29
 
30
30
 
31
31
  def recurse(f, body, listAll, extraKey = None):
32
-
32
+
33
33
  r = f(body)
34
34
  if listAll:
35
35
  nextPageStart = r['nextPageStart']
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ellipsis
3
- Version: 3.1.4
3
+ Version: 3.1.6
4
4
  Summary: Package to interact with the Ellipsis API
5
5
  Home-page: https://github.com/ellipsis-drive-internal/python-package
6
6
  Author: Daniel van der Maas
@@ -6,7 +6,7 @@ with open("README.md", "r") as fh:
6
6
 
7
7
  setuptools.setup(
8
8
  name="ellipsis",
9
- version="3.1.4",
9
+ version="3.1.6",
10
10
  author="Daniel van der Maas",
11
11
  author_email="daniel@ellipsis-drive.com",
12
12
  description="Package to interact with the Ellipsis API",
@@ -274,6 +274,8 @@ yMax = bounds.bounds[3]
274
274
 
275
275
  bounds = {'xMin':xMin, 'xMax':xMax, 'yMin':yMin, 'yMax':yMax}
276
276
  sh = el.path.vector.timestamp.getFeaturesByExtent(pathId = mapId, timestampId = layerId, extent = bounds, token = token, listAll = False, epsg = 4326)
277
+ sh = el.path.vector.timestamp.getFeaturesByExtent(pathId = mapId, timestampId = layerId, extent = bounds, token = token, listAll = False, pageStart = sh['nextPageStart'], epsg = 4326)
278
+
277
279
  sh['result'].plot()
278
280
 
279
281
  sh = el.path.vector.timestamp.listFeatures(mapId, layerId, token)
File without changes
File without changes
File without changes
File without changes
File without changes