supervisely 6.73.328__py3-none-any.whl → 6.73.330__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 +3 -2
- supervisely/api/api.py +15 -1
- supervisely/geometry/mask_3d.py +2 -1
- supervisely/io/fs.py +19 -38
- supervisely/io/json.py +4 -7
- supervisely/nn/inference/cache.py +6 -3
- supervisely/project/project.py +19 -34
- supervisely/project/video_project.py +3 -6
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/METADATA +1 -1
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/RECORD +14 -14
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/LICENSE +0 -0
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/WHEEL +0 -0
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.328.dist-info → supervisely-6.73.330.dist-info}/top_level.txt +0 -0
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
|
-
|
|
504
|
-
|
|
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
|
-
|
|
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
|
supervisely/geometry/mask_3d.py
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
1422
|
-
|
|
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
|
-
|
|
1458
|
-
|
|
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
|
-
|
|
1501
|
-
|
|
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
|
-
|
|
1554
|
-
|
|
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
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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))
|
|
@@ -65,7 +65,7 @@ class PersistentImageTTLCache(TTLCache):
|
|
|
65
65
|
def __init__(self, maxsize: int, ttl: int, filepath: Path):
|
|
66
66
|
super().__init__(maxsize, ttl)
|
|
67
67
|
self._base_dir = filepath
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
def pop(self, *args, **kwargs):
|
|
70
70
|
try:
|
|
71
71
|
super().pop(*args, **kwargs)
|
|
@@ -157,7 +157,8 @@ class PersistentImageTTLCache(TTLCache):
|
|
|
157
157
|
return sly.image.read(str(self[key]))
|
|
158
158
|
|
|
159
159
|
def save_video(self, video_id: int, src_video_path: str) -> None:
|
|
160
|
-
|
|
160
|
+
ext = Path(src_video_path).suffix
|
|
161
|
+
video_path = self._base_dir / f"video_{video_id}{ext}"
|
|
161
162
|
self[video_id] = video_path
|
|
162
163
|
if src_video_path != str(video_path):
|
|
163
164
|
shutil.move(src_video_path, str(video_path))
|
|
@@ -707,7 +708,9 @@ class InferenceImageCache:
|
|
|
707
708
|
return f"frame_{video_id}_{frame_index}"
|
|
708
709
|
|
|
709
710
|
def _video_name(self, video_id: int, video_name: str) -> str:
|
|
710
|
-
|
|
711
|
+
ext = Path(video_name).suffix
|
|
712
|
+
name = f"video_{video_id}{ext}"
|
|
713
|
+
return name
|
|
711
714
|
|
|
712
715
|
def _project_meta_name(self, project_id: int) -> str:
|
|
713
716
|
return f"project_meta_{project_id}"
|
supervisely/project/project.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1726
|
+
|
|
1734
1727
|
coroutine = ds.set_ann_async("IMG_0748.jpeg", new_ann)
|
|
1735
|
-
|
|
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
|
-
|
|
3746
|
-
|
|
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
|
-
|
|
1225
|
-
|
|
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
|
supervisely/README.md,sha256=XM-DiMC6To3I9RjQZ0c61905EFRR_jnCUx2q3uNR-X8,3331
|
|
2
2
|
supervisely/__init__.py,sha256=mtgVKiRSlnRU7yKG0Re130mBL10wCzsNfOfi-w-Kj4c,10833
|
|
3
|
-
supervisely/_utils.py,sha256=
|
|
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=
|
|
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
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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
|
|
@@ -882,7 +882,7 @@ supervisely/nn/benchmark/visualization/widgets/sidebar/sidebar.py,sha256=tKPURRS
|
|
|
882
882
|
supervisely/nn/benchmark/visualization/widgets/table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
883
883
|
supervisely/nn/benchmark/visualization/widgets/table/table.py,sha256=atmDnF1Af6qLQBUjLhK18RMDKAYlxnsuVHMSEa5a-e8,4319
|
|
884
884
|
supervisely/nn/inference/__init__.py,sha256=QFukX2ip-U7263aEPCF_UCFwj6EujbMnsgrXp5Bbt8I,1623
|
|
885
|
-
supervisely/nn/inference/cache.py,sha256=
|
|
885
|
+
supervisely/nn/inference/cache.py,sha256=LAirR5mFHCtK59EO1lefQ2qhpp0vBvRTH26EVrs13Y0,32073
|
|
886
886
|
supervisely/nn/inference/inference.py,sha256=O0GR2o0t9hDh-bMdiKrxk-hxdmQU1M-44aIcZM89Qo8,166222
|
|
887
887
|
supervisely/nn/inference/session.py,sha256=jmkkxbe2kH-lEgUU6Afh62jP68dxfhF5v6OGDfLU62E,35757
|
|
888
888
|
supervisely/nn/inference/video_inference.py,sha256=8Bshjr6rDyLay5Za8IB8Dr6FURMO2R_v7aELasO8pR4,5746
|
|
@@ -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=
|
|
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=
|
|
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.
|
|
1086
|
-
supervisely-6.73.
|
|
1087
|
-
supervisely-6.73.
|
|
1088
|
-
supervisely-6.73.
|
|
1089
|
-
supervisely-6.73.
|
|
1090
|
-
supervisely-6.73.
|
|
1085
|
+
supervisely-6.73.330.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1086
|
+
supervisely-6.73.330.dist-info/METADATA,sha256=7DGSsWKcrkcuUuubcwtKfHZrGbPagivEWaKPMnk8KD8,33596
|
|
1087
|
+
supervisely-6.73.330.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
1088
|
+
supervisely-6.73.330.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
1089
|
+
supervisely-6.73.330.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
1090
|
+
supervisely-6.73.330.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|