geobox 1.4.0__py3-none-any.whl → 1.4.1__py3-none-any.whl

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.
geobox/api.py CHANGED
@@ -29,7 +29,7 @@ from .route import Routing
29
29
  from .plan import Plan
30
30
  from .dashboard import Dashboard
31
31
  from .basemap import Basemap
32
- from .attachment import Attachment, AttachmentResourceType
32
+ from .attachment import Attachment
33
33
  from .apikey import ApiKey
34
34
  from .log import Log
35
35
  from .usage import Usage, UsageScale, UsageParam
@@ -2294,13 +2294,12 @@ class GeoboxClient:
2294
2294
  return Basemap.proxy_basemap(self, url)
2295
2295
 
2296
2296
 
2297
- def get_attachments(self, resource_type: AttachmentResourceType, resource_uuid: str, **kwargs) -> Union[List['Attachment'], int]:
2297
+ def get_attachments(self, resource: Union['Map', 'VectorLayer', 'VectorLayerView'], **kwargs) -> List['Attachment']:
2298
2298
  """
2299
- Get list of attachments with optional filtering and pagination.
2299
+ Get the resouces attachments
2300
2300
 
2301
2301
  Args:
2302
- resource_type (AttachmentResourceType): The resource type of the attachment. options are: Map, Vector, View
2303
- resource_uuid (str): The Resoource uuid of the attachment.
2302
+ resource (Map | VectorLayer | VectorLayerView): options are: Map, Vector, View objects
2304
2303
 
2305
2304
  Keyword Args:
2306
2305
  element_id (str): the id of the element with attachment.
@@ -2313,12 +2312,17 @@ class GeoboxClient:
2313
2312
  Returns:
2314
2313
  List[Attachment] | int: A list of attachments instances or the total number of attachments.
2315
2314
 
2315
+ Raises:
2316
+ TypeError: if the resource type is not supported
2317
+
2316
2318
  Example:
2317
2319
  >>> from geobox import GeoboxClient
2320
+ >>> from geobox.attachment import Attachment
2318
2321
  >>> client = GeoboxClient()
2319
- >>> attachments = client.get_attachments(q="name LIKE '%My attachment%'")
2322
+ >>> map = client.get_maps()[0]
2323
+ >>> attachments = client.get_attachments(resource=map)
2320
2324
  """
2321
- return Attachment.get_attachments(self, resource_type, resource_uuid, **kwargs)
2325
+ return Attachment.get_attachments(self, resource=resource, **kwargs)
2322
2326
 
2323
2327
 
2324
2328
  def create_attachment(self,
geobox/attachment.py CHANGED
@@ -3,7 +3,6 @@ from urllib.parse import urljoin
3
3
 
4
4
  from .base import Base
5
5
  from .utils import clean_data
6
- from .enums import AttachmentResourceType
7
6
  from .map import Map
8
7
  from .vectorlayer import VectorLayer
9
8
  from .view import VectorLayerView
@@ -56,14 +55,13 @@ class Attachment(Base):
56
55
 
57
56
 
58
57
  @classmethod
59
- def get_attachments(cls, api: 'GeoboxClient', resource_type: AttachmentResourceType, resource_uuid: str, **kwargs) -> Union[List['Attachment'], int]:
58
+ def get_attachments(cls, api: 'GeoboxClient', resource: Union['Map', 'VectorLayer', 'VectorLayerView'], **kwargs) -> Union[List['Attachment'], int]:
60
59
  """
61
60
  Get list of attachments with optional filtering and pagination.
62
61
 
63
62
  Args:
64
63
  api (GeoboxClient): The GeoboxClient instance for making requests.
65
- resource_type (AttachmentResourceType): The resource type of the attachment. options are: Map, Vector, View
66
- resource_uuid (str): The Resoource uuid of the attachment.
64
+ resource (Map | VectorLayer | VectorLayerView): options are: Map, Vector, View objects
67
65
 
68
66
  Keyword Args:
69
67
  element_id (str): the id of the element with attachment.
@@ -76,17 +74,34 @@ class Attachment(Base):
76
74
  Returns:
77
75
  List[Attachment] | int: A list of attachments instances or the total number of attachments.
78
76
 
77
+ Raises:
78
+ TypeError: if the resource type is not supported
79
+
79
80
  Example:
80
81
  >>> from geobox import GeoboxClient
81
82
  >>> from geobox.attachment import Attachment
82
83
  >>> client = GeoboxClient()
83
- >>> attachments = Attachment.get_attachments(client, q="name LIKE '%My attachment%'")
84
+ >>> map = client.get_maps()[0]
85
+ >>> attachments = Attachment.get_attachments(client, resource=map, q="name LIKE '%My attachment%'")
84
86
  or
85
- >>> attachments = client.get_attachments(q="name LIKE '%My attachment%'")
87
+ >>> attachments = client.get_attachments(resource=map, q="name LIKE '%My attachment%'")
86
88
  """
89
+ if type(resource) == VectorLayer:
90
+ resource_type = 'vector'
91
+
92
+ elif type(resource) == VectorLayerView:
93
+ resource_type = 'view'
94
+
95
+ elif type(resource) == Map:
96
+ resource_type = 'map'
97
+
98
+ else:
99
+ raise TypeError('resource must be a vectorlayer or view or map object')
100
+
101
+
87
102
  params = {
88
- 'resource_type': resource_type.value,
89
- 'resource_uuid': resource_uuid,
103
+ 'resource_type': resource_type,
104
+ 'resource_uuid': resource.uuid,
90
105
  'element_id': kwargs.get('element_id'),
91
106
  'search': kwargs.get('search'),
92
107
  'order_by': kwargs.get('order_by'),
@@ -155,13 +170,13 @@ class Attachment(Base):
155
170
  ... description="Attachment Description")
156
171
  """
157
172
  if isinstance(resource, VectorLayer):
158
- resource_type = AttachmentResourceType.Vector.value
173
+ resource_type = 'vector'
159
174
 
160
175
  if isinstance(resource, VectorLayerView):
161
- resource_type = AttachmentResourceType.View.value
176
+ resource_type = 'view'
162
177
 
163
178
  if isinstance(resource, Map):
164
- resource_type = AttachmentResourceType.Map.value
179
+ resource_type = 'map'
165
180
 
166
181
  data = {
167
182
  "name": name,
@@ -171,7 +186,7 @@ class Attachment(Base):
171
186
  "loc_y": loc_y,
172
187
  "resource_type": resource_type,
173
188
  "resource_uuid": resource.uuid,
174
- "element_id": feature.id,
189
+ "element_id": feature.id if feature else None,
175
190
  "file_id": file.id
176
191
  }
177
192
  return super()._create(api, cls.BASE_ENDPOINT, data, factory_func=lambda api, item: Attachment(api, item['id'], item))
geobox/basemap.py CHANGED
@@ -95,8 +95,7 @@ class Basemap(Base):
95
95
  Returns:
96
96
  str: the thumbnail url
97
97
  """
98
- endpoint = f"{self.api.base_url}{self.endpoint}/thumbnail.png"
99
- return endpoint
98
+ return super().thumbnail()
100
99
 
101
100
 
102
101
  @property
geobox/enums.py CHANGED
@@ -272,14 +272,6 @@ class UserStatus(Enum):
272
272
  DISABLED = "Disabled"
273
273
 
274
274
 
275
- class AttachmentResourceType(Enum):
276
- Map = "map"
277
-
278
- Vector = "vector"
279
-
280
- View = "view"
281
-
282
-
283
275
  class MaxLogPolicy(Enum):
284
276
  OverwriteFirstLog = "OverwriteFirstLog"
285
277
 
geobox/log.py CHANGED
@@ -6,6 +6,7 @@ from .base import Base
6
6
 
7
7
  if TYPE_CHECKING:
8
8
  from . import GeoboxClient
9
+ from .user import User
9
10
 
10
11
 
11
12
  class Log(Base):
@@ -98,4 +99,22 @@ class Log(Base):
98
99
  >>> log.delete()
99
100
  """
100
101
  super().delete(self.endpoint)
101
- self.log_id = None
102
+ self.log_id = None
103
+
104
+
105
+ @property
106
+ def user(self) -> Union['User', None]:
107
+ """
108
+ Get the owner user for the log
109
+
110
+ Returns:
111
+ User | None: if the log has owner user
112
+
113
+ Example:
114
+ >>> from geobox import Geobox
115
+ >>> from geopox.log import Log
116
+ >>> client = GeoboxClient()
117
+ >>> log = Log.get_logs(client)[0]
118
+ >>> log.user
119
+ """
120
+ return self.api.get_user(self.owner_id)
geobox/map.py CHANGED
@@ -4,11 +4,15 @@ from urllib.parse import urljoin, urlencode
4
4
  from .base import Base
5
5
  from .utils import clean_data, join_url_params
6
6
  from .model3d import Model
7
+ from .file import File
8
+ from .feature import Feature
7
9
 
8
10
  if TYPE_CHECKING:
9
11
  from . import GeoboxClient
10
12
  from .user import User
11
13
  from .task import Task
14
+ from .attachment import Attachment
15
+
12
16
 
13
17
 
14
18
  class Map(Base):
@@ -899,3 +903,80 @@ class Map(Base):
899
903
  endpoint = f"{endpoint}?{query_string}"
900
904
  response = self.api.post(endpoint)
901
905
  return self.api.get_task(response['task_id'])
906
+
907
+
908
+ def get_attachments(self, **kwargs) -> List['Attachment']:
909
+ """
910
+ Get the resouces attachments
911
+
912
+ Keyword Args:
913
+ element_id (str): the id of the element with attachment.
914
+ search (str): search term for keyword-based searching among all textual fields.
915
+ order_by (str): comma separated list of fields for sorting results [field1 A|D, field2 A|D, …]. e.g. name A, type D. NOTE: "A" denotes ascending order and "D" denotes descending order.
916
+ skip (int): Number of items to skip. default is 0.
917
+ limit (int): Number of items to return. default is 10.
918
+ return_count (bool): Whether to return total count. default is False.
919
+
920
+ Returns:
921
+ List[Attachment] | int: A list of attachments instances or the total number of attachments.
922
+
923
+ Raises:
924
+ TypeError: if the resource type is not supported
925
+
926
+ Example:
927
+ >>> from geobox import GeoboxClient
928
+ >>> from geobox.map import Map
929
+ >>> client = GeoboxClient()
930
+ >>> map = Map.get_map(client, uuid="12345678-1234-5678-1234-567812345678")
931
+ >>> map.get_attachments()
932
+ """
933
+ from .attachment import Attachment
934
+
935
+ return Attachment.get_attachments(self.api, resource=self, **kwargs)
936
+
937
+
938
+ def create_attachment(self,
939
+ name: str,
940
+ loc_x: int,
941
+ loc_y: int,
942
+ file: 'File',
943
+ feature: 'Feature' = None,
944
+ display_name: str = None,
945
+ description: str = None) -> 'Attachment':
946
+ """
947
+ Create a new Attachment.
948
+
949
+ Args:
950
+ name (str): The name of the scene.
951
+ loc_x (int): x parameter of the attachment location.
952
+ loc_y (int): y parameter of the attachment location.
953
+ file (File): the file object.
954
+ feature (Feature, optional): the feature object.
955
+ display_name (str, optional): The display name of the scene.
956
+ description (str, optional): The description of the scene.
957
+
958
+ Returns:
959
+ Attachment: The newly created Attachment instance.
960
+
961
+ Raises:
962
+ ValidationError: If the Attachment data is invalid.
963
+
964
+ Example:
965
+ >>> from geobox import GeoboxClient
966
+ >>> from geobox.map import Map
967
+ >>> client = GeoboxClient()
968
+ >>> map = Map.get_map(client, uuid="12345678-1234-5678-1234-567812345678")
969
+ >>> file = client.get_files()[0]
970
+ >>> map.create_attachment(name='test', loc_x=10, loc_y=10, file=file)
971
+ """
972
+ from .attachment import Attachment
973
+
974
+ return Attachment.create_attachment(self.api,
975
+ name=name,
976
+ loc_x=loc_x,
977
+ loc_y=loc_y,
978
+ resource=self,
979
+ file=file,
980
+ feature=feature,
981
+ display_name=display_name,
982
+ description=description)
geobox/vectorlayer.py CHANGED
@@ -11,12 +11,13 @@ from .task import Task
11
11
  from .enums import InputGeomType, FileOutputFormat
12
12
  from .version import VectorLayerVersion
13
13
 
14
-
15
14
  if TYPE_CHECKING:
16
15
  from .api import GeoboxClient
17
16
  from .view import VectorLayerView
18
17
  from .user import User
19
18
  from .file import File
19
+ from .attachment import Attachment
20
+
20
21
 
21
22
  class VectorLayer(Base):
22
23
  """
@@ -1227,4 +1228,81 @@ class VectorLayer(Base):
1227
1228
  >>> layer.prune_edited_areas()
1228
1229
  """
1229
1230
  endpoint = urljoin(self.endpoint, 'prune/')
1230
- return self.api.post(endpoint)
1231
+ return self.api.post(endpoint)
1232
+
1233
+
1234
+ def get_attachments(self, **kwargs) -> List['Attachment']:
1235
+ """
1236
+ Get the resouces attachments
1237
+
1238
+ Keyword Args:
1239
+ element_id (str): the id of the element with attachment.
1240
+ search (str): search term for keyword-based searching among all textual fields.
1241
+ order_by (str): comma separated list of fields for sorting results [field1 A|D, field2 A|D, …]. e.g. name A, type D. NOTE: "A" denotes ascending order and "D" denotes descending order.
1242
+ skip (int): Number of items to skip. default is 0.
1243
+ limit (int): Number of items to return. default is 10.
1244
+ return_count (bool): Whether to return total count. default is False.
1245
+
1246
+ Returns:
1247
+ List[Attachment] | int: A list of attachments instances or the total number of attachments.
1248
+
1249
+ Raises:
1250
+ TypeError: if the resource type is not supported
1251
+
1252
+ Example:
1253
+ >>> from geobox import GeoboxClient
1254
+ >>> from geobox.vectorlayer import VectorLayer
1255
+ >>> client = GeoboxClient()
1256
+ >>> layer = VectorLayer.get_vector(api=client, uuid="12345678-1234-5678-1234-567812345678")
1257
+ >>> layer.get_attachments()
1258
+ """
1259
+ from .attachment import Attachment
1260
+
1261
+ return Attachment.get_attachments(self.api, resource=self, **kwargs)
1262
+
1263
+
1264
+ def create_attachment(self,
1265
+ name: str,
1266
+ loc_x: int,
1267
+ loc_y: int,
1268
+ file: 'File',
1269
+ feature: 'Feature' = None,
1270
+ display_name: str = None,
1271
+ description: str = None) -> 'Attachment':
1272
+ """
1273
+ Create a new Attachment.
1274
+
1275
+ Args:
1276
+ name (str): The name of the scene.
1277
+ loc_x (int): x parameter of the attachment location.
1278
+ loc_y (int): y parameter of the attachment location.
1279
+ file (File): the file object.
1280
+ feature (Feature, optional): the feature object.
1281
+ display_name (str, optional): The display name of the scene.
1282
+ description (str, optional): The description of the scene.
1283
+
1284
+ Returns:
1285
+ Attachment: The newly created Attachment instance.
1286
+
1287
+ Raises:
1288
+ ValidationError: If the Attachment data is invalid.
1289
+
1290
+ Example:
1291
+ >>> from geobox import GeoboxClient
1292
+ >>> from geobox.vectorlayer import VectorLayer
1293
+ >>> client = GeoboxClient()
1294
+ >>> layer = VectorLayer.get_vector(api=client, uuid="12345678-1234-5678-1234-567812345678")
1295
+ >>> file = client.get_files()[0]
1296
+ >>> layer.create_attachment(name='test', loc_x=10, loc_y=10, file=file)
1297
+ """
1298
+ from .attachment import Attachment
1299
+
1300
+ return Attachment.create_attachment(self.api,
1301
+ name=name,
1302
+ loc_x=loc_x,
1303
+ loc_y=loc_y,
1304
+ resource=self,
1305
+ file=file,
1306
+ feature=feature,
1307
+ display_name=display_name,
1308
+ description=description)
geobox/view.py CHANGED
@@ -7,9 +7,11 @@ if TYPE_CHECKING:
7
7
  from . import GeoboxClient
8
8
  from .field import Field
9
9
  from .user import User
10
- from .enums import InputGeomType, FieldType
10
+ from .enums import InputGeomType
11
11
  from .task import Task
12
12
  from .file import File
13
+ from .attachment import Attachment
14
+
13
15
 
14
16
 
15
17
  class VectorLayerView(VectorLayer):
@@ -862,3 +864,80 @@ class VectorLayerView(VectorLayer):
862
864
  >>> view.prune_edited_areas()
863
865
  """
864
866
  return super().prune_edited_areas()
867
+
868
+
869
+ def get_attachments(self, **kwargs) -> List['Attachment']:
870
+ """
871
+ Get the resouces attachments
872
+
873
+ Keyword Args:
874
+ element_id (str): the id of the element with attachment.
875
+ search (str): search term for keyword-based searching among all textual fields.
876
+ order_by (str): comma separated list of fields for sorting results [field1 A|D, field2 A|D, …]. e.g. name A, type D. NOTE: "A" denotes ascending order and "D" denotes descending order.
877
+ skip (int): Number of items to skip. default is 0.
878
+ limit (int): Number of items to return. default is 10.
879
+ return_count (bool): Whether to return total count. default is False.
880
+
881
+ Returns:
882
+ List[Attachment] | int: A list of attachments instances or the total number of attachments.
883
+
884
+ Raises:
885
+ TypeError: if the resource type is not supported
886
+
887
+ Example:
888
+ >>> from geobox import GeoboxClient
889
+ >>> from geobox.view import VectorLayerView
890
+ >>> client = GeoboxClient()
891
+ >>> view = VectorLayerView.get_view(client, uuid="12345678-1234-5678-1234-567812345678")
892
+ >>> view.get_attachments()
893
+ """
894
+ from .attachment import Attachment
895
+
896
+ return Attachment.get_attachments(self.api, resource=self, **kwargs)
897
+
898
+
899
+ def create_attachment(self,
900
+ name: str,
901
+ loc_x: int,
902
+ loc_y: int,
903
+ file: 'File',
904
+ feature: 'Feature' = None,
905
+ display_name: str = None,
906
+ description: str = None) -> 'Attachment':
907
+ """
908
+ Create a new Attachment.
909
+
910
+ Args:
911
+ name (str): The name of the scene.
912
+ loc_x (int): x parameter of the attachment location.
913
+ loc_y (int): y parameter of the attachment location.
914
+ file (File): the file object.
915
+ feature (Feature, optional): the feature object.
916
+ display_name (str, optional): The display name of the scene.
917
+ description (str, optional): The description of the scene.
918
+
919
+ Returns:
920
+ Attachment: The newly created Attachment instance.
921
+
922
+ Raises:
923
+ ValidationError: If the Attachment data is invalid.
924
+
925
+ Example:
926
+ >>> from geobox import GeoboxClient
927
+ >>> from geobox.view import VectorLayerView
928
+ >>> client = GeoboxClient()
929
+ >>> view = VectorLayerView.get_view(client, uuid="12345678-1234-5678-1234-567812345678")
930
+ >>> file = client.get_files()[0]
931
+ >>> view.create_attachment(name='test', loc_x=10, loc_y=10, file=file)
932
+ """
933
+ from .attachment import Attachment
934
+
935
+ return Attachment.create_attachment(self.api,
936
+ name=name,
937
+ loc_x=loc_x,
938
+ loc_y=loc_y,
939
+ resource=self,
940
+ file=file,
941
+ feature=feature,
942
+ display_name=display_name,
943
+ description=description)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geobox
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: SDK for Geobox's APIs
5
5
  Author-email: Hamid Heydari <heydari.h62@gmail.com>
6
6
  License: MIT
@@ -1,18 +1,18 @@
1
1
  geobox/__init__.py,sha256=iRkJAFIjMXiAaLTVXvZcW5HM7ttyipGdxFZ15NCM8qU,1895
2
- geobox/api.py,sha256=lqVpQ_NLyPpDnySxYlSBLiZelkbL7IFd5uX3K-9QRho,105246
2
+ geobox/api.py,sha256=8wO1AvyIWf0n2gi-Jv22IM6gyjtbX4KGBYXJTKTh01A,105230
3
3
  geobox/apikey.py,sha256=OXsf1ltXcN1jIQJHECdnIE5R_Qksb897xVJOkORRsxw,7522
4
- geobox/attachment.py,sha256=qplcYfHkoV9aHaXQ7xFnkrsYxwmUs0PNPbjoSerET34,11582
4
+ geobox/attachment.py,sha256=Q5LVn2j8gm-CptDVhpqtfzyQTDDd1FjW_9MEJBRQb6M,11865
5
5
  geobox/base.py,sha256=OdabLbBflglLkNWM7TGCWtPh73M_-42_Ph963K26JQg,12931
6
- geobox/basemap.py,sha256=7Jo2MeEN8U8Av54kPPaFzQFjajcNYgMRMOTZXPUcXyk,4529
6
+ geobox/basemap.py,sha256=fQhCj6ERYCEaY4RLINrftEt4RDakddKZ-wG9Av4Rv_8,4468
7
7
  geobox/dashboard.py,sha256=x99jUGzUJra4cdcffSYC0_FvrihZh6sPI4o79f-Aptc,11694
8
- geobox/enums.py,sha256=C7PQf8pisiRwHE7-wsgSQ_rZcpvP6-7EDpx8iXijkMs,6300
8
+ geobox/enums.py,sha256=Ur8zbUjfx09oxXb-uzwFfDT_Nt8I4AP5pFQKJ9bxVxI,6204
9
9
  geobox/exception.py,sha256=jvpnv0M2Ck1FpxHTL_aKYWxGvLnCQ3d9vOrMIktjw1U,1507
10
10
  geobox/feature.py,sha256=3Kbc1LjIkBt1YqRAry84BrR7qxx9BexvBB3YQ8D9mGk,18504
11
11
  geobox/field.py,sha256=p9eitUpnsiGj6GUhjSomk6HWlsNJSbE-Oh_4VcjaqVo,10562
12
12
  geobox/file.py,sha256=cMm-SwTzRKALiIj-gkY4UJzUsOuN5SGz50eU1ylNAxk,20079
13
13
  geobox/layout.py,sha256=TdE5FJ7fzbhkexojY8h-r68hXb5UYM6MIfNkxfs_RKA,11285
14
- geobox/log.py,sha256=ZTmVErhyAszf7M5YFxT5mqXNNDGPnRwXPeGLDS1G6PE,3582
15
- geobox/map.py,sha256=oMhpbmeRtamI1iVYZIWXgGQa3NOcKh6O57mgrDBQkno,32723
14
+ geobox/log.py,sha256=Xuq4oKPwaypZ4nYEOIXu13dH4AkQcf0pkTw85gDQqS4,4063
15
+ geobox/map.py,sha256=JfGYGo1P9jcbYLr3RkwrvhTTnb-xmH_EsuqO0M_yT5c,36118
16
16
  geobox/model3d.py,sha256=GUpZdRcy6Fs83PdqdfX70F_uxIAqkyTbsMWYSI7rV5k,12011
17
17
  geobox/mosaic.py,sha256=6wSK9xkjtBUEtIsZANWVYwsJbDx112mO1SQOXcPTVo8,23780
18
18
  geobox/plan.py,sha256=jUzl6CQBY6IsdieEppJOmE0sSjwvu6eHO89pC_JFs6I,12066
@@ -27,12 +27,12 @@ geobox/tileset.py,sha256=bQOckE04F31vb-NYmNsQzXndZSTDZyskWspRikjZuBs,24241
27
27
  geobox/usage.py,sha256=_54xL-n-2Bg9wGpoOBKnh85WqdpMWEtqxRJVaFlVWe0,7908
28
28
  geobox/user.py,sha256=YY72uRvjKUUWUZbxhrft37FVBlqDeosPMf3EpMVBhc0,15069
29
29
  geobox/utils.py,sha256=qLtchKIdw-az3KCiiFv0-Cpmx9RfBxORjlATvVyDIaQ,1314
30
- geobox/vectorlayer.py,sha256=5IglRp7uoMm3yggYpHurDRAGQo9x7KdjJGicSLpxrSs,53035
30
+ geobox/vectorlayer.py,sha256=eB1zadgS4xqxV1NEUwaXsh5PIwAX054tYBqdu8ZO6hs,56452
31
31
  geobox/version.py,sha256=0GLPhxCeEb2bAkdpPJWtXPXc1KP6kQ_TOMwLAL0ldo0,9374
32
- geobox/view.py,sha256=ZNJNBQclM6fc0cxXmU_L_XEBwd4lbsEncs6ynxWU9lc,37531
32
+ geobox/view.py,sha256=t-MlTNDL1T53Mybny5UOMTjVQwDdaDovLJfyl3Qgx1I,40919
33
33
  geobox/workflow.py,sha256=_WEIy1zLpBFx5yeuZ4ClnwPdU90jQbdy5bWYYIRa4JY,11549
34
- geobox-1.4.0.dist-info/licenses/LICENSE,sha256=AvFB7W94sJYKLDhBxLRshL3upexCOG8HQY_1JibB96w,1063
35
- geobox-1.4.0.dist-info/METADATA,sha256=GGoWFZt8cAf-9N_3YIEz4ZLyv77uMT0IO-kZyAj6-rQ,2658
36
- geobox-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
- geobox-1.4.0.dist-info/top_level.txt,sha256=ppXH8Bu2mlB-pLQ6lsoWEm2Gr6wZx1uzkhetsYA5ins,7
38
- geobox-1.4.0.dist-info/RECORD,,
34
+ geobox-1.4.1.dist-info/licenses/LICENSE,sha256=AvFB7W94sJYKLDhBxLRshL3upexCOG8HQY_1JibB96w,1063
35
+ geobox-1.4.1.dist-info/METADATA,sha256=KF1UGO6DhvFbUGt4WcubAl9QH7VAcGz1K0OMytVgaC0,2658
36
+ geobox-1.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
+ geobox-1.4.1.dist-info/top_level.txt,sha256=ppXH8Bu2mlB-pLQ6lsoWEm2Gr6wZx1uzkhetsYA5ins,7
38
+ geobox-1.4.1.dist-info/RECORD,,
File without changes