dtlpy 1.90.39__py3-none-any.whl → 1.92.18__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.
Files changed (57) hide show
  1. dtlpy/__init__.py +5 -2
  2. dtlpy/__version__.py +1 -1
  3. dtlpy/assets/lock_open.png +0 -0
  4. dtlpy/entities/__init__.py +1 -1
  5. dtlpy/entities/analytic.py +118 -98
  6. dtlpy/entities/annotation.py +22 -31
  7. dtlpy/entities/annotation_collection.py +19 -21
  8. dtlpy/entities/app.py +13 -3
  9. dtlpy/entities/assignment.py +6 -0
  10. dtlpy/entities/base_entity.py +0 -23
  11. dtlpy/entities/command.py +3 -2
  12. dtlpy/entities/dataset.py +53 -3
  13. dtlpy/entities/dpk.py +15 -0
  14. dtlpy/entities/execution.py +13 -1
  15. dtlpy/entities/feature_set.py +3 -0
  16. dtlpy/entities/filters.py +87 -8
  17. dtlpy/entities/integration.py +1 -1
  18. dtlpy/entities/item.py +41 -1
  19. dtlpy/entities/node.py +49 -3
  20. dtlpy/entities/ontology.py +62 -5
  21. dtlpy/entities/package_function.py +2 -0
  22. dtlpy/entities/package_module.py +13 -0
  23. dtlpy/entities/pipeline.py +20 -1
  24. dtlpy/entities/pipeline_execution.py +37 -6
  25. dtlpy/entities/prompt_item.py +240 -27
  26. dtlpy/entities/recipe.py +37 -0
  27. dtlpy/entities/service.py +33 -4
  28. dtlpy/ml/base_model_adapter.py +166 -18
  29. dtlpy/new_instance.py +80 -9
  30. dtlpy/repositories/apps.py +68 -22
  31. dtlpy/repositories/assignments.py +1 -1
  32. dtlpy/repositories/commands.py +10 -2
  33. dtlpy/repositories/datasets.py +143 -13
  34. dtlpy/repositories/dpks.py +34 -1
  35. dtlpy/repositories/executions.py +27 -30
  36. dtlpy/repositories/feature_sets.py +23 -3
  37. dtlpy/repositories/features.py +4 -1
  38. dtlpy/repositories/models.py +1 -1
  39. dtlpy/repositories/packages.py +6 -3
  40. dtlpy/repositories/pipeline_executions.py +58 -5
  41. dtlpy/repositories/services.py +28 -7
  42. dtlpy/repositories/tasks.py +8 -2
  43. dtlpy/repositories/uploader.py +5 -2
  44. dtlpy/services/api_client.py +74 -12
  45. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/METADATA +2 -2
  46. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/RECORD +54 -57
  47. tests/features/environment.py +67 -1
  48. dtlpy/callbacks/__init__.py +0 -16
  49. dtlpy/callbacks/piper_progress_reporter.py +0 -29
  50. dtlpy/callbacks/progress_viewer.py +0 -54
  51. {dtlpy-1.90.39.data → dtlpy-1.92.18.data}/scripts/dlp +0 -0
  52. {dtlpy-1.90.39.data → dtlpy-1.92.18.data}/scripts/dlp.bat +0 -0
  53. {dtlpy-1.90.39.data → dtlpy-1.92.18.data}/scripts/dlp.py +0 -0
  54. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/LICENSE +0 -0
  55. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/WHEEL +0 -0
  56. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/entry_points.txt +0 -0
  57. {dtlpy-1.90.39.dist-info → dtlpy-1.92.18.dist-info}/top_level.txt +0 -0
@@ -25,7 +25,7 @@ class Services:
25
25
  def __init__(self,
26
26
  client_api: ApiClient,
27
27
  project: entities.Project = None,
28
- package: entities.Package = None,
28
+ package: Union[entities.Package, entities.Dpk] = None,
29
29
  project_id=None,
30
30
  model_id=None,
31
31
  model: entities.Model = None):
@@ -52,12 +52,12 @@ class Services:
52
52
  raise exceptions.PlatformException(
53
53
  error='2001',
54
54
  message='Cannot perform action WITHOUT package entity in services repository. Please set a package')
55
- assert isinstance(self._package, entities.Package)
55
+ assert (isinstance(self._package, entities.Package) or isinstance(self._package, entities.Dpk))
56
56
  return self._package
57
57
 
58
58
  @package.setter
59
- def package(self, package: entities.Package):
60
- if not isinstance(package, entities.Package):
59
+ def package(self, package: Union[entities.Package, entities.Dpk]):
60
+ if not isinstance(package, entities.Package) and not isinstance(package, entities.Dpk):
61
61
  raise ValueError('Must input a valid package entity')
62
62
  self._package = package
63
63
 
@@ -605,6 +605,7 @@ class Services:
605
605
  on_reset: str = None,
606
606
  max_attempts: int = None,
607
607
  secrets=None,
608
+ integrations=None,
608
609
  **kwargs
609
610
  ) -> entities.Service:
610
611
  """
@@ -631,6 +632,7 @@ class Services:
631
632
  :param int max_attempts: Maximum execution retries in-case of a service reset
632
633
  :param bool force: optional - terminate old replicas immediately
633
634
  :param list secrets: list of the integrations ids
635
+ :param list integrations: list of the integrations
634
636
  :param kwargs:
635
637
  :return: Service object
636
638
  :rtype: dtlpy.entities.service.Service
@@ -691,6 +693,11 @@ class Services:
691
693
  secrets = [secrets]
692
694
  payload['secrets'] = secrets
693
695
 
696
+ if integrations is not None:
697
+ if not isinstance(integrations, list):
698
+ integrations = [integrations]
699
+ payload['integrations'] = integrations
700
+
694
701
  if runtime is not None:
695
702
  if isinstance(runtime, entities.KubernetesRuntime):
696
703
  runtime = runtime.to_json()
@@ -748,7 +755,7 @@ class Services:
748
755
  )
749
756
 
750
757
  @_api_reference.add(path='/services/{id}', method='delete')
751
- def delete(self, service_name: str = None, service_id: str = None):
758
+ def delete(self, service_name: str = None, service_id: str = None, force=False):
752
759
  """
753
760
  Delete Service object
754
761
 
@@ -756,6 +763,7 @@ class Services:
756
763
 
757
764
  You must provide at least ONE of the following params: service_id, service_name.
758
765
 
766
+ :param force:
759
767
  :param str service_name: by name
760
768
  :param str service_id: by id
761
769
  :return: True
@@ -774,10 +782,14 @@ class Services:
774
782
  else:
775
783
  service_id = self.get(service_name=service_name).id
776
784
 
785
+ path = "/services/{}".format(service_id)
786
+ if force:
787
+ path = '{}?force=true'.format(path)
788
+
777
789
  # request
778
790
  success, response = self._client_api.gen_request(
779
791
  req_type="delete",
780
- path="/services/{}".format(service_id)
792
+ path=path
781
793
  )
782
794
  if not success:
783
795
  raise exceptions.PlatformException(response)
@@ -1168,6 +1180,7 @@ class Services:
1168
1180
  on_reset: str = None,
1169
1181
  force: bool = False,
1170
1182
  secrets: list = None,
1183
+ integrations: list = None,
1171
1184
  **kwargs) -> entities.Service:
1172
1185
  """
1173
1186
  Deploy service.
@@ -1196,6 +1209,7 @@ class Services:
1196
1209
  :param str on_reset: what happens on reset
1197
1210
  :param bool force: optional - if true, terminate old replicas immediately
1198
1211
  :param list secrets: list of the integrations ids
1212
+ :param list integrations: list of the integrations
1199
1213
  :param kwargs: list of additional arguments
1200
1214
  :return: Service object
1201
1215
  :rtype: dtlpy.entities.service.Service
@@ -1218,6 +1232,8 @@ class Services:
1218
1232
  )
1219
1233
  )
1220
1234
  """
1235
+ if package is None and isinstance(package, entities.Dpk):
1236
+ raise exceptions.PlatformException('400', 'cannot deploy dpk package. Please install the app')
1221
1237
  package = package if package is not None else self._package
1222
1238
  if service_name is None:
1223
1239
  get_name = False
@@ -1290,6 +1306,10 @@ class Services:
1290
1306
  if not isinstance(secrets, list):
1291
1307
  secrets = [secrets]
1292
1308
  service.secrets = secrets
1309
+ if integrations is not None:
1310
+ if not isinstance(integrations, list):
1311
+ integrations = [integrations]
1312
+ service.integrations = integrations
1293
1313
  service = self.update(service=service, force=force)
1294
1314
  else:
1295
1315
  service = self._create(service_name=service_name,
@@ -1312,7 +1332,8 @@ class Services:
1312
1332
  drain_time=drain_time,
1313
1333
  max_attempts=max_attempts,
1314
1334
  on_reset=on_reset,
1315
- secrets=secrets
1335
+ secrets=secrets,
1336
+ integrations=integrations,
1316
1337
  )
1317
1338
  if checkout:
1318
1339
  self.checkout(service=service)
@@ -585,7 +585,8 @@ class Tasks:
585
585
  consensus_task_type=None,
586
586
  consensus_percentage=None,
587
587
  consensus_assignees=None,
588
- scoring=True
588
+ scoring=True,
589
+ enforce_video_conversion=True,
589
590
  ) -> entities.Task:
590
591
  """
591
592
  Create a new Task (Annotation or QA).
@@ -619,6 +620,7 @@ class Tasks:
619
620
  :param int consensus_percentage: percentage of items to be copied to multiple annotators (consensus items)
620
621
  :param int consensus_assignees: the number of different annotators per item (number of copies per item)
621
622
  :param bool scoring: create a scoring app in project
623
+ :param bool enforce_video_conversion: Enforce WEBM conversion on video items for frame-accurate annotations. WEBM Conversion will be executed as a project service and incurs compute costs. Service compute resources can be set according to planned workload.
622
624
  :return: Task object
623
625
  :rtype: dtlpy.entities.task.Task
624
626
 
@@ -628,7 +630,8 @@ class Tasks:
628
630
 
629
631
  dataset.tasks.create(task= 'task_entity',
630
632
  due_date = datetime.datetime(day= 1, month= 1, year= 2029).timestamp(),
631
- assignee_ids =[ 'annotator1@dataloop.ai', 'annotator2@dataloop.ai'])
633
+ assignee_ids =[ 'annotator1@dataloop.ai', 'annotator2@dataloop.ai'],
634
+ available_actions=[dl.ItemAction("discard"), dl.ItemAction("to-check")])
632
635
  """
633
636
 
634
637
  if dataset is None and self._dataset is None:
@@ -706,6 +709,9 @@ class Tasks:
706
709
  if task_parent_id is not None:
707
710
  payload['spec']['parentTaskId'] = task_parent_id
708
711
 
712
+ if not enforce_video_conversion:
713
+ payload['disableWebm'] = not enforce_video_conversion
714
+
709
715
  is_pulling = any([batch_size, max_batch_workload])
710
716
  is_consensus = any([consensus_percentage, consensus_assignees, consensus_task_type])
711
717
  if is_pulling and is_consensus:
@@ -480,8 +480,8 @@ class Uploader:
480
480
  element.item_metadata = {}
481
481
  with open(element.annotations_filepath) as ann_f:
482
482
  item_metadata = json.load(ann_f)
483
- if 'metadata' in item_metadata and 'user' in item_metadata['metadata']:
484
- element.item_metadata['user'] = item_metadata['metadata']['user']
483
+ if 'metadata' in item_metadata:
484
+ element.item_metadata = item_metadata['metadata']
485
485
  item, action = await self.__single_async_upload(filepath=element.buffer,
486
486
  mode=mode,
487
487
  item_metadata=element.item_metadata,
@@ -522,6 +522,9 @@ class Uploader:
522
522
  ref=item.id)
523
523
  if pbar is not None:
524
524
  pbar.update()
525
+ self.items_repository._client_api.callbacks.run_on_event(event=self.items_repository._client_api.callbacks.CallbackEvent.ITEMS_UPLOAD,
526
+ context={'item_id': item.id, 'dataset_id': item.dataset_id},
527
+ progress=round(pbar.n / pbar.total * 100, 0))
525
528
  else:
526
529
  if isinstance(element.buffer, str):
527
530
  ref = element.buffer
@@ -13,6 +13,7 @@ import logging
13
13
  import asyncio
14
14
  import certifi
15
15
  import base64
16
+ import enum
16
17
  import time
17
18
  import tqdm
18
19
  import json
@@ -43,6 +44,12 @@ logger = logging.getLogger(name='dtlpy')
43
44
  threadLock = threading.Lock()
44
45
 
45
46
 
47
+ def format_message(message):
48
+ if message:
49
+ return message.replace('\\n', '\n')
50
+ return message
51
+
52
+
46
53
  class VerboseLoggingLevel:
47
54
  DEBUG = "debug"
48
55
  INFO = "info"
@@ -61,12 +68,39 @@ class PlatformError(Exception):
61
68
  if hasattr(resp, 'status_code'):
62
69
  msg += '<Response [{}]>'.format(resp.status_code)
63
70
  if hasattr(resp, 'reason'):
64
- msg += '<Reason [{}]>'.format(resp.reason)
71
+ msg += '<Reason [{}]>'.format(format_message(resp.reason))
65
72
  elif hasattr(resp, 'text'):
66
- msg += '<Reason [{}]>'.format(resp.text)
73
+ msg += '<Reason [{}]>'.format(format_message(resp.text))
67
74
  super().__init__(msg)
68
75
 
69
76
 
77
+
78
+
79
+ class Callbacks:
80
+ def __init__(self):
81
+ self._callbacks = {}
82
+
83
+ class CallbackEvent(str, enum.Enum):
84
+ DATASET_EXPORT = 'datasetExport'
85
+ ITEMS_UPLOAD = 'itemUpload'
86
+
87
+ def add(self, event, func):
88
+
89
+ if not callable(func):
90
+ raise ValueError(f"The provided callback for {event} is not callable")
91
+ if event not in list(self.CallbackEvent):
92
+ raise ValueError(f"Unknown event: {event!r}, allowed events are: {list(self.CallbackEvent)}")
93
+ self._callbacks[event] = func
94
+
95
+ def get(self, name):
96
+ return self._callbacks.get(name)
97
+
98
+ def run_on_event(self, event, context, progress):
99
+ callback = self.get(event)
100
+ if callback is not None:
101
+ callback(progress=progress, context=context)
102
+
103
+
70
104
  class Verbose:
71
105
  __DEFAULT_LOGGING_LEVEL = 'warning'
72
106
  __DEFAULT_DISABLE_PROGRESS_BAR = False
@@ -397,6 +431,7 @@ class ApiClient:
397
431
  self._environments = None
398
432
  self._environment = None
399
433
  self._verbose = None
434
+ self._callbacks = None
400
435
  self._cache_state = None
401
436
  self._attributes_mode = None
402
437
  self._platform_settings = None
@@ -684,6 +719,21 @@ class ApiClient:
684
719
  assert isinstance(self._sdk_cache, SDKCache)
685
720
  return self._sdk_cache
686
721
 
722
+ @property
723
+ def callbacks(self):
724
+ if self._callbacks is None:
725
+ self._callbacks = Callbacks()
726
+ assert isinstance(self._callbacks, Callbacks)
727
+ return self._callbacks
728
+
729
+ def add_callback(self, event, func):
730
+ """
731
+ function to add callback to the client
732
+ :param event: dl.CallbackEvent enum, name of the callback
733
+ :param func: function to call with 2 arguments: progress and context
734
+ """
735
+ self.callbacks.add(event, func)
736
+
687
737
  @property
688
738
  def token(self):
689
739
  _token = self._token
@@ -777,14 +827,14 @@ class ApiClient:
777
827
  return information
778
828
 
779
829
  @property
780
- def __base_gate_url(self):
830
+ def base_gate_url(self):
781
831
  if self.__gate_url_for_requests is None:
782
832
  self.__gate_url_for_requests = self.environment
783
833
  internal_requests_url = os.environ.get('INTERNAL_REQUESTS_URL', None)
784
834
  if internal_requests_url is not None:
785
835
  self.__gate_url_for_requests = internal_requests_url
786
836
  return self.__gate_url_for_requests
787
-
837
+
788
838
  def export_curl_request(self, req_type, path, headers=None, json_req=None, files=None, data=None):
789
839
  curl, prepared = self._build_gen_request(req_type=req_type,
790
840
  path=path,
@@ -801,7 +851,7 @@ class ApiClient:
801
851
 
802
852
  # prepare request
803
853
  req = requests.Request(method=req_type,
804
- url=self.__base_gate_url + path,
854
+ url=self.base_gate_url + path,
805
855
  json=json_req,
806
856
  files=files,
807
857
  data=data,
@@ -981,7 +1031,7 @@ class ApiClient:
981
1031
 
982
1032
  # prepare request
983
1033
  if is_dataloop:
984
- full_url = self.__base_gate_url + path
1034
+ full_url = self.base_gate_url + path
985
1035
  headers_req = self._build_request_headers(headers=headers)
986
1036
  else:
987
1037
  full_url = path
@@ -1018,7 +1068,7 @@ class ApiClient:
1018
1068
  timeout=timeout) as session:
1019
1069
  try:
1020
1070
  async with session._request(request=session._client.request,
1021
- url=self.__base_gate_url + path,
1071
+ url=self.base_gate_url + path,
1022
1072
  method=req_type,
1023
1073
  json=json_req,
1024
1074
  data=data,
@@ -1122,7 +1172,7 @@ class ApiClient:
1122
1172
  def callback(bytes_read):
1123
1173
  pass
1124
1174
 
1125
- timeout = aiohttp.ClientTimeout(total=0)
1175
+ timeout = aiohttp.ClientTimeout(total=2 * 60)
1126
1176
  async with aiohttp.ClientSession(headers=headers, timeout=timeout) as session:
1127
1177
  try:
1128
1178
  form = aiohttp.FormData({})
@@ -1135,7 +1185,7 @@ class ApiClient:
1135
1185
  form.add_field('file', AsyncUploadStream(buffer=to_upload,
1136
1186
  callback=callback,
1137
1187
  name=uploaded_filename))
1138
- url = '{}?mode={}'.format(self.__base_gate_url + remote_url, mode)
1188
+ url = '{}?mode={}'.format(self.base_gate_url + remote_url, mode)
1139
1189
 
1140
1190
  # use SSL context
1141
1191
  ssl_context = None
@@ -1218,7 +1268,7 @@ class ApiClient:
1218
1268
  pool_connections=np.sum(list(self._thread_pools_names.values())))
1219
1269
  self.session.mount('http://', adapter)
1220
1270
  self.session.mount('https://', adapter)
1221
- resp = self.session.send(request=prepared, stream=stream, verify=self.verify, timeout=None)
1271
+ resp = self.session.send(request=prepared, stream=stream, verify=self.verify, timeout=120)
1222
1272
 
1223
1273
  with threadLock:
1224
1274
  self.calls_counter.add()
@@ -1337,7 +1387,7 @@ class ApiClient:
1337
1387
  if hasattr(resp, 'reason'):
1338
1388
  msg += '[Reason: {val}]'.format(val=resp.reason)
1339
1389
  if hasattr(resp, 'text'):
1340
- msg += '[Text: {val}]'.format(val=resp.text)
1390
+ msg += '[Text: {val}]'.format(val=format_message(resp.text))
1341
1391
 
1342
1392
  request_id = resp.headers.get('x-request-id', 'na')
1343
1393
  logger.debug('--- [Request] Start ---')
@@ -1485,7 +1535,13 @@ class ApiClient:
1485
1535
  :param token: a valid token
1486
1536
  :return:
1487
1537
  """
1488
- self.token = token # this will also set the refresh_token to None
1538
+ current_token = self.token
1539
+ self.token = token
1540
+ success, response = self.gen_request(req_type='get', path='/users/me')
1541
+ if not response.ok:
1542
+ # switch back to before
1543
+ self.token = current_token
1544
+ raise ValueError(f"Invalid API key provided. Error: {response.text}")
1489
1545
 
1490
1546
  def login_api_key(self, api_key):
1491
1547
  """
@@ -1493,7 +1549,13 @@ class ApiClient:
1493
1549
  :param api_key: a valid API key
1494
1550
  :return:
1495
1551
  """
1552
+ current_token = self.token
1496
1553
  self.token = api_key
1554
+ success, response = self.gen_request(req_type='get', path='/users/me')
1555
+ if not response.ok:
1556
+ # switch back to before
1557
+ self.token = current_token
1558
+ raise ValueError(f"Invalid API key provided. Error: {response.text}")
1497
1559
 
1498
1560
  @property
1499
1561
  def login_domain(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dtlpy
3
- Version: 1.90.39
3
+ Version: 1.92.18
4
4
  Summary: SDK and CLI for Dataloop platform
5
5
  Home-page: https://github.com/dataloop-ai/dtlpy
6
6
  Author: Dataloop Team
@@ -23,7 +23,7 @@ Requires-Dist: tqdm (>=4.63)
23
23
  Requires-Dist: certifi (>=2020.12.5)
24
24
  Requires-Dist: webvtt-py (==0.4.3)
25
25
  Requires-Dist: aiohttp (>=3.8)
26
- Requires-Dist: requests-toolbelt (>=0.9.1)
26
+ Requires-Dist: requests-toolbelt (>=1.0.0)
27
27
  Requires-Dist: requests (>=2.25.0)
28
28
  Requires-Dist: numpy (>=1.16.2)
29
29
  Requires-Dist: pandas (>=0.24.2)
@@ -1,9 +1,9 @@
1
- dtlpy/__init__.py,sha256=pJiyuUv6L9bWnW1vcknHAjYP-pouMCYzzexyDKxELoI,20127
2
- dtlpy/__version__.py,sha256=BcmejWGgARVAkaNKsamesQsOmoijL9t0WK_6O0DCjuU,20
1
+ dtlpy/__init__.py,sha256=judUZGmYQMFrva_nip8O371rvJ1BZnoL0fbU_1TX9CI,20194
2
+ dtlpy/__version__.py,sha256=ZdVvFV5PIAe2nMsSSrNOuWmp5sG9C_eg0iLY3frYIgw,20
3
3
  dtlpy/exceptions.py,sha256=EQCKs3pwhwZhgMByQN3D3LpWpdxwcKPEEt-bIaDwURM,2871
4
- dtlpy/new_instance.py,sha256=_-F1NTJgGCCHnW68eIexwq7leLGTCHcPxodbw9mfasI,5555
4
+ dtlpy/new_instance.py,sha256=I4Gc658s-yUD0-gEiC2pRDKaADZPdr1dm67K4mkx5xw,10065
5
5
  dtlpy/assets/__init__.py,sha256=D_hAa6NM8Zoy32sF_9b7m0b7I-BQEyBFg8-9Tg2WOeo,976
6
- dtlpy/assets/lock_open.png,sha256=WhGXI8pYNXF3nkbbwUV7BMY8QInXmyyZbS04JoYh3UY,18132
6
+ dtlpy/assets/lock_open.png,sha256=BH9uyf5uYvgZrDpDw9qCUnT3UbkXG8XbeRmWDpWlV4M,18215
7
7
  dtlpy/assets/main.py,sha256=N1JUsx79qnXI7Hx22C8JOzHJdGHxvrXeTx5UZAxvJfE,1380
8
8
  dtlpy/assets/main_partial.py,sha256=d8Be4Whg9Tb2VFiT85-57_L9IvxRipQXiZ83SxFs0Ro,267
9
9
  dtlpy/assets/mock.json,sha256=aByh4XlsFQJM2pOjmd7bd9zT1LSOj5pfutZDHwt8c_8,149
@@ -37,9 +37,6 @@ dtlpy/caches/cache.py,sha256=IqNaueml6aKU3_WAQ3lFfJP3qyXsvflZnAvA6vgboeM,16917
37
37
  dtlpy/caches/dl_cache.py,sha256=aaqB0THK6eNmQ54SC6egb6z8sJE3ciKQ5cIHrQHe4r8,5695
38
38
  dtlpy/caches/filesystem_cache.py,sha256=OrBqyEucSVp7g33c6R1BR3ICbkgQnwYWEDhQ7OxHy2Y,2737
39
39
  dtlpy/caches/redis_cache.py,sha256=bgJgxgAXFR_TxPDvlLS4TKumFds-ihNf668JbPYUfpc,2331
40
- dtlpy/callbacks/__init__.py,sha256=j3QTgKnQSNiVasjlTVIVl7hRQX-qlw36F9Fu_PKmktc,715
41
- dtlpy/callbacks/piper_progress_reporter.py,sha256=L9OK-n6zqBP0SFhq0lrMXuMjf4uWfy-12jqbL5cd9FQ,1075
42
- dtlpy/callbacks/progress_viewer.py,sha256=ZZw8ljXVP2kpndLRxOhY09dOgUN7Luop-4TUuT5nSDc,2314
43
40
  dtlpy/dlp/__init__.py,sha256=QG_BxSqeic0foFBmzIkpZEF4EvxOZamknj2f5Cb6T6Q,868
44
41
  dtlpy/dlp/cli_utilities.py,sha256=Kzr-AKbRlXLdGKY2RTUNm0U_vKHxyMOB17TQegeDMdM,16037
45
42
  dtlpy/dlp/command_executor.py,sha256=JKtRKTwrKfkXHa1VuFhPw15FuwexBPq_9ANAu2pSyXs,32113
@@ -47,49 +44,49 @@ dtlpy/dlp/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
47
44
  dtlpy/dlp/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
48
45
  dtlpy/dlp/dlp.py,sha256=YjNBjeCDTXJ7tj8qdiGZ8lFb8DtPZl-FvViyjxt9xF8,4278
49
46
  dtlpy/dlp/parser.py,sha256=p-TFaiAU2c3QkI97TXzL2LDR3Eq0hGDFrTc9J2jWLh4,30551
50
- dtlpy/entities/__init__.py,sha256=cwA3ZOsZbdiixwhH6D15sU_bwybDAB8P2mg1zThajBU,4510
51
- dtlpy/entities/analytic.py,sha256=5eAavh_NmvSWsD7uzon2vQn08chbc-dh1nlJc0awkQI,11374
52
- dtlpy/entities/annotation.py,sha256=s-g39sdUFafhsbGN1Taf2DSqoKbyRtWc0TVNhPpEAwA,67515
53
- dtlpy/entities/annotation_collection.py,sha256=Uh7pnyhAv4epMApHRtIdWRG_ro9U6p7yNV7Lnjzdzqk,29979
54
- dtlpy/entities/app.py,sha256=7i7xDRnyN2PgJ_oUNfhkTh7CxRHaXf-uGS2eX_DjAAg,6295
47
+ dtlpy/entities/__init__.py,sha256=lOu2d39xvp-gOi-BEtGriXSLgBOYx6vfAOGYCFBzorc,4522
48
+ dtlpy/entities/analytic.py,sha256=5MpYDKPVsZ1MIy20Ju515RWed6P667j4TLxsan2gyNM,11925
49
+ dtlpy/entities/annotation.py,sha256=yk-JQzgzXvnDLFrOkmcHQfEtsiPqZeIisv80ksNB-f8,66912
50
+ dtlpy/entities/annotation_collection.py,sha256=CEYSBHhhDkC0VJdHsBSrA6TgdKGMcKeI3tFM40UJwS8,29838
51
+ dtlpy/entities/app.py,sha256=wJV_CJmEhKLXskpeKkaHHvh0tuKL7oK18wCu6eIHPXo,6751
55
52
  dtlpy/entities/app_module.py,sha256=0UiAbBX1q8iEImi3nY7ySWZZHoRRwu0qUXmyXmgVAc4,3645
56
53
  dtlpy/entities/artifact.py,sha256=wtLtBuidOPbnba0ok40JyunCCIBGbAl4bP_ebK39Kk4,5711
57
- dtlpy/entities/assignment.py,sha256=LTUxE2ZB5iZSbSeoroHe5P7Kv6E_K2b5cdY-7TZ4HFE,14346
58
- dtlpy/entities/base_entity.py,sha256=II40doslcKJ97wtTIwhSYCNA9Lqvb5Y9LkiYNIdqDpM,7553
54
+ dtlpy/entities/assignment.py,sha256=Dc1QcfVf67GGcmDDi4ubESDuPkSgjXqdqjTBQ31faUM,14722
55
+ dtlpy/entities/base_entity.py,sha256=i83KrtAz6dX4t8JEiUimLI5ZRrN0VnoUWKG2Zz49N5w,6518
59
56
  dtlpy/entities/bot.py,sha256=is3NUCnPg56HSjsHIvFcVkymValMqDV0uHRDC1Ib-ds,3819
60
57
  dtlpy/entities/codebase.py,sha256=pwRkAq2GV0wvmzshg89IAmE-0I2Wsy_-QNOu8OV8uqc,8999
61
- dtlpy/entities/command.py,sha256=dv7w0GfTqq4OeLUoAUElYCdOrvE2Lp9Cx-XdA9N4314,4976
62
- dtlpy/entities/dataset.py,sha256=6rqfC4YA6q75-q3Hbfv2XR4tGkajMwXEgzP-b0OQw8U,45075
58
+ dtlpy/entities/command.py,sha256=ARu8ttk-C7_Ice7chRyTtyOtakBTF09FC04mEk73SO8,5010
59
+ dtlpy/entities/dataset.py,sha256=87o6FA9MYCIc0KBCUqQr_VsX-W2mGbJn64JvD-zp-EA,47354
63
60
  dtlpy/entities/directory_tree.py,sha256=Rni6pLSWytR6yeUPgEdCCRfTg_cqLOdUc9uCqz9KT-Q,1186
64
- dtlpy/entities/dpk.py,sha256=zTqzFIIagaJ3jUcFFI3wAmmNzVD4q0fBt41Ts0TLxeg,16788
61
+ dtlpy/entities/dpk.py,sha256=3iL-n8a8HoWqUusAepfs3v_kDP7b_H0I_D3YucO6vuE,17325
65
62
  dtlpy/entities/driver.py,sha256=O_QdK1EaLjQyQkmvKsmkNgmvmMb1mPjKnJGxK43KrOA,7197
66
- dtlpy/entities/execution.py,sha256=xZxfF3tYtf7tJ_GKzwSoEkF1zhlnWmbBzLoVXrNl8DE,12800
63
+ dtlpy/entities/execution.py,sha256=WBiAws-6wZnQQ3y9wyvOeexA3OjxfaRdwDu5dSFYL1g,13420
67
64
  dtlpy/entities/feature.py,sha256=9fFjD0W57anOVSAVU55ypxN_WTCsWTG03Wkc3cAAj78,3732
68
- dtlpy/entities/feature_set.py,sha256=lKbaLLklYC8dZGCDzQa8T-LSYpUygqLwlC_jhHtOfLw,4326
69
- dtlpy/entities/filters.py,sha256=H3_EYUNp0K8HHcddma1s308EIM0ALmXCJxmPyXA7GzU,19029
70
- dtlpy/entities/integration.py,sha256=Hi4PsIbrVx0LnytxI9GtPcrqRgm8Mq_BZUln1KUtxo8,5733
71
- dtlpy/entities/item.py,sha256=JGdBa8RDPWnVOdqRdKoz-T3o8rCOsLbKFdhs0KQDa6o,28369
65
+ dtlpy/entities/feature_set.py,sha256=niw4MkmrDbD_LWQu1X30uE6U4DCzmFhPTaYeZ6VZDB0,4443
66
+ dtlpy/entities/filters.py,sha256=Xkiu9IKR-MX2su6wVr5seQ4mKwFh0IFygtsVQkfoYSE,22348
67
+ dtlpy/entities/integration.py,sha256=CA5F1eQCGE_4c_Kry4nWRdeyjHctNnvexcDXg_M5HLU,5734
68
+ dtlpy/entities/item.py,sha256=3m9T5Y4xrfiNhgMQf_gWzwI3Ol_6U8LE_u5uWtims2M,29704
72
69
  dtlpy/entities/label.py,sha256=ycDYavIgKhz806plIX-64c07_TeHpDa-V7LnfFVe4Rg,3869
73
70
  dtlpy/entities/links.py,sha256=FAmEwHtsrqKet3c0UHH9u_gHgG6_OwF1-rl4xK7guME,2516
74
71
  dtlpy/entities/message.py,sha256=ApJuaKEqxATpXjNYUjGdYPu3ibQzEMo8-LtJ_4xAcPI,5865
75
72
  dtlpy/entities/model.py,sha256=GXfQoLa06GSsymBiRTqI2FYegLwyrc5S8lWMwGWxhjw,24959
76
- dtlpy/entities/node.py,sha256=jpf_aQRoBxD6XEZ3xjpgTPp8Iuj6Z4mAQbK7RC0Larw,37463
77
- dtlpy/entities/ontology.py,sha256=hpex7wLJ2JXMFq3lxLfN49LPz4M3GJIjqD-7HL5hOEw,29265
73
+ dtlpy/entities/node.py,sha256=yPPYDLtNMc6vZbbf4FIffY86y7tkaTvYm42Jb7k3Ofk,39617
74
+ dtlpy/entities/ontology.py,sha256=ok4p3sLBc_SS5hs2gZr5-gbblrveM7qSIX4z67QSKeQ,31967
78
75
  dtlpy/entities/organization.py,sha256=AMkx8hNIIIjnu5pYlNjckMRuKt6H3lnOAqtEynkr7wg,9893
79
76
  dtlpy/entities/package.py,sha256=EA5cB3nFBlsbxVK-QroZILjol2bYSVGqCby-mOyJJjQ,26353
80
77
  dtlpy/entities/package_defaults.py,sha256=wTD7Z7rGYjVy8AcUxTFEnkOkviiJaLVZYvduiUBKNZo,211
81
- dtlpy/entities/package_function.py,sha256=Y24zVxTxN602cv63I8gIZ9J7wu9lThj8XF0xW4cHutk,6166
82
- dtlpy/entities/package_module.py,sha256=PpEe635I8jnPbA1YDr_5jX3a_mEk-z-mBeX8Lw3HIgY,4134
78
+ dtlpy/entities/package_function.py,sha256=M42Kvw9A8b6msAkv-wRNAQg_-UC2bejniCjeKDugudc,6314
79
+ dtlpy/entities/package_module.py,sha256=cOkIITATkzzCQpE0sdPiBUisAz8ImlPG2YGZ0K7SypA,5151
83
80
  dtlpy/entities/package_slot.py,sha256=XBwCodQe618sQm0bmx46Npo94mEk-zUV7ZX0mDRcsD8,3946
84
81
  dtlpy/entities/paged_entities.py,sha256=A6_D0CUJsN52dBG6yn-oHHzjuVDkBNejTG5r-KxWOxI,5848
85
- dtlpy/entities/pipeline.py,sha256=Fh3vB2SvM-yhA8wWtIv9zojaqnE2c1cjJQr5CmveBS0,20119
86
- dtlpy/entities/pipeline_execution.py,sha256=2FKZhvcksWFYjTBQxnLtpRVy2PFGNkkt0EipWMan1JA,8907
82
+ dtlpy/entities/pipeline.py,sha256=OrRybxEa29S4sKtl7RTdf6kRgnQi90n4wlN4OsMJJLk,20671
83
+ dtlpy/entities/pipeline_execution.py,sha256=XCXlBAHFYVL2HajE71hK-bPxI4gTwZvg5SKri4BgyRA,9928
87
84
  dtlpy/entities/project.py,sha256=ZUx8zA3mr6N145M62R3UDPCCzO1vxfyWO6vjES-bO-g,14653
88
- dtlpy/entities/prompt_item.py,sha256=42U1gp9CmasMUPjr6JdEXNGfek_lDn8_2M2Xb1GPeSw,2469
89
- dtlpy/entities/recipe.py,sha256=m8EDczbNcEY5H8xyyendX5q1ECSC1qrpRmwDQrW221g,10193
85
+ dtlpy/entities/prompt_item.py,sha256=6fswLddnVKPLyGElgUCVPIZUYAZ-U0eor3nxZqecKHY,12335
86
+ dtlpy/entities/recipe.py,sha256=Q1HtYgind3bEe-vnDZWhw6H-rcIAGhkGHPRWtLIkPSE,11917
90
87
  dtlpy/entities/reflect_dict.py,sha256=2NaSAL-CO0T0FYRYFQlaSpbsoLT2Q18AqdHgQSLX5Y4,3273
91
88
  dtlpy/entities/resource_execution.py,sha256=1HuVV__U4jAUOtOkWlWImnM3Yts8qxMSAkMA9sBhArY,5033
92
- dtlpy/entities/service.py,sha256=8CayT9r84OEUBy7LzIGzHfwIqcNIXyRbfTUiFuprqmY,29053
89
+ dtlpy/entities/service.py,sha256=OaEcKsGgapwWRIzBUU8wvJqd0h_mpY7ICugVjzV7pDA,30211
93
90
  dtlpy/entities/setting.py,sha256=koydO8b0_bWVNklR2vpsXswxzBo8q83XtGk3wkma0MI,8522
94
91
  dtlpy/entities/task.py,sha256=XHiEqZYFlrDCtmw1MXsysjoBLdIzAk7coMrVk8bNIiE,19534
95
92
  dtlpy/entities/time_series.py,sha256=336jWNckjuSn0G29WJFetB7nBoFAKqs4VH9_IB4m4FE,4017
@@ -148,7 +145,7 @@ dtlpy/miscellaneous/list_print.py,sha256=leEg3RodgYfH5t_0JG8VuM8NiesR8sJLK_mRStt
148
145
  dtlpy/miscellaneous/zipping.py,sha256=GMdPhAeHQXeMS5ClaiKWMJWVYQLBLAaJUWxvdYrL4Ro,5337
149
146
  dtlpy/ml/__init__.py,sha256=vPkyXpc9kcWWZ_PxyPEOsjKBJdEbowLkZr8FZIb_OBM,799
150
147
  dtlpy/ml/base_feature_extractor_adapter.py,sha256=iiEGYAx0Rdn4K46H_FlKrAv3ebTXHSxNVAmio0BxhaI,1178
151
- dtlpy/ml/base_model_adapter.py,sha256=QTcYhOZ1wiiyVAjFj5tzTl396xpAVw6hSu8Qf3SD3-8,39941
148
+ dtlpy/ml/base_model_adapter.py,sha256=6HwWkMCsRD9TqmDviMa5glfpXbS4DRhKlXMFnFh4-tA,47828
152
149
  dtlpy/ml/metrics.py,sha256=BG2E-1Mvjv2e2No9mIJKVmvzqBvLqytKcw3hA7wVUNc,20037
153
150
  dtlpy/ml/predictions_utils.py,sha256=He_84U14oS2Ss7T_-Zj5GDiBZwS-GjMPURUh7u7DjF8,12484
154
151
  dtlpy/ml/summary_writer.py,sha256=dehDi8zmGC1sAGyy_3cpSWGXoGQSiQd7bL_Thoo8yIs,2784
@@ -156,45 +153,45 @@ dtlpy/ml/train_utils.py,sha256=R-BHKRfqDoLLhFyLzsRFyJ4E-8iedj9s9oZqy3IO2rg,2404
156
153
  dtlpy/repositories/__init__.py,sha256=_p6RafEniBXbeTAbz8efnIr4G4mCwV9x6LEkXhTRWUE,1949
157
154
  dtlpy/repositories/analytics.py,sha256=dQPCYTPAIuyfVI_ppR49W7_GBj0033feIm9Gd7LW1V0,2966
158
155
  dtlpy/repositories/annotations.py,sha256=E7iHo8UwDAhdulqh0lGr3fGQ-TSwZXXGsEXZA-WJ_NA,35780
159
- dtlpy/repositories/apps.py,sha256=6LHvjp8LlHmta4kJo3D4a0potSodfQ59yFkNQ08t4EU,13402
156
+ dtlpy/repositories/apps.py,sha256=VamO007F1rW7gPdMqPE-pFMaqXz4S5Xm9pY3GD9ITIY,15555
160
157
  dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzMbo,19081
161
- dtlpy/repositories/assignments.py,sha256=M1vlixBdAjwStqCG1MQjHsj3dH15KT0Rb5UTDtyDpEQ,25464
158
+ dtlpy/repositories/assignments.py,sha256=1VwJZ7ctQe1iaDDDpeYDgoj2G-TCgzolVLUEqUocd2w,25506
162
159
  dtlpy/repositories/bots.py,sha256=q1SqH01JHloljKxknhHU09psV1vQx9lPhu3g8mBBeRg,8104
163
160
  dtlpy/repositories/codebases.py,sha256=pvcZxdrq0-zWysVbdXjUOhnfcF6hJD8v5VclNZ-zhGA,24668
164
- dtlpy/repositories/commands.py,sha256=jJnHctZEloRH6Zxf1yFwpgWrv449EU_40QOexKwKlkw,5203
161
+ dtlpy/repositories/commands.py,sha256=8GJU2OQTH0grHFQE30l0UVqaPAwio4psk4VpiYklkFk,5589
165
162
  dtlpy/repositories/compositions.py,sha256=H417BvlQAiWr5NH2eANFke6CfEO5o7DSvapYpf7v5Hk,2150
166
- dtlpy/repositories/datasets.py,sha256=GjJLh5masXCdyuj8jTxvvLIvhxJuXtc0o4pn-Sfjr4A,45084
163
+ dtlpy/repositories/datasets.py,sha256=Rauh-apKSKP7cWS99uhiZYZ-679qNpPm7HoMkMzyJ-s,51789
167
164
  dtlpy/repositories/downloader.py,sha256=pNwL7Nid8xmOyYNiv4DB_WY4RoKlxQ-U9nG2V99Gyr8,41342
168
- dtlpy/repositories/dpks.py,sha256=lVaVsDElhO6vfvGbrsKvzAXdY3L4qjQMRCZPWIrDq6A,15380
165
+ dtlpy/repositories/dpks.py,sha256=b9i-K4HHBA-7T7AZdICFfMUWtqr9--igVwOq0TKyq7Y,16612
169
166
  dtlpy/repositories/drivers.py,sha256=fF0UuHCyBzop8pHfryex23mf0kVFAkqzNdOmwBbaWxY,10204
170
- dtlpy/repositories/executions.py,sha256=ixfekN5quQ_tQL7kdfPOb4r3qCvNTlWIBV8hPk2ElbE,30480
171
- dtlpy/repositories/feature_sets.py,sha256=xSceAIwK608JSU42IPT1NrvCtnaDJ582JfLd05F3Cck,8811
172
- dtlpy/repositories/features.py,sha256=X9luMRoTMbwhIEh3UTVQtd3jl6ToFUmv9s39EHuLKIc,9616
167
+ dtlpy/repositories/executions.py,sha256=M84nhpFPPZq4fQeJ2m_sv6JT4NE2WDRMOXWr451J0bU,30403
168
+ dtlpy/repositories/feature_sets.py,sha256=UowMDAl_CRefRB5oZzubnsjU_OFgiPPdQXn8q2j4Kuw,9666
169
+ dtlpy/repositories/features.py,sha256=7xA2ihEuNgZD7HBQMMGLWpsS2V_3PgieKW2YAk1OeUU,9712
173
170
  dtlpy/repositories/integrations.py,sha256=gNQmw5ykFtBaimdxUkzCXQqefZaM8yQPnxWZkIJK7ww,11666
174
171
  dtlpy/repositories/items.py,sha256=DqJ3g9bc4OLMm9KqI-OebXbr-zcEiohO1wGZJ1uE2Lg,37874
175
172
  dtlpy/repositories/messages.py,sha256=zYcoz8Us6j8Tb5Z7luJuvtO9xSRTuOCS7pl-ztt97Ac,3082
176
- dtlpy/repositories/models.py,sha256=7kYYE0cfw57bsv_T18QqjCBZsd6fSp99y_Vm94Ya44o,34813
173
+ dtlpy/repositories/models.py,sha256=o0S29Y7HF6RXV06N6MDXCozolzfK1X4JR-3YRODBBxo,34829
177
174
  dtlpy/repositories/nodes.py,sha256=xXJm_YA0vDUn0dVvaGeq6ORM0vI3YXvfjuylvGRtkxo,3061
178
175
  dtlpy/repositories/ontologies.py,sha256=unnMhD2isR9DVE5S8Fg6fSDf1ZZ5Xemxxufx4LEUT3w,19577
179
176
  dtlpy/repositories/organizations.py,sha256=6ijUDFbsogfRul1g_vUB5AZOb41MRmV5NhNU7WLHt3A,22825
180
- dtlpy/repositories/packages.py,sha256=FCshPoEDuKNfA3WIPqzqr_w_fJV2dFw2IvLdSuVVxv8,86741
181
- dtlpy/repositories/pipeline_executions.py,sha256=CYxJ_Lt5yeZI0Y0uhaolmgshu6_96QmPQUtyWrNGYFE,14421
177
+ dtlpy/repositories/packages.py,sha256=QhkXMZkpseCt0pDropJuqoHJL0RMa5plk8AN0V3w6Nk,86807
178
+ dtlpy/repositories/pipeline_executions.py,sha256=zQNRejj23r5q1cSp88KMoeOGUOUbbg3Yi-ER7qZfyF8,16781
182
179
  dtlpy/repositories/pipelines.py,sha256=VDAOsGbgD1_AKdMrJl_qB3gxPs7f3pwUnPx0pT1iAWk,23977
183
180
  dtlpy/repositories/projects.py,sha256=tZyFLqVs-8ggTIi5echlX7XdGOJGW4LzKuXke7jkRnw,22140
184
181
  dtlpy/repositories/recipes.py,sha256=ZZDhHn9g28C99bsf0nFaIpVYn6f6Jisz9upkHEkeaYY,15843
185
182
  dtlpy/repositories/resource_executions.py,sha256=PyzsbdJxz6jf17Gx13GZmqdu6tZo3TTVv-DypnJ_sY0,5374
186
183
  dtlpy/repositories/schema.py,sha256=kTKDrbwm7BfQnBAK81LpAl9ChNFdyUweSLNazlJJhjk,3953
187
- dtlpy/repositories/services.py,sha256=MDXQ6vAwZNXtBfhjekFHl2vzjGSZdbk6EJ1cAOkkKHs,66355
184
+ dtlpy/repositories/services.py,sha256=8hu6CgIyGQHOOlBmZmmM-oY8i-adU_99lSN46FGvvkc,67421
188
185
  dtlpy/repositories/settings.py,sha256=pvqNse0ANCdU3NSLJEzHco-PZq__OIsPSPVJveB9E4I,12296
189
- dtlpy/repositories/tasks.py,sha256=bbk0l0EZzFFEN_TjHBqDh6GNVum3yF902gdjO0iEFhk,48076
186
+ dtlpy/repositories/tasks.py,sha256=nA3rODvS8Q361xDmPXII-VPzktzoxbAApxTkzC5wv4M,48601
190
187
  dtlpy/repositories/times_series.py,sha256=m-bKFEgiZ13yQNelDjBfeXMUy_HgsPD_JAHj1GVx9fU,11420
191
188
  dtlpy/repositories/triggers.py,sha256=izdNyCN1gDc5uo7AXntso0HSMTDIzGFUp-dSEz8cn_U,21990
192
189
  dtlpy/repositories/upload_element.py,sha256=4CDZRKLubanOP0ZyGwxAHTtl6GLzwAyRAIm-PLYt0ck,10140
193
- dtlpy/repositories/uploader.py,sha256=PzEq4yHsxJT1lv_wYGS-gh7Wmu37TA-14ww_r-6HBrc,30337
190
+ dtlpy/repositories/uploader.py,sha256=iOlDYWIMy_h1Rbd7Mfug1I0e93dBJ0SxqP_BOwqYQPQ,30697
194
191
  dtlpy/repositories/webhooks.py,sha256=IIpxOJ-7KeQp1TY9aJZz-FuycSjAoYx0TDk8z86KAK8,9033
195
192
  dtlpy/services/__init__.py,sha256=VfVJy2otIrDra6i7Sepjyez2ujiE6171ChQZp-YgxsM,904
196
193
  dtlpy/services/aihttp_retry.py,sha256=tgntZsAY0dW9v08rkjX1T5BLNDdDd8svtgn7nH8DSGU,5022
197
- dtlpy/services/api_client.py,sha256=bMmLKQ0BbzLzEsEcZe-RSADjkRjTEoWJiQIQvo8h2L4,66127
194
+ dtlpy/services/api_client.py,sha256=EG4Spm163N7Ig99tkubSYqEGQQBElK2jFtJGAek96OY,68145
198
195
  dtlpy/services/api_reference.py,sha256=cW-B3eoi9Xs3AwI87_Kr6GV_E6HPoC73aETFaGz3A-0,1515
199
196
  dtlpy/services/async_utils.py,sha256=lfpkTkRUvQoMTxaRZBHbPt5e43qdvpCGDe_-KcY2Jps,2810
200
197
  dtlpy/services/calls_counter.py,sha256=gr0io5rIsO5-7Cgc8neA1vK8kUtYhgFPmDQ2jXtiZZs,1036
@@ -222,19 +219,19 @@ dtlpy/utilities/reports/report.py,sha256=3nEsNnIWmdPEsd21nN8vMMgaZVcPKn9iawKTTeO
222
219
  dtlpy/utilities/videos/__init__.py,sha256=SV3w51vfPuGBxaMeNemx6qEMHw_C4lLpWNGXMvdsKSY,734
223
220
  dtlpy/utilities/videos/video_player.py,sha256=LCxg0EZ_DeuwcT7U_r7MRC6Q19s0xdFb7x5Gk39PRms,24072
224
221
  dtlpy/utilities/videos/videos.py,sha256=Dj916B4TQRIhI7HZVevl3foFrCsPp0eeWwvGbgX3-_A,21875
225
- dtlpy-1.90.39.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
226
- dtlpy-1.90.39.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
227
- dtlpy-1.90.39.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
222
+ dtlpy-1.92.18.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
223
+ dtlpy-1.92.18.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
224
+ dtlpy-1.92.18.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
228
225
  tests/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
226
  tests/assets/models_flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
227
  tests/assets/models_flow/failedmain.py,sha256=n8F4eu_u7JPrJ1zedbJPvv9e3lHb3ihoErqrBIcseEc,1847
231
228
  tests/assets/models_flow/main.py,sha256=87O3-JaWcC6m_kA39sqPhX70_VCBzzbLWmX2YQFilJw,1873
232
229
  tests/assets/models_flow/main_model.py,sha256=Hl_tv7Q6KaRL3yLkpUoLMRqu5-ab1QsUYPL6RPEoamw,2042
233
230
  tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
- tests/features/environment.py,sha256=V0FuAjbwiN1ddlJrCjjGSgPrU9TEQWraZkp1E7QDzdQ,13849
235
- dtlpy-1.90.39.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
236
- dtlpy-1.90.39.dist-info/METADATA,sha256=Lbu5Y6VhyT-lUBvB0W3mhwE9MVt1DWrRu-sBbZMY2tI,2976
237
- dtlpy-1.90.39.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
238
- dtlpy-1.90.39.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
239
- dtlpy-1.90.39.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
240
- dtlpy-1.90.39.dist-info/RECORD,,
231
+ tests/features/environment.py,sha256=dyYLrhyaKFnobrz7jD-vgmmxjpL5HDwjQCbzOZa37dM,16261
232
+ dtlpy-1.92.18.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
233
+ dtlpy-1.92.18.dist-info/METADATA,sha256=7wSILtILaQxUkE01nn3j0a-IMSZ28H74JUoDiAITAEo,2976
234
+ dtlpy-1.92.18.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
235
+ dtlpy-1.92.18.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
236
+ dtlpy-1.92.18.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
237
+ dtlpy-1.92.18.dist-info/RECORD,,