supervisely 6.73.229__py3-none-any.whl → 6.73.231__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.

Potentially problematic release.


This version of supervisely might be problematic. Click here for more details.

@@ -74,7 +74,7 @@ class TagApi(ModuleApi):
74
74
 
75
75
  :param project_id: :class:`Dataset<supervisely.project.project.Project>` ID in Supervisely.
76
76
  :type project_id: int
77
- :param filters: List of parameters to sort output tags. See: https://dev.supervise.ly/api-docs/#tag/Advanced/paths/~1tags.list/get
77
+ :param filters: List of parameters to sort output tags. See: https://api.docs.supervisely.com/#tag/Advanced/paths/~1tags.list/get
78
78
  :type filters: List[Dict[str, str]], optional
79
79
  :return: List of the tags from the project with given id.
80
80
  :rtype: list
@@ -325,6 +325,7 @@ class ImageApi(RemoveableBulkModuleApi):
325
325
  return_first_response: Optional[bool] = False,
326
326
  project_id: Optional[int] = None,
327
327
  only_labelled: Optional[bool] = False,
328
+ fields: Optional[List[str]] = None,
328
329
  ) -> List[ImageInfo]:
329
330
  """
330
331
  List of Images in the given :class:`Dataset<supervisely.project.project.Dataset>`.
@@ -347,6 +348,8 @@ class ImageApi(RemoveableBulkModuleApi):
347
348
  :type project_id: :class:`int`
348
349
  :param only_labelled: If True, returns only images with labels.
349
350
  :type only_labelled: bool, optional
351
+ :param fields: List of fields to return. If None, returns all fields.
352
+ :type fields: List[str], optional
350
353
  :return: Objects with image information from Supervisely.
351
354
  :rtype: :class:`List[ImageInfo]<ImageInfo>`
352
355
  :Usage example:
@@ -419,7 +422,8 @@ class ImageApi(RemoveableBulkModuleApi):
419
422
  },
420
423
  }
421
424
  ]
422
-
425
+ if fields is not None:
426
+ data[ApiField.FIELDS] = fields
423
427
  return self.get_list_all_pages(
424
428
  "images.list",
425
429
  data=data,
@@ -232,7 +232,7 @@ class PointcloudApi(RemoveableBulkModuleApi):
232
232
 
233
233
  :param dataset_id: :class:`Dataset<supervisely.project.project.Dataset>` ID in Supervisely.
234
234
  :type dataset_id: int
235
- :param filters: List of parameters to sort output Pointclouds. See: https://dev.supervise.ly/api-docs/#tag/Point-Clouds/paths/~1point-clouds.list/get
235
+ :param filters: List of parameters to sort output Pointclouds. See: https://api.docs.supervisely.com/#tag/Point-Clouds/paths/~1point-clouds.list/get
236
236
  :type filters: List[Dict[str, str]], optional
237
237
  :return: List of the point clouds objects from the dataset with given id.
238
238
  :rtype: :class:`List[PointcloudInfo]`
@@ -407,7 +407,7 @@ class PointcloudApi(RemoveableBulkModuleApi):
407
407
  # 'hash': 'vxA+emfDNUkFP9P6oitMB5Q0rMlnskmV2jvcf47OjGU=',
408
408
  # 'link': None,
409
409
  # 'preview': '/previews/q/ext:jpeg/resize:fill:50:0:0/q:50/plain/h5ad-public/images/original/S/j/hJ/PwMg.png',
410
- # 'fullStorageUrl': 'https://dev.supervise.ly/hs4-public/images/original/S/j/hJ/PwMg.png',
410
+ # 'fullStorageUrl': 'https://app.supervisely.com/hs4-public/images/original/S/j/hJ/PwMg.png',
411
411
  # 'name': 'img00'
412
412
  # }
413
413
  """
@@ -339,16 +339,22 @@ class VideoApi(RemoveableBulkModuleApi):
339
339
  dataset_id: int,
340
340
  filters: Optional[List[Dict[str, str]]] = None,
341
341
  raw_video_meta: Optional[bool] = False,
342
+ fields: Optional[List[str]] = None,
343
+ force_metadata_for_links: Optional[bool] = False,
342
344
  ) -> List[VideoInfo]:
343
345
  """
344
346
  Get list of information about all videos for a given dataset ID.
345
347
 
346
348
  :param dataset_id: :class:`Dataset<supervisely.project.project.Dataset>` ID in Supervisely.
347
349
  :type dataset_id: int
348
- :param filters: List of parameters to sort output Videos. See: https://dev.supervise.ly/api-docs/#tag/Videos/paths/~1videos.list/get
350
+ :param filters: List of parameters to sort output Videos. See: https://api.docs.supervisely.com/#tag/Videos/paths/~1videos.list/get
349
351
  :type filters: List[Dict[str, str]], optional
350
352
  :param raw_video_meta: Get normalized metadata from server if False.
351
353
  :type raw_video_meta: bool
354
+ :param fields: List of fields to return.
355
+ :type fields: List[str], optional
356
+ :param force_metadata_for_links: Specify whether to force retrieving video metadata from the server.
357
+ :type force_metadata_for_links: Optional[bool]
352
358
  :return: List of information about videos in given dataset.
353
359
  :rtype: :class:`List[VideoInfo]`
354
360
 
@@ -372,15 +378,15 @@ class VideoApi(RemoveableBulkModuleApi):
372
378
  print(filtered_video_infos)
373
379
  # Output: [VideoInfo(id=19371139, ...)]
374
380
  """
375
-
376
- return self.get_list_all_pages(
377
- "videos.list",
378
- {
379
- ApiField.DATASET_ID: dataset_id,
380
- ApiField.FILTER: filters or [],
381
- ApiField.RAW_VIDEO_META: raw_video_meta,
382
- },
383
- )
381
+ data = {
382
+ ApiField.DATASET_ID: dataset_id,
383
+ ApiField.FILTER: filters or [],
384
+ ApiField.RAW_VIDEO_META: raw_video_meta,
385
+ ApiField.FORCE_METADATA_FOR_LINKS: force_metadata_for_links,
386
+ }
387
+ if fields is not None:
388
+ data[ApiField.FIELDS] = fields
389
+ return self.get_list_all_pages("videos.list", data)
384
390
 
385
391
  def get_list_generator(
386
392
  self,
@@ -391,6 +397,7 @@ class VideoApi(RemoveableBulkModuleApi):
391
397
  limit: Optional[int] = None,
392
398
  raw_video_meta: Optional[bool] = False,
393
399
  batch_size: Optional[int] = None,
400
+ force_metadata_for_links: Optional[bool] = False,
394
401
  ) -> Iterator[List[VideoInfo]]:
395
402
  data = {
396
403
  ApiField.DATASET_ID: dataset_id,
@@ -399,6 +406,7 @@ class VideoApi(RemoveableBulkModuleApi):
399
406
  ApiField.SORT_ORDER: sort_order,
400
407
  ApiField.RAW_VIDEO_META: raw_video_meta,
401
408
  ApiField.PAGINATION_MODE: ApiField.TOKEN,
409
+ ApiField.FORCE_METADATA_FOR_LINKS: force_metadata_for_links,
402
410
  }
403
411
  if batch_size is not None:
404
412
  data[ApiField.PER_PAGE] = batch_size
@@ -426,7 +434,7 @@ class VideoApi(RemoveableBulkModuleApi):
426
434
  :type id: int
427
435
  :param raise_error: Return an error if the video info was not received.
428
436
  :type raise_error: bool
429
- :param force_metadata_for_links: Get video metadata from server (if the video is uploaded as a link)
437
+ :param force_metadata_for_links: Specify whether to force retrieving video metadata from the server.
430
438
  :type force_metadata_for_links: bool
431
439
  :return: Information about Video. See :class:`info_sequence<info_sequence>`
432
440
  :rtype: :class:`VideoInfo`
@@ -506,7 +514,7 @@ class VideoApi(RemoveableBulkModuleApi):
506
514
  :type ids: List[int]
507
515
  :param progress_cb: Function for tracking download progress.
508
516
  :type progress_cb: Optional[Union[tqdm, Callable]]
509
- :param force_metadata_for_links: Get normalized metadata from server.
517
+ :param force_metadata_for_links: Specify whether to force retrieving video metadata from the server.
510
518
  :type force_metadata_for_links: bool
511
519
  :return: List of information about Videos. See :class:`info_sequence<info_sequence>`.
512
520
  :rtype: List[VideoInfo]
@@ -580,6 +588,8 @@ class VideoApi(RemoveableBulkModuleApi):
580
588
  :type id: int
581
589
  :param raise_error: Return an error if the video info was not received.
582
590
  :type raise_error: bool
591
+ :param force_metadata_for_links: Specify whether to force retrieving video metadata from the server.
592
+ :type force_metadata_for_links: bool
583
593
  :return: Information about Video. See :class:`info_sequence<info_sequence>`
584
594
  :rtype: dict
585
595
 
@@ -967,6 +977,7 @@ class VideoApi(RemoveableBulkModuleApi):
967
977
  links_names,
968
978
  metas=links_metas,
969
979
  skip_download=True,
980
+ force_metadata_for_links=False,
970
981
  )
971
982
 
972
983
  for info, pos in zip(res_infos_links, links_order):
@@ -1042,7 +1053,7 @@ class VideoApi(RemoveableBulkModuleApi):
1042
1053
  if len(set(vid_info.dataset_id for vid_info in ids_info)) > 1:
1043
1054
  raise ValueError("Videos ids have to be from the same dataset")
1044
1055
 
1045
- existing_videos = self.get_list(dst_dataset_id)
1056
+ existing_videos = self.get_list(dst_dataset_id, force_metadata_for_links=False)
1046
1057
  existing_names = {video.name for video in existing_videos}
1047
1058
 
1048
1059
  if change_name_if_conflict:
@@ -1846,7 +1857,7 @@ class VideoApi(RemoveableBulkModuleApi):
1846
1857
  :type skip_download: Optional[bool]
1847
1858
  :param progress_cb: Function for tracking the progress of copying.
1848
1859
  :type progress_cb: tqdm or callable, optional
1849
- :param force_metadata_for_links: Specify if metadata should be forced. Default is True.
1860
+ :param force_metadata_for_links: Specify whether to force retrieving videos metadata from the server after upload
1850
1861
  :type force_metadata_for_links: Optional[bool]
1851
1862
  :return: List with information about Videos. See :class:`info_sequence<info_sequence>`
1852
1863
  :rtype: :class:`List[VideoInfo]`
@@ -1939,6 +1950,7 @@ class VideoApi(RemoveableBulkModuleApi):
1939
1950
  hash: Optional[str] = None,
1940
1951
  meta: Optional[List[Dict]] = None,
1941
1952
  skip_download: Optional[bool] = False,
1953
+ force_metadata_for_links: Optional[bool] = True,
1942
1954
  ):
1943
1955
  """
1944
1956
  Upload Video from given link to Dataset.
@@ -1957,6 +1969,8 @@ class VideoApi(RemoveableBulkModuleApi):
1957
1969
  :type meta: List[Dict], optional
1958
1970
  :param skip_download: Skip download video to local storage.
1959
1971
  :type skip_download: Optional[bool]
1972
+ :param force_metadata_for_links: Specify whether to force retrieving video metadata from the server after upload
1973
+ :type force_metadata_for_links: Optional[bool]
1960
1974
  :return: List with information about Video. See :class:`info_sequence<info_sequence>`
1961
1975
  :rtype: :class:`List[VideoInfo]`
1962
1976
 
@@ -2041,6 +2055,7 @@ class VideoApi(RemoveableBulkModuleApi):
2041
2055
  hashes=[h],
2042
2056
  metas=[meta],
2043
2057
  skip_download=skip_download,
2058
+ force_metadata_for_links=force_metadata_for_links
2044
2059
  )
2045
2060
  if len(links) != 1:
2046
2061
  raise RuntimeError(
@@ -2216,7 +2231,7 @@ class VideoApi(RemoveableBulkModuleApi):
2216
2231
  :rtype: List[str]
2217
2232
  """
2218
2233
 
2219
- videos_in_dataset = self.get_list(dataset_id)
2234
+ videos_in_dataset = self.get_list(dataset_id, force_metadata_for_links=False)
2220
2235
  used_names = {video_info.name for video_info in videos_in_dataset}
2221
2236
  new_names = [
2222
2237
  generate_free_name(used_names, name, with_ext=True, extend_used_names=True)
@@ -2242,7 +2257,7 @@ class VideoApi(RemoveableBulkModuleApi):
2242
2257
  :return: None
2243
2258
  :rtype: None
2244
2259
  """
2245
- videos_in_dataset = self.get_list(dataset_id)
2260
+ videos_in_dataset = self.get_list(dataset_id, force_metadata_for_links=False)
2246
2261
  used_names = {video_info.name for video_info in videos_in_dataset}
2247
2262
  name_intersections = used_names.intersection(set(names))
2248
2263
  if message is None:
@@ -65,7 +65,7 @@ class VolumeInfo(NamedTuple):
65
65
  'rescaleIntercept': 0
66
66
  },
67
67
  path_original='/h5af-public/images/original/M/e/7R/vsytec8zX0p.nrrd',
68
- full_storage_url='https://dev.supervise.ly/h5un-public/images/original/M/e/7R/zX0p.nrrd',
68
+ full_storage_url='https://app.supervisely.com/h5un-public/images/original/M/e/7R/zX0p.nrrd',
69
69
  tags=[],
70
70
  team_id=435,
71
71
  workspace_id=685,
@@ -260,7 +260,7 @@ class VolumeApi(RemoveableBulkModuleApi):
260
260
 
261
261
  :param dataset_id: :class:`Dataset<supervisely.project.project.Dataset>` ID in Supervisely.
262
262
  :type dataset_id: int
263
- :param filters: List of parameters to sort output Volumes. See: https://dev.supervise.ly/api-docs/#tag/Volumes/paths/~1volumes.list/get
263
+ :param filters: List of parameters to sort output Volumes. See: https://api.docs.supervisely.com/#tag/Volumes/paths/~1volumes.list/get
264
264
  :type filters: List[Dict[str, str]], optional
265
265
  :param sort: Attribute to sort the list by. The default is "id". Valid values are "id", "name", "description", "createdAt", "updatedAt".
266
266
  :type sort: :class:`str`
@@ -349,7 +349,7 @@ class VolumeApi(RemoveableBulkModuleApi):
349
349
  # 'rescaleIntercept': 0
350
350
  # },
351
351
  # path_original='/h5af-public/images/original/M/e/7R/vs0p.nrrd',
352
- # full_storage_url='https://dev.supervise.ly/.../original/M/e/7R/zX0p.nrrd',
352
+ # full_storage_url='https://app.supervisely.com/.../original/M/e/7R/zX0p.nrrd',
353
353
  # tags=[],
354
354
  # team_id=435,
355
355
  # workspace_id=685,
@@ -435,7 +435,7 @@ class VolumeApi(RemoveableBulkModuleApi):
435
435
  # 'rescaleIntercept': 0
436
436
  # },
437
437
  # path_original='/h5af-public/images/original/M/e/7R/zfsfX0p.nrrd',
438
- # full_storage_url='https://dev.supervise.ly/h5un-public/images/original/M/e/7R/zXdd0p.nrrd',
438
+ # full_storage_url='https://app.supervisely.com/h5un-public/images/original/M/e/7R/zXdd0p.nrrd',
439
439
  # tags=[],
440
440
  # team_id=435,
441
441
  # workspace_id=685,
@@ -762,7 +762,7 @@ def _init(
762
762
  await StateJson.from_request(request)
763
763
 
764
764
  if not ("application/json" not in request.headers.get("Content-Type", "")):
765
- # {'command': 'inference_batch_ids', 'context': {}, 'state': {'dataset_id': 49711, 'batch_ids': [3120204], 'settings': None}, 'user_api_key': 'XXX', 'api_token': 'XXX', 'instance_type': None, 'server_address': 'https://dev.supervise.ly'}
765
+ # {'command': 'inference_batch_ids', 'context': {}, 'state': {'dataset_id': 49711, 'batch_ids': [3120204], 'settings': None}, 'user_api_key': 'XXX', 'api_token': 'XXX', 'instance_type': None, 'server_address': 'https://app.supervisely.com'}
766
766
  content = await request.json()
767
767
 
768
768
  request.state.context = content.get("context")
@@ -14,4 +14,4 @@
14
14
  # }
15
15
 
16
16
  # context_root: Download as, Run App (default), Report
17
- # [![Views](https://dev.supervise.ly/public/api/v3/ecosystem.counters?repo=supervisely-ecosystem/roads-test&counter=views&label=custom)](https://supervise.ly)
17
+ # [![Views](https://app.supervisely.com/public/api/v3/ecosystem.counters?repo=supervisely-ecosystem/roads-test&counter=views&label=custom)](https://supervisely.com)
@@ -123,7 +123,8 @@ class VideoConverter(BaseConverter):
123
123
 
124
124
  meta, renamed_classes, renamed_tags = self.merge_metas_with_conflicts(api, dataset_id)
125
125
 
126
- existing_names = set([vid.name for vid in api.video.get_list(dataset_id)])
126
+ videos_in_dataset = api.video.get_list(dataset_id, force_metadata_for_links=False)
127
+ existing_names = {video_info.name for video_info in videos_in_dataset}
127
128
 
128
129
  # check video codecs, mimetypes and convert if needed
129
130
  convert_progress, convert_progress_cb = self.get_progress(
@@ -1386,3 +1386,17 @@ def get_labeling_tool_link(url: str, name: Optional[str] = "open in labeling too
1386
1386
  :rtype: str
1387
1387
  """
1388
1388
  return f'<a href="{url}" rel="noopener noreferrer" target="_blank">{name}<i class="zmdi zmdi-open-in-new" style="margin-left: 5px"></i></a>'
1389
+
1390
+
1391
+ def get_size_from_bytes(data: bytes) -> Tuple[int, int]:
1392
+ """
1393
+ Get size of image from bytes.
1394
+
1395
+ :param data: Bytes of image.
1396
+ :type data: bytes
1397
+ :return: Height and width of image
1398
+ :rtype: :class:`Tuple[int, int]`
1399
+ """
1400
+ image = PILImage.open(io.BytesIO(data))
1401
+ width, height = image.size
1402
+ return width, height
@@ -233,7 +233,7 @@ def get_labeling_tool_url(dataset_id: int, pointcloud_id: int):
233
233
 
234
234
  print(url)
235
235
  # Output:
236
- # https://dev.supervise.ly/app/point-clouds/?datasetId=55875&pointCloudId=19373403
236
+ # https://app.supervisely.com/app/point-clouds/?datasetId=55875&pointCloudId=19373403
237
237
  """
238
238
 
239
239
  res = f"/app/point-clouds/?datasetId={dataset_id}&pointCloudId={pointcloud_id}"
@@ -280,7 +280,7 @@ def get_labeling_tool_link(url, name="open in labeling tool"):
280
280
  print(link)
281
281
  # Output:
282
282
  # <a
283
- # href="https://dev.supervise.ly/app/point-clouds/?datasetId=55875&pointCloudId=19373403"
283
+ # href="https://app.supervisely.com/app/point-clouds/?datasetId=55875&pointCloudId=19373403"
284
284
  # rel="noopener noreferrer"
285
285
  # target="_blank"
286
286
  # >
@@ -37,7 +37,7 @@ def get_labeling_tool_url(dataset_id, pointcloud_id):
37
37
 
38
38
  print(url)
39
39
  # Output:
40
- # https://dev.supervise.ly/app/point-clouds-tracking/?datasetId=55875&pointCloudId=19373403
40
+ # https://app.supervisely.com/app/point-clouds-tracking/?datasetId=55875&pointCloudId=19373403
41
41
  """
42
42
 
43
43
  res = f"/app/point-clouds-tracking/?datasetId={dataset_id}&pointCloudId={pointcloud_id}"
@@ -72,7 +72,7 @@ def get_labeling_tool_link(url, name="open in labeling tool"):
72
72
  api = sly.Api.from_env()
73
73
 
74
74
  # Pass values into the API constructor (optional, not recommended)
75
- # api = sly.Api(server_address="https://app.supervise.ly", token="4r47N...xaTatb")
75
+ # api = sly.Api(server_address="https://app.supervisely.com", token="4r47N...xaTatb")
76
76
 
77
77
  pointcloud_id = 19373403
78
78
  pcd_info = api.pointcloud.get_info_by_id(pointcloud_id)
@@ -84,7 +84,7 @@ def get_labeling_tool_link(url, name="open in labeling tool"):
84
84
  print(link)
85
85
  # Output:
86
86
  # <a
87
- # href="https://dev.supervise.ly/app/point-clouds/?datasetId=55875&pointCloudId=19373403"
87
+ # href="https://app.supervisely.com/app/point-clouds/?datasetId=55875&pointCloudId=19373403"
88
88
  # rel="noopener noreferrer"
89
89
  # target="_blank"
90
90
  # >
@@ -4418,7 +4418,12 @@ async def _download_project_async(
4418
4418
  else:
4419
4419
  dataset_fs = project_fs.create_dataset(dataset.name, dataset_path)
4420
4420
 
4421
- all_images = api.image.get_list(dataset_id, force_metadata_for_links=False)
4421
+ force_metadata_for_links = False
4422
+ if save_images is False and only_image_tags is True:
4423
+ force_metadata_for_links = True
4424
+ all_images = api.image.get_list(
4425
+ dataset_id, force_metadata_for_links=force_metadata_for_links
4426
+ )
4422
4427
  images = [image for image in all_images if images_ids is None or image.id in images_ids]
4423
4428
 
4424
4429
  ds_progress = progress_cb
@@ -4499,6 +4504,9 @@ async def _download_project_item_async(
4499
4504
  img_bytes = await api.image.download_bytes_single_async(
4500
4505
  img_info.id, semaphore=semaphore, check_hash=True
4501
4506
  )
4507
+ if None in [img_info.height, img_info.width]:
4508
+ width, height = sly.image.get_size_from_bytes(img_bytes)
4509
+ img_info = img_info._replace(height=height, width=width)
4502
4510
  else:
4503
4511
  img_bytes = None
4504
4512
 
@@ -4506,9 +4514,13 @@ async def _download_project_item_async(
4506
4514
  ann_info = await api.annotation.download_async(
4507
4515
  img_info.id,
4508
4516
  semaphore=semaphore,
4509
- force_metadata_for_links=False,
4517
+ force_metadata_for_links=not save_images,
4510
4518
  )
4511
4519
  ann_json = ann_info.annotation
4520
+ tmp_ann = Annotation.from_json(ann_json, meta)
4521
+ if None in tmp_ann.img_size:
4522
+ tmp_ann = tmp_ann.clone(img_size=(img_info.height, img_info.width))
4523
+ ann_json = tmp_ann.to_json()
4512
4524
  else:
4513
4525
  tags = TagCollection.from_api_response(
4514
4526
  img_info.tags,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.229
3
+ Version: 6.73.231
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -28,7 +28,7 @@ supervisely/api/dataset_api.py,sha256=2-SQBlgEnIN-0uvDbtPlSXr6ztBeZ3WPryhkOtpBmk
28
28
  supervisely/api/file_api.py,sha256=WMg80fxqMKOo3ai-IGON2w-IDAySPk90USoVk29JOdE,82415
29
29
  supervisely/api/github_api.py,sha256=NIexNjEer9H5rf5sw2LEZd7C1WR-tK4t6IZzsgeAAwQ,623
30
30
  supervisely/api/image_annotation_tool_api.py,sha256=YcUo78jRDBJYvIjrd-Y6FJAasLta54nnxhyaGyanovA,5237
31
- supervisely/api/image_api.py,sha256=WFtDTnYFyY6gUX3XRrJkLjEujbhiMhT-R9vk0C6iFpk,162389
31
+ supervisely/api/image_api.py,sha256=X26mRA40-DLU-AGD3iTe5x9VtNgQRbTvFDXrkfwDwe8,162626
32
32
  supervisely/api/import_storage_api.py,sha256=BDCgmR0Hv6OoiRHLCVPKt3iDxSVlQp1WrnKhAK_Zl84,460
33
33
  supervisely/api/issues_api.py,sha256=BqDJXmNoTzwc3xe6_-mA7FDFC5QQ-ahGbXk_HmpkSeQ,17925
34
34
  supervisely/api/labeling_job_api.py,sha256=odnzZjp29yM16Gq-FYkv-OA4WFMNJCLFo4qSikW2A7c,56280
@@ -51,10 +51,10 @@ supervisely/api/entity_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
51
51
  supervisely/api/entity_annotation/entity_annotation_api.py,sha256=K79KdDyepQv4FiNQHBj9V4-zLIemxK9WG1ig1bfBKb8,3083
52
52
  supervisely/api/entity_annotation/figure_api.py,sha256=WgeB6h8ZQsgeORXnEAq2LCCezLIMeVibetFTC1PxQM8,20896
53
53
  supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2Co7VU_kfFd1GYILZ4E,8875
54
- supervisely/api/entity_annotation/tag_api.py,sha256=jA6q5XuvJ6qAalM9ktGbscbNM07xw4Qo3odkkstvNKY,10882
54
+ supervisely/api/entity_annotation/tag_api.py,sha256=3PQEpLZaIL_3Ds2QWfyjHZctXA1KqvVVRYbVLw7npHU,10881
55
55
  supervisely/api/pointcloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  supervisely/api/pointcloud/pointcloud_annotation_api.py,sha256=_QABI38FCKBc4_VQ0B7jLOKMoRN9FFSt-w-zlEHd44s,7658
57
- supervisely/api/pointcloud/pointcloud_api.py,sha256=eOgIxwpXrqYwVmCgau27JFEUfze77yfzqOgw0hEZaMI,53275
57
+ supervisely/api/pointcloud/pointcloud_api.py,sha256=pn72znCr5hkAfgniXxfD6Vi8-HqRb1Nrf6l23-HQ7Bc,53277
58
58
  supervisely/api/pointcloud/pointcloud_episode_annotation_api.py,sha256=YGpU7g05XNV9o5daH5mFcUMmPPfgd085yIMNzXOVJqc,7009
59
59
  supervisely/api/pointcloud/pointcloud_episode_api.py,sha256=K_oPJeibj5oRYooeEWuSe6VxlxCYK3D8yLunm7vDeM0,7919
60
60
  supervisely/api/pointcloud/pointcloud_episode_object_api.py,sha256=k2_wV0EVPo9vxSTVe1qOvqVOMSVE6zGDSkfR6TRNsKs,691
@@ -64,14 +64,14 @@ supervisely/api/pointcloud/pointcloud_object_api.py,sha256=bO1USWb9HAywG_CW4CDu1
64
64
  supervisely/api/pointcloud/pointcloud_tag_api.py,sha256=iShtr052nOElxsyMyZEUT2vypEm6kP00gnP13ABX24A,4691
65
65
  supervisely/api/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
66
  supervisely/api/video/video_annotation_api.py,sha256=Um_7UOJtP_E25X6v41mrZfDbJaJuLMGoZm2IULwyg3w,10977
67
- supervisely/api/video/video_api.py,sha256=414SQsC5mr1vdKB4oVOJc14rdOH-tlxDCjFZq3fYowQ,92976
67
+ supervisely/api/video/video_api.py,sha256=2yFm1pbL-ziHl8vDyrf8z1qLbZxlo_22FyqjKPQbNg4,94228
68
68
  supervisely/api/video/video_figure_api.py,sha256=quksohjhgrK2l2-PtbbNE99fOW6uWXX59-_4xfc-I-k,6244
69
69
  supervisely/api/video/video_frame_api.py,sha256=4GwSI4xdCNYEUvTqzKc-Ewd44fw5zqkFoD24jrrN_aY,10214
70
70
  supervisely/api/video/video_object_api.py,sha256=IC0NP8EoIT_d3xxDRgz2cA3ixSiuJ5ymy64eS-RfmDM,2227
71
71
  supervisely/api/video/video_tag_api.py,sha256=oJgdJt_0w-5UfXaxZ7jdxK0PetZjax1vOfjm0IMYwe8,12266
72
72
  supervisely/api/volume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  supervisely/api/volume/volume_annotation_api.py,sha256=6s7p9nlNYHOMbhfFmVBGJizEKkA-yKEAiuHJZcAqEzM,18190
74
- supervisely/api/volume/volume_api.py,sha256=Ty2nK8J7T-rzLY-126k2HP4xROblZsZpjhs2SMX6wpU,55379
74
+ supervisely/api/volume/volume_api.py,sha256=-n3r5qj4I4EtoERKTHFT8PpsKFJ141SvQfamIcHqWK4,55387
75
75
  supervisely/api/volume/volume_figure_api.py,sha256=WwmcMw7o3Nvyv52tzmz64yF-WJI0qzAU-zL2JlD7_w0,26039
76
76
  supervisely/api/volume/volume_object_api.py,sha256=F7pLV2MTlBlyN6fEKdxBSUatIMGWSuu8bWj3Hvcageo,2139
77
77
  supervisely/api/volume/volume_tag_api.py,sha256=yNGgXz44QBSW2VGlNDOVLqLXnH8Q2fFrxDFb_girYXA,3639
@@ -93,11 +93,11 @@ supervisely/app/fastapi/index.html,sha256=4kF8PWYvssCX2iH0jOOq0dCcKxQfndpJbTzUF4
93
93
  supervisely/app/fastapi/no_html_main.html,sha256=NhQP7noyORBx72lFh1CQKgBRupkWjiq6Gaw-9Hkvg7c,37
94
94
  supervisely/app/fastapi/offline.py,sha256=CwMMkJ1frD6wiZS-SEoNDtQ1UJcJe1Ob6ohE3r4CQL8,7414
95
95
  supervisely/app/fastapi/request.py,sha256=NU7rKmxJ1pfkDZ7_yHckRcRAueJRQIqCor11UO2OHr8,766
96
- supervisely/app/fastapi/subapp.py,sha256=kvycQ2NSsitbdWxaSzGPjzNzvplONqi9UbNnfeAWryw,43411
96
+ supervisely/app/fastapi/subapp.py,sha256=PaVYX1VpmXsXMEgdCOhFXj4s8CwyeU25c4GXcZuMzL8,43414
97
97
  supervisely/app/fastapi/templating.py,sha256=3JO4WmQKfPMmb8xhSuV5knWCen3gTgfdqWpIx4RSJlg,2330
98
98
  supervisely/app/fastapi/utils.py,sha256=GZuTWLcVRGVx8TL3jVEYUOZIT2FawbwIe2kAOBLw9ho,398
99
99
  supervisely/app/fastapi/websocket.py,sha256=TlRSPOAhRItTv1HGvdukK1ZvhRjMUxRa-lJlsRR9rJw,1308
100
- supervisely/app/v1/__init__.py,sha256=iWJ_hlzURXkeC6eUy07qLESeY5JcpmHuH9wUafLow9o,842
100
+ supervisely/app/v1/__init__.py,sha256=OdU0PYv6hLwahYoyaLFO8m3cbJSchvPbqxuG1N3T734,848
101
101
  supervisely/app/v1/app_config.md,sha256=-8GKbiQoX25RhEj3EDJ7TxiYuFw5wL2TO3qV5AJLZTs,2536
102
102
  supervisely/app/v1/app_service.py,sha256=KGWns_M3OkQLdtsGpH3rBlA2hmSeqGkA-M5q5sTqxe4,23090
103
103
  supervisely/app/v1/constants.py,sha256=_BG2dsOSz-gAVKN9CN8--a4Tn1-osu1z9Cwy8ywIzH0,183
@@ -623,7 +623,7 @@ supervisely/convert/pointcloud_episodes/sly/__init__.py,sha256=47DEQpj8HBSa-_TIm
623
623
  supervisely/convert/pointcloud_episodes/sly/sly_pointcloud_episodes_converter.py,sha256=7ONcZMOUJCNpmc0tmMX6FnNG0lu8Nj9K2SSTQHaSXFM,6188
624
624
  supervisely/convert/pointcloud_episodes/sly/sly_pointcloud_episodes_helper.py,sha256=h4WvNH6cEHtjxxhCnU7Hs2vkyJMye0qwabqXNYVTywE,3570
625
625
  supervisely/convert/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
626
- supervisely/convert/video/video_converter.py,sha256=078BvRPi_2bTAdwPi9abp_3AlIpOR0fZs9du7xs1bwU,11251
626
+ supervisely/convert/video/video_converter.py,sha256=f-b6FexBjXw9xWv5w8lxlNxCh4FvacNolX-WQDibWFs,11338
627
627
  supervisely/convert/video/davis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
628
  supervisely/convert/video/davis/davis_converter.py,sha256=zaPsJdN6AvyPT7fVnswuPbgrz5T-X2RFbHEdkuMhWGk,415
629
629
  supervisely/convert/video/mot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -679,7 +679,7 @@ supervisely/imaging/_video.py,sha256=JgpHGbDTAqm_y67SDULk8tA7dN4Wq1j5gq7Koi7hw5Q
679
679
  supervisely/imaging/color.py,sha256=4SW3oIb5gnAQUEdJ-AgefatfXlYKHBG9Vy5hxA9eBEI,6991
680
680
  supervisely/imaging/colors.json.gz,sha256=KORWj3sbMFVHv11E4n94cVmbFdEnFO0EzX8k-ENrZLk,555428
681
681
  supervisely/imaging/font.py,sha256=0XcmWhlw7y2PAhrWgcsfInyRWj0WnlFpMSEXXilR8UA,2697
682
- supervisely/imaging/image.py,sha256=RxyQ1R5s-U5GlCJ648F9nNLV1Pbs4slfONflaJjx1gw,41532
682
+ supervisely/imaging/image.py,sha256=1KNc4qRbP9OlI4Yta07Kc2ohAgSBJ_9alF9Jag74w30,41873
683
683
  supervisely/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
684
684
  supervisely/io/docker_utils.py,sha256=hb_HXGM8IYB0PF-nD7NxMwaHgzaxIFxofsUzQ_RCUZI,7935
685
685
  supervisely/io/env.py,sha256=rKLLw1XQqM3s3X3k3ke9Skyy5hPK0LE_xVUBq3Qko0Q,17284
@@ -912,7 +912,7 @@ supervisely/nn/tracker/utils/gmc.py,sha256=3JX8979H3NA-YHNaRQyj9Z-xb9qtyMittPEjG
912
912
  supervisely/nn/tracker/utils/kalman_filter.py,sha256=XquwLRFVfZdJMHPqPUtq-kdtuKLY6zgGHbnPGTXL8qU,17044
913
913
  supervisely/output/__init__.py,sha256=OY-ZkdTkpg3qMkZa763Uk7UrRF1Q-p55qIBPo-tNPho,4585
914
914
  supervisely/pointcloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
915
- supervisely/pointcloud/pointcloud.py,sha256=rID4gWBgxSICX_VKyHzfOicmsgX1pozh_3jzdyKaarg,11030
915
+ supervisely/pointcloud/pointcloud.py,sha256=wWWnueObO7li5PckhRim7WxHytsm2zn1caK3zghQcfg,11036
916
916
  supervisely/pointcloud_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
917
917
  supervisely/pointcloud_annotation/constants.py,sha256=5I_3V4WwAOdxPM9QOyVHv_o561-gjV5d_s5IM1RxWrM,360
918
918
  supervisely/pointcloud_annotation/pointcloud_annotation.py,sha256=XitdjdjOYujSZy0pHB14djViZcloyN6I0A2ZQ0M_bTw,15881
@@ -929,13 +929,13 @@ supervisely/pointcloud_annotation/pointcloud_object_collection.py,sha256=2Q41LTe
929
929
  supervisely/pointcloud_annotation/pointcloud_tag.py,sha256=2HFHZh953pbG5bIHTlT_qMokZn2Ao7xWYZUFt55BMps,14172
930
930
  supervisely/pointcloud_annotation/pointcloud_tag_collection.py,sha256=j_TAN23GkTcSNk5Yfwe2mrnigLlarMtJ3b4Jhu4GaEo,10825
931
931
  supervisely/pointcloud_episodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
932
- supervisely/pointcloud_episodes/pointcloud_episodes.py,sha256=NqUkVdHBSIplB2wvzL6a8z8EuGNpAJuOn1j5UrmSrQw,3421
932
+ supervisely/pointcloud_episodes/pointcloud_episodes.py,sha256=cRXdtw7bMsbsdVQjxfWxFSESrO-LGiqqsZyyExl2Mbg,3430
933
933
  supervisely/project/__init__.py,sha256=hlzdj9Pgy53Q3qdP8LMtGTChvZHQuuShdtui2eRUQeE,2601
934
934
  supervisely/project/data_version.py,sha256=nknaWJSUCwoDyNG9_d1KA-GjzidhV9zd9Cn8cg15DOU,19270
935
935
  supervisely/project/download.py,sha256=qonvHBiKX-leHW9qWJdyBqFNmpI2_t9s54e68h9orq0,23687
936
936
  supervisely/project/pointcloud_episode_project.py,sha256=fcaFAaHVn_VvdiIfHl4IyEFE5-Q3VFGfo7_YoxEma0I,41341
937
937
  supervisely/project/pointcloud_project.py,sha256=Y8Xhi6Hg-KyztwFncezuDfKTt2FILss96EU_LdXzmrA,49172
938
- supervisely/project/project.py,sha256=n9aRA_QxKFdzsbzE4EYSP9H7J-jZZFDT4pFJTrgS0DI,180327
938
+ supervisely/project/project.py,sha256=T2ge_9HXlaDyDziEhr-5lcyUcHskaUIbgwtrWs7PqYo,180929
939
939
  supervisely/project/project_meta.py,sha256=26s8IiHC5Pg8B1AQi6_CrsWteioJP2in00cRNe8QlW0,51423
940
940
  supervisely/project/project_settings.py,sha256=NLThzU_DCynOK6hkHhVdFyezwprn9UqlnrLDe_3qhkY,9347
941
941
  supervisely/project/project_type.py,sha256=_3RqW2CnDBKFOvSIrQT1RJQaiHirs34_jiQS8CkwCpo,530
@@ -997,9 +997,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
997
997
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
998
998
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
999
999
  supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1000
- supervisely-6.73.229.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1001
- supervisely-6.73.229.dist-info/METADATA,sha256=_nNgiAdMBPvmoAJ0yduDtPQ4ySpQuqeFkzsCD72YLrY,33150
1002
- supervisely-6.73.229.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
1003
- supervisely-6.73.229.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1004
- supervisely-6.73.229.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1005
- supervisely-6.73.229.dist-info/RECORD,,
1000
+ supervisely-6.73.231.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1001
+ supervisely-6.73.231.dist-info/METADATA,sha256=6Nn3J-8unL0hd-sYLQcavVvRFWolrgNpy30IxKd6-So,33150
1002
+ supervisely-6.73.231.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
1003
+ supervisely-6.73.231.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1004
+ supervisely-6.73.231.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1005
+ supervisely-6.73.231.dist-info/RECORD,,