Skip to content

Commit 2103a94

Browse files
Nathanjp91Nathan Perkins
andauthored
including release in dataset (#534)
* including release in dataset * dataset id tests --------- Co-authored-by: Nathan Perkins <[email protected]>
1 parent 62d69bc commit 2103a94

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

darwin/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ def get_remote_dataset(self, dataset_identifier: Union[str, DatasetIdentifier])
188188
)
189189
if not matching_datasets:
190190
raise NotFound(str(parsed_dataset_identifier))
191+
if parsed_dataset_identifier.version:
192+
matching_datasets[0].release = parsed_dataset_identifier.version
191193
return matching_datasets[0]
192194

193195
def create_dataset(self, name: str, team_slug: Optional[str] = None) -> RemoteDataset:
@@ -227,7 +229,6 @@ def create_dataset(self, name: str, team_slug: Optional[str] = None) -> RemoteDa
227229
progress=0,
228230
client=self,
229231
)
230-
end
231232

232233
def archive_remote_dataset(self, dataset_id: int, team_slug: str) -> None:
233234
"""

darwin/dataset/remote_dataset.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def __init__(
107107
item_count: int = 0,
108108
progress: float = 0,
109109
version: int = 1,
110+
release: Optional[str] = None,
110111
):
111112
self.team = team
112113
self.name = name
@@ -118,6 +119,7 @@ def __init__(
118119
self.annotation_types: Optional[List[Dict[str, Any]]] = None
119120
self.console: Console = Console()
120121
self.version = version
122+
self.release = release
121123

122124
@abstractmethod
123125
def push(
@@ -652,7 +654,10 @@ def get_release(self, name: str = "latest") -> "Release":
652654
if not releases:
653655
raise NotFound(str(self.identifier))
654656

655-
if name == "latest":
657+
# overwrite default name with stored dataset.release if supplied
658+
if self.release and name == "latest":
659+
name = self.release
660+
elif name == "latest":
656661
return next((release for release in releases if release.latest))
657662

658663
for release in releases:

darwin/dataset/remote_dataset_v2.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
from requests.models import Response
1414

15+
from requests.models import Response
16+
1517
from darwin.dataset import RemoteDataset
1618
from darwin.dataset.release import Release
1719
from darwin.dataset.upload_manager import (

tests/darwin/dataset/remote_dataset_test.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,24 @@ def files_content() -> Dict[str, Any]:
306306
}
307307

308308

309+
def test_dataset_creation_from_id():
310+
def it_should_set_id_correctly_from_id(darwin_client: Client):
311+
dataset_id = "team_slug/dataset_name:test_release"
312+
dataset = darwin_client.get_remote_dataset(dataset_id)
313+
314+
assert dataset.slug == "team_slug"
315+
assert dataset.name == "dataset_name"
316+
assert dataset.release == "test_release"
317+
318+
def it_should_work_without_a_release(darwin_client: Client):
319+
dataset_id = "team_slug/dataset_name"
320+
dataset = darwin_client.get_remote_dataset(dataset_id)
321+
322+
assert dataset.slug == "team_slug"
323+
assert dataset.name == "dataset_name"
324+
assert dataset.release == None
325+
326+
309327
@pytest.mark.usefixtures("file_read_write_test", "create_annotation_file")
310328
def describe_split_video_annotations():
311329
def it_works_on_videos(

0 commit comments

Comments
 (0)