supervisely 6.73.329__py3-none-any.whl → 6.73.331__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.
supervisely/_utils.py CHANGED
@@ -500,8 +500,9 @@ def run_coroutine(coroutine):
500
500
  async def async_function():
501
501
  await asyncio.sleep(1)
502
502
  return "Hello, World!"
503
- coro = async_function()
504
- result = run_coroutine(coro)
503
+
504
+ coroutine = async_function()
505
+ result = run_coroutine(coroutine)
505
506
  print(result)
506
507
  # Output: Hello, World!
507
508
  """
supervisely/api/api.py CHANGED
@@ -290,6 +290,8 @@ class Api:
290
290
  # api = sly.Api(server_address="https://app.supervisely.com", token="4r47N...xaTatb")
291
291
  """
292
292
 
293
+ _checked_servers = set()
294
+
293
295
  def __init__(
294
296
  self,
295
297
  server_address: str = None,
@@ -371,7 +373,9 @@ class Api:
371
373
  self.retry_count = retry_count
372
374
  self.retry_sleep_sec = retry_sleep_sec
373
375
 
374
- self._skip_https_redirect_check = sly_env.supervisely_skip_https_user_helper_check()
376
+ skip_from_env = sly_env.supervisely_skip_https_user_helper_check()
377
+ self._skip_https_redirect_check = skip_from_env or self.server_address in Api._checked_servers
378
+ self.logger.debug(f"Skip HTTPS redirect check on API init: {self._skip_https_redirect_check}. ENV: {skip_from_env}. Checked servers: {Api._checked_servers}")
375
379
  self._require_https_redirect_check = False if self._skip_https_redirect_check else not self.server_address.startswith("https://")
376
380
 
377
381
  if check_instance_version:
@@ -886,7 +890,16 @@ class Api:
886
890
  return self.headers.pop(key)
887
891
 
888
892
  def _check_https_redirect(self):
893
+ """
894
+ Check if HTTP server should be redirected to HTTPS.
895
+ If the server has already been checked before (for any instance of this class),
896
+ skip the check to avoid redundant network requests.
897
+ """
889
898
  if self._require_https_redirect_check is True:
899
+ if self.server_address in Api._checked_servers:
900
+ self._require_https_redirect_check = False
901
+ return
902
+
890
903
  try:
891
904
  response = requests.get(
892
905
  self.server_address.replace("http://", "https://"),
@@ -904,6 +917,7 @@ class Api:
904
917
  except:
905
918
  pass
906
919
  finally:
920
+ Api._checked_servers.add(self.server_address)
907
921
  self._require_https_redirect_check = False
908
922
 
909
923
  @classmethod
@@ -130,6 +130,8 @@ class LabelingJobApi(RemoveableBulkModuleApi, ModuleWithStatus):
130
130
  """"""
131
131
  STOPPED = "stopped"
132
132
  """"""
133
+ REVIEW_COMPLETED = "review_completed"
134
+ """"""
133
135
 
134
136
  @staticmethod
135
137
  def info_sequence():
@@ -308,7 +308,7 @@ class Mask3D(Geometry):
308
308
  except KeyError as e:
309
309
  header_keys = ["'space'", "'space directions'", "'space origin'"]
310
310
  if str(e) in header_keys:
311
- logger.warning(
311
+ logger.debug(
312
312
  f"The Mask3D geometry created from the file '{file_path}' doesn't contain optional space attributes that have similar names to {', '.join(header_keys)}. To set the values for these attributes, you can use information from the Volume associated with this figure object."
313
313
  )
314
314
  return geometry
@@ -568,6 +568,7 @@ class Mask3D(Geometry):
568
568
 
569
569
  if origin:
570
570
  x, y = origin
571
+ # pylint: disable=possibly-used-before-assignment
571
572
  new_mask = np.zeros(new_shape, dtype=mask_2d.dtype)
572
573
  new_mask[x : x + mask_2d.shape[0], y : y + mask_2d.shape[1]] = mask_2d
573
574
 
supervisely/io/fs.py CHANGED
@@ -1,15 +1,15 @@
1
1
  # coding: utf-8
2
2
 
3
3
  # docs
4
+ import base64
4
5
  import errno
6
+ import hashlib
5
7
  import mimetypes
6
8
  import os
7
9
  import re
8
10
  import shutil
9
11
  import subprocess
10
12
  import tarfile
11
- import hashlib
12
- import base64
13
13
  from typing import Callable, Dict, Generator, List, Literal, Optional, Tuple, Union
14
14
 
15
15
  import aiofiles
@@ -1417,14 +1417,10 @@ async def copy_file_async(
1417
1417
  .. code-block:: python
1418
1418
 
1419
1419
  import supervisely as sly
1420
+ from supervisely._utils import run_coroutine
1420
1421
 
1421
- loop = sly.utils.get_or_create_event_loop()
1422
- coro = sly.fs.copy_file_async('/home/admin/work/projects/example/1.png', '/home/admin/work/tests/2.png')
1423
- if loop.is_running():
1424
- future = asyncio.run_coroutine_threadsafe(coro, loop)
1425
- future.result()
1426
- else:
1427
- loop.run_until_complete(coro)
1422
+ coroutine = sly.fs.copy_file_async('/home/admin/work/projects/example/1.png', '/home/admin/work/tests/2.png')
1423
+ run_coroutine(coroutine)
1428
1424
  """
1429
1425
  ensure_base_path(dst)
1430
1426
  async with aiofiles.open(dst, "wb") as out_f:
@@ -1453,14 +1449,10 @@ async def get_file_hash_async(path: str) -> str:
1453
1449
  .. code-block:: python
1454
1450
 
1455
1451
  import supervisely as sly
1452
+ from supervisely._utils import run_coroutine
1456
1453
 
1457
- loop = sly.utils.get_or_create_event_loop()
1458
- coro = sly.fs.get_file_hash_async('/home/admin/work/projects/examples/1.jpeg')
1459
- if loop.is_running():
1460
- future = asyncio.run_coroutine_threadsafe(coro, loop)
1461
- hash = future.result()
1462
- else:
1463
- hash = loop.run_until_complete(coro)
1454
+ coroutine = sly.fs.get_file_hash_async('/home/admin/work/projects/examples/1.jpeg')
1455
+ hash = run_coroutine(coroutine)
1464
1456
  """
1465
1457
  async with aiofiles.open(path, "rb") as file:
1466
1458
  file_bytes = await file.read()
@@ -1493,17 +1485,13 @@ async def unpack_archive_async(
1493
1485
  .. code-block:: python
1494
1486
 
1495
1487
  import supervisely as sly
1488
+ from supervisely._utils import run_coroutine
1496
1489
 
1497
1490
  archive_path = '/home/admin/work/examples.tar'
1498
1491
  target_dir = '/home/admin/work/projects'
1499
1492
 
1500
- loop = sly.utils.get_or_create_event_loop()
1501
- coro = sly.fs.unpack_archive_async(archive_path, target_dir)
1502
- if loop.is_running():
1503
- future = asyncio.run_coroutine_threadsafe(coro, loop)
1504
- future.result()
1505
- else:
1506
- loop.run_until_complete(coro)
1493
+ coroutine = sly.fs.unpack_archive_async(archive_path, target_dir)
1494
+ run_coroutine(coroutine)
1507
1495
  """
1508
1496
  if is_split:
1509
1497
  chunk = chunk_size_mb * 1024 * 1024
@@ -1549,14 +1537,10 @@ async def touch_async(path: str) -> None:
1549
1537
  .. code-block:: python
1550
1538
 
1551
1539
  import supervisely as sly
1540
+ from supervisely._utils import run_coroutine
1552
1541
 
1553
- loop = sly.utils.get_or_create_event_loop()
1554
- coro = sly.fs.touch_async('/home/admin/work/projects/examples/1.jpeg')
1555
- if loop.is_running():
1556
- future = asyncio.run_coroutine_threadsafe(coro, loop)
1557
- future.result()
1558
- else:
1559
- loop.run_until_complete(coro)
1542
+ coroutine = sly.fs.touch_async('/home/admin/work/projects/examples/1.jpeg')
1543
+ run_coroutine(coroutine)
1560
1544
  """
1561
1545
  ensure_base_path(path)
1562
1546
  async with aiofiles.open(path, "a"):
@@ -1591,15 +1575,12 @@ async def list_files_recursively_async(
1591
1575
  .. code-block:: python
1592
1576
 
1593
1577
  import supervisely as sly
1594
-
1578
+ from supervisely._utils import run_coroutine
1579
+
1595
1580
  dir_path = '/home/admin/work/projects/examples'
1596
- loop = sly.utils.get_or_create_event_loop()
1597
- coro = sly.fs.list_files_recursively_async(dir_path)
1598
- if loop.is_running():
1599
- future = asyncio.run_coroutine_threadsafe(coro, loop)
1600
- files = future.result()
1601
- else:
1602
- files = loop.run_until_complete(coro)
1581
+
1582
+ coroutine = sly.fs.list_files_recursively_async(dir_path)
1583
+ files = run_coroutine(coroutine)
1603
1584
  """
1604
1585
 
1605
1586
  def sync_file_list():
supervisely/io/json.py CHANGED
@@ -250,15 +250,12 @@ async def dump_json_file_async(data: Dict, filename: str, indent: Optional[int]
250
250
  .. code-block:: python
251
251
 
252
252
  import supervisely as sly
253
+ from supervisely._utils import run_coroutine
253
254
 
254
255
  data = {1: 'example'}
255
- loop = sly.utils.get_or_create_event_loop()
256
- coro = sly.json.dump_json_file_async(data, '/home/admin/work/projects/examples/1.json')
257
- if loop.is_running():
258
- future = asyncio.run_coroutine_threadsafe(coro, loop)
259
- future.result()
260
- else:
261
- loop.run_until_complete(coro)
256
+
257
+ coroutine = sly.json.dump_json_file_async(data, '/home/admin/work/projects/examples/1.json')
258
+ run_coroutine(coroutine)
262
259
  """
263
260
  async with aiofiles.open(filename, "w") as fout:
264
261
  await fout.write(json.dumps(data, indent=indent))
@@ -1301,19 +1301,16 @@ class Dataset(KeyObject):
1301
1301
  .. code-block:: python
1302
1302
 
1303
1303
  import supervisely as sly
1304
+ from supervisely._utils import run_coroutine
1305
+
1304
1306
  dataset_path = "/home/admin/work/supervisely/projects/lemons_annotated/ds1"
1305
1307
  ds = sly.Dataset(dataset_path, sly.OpenMode.READ)
1306
1308
 
1307
1309
  img_path = "/home/admin/Pictures/Clouds.jpeg"
1308
1310
  img_np = sly.image.read(img_path)
1309
- img_bytes = sly.image.write_bytes(img_np, "jpeg")
1310
- loop = sly.utils.get_or_create_event_loop()
1311
+ img_bytes = sly.image.write_bytes(img_np, "jpeg")
1311
1312
  coroutine = ds.add_item_raw_bytes_async("IMG_050.jpeg", img_bytes)
1312
- if loop.is_running():
1313
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
1314
- future.result()
1315
- else:
1316
- loop.run_until_complete(coroutine)
1313
+ run_coroutine(coroutine)
1317
1314
 
1318
1315
  print(ds.item_exists("IMG_050.jpeg"))
1319
1316
  # Output: True
@@ -1649,17 +1646,14 @@ class Dataset(KeyObject):
1649
1646
  .. code-block:: python
1650
1647
 
1651
1648
  import supervisely as sly
1649
+ from supervisely._utils import run_coroutine
1650
+
1652
1651
  dataset_path = "/home/admin/work/supervisely/projects/lemons_annotated/ds1"
1653
1652
  ds = sly.Dataset(dataset_path, sly.OpenMode.READ)
1654
1653
  new_ann = "/home/admin/work/supervisely/projects/kiwi_annotated/ds1/ann/IMG_1812.jpeg.json"
1655
1654
 
1656
- loop = sly.utils.get_or_create_event_loop()
1657
1655
  coroutine = ds.set_ann_file_async("IMG_1812.jpeg", new_ann)
1658
- if loop.is_running():
1659
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
1660
- future.result()
1661
- else:
1662
- loop.run_until_complete(coroutine)
1656
+ run_coroutine(coroutine)
1663
1657
  """
1664
1658
  if type(ann_path) is not str:
1665
1659
  raise TypeError("Annotation path should be a string, not a {}".format(type(ann_path)))
@@ -1682,6 +1676,8 @@ class Dataset(KeyObject):
1682
1676
  .. code-block:: python
1683
1677
 
1684
1678
  import supervisely as sly
1679
+ from supervisely._utils import run_coroutine
1680
+
1685
1681
  dataset_path = "/home/admin/work/supervisely/projects/lemons_annotated/ds1"
1686
1682
  ds = sly.Dataset(dataset_path, sly.OpenMode.READ)
1687
1683
 
@@ -1695,14 +1691,9 @@ class Dataset(KeyObject):
1695
1691
  "objects":[],
1696
1692
  "customBigData":{}
1697
1693
  }
1698
-
1699
- loop = sly.utils.get_or_create_event_loop()
1694
+
1700
1695
  coroutine = ds.set_ann_dict_async("IMG_8888.jpeg", new_ann_json)
1701
- if loop.is_running():
1702
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
1703
- future.result()
1704
- else:
1705
- loop.run_until_complete(coroutine)
1696
+ run_coroutine(coroutine)
1706
1697
  """
1707
1698
  if type(ann) is not dict:
1708
1699
  raise TypeError("Ann should be a dict, not a {}".format(type(ann)))
@@ -1725,18 +1716,16 @@ class Dataset(KeyObject):
1725
1716
  .. code-block:: python
1726
1717
 
1727
1718
  import supervisely as sly
1719
+ from supervisely._utils import run_coroutine
1720
+
1728
1721
  dataset_path = "/home/admin/work/supervisely/projects/lemons_annotated/ds1"
1729
1722
  ds = sly.Dataset(dataset_path, sly.OpenMode.READ)
1730
1723
 
1731
1724
  height, width = 500, 700
1732
1725
  new_ann = sly.Annotation((height, width))
1733
- loop = sly.utils.get_or_create_event_loop()
1726
+
1734
1727
  coroutine = ds.set_ann_async("IMG_0748.jpeg", new_ann)
1735
- if loop.is_running():
1736
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
1737
- future.result()
1738
- else:
1739
- loop.run_until_complete(coroutine)
1728
+ run_coroutine(coroutine)
1740
1729
  """
1741
1730
  if type(ann) is not self.annotation_class:
1742
1731
  raise TypeError(
@@ -3734,6 +3723,7 @@ class Project:
3734
3723
  .. code-block:: python
3735
3724
 
3736
3725
  import supervisely as sly
3726
+ from supervisely._utils import run_coroutine
3737
3727
 
3738
3728
  os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
3739
3729
  os.environ['API_TOKEN'] = 'Your Supervisely API Token'
@@ -3741,14 +3731,9 @@ class Project:
3741
3731
 
3742
3732
  project_id = 8888
3743
3733
  save_directory = "/path/to/save/projects"
3744
-
3745
- loop = sly.utils.get_or_create_event_loop()
3746
- coro = sly.Project.download_async(api, project_id, save_directory)
3747
- if loop.is_running():
3748
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
3749
- future.result()
3750
- else:
3751
- loop.run_until_complete(coroutine)
3734
+
3735
+ coroutine = sly.Project.download_async(api, project_id, save_directory)
3736
+ run_coroutine(coroutine)
3752
3737
  """
3753
3738
  if kwargs.pop("cache", None) is not None:
3754
3739
  logger.warning(
@@ -1211,6 +1211,7 @@ class VideoProject(Project):
1211
1211
  .. code-block:: python
1212
1212
 
1213
1213
  import supervisely as sly
1214
+ from supervisely._utils import run_coroutine
1214
1215
 
1215
1216
  os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
1216
1217
  os.environ['API_TOKEN'] = 'Your Supervisely API Token'
@@ -1219,13 +1220,9 @@ class VideoProject(Project):
1219
1220
  save_directory = "/home/admin/work/supervisely/source/video_project"
1220
1221
  project_id = 8888
1221
1222
 
1222
- loop = sly.utils.get_or_create_event_loop()
1223
1223
  coroutine = sly.VideoProject.download_async(api, project_id, save_directory)
1224
- if loop.is_running():
1225
- future = asyncio.run_coroutine_threadsafe(coroutine, loop)
1226
- future.result()
1227
- else:
1228
- loop.run_until_complete(coroutine)
1224
+ run_coroutine(coroutine)
1225
+
1229
1226
  """
1230
1227
  await download_video_project_async(
1231
1228
  api=api,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.329
3
+ Version: 6.73.331
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -1,6 +1,6 @@
1
1
  supervisely/README.md,sha256=XM-DiMC6To3I9RjQZ0c61905EFRR_jnCUx2q3uNR-X8,3331
2
2
  supervisely/__init__.py,sha256=mtgVKiRSlnRU7yKG0Re130mBL10wCzsNfOfi-w-Kj4c,10833
3
- supervisely/_utils.py,sha256=KWfbw8XFfV2uxLzhuku_J0UQKpG-D80Hp6UOQD316P8,17460
3
+ supervisely/_utils.py,sha256=3WHax8ILXmYuhjQnZHxMAEfshceRM6lkzVFPeWwN-v0,17487
4
4
  supervisely/function_wrapper.py,sha256=R5YajTQ0GnRp2vtjwfC9hINkzQc0JiyGsu8TER373xY,1912
5
5
  supervisely/sly_logger.py,sha256=z92Vu5hmC0GgTIJO1n6kPDayRW9__8ix8hL6poDZj-Y,6274
6
6
  supervisely/tiny_timer.py,sha256=hkpe_7FE6bsKL79blSs7WBaktuPavEVu67IpEPrfmjE,183
@@ -22,7 +22,7 @@ supervisely/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  supervisely/api/advanced_api.py,sha256=Nd5cCnHFWc3PSUrCtENxTGtDjS37_lCHXsgXvUI3Ti8,2054
23
23
  supervisely/api/agent_api.py,sha256=ShWAIlXcWXcyI9fqVuP5GZVCigCMJmjnvdGUfLspD6Y,8890
24
24
  supervisely/api/annotation_api.py,sha256=kuk4qwojTJxYr2iqAKbW-QhWw_DFc4TsjA2Wc2MEaqw,68449
25
- supervisely/api/api.py,sha256=DpLa2rTFKa9we4WUZD8jRuurK6G3OYsdnBb2VehEik0,66585
25
+ supervisely/api/api.py,sha256=JZtsdmaFSWe-Hbm2U9tu01eFNDYbxIM0hIYsVePKAtw,67316
26
26
  supervisely/api/app_api.py,sha256=RsbVej8WxWVn9cNo5s3Fqd1symsCdsfOaKVBKEUapRY,71927
27
27
  supervisely/api/dataset_api.py,sha256=GH7prDRJKyJlTv_7_Y-RkTwJN7ED4EkXNqqmi3iIdI4,41352
28
28
  supervisely/api/file_api.py,sha256=bVWv6kf3B5n6qlB14HmUa6iUr8ara5cr-pPK8QC7XWg,92932
@@ -31,7 +31,7 @@ supervisely/api/image_annotation_tool_api.py,sha256=YcUo78jRDBJYvIjrd-Y6FJAasLta
31
31
  supervisely/api/image_api.py,sha256=WIML_6N1qgOWBm3acexmGSWz4hAaSxlYmUtbytROaP8,192375
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
- supervisely/api/labeling_job_api.py,sha256=EWJh3TGauAOUWuAlK-Ey8s_S4FDMwa6I0snHX6dnhH8,55036
34
+ supervisely/api/labeling_job_api.py,sha256=VM1pjM65cUTeer1hrI7cSmCUOHJb7fzK6gJ-abA07hg,55097
35
35
  supervisely/api/module_api.py,sha256=GSkB9p4Xz9_HeIC9pFm060fOFeGkUK4M7pgryClrAbE,44545
36
36
  supervisely/api/neural_network_api.py,sha256=ktPVRO4Jeulougio8F0mioJJHwRJcX250Djp1wBoQ9c,7620
37
37
  supervisely/api/object_class_api.py,sha256=hBcQuKi9ouoiR7f99eot6vXHvqbzmal3IrHjJxuoFXg,10396
@@ -692,7 +692,7 @@ supervisely/geometry/graph.py,sha256=RDdZtN_P7TKAg4s_QXluCGzdmhD-IeonvK4Pix924kk
692
692
  supervisely/geometry/helpers.py,sha256=2gdYMFWTAr836gVXcp-lkDQs9tdaV0ou33kj3mzJBQA,5132
693
693
  supervisely/geometry/image_rotator.py,sha256=wrU8cXEUfuNcmPms2myUV4BpZqz_2oDArsEUFeiTpxs,6888
694
694
  supervisely/geometry/main_tests.py,sha256=K3Olsz9igHDW2IfIA5JOpjoE8bZ3ex2PXvVR2ZCDrHU,27199
695
- supervisely/geometry/mask_3d.py,sha256=XIVvUVk3-avDA08a7ne9YhwFYOOzVCuNlIJkGwqn5tc,20445
695
+ supervisely/geometry/mask_3d.py,sha256=7qlkCg_AaNkDDEl4C16rUh0J2hcEpe5rIaXzdFFstyo,20505
696
696
  supervisely/geometry/multichannel_bitmap.py,sha256=dL0igkOCVZiIZ9LDU7srFLA50XGo4doE-B5_E1uboXM,4968
697
697
  supervisely/geometry/point.py,sha256=zYsWTdFrA9rm97ymeMZlky_WrSG0xLniiLX_X4N2t5w,12986
698
698
  supervisely/geometry/point_3d.py,sha256=0ico0aV4fuKNBVrysDjUy1Cx1S9CEzBlEVE3AsbVd0E,1669
@@ -715,10 +715,10 @@ supervisely/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
715
715
  supervisely/io/docker_utils.py,sha256=hb_HXGM8IYB0PF-nD7NxMwaHgzaxIFxofsUzQ_RCUZI,7935
716
716
  supervisely/io/env.py,sha256=DLsoRhouPT-y5wJzzJBs7zhJ2UxOIvIcQVbVLP5Yx7U,18256
717
717
  supervisely/io/exception_handlers.py,sha256=_nAgMFeE94bCxEvWakR82hMtdOJUyn7Gc7OymMxI9WI,36484
718
- supervisely/io/fs.py,sha256=DvLDzZUEpo7_ieSbt1gw8BYmoSsNUBcGKpXVs0Wqckk,55296
718
+ supervisely/io/fs.py,sha256=HU2ttp424-Y8UKj_yoq1JNZsf2CrJP5MBUwD0ju_OSo,54573
719
719
  supervisely/io/fs_cache.py,sha256=985gvBGzveLcDudgz10E4EWVjP9jxdU1Pa0GFfCBoCA,6520
720
720
  supervisely/io/github_utils.py,sha256=jGmvQJ5bjtACuSFABzrxL0jJdh14SezovrHp8T-9y8g,1779
721
- supervisely/io/json.py,sha256=VvyqXZl22nb6_DJK3TUOPetd5xq9xwRFKumWqsGs7iI,8679
721
+ supervisely/io/json.py,sha256=25gBqA8nkKZW1xvssdmRYuJrO5fmIR0Z5cZGePfrJV4,8539
722
722
  supervisely/io/multipart_stream_decoder.py,sha256=rCheeSCAGdw2tNyaWEYa4dvoIDuldXOxH86RVB82c78,14417
723
723
  supervisely/io/network_exceptions.py,sha256=XnSmxLRyJmHtGyU7Wn5sZcidRjP3fU8ovRhNkVekU9Q,9153
724
724
  supervisely/labeling_jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1020,13 +1020,13 @@ supervisely/project/data_version.py,sha256=6vOz5ovBeCIiMAKUG7lGQ5IXvQnU1GbcnrWxd
1020
1020
  supervisely/project/download.py,sha256=GQFYN3KCdM_egXDzoyZrzl6Yeg2QshYQNFNlKi8Nh8A,25471
1021
1021
  supervisely/project/pointcloud_episode_project.py,sha256=yiWdNBQiI6f1O9sr1pg8JHW6O-w3XUB1rikJNn3Oung,41866
1022
1022
  supervisely/project/pointcloud_project.py,sha256=Kx1Vaes-krwG3BiRRtHRLQxb9G5m5bTHPN9IzRqmNWo,49399
1023
- supervisely/project/project.py,sha256=3b5tslwDcQYd-7K-r5Yo9DqOgEZ1iKjwu6jaQXLTYAw,206749
1023
+ supervisely/project/project.py,sha256=VQ_Axf2aCj6YK5FqbdpdawhSze8IG1cPkMvPnu7Uddc,205935
1024
1024
  supervisely/project/project_meta.py,sha256=26s8IiHC5Pg8B1AQi6_CrsWteioJP2in00cRNe8QlW0,51423
1025
1025
  supervisely/project/project_settings.py,sha256=NLThzU_DCynOK6hkHhVdFyezwprn9UqlnrLDe_3qhkY,9347
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=8fJeicVWNMbek24PmNRBtbnFhvXsnxPg5dpNrL5VNW4,63739
1029
+ supervisely/project/video_project.py,sha256=STlkzLeRhpcg0kXLankWvX4DmkGTo4YlEgACAYSIeio,63580
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.329.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1086
- supervisely-6.73.329.dist-info/METADATA,sha256=G1AJOfCxXxOhcuYnmqYJyXal2CD6lg4rGZBa4CG2NMo,33596
1087
- supervisely-6.73.329.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1088
- supervisely-6.73.329.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1089
- supervisely-6.73.329.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1090
- supervisely-6.73.329.dist-info/RECORD,,
1085
+ supervisely-6.73.331.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1086
+ supervisely-6.73.331.dist-info/METADATA,sha256=Jl2Q2-aQqYnnh1EDKOY95wpocUZnttqC5StXwKTOO8I,33596
1087
+ supervisely-6.73.331.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1088
+ supervisely-6.73.331.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1089
+ supervisely-6.73.331.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1090
+ supervisely-6.73.331.dist-info/RECORD,,