dtlpy 1.88.15__py3-none-any.whl → 1.90.37__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.
- dtlpy/__init__.py +3 -2
- dtlpy/__version__.py +1 -1
- dtlpy/assets/lock_open.png +0 -0
- dtlpy/dlp/command_executor.py +23 -10
- dtlpy/dlp/parser.py +2 -2
- dtlpy/entities/__init__.py +2 -2
- dtlpy/entities/app.py +56 -4
- dtlpy/entities/dataset.py +7 -1
- dtlpy/entities/dpk.py +29 -34
- dtlpy/entities/filters.py +7 -1
- dtlpy/entities/integration.py +8 -3
- dtlpy/entities/model.py +30 -2
- dtlpy/entities/package_function.py +1 -0
- dtlpy/entities/package_module.py +1 -0
- dtlpy/entities/pipeline.py +1 -1
- dtlpy/entities/service.py +17 -3
- dtlpy/examples/upload_items_with_modalities.py +1 -1
- dtlpy/ml/base_feature_extractor_adapter.py +28 -0
- dtlpy/ml/base_model_adapter.py +37 -10
- dtlpy/repositories/__init__.py +1 -0
- dtlpy/repositories/apps.py +82 -4
- dtlpy/repositories/dpks.py +37 -9
- dtlpy/repositories/executions.py +10 -6
- dtlpy/repositories/features.py +8 -2
- dtlpy/repositories/integrations.py +1 -0
- dtlpy/repositories/models.py +57 -10
- dtlpy/repositories/packages.py +5 -2
- dtlpy/repositories/pipeline_executions.py +8 -5
- dtlpy/repositories/recipes.py +3 -2
- dtlpy/repositories/schema.py +120 -0
- dtlpy/repositories/services.py +5 -2
- dtlpy/services/api_client.py +9 -0
- dtlpy/services/logins.py +49 -18
- dtlpy/utilities/converter.py +37 -20
- dtlpy/utilities/dataset_generators/dataset_generator.py +2 -1
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/METADATA +2 -2
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/RECORD +45 -43
- tests/features/environment.py +5 -1
- {dtlpy-1.88.15.data → dtlpy-1.90.37.data}/scripts/dlp +0 -0
- {dtlpy-1.88.15.data → dtlpy-1.90.37.data}/scripts/dlp.bat +0 -0
- {dtlpy-1.88.15.data → dtlpy-1.90.37.data}/scripts/dlp.py +0 -0
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/LICENSE +0 -0
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/WHEEL +0 -0
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/entry_points.txt +0 -0
- {dtlpy-1.88.15.dist-info → dtlpy-1.90.37.dist-info}/top_level.txt +0 -0
dtlpy/repositories/recipes.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import traceback
|
|
3
|
+
import urllib.parse
|
|
3
4
|
|
|
4
5
|
from .. import entities, miscellaneous, repositories, exceptions, _api_reference
|
|
5
6
|
from ..services.api_client import ApiClient
|
|
@@ -198,9 +199,9 @@ class Recipes:
|
|
|
198
199
|
|
|
199
200
|
def _list(self, filters: entities.Filters):
|
|
200
201
|
url = filters.generate_url_query_params('/recipes')
|
|
201
|
-
|
|
202
|
+
encoded_url = urllib.parse.quote(url, safe='/:?=&')
|
|
202
203
|
# request
|
|
203
|
-
success, response = self._client_api.gen_request(req_type='get', path=
|
|
204
|
+
success, response = self._client_api.gen_request(req_type='get', path=encoded_url)
|
|
204
205
|
if not success:
|
|
205
206
|
raise exceptions.PlatformException(response)
|
|
206
207
|
return response.json()
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
import logging
|
|
3
|
+
|
|
4
|
+
from .. import entities, exceptions
|
|
5
|
+
from ..services.api_client import ApiClient
|
|
6
|
+
|
|
7
|
+
logger = logging.getLogger(name='dtlpy')
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UnsearchablePaths:
|
|
11
|
+
"""
|
|
12
|
+
Unsearchable Paths
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, client_api: ApiClient, dataset: entities.Dataset = None):
|
|
17
|
+
self._client_api = client_api
|
|
18
|
+
self._dataset = dataset
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def dataset(self) -> entities.Dataset:
|
|
22
|
+
if self._dataset is None:
|
|
23
|
+
raise exceptions.PlatformException(
|
|
24
|
+
error='2001',
|
|
25
|
+
message='Cannot perform action WITHOUT Dataset entity in {} repository.'.format(
|
|
26
|
+
self.__class__.__name__) + ' Please use dataset.schema or set a dataset')
|
|
27
|
+
assert isinstance(self._dataset, entities.Dataset)
|
|
28
|
+
return self._dataset
|
|
29
|
+
|
|
30
|
+
def __unsearchable_paths_request(self, payload):
|
|
31
|
+
"""
|
|
32
|
+
Set unsearchable paths in dataset schema
|
|
33
|
+
"""
|
|
34
|
+
success, response = self._client_api.gen_request(req_type='post',
|
|
35
|
+
path='/datasets/{}/schema/items'.format(self.dataset.id),
|
|
36
|
+
json_req=
|
|
37
|
+
{
|
|
38
|
+
"unsearchablePaths": payload
|
|
39
|
+
})
|
|
40
|
+
if not success:
|
|
41
|
+
raise exceptions.PlatformException(response)
|
|
42
|
+
|
|
43
|
+
resp = response.json()
|
|
44
|
+
if isinstance(resp, dict):
|
|
45
|
+
command = entities.Command.from_json(_json=resp,
|
|
46
|
+
client_api=self._client_api)
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
command.wait()
|
|
50
|
+
except Exception as e:
|
|
51
|
+
logger.error('Command failed: {}'.format(e))
|
|
52
|
+
else:
|
|
53
|
+
logger.warning(resp)
|
|
54
|
+
return success
|
|
55
|
+
|
|
56
|
+
def add(self, paths: List[str]):
|
|
57
|
+
"""
|
|
58
|
+
Add metadata paths to `unsearchablePaths` to exclude keys under these paths from indexing, making them unsearchable through the Dataset Browser UI and DQL queries.
|
|
59
|
+
|
|
60
|
+
:param paths: list of paths to create
|
|
61
|
+
:return: true if success, else raise exception
|
|
62
|
+
:rtype: bool
|
|
63
|
+
|
|
64
|
+
**Example**:
|
|
65
|
+
|
|
66
|
+
.. code-block:: python
|
|
67
|
+
|
|
68
|
+
success = dataset.schema.unsearchable_paths.add(paths=['metadata.key1', 'metadata.key2'])
|
|
69
|
+
"""
|
|
70
|
+
return self.__unsearchable_paths_request(payload={"add": paths})
|
|
71
|
+
|
|
72
|
+
def remove(self, paths: List[str]):
|
|
73
|
+
"""
|
|
74
|
+
Remove metadata paths from `unsearchablePaths` to index keys under these paths, making them searchable through the Dataset Browser UI and DQL queries.
|
|
75
|
+
|
|
76
|
+
:param paths: list of paths to delete
|
|
77
|
+
:return: true if success, else raise exception
|
|
78
|
+
:rtype: bool
|
|
79
|
+
|
|
80
|
+
**Example**:
|
|
81
|
+
|
|
82
|
+
.. code-block:: python
|
|
83
|
+
|
|
84
|
+
success = dataset.schema.unsearchable_paths.remove(paths=['metadata.key1', 'metadata.key2'])
|
|
85
|
+
"""
|
|
86
|
+
return self.__unsearchable_paths_request(payload={"remove": paths})
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class Schema:
|
|
90
|
+
"""
|
|
91
|
+
Schema Repository
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
def __init__(self, client_api: ApiClient, dataset: entities.Dataset):
|
|
95
|
+
self._client_api = client_api
|
|
96
|
+
self.dataset = dataset
|
|
97
|
+
self.unsearchable_paths = UnsearchablePaths(client_api=self._client_api, dataset=dataset)
|
|
98
|
+
|
|
99
|
+
###########
|
|
100
|
+
# methods #
|
|
101
|
+
###########
|
|
102
|
+
def get(self):
|
|
103
|
+
"""
|
|
104
|
+
Get dataset schema
|
|
105
|
+
|
|
106
|
+
:return: dataset schema
|
|
107
|
+
:rtype: dict
|
|
108
|
+
|
|
109
|
+
**Example**:
|
|
110
|
+
|
|
111
|
+
.. code-block:: python
|
|
112
|
+
|
|
113
|
+
json = dataset.schema.get()
|
|
114
|
+
"""
|
|
115
|
+
success, response = self._client_api.gen_request(req_type='get',
|
|
116
|
+
path='/datasets/{}/schema'.format(self.dataset.id))
|
|
117
|
+
if not success:
|
|
118
|
+
raise exceptions.PlatformException(response)
|
|
119
|
+
|
|
120
|
+
return response.json()
|
dtlpy/repositories/services.py
CHANGED
|
@@ -450,7 +450,8 @@ class Services:
|
|
|
450
450
|
name: str,
|
|
451
451
|
action: str = 'created',
|
|
452
452
|
support: str = None,
|
|
453
|
-
docs: str = None
|
|
453
|
+
docs: str = None,
|
|
454
|
+
agent_info: dict = None
|
|
454
455
|
):
|
|
455
456
|
url = "/services/{}/notify".format(service_id)
|
|
456
457
|
payload = {
|
|
@@ -458,6 +459,8 @@ class Services:
|
|
|
458
459
|
'message': message,
|
|
459
460
|
'notificationName': name
|
|
460
461
|
}
|
|
462
|
+
if agent_info is not None:
|
|
463
|
+
payload['agentInfo'] = agent_info
|
|
461
464
|
|
|
462
465
|
if support:
|
|
463
466
|
payload['support'] = support
|
|
@@ -1260,7 +1263,7 @@ class Services:
|
|
|
1260
1263
|
else:
|
|
1261
1264
|
project_id = self._project_id
|
|
1262
1265
|
|
|
1263
|
-
filters = entities.Filters(resource=entities.FiltersResource.SERVICE)
|
|
1266
|
+
filters = entities.Filters(resource=entities.FiltersResource.SERVICE, use_defaults=False)
|
|
1264
1267
|
filters.add(field='name', values=service_name)
|
|
1265
1268
|
if project_id is not None:
|
|
1266
1269
|
filters.add(field='projectId', values=project_id)
|
dtlpy/services/api_client.py
CHANGED
|
@@ -1451,6 +1451,7 @@ class ApiClient:
|
|
|
1451
1451
|
:param force: force login. in case login with same user but want to get a new JWT
|
|
1452
1452
|
:return:
|
|
1453
1453
|
"""
|
|
1454
|
+
logger.warning('dl.login_secret is deprecated. Please use dl.login_m2m instead.')
|
|
1454
1455
|
return login_secret(api_client=self,
|
|
1455
1456
|
email=email,
|
|
1456
1457
|
password=password,
|
|
@@ -1486,6 +1487,14 @@ class ApiClient:
|
|
|
1486
1487
|
"""
|
|
1487
1488
|
self.token = token # this will also set the refresh_token to None
|
|
1488
1489
|
|
|
1490
|
+
def login_api_key(self, api_key):
|
|
1491
|
+
"""
|
|
1492
|
+
Login using API key
|
|
1493
|
+
:param api_key: a valid API key
|
|
1494
|
+
:return:
|
|
1495
|
+
"""
|
|
1496
|
+
self.token = api_key
|
|
1497
|
+
|
|
1489
1498
|
@property
|
|
1490
1499
|
def login_domain(self):
|
|
1491
1500
|
if self._login_domain is None:
|
dtlpy/services/logins.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from urllib.parse import urlsplit, urlunsplit
|
|
2
|
+
import base64
|
|
2
3
|
import requests
|
|
3
4
|
import logging
|
|
4
5
|
import json
|
|
@@ -89,6 +90,51 @@ def logout(api_client):
|
|
|
89
90
|
return True
|
|
90
91
|
|
|
91
92
|
|
|
93
|
+
def login_html():
|
|
94
|
+
try:
|
|
95
|
+
location = os.path.dirname(os.path.realpath(__file__))
|
|
96
|
+
except NameError:
|
|
97
|
+
location = './dtlpy/services'
|
|
98
|
+
filename = os.path.join(location, '..', 'assets', 'lock_open.png')
|
|
99
|
+
|
|
100
|
+
if os.path.isfile(filename):
|
|
101
|
+
|
|
102
|
+
with open(filename, 'rb') as f:
|
|
103
|
+
image = f.read()
|
|
104
|
+
|
|
105
|
+
html = (
|
|
106
|
+
" <!doctype html>\n"
|
|
107
|
+
" <html>\n"
|
|
108
|
+
" <head>\n"
|
|
109
|
+
" <style>\n"
|
|
110
|
+
" body {{\n"
|
|
111
|
+
" background-color: #F7F7F9 !important;\n"
|
|
112
|
+
" display: flex;\n"
|
|
113
|
+
" justify-content: center;\n"
|
|
114
|
+
" align-items: center;\n"
|
|
115
|
+
" height: 100vh;\n"
|
|
116
|
+
" width: 100vw;\n"
|
|
117
|
+
" margin: 0;\n"
|
|
118
|
+
" }}\n"
|
|
119
|
+
" img {{\n"
|
|
120
|
+
" display: block;\n"
|
|
121
|
+
" max-width: 100%;\n"
|
|
122
|
+
" max-height: 100%;\n"
|
|
123
|
+
" margin: auto;\n"
|
|
124
|
+
" }}\n"
|
|
125
|
+
" </style>\n"
|
|
126
|
+
" </head>\n"
|
|
127
|
+
" <body>\n"
|
|
128
|
+
" <img src='data:image/png;base64,{image}'>\n"
|
|
129
|
+
" </body>\n"
|
|
130
|
+
" </html>\n"
|
|
131
|
+
).format(image=base64.b64encode(image).decode())
|
|
132
|
+
else:
|
|
133
|
+
html = "<!doctype html><html><body>Logged in successfully</body></html>"
|
|
134
|
+
|
|
135
|
+
return html.encode('utf-8')
|
|
136
|
+
|
|
137
|
+
|
|
92
138
|
def login(api_client, auth0_url=None, audience=None, client_id=None, login_domain=None, callback_port=None):
|
|
93
139
|
import webbrowser
|
|
94
140
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
@@ -111,24 +157,9 @@ def login(api_client, auth0_url=None, audience=None, client_id=None, login_domai
|
|
|
111
157
|
parsed_path = urlparse(self.path)
|
|
112
158
|
query = parse_qs(parsed_path.query)
|
|
113
159
|
self.send_response(200)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
# working directory when running from command line
|
|
118
|
-
location = os.path.dirname(os.path.realpath(__file__))
|
|
119
|
-
except NameError:
|
|
120
|
-
# working directory when running from console
|
|
121
|
-
location = './dtlpy/services'
|
|
122
|
-
filename = os.path.join(location, '..', 'assets', 'lock_open.png')
|
|
123
|
-
if os.path.isfile(filename):
|
|
124
|
-
with open(filename, 'rb') as f:
|
|
125
|
-
self.send_header('Content-type', 'image/jpg')
|
|
126
|
-
self.end_headers()
|
|
127
|
-
self.wfile.write(f.read())
|
|
128
|
-
else:
|
|
129
|
-
self.send_header('Content-type', 'text/html')
|
|
130
|
-
self.end_headers()
|
|
131
|
-
self.wfile.write(bytes("<!doctype html><html><body>Logged in successfully</body></html>", 'utf-8'))
|
|
160
|
+
self.send_header('Content-type', 'text/html')
|
|
161
|
+
self.end_headers()
|
|
162
|
+
self.wfile.write(login_html())
|
|
132
163
|
self.__class__.id_token = query['id_token'][0]
|
|
133
164
|
self.__class__.access_token = query['access_token'][0]
|
|
134
165
|
self.__class__.refresh_token = query['refresh_token'][0]
|
dtlpy/utilities/converter.py
CHANGED
|
@@ -349,6 +349,7 @@ class Converter:
|
|
|
349
349
|
|
|
350
350
|
def __convert_dataset_to_coco(self, dataset: entities.Dataset, local_path, filters=None, annotation_filter=None):
|
|
351
351
|
pages = dataset.items.list(filters=filters)
|
|
352
|
+
logger.info('items count: {}'.format(pages.items_count))
|
|
352
353
|
dataset.download_annotations(local_path=local_path, filters=filters, annotation_filters=annotation_filter)
|
|
353
354
|
path_to_dataloop_annotations_dir = os.path.join(local_path, 'json')
|
|
354
355
|
label_to_id = dataset.instance_map
|
|
@@ -368,20 +369,23 @@ class Converter:
|
|
|
368
369
|
)
|
|
369
370
|
for page in pages:
|
|
370
371
|
for item in page:
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
372
|
+
try:
|
|
373
|
+
pool.apply_async(func=self.__single_item_to_coco,
|
|
374
|
+
kwds={
|
|
375
|
+
'item': item,
|
|
376
|
+
'images': images,
|
|
377
|
+
'path_to_dataloop_annotations_dir': path_to_dataloop_annotations_dir,
|
|
378
|
+
'item_id': item_id_counter,
|
|
379
|
+
'reporter': reporter,
|
|
380
|
+
'converted_annotations': converted_annotations,
|
|
381
|
+
'annotation_filter': annotation_filter,
|
|
382
|
+
'label_to_id': label_to_id,
|
|
383
|
+
'categories': categories,
|
|
384
|
+
'pbar': pbar
|
|
385
|
+
})
|
|
386
|
+
item_id_counter += 1
|
|
387
|
+
except Exception as e:
|
|
388
|
+
logger.error('Failed to convert item: {}'.format(item.id))
|
|
385
389
|
|
|
386
390
|
pool.close()
|
|
387
391
|
pool.join()
|
|
@@ -414,8 +418,11 @@ class Converter:
|
|
|
414
418
|
logger.warning(
|
|
415
419
|
'Converted with some errors. Please see log in {} for more information.'.format(log_filepath))
|
|
416
420
|
|
|
417
|
-
logger.info('Total converted: {}'.format(reporter.
|
|
418
|
-
logger.info('Total failed: {}'.format(reporter.
|
|
421
|
+
logger.info('Total converted: {}'.format(reporter.success_count))
|
|
422
|
+
logger.info('Total failed: {}'.format(reporter.failure_count))
|
|
423
|
+
logger.info('Total skipped: {}'.format(reporter.status_count('skip')))
|
|
424
|
+
if reporter.success_count + reporter.status_count('skip') + reporter.failure_count != pages.items_count:
|
|
425
|
+
raise ValueError('Not all items were processed')
|
|
419
426
|
|
|
420
427
|
return coco_json, reporter.has_errors, log_filepath
|
|
421
428
|
|
|
@@ -501,8 +508,16 @@ class Converter:
|
|
|
501
508
|
item_id=item_id, i_annotation=pose_idx,
|
|
502
509
|
item_converted_annotations=item_converted_annotations)
|
|
503
510
|
|
|
504
|
-
def __single_item_to_coco(self, item: entities.Item,
|
|
505
|
-
|
|
511
|
+
def __single_item_to_coco(self, item: entities.Item,
|
|
512
|
+
images,
|
|
513
|
+
path_to_dataloop_annotations_dir,
|
|
514
|
+
item_id,
|
|
515
|
+
converted_annotations,
|
|
516
|
+
annotation_filter,
|
|
517
|
+
label_to_id,
|
|
518
|
+
reporter,
|
|
519
|
+
categories,
|
|
520
|
+
pbar=None):
|
|
506
521
|
try:
|
|
507
522
|
if item.type != 'dir':
|
|
508
523
|
item = Converter.__get_item_shape(item=item)
|
|
@@ -562,11 +577,13 @@ class Converter:
|
|
|
562
577
|
error=errors)
|
|
563
578
|
else:
|
|
564
579
|
reporter.set_index(ref=item.id, status='success', success=True)
|
|
580
|
+
else:
|
|
581
|
+
reporter.set_index(ref=item.id, status='skipped', success=True)
|
|
565
582
|
except Exception:
|
|
566
583
|
reporter.set_index(ref=item.id, status='failed', success=False,
|
|
567
584
|
error=traceback.format_exc())
|
|
568
|
-
|
|
569
|
-
|
|
585
|
+
logger.debug('Error converting item: {}\n{}'.format(item.id, traceback.format_exc()))
|
|
586
|
+
raise Exception('Error converting item: {}\n{}'.format(item.id, traceback.format_exc()))
|
|
570
587
|
if pbar is not None:
|
|
571
588
|
pbar.update()
|
|
572
589
|
|
|
@@ -250,10 +250,11 @@ class DatasetGenerator:
|
|
|
250
250
|
entities.AnnotationType.BOX,
|
|
251
251
|
entities.AnnotationType.POLYGON]:
|
|
252
252
|
raise ValueError('unsupported annotation type: {}'.format(annotation.type))
|
|
253
|
+
dtype = object if self.annotation_type == entities.AnnotationType.POLYGON else None
|
|
253
254
|
# reorder for output
|
|
254
255
|
item_info.update({entities.AnnotationType.BOX.value: np.asarray(box_coordinates).astype(float),
|
|
255
256
|
entities.AnnotationType.CLASSIFICATION.value: np.asarray(classes_ids),
|
|
256
|
-
entities.AnnotationType.POLYGON.value: np.asarray(polygon_coordinates, dtype=
|
|
257
|
+
entities.AnnotationType.POLYGON.value: np.asarray(polygon_coordinates, dtype=dtype),
|
|
257
258
|
'labels': labels})
|
|
258
259
|
if len(item_info[entities.AnnotationType.CLASSIFICATION.value]) == 0:
|
|
259
260
|
logger.debug('Empty annotation (nothing matched label_to_id_map) for image filename: {}'.format(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dtlpy
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.90.37
|
|
4
4
|
Summary: SDK and CLI for Dataloop platform
|
|
5
5
|
Home-page: https://github.com/dataloop-ai/dtlpy
|
|
6
6
|
Author: Dataloop Team
|
|
@@ -43,7 +43,7 @@ Requires-Dist: redis (>=3.5)
|
|
|
43
43
|
Requires-Dist: inquirer
|
|
44
44
|
Requires-Dist: dtlpymetrics
|
|
45
45
|
|
|
46
|
-

|
|
47
47
|
[](https://sdk-docs.dataloop.ai/en/latest/?badge=latest)
|
|
48
48
|
[](https://pypi.org/project/dtlpy/)
|
|
49
49
|
[](https://github.com/dataloop-ai/dtlpy)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
dtlpy/__init__.py,sha256=
|
|
2
|
-
dtlpy/__version__.py,sha256=
|
|
1
|
+
dtlpy/__init__.py,sha256=pJiyuUv6L9bWnW1vcknHAjYP-pouMCYzzexyDKxELoI,20127
|
|
2
|
+
dtlpy/__version__.py,sha256=1qj3PS0_EjKdBgEzjxUCdo97julDX9MXnun0P6V3QAE,20
|
|
3
3
|
dtlpy/exceptions.py,sha256=EQCKs3pwhwZhgMByQN3D3LpWpdxwcKPEEt-bIaDwURM,2871
|
|
4
4
|
dtlpy/new_instance.py,sha256=_-F1NTJgGCCHnW68eIexwq7leLGTCHcPxodbw9mfasI,5555
|
|
5
5
|
dtlpy/assets/__init__.py,sha256=D_hAa6NM8Zoy32sF_9b7m0b7I-BQEyBFg8-9Tg2WOeo,976
|
|
6
|
-
dtlpy/assets/lock_open.png,sha256=
|
|
6
|
+
dtlpy/assets/lock_open.png,sha256=WhGXI8pYNXF3nkbbwUV7BMY8QInXmyyZbS04JoYh3UY,18132
|
|
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
|
|
@@ -42,16 +42,16 @@ dtlpy/callbacks/piper_progress_reporter.py,sha256=L9OK-n6zqBP0SFhq0lrMXuMjf4uWfy
|
|
|
42
42
|
dtlpy/callbacks/progress_viewer.py,sha256=ZZw8ljXVP2kpndLRxOhY09dOgUN7Luop-4TUuT5nSDc,2314
|
|
43
43
|
dtlpy/dlp/__init__.py,sha256=QG_BxSqeic0foFBmzIkpZEF4EvxOZamknj2f5Cb6T6Q,868
|
|
44
44
|
dtlpy/dlp/cli_utilities.py,sha256=Kzr-AKbRlXLdGKY2RTUNm0U_vKHxyMOB17TQegeDMdM,16037
|
|
45
|
-
dtlpy/dlp/command_executor.py,sha256=
|
|
45
|
+
dtlpy/dlp/command_executor.py,sha256=JKtRKTwrKfkXHa1VuFhPw15FuwexBPq_9ANAu2pSyXs,32113
|
|
46
46
|
dtlpy/dlp/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
47
47
|
dtlpy/dlp/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
48
48
|
dtlpy/dlp/dlp.py,sha256=YjNBjeCDTXJ7tj8qdiGZ8lFb8DtPZl-FvViyjxt9xF8,4278
|
|
49
|
-
dtlpy/dlp/parser.py,sha256=
|
|
50
|
-
dtlpy/entities/__init__.py,sha256=
|
|
49
|
+
dtlpy/dlp/parser.py,sha256=p-TFaiAU2c3QkI97TXzL2LDR3Eq0hGDFrTc9J2jWLh4,30551
|
|
50
|
+
dtlpy/entities/__init__.py,sha256=cwA3ZOsZbdiixwhH6D15sU_bwybDAB8P2mg1zThajBU,4510
|
|
51
51
|
dtlpy/entities/analytic.py,sha256=5eAavh_NmvSWsD7uzon2vQn08chbc-dh1nlJc0awkQI,11374
|
|
52
52
|
dtlpy/entities/annotation.py,sha256=s-g39sdUFafhsbGN1Taf2DSqoKbyRtWc0TVNhPpEAwA,67515
|
|
53
53
|
dtlpy/entities/annotation_collection.py,sha256=Uh7pnyhAv4epMApHRtIdWRG_ro9U6p7yNV7Lnjzdzqk,29979
|
|
54
|
-
dtlpy/entities/app.py,sha256=
|
|
54
|
+
dtlpy/entities/app.py,sha256=7i7xDRnyN2PgJ_oUNfhkTh7CxRHaXf-uGS2eX_DjAAg,6295
|
|
55
55
|
dtlpy/entities/app_module.py,sha256=0UiAbBX1q8iEImi3nY7ySWZZHoRRwu0qUXmyXmgVAc4,3645
|
|
56
56
|
dtlpy/entities/artifact.py,sha256=wtLtBuidOPbnba0ok40JyunCCIBGbAl4bP_ebK39Kk4,5711
|
|
57
57
|
dtlpy/entities/assignment.py,sha256=LTUxE2ZB5iZSbSeoroHe5P7Kv6E_K2b5cdY-7TZ4HFE,14346
|
|
@@ -59,37 +59,37 @@ dtlpy/entities/base_entity.py,sha256=i8VzoXdkkJbUJD7U7U-bkbQKiUWkRwZZhl-mQT5WUsc
|
|
|
59
59
|
dtlpy/entities/bot.py,sha256=is3NUCnPg56HSjsHIvFcVkymValMqDV0uHRDC1Ib-ds,3819
|
|
60
60
|
dtlpy/entities/codebase.py,sha256=pwRkAq2GV0wvmzshg89IAmE-0I2Wsy_-QNOu8OV8uqc,8999
|
|
61
61
|
dtlpy/entities/command.py,sha256=dv7w0GfTqq4OeLUoAUElYCdOrvE2Lp9Cx-XdA9N4314,4976
|
|
62
|
-
dtlpy/entities/dataset.py,sha256=
|
|
62
|
+
dtlpy/entities/dataset.py,sha256=6rqfC4YA6q75-q3Hbfv2XR4tGkajMwXEgzP-b0OQw8U,45075
|
|
63
63
|
dtlpy/entities/directory_tree.py,sha256=Rni6pLSWytR6yeUPgEdCCRfTg_cqLOdUc9uCqz9KT-Q,1186
|
|
64
|
-
dtlpy/entities/dpk.py,sha256=
|
|
64
|
+
dtlpy/entities/dpk.py,sha256=zTqzFIIagaJ3jUcFFI3wAmmNzVD4q0fBt41Ts0TLxeg,16788
|
|
65
65
|
dtlpy/entities/driver.py,sha256=O_QdK1EaLjQyQkmvKsmkNgmvmMb1mPjKnJGxK43KrOA,7197
|
|
66
66
|
dtlpy/entities/execution.py,sha256=xZxfF3tYtf7tJ_GKzwSoEkF1zhlnWmbBzLoVXrNl8DE,12800
|
|
67
67
|
dtlpy/entities/feature.py,sha256=9fFjD0W57anOVSAVU55ypxN_WTCsWTG03Wkc3cAAj78,3732
|
|
68
68
|
dtlpy/entities/feature_set.py,sha256=lKbaLLklYC8dZGCDzQa8T-LSYpUygqLwlC_jhHtOfLw,4326
|
|
69
|
-
dtlpy/entities/filters.py,sha256=
|
|
70
|
-
dtlpy/entities/integration.py,sha256=
|
|
69
|
+
dtlpy/entities/filters.py,sha256=H3_EYUNp0K8HHcddma1s308EIM0ALmXCJxmPyXA7GzU,19029
|
|
70
|
+
dtlpy/entities/integration.py,sha256=Hi4PsIbrVx0LnytxI9GtPcrqRgm8Mq_BZUln1KUtxo8,5733
|
|
71
71
|
dtlpy/entities/item.py,sha256=JGdBa8RDPWnVOdqRdKoz-T3o8rCOsLbKFdhs0KQDa6o,28369
|
|
72
72
|
dtlpy/entities/label.py,sha256=ycDYavIgKhz806plIX-64c07_TeHpDa-V7LnfFVe4Rg,3869
|
|
73
73
|
dtlpy/entities/links.py,sha256=FAmEwHtsrqKet3c0UHH9u_gHgG6_OwF1-rl4xK7guME,2516
|
|
74
74
|
dtlpy/entities/message.py,sha256=ApJuaKEqxATpXjNYUjGdYPu3ibQzEMo8-LtJ_4xAcPI,5865
|
|
75
|
-
dtlpy/entities/model.py,sha256=
|
|
75
|
+
dtlpy/entities/model.py,sha256=GXfQoLa06GSsymBiRTqI2FYegLwyrc5S8lWMwGWxhjw,24959
|
|
76
76
|
dtlpy/entities/node.py,sha256=jpf_aQRoBxD6XEZ3xjpgTPp8Iuj6Z4mAQbK7RC0Larw,37463
|
|
77
77
|
dtlpy/entities/ontology.py,sha256=hpex7wLJ2JXMFq3lxLfN49LPz4M3GJIjqD-7HL5hOEw,29265
|
|
78
78
|
dtlpy/entities/organization.py,sha256=AMkx8hNIIIjnu5pYlNjckMRuKt6H3lnOAqtEynkr7wg,9893
|
|
79
79
|
dtlpy/entities/package.py,sha256=EA5cB3nFBlsbxVK-QroZILjol2bYSVGqCby-mOyJJjQ,26353
|
|
80
80
|
dtlpy/entities/package_defaults.py,sha256=wTD7Z7rGYjVy8AcUxTFEnkOkviiJaLVZYvduiUBKNZo,211
|
|
81
|
-
dtlpy/entities/package_function.py,sha256=
|
|
82
|
-
dtlpy/entities/package_module.py,sha256=
|
|
81
|
+
dtlpy/entities/package_function.py,sha256=Y24zVxTxN602cv63I8gIZ9J7wu9lThj8XF0xW4cHutk,6166
|
|
82
|
+
dtlpy/entities/package_module.py,sha256=PpEe635I8jnPbA1YDr_5jX3a_mEk-z-mBeX8Lw3HIgY,4134
|
|
83
83
|
dtlpy/entities/package_slot.py,sha256=XBwCodQe618sQm0bmx46Npo94mEk-zUV7ZX0mDRcsD8,3946
|
|
84
84
|
dtlpy/entities/paged_entities.py,sha256=A6_D0CUJsN52dBG6yn-oHHzjuVDkBNejTG5r-KxWOxI,5848
|
|
85
|
-
dtlpy/entities/pipeline.py,sha256
|
|
85
|
+
dtlpy/entities/pipeline.py,sha256=Fh3vB2SvM-yhA8wWtIv9zojaqnE2c1cjJQr5CmveBS0,20119
|
|
86
86
|
dtlpy/entities/pipeline_execution.py,sha256=2FKZhvcksWFYjTBQxnLtpRVy2PFGNkkt0EipWMan1JA,8907
|
|
87
87
|
dtlpy/entities/project.py,sha256=ZUx8zA3mr6N145M62R3UDPCCzO1vxfyWO6vjES-bO-g,14653
|
|
88
88
|
dtlpy/entities/prompt_item.py,sha256=42U1gp9CmasMUPjr6JdEXNGfek_lDn8_2M2Xb1GPeSw,2469
|
|
89
89
|
dtlpy/entities/recipe.py,sha256=m8EDczbNcEY5H8xyyendX5q1ECSC1qrpRmwDQrW221g,10193
|
|
90
90
|
dtlpy/entities/reflect_dict.py,sha256=2NaSAL-CO0T0FYRYFQlaSpbsoLT2Q18AqdHgQSLX5Y4,3273
|
|
91
91
|
dtlpy/entities/resource_execution.py,sha256=1HuVV__U4jAUOtOkWlWImnM3Yts8qxMSAkMA9sBhArY,5033
|
|
92
|
-
dtlpy/entities/service.py,sha256=
|
|
92
|
+
dtlpy/entities/service.py,sha256=8CayT9r84OEUBy7LzIGzHfwIqcNIXyRbfTUiFuprqmY,29053
|
|
93
93
|
dtlpy/entities/setting.py,sha256=koydO8b0_bWVNklR2vpsXswxzBo8q83XtGk3wkma0MI,8522
|
|
94
94
|
dtlpy/entities/task.py,sha256=XHiEqZYFlrDCtmw1MXsysjoBLdIzAk7coMrVk8bNIiE,19534
|
|
95
95
|
dtlpy/entities/time_series.py,sha256=336jWNckjuSn0G29WJFetB7nBoFAKqs4VH9_IB4m4FE,4017
|
|
@@ -137,7 +137,7 @@ dtlpy/examples/show_item_and_mask.py,sha256=PmZJWLAULUC1G47CuREDMPsNV6ZHYmDaZABk
|
|
|
137
137
|
dtlpy/examples/triggers.py,sha256=LJrwSQ3IoXQroyFNrohEhzWqDsEW9aXa_29FItq1boU,1591
|
|
138
138
|
dtlpy/examples/upload_batch_of_items.py,sha256=7sVZoHabsGESUCuWc_A2iysdtT5jQ0gXBivaieHgIr0,671
|
|
139
139
|
dtlpy/examples/upload_items_and_custom_format_annotations.py,sha256=KgGeIs2Q6MoTnWeAVuWJ3Q0Oy5HpaQ97NGMo-Oun6SI,2308
|
|
140
|
-
dtlpy/examples/upload_items_with_modalities.py,sha256=
|
|
140
|
+
dtlpy/examples/upload_items_with_modalities.py,sha256=PJyzPIvRSWi_nh7JlOR9YZKFrMuvYffDx5mz9TiVIvU,1848
|
|
141
141
|
dtlpy/examples/upload_segmentation_annotations_from_mask_image.py,sha256=JQGc8wQ3zTRRlVcRLs223UwCYCAfChKlvU0QOPEqezI,1388
|
|
142
142
|
dtlpy/examples/upload_yolo_format_annotations.py,sha256=PDLhC5pBGrC68Pix-7I7SgdaCweYNZPgJxg0h4ssWyc,2610
|
|
143
143
|
dtlpy/miscellaneous/__init__.py,sha256=twbvfsKdiNHNR-vUuy8nUlY3vuUVaSnm-wO83yQdeFY,829
|
|
@@ -147,15 +147,16 @@ dtlpy/miscellaneous/json_utils.py,sha256=0P4YTlL6o_L7AUrvAeqkqA46MZZK_hDdTrdnmI5
|
|
|
147
147
|
dtlpy/miscellaneous/list_print.py,sha256=leEg3RodgYfH5t_0JG8VuM8NiesR8sJLK_mRSttL5pY,4808
|
|
148
148
|
dtlpy/miscellaneous/zipping.py,sha256=GMdPhAeHQXeMS5ClaiKWMJWVYQLBLAaJUWxvdYrL4Ro,5337
|
|
149
149
|
dtlpy/ml/__init__.py,sha256=vPkyXpc9kcWWZ_PxyPEOsjKBJdEbowLkZr8FZIb_OBM,799
|
|
150
|
-
dtlpy/ml/
|
|
150
|
+
dtlpy/ml/base_feature_extractor_adapter.py,sha256=iiEGYAx0Rdn4K46H_FlKrAv3ebTXHSxNVAmio0BxhaI,1178
|
|
151
|
+
dtlpy/ml/base_model_adapter.py,sha256=QTcYhOZ1wiiyVAjFj5tzTl396xpAVw6hSu8Qf3SD3-8,39941
|
|
151
152
|
dtlpy/ml/metrics.py,sha256=BG2E-1Mvjv2e2No9mIJKVmvzqBvLqytKcw3hA7wVUNc,20037
|
|
152
153
|
dtlpy/ml/predictions_utils.py,sha256=He_84U14oS2Ss7T_-Zj5GDiBZwS-GjMPURUh7u7DjF8,12484
|
|
153
154
|
dtlpy/ml/summary_writer.py,sha256=dehDi8zmGC1sAGyy_3cpSWGXoGQSiQd7bL_Thoo8yIs,2784
|
|
154
155
|
dtlpy/ml/train_utils.py,sha256=R-BHKRfqDoLLhFyLzsRFyJ4E-8iedj9s9oZqy3IO2rg,2404
|
|
155
|
-
dtlpy/repositories/__init__.py,sha256=
|
|
156
|
+
dtlpy/repositories/__init__.py,sha256=_p6RafEniBXbeTAbz8efnIr4G4mCwV9x6LEkXhTRWUE,1949
|
|
156
157
|
dtlpy/repositories/analytics.py,sha256=dQPCYTPAIuyfVI_ppR49W7_GBj0033feIm9Gd7LW1V0,2966
|
|
157
158
|
dtlpy/repositories/annotations.py,sha256=E7iHo8UwDAhdulqh0lGr3fGQ-TSwZXXGsEXZA-WJ_NA,35780
|
|
158
|
-
dtlpy/repositories/apps.py,sha256=
|
|
159
|
+
dtlpy/repositories/apps.py,sha256=6LHvjp8LlHmta4kJo3D4a0potSodfQ59yFkNQ08t4EU,13402
|
|
159
160
|
dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzMbo,19081
|
|
160
161
|
dtlpy/repositories/assignments.py,sha256=M1vlixBdAjwStqCG1MQjHsj3dH15KT0Rb5UTDtyDpEQ,25464
|
|
161
162
|
dtlpy/repositories/bots.py,sha256=q1SqH01JHloljKxknhHU09psV1vQx9lPhu3g8mBBeRg,8104
|
|
@@ -164,25 +165,26 @@ dtlpy/repositories/commands.py,sha256=jJnHctZEloRH6Zxf1yFwpgWrv449EU_40QOexKwKlk
|
|
|
164
165
|
dtlpy/repositories/compositions.py,sha256=H417BvlQAiWr5NH2eANFke6CfEO5o7DSvapYpf7v5Hk,2150
|
|
165
166
|
dtlpy/repositories/datasets.py,sha256=GjJLh5masXCdyuj8jTxvvLIvhxJuXtc0o4pn-Sfjr4A,45084
|
|
166
167
|
dtlpy/repositories/downloader.py,sha256=pNwL7Nid8xmOyYNiv4DB_WY4RoKlxQ-U9nG2V99Gyr8,41342
|
|
167
|
-
dtlpy/repositories/dpks.py,sha256
|
|
168
|
+
dtlpy/repositories/dpks.py,sha256=lVaVsDElhO6vfvGbrsKvzAXdY3L4qjQMRCZPWIrDq6A,15380
|
|
168
169
|
dtlpy/repositories/drivers.py,sha256=fF0UuHCyBzop8pHfryex23mf0kVFAkqzNdOmwBbaWxY,10204
|
|
169
|
-
dtlpy/repositories/executions.py,sha256=
|
|
170
|
+
dtlpy/repositories/executions.py,sha256=ixfekN5quQ_tQL7kdfPOb4r3qCvNTlWIBV8hPk2ElbE,30480
|
|
170
171
|
dtlpy/repositories/feature_sets.py,sha256=xSceAIwK608JSU42IPT1NrvCtnaDJ582JfLd05F3Cck,8811
|
|
171
|
-
dtlpy/repositories/features.py,sha256=
|
|
172
|
-
dtlpy/repositories/integrations.py,sha256=
|
|
172
|
+
dtlpy/repositories/features.py,sha256=X9luMRoTMbwhIEh3UTVQtd3jl6ToFUmv9s39EHuLKIc,9616
|
|
173
|
+
dtlpy/repositories/integrations.py,sha256=gNQmw5ykFtBaimdxUkzCXQqefZaM8yQPnxWZkIJK7ww,11666
|
|
173
174
|
dtlpy/repositories/items.py,sha256=DqJ3g9bc4OLMm9KqI-OebXbr-zcEiohO1wGZJ1uE2Lg,37874
|
|
174
175
|
dtlpy/repositories/messages.py,sha256=zYcoz8Us6j8Tb5Z7luJuvtO9xSRTuOCS7pl-ztt97Ac,3082
|
|
175
|
-
dtlpy/repositories/models.py,sha256=
|
|
176
|
+
dtlpy/repositories/models.py,sha256=7kYYE0cfw57bsv_T18QqjCBZsd6fSp99y_Vm94Ya44o,34813
|
|
176
177
|
dtlpy/repositories/nodes.py,sha256=xXJm_YA0vDUn0dVvaGeq6ORM0vI3YXvfjuylvGRtkxo,3061
|
|
177
178
|
dtlpy/repositories/ontologies.py,sha256=unnMhD2isR9DVE5S8Fg6fSDf1ZZ5Xemxxufx4LEUT3w,19577
|
|
178
179
|
dtlpy/repositories/organizations.py,sha256=6ijUDFbsogfRul1g_vUB5AZOb41MRmV5NhNU7WLHt3A,22825
|
|
179
|
-
dtlpy/repositories/packages.py,sha256=
|
|
180
|
-
dtlpy/repositories/pipeline_executions.py,sha256=
|
|
180
|
+
dtlpy/repositories/packages.py,sha256=FCshPoEDuKNfA3WIPqzqr_w_fJV2dFw2IvLdSuVVxv8,86741
|
|
181
|
+
dtlpy/repositories/pipeline_executions.py,sha256=CYxJ_Lt5yeZI0Y0uhaolmgshu6_96QmPQUtyWrNGYFE,14421
|
|
181
182
|
dtlpy/repositories/pipelines.py,sha256=VDAOsGbgD1_AKdMrJl_qB3gxPs7f3pwUnPx0pT1iAWk,23977
|
|
182
183
|
dtlpy/repositories/projects.py,sha256=tZyFLqVs-8ggTIi5echlX7XdGOJGW4LzKuXke7jkRnw,22140
|
|
183
|
-
dtlpy/repositories/recipes.py,sha256=
|
|
184
|
+
dtlpy/repositories/recipes.py,sha256=ZZDhHn9g28C99bsf0nFaIpVYn6f6Jisz9upkHEkeaYY,15843
|
|
184
185
|
dtlpy/repositories/resource_executions.py,sha256=PyzsbdJxz6jf17Gx13GZmqdu6tZo3TTVv-DypnJ_sY0,5374
|
|
185
|
-
dtlpy/repositories/
|
|
186
|
+
dtlpy/repositories/schema.py,sha256=kTKDrbwm7BfQnBAK81LpAl9ChNFdyUweSLNazlJJhjk,3953
|
|
187
|
+
dtlpy/repositories/services.py,sha256=MDXQ6vAwZNXtBfhjekFHl2vzjGSZdbk6EJ1cAOkkKHs,66355
|
|
186
188
|
dtlpy/repositories/settings.py,sha256=pvqNse0ANCdU3NSLJEzHco-PZq__OIsPSPVJveB9E4I,12296
|
|
187
189
|
dtlpy/repositories/tasks.py,sha256=bbk0l0EZzFFEN_TjHBqDh6GNVum3yF902gdjO0iEFhk,48076
|
|
188
190
|
dtlpy/repositories/times_series.py,sha256=m-bKFEgiZ13yQNelDjBfeXMUy_HgsPD_JAHj1GVx9fU,11420
|
|
@@ -192,7 +194,7 @@ dtlpy/repositories/uploader.py,sha256=PzEq4yHsxJT1lv_wYGS-gh7Wmu37TA-14ww_r-6HBr
|
|
|
192
194
|
dtlpy/repositories/webhooks.py,sha256=IIpxOJ-7KeQp1TY9aJZz-FuycSjAoYx0TDk8z86KAK8,9033
|
|
193
195
|
dtlpy/services/__init__.py,sha256=VfVJy2otIrDra6i7Sepjyez2ujiE6171ChQZp-YgxsM,904
|
|
194
196
|
dtlpy/services/aihttp_retry.py,sha256=tgntZsAY0dW9v08rkjX1T5BLNDdDd8svtgn7nH8DSGU,5022
|
|
195
|
-
dtlpy/services/api_client.py,sha256=
|
|
197
|
+
dtlpy/services/api_client.py,sha256=u2cp3clDsR9X7Rn_pW82dxSJKWGjHpAifSBWZFGE-2Q,66115
|
|
196
198
|
dtlpy/services/api_reference.py,sha256=cW-B3eoi9Xs3AwI87_Kr6GV_E6HPoC73aETFaGz3A-0,1515
|
|
197
199
|
dtlpy/services/async_utils.py,sha256=lfpkTkRUvQoMTxaRZBHbPt5e43qdvpCGDe_-KcY2Jps,2810
|
|
198
200
|
dtlpy/services/calls_counter.py,sha256=gr0io5rIsO5-7Cgc8neA1vK8kUtYhgFPmDQ2jXtiZZs,1036
|
|
@@ -200,16 +202,16 @@ dtlpy/services/check_sdk.py,sha256=tnFWCzkJa8w2jLtw-guwuqpOtXGyiVU7ZCDFiUZUqzY,3
|
|
|
200
202
|
dtlpy/services/cookie.py,sha256=sSZR1QV4ienCcZ8lEK_Y4nZYBgAxO3kHrcBXFKGcmwQ,3694
|
|
201
203
|
dtlpy/services/create_logger.py,sha256=WFQjuvCuwrZoftFaU9jQkmEcOrL1XD-NqsuBqb5_SN4,6332
|
|
202
204
|
dtlpy/services/events.py,sha256=mpcu8RusLPrBcJEbWR61uFb4FiU_dQv3xoa7uM-rTcY,3686
|
|
203
|
-
dtlpy/services/logins.py,sha256=
|
|
205
|
+
dtlpy/services/logins.py,sha256=YMMi_C_A97ZNtIlREE30hpBRhULAZJtORiVL6OL0oPQ,8766
|
|
204
206
|
dtlpy/services/reporter.py,sha256=4zi9-bshKAPHG2XMOXS39cFZ0mhqNc3Qa9uaMN7CSZ8,9122
|
|
205
207
|
dtlpy/services/service_defaults.py,sha256=a7KoqkVmn2TXmM9gN9JRaVVtcG2b8JGIieVnaZeEaao,3860
|
|
206
208
|
dtlpy/utilities/__init__.py,sha256=ncQD1O5lZ7L9n9rNRBivyqNVFDZyQcmqn-X-wyQhhIs,898
|
|
207
209
|
dtlpy/utilities/base_package_runner.py,sha256=tux_XCiCoOhMPtFaQludzhj0ny6OTKhyoN1aXjPal54,8522
|
|
208
|
-
dtlpy/utilities/converter.py,sha256=
|
|
210
|
+
dtlpy/utilities/converter.py,sha256=8mOdKiLe1ATgR1Q56-c6d716aKGRt0A3M9AelijaYN8,74816
|
|
209
211
|
dtlpy/utilities/annotations/__init__.py,sha256=Eb72MloiwDQWe8H4NptFP1RZEEhcY2Fz_w_e34tdCiE,728
|
|
210
212
|
dtlpy/utilities/annotations/annotation_converters.py,sha256=KOqLVtb88GnrvuVi5x-t5vtzVN9Am98RersBl_D44SU,10796
|
|
211
213
|
dtlpy/utilities/dataset_generators/__init__.py,sha256=pA7UqhTh51gC407FyNa_WG8fUFnd__4tmEUTkNBlcLs,65
|
|
212
|
-
dtlpy/utilities/dataset_generators/dataset_generator.py,sha256
|
|
214
|
+
dtlpy/utilities/dataset_generators/dataset_generator.py,sha256=QOuydoXL9NlYYMw2jY8Dl6y4dNcldT3kkeu0V95R0MQ,31479
|
|
213
215
|
dtlpy/utilities/dataset_generators/dataset_generator_tensorflow.py,sha256=ZY97o4UAR5tM_req9O1Wh_N-U3cebSypub6kibykYP8,716
|
|
214
216
|
dtlpy/utilities/dataset_generators/dataset_generator_torch.py,sha256=qPm03zVZmga_BQSyWgcodYQL25WYiiBtz8QpCsU4oYc,536
|
|
215
217
|
dtlpy/utilities/local_development/__init__.py,sha256=6s1Ns7mN20J3yyIlgQbKAhPRqy7zQo-hIafLDrIj5cg,70
|
|
@@ -220,14 +222,14 @@ dtlpy/utilities/reports/report.py,sha256=3nEsNnIWmdPEsd21nN8vMMgaZVcPKn9iawKTTeO
|
|
|
220
222
|
dtlpy/utilities/videos/__init__.py,sha256=SV3w51vfPuGBxaMeNemx6qEMHw_C4lLpWNGXMvdsKSY,734
|
|
221
223
|
dtlpy/utilities/videos/video_player.py,sha256=LCxg0EZ_DeuwcT7U_r7MRC6Q19s0xdFb7x5Gk39PRms,24072
|
|
222
224
|
dtlpy/utilities/videos/videos.py,sha256=Dj916B4TQRIhI7HZVevl3foFrCsPp0eeWwvGbgX3-_A,21875
|
|
223
|
-
dtlpy-1.
|
|
224
|
-
dtlpy-1.
|
|
225
|
-
dtlpy-1.
|
|
225
|
+
dtlpy-1.90.37.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
226
|
+
dtlpy-1.90.37.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
227
|
+
dtlpy-1.90.37.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
|
|
226
228
|
tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
227
|
-
tests/features/environment.py,sha256=
|
|
228
|
-
dtlpy-1.
|
|
229
|
-
dtlpy-1.
|
|
230
|
-
dtlpy-1.
|
|
231
|
-
dtlpy-1.
|
|
232
|
-
dtlpy-1.
|
|
233
|
-
dtlpy-1.
|
|
229
|
+
tests/features/environment.py,sha256=V0FuAjbwiN1ddlJrCjjGSgPrU9TEQWraZkp1E7QDzdQ,13849
|
|
230
|
+
dtlpy-1.90.37.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
231
|
+
dtlpy-1.90.37.dist-info/METADATA,sha256=spLXXrJqRARvSiL5MpaflToCFrKek87S0TudPLNfXr4,2976
|
|
232
|
+
dtlpy-1.90.37.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
233
|
+
dtlpy-1.90.37.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
|
|
234
|
+
dtlpy-1.90.37.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
|
|
235
|
+
dtlpy-1.90.37.dist-info/RECORD,,
|
tests/features/environment.py
CHANGED
|
@@ -153,6 +153,9 @@ def before_feature(context, feature):
|
|
|
153
153
|
if 'rc_only' in context.tags and 'rc' not in os.environ.get("DLP_ENV_NAME"):
|
|
154
154
|
feature.skip("Marked with @rc_only")
|
|
155
155
|
return
|
|
156
|
+
if 'skip_test' in context.tags:
|
|
157
|
+
feature.skip("Marked with @skip_test")
|
|
158
|
+
return
|
|
156
159
|
|
|
157
160
|
|
|
158
161
|
def fix_project_with_frozen_datasets(project):
|
|
@@ -166,7 +169,8 @@ def fix_project_with_frozen_datasets(project):
|
|
|
166
169
|
def before_tag(context, tag):
|
|
167
170
|
if "skip_test" in tag:
|
|
168
171
|
dat = tag.split("_")[-1] if "DAT" in tag else ""
|
|
169
|
-
context
|
|
172
|
+
if hasattr(context, "scenario"):
|
|
173
|
+
context.scenario.skip(f"Test mark as SKIPPED, Should be merged after {dat}")
|
|
170
174
|
|
|
171
175
|
|
|
172
176
|
@fixture
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|