1
1
"""
2
2
Nucleus Python Library.
3
3
4
- Data formats used:
5
-
6
- _____________________________________________________________________________________________________
7
-
8
- DatasetItem
9
-
10
- image_url | str | The URL containing the image for the given row of data.\n
11
- reference_id | str | An optional user-specified identifier to reference this given image.\n
12
- metadata | dict | All of column definitions for this item.
13
- | | The keys should match the user-specified column names,
14
- | | and the corresponding values will populate the cell under the column.\n
15
- _____________________________________________________________________________________________________
16
-
17
-
18
- Box2DGeometry:
19
-
20
- x | float | The distance, in pixels, between the left border of the bounding box
21
- | | and the left border of the image.\n
22
- y | float | The distance, in pixels, between the top border of the bounding box
23
- | | and the top border of the image.\n
24
- width | float | The width in pixels of the annotation.\n
25
- height | float | The height in pixels of the annotation.\n
26
-
27
- Box2DAnnotation:
28
-
29
- item_id | str | The internally-controlled item identifier to associate this annotation with.
30
- | | The reference_id field should be empty if this field is populated.\n
31
- reference_id | str | The user-specified reference identifier to associate this annotation with.\n
32
- | | The item_id field should be empty if this field is populated.
33
- label | str | The label for this annotation (e.g. car, pedestrian, bicycle).\n
34
- type | str | The type of this annotation. It should always be the box string literal.\n
35
- geometry | dict | Representation of the bounding box in the Box2DGeometry format.\n
36
- metadata | dict | An arbitrary metadata blob for the annotation.\n
37
-
38
- _____________________________________________________________________________________________________
39
-
40
- Box2DDetection:
41
-
42
- item_id | str | The internally-controlled item identifier to associate this annotation with.
43
- | | The reference_id field should be empty if this field is populated.\n
44
- reference_id | str | The user-specified reference identifier to associate this annotation with.
45
- | | The item_id field should be empty if this field is populated.\n
46
- label | str | The label for this annotation (e.g. car, pedestrian, bicycle).\n
47
- type | str | The type of this annotation. It should always be the box string literal.\n
48
- confidence | float | The optional confidence level of this annotation.
49
- | | It should be between 0 and 1 (inclusive).\n
50
- geometry | dict | Representation of the bounding box in the Box2DGeometry format.\n
51
- metadata | dict | An arbitrary metadata blob for the annotation.\n
4
+ For full documentation see: https://dashboard.scale.com/nucleus/docs/api?language=python
52
5
"""
53
6
import asyncio
54
7
import json
@@ -244,11 +197,8 @@ def get_dataset_items(self, dataset_id) -> List[DatasetItem]:
244
197
for item in dataset_items :
245
198
image_url = item .get ("original_image_url" )
246
199
metadata = item .get ("metadata" , None )
247
- item_id = item .get ("id" , None )
248
200
ref_id = item .get ("ref_id" , None )
249
- dataset_item = DatasetItem (
250
- image_url , ref_id , item_id , metadata
251
- )
201
+ dataset_item = DatasetItem (image_url , ref_id , metadata )
252
202
constructed_dataset_items .append (dataset_item )
253
203
elif error :
254
204
raise DatasetItemRetrievalError (message = error )
@@ -349,26 +299,19 @@ def delete_dataset(self, dataset_id: str) -> dict:
349
299
return self .make_request ({}, f"dataset/{ dataset_id } " , requests .delete )
350
300
351
301
@sanitize_string_args
352
- def delete_dataset_item (
353
- self , dataset_id : str , item_id : str = None , reference_id : str = None
354
- ) -> dict :
302
+ def delete_dataset_item (self , dataset_id : str , reference_id ) -> dict :
355
303
"""
356
304
Deletes a private dataset based on datasetId.
357
305
Returns an empty payload where response status `200` indicates
358
306
the dataset has been successfully deleted.
359
307
:param payload: { "name": str }
360
308
:return: { "dataset_id": str, "name": str }
361
309
"""
362
- if item_id :
363
- return self .make_request (
364
- {}, f"dataset/{ dataset_id } /{ item_id } " , requests .delete
365
- )
366
- else : # Assume reference_id is provided
367
- return self .make_request (
368
- {},
369
- f"dataset/{ dataset_id } /refloc/{ reference_id } " ,
370
- requests .delete ,
371
- )
310
+ return self .make_request (
311
+ {},
312
+ f"dataset/{ dataset_id } /refloc/{ reference_id } " ,
313
+ requests .delete ,
314
+ )
372
315
373
316
def populate_dataset (
374
317
self ,
@@ -1015,17 +958,13 @@ def create_slice(self, dataset_id: str, payload: dict) -> Slice:
1015
958
as a means of identifying items in the dataset.
1016
959
1017
960
"name" -- The human-readable name of the slice.
1018
-
1019
- "dataset_item_ids" -- An optional list of dataset item ids for the items in the slice
1020
-
1021
961
"reference_ids" -- An optional list of user-specified identifier for the items in the slice
1022
962
1023
963
:param
1024
964
dataset_id: id of the dataset
1025
965
payload:
1026
966
{
1027
967
"name": str,
1028
- "dataset_item_ids": List[str],
1029
968
"reference_ids": List[str],
1030
969
}
1031
970
:return: new Slice object
@@ -1051,14 +990,12 @@ def slice_info(self, slice_id: str) -> dict:
1051
990
1052
991
:param
1053
992
slice_id: id of the slice
1054
- id_type: the type of IDs you want in response (either "reference_id" or "dataset_item_id")
1055
- to identify the DatasetItems
1056
993
1057
994
:return:
1058
995
{
1059
996
"name": str,
1060
997
"dataset_id": str,
1061
- "dataset_item_ids ": List[str],
998
+ "reference_ids ": List[str],
1062
999
}
1063
1000
"""
1064
1001
response = self .make_request (
@@ -1118,7 +1055,6 @@ def append_to_slice(
1118
1055
as a means of identifying items in the dataset.
1119
1056
1120
1057
:param
1121
- dataset_item_ids: List[str],
1122
1058
reference_ids: List[str],
1123
1059
1124
1060
:return:
@@ -1182,7 +1118,7 @@ def create_custom_index(
1182
1118
1183
1119
:param
1184
1120
dataset_id: id of dataset that the custom index is being added to.
1185
- embeddings_urls: list of urls, each of which being a json mapping dataset_item_id -> embedding vector
1121
+ embeddings_urls: list of urls, each of which being a json mapping reference_id -> embedding vector
1186
1122
embedding_dim: the dimension of the embedding vectors, must be consistent for all embedding vectors in the index.
1187
1123
"""
1188
1124
return self .make_request (
0 commit comments