supervisely 6.73.221__py3-none-any.whl → 6.73.223__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.
- supervisely/api/api.py +609 -3
- supervisely/api/file_api.py +523 -9
- supervisely/api/image_api.py +481 -5
- supervisely/api/pointcloud/pointcloud_api.py +390 -1
- supervisely/api/video/video_api.py +283 -8
- supervisely/api/volume/volume_api.py +223 -2
- supervisely/convert/base_converter.py +94 -3
- supervisely/convert/converter.py +11 -5
- supervisely/convert/image/image_converter.py +40 -19
- supervisely/convert/image/sly/fast_sly_image_converter.py +4 -0
- supervisely/convert/image/sly/sly_image_converter.py +24 -8
- supervisely/convert/video/sly/sly_video_converter.py +9 -1
- supervisely/convert/video/video_converter.py +53 -29
- supervisely/io/fs.py +125 -0
- supervisely/io/fs_cache.py +19 -1
- supervisely/io/network_exceptions.py +20 -3
- supervisely/task/progress.py +1 -1
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/METADATA +3 -1
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/RECORD +23 -23
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/LICENSE +0 -0
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/WHEEL +0 -0
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.221.dist-info → supervisely-6.73.223.dist-info}/top_level.txt +0 -0
supervisely/io/fs.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
3
|
# docs
|
|
4
|
+
import asyncio
|
|
4
5
|
import errno
|
|
5
6
|
import mimetypes
|
|
6
7
|
import os
|
|
@@ -10,6 +11,7 @@ import subprocess
|
|
|
10
11
|
import tarfile
|
|
11
12
|
from typing import Callable, Dict, Generator, List, Literal, Optional, Tuple, Union
|
|
12
13
|
|
|
14
|
+
import aiofiles
|
|
13
15
|
import requests
|
|
14
16
|
from requests.structures import CaseInsensitiveDict
|
|
15
17
|
from tqdm import tqdm
|
|
@@ -1348,3 +1350,126 @@ def str_is_url(string: str) -> bool:
|
|
|
1348
1350
|
return all([result.scheme, result.netloc])
|
|
1349
1351
|
except ValueError:
|
|
1350
1352
|
return False
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
async def copy_file_async(
|
|
1356
|
+
src: str,
|
|
1357
|
+
dst: str,
|
|
1358
|
+
progress_cb: Optional[Union[tqdm, Callable]] = None,
|
|
1359
|
+
progress_cb_type: Literal["number", "size"] = "size",
|
|
1360
|
+
) -> None:
|
|
1361
|
+
"""
|
|
1362
|
+
Asynchronously copy file from one path to another, if destination directory doesn't exist it will be created.
|
|
1363
|
+
|
|
1364
|
+
:param src: Source file path.
|
|
1365
|
+
:type src: str
|
|
1366
|
+
:param dst: Destination file path.
|
|
1367
|
+
:type dst: str
|
|
1368
|
+
:param progress_cb: Function for tracking copy progress.
|
|
1369
|
+
:type progress_cb: Union[tqdm, Callable], optional
|
|
1370
|
+
:param progress_cb_type: Type of progress callback. Can be "number" or "size". Default is "size".
|
|
1371
|
+
:type progress_cb_type: Literal["number", "size"], optional
|
|
1372
|
+
:returns: None
|
|
1373
|
+
:rtype: :class:`NoneType`
|
|
1374
|
+
:Usage example:
|
|
1375
|
+
|
|
1376
|
+
.. code-block:: python
|
|
1377
|
+
|
|
1378
|
+
from supervisely.io.fs import async_copy_file
|
|
1379
|
+
await async_copy_file('/home/admin/work/projects/example/1.png', '/home/admin/work/tests/2.png')
|
|
1380
|
+
"""
|
|
1381
|
+
ensure_base_path(dst)
|
|
1382
|
+
async with aiofiles.open(dst, "wb") as out_f:
|
|
1383
|
+
async with aiofiles.open(src, "rb") as in_f:
|
|
1384
|
+
while True:
|
|
1385
|
+
chunk = await in_f.read(1024 * 1024)
|
|
1386
|
+
if not chunk:
|
|
1387
|
+
break
|
|
1388
|
+
await out_f.write(chunk)
|
|
1389
|
+
if progress_cb is not None and progress_cb_type == "size":
|
|
1390
|
+
progress_cb(len(chunk))
|
|
1391
|
+
if progress_cb is not None and progress_cb_type == "number":
|
|
1392
|
+
progress_cb(1)
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
async def get_file_hash_async(path: str) -> str:
|
|
1396
|
+
"""
|
|
1397
|
+
Get hash from target file asynchronously.
|
|
1398
|
+
|
|
1399
|
+
:param path: Target file path.
|
|
1400
|
+
:type path: str
|
|
1401
|
+
:returns: File hash
|
|
1402
|
+
:rtype: :class:`str`
|
|
1403
|
+
:Usage example:
|
|
1404
|
+
|
|
1405
|
+
.. code-block:: python
|
|
1406
|
+
|
|
1407
|
+
from supervisely.io.fs import get_file_hash_async
|
|
1408
|
+
hash = await get_file_hash_async('/home/admin/work/projects/examples/1.jpeg') # rKLYA/p/P64dzidaQ/G7itxIz3ZCVnyUhEE9fSMGxU4=
|
|
1409
|
+
"""
|
|
1410
|
+
async with aiofiles.open(path, "rb") as file:
|
|
1411
|
+
file_bytes = await file.read()
|
|
1412
|
+
return get_bytes_hash(file_bytes)
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
async def unpack_archive_async(
|
|
1416
|
+
archive_path: str, target_dir: str, remove_junk=True, is_split=False, chunk_size_mb: int = 50
|
|
1417
|
+
) -> None:
|
|
1418
|
+
"""
|
|
1419
|
+
Unpacks archive to the target directory, removes junk files and directories.
|
|
1420
|
+
To extract a split archive, you must pass the path to the first part in archive_path. Archive parts must be in the same directory. Format: archive_name.tar.001, archive_name.tar.002, etc. Works with tar and zip.
|
|
1421
|
+
You can adjust the size of the chunk to read from the file, while unpacking the file from parts.
|
|
1422
|
+
Be careful with this parameter, it can affect the performance of the function.
|
|
1423
|
+
|
|
1424
|
+
:param archive_path: Path to the archive.
|
|
1425
|
+
:type archive_path: str
|
|
1426
|
+
:param target_dir: Path to the target directory.
|
|
1427
|
+
:type target_dir: str
|
|
1428
|
+
:param remove_junk: Remove junk files and directories. Default is True.
|
|
1429
|
+
:type remove_junk: bool
|
|
1430
|
+
:param is_split: Determines if the source archive is split into parts. If True, archive_path must be the path to the first part. Default is False.
|
|
1431
|
+
:type is_split: bool
|
|
1432
|
+
:param chunk_size_mb: Size of the chunk to read from the file. Default is 50Mb.
|
|
1433
|
+
:type chunk_size_mb: int
|
|
1434
|
+
:returns: None
|
|
1435
|
+
:rtype: :class:`NoneType`
|
|
1436
|
+
:Usage example:
|
|
1437
|
+
|
|
1438
|
+
.. code-block:: python
|
|
1439
|
+
|
|
1440
|
+
import supervisely as sly
|
|
1441
|
+
|
|
1442
|
+
archive_path = '/home/admin/work/examples.tar'
|
|
1443
|
+
target_dir = '/home/admin/work/projects'
|
|
1444
|
+
|
|
1445
|
+
await sly.fs.unpack_archive(archive_path, target_dir)
|
|
1446
|
+
"""
|
|
1447
|
+
if is_split:
|
|
1448
|
+
chunk = chunk_size_mb * 1024 * 1024
|
|
1449
|
+
base_name = get_file_name(archive_path)
|
|
1450
|
+
dir_name = os.path.dirname(archive_path)
|
|
1451
|
+
if get_file_ext(base_name) in (".zip", ".tar"):
|
|
1452
|
+
ext = get_file_ext(base_name)
|
|
1453
|
+
base_name = get_file_name(base_name)
|
|
1454
|
+
else:
|
|
1455
|
+
ext = get_file_ext(archive_path)
|
|
1456
|
+
parts = sorted([f for f in os.listdir(dir_name) if f.startswith(base_name)])
|
|
1457
|
+
combined = os.path.join(dir_name, f"combined{ext}")
|
|
1458
|
+
|
|
1459
|
+
async with aiofiles.open(combined, "wb") as output_file:
|
|
1460
|
+
for part in parts:
|
|
1461
|
+
part_path = os.path.join(dir_name, part)
|
|
1462
|
+
async with aiofiles.open(part_path, "rb") as input_file:
|
|
1463
|
+
while True:
|
|
1464
|
+
data = await input_file.read(chunk)
|
|
1465
|
+
if not data:
|
|
1466
|
+
break
|
|
1467
|
+
await output_file.write(data)
|
|
1468
|
+
archive_path = combined
|
|
1469
|
+
|
|
1470
|
+
loop = asyncio.get_running_loop()
|
|
1471
|
+
await loop.run_in_executor(None, shutil.unpack_archive, archive_path, target_dir)
|
|
1472
|
+
if is_split:
|
|
1473
|
+
silent_remove(archive_path)
|
|
1474
|
+
if remove_junk:
|
|
1475
|
+
remove_junk_from_dir(target_dir)
|
supervisely/io/fs_cache.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
|
+
import hashlib
|
|
3
4
|
import os
|
|
4
5
|
import os.path as osp
|
|
5
|
-
import hashlib
|
|
6
6
|
import shutil
|
|
7
7
|
|
|
8
8
|
from supervisely.io import fs as sly_fs
|
|
@@ -141,6 +141,24 @@ class FileCache(FSCache):
|
|
|
141
141
|
def _rm_obj_impl(self, st_path):
|
|
142
142
|
os.remove(st_path)
|
|
143
143
|
|
|
144
|
+
async def _read_obj_impl_async(self, st_path, dst_path):
|
|
145
|
+
sly_fs.ensure_base_path(dst_path)
|
|
146
|
+
await sly_fs.copy_file_async(st_path, dst_path)
|
|
147
|
+
|
|
148
|
+
async def write_object_async(self, src_path, data_hash):
|
|
149
|
+
suffix = self._get_suffix(src_path)
|
|
150
|
+
st_path = self.get_storage_path(data_hash, suffix)
|
|
151
|
+
if not self._storage_obj_exists(st_path, suffix):
|
|
152
|
+
await sly_fs.copy_file_async(src_path, st_path)
|
|
153
|
+
|
|
154
|
+
async def read_object_async(self, data_hash, dst_path):
|
|
155
|
+
suffix = self._get_suffix(dst_path)
|
|
156
|
+
st_path = self.check_storage_object(data_hash, suffix)
|
|
157
|
+
if not st_path:
|
|
158
|
+
return None
|
|
159
|
+
await self._read_obj_impl(st_path, dst_path)
|
|
160
|
+
return dst_path
|
|
161
|
+
|
|
144
162
|
|
|
145
163
|
class NNCache(FSCache):
|
|
146
164
|
def _storage_obj_exists(self, st_path, suffix):
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import time
|
|
4
4
|
import traceback
|
|
5
5
|
|
|
6
|
+
import httpx
|
|
6
7
|
import requests
|
|
7
8
|
|
|
8
9
|
CONNECTION_ERROR = "Temporary connection error, please wait ..."
|
|
@@ -44,18 +45,22 @@ def process_requests_exception(
|
|
|
44
45
|
requests.exceptions.Timeout,
|
|
45
46
|
requests.exceptions.TooManyRedirects,
|
|
46
47
|
requests.exceptions.ChunkedEncodingError,
|
|
48
|
+
httpx.ConnectError,
|
|
49
|
+
httpx.TimeoutException,
|
|
50
|
+
httpx.TooManyRedirects,
|
|
51
|
+
httpx.ProtocolError,
|
|
47
52
|
),
|
|
48
53
|
)
|
|
49
54
|
|
|
50
55
|
is_server_retryable_error = (
|
|
51
|
-
isinstance(exc, requests.exceptions.HTTPError)
|
|
56
|
+
isinstance(exc, (requests.exceptions.HTTPError, httpx.HTTPStatusError))
|
|
52
57
|
and hasattr(exc, "response")
|
|
53
58
|
and (exc.response.status_code in RETRY_STATUS_CODES)
|
|
54
59
|
)
|
|
55
60
|
|
|
56
61
|
is_need_ping_error = False
|
|
57
62
|
if (
|
|
58
|
-
isinstance(exc, requests.exceptions.HTTPError)
|
|
63
|
+
isinstance(exc, (requests.exceptions.HTTPError, httpx.HTTPStatusError))
|
|
59
64
|
and hasattr(exc, "response")
|
|
60
65
|
and (exc.response.status_code == 400)
|
|
61
66
|
):
|
|
@@ -91,7 +96,7 @@ def process_requests_exception(
|
|
|
91
96
|
)
|
|
92
97
|
elif response is None:
|
|
93
98
|
process_unhandled_request(external_logger, exc)
|
|
94
|
-
elif isinstance(exc, requests.exceptions.HTTPError):
|
|
99
|
+
elif isinstance(exc, (requests.exceptions.HTTPError, httpx.HTTPStatusError)):
|
|
95
100
|
process_invalid_request(external_logger, exc, response, verbose)
|
|
96
101
|
else:
|
|
97
102
|
process_unhandled_request(external_logger, exc)
|
|
@@ -125,6 +130,18 @@ def process_retryable_request(
|
|
|
125
130
|
|
|
126
131
|
|
|
127
132
|
def process_invalid_request(external_logger, exc, response, verbose=True):
|
|
133
|
+
if type(response) in (httpx.Response, requests.Response):
|
|
134
|
+
reason = (
|
|
135
|
+
response.content.decode("utf-8")
|
|
136
|
+
if not hasattr(response, "is_stream_consumed")
|
|
137
|
+
else "Content is not acessible for streaming responses"
|
|
138
|
+
)
|
|
139
|
+
status_code = response.status_code
|
|
140
|
+
url = response.url
|
|
141
|
+
else:
|
|
142
|
+
reason = "Reason is unknown"
|
|
143
|
+
status_code = None
|
|
144
|
+
url = None
|
|
128
145
|
if verbose:
|
|
129
146
|
external_logger.warn(
|
|
130
147
|
REQUEST_FAILED,
|
supervisely/task/progress.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: supervisely
|
|
3
|
-
Version: 6.73.
|
|
3
|
+
Version: 6.73.223
|
|
4
4
|
Summary: Supervisely Python SDK.
|
|
5
5
|
Home-page: https://github.com/supervisely/supervisely
|
|
6
6
|
Author: Supervisely
|
|
@@ -68,6 +68,8 @@ Requires-Dist: cacheout==0.14.1
|
|
|
68
68
|
Requires-Dist: jsonschema<=4.20.0,>=2.6.0
|
|
69
69
|
Requires-Dist: pyjwt<3.0.0,>=2.1.0
|
|
70
70
|
Requires-Dist: zstd
|
|
71
|
+
Requires-Dist: aiofiles
|
|
72
|
+
Requires-Dist: httpx[http2]==0.27.2
|
|
71
73
|
Provides-Extra: apps
|
|
72
74
|
Requires-Dist: uvicorn[standard]<1.0.0,>=0.18.2; extra == "apps"
|
|
73
75
|
Requires-Dist: fastapi<1.0.0,>=0.79.0; extra == "apps"
|
|
@@ -22,13 +22,13 @@ 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=Eps-Jf10_SQFy7DjghUnyiM6DcVJBsamHDViRAXv2fg,51403
|
|
25
|
-
supervisely/api/api.py,sha256=
|
|
25
|
+
supervisely/api/api.py,sha256=Jvc0nQqu6q4-1ey26AJiCcw96BzqP0ORBQqsoKO7gOI,60633
|
|
26
26
|
supervisely/api/app_api.py,sha256=zX3Iy16RuGwtcLZfMs3YfUFc93S9AVGb3W_eINeMjOs,66729
|
|
27
27
|
supervisely/api/dataset_api.py,sha256=7iwAyz3pmzFG2i072gLdXjczfBGbyj-V_rRl7Tx-V30,37944
|
|
28
|
-
supervisely/api/file_api.py,sha256=
|
|
28
|
+
supervisely/api/file_api.py,sha256=UQM5susk1DMgmEEZZq4tiMCKbglKYl8MqiZn1iPLqus,76821
|
|
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=
|
|
31
|
+
supervisely/api/image_api.py,sha256=BQ_X0z7G-AFim3u6CBqSRPVRqvfa8OFo4sYywSCYCAM,158458
|
|
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
|
|
@@ -54,7 +54,7 @@ supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2
|
|
|
54
54
|
supervisely/api/entity_annotation/tag_api.py,sha256=jA6q5XuvJ6qAalM9ktGbscbNM07xw4Qo3odkkstvNKY,10882
|
|
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=
|
|
57
|
+
supervisely/api/pointcloud/pointcloud_api.py,sha256=mxT3RP3-LBkHN4Waihmy1L34_bQENZQnLGSGE9JA5rc,53399
|
|
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=DwZh11fBLa_AWwdYbpbSH1ZGh_5TFfLJiPKcXuOVc14,9319
|
|
67
|
-
supervisely/api/video/video_api.py,sha256=
|
|
67
|
+
supervisely/api/video/video_api.py,sha256=_UOBYr6p6fjzQWU6EQQcDaAebmCsRsaIyRBxlHImPb8,93036
|
|
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=
|
|
74
|
+
supervisely/api/volume/volume_api.py,sha256=j8TGNnOY53IDKybuqpTNIWjnCRi8hmTBmfGTMxCj5oQ,55439
|
|
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
|
|
@@ -554,10 +554,10 @@ supervisely/collection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
|
554
554
|
supervisely/collection/key_indexed_collection.py,sha256=x2UVlkprspWhhae9oLUzjTWBoIouiWY9UQSS_MozfH0,37643
|
|
555
555
|
supervisely/collection/str_enum.py,sha256=Zp29yFGvnxC6oJRYNNlXhO2lTSdsriU1wiGHj6ahEJE,1250
|
|
556
556
|
supervisely/convert/__init__.py,sha256=gRTV93OYJPI3FNfy78HO2SfR59qQ3FFKFSy_jw1adJ8,2571
|
|
557
|
-
supervisely/convert/base_converter.py,sha256=
|
|
558
|
-
supervisely/convert/converter.py,sha256=
|
|
557
|
+
supervisely/convert/base_converter.py,sha256=1Fm31rm2eBjwfN0hYvCBZ5fr9omU10k5sKHttSlCFpE,18127
|
|
558
|
+
supervisely/convert/converter.py,sha256=_uJdKG6w_jISKdyZXrhl6rQOvkuxAKBxqyemIidERgg,8936
|
|
559
559
|
supervisely/convert/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
560
|
-
supervisely/convert/image/image_converter.py,sha256=
|
|
560
|
+
supervisely/convert/image/image_converter.py,sha256=r-qdhuwOsk727mXIM26ucQhkoIKigu1M0BF-tw9IfGg,10321
|
|
561
561
|
supervisely/convert/image/image_helper.py,sha256=RkBAyxxXmDG1Z5WFuO9kBDK8MN1Kl7Z25DX9-CwZ7OI,3647
|
|
562
562
|
supervisely/convert/image/cityscapes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
563
563
|
supervisely/convert/image/cityscapes/cityscapes_converter.py,sha256=msmsR2W-Xiod06dwn-MzmkbrEmQQqlKh7zyfTrW6YQw,7854
|
|
@@ -595,8 +595,8 @@ supervisely/convert/image/pdf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
595
595
|
supervisely/convert/image/pdf/pdf_converter.py,sha256=LKvVng9jPp0cSIjYEjKLOb48wtdOdB7LXS2gjmOdZhE,2442
|
|
596
596
|
supervisely/convert/image/pdf/pdf_helper.py,sha256=IDwLEvsVy8lu-KC1lXvSRkZZ9BCC6ylebnNEtLQU5L4,1288
|
|
597
597
|
supervisely/convert/image/sly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
598
|
-
supervisely/convert/image/sly/fast_sly_image_converter.py,sha256=
|
|
599
|
-
supervisely/convert/image/sly/sly_image_converter.py,sha256=
|
|
598
|
+
supervisely/convert/image/sly/fast_sly_image_converter.py,sha256=pZmQzhx9FrHwgVnJgqp-37Cn3zAnPww6MLa1grL6aWM,5429
|
|
599
|
+
supervisely/convert/image/sly/sly_image_converter.py,sha256=RfCOUqe4Li7FlCSpcbR4-ScqvV1yuBkUVJDEwNUxsEw,12819
|
|
600
600
|
supervisely/convert/image/sly/sly_image_helper.py,sha256=5Ri8fKb5dzh5b3v8AJ5u8xVFOQfAtoWqZ7HktPsCjTI,7373
|
|
601
601
|
supervisely/convert/image/yolo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
602
602
|
supervisely/convert/image/yolo/yolo_converter.py,sha256=cg5___X5MzvR-rZbNLmaKtr0MdRnyqtEzbBq5UBnYZ0,11171
|
|
@@ -623,13 +623,13 @@ 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=
|
|
626
|
+
supervisely/convert/video/video_converter.py,sha256=078BvRPi_2bTAdwPi9abp_3AlIpOR0fZs9du7xs1bwU,11251
|
|
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
|
|
630
630
|
supervisely/convert/video/mot/mot_converter.py,sha256=wXbv-9Psc2uVnhzHuOt5VnRIvSg70NDPQSoKdWwL4Lo,490
|
|
631
631
|
supervisely/convert/video/sly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
632
|
-
supervisely/convert/video/sly/sly_video_converter.py,sha256=
|
|
632
|
+
supervisely/convert/video/sly/sly_video_converter.py,sha256=S2qif7JFxqIi9VN_ez_iBtoJXpG9W6Ky2k5Er3-DtUo,4418
|
|
633
633
|
supervisely/convert/video/sly/sly_video_helper.py,sha256=D8PgoXpi0y3z-VEqvBLDf_gSUQ2hTL3irrfJyGhaV0Y,6758
|
|
634
634
|
supervisely/convert/volume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
635
635
|
supervisely/convert/volume/volume_converter.py,sha256=3jpt2Yn_G4FSP_vHFsJHQfYNQpT7q6ar_sRyr_xrPnA,5335
|
|
@@ -684,12 +684,12 @@ 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=8HGnJz7ikkgjPhz77J3UyNU5_umvJlLhxVOKGCgvdas,16907
|
|
686
686
|
supervisely/io/exception_handlers.py,sha256=wvSP3Sp8HpAPSqri8rNAcitKO3I9dBfBp_somnmCA8A,36465
|
|
687
|
-
supervisely/io/fs.py,sha256
|
|
688
|
-
supervisely/io/fs_cache.py,sha256=
|
|
687
|
+
supervisely/io/fs.py,sha256=2bJxFURUhwoymR2WN3OPHkYdc-FMclrgskr42XrjaGc,49874
|
|
688
|
+
supervisely/io/fs_cache.py,sha256=985gvBGzveLcDudgz10E4EWVjP9jxdU1Pa0GFfCBoCA,6520
|
|
689
689
|
supervisely/io/github_utils.py,sha256=jGmvQJ5bjtACuSFABzrxL0jJdh14SezovrHp8T-9y8g,1779
|
|
690
690
|
supervisely/io/json.py,sha256=7RGAk72FpPtlHYcyo7-uWZf5IAvQJg_nM09RpXBpaNo,7588
|
|
691
691
|
supervisely/io/multipart_stream_decoder.py,sha256=rCheeSCAGdw2tNyaWEYa4dvoIDuldXOxH86RVB82c78,14417
|
|
692
|
-
supervisely/io/network_exceptions.py,sha256=
|
|
692
|
+
supervisely/io/network_exceptions.py,sha256=eegxgbtkbKpbjPdiATXpvUSMpe6AFPiu0IAKyxPSXms,4777
|
|
693
693
|
supervisely/labeling_jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
694
694
|
supervisely/labeling_jobs/constants.py,sha256=GF_pwF9fC9_DGbpD3cAk3llifskAxpDmyuXwxM1f3Hw,104
|
|
695
695
|
supervisely/labeling_jobs/utils.py,sha256=XOGF2cbnTGbXFdT5jGL1LIPQfiCEJgRkmKNIjTlFois,22656
|
|
@@ -951,7 +951,7 @@ supervisely/script/__init__.py,sha256=pG-YPVG0gJIJ6s4xcAz9S_CnUxpUcz33wl9eNUSgxG
|
|
|
951
951
|
supervisely/script/utils.py,sha256=9ZP0yelTIJgjmzrKjpm2JRED0ll-pGEwKIV4b87RCww,54
|
|
952
952
|
supervisely/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
953
953
|
supervisely/task/paths.py,sha256=Zk9zPhuJuq2eZnb8rLt1ED6sbwX6ikHYRSZQvDP0OBg,1197
|
|
954
|
-
supervisely/task/progress.py,sha256=
|
|
954
|
+
supervisely/task/progress.py,sha256=Cl-wiHf3m8jw7-odnc1kZxCewS8_cePijo2k0nZKx14,27667
|
|
955
955
|
supervisely/task/task_logger.py,sha256=_uDfqEtiwetga6aDAqcTKCKqHjZJSuUXTsHSQFNxAvI,3531
|
|
956
956
|
supervisely/team_files/__init__.py,sha256=mtz0Z7eFvsykOcEnSVZ-5bNHsq0_YsNBjZK3qngO-DY,149
|
|
957
957
|
supervisely/team_files/team_files_path.py,sha256=dSqz-bycImQYwAs62TD1zCD1NQdysqCQIBhEVh9EDjw,177
|
|
@@ -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.
|
|
1001
|
-
supervisely-6.73.
|
|
1002
|
-
supervisely-6.73.
|
|
1003
|
-
supervisely-6.73.
|
|
1004
|
-
supervisely-6.73.
|
|
1005
|
-
supervisely-6.73.
|
|
1000
|
+
supervisely-6.73.223.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1001
|
+
supervisely-6.73.223.dist-info/METADATA,sha256=AEHBAjRpRoqsjSChavPDTgbucFvcihpotKkjDomq-qo,33150
|
|
1002
|
+
supervisely-6.73.223.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
1003
|
+
supervisely-6.73.223.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
1004
|
+
supervisely-6.73.223.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
1005
|
+
supervisely-6.73.223.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|