supervisely 6.73.337__py3-none-any.whl → 6.73.338__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.
@@ -69,6 +69,8 @@ class VideoDataset(Dataset):
69
69
  annotation_class = VideoAnnotation
70
70
  item_info_class = VideoInfo
71
71
 
72
+ datasets_dir_name = "datasets"
73
+
72
74
  @property
73
75
  def project_dir(self) -> str:
74
76
  """
@@ -1308,24 +1310,19 @@ def download_video_project(
1308
1310
  LOG_BATCH_SIZE = 1
1309
1311
 
1310
1312
  key_id_map = KeyIdMap()
1311
-
1312
1313
  project_fs = VideoProject(dest_dir, OpenMode.CREATE)
1313
-
1314
1314
  meta = ProjectMeta.from_json(api.project.get_meta(project_id))
1315
1315
  project_fs.set_meta(meta)
1316
-
1317
1316
  if progress_cb is not None:
1318
1317
  log_progress = False
1319
1318
 
1320
- datasets = []
1321
- if dataset_ids is not None:
1322
- for ds_id in dataset_ids:
1323
- datasets.append(api.dataset.get_info_by_id(ds_id))
1324
- else:
1325
- datasets = api.dataset.get_list(project_id)
1319
+ dataset_ids = set(dataset_ids) if (dataset_ids is not None) else None
1320
+ for parents, dataset in api.dataset.tree(project_id):
1321
+ if dataset_ids is not None and dataset.id not in dataset_ids:
1322
+ continue
1326
1323
 
1327
- for dataset in datasets:
1328
- dataset_fs = project_fs.create_dataset(dataset.name)
1324
+ dataset_path = Dataset._get_dataset_path(dataset.name, parents)
1325
+ dataset_fs = project_fs.create_dataset(dataset.name, dataset_path)
1329
1326
  videos = api.video.get_list(dataset.id)
1330
1327
 
1331
1328
  ds_progress = progress_cb
@@ -1463,9 +1460,17 @@ def upload_video_project(
1463
1460
  if progress_cb is not None:
1464
1461
  log_progress = False
1465
1462
 
1463
+ dataset_map = {}
1466
1464
  for dataset_fs in project_fs.datasets:
1467
1465
  dataset_fs: VideoDataset
1468
- dataset = api.dataset.create(project.id, dataset_fs.name)
1466
+ if len(dataset_fs.parents) > 0:
1467
+ parent = f"{os.path.sep}".join(dataset_fs.parents)
1468
+ parent_id = dataset_map.get(parent)
1469
+ else:
1470
+ parent = ""
1471
+ parent_id = None
1472
+ dataset = api.dataset.create(project.id, dataset_fs.short_name, parent_id=parent_id)
1473
+ dataset_map[os.path.join(parent, dataset.name)] = dataset.id
1469
1474
 
1470
1475
  names, item_paths, ann_paths = [], [], []
1471
1476
  for item_name in dataset_fs:
@@ -1603,15 +1608,14 @@ async def download_video_project_async(
1603
1608
  if progress_cb is not None:
1604
1609
  log_progress = False
1605
1610
 
1606
- datasets = []
1607
- if dataset_ids is not None:
1608
- for ds_id in dataset_ids:
1609
- datasets.append(api.dataset.get_info_by_id(ds_id))
1610
- else:
1611
- datasets = api.dataset.get_list(project_id, recursive=True)
1611
+ dataset_ids = set(dataset_ids) if (dataset_ids is not None) else None
1612
+ for parents, dataset in api.dataset.tree(project_id):
1613
+ if dataset_ids is not None and dataset.id not in dataset_ids:
1614
+ continue
1615
+
1616
+ dataset_path = Dataset._get_dataset_path(dataset.name, parents)
1612
1617
 
1613
- for dataset in datasets:
1614
- dataset_fs = project_fs.create_dataset(dataset.name)
1618
+ dataset_fs = project_fs.create_dataset(dataset.name, dataset_path)
1615
1619
  videos = api.video.get_list(dataset.id)
1616
1620
 
1617
1621
  if log_progress is True:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.337
3
+ Version: 6.73.338
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -1026,7 +1026,7 @@ supervisely/project/project_settings.py,sha256=NLThzU_DCynOK6hkHhVdFyezwprn9Uqln
1026
1026
  supervisely/project/project_type.py,sha256=EZDJFRi4MmC_5epYexBgML5WMZsWdEVk_CjqDQy5m3c,572
1027
1027
  supervisely/project/readme_template.md,sha256=rGmSLRVUSGjvorjpzl0sZ7YA4sKfDexl95NFtMISj3I,9128
1028
1028
  supervisely/project/upload.py,sha256=AjgHYgVZwUE25ygC5pqvFjdAladbyB8T78mlet5Qpho,3750
1029
- supervisely/project/video_project.py,sha256=STlkzLeRhpcg0kXLankWvX4DmkGTo4YlEgACAYSIeio,63580
1029
+ supervisely/project/video_project.py,sha256=bkQI3JTimQR-83iWAThjoz7bTcbCIqvvk039AG3BPXc,64081
1030
1030
  supervisely/project/volume_project.py,sha256=Kn9VEvWuKKZvL2nx6B6bjSvHuoZhAOxEc6DvPRexUco,22666
1031
1031
  supervisely/pyscripts_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1032
1032
  supervisely/pyscripts_utils/utils.py,sha256=scEwHJvHRQa8NHIOn2eTwH6-Zc8CGdLoxM-WzH9jcRo,314
@@ -1082,9 +1082,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
1082
1082
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
1083
1083
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
1084
1084
  supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1085
- supervisely-6.73.337.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1086
- supervisely-6.73.337.dist-info/METADATA,sha256=jScEliXar4ZvwI1uw3RQwMuYWDQiojDu2__YBWsvfDg,33596
1087
- supervisely-6.73.337.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1088
- supervisely-6.73.337.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1089
- supervisely-6.73.337.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1090
- supervisely-6.73.337.dist-info/RECORD,,
1085
+ supervisely-6.73.338.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1086
+ supervisely-6.73.338.dist-info/METADATA,sha256=sLqnzYNr1rYjzV2CmXxFRZ5PEBbE_Vlsfx_5PxHB3sw,33596
1087
+ supervisely-6.73.338.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1088
+ supervisely-6.73.338.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1089
+ supervisely-6.73.338.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1090
+ supervisely-6.73.338.dist-info/RECORD,,