supervisely 6.73.395__py3-none-any.whl → 6.73.397__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.
@@ -32,6 +32,7 @@ class Sampling(Widget):
32
32
  widgth: int = 370,
33
33
  widget_id: str = None,
34
34
  file_path: str = __file__,
35
+ copy_annotations: bool = True,
35
36
  ):
36
37
  super().__init__(widget_id, file_path)
37
38
  if not input_selectable and project_id is None:
@@ -53,6 +54,7 @@ class Sampling(Widget):
53
54
  self.output_project_id = output_project_id
54
55
  self.output_project_selectable = output_project_selectable
55
56
  self.widgth = widgth
57
+ self._copy_annotations = copy_annotations
56
58
  self.project_info = (
57
59
  self._api.project.get_info_by_id(self.project_id) if self.project_id else None
58
60
  )
@@ -129,7 +131,7 @@ class Sampling(Widget):
129
131
  widgets=[self.resize_row, self.resize_hw_container], gap=0
130
132
  )
131
133
  self.copy_annotations_checkbox = Checkbox(
132
- Text("Copy annotations from source project", font_size=13)
134
+ Text("Copy annotations from source project", font_size=13), checked=self._copy_annotations
133
135
  )
134
136
  self.copy_annotations_row = Flexbox(widgets=[self.copy_annotations_checkbox])
135
137
 
@@ -1,9 +1,10 @@
1
1
  import os
2
2
  from pathlib import Path
3
- from typing import Optional
3
+ from typing import List, Optional, Union
4
4
 
5
5
  from tqdm import tqdm
6
6
 
7
+ from supervisely import fs
7
8
  from supervisely._utils import is_production
8
9
  from supervisely.api.api import Api
9
10
  from supervisely.app import get_data_dir
@@ -40,7 +41,7 @@ class ImportManager:
40
41
 
41
42
  def __init__(
42
43
  self,
43
- input_data: str,
44
+ input_data: Union[str, List[str]],
44
45
  project_type: ProjectType,
45
46
  team_id: Optional[int] = None,
46
47
  labeling_interface: LabelingInterface = LabelingInterface.DEFAULT,
@@ -60,7 +61,12 @@ class ImportManager:
60
61
  self._remote_files_map = {}
61
62
  self._modality = project_type
62
63
 
63
- self._input_data = self._prepare_input_data(input_data)
64
+ if isinstance(input_data, str):
65
+ input_data = [input_data]
66
+
67
+ self._input_data = get_data_dir()
68
+ for data in input_data:
69
+ self._prepare_input_data(data)
64
70
  self._unpack_archives(self._input_data)
65
71
  remove_junk_from_dir(self._input_data)
66
72
 
@@ -90,6 +96,7 @@ class ImportManager:
90
96
  }
91
97
  if str(self._modality) not in modality_converter_map:
92
98
  raise ValueError(f"Unsupported project type selected: {self._modality}")
99
+
93
100
  modality_converter = modality_converter_map[str(self._modality)](
94
101
  self._input_data,
95
102
  self._labeling_interface,
@@ -106,12 +113,17 @@ class ImportManager:
106
113
  # raise NotImplementedError
107
114
 
108
115
  def _prepare_input_data(self, input_data):
116
+ logger.debug(f"Preparing input data: {input_data}")
109
117
  if dir_exists(input_data):
110
118
  logger.info(f"Input data is a local directory: {input_data}")
111
- return input_data
119
+ # return input_data
120
+ dst_dir = os.path.join(get_data_dir(), os.path.basename(os.path.normpath(input_data)))
121
+ fs.copy_dir_recursively(input_data, dst_dir)
112
122
  elif file_exists(input_data):
113
123
  logger.info(f"Input data is a local file: {input_data}. Will use its directory")
114
- return os.path.dirname(input_data)
124
+ # return os.path.dirname(input_data)
125
+ dst_file = os.path.join(get_data_dir(), os.path.basename(input_data))
126
+ fs.copy_file(input_data, dst_file)
115
127
  elif self._api.storage.exists(self._team_id, input_data):
116
128
  if self._upload_as_links and str(self._modality) in [
117
129
  ProjectType.IMAGES.value,
@@ -145,7 +157,7 @@ class ImportManager:
145
157
  if not is_dir:
146
158
  dir_name = "Import data"
147
159
  local_path = os.path.join(get_data_dir(), dir_name)
148
- mkdir(local_path, remove_content_if_exists=True)
160
+ mkdir(local_path, remove_content_if_exists=False)
149
161
  save_path = os.path.join(local_path, os.path.basename(remote_path))
150
162
  else:
151
163
  dir_name = os.path.basename(os.path.normpath(remote_path))
@@ -19,7 +19,10 @@ SLY_OBJECT_KEYS = [
19
19
  LabelJsonFields.TAGS,
20
20
  LabelJsonFields.GEOMETRY_TYPE,
21
21
  ]
22
- SLY_TAG_KEYS = [TagJsonFields.TAG_NAME, TagJsonFields.VALUE]
22
+ SLY_TAG_KEYS = [
23
+ TagJsonFields.TAG_NAME,
24
+ # TagJsonFields.VALUE
25
+ ]
23
26
 
24
27
 
25
28
  # Check the annotation format documentation at
@@ -197,8 +197,8 @@ class NiiConverter(VolumeConverter):
197
197
  leave=True if progress_cb is None else False,
198
198
  position=1,
199
199
  )
200
- if item.custom_data is not None:
201
- volume_meta.update(item.custom_data)
200
+ if isinstance(item.custom_data, dict) and "remote_path" in item.custom_data:
201
+ volume_meta["remote_path"] = item.custom_data["remote_path"]
202
202
  api.volume.upload_np(dataset_id, item.name, volume_np, volume_meta, progress_nrrd)
203
203
  info = api.volume.get_info_by_name(dataset_id, item.name)
204
204
  item.volume_meta = info.meta
supervisely/io/env.py CHANGED
@@ -36,6 +36,12 @@ def _int_from_env(value):
36
36
  return int(value)
37
37
 
38
38
 
39
+ def _parse_list_from_env(value: str) -> List[str]:
40
+ import ast
41
+
42
+ return [str(x).strip() for x in ast.literal_eval(value)]
43
+
44
+
39
45
  def _parse_from_env(
40
46
  name: str,
41
47
  keys: List[str],
@@ -214,6 +220,32 @@ def team_files_folder(raise_not_found: Optional[bool] = True) -> str:
214
220
  )
215
221
 
216
222
 
223
+ def team_files_folders(raise_not_found: Optional[bool] = True) -> List[str]:
224
+ """Returns paths to the team files folders from environment variable using following keys:
225
+ - CONTEXT_SLYFOLDERS
226
+ - context.slyFolders
227
+ - modal.state.slyFolders
228
+ - FOLDERS
229
+ NOTE: same as team_files_folders
230
+ :param raise_not_found: if True, raises KeyError if team files folders are not found in environment variables
231
+ :type raise_not_found: Optional[bool]
232
+ :return: path to the team files folders
233
+ :rtype: str
234
+ """
235
+ return _parse_from_env(
236
+ name="team_files_folders",
237
+ keys=[
238
+ "CONTEXT_SLYFOLDERS",
239
+ "context.slyFolders",
240
+ "modal.state.slyFolders",
241
+ "FOLDERS",
242
+ ],
243
+ postprocess_fn=_parse_list_from_env,
244
+ default=[],
245
+ raise_not_found=raise_not_found,
246
+ )
247
+
248
+
217
249
  def folder(raise_not_found: Optional[bool] = True) -> str:
218
250
  """Returns path to the team files folder from environment variable using following keys:
219
251
  - CONTEXT_SLYFOLDER
@@ -229,6 +261,21 @@ def folder(raise_not_found: Optional[bool] = True) -> str:
229
261
  return team_files_folder(raise_not_found)
230
262
 
231
263
 
264
+ def folders(raise_not_found: Optional[bool] = True) -> List[str]:
265
+ """Returns paths to the team files folders from environment variable using following keys:
266
+ - CONTEXT_SLYFOLDERS
267
+ - context.slyFolders
268
+ - modal.state.slyFolders
269
+ - FOLDERS
270
+ NOTE: Same as team_files_folders
271
+ :param raise_not_found: if True, raises KeyError if team files folders are not found in environment variables
272
+ :type raise_not_found: Optional[bool]
273
+ :return: path to the team files folders
274
+ :rtype: str
275
+ """
276
+ return team_files_folders(raise_not_found)
277
+
278
+
232
279
  def team_files_file(raise_not_found: Optional[bool] = True) -> str:
233
280
  """Returns path to the file in the team files from environment variable using following keys:
234
281
  - CONTEXT_SLYFILE
@@ -251,6 +298,28 @@ def team_files_file(raise_not_found: Optional[bool] = True) -> str:
251
298
  )
252
299
 
253
300
 
301
+ def team_files_files(raise_not_found: Optional[bool] = True) -> List[str]:
302
+ """Returns paths to the files in the team files from environment variable using following keys:
303
+ - CONTEXT_SLYFILES
304
+ - context.slyFiles
305
+ - modal.state.slyFiles
306
+ - FILES
307
+
308
+ NOTE: same as team_files_file
309
+ :param raise_not_found: if True, raises KeyError if file is not found in environment variables
310
+ :type raise_not_found: Optional[bool]
311
+ :return: path to the file in the team files
312
+ :rtype: str
313
+ """
314
+ return _parse_from_env(
315
+ name="team_files_files",
316
+ keys=["CONTEXT_SLYFILES", "context.slyFiles", "modal.state.slyFiles", "FILES"],
317
+ postprocess_fn=_parse_list_from_env,
318
+ default=[],
319
+ raise_not_found=raise_not_found,
320
+ )
321
+
322
+
254
323
  def server_address(raise_not_found: Optional[bool] = True) -> str:
255
324
  """Returns server address from environment variable using following keys:
256
325
  - SERVER_ADDRESS
@@ -321,6 +390,22 @@ def file(raise_not_found: Optional[bool] = True) -> str:
321
390
  return team_files_file(raise_not_found)
322
391
 
323
392
 
393
+ def files(raise_not_found: Optional[bool] = True) -> List[str]:
394
+ """Returns paths to the files in the team files from environment variable using following keys:
395
+ - CONTEXT_SLYFILES
396
+ - context.slyFiles
397
+ - modal.state.slyFiles
398
+ - FILES
399
+
400
+ NOTE: Same as team_files_files
401
+ :param raise_not_found: if True, raises KeyError if file is not found in environment variables
402
+ :type raise_not_found: Optional[bool]
403
+ :return: path to the file in the team files
404
+ :rtype: str
405
+ """
406
+ return team_files_files(raise_not_found)
407
+
408
+
324
409
  def task_id(raise_not_found: Optional[bool] = True) -> int:
325
410
  """Returns task id from environment variable using following keys:
326
411
  - TASK_ID
supervisely/io/fs.py CHANGED
@@ -1154,14 +1154,15 @@ def copy_dir_recursively(
1154
1154
  src_dir: str, dst_dir: str, progress_cb: Optional[Union[tqdm, Callable]] = None
1155
1155
  ) -> List[str]:
1156
1156
  mkdir(dst_dir)
1157
+ src_dir_norm = src_dir.rstrip(os.sep)
1157
1158
 
1158
- for rel_sub_dir in get_subdirs(src_dir, recursive=True):
1159
+ for rel_sub_dir in get_subdirs(src_dir_norm, recursive=True):
1159
1160
  dst_sub_dir = os.path.join(dst_dir, rel_sub_dir)
1160
1161
  mkdir(dst_sub_dir)
1161
1162
 
1162
- files = list_files_recursively(src_dir)
1163
+ files = list_files_recursively(src_dir_norm)
1163
1164
  for src_file_path in files:
1164
- dst_file_path = os.path.normpath(src_file_path.replace(src_dir, dst_dir))
1165
+ dst_file_path = os.path.normpath(src_file_path.replace(src_dir_norm, dst_dir))
1165
1166
  ensure_base_path(dst_file_path)
1166
1167
  if not file_exists(dst_file_path):
1167
1168
  copy_file(src_file_path, dst_file_path)
@@ -259,7 +259,7 @@ class TrainGUI:
259
259
  self.workspace_id = sly_env.workspace_id(raise_not_found=False)
260
260
  self.project_id = sly_env.project_id()
261
261
  self.project_info = self._api.project.get_info_by_id(self.project_id)
262
- if self.project_info.type is None:
262
+ if self.project_info is None:
263
263
  raise ValueError(f"Project with ID: '{self.project_id}' does not exist or was archived")
264
264
 
265
265
  self.project_meta = ProjectMeta.from_json(self._api.project.get_meta(self.project_id))
@@ -416,14 +416,14 @@ def _update_meta(
416
416
  api.project.get_meta(dst_project_id)
417
417
  )
418
418
  dst_project_meta = context.project_meta[dst_project_id]
419
- dst_project_meta.merge(src_project_meta)
419
+ dst_project_meta = dst_project_meta.merge(src_project_meta)
420
420
  if dst_project_meta.get_tag_meta(VIDEO_OBJECT_TAG_META.name) is None:
421
- dst_project_meta.add_tag_meta(VIDEO_OBJECT_TAG_META)
421
+ dst_project_meta = dst_project_meta.add_tag_meta(VIDEO_OBJECT_TAG_META)
422
422
  if dst_project_meta.get_tag_meta(AUTO_TRACKED_TAG_META.name) is None:
423
- dst_project_meta.add_tag_meta(AUTO_TRACKED_TAG_META)
423
+ dst_project_meta = dst_project_meta.add_tag_meta(AUTO_TRACKED_TAG_META)
424
424
 
425
425
  if dst_project_meta != src_project_meta:
426
- api.project.update_meta(dst_project_id, dst_project_meta.to_json())
426
+ dst_project_meta = api.project.update_meta(dst_project_id, dst_project_meta.to_json())
427
427
  context.project_meta[dst_project_id] = dst_project_meta
428
428
 
429
429
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.395
3
+ Version: 6.73.397
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -431,7 +431,7 @@ supervisely/app/widgets/run_app_button/run_app_button.py,sha256=cr07jabP1vF-rvH0
431
431
  supervisely/app/widgets/run_app_button/script.js,sha256=6rlluiW1hbHN7swtNSoFX9Gmrz2U-nRNOwoUpnSBmiw,2736
432
432
  supervisely/app/widgets/run_app_button/template.html,sha256=rFIYPC9hl2b9H_LR1Kr_1RCpzfAAd-FBcmTmt75YXnE,511
433
433
  supervisely/app/widgets/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
434
- supervisely/app/widgets/sampling/sampling.py,sha256=NVMZ4Tmsl5m0FOtAtsKNrXZtoVQM62vm0NRSxpLjPXA,22094
434
+ supervisely/app/widgets/sampling/sampling.py,sha256=UWDb1uZ71W0h9pa7rXVyj1999zaAKGIHh250CgUJ0l0,22215
435
435
  supervisely/app/widgets/scatter_chart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
436
436
  supervisely/app/widgets/scatter_chart/scatter_chart.py,sha256=nX7fZbWsDiMjOek5FvIHgKbnBwQ-ol_V3XvnoAnz59c,4832
437
437
  supervisely/app/widgets/select/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -576,7 +576,7 @@ supervisely/collection/key_indexed_collection.py,sha256=x2UVlkprspWhhae9oLUzjTWB
576
576
  supervisely/collection/str_enum.py,sha256=Zp29yFGvnxC6oJRYNNlXhO2lTSdsriU1wiGHj6ahEJE,1250
577
577
  supervisely/convert/__init__.py,sha256=ropgB1eebG2bfLoJyf2jp8Vv9UkFujaW3jVX-71ho1g,1353
578
578
  supervisely/convert/base_converter.py,sha256=bc-QlT7kliHxrhM0bdHzgNVSfzDGgecrmaZH_nFZsL0,18597
579
- supervisely/convert/converter.py,sha256=022I1UieyaPDVb8lOcKW20jSt1_1TcbIWhghSmieHAE,10885
579
+ supervisely/convert/converter.py,sha256=aOURdIdWWbK2JT5X-kUr8JfAatr1NUkwnv1mAmFS5y0,11426
580
580
  supervisely/convert/image/__init__.py,sha256=JEuyaBiiyiYmEUYqdn8Mog5FVXpz0H1zFubKkOOm73I,1395
581
581
  supervisely/convert/image/image_converter.py,sha256=8vak8ZoKTN1ye2ZmCTvCZ605-Rw1AFLIEo7bJMfnR68,10426
582
582
  supervisely/convert/image/image_helper.py,sha256=VfFJmMEdMTOZ-G15lFEYUuFC0z62aHWrw8MLigxJS58,3647
@@ -618,7 +618,7 @@ supervisely/convert/image/pdf/pdf_helper.py,sha256=IDwLEvsVy8lu-KC1lXvSRkZZ9BCC6
618
618
  supervisely/convert/image/sly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
619
619
  supervisely/convert/image/sly/fast_sly_image_converter.py,sha256=r_Nhowicm-oah-XfGEeAOrGNbIzMh63m6ZRYaLKHUu0,5903
620
620
  supervisely/convert/image/sly/sly_image_converter.py,sha256=dT7fVivM-u2hhKehGJWPeLsVTi4nW-WX1X6Lktl2mks,14812
621
- supervisely/convert/image/sly/sly_image_helper.py,sha256=5Ri8fKb5dzh5b3v8AJ5u8xVFOQfAtoWqZ7HktPsCjTI,7373
621
+ supervisely/convert/image/sly/sly_image_helper.py,sha256=8zSWtLlF5fZUaR8UMUqqEvLqyz8HrsDxfb5AcwYW3Qs,7385
622
622
  supervisely/convert/image/yolo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
623
623
  supervisely/convert/image/yolo/yolo_converter.py,sha256=Wn5dR05y4SEPONcaxWr9ofnbvbf-SbRZN0fkksk5Dps,11391
624
624
  supervisely/convert/image/yolo/yolo_helper.py,sha256=5b0ShsVlqikA071VT8AiRW_079_WD6pdB5Bx3OU12Bw,25989
@@ -675,7 +675,7 @@ supervisely/convert/volume/dicom/dicom_converter.py,sha256=Hw4RxU_qvllk6M26udZE6
675
675
  supervisely/convert/volume/dicom/dicom_helper.py,sha256=OrKlyt1hA5BOXKhE1LF1WxBIv3b6t96xRras4OSAuNM,2891
676
676
  supervisely/convert/volume/nii/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
677
677
  supervisely/convert/volume/nii/nii_planes_volume_converter.py,sha256=QTdmtqLrRBFSa0IZKhAnFkLl1J3nayzQQDwpglvEN64,16915
678
- supervisely/convert/volume/nii/nii_volume_converter.py,sha256=QTFg0FW0raSVqgAfY56S7r6tHUYyNOnd4Y9Bdw-e6bc,8623
678
+ supervisely/convert/volume/nii/nii_volume_converter.py,sha256=gR1_dfUf0L-K49B8qVHF7DiiDKDmxUQKKSPLdlqoYC4,8691
679
679
  supervisely/convert/volume/nii/nii_volume_helper.py,sha256=nkfTG2NGmnf4AfrZ0lULSHaUBx1G24NJUO_5FNejolE,16032
680
680
  supervisely/convert/volume/sly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
681
681
  supervisely/convert/volume/sly/sly_volume_converter.py,sha256=TI1i_aVYFFoqLHqVzCXnFeR6xobhGcgN_xWFZcpRqbE,6730
@@ -723,9 +723,9 @@ supervisely/imaging/font.py,sha256=0XcmWhlw7y2PAhrWgcsfInyRWj0WnlFpMSEXXilR8UA,2
723
723
  supervisely/imaging/image.py,sha256=1KNc4qRbP9OlI4Yta07Kc2ohAgSBJ_9alF9Jag74w30,41873
724
724
  supervisely/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
725
725
  supervisely/io/docker_utils.py,sha256=hb_HXGM8IYB0PF-nD7NxMwaHgzaxIFxofsUzQ_RCUZI,7935
726
- supervisely/io/env.py,sha256=BhunJIgJ981qxdZAAbO4MxKEUI_AChkcO4X8w-_xb2s,18261
726
+ supervisely/io/env.py,sha256=l-Xkil6FVxMP8FmnjF4H4p3RJQ3AoBd0OUjZHA2QVTc,21193
727
727
  supervisely/io/exception_handlers.py,sha256=_nAgMFeE94bCxEvWakR82hMtdOJUyn7Gc7OymMxI9WI,36484
728
- supervisely/io/fs.py,sha256=GSgD6dMYd-NECTYlN7BB1jWlxQXWkHGCN5ZtqUpWcpo,63547
728
+ supervisely/io/fs.py,sha256=pzNAK5fbT3G-7PKRY5oYcOPjgXeZ9x5Dyry7fzzZsr8,63604
729
729
  supervisely/io/fs_cache.py,sha256=985gvBGzveLcDudgz10E4EWVjP9jxdU1Pa0GFfCBoCA,6520
730
730
  supervisely/io/github_utils.py,sha256=jGmvQJ5bjtACuSFABzrxL0jJdh14SezovrHp8T-9y8g,1779
731
731
  supervisely/io/json.py,sha256=25gBqA8nkKZW1xvssdmRYuJrO5fmIR0Z5cZGePfrJV4,8539
@@ -1002,7 +1002,7 @@ supervisely/nn/training/__init__.py,sha256=gY4PCykJ-42MWKsqb9kl-skemKa8yB6t_fb5k
1002
1002
  supervisely/nn/training/train_app.py,sha256=mPSCxcAvw5k_YzyaztvOmUr26ni6J624LIIb_Zxa-9g,123596
1003
1003
  supervisely/nn/training/gui/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
1004
1004
  supervisely/nn/training/gui/classes_selector.py,sha256=tqmVwUfC2u5K53mZmvDvNOhu9Mw5mddjpB2kxRXXUO8,12453
1005
- supervisely/nn/training/gui/gui.py,sha256=YKhcTZrzhRDToY79L3QbgiWfx9P8GUcKkiBXw_GDgeQ,49215
1005
+ supervisely/nn/training/gui/gui.py,sha256=RLCVtKefWYPHlPN-U8iyAdPHH6Qvx6HE3fFCqyq3rZ4,49210
1006
1006
  supervisely/nn/training/gui/hyperparameters_selector.py,sha256=bcCxJ9-8NjZa0U9XWHysrMzr8dxqXiqUgX5lbDiAm5A,7767
1007
1007
  supervisely/nn/training/gui/input_selector.py,sha256=rmirJzpdxuYONI6y5_cvMdGWBJ--T20YTsISghATHu4,2510
1008
1008
  supervisely/nn/training/gui/model_selector.py,sha256=Fvsja7n75PzqxDkDhPEkCltYsbAPPRpUxgWgIZCseks,7439
@@ -1075,7 +1075,7 @@ supervisely/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
1075
1075
  supervisely/user/user.py,sha256=4GSVIupPAxWjIxZmUtH3Dtms_vGV82-49kM_aaR2gBI,319
1076
1076
  supervisely/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1077
1077
  supervisely/video/import_utils.py,sha256=b1Nl0gscNsV0iB9nWPeqt8GrkhOeuTZsN1p-d3gDUmE,544
1078
- supervisely/video/sampling.py,sha256=-Gp1Z4kxkyymjsmDkrSxBpDhBJAZ4PRy7ic2IAQhx4w,20121
1078
+ supervisely/video/sampling.py,sha256=jTtXAZrq_hkxFQSSdwFp-lYUKX8HZf1nO-4trzMCQis,20197
1079
1079
  supervisely/video/video.py,sha256=QGV1R3qNOJ0zgsfItqv-e7mbEnWqFpE3rcJwt7izC28,20206
1080
1080
  supervisely/video_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1081
1081
  supervisely/video_annotation/constants.py,sha256=_gW9iMhVk1w_dUaFiaiyXn66mt13S6bkxC64xpjP-CU,529
@@ -1114,9 +1114,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
1114
1114
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
1115
1115
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
1116
1116
  supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1117
- supervisely-6.73.395.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1118
- supervisely-6.73.395.dist-info/METADATA,sha256=6w6EUM_qrGdBdYV8MQmted-V5jfXec3D-YrxgxKe7sU,35254
1119
- supervisely-6.73.395.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1120
- supervisely-6.73.395.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1121
- supervisely-6.73.395.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1122
- supervisely-6.73.395.dist-info/RECORD,,
1117
+ supervisely-6.73.397.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1118
+ supervisely-6.73.397.dist-info/METADATA,sha256=IIC5TyRVz6pnTYzbaQVNCOYReuxJd8xM0TySIw_WcCs,35254
1119
+ supervisely-6.73.397.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1120
+ supervisely-6.73.397.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1121
+ supervisely-6.73.397.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1122
+ supervisely-6.73.397.dist-info/RECORD,,