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 +11 -7
- geobox/attachment.py +27 -12
- geobox/basemap.py +1 -2
- geobox/enums.py +0 -8
- geobox/log.py +20 -1
- geobox/map.py +81 -0
- geobox/vectorlayer.py +80 -2
- geobox/view.py +80 -1
- {geobox-1.4.0.dist-info → geobox-1.4.1.dist-info}/METADATA +1 -1
- {geobox-1.4.0.dist-info → geobox-1.4.1.dist-info}/RECORD +13 -13
- {geobox-1.4.0.dist-info → geobox-1.4.1.dist-info}/WHEEL +0 -0
- {geobox-1.4.0.dist-info → geobox-1.4.1.dist-info}/licenses/LICENSE +0 -0
- {geobox-1.4.0.dist-info → geobox-1.4.1.dist-info}/top_level.txt +0 -0
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
|
|
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,
|
|
2297
|
+
def get_attachments(self, resource: Union['Map', 'VectorLayer', 'VectorLayerView'], **kwargs) -> List['Attachment']:
|
|
2298
2298
|
"""
|
|
2299
|
-
Get
|
|
2299
|
+
Get the resouces attachments
|
|
2300
2300
|
|
|
2301
2301
|
Args:
|
|
2302
|
-
|
|
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
|
-
>>>
|
|
2322
|
+
>>> map = client.get_maps()[0]
|
|
2323
|
+
>>> attachments = client.get_attachments(resource=map)
|
|
2320
2324
|
"""
|
|
2321
|
-
return Attachment.get_attachments(self,
|
|
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',
|
|
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
|
-
|
|
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
|
-
>>>
|
|
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
|
|
89
|
-
'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 =
|
|
173
|
+
resource_type = 'vector'
|
|
159
174
|
|
|
160
175
|
if isinstance(resource, VectorLayerView):
|
|
161
|
-
resource_type =
|
|
176
|
+
resource_type = 'view'
|
|
162
177
|
|
|
163
178
|
if isinstance(resource, Map):
|
|
164
|
-
resource_type =
|
|
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
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
|
|
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,18 +1,18 @@
|
|
|
1
1
|
geobox/__init__.py,sha256=iRkJAFIjMXiAaLTVXvZcW5HM7ttyipGdxFZ15NCM8qU,1895
|
|
2
|
-
geobox/api.py,sha256=
|
|
2
|
+
geobox/api.py,sha256=8wO1AvyIWf0n2gi-Jv22IM6gyjtbX4KGBYXJTKTh01A,105230
|
|
3
3
|
geobox/apikey.py,sha256=OXsf1ltXcN1jIQJHECdnIE5R_Qksb897xVJOkORRsxw,7522
|
|
4
|
-
geobox/attachment.py,sha256=
|
|
4
|
+
geobox/attachment.py,sha256=Q5LVn2j8gm-CptDVhpqtfzyQTDDd1FjW_9MEJBRQb6M,11865
|
|
5
5
|
geobox/base.py,sha256=OdabLbBflglLkNWM7TGCWtPh73M_-42_Ph963K26JQg,12931
|
|
6
|
-
geobox/basemap.py,sha256=
|
|
6
|
+
geobox/basemap.py,sha256=fQhCj6ERYCEaY4RLINrftEt4RDakddKZ-wG9Av4Rv_8,4468
|
|
7
7
|
geobox/dashboard.py,sha256=x99jUGzUJra4cdcffSYC0_FvrihZh6sPI4o79f-Aptc,11694
|
|
8
|
-
geobox/enums.py,sha256=
|
|
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=
|
|
15
|
-
geobox/map.py,sha256=
|
|
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=
|
|
30
|
+
geobox/vectorlayer.py,sha256=eB1zadgS4xqxV1NEUwaXsh5PIwAX054tYBqdu8ZO6hs,56452
|
|
31
31
|
geobox/version.py,sha256=0GLPhxCeEb2bAkdpPJWtXPXc1KP6kQ_TOMwLAL0ldo0,9374
|
|
32
|
-
geobox/view.py,sha256=
|
|
32
|
+
geobox/view.py,sha256=t-MlTNDL1T53Mybny5UOMTjVQwDdaDovLJfyl3Qgx1I,40919
|
|
33
33
|
geobox/workflow.py,sha256=_WEIy1zLpBFx5yeuZ4ClnwPdU90jQbdy5bWYYIRa4JY,11549
|
|
34
|
-
geobox-1.4.
|
|
35
|
-
geobox-1.4.
|
|
36
|
-
geobox-1.4.
|
|
37
|
-
geobox-1.4.
|
|
38
|
-
geobox-1.4.
|
|
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
|
|
File without changes
|
|
File without changes
|