dtlpy 1.118.14__py3-none-any.whl → 1.119.5__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/__version__.py +1 -1
- dtlpy/entities/annotation.py +0 -7
- dtlpy/entities/app.py +19 -9
- dtlpy/entities/compute.py +122 -331
- dtlpy/entities/dpk.py +315 -2
- dtlpy/entities/model.py +0 -23
- dtlpy/entities/service.py +46 -1
- dtlpy/repositories/annotations.py +4 -2
- dtlpy/repositories/apps.py +1 -1
- dtlpy/repositories/computes.py +1 -1
- dtlpy/repositories/feature_sets.py +1 -1
- dtlpy/repositories/models.py +68 -56
- dtlpy/repositories/tasks.py +10 -3
- dtlpy/repositories/uploader.py +18 -2
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/METADATA +1 -1
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/RECORD +23 -23
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/WHEEL +1 -1
- {dtlpy-1.118.14.data → dtlpy-1.119.5.data}/scripts/dlp +0 -0
- {dtlpy-1.118.14.data → dtlpy-1.119.5.data}/scripts/dlp.bat +0 -0
- {dtlpy-1.118.14.data → dtlpy-1.119.5.data}/scripts/dlp.py +0 -0
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/entry_points.txt +0 -0
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/licenses/LICENSE +0 -0
- {dtlpy-1.118.14.dist-info → dtlpy-1.119.5.dist-info}/top_level.txt +0 -0
dtlpy/repositories/models.py
CHANGED
|
@@ -93,12 +93,22 @@ class Models:
|
|
|
93
93
|
client_api: ApiClient,
|
|
94
94
|
package: entities.Package = None,
|
|
95
95
|
project: entities.Project = None,
|
|
96
|
-
project_id: str = None
|
|
96
|
+
project_id: str = None,
|
|
97
|
+
app: entities.App = None):
|
|
98
|
+
"""
|
|
99
|
+
Initialize the Models repository.
|
|
100
|
+
|
|
101
|
+
:param client_api: The client API.
|
|
102
|
+
:param package: The package.
|
|
103
|
+
:param project: The project entity.
|
|
104
|
+
:param project_id: The project ID.
|
|
105
|
+
:param app: The app entity.
|
|
106
|
+
"""
|
|
97
107
|
self._client_api = client_api
|
|
98
108
|
self._project = project
|
|
99
109
|
self._package = package
|
|
100
110
|
self._project_id = project_id
|
|
101
|
-
|
|
111
|
+
self._app = app
|
|
102
112
|
if self._project is not None:
|
|
103
113
|
self._project_id = self._project.id
|
|
104
114
|
|
|
@@ -112,9 +122,8 @@ class Models:
|
|
|
112
122
|
projects = repositories.Projects(client_api=self._client_api)
|
|
113
123
|
self._project = projects.get(project_id=self._project_id)
|
|
114
124
|
if self._project is None:
|
|
115
|
-
if self.
|
|
116
|
-
|
|
117
|
-
self._project = self._package._project
|
|
125
|
+
if self._app is not None and self._app.project is not None:
|
|
126
|
+
self._project = self.app.project
|
|
118
127
|
if self._project is None:
|
|
119
128
|
raise exceptions.PlatformException(
|
|
120
129
|
error='2001',
|
|
@@ -138,6 +147,17 @@ class Models:
|
|
|
138
147
|
' Please use package.models or set a model')
|
|
139
148
|
assert isinstance(self._package, entities.Package)
|
|
140
149
|
return self._package
|
|
150
|
+
|
|
151
|
+
@property
|
|
152
|
+
def app(self) -> entities.App:
|
|
153
|
+
if self._app is None:
|
|
154
|
+
raise exceptions.PlatformException(
|
|
155
|
+
error='2001',
|
|
156
|
+
message='Cannot perform action WITHOUT App entity in {} repository.'.format(
|
|
157
|
+
self.__class__.__name__) +
|
|
158
|
+
' Please use app.models or set a model')
|
|
159
|
+
assert isinstance(self._app, entities.App)
|
|
160
|
+
return self._app
|
|
141
161
|
|
|
142
162
|
###########
|
|
143
163
|
# methods #
|
|
@@ -249,6 +269,8 @@ class Models:
|
|
|
249
269
|
filters.add(field='projectId', values=self._project.id)
|
|
250
270
|
if self._package is not None:
|
|
251
271
|
filters.add(field='packageId', values=self._package.id)
|
|
272
|
+
if self._app is not None:
|
|
273
|
+
filters.add(field='app.id', values=self._app.id)
|
|
252
274
|
|
|
253
275
|
# assert type filters
|
|
254
276
|
if not isinstance(filters, entities.Filters):
|
|
@@ -375,18 +397,18 @@ class Models:
|
|
|
375
397
|
model_artifacts: List[entities.Artifact] = None,
|
|
376
398
|
project_id=None,
|
|
377
399
|
tags: List[str] = None,
|
|
378
|
-
package: entities.Package = None,
|
|
379
400
|
configuration: dict = None,
|
|
380
401
|
status: str = None,
|
|
381
402
|
scope: entities.EntityScopeLevel = entities.EntityScopeLevel.PROJECT,
|
|
382
403
|
version: str = '1.0.0',
|
|
383
|
-
input_type=
|
|
384
|
-
output_type=
|
|
404
|
+
input_type='image',
|
|
405
|
+
output_type=entities.AnnotationType.CLASSIFICATION,
|
|
385
406
|
train_filter: entities.Filters = None,
|
|
386
407
|
validation_filter: entities.Filters = None,
|
|
387
408
|
annotations_train_filter: entities.Filters = None,
|
|
388
409
|
annotations_validation_filter: entities.Filters = None,
|
|
389
|
-
app: entities.App = None
|
|
410
|
+
app: entities.App = None,
|
|
411
|
+
dpk_model_name: str = None
|
|
390
412
|
) -> entities.Model:
|
|
391
413
|
"""
|
|
392
414
|
Create a Model entity
|
|
@@ -399,7 +421,6 @@ class Models:
|
|
|
399
421
|
:param model_artifacts: optional list of dl.Artifact. Can be ItemArtifact, LocaArtifact or LinkArtifact
|
|
400
422
|
:param str project_id: project that owns the model
|
|
401
423
|
:param list tags: list of string tags
|
|
402
|
-
:param package: optional - Package object
|
|
403
424
|
:param dict configuration: optional - model configuration - dict
|
|
404
425
|
:param str status: `str` of the optional values of
|
|
405
426
|
:param str scope: the scope level of the model dl.EntityScopeLevel
|
|
@@ -420,6 +441,21 @@ class Models:
|
|
|
420
441
|
project.models.create(model_name='model_name', dataset_id='dataset_id', labels=['label1', 'label2'], train_filter={filter: {$and: [{dir: "/10K short videos"}]},page: 0,pageSize: 1000,resource: "items"}})
|
|
421
442
|
|
|
422
443
|
"""
|
|
444
|
+
if app is None and self._app is None:
|
|
445
|
+
raise exceptions.PlatformException("Must provide an app entity or set the app in the models repository")
|
|
446
|
+
if app is None:
|
|
447
|
+
app = self.app
|
|
448
|
+
dpk = app.dpk
|
|
449
|
+
model_to_create = None
|
|
450
|
+
for dpk_model in dpk.components.models:
|
|
451
|
+
if dpk_model_name == dpk_model['name']:
|
|
452
|
+
model_to_create = dpk_model
|
|
453
|
+
break
|
|
454
|
+
if model_to_create is None:
|
|
455
|
+
valid_model_names = [m['name'] for m in dpk.components.models]
|
|
456
|
+
raise exceptions.NotFound(f"Must provide a valid model name from the dpk {valid_model_names}")
|
|
457
|
+
|
|
458
|
+
|
|
423
459
|
|
|
424
460
|
if ontology_id is not None:
|
|
425
461
|
# take labels from ontology
|
|
@@ -427,87 +463,64 @@ class Models:
|
|
|
427
463
|
labels = [label.tag for label in ontologies.get(ontology_id=ontology_id).labels]
|
|
428
464
|
|
|
429
465
|
if labels is None:
|
|
430
|
-
|
|
431
|
-
labels = list()
|
|
432
|
-
|
|
433
|
-
if input_type is None:
|
|
434
|
-
input_type = 'image'
|
|
435
|
-
|
|
436
|
-
if output_type is None:
|
|
437
|
-
output_type = entities.AnnotationType.CLASSIFICATION
|
|
438
|
-
|
|
439
|
-
if package is None and self._package is None:
|
|
440
|
-
raise exceptions.PlatformException('Must provide a Package or create from package.models')
|
|
441
|
-
elif package is None:
|
|
442
|
-
package = self._package
|
|
466
|
+
labels = model_to_create.get('labels', list())
|
|
443
467
|
|
|
444
468
|
# TODO need to remove the entire project id user interface - need to take it from dataset id (in BE)
|
|
445
469
|
if project_id is None:
|
|
446
|
-
if self._project is None:
|
|
470
|
+
if self._project is None and app.project_id is None:
|
|
447
471
|
raise exceptions.PlatformException('Please provide project_id')
|
|
448
|
-
project_id = self._project.id
|
|
449
|
-
else:
|
|
450
|
-
if project_id != self._project_id:
|
|
451
|
-
if (isinstance(package, entities.Package) and not package.is_global) or \
|
|
452
|
-
(isinstance(package, entities.Dpk) and not package.scope != 'public'):
|
|
453
|
-
logger.warning(
|
|
454
|
-
"Note! you are specified project_id {!r} which is different from repository context: {!r}".format(
|
|
455
|
-
project_id, self._project_id))
|
|
472
|
+
project_id = self._project.id if self._project is not None else app.project_id
|
|
456
473
|
|
|
457
474
|
if model_artifacts is None:
|
|
458
475
|
model_artifacts = []
|
|
459
476
|
|
|
460
477
|
if not isinstance(model_artifacts, list):
|
|
461
478
|
raise ValueError('`model_artifacts` must be a list of dl.Artifact entities')
|
|
479
|
+
|
|
462
480
|
|
|
463
481
|
# create payload for request
|
|
464
482
|
payload = {
|
|
465
|
-
'packageId': package.id,
|
|
466
483
|
'name': model_name,
|
|
484
|
+
'scope': scope,
|
|
485
|
+
'packageId': dpk.id,
|
|
486
|
+
'outputType': output_type,
|
|
467
487
|
'projectId': project_id,
|
|
468
488
|
'datasetId': dataset_id,
|
|
469
489
|
'labels': labels,
|
|
470
490
|
'artifacts': [artifact.to_json(as_artifact=True) for artifact in model_artifacts],
|
|
471
|
-
'scope': scope,
|
|
472
491
|
'version': version,
|
|
473
|
-
'inputType': input_type
|
|
474
|
-
'outputType': output_type,
|
|
492
|
+
'inputType': input_type
|
|
475
493
|
}
|
|
476
494
|
|
|
477
495
|
if app is not None:
|
|
478
|
-
|
|
479
|
-
raise ValueError('package must be a Dpk entity')
|
|
480
|
-
if app.dpk_name != package.name or app.dpk_version != package.version:
|
|
481
|
-
raise ValueError('App and package must be the same')
|
|
482
|
-
component_name = None
|
|
483
|
-
compute_config = None
|
|
484
|
-
for model in package.components.models:
|
|
485
|
-
if model['name'] == model_name:
|
|
486
|
-
component_name = model['name']
|
|
487
|
-
compute_config = model.get('computeConfigs', None)
|
|
488
|
-
break
|
|
489
|
-
if component_name is None:
|
|
490
|
-
raise ValueError('Model name not found in package')
|
|
496
|
+
payload['moduleName'] = model_to_create['moduleName']
|
|
491
497
|
payload['app'] = {
|
|
492
498
|
"id": app.id,
|
|
493
|
-
"componentName":
|
|
494
|
-
"dpkName":
|
|
495
|
-
"dpkVersion":
|
|
499
|
+
"componentName": model_to_create['name'],
|
|
500
|
+
"dpkName": dpk.name,
|
|
501
|
+
"dpkVersion": dpk.version,
|
|
502
|
+
"dpkId": dpk.id
|
|
496
503
|
}
|
|
497
|
-
if compute_config is not None:
|
|
498
|
-
payload['app']['computeConfig'] = compute_config
|
|
499
504
|
|
|
500
505
|
if configuration is not None:
|
|
501
506
|
payload['configuration'] = configuration
|
|
507
|
+
else:
|
|
508
|
+
payload['configuration'] = model_to_create.get('configuration', dict())
|
|
502
509
|
|
|
503
510
|
if tags is not None:
|
|
504
511
|
payload['tags'] = tags
|
|
512
|
+
else:
|
|
513
|
+
payload['tags'] = model_to_create.get('tags', list())
|
|
505
514
|
|
|
506
515
|
if description is not None:
|
|
507
516
|
payload['description'] = description
|
|
517
|
+
else:
|
|
518
|
+
payload['description'] = model_to_create.get('description', '')
|
|
508
519
|
|
|
509
520
|
if status is not None:
|
|
510
521
|
payload['status'] = status
|
|
522
|
+
else:
|
|
523
|
+
payload['status'] = model_to_create.get('status', entities.ModelStatus.PRE_TRAINED)
|
|
511
524
|
|
|
512
525
|
if train_filter or validation_filter or annotations_train_filter or annotations_validation_filter:
|
|
513
526
|
metadata = Models._build_model_metadata(
|
|
@@ -529,8 +542,7 @@ class Models:
|
|
|
529
542
|
|
|
530
543
|
model = entities.Model.from_json(_json=response.json(),
|
|
531
544
|
client_api=self._client_api,
|
|
532
|
-
project=self._project
|
|
533
|
-
package=package)
|
|
545
|
+
project=self._project)
|
|
534
546
|
|
|
535
547
|
return model
|
|
536
548
|
|
dtlpy/repositories/tasks.py
CHANGED
|
@@ -623,6 +623,7 @@ class Tasks:
|
|
|
623
623
|
priority=entities.TaskPriority.MEDIUM,
|
|
624
624
|
consensus_percentage=None,
|
|
625
625
|
consensus_assignees=None,
|
|
626
|
+
scoring=False,
|
|
626
627
|
limit=None,
|
|
627
628
|
wait=True,
|
|
628
629
|
enforce_video_conversion=True,
|
|
@@ -644,7 +645,7 @@ class Tasks:
|
|
|
644
645
|
consensus_task_type=entities.ConsensusTaskType.QUALIFICATION,
|
|
645
646
|
consensus_percentage=consensus_percentage,
|
|
646
647
|
consensus_assignees=consensus_assignees,
|
|
647
|
-
scoring=
|
|
648
|
+
scoring=scoring,
|
|
648
649
|
limit=limit,
|
|
649
650
|
wait=wait,
|
|
650
651
|
enforce_video_conversion=enforce_video_conversion,
|
|
@@ -690,7 +691,7 @@ class Tasks:
|
|
|
690
691
|
:param str consensus_task_type: consensus task type - "consensus", "qualification", or "honeypot"
|
|
691
692
|
:param int consensus_percentage: percentage of items to be copied to multiple annotators (consensus items)
|
|
692
693
|
:param int consensus_assignees: the number of different annotators per item (number of copies per item)
|
|
693
|
-
:param bool scoring: create a scoring app in project
|
|
694
|
+
:param bool scoring: create a scoring app in project. Note: Scoring is no longer applied by default. Set scoring=True to enable it.
|
|
694
695
|
:param int limit: the limit items that the task can include
|
|
695
696
|
:param bool wait: wait until create task finish
|
|
696
697
|
:param bool enforce_video_conversion: Enforce WEBM conversion on video items for frame-accurate annotations
|
|
@@ -726,6 +727,9 @@ class Tasks:
|
|
|
726
727
|
if workload is None and assignee_ids is not None:
|
|
727
728
|
workload = entities.Workload.generate(assignee_ids=assignee_ids)
|
|
728
729
|
|
|
730
|
+
if scoring is False:
|
|
731
|
+
logger.warning("Scoring is no longer applied by default. Set scoring=True to enable it.")
|
|
732
|
+
|
|
729
733
|
# Handle metadata for consensus tasks
|
|
730
734
|
if metadata is None:
|
|
731
735
|
metadata = {}
|
|
@@ -1010,7 +1014,7 @@ class Tasks:
|
|
|
1010
1014
|
:param entities.ConsensusTaskType consensus_task_type: consensus_task_type of the task options in entities.ConsensusTaskType
|
|
1011
1015
|
:param int consensus_percentage: percentage of items to be copied to multiple annotators (consensus items)
|
|
1012
1016
|
:param int consensus_assignees: the number of different annotators per item (number of copies per item)
|
|
1013
|
-
:param bool scoring: create a scoring app in project
|
|
1017
|
+
:param bool scoring: create a scoring app in project. Note: Scoring is no longer applied by default for consensus tasks. Set scoring=True to enable it.
|
|
1014
1018
|
: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.
|
|
1015
1019
|
:return: Task object
|
|
1016
1020
|
:rtype: dtlpy.entities.task.Task
|
|
@@ -1071,6 +1075,9 @@ class Tasks:
|
|
|
1071
1075
|
else:
|
|
1072
1076
|
project_id = self.project.id
|
|
1073
1077
|
|
|
1078
|
+
if scoring is False:
|
|
1079
|
+
logger.warning("Scoring is no longer applied by default. Set scoring=True to enable it.")
|
|
1080
|
+
|
|
1074
1081
|
if workload is None and assignee_ids is not None:
|
|
1075
1082
|
workload = entities.Workload.generate(assignee_ids=assignee_ids)
|
|
1076
1083
|
|
dtlpy/repositories/uploader.py
CHANGED
|
@@ -378,10 +378,26 @@ class Uploader:
|
|
|
378
378
|
return futures
|
|
379
379
|
|
|
380
380
|
async def __single_external_sync(self, element):
|
|
381
|
-
|
|
381
|
+
# Path format: anything before last "://" is scheme (external, provider s3/gs, etc.). After it: bucket_name/path_to_file.
|
|
382
|
+
# API expects storageId as "bucket:key".
|
|
383
|
+
idx = element.buffer.rfind('://')
|
|
384
|
+
if idx == -1:
|
|
385
|
+
raise PlatformException(
|
|
386
|
+
error="400",
|
|
387
|
+
message="External path must contain '://'. Got: {}".format(element.buffer)
|
|
388
|
+
)
|
|
389
|
+
path_after_schemes = element.buffer[idx + 3:]
|
|
390
|
+
# Collapse consecutive slashes so "bucket///key/path1//path2" becomes "bucket/key/path1/path2"
|
|
391
|
+
path_normalized = '/'.join(segment for segment in path_after_schemes.split('/') if segment)
|
|
392
|
+
parts = path_normalized.split('/', 1)
|
|
393
|
+
if len(parts) != 2:
|
|
394
|
+
raise PlatformException(
|
|
395
|
+
error="400",
|
|
396
|
+
message="The part after '://' must be bucket_name/path_to_file (e.g. my-bucket/folder/file.jpg). Got after '://': '{}'".format(path_after_schemes)
|
|
397
|
+
)
|
|
382
398
|
req_json = dict()
|
|
383
399
|
req_json['filename'] = element.remote_filepath
|
|
384
|
-
req_json['storageId'] =
|
|
400
|
+
req_json['storageId'] = f"{parts[0]}:{parts[1]}"
|
|
385
401
|
success, response = self.items_repository._client_api.gen_request(req_type='post',
|
|
386
402
|
path='/datasets/{}/imports'.format(
|
|
387
403
|
self.items_repository.dataset.id),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
dtlpy/__init__.py,sha256=p9qDLEQ01cTj0Xx8FkxJPHSmP7LMHMv8b5-ZWW1FPrU,20625
|
|
2
|
-
dtlpy/__version__.py,sha256=
|
|
2
|
+
dtlpy/__version__.py,sha256=qej6cp2wKzCmndfEOj-tsDZmtC4n6TJT13AH--NMCI0,20
|
|
3
3
|
dtlpy/exceptions.py,sha256=EQCKs3pwhwZhgMByQN3D3LpWpdxwcKPEEt-bIaDwURM,2871
|
|
4
4
|
dtlpy/new_instance.py,sha256=XegQav2hzPrPAUzuRFvUIGSPidoK-rbb02Q43NPsIpo,9982
|
|
5
5
|
dtlpy/assets/__init__.py,sha256=D_hAa6NM8Zoy32sF_9b7m0b7I-BQEyBFg8-9Tg2WOeo,976
|
|
@@ -45,9 +45,9 @@ dtlpy/dlp/dlp.py,sha256=Zv9yoXwNAx4gkED-JiayN-ZkX2dPn4FB0SDx9qc7muo,4404
|
|
|
45
45
|
dtlpy/dlp/parser.py,sha256=p-TFaiAU2c3QkI97TXzL2LDR3Eq0hGDFrTc9J2jWLh4,30551
|
|
46
46
|
dtlpy/entities/__init__.py,sha256=tHndgUHZOaiXJdOY-NTvGoHcJ29EkGzz389sWQPWyaI,5050
|
|
47
47
|
dtlpy/entities/analytic.py,sha256=6bMG4FD7VIDr3ca8hJ25yd9IyAuzPdaN1lsV4VD7z2Q,13739
|
|
48
|
-
dtlpy/entities/annotation.py,sha256=
|
|
48
|
+
dtlpy/entities/annotation.py,sha256=vE-y9FcBXS_ljHgoeXVQmcfxok-XNRnEaBhXPmBVJO0,66506
|
|
49
49
|
dtlpy/entities/annotation_collection.py,sha256=CEYSBHhhDkC0VJdHsBSrA6TgdKGMcKeI3tFM40UJwS8,29838
|
|
50
|
-
dtlpy/entities/app.py,sha256=
|
|
50
|
+
dtlpy/entities/app.py,sha256=YgwAPJloMAkK_QMbfdJrZAoLKJMQzPu80Iw5ID9x6ys,7461
|
|
51
51
|
dtlpy/entities/app_module.py,sha256=0UiAbBX1q8iEImi3nY7ySWZZHoRRwu0qUXmyXmgVAc4,3645
|
|
52
52
|
dtlpy/entities/artifact.py,sha256=wtLtBuidOPbnba0ok40JyunCCIBGbAl4bP_ebK39Kk4,5711
|
|
53
53
|
dtlpy/entities/assignment.py,sha256=Dc1QcfVf67GGcmDDi4ubESDuPkSgjXqdqjTBQ31faUM,14722
|
|
@@ -56,10 +56,10 @@ dtlpy/entities/bot.py,sha256=is3NUCnPg56HSjsHIvFcVkymValMqDV0uHRDC1Ib-ds,3819
|
|
|
56
56
|
dtlpy/entities/codebase.py,sha256=7ZxEGhG_52mdZWfjg9ge6vkgLf3NDh1INZMkCHns-6Y,8864
|
|
57
57
|
dtlpy/entities/collection.py,sha256=FPPPfIxOsBG1ujORPJVq8uXyF8vhIqC6N4EiI9SJzl0,1160
|
|
58
58
|
dtlpy/entities/command.py,sha256=5RMQYjOGLRF8JZd7QFAPyE8utsp4eZzLApI2dEAbaqo,5301
|
|
59
|
-
dtlpy/entities/compute.py,sha256=
|
|
59
|
+
dtlpy/entities/compute.py,sha256=gdG5rbV4vS7a5oo6uIVLQM9Hm24gAafpKgjRVHmJM_o,8840
|
|
60
60
|
dtlpy/entities/dataset.py,sha256=S_l3Bu2nmbqgN7eroNkRrXt7_2bI9V_1r0nZKTc_obY,55629
|
|
61
61
|
dtlpy/entities/directory_tree.py,sha256=Rni6pLSWytR6yeUPgEdCCRfTg_cqLOdUc9uCqz9KT-Q,1186
|
|
62
|
-
dtlpy/entities/dpk.py,sha256=
|
|
62
|
+
dtlpy/entities/dpk.py,sha256=MR_TeuGpdboxjVU8Pbi6KXIFo3gtDjscVIc-7Wgvv6w,32081
|
|
63
63
|
dtlpy/entities/driver.py,sha256=usyWqlM8KxQ-L9uCTSAmPXCu2dU4fordAN8uL0I2wRM,7720
|
|
64
64
|
dtlpy/entities/execution.py,sha256=uQe535w9OcAoDiNWf96KcpFzUDEUU-DYsUalv5VziyM,13673
|
|
65
65
|
dtlpy/entities/feature.py,sha256=9fFjD0W57anOVSAVU55ypxN_WTCsWTG03Wkc3cAAj78,3732
|
|
@@ -71,7 +71,7 @@ dtlpy/entities/item.py,sha256=JoF3vTlsBUXwsC7b5KCkvDOeGP7Iby--Ww4PJQ5_UF4,35586
|
|
|
71
71
|
dtlpy/entities/label.py,sha256=ycDYavIgKhz806plIX-64c07_TeHpDa-V7LnfFVe4Rg,3869
|
|
72
72
|
dtlpy/entities/links.py,sha256=FAmEwHtsrqKet3c0UHH9u_gHgG6_OwF1-rl4xK7guME,2516
|
|
73
73
|
dtlpy/entities/message.py,sha256=ApJuaKEqxATpXjNYUjGdYPu3ibQzEMo8-LtJ_4xAcPI,5865
|
|
74
|
-
dtlpy/entities/model.py,sha256=
|
|
74
|
+
dtlpy/entities/model.py,sha256=CpuQJiwLkkW4ji6WyF1a1G6v1YJeH5wwoooO3lipgI4,27138
|
|
75
75
|
dtlpy/entities/node.py,sha256=RiCqG659Pb1PZNMewR-F7eNbU5tt713fiZY9xW6-Pes,39199
|
|
76
76
|
dtlpy/entities/ontology.py,sha256=qA8XOhHPiZ7fUK2QPBola2xA8SGEdzsgCy5oozgARwc,32534
|
|
77
77
|
dtlpy/entities/organization.py,sha256=Zm-tTHV82PvYyTNetRRXqvmvzBCbXEwS-gAENf7Zny4,9874
|
|
@@ -88,7 +88,7 @@ dtlpy/entities/prompt_item.py,sha256=S_cgekiUsAK0OLP_XXbfvpNv7Zr5XT86jCB2w1yyyjQ
|
|
|
88
88
|
dtlpy/entities/recipe.py,sha256=SX0T7gw-_9Cs2FZyC_htIxQd7CwDwb2zA3SqB37vymM,11917
|
|
89
89
|
dtlpy/entities/reflect_dict.py,sha256=2NaSAL-CO0T0FYRYFQlaSpbsoLT2Q18AqdHgQSLX5Y4,3273
|
|
90
90
|
dtlpy/entities/resource_execution.py,sha256=1HuVV__U4jAUOtOkWlWImnM3Yts8qxMSAkMA9sBhArY,5033
|
|
91
|
-
dtlpy/entities/service.py,sha256=
|
|
91
|
+
dtlpy/entities/service.py,sha256=PIU27o6cqRGmnVndKgNE8QzaqEkV4lKS3Wx8-TaGF4A,35565
|
|
92
92
|
dtlpy/entities/service_driver.py,sha256=N3fL_xTPLu75UBFQZO5Plxx2kpED-UIILxTYbD58rzQ,3917
|
|
93
93
|
dtlpy/entities/setting.py,sha256=uXagJHtcCR3nJYClR_AUGZjz_kx3TejPcUZ8ginHFIA,8561
|
|
94
94
|
dtlpy/entities/task.py,sha256=ajVIkB-3Aqm9Udn87ITvIsGwduyCTtGeqV-FjSYtZKg,19605
|
|
@@ -157,8 +157,8 @@ dtlpy/ml/summary_writer.py,sha256=dehDi8zmGC1sAGyy_3cpSWGXoGQSiQd7bL_Thoo8yIs,27
|
|
|
157
157
|
dtlpy/ml/train_utils.py,sha256=t607DfyGBRrUQZ9jPmPe4V9Udzfk0hPWuw4OvKZKAeo,2440
|
|
158
158
|
dtlpy/repositories/__init__.py,sha256=D2YI3ZLlSx0OlgVr8y_E9rsj-IxCDOj0MB6QTlv2NSA,2061
|
|
159
159
|
dtlpy/repositories/analytics.py,sha256=dQPCYTPAIuyfVI_ppR49W7_GBj0033feIm9Gd7LW1V0,2966
|
|
160
|
-
dtlpy/repositories/annotations.py,sha256=
|
|
161
|
-
dtlpy/repositories/apps.py,sha256=
|
|
160
|
+
dtlpy/repositories/annotations.py,sha256=HIr9oWGXuDUifKSUtzUVMBUB3V8D8OCvzYv8VUI-b1I,43568
|
|
161
|
+
dtlpy/repositories/apps.py,sha256=L6ICkck6p0vDTh0k52G97mjL4VRQDVkgUdXONqleYlw,15968
|
|
162
162
|
dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzMbo,19081
|
|
163
163
|
dtlpy/repositories/assignments.py,sha256=1VwJZ7ctQe1iaDDDpeYDgoj2G-TCgzolVLUEqUocd2w,25506
|
|
164
164
|
dtlpy/repositories/bots.py,sha256=q1SqH01JHloljKxknhHU09psV1vQx9lPhu3g8mBBeRg,8104
|
|
@@ -166,18 +166,18 @@ dtlpy/repositories/codebases.py,sha256=pvcZxdrq0-zWysVbdXjUOhnfcF6hJD8v5VclNZ-zh
|
|
|
166
166
|
dtlpy/repositories/collections.py,sha256=lA4T7irQ_dtI_bcVxrHHikClcglp8ltsoPcLwHyAick,12947
|
|
167
167
|
dtlpy/repositories/commands.py,sha256=aismmQOkZbpo9vN1fVYTHXrsJoQNrN7wiANUCiUWUmY,5717
|
|
168
168
|
dtlpy/repositories/compositions.py,sha256=H417BvlQAiWr5NH2eANFke6CfEO5o7DSvapYpf7v5Hk,2150
|
|
169
|
-
dtlpy/repositories/computes.py,sha256=
|
|
169
|
+
dtlpy/repositories/computes.py,sha256=LYYC9O3JtPVO8vMM16bYoqyCJdkav1oPheM99Eey3fg,16955
|
|
170
170
|
dtlpy/repositories/datasets.py,sha256=1-ud7Ulc8z5IwQezjrW4C6V24xVUhR0U_dgix76zDYw,72778
|
|
171
171
|
dtlpy/repositories/downloader.py,sha256=EkCscU8QHa6H0-t17laFZn49Up-wNHbFd2DxVIqX8Fc,56209
|
|
172
172
|
dtlpy/repositories/dpks.py,sha256=Cu8pqFZr6MlrdidjysQT_X1hyKaL5YNUn81puOM5FX0,18508
|
|
173
173
|
dtlpy/repositories/drivers.py,sha256=z9qu4I2lwa0aujkKxj0bvn71Zzs8U8byqSx8S9DAIQw,19553
|
|
174
174
|
dtlpy/repositories/executions.py,sha256=BuFv7J6U2Q7om4OlC0q6tnk-1Vcw5m0adfR9a5Mj98Y,32361
|
|
175
|
-
dtlpy/repositories/feature_sets.py,sha256=
|
|
175
|
+
dtlpy/repositories/feature_sets.py,sha256=hsZ3TUh4BIrSwWqNhRAm6-NjhKWwNRYf-hC228mUURY,13892
|
|
176
176
|
dtlpy/repositories/features.py,sha256=SNmECqKSfHlNgjjG_RlX-GAU3udYN9_ZYOe8mFNy010,10671
|
|
177
177
|
dtlpy/repositories/integrations.py,sha256=Y5c37fQCaIkw1p5jPEbAqytgRVXuqe771eHC1hNDE7A,19491
|
|
178
178
|
dtlpy/repositories/items.py,sha256=u2Vg0jOTZ9EhV1sPJdAeIUyfqBRv63Gl-IXaMlon8PM,40028
|
|
179
179
|
dtlpy/repositories/messages.py,sha256=QU0Psckg6CA_Tlw9AVxqa-Ay1fRM4n269sSIJkH9o7E,3066
|
|
180
|
-
dtlpy/repositories/models.py,sha256=
|
|
180
|
+
dtlpy/repositories/models.py,sha256=wx_0EBM_7uoUxlWKxN5ZuCNz0e5J1tgHpKf8f1G8CHI,46375
|
|
181
181
|
dtlpy/repositories/nodes.py,sha256=xXJm_YA0vDUn0dVvaGeq6ORM0vI3YXvfjuylvGRtkxo,3061
|
|
182
182
|
dtlpy/repositories/ontologies.py,sha256=unnMhD2isR9DVE5S8Fg6fSDf1ZZ5Xemxxufx4LEUT3w,19577
|
|
183
183
|
dtlpy/repositories/organizations.py,sha256=6ijUDFbsogfRul1g_vUB5AZOb41MRmV5NhNU7WLHt3A,22825
|
|
@@ -191,11 +191,11 @@ dtlpy/repositories/schema.py,sha256=kTKDrbwm7BfQnBAK81LpAl9ChNFdyUweSLNazlJJhjk,
|
|
|
191
191
|
dtlpy/repositories/service_drivers.py,sha256=rxbhLUtT7TCbkVxH4HJtFT9ywcikByPFdX7_4kiTiK0,6766
|
|
192
192
|
dtlpy/repositories/services.py,sha256=LvZCE5_uxsK886sGCSaiZuaRnYbHFSrR2P4G_MlJopY,68856
|
|
193
193
|
dtlpy/repositories/settings.py,sha256=HHYSGub5Y6cQ746pBfvlQndsgBj1UoNFupa2otgvsWI,11645
|
|
194
|
-
dtlpy/repositories/tasks.py,sha256=
|
|
194
|
+
dtlpy/repositories/tasks.py,sha256=W3fIGFVh3H7YqDOrP1qJoSox5psA7h_vNsdidiFH4wA,63828
|
|
195
195
|
dtlpy/repositories/times_series.py,sha256=m-bKFEgiZ13yQNelDjBfeXMUy_HgsPD_JAHj1GVx9fU,11420
|
|
196
196
|
dtlpy/repositories/triggers.py,sha256=izdNyCN1gDc5uo7AXntso0HSMTDIzGFUp-dSEz8cn_U,21990
|
|
197
197
|
dtlpy/repositories/upload_element.py,sha256=R2KWIXmkp_dMAIr81tu3Y_VRfldj0ju8__V28ombkcg,10677
|
|
198
|
-
dtlpy/repositories/uploader.py,sha256=
|
|
198
|
+
dtlpy/repositories/uploader.py,sha256=WrluhTcIZCyHjys9n8qU_if-p87b6d0VOMoiwgwJNsA,33646
|
|
199
199
|
dtlpy/repositories/webhooks.py,sha256=IIpxOJ-7KeQp1TY9aJZz-FuycSjAoYx0TDk8z86KAK8,9033
|
|
200
200
|
dtlpy/services/__init__.py,sha256=VfVJy2otIrDra6i7Sepjyez2ujiE6171ChQZp-YgxsM,904
|
|
201
201
|
dtlpy/services/aihttp_retry.py,sha256=tgntZsAY0dW9v08rkjX1T5BLNDdDd8svtgn7nH8DSGU,5022
|
|
@@ -227,12 +227,12 @@ dtlpy/utilities/reports/report.py,sha256=3nEsNnIWmdPEsd21nN8vMMgaZVcPKn9iawKTTeO
|
|
|
227
227
|
dtlpy/utilities/videos/__init__.py,sha256=SV3w51vfPuGBxaMeNemx6qEMHw_C4lLpWNGXMvdsKSY,734
|
|
228
228
|
dtlpy/utilities/videos/video_player.py,sha256=LCxg0EZ_DeuwcT7U_r7MRC6Q19s0xdFb7x5Gk39PRms,24072
|
|
229
229
|
dtlpy/utilities/videos/videos.py,sha256=4xbbrHDeJhyR8VXW5ojLEp1GGGwgMoRIRyGrXEX5wiA,22031
|
|
230
|
-
dtlpy-1.
|
|
231
|
-
dtlpy-1.
|
|
232
|
-
dtlpy-1.
|
|
233
|
-
dtlpy-1.
|
|
234
|
-
dtlpy-1.
|
|
235
|
-
dtlpy-1.
|
|
236
|
-
dtlpy-1.
|
|
237
|
-
dtlpy-1.
|
|
238
|
-
dtlpy-1.
|
|
230
|
+
dtlpy-1.119.5.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
231
|
+
dtlpy-1.119.5.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
232
|
+
dtlpy-1.119.5.data/scripts/dlp.py,sha256=ZpfJvYE1_OTSorEYBphqTOutnHSb5TqOXh0y_mUCTJs,4393
|
|
233
|
+
dtlpy-1.119.5.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
234
|
+
dtlpy-1.119.5.dist-info/METADATA,sha256=6UM0jCFcAsTGYByszQE6B5wJbzdFnb7u3_4NDaTMMKo,5907
|
|
235
|
+
dtlpy-1.119.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
236
|
+
dtlpy-1.119.5.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
|
|
237
|
+
dtlpy-1.119.5.dist-info/top_level.txt,sha256=MSr60TGZYlwXCKxlLoZCfILRZ6pU_3L-20d2SZvygyA,6
|
|
238
|
+
dtlpy-1.119.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|