Skip to content

Commit 2c0f782

Browse files
authored
Merge pull request #194 from fastlabel/feature/add-get-dataset-param
SDKでリビジョン、バージョンを指定してデータセットを取得できる
2 parents 3ddcb62 + d74b22c commit 2c0f782

File tree

2 files changed

+60
-8
lines changed

2 files changed

+60
-8
lines changed

README.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2583,7 +2583,21 @@ dataset_object = client.find_dataset_object(
25832583
object_name="brushwood_dog.jpg"
25842584
)
25852585
```
2586-
2586+
You can find a object of specified revision by version or revision_id.
2587+
```python
2588+
dataset_object = client.find_dataset_object(
2589+
dataset_id="YOUR_DATASET_ID",
2590+
object_name="brushwood_dog.jpg",
2591+
version="YOUR_VERSION_NAME" # default is "latest"
2592+
)
2593+
```
2594+
```python
2595+
dataset_object = client.find_dataset_object(
2596+
dataset_id="YOUR_DATASET_ID",
2597+
object_name="brushwood_dog.jpg",
2598+
revision_id="YOUR_REVISION_ID" # 8 characters or more
2599+
)
2600+
```
25872601
Success response is the same as when created.
25882602

25892603
### Get Dataset Object
@@ -2596,7 +2610,7 @@ dataset_objects = client.get_dataset_objects(dataset="YOUR_DATASET_NAME")
25962610

25972611
The success response is the same as when created, but it is an array.
25982612

2599-
You can filter by version and tags.
2613+
You can filter by version or revision_id and tags.
26002614

26012615
```python
26022616
dataset_objects = client.get_dataset_objects(
@@ -2605,7 +2619,12 @@ dataset_objects = client.get_dataset_objects(
26052619
tags=["cat"],
26062620
)
26072621
```
2608-
2622+
```python
2623+
dataset_objects = client.get_dataset_objects(
2624+
dataset="YOUR_DATASET_NAME",
2625+
revision_id="YOUR_REVISION_ID" # 8 characters or more
2626+
)
2627+
```
26092628
### Download Dataset Objects
26102629

26112630
Download dataset objects in the dataset to specific directories.

fastlabel/__init__.py

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3914,27 +3914,60 @@ def delete_dataset(self, dataset_id: str) -> None:
39143914

39153915
# Dataset Object
39163916

3917-
def find_dataset_object(self, dataset_id: str, object_name: str) -> dict:
3917+
def find_dataset_object(
3918+
self,
3919+
dataset_id: str,
3920+
object_name: str,
3921+
version: str = None,
3922+
revision_id: str = None,
3923+
) -> dict:
39183924
"""
39193925
Find a dataset object.
3926+
3927+
dataset_id is dataset id (Required).
3928+
object_name is dataset object name (Required).
3929+
version is dataset version (Optional).
3930+
revision_id is dataset rebision (Optional).
3931+
Only use specify one of revision_id or version.
39203932
"""
3921-
endpoint = "datasets-v2/" + dataset_id + "/objects/" + object_name
3922-
return self.api.get_request(endpoint)
3933+
if version and revision_id:
3934+
raise FastLabelInvalidException(
3935+
"only use specify one of revisionId or version.", 400)
3936+
endpoint = "datasets-v2/" + dataset_id + "/objects/" + object_name
3937+
params = {}
3938+
if revision_id:
3939+
params["revisionId"] = revision_id
3940+
elif version:
3941+
params["version"] = version
3942+
return self.api.get_request(endpoint, params=params)
39233943

39243944
def get_dataset_objects(
3925-
self, dataset: str, version: str = None, tags: List[str] = []
3945+
self,
3946+
dataset: str,
3947+
version: str = None,
3948+
tags: List[str] = None,
3949+
revision_id: str = None,
39263950
) -> list:
39273951
"""
39283952
Returns a list of dataset objects.
39293953
39303954
dataset is dataset name (Required).
39313955
version is dataset version (Optional).
39323956
tags is a list of tag (Optional).
3957+
revision_id is dataset rebision (Optional).
3958+
Only use specify one of revision_id or version.
39333959
"""
3960+
if version and revision_id:
3961+
raise FastLabelInvalidException(
3962+
"only use specify one of revisionId or version.", 400)
39343963
endpoint = "dataset-objects-v2"
39353964
params = {"dataset": dataset}
3965+
if revision_id:
3966+
params["revisionId"] = revision_id
39363967
if version:
39373968
params["version"] = version
3969+
3970+
tags = tags or []
39383971
if tags:
39393972
params["tags"] = tags
39403973
return self.api.get_request(endpoint, params=params)
@@ -4049,7 +4082,7 @@ def delete_dataset_object(self, dataset_id: str, object_name: str) -> None:
40494082
"""
40504083
Delete a dataset object.
40514084
"""
4052-
endpoint = "datasets-v2/" + dataset_id + "/objects/" + object_name
4085+
endpoint = "datasets-v2/" + dataset_id + "/objects/" + object_name
40534086
self.api.delete_request(endpoint)
40544087

40554088
def update_aws_s3_storage(

0 commit comments

Comments
 (0)