dtlpy 1.108.7__py3-none-any.whl → 1.109.19__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 +1 -7
- dtlpy/__version__.py +1 -1
- dtlpy/entities/__init__.py +3 -3
- dtlpy/entities/annotation.py +26 -57
- dtlpy/entities/annotation_definitions/base_annotation_definition.py +6 -14
- dtlpy/entities/command.py +10 -7
- dtlpy/entities/compute.py +40 -91
- dtlpy/entities/dataset.py +29 -14
- dtlpy/entities/dpk.py +1 -0
- dtlpy/entities/filters.py +3 -1
- dtlpy/entities/item.py +7 -14
- dtlpy/entities/node.py +0 -12
- dtlpy/entities/service.py +0 -9
- dtlpy/entities/service_driver.py +118 -0
- dtlpy/entities/trigger.py +1 -1
- dtlpy/new_instance.py +1 -1
- dtlpy/repositories/__init__.py +2 -1
- dtlpy/repositories/collections.py +86 -34
- dtlpy/repositories/commands.py +14 -4
- dtlpy/repositories/computes.py +160 -123
- dtlpy/repositories/datasets.py +20 -9
- dtlpy/repositories/downloader.py +20 -8
- dtlpy/repositories/dpks.py +26 -1
- dtlpy/repositories/items.py +5 -2
- dtlpy/repositories/service_drivers.py +213 -0
- dtlpy/repositories/services.py +6 -0
- dtlpy-1.109.19.dist-info/METADATA +172 -0
- {dtlpy-1.108.7.dist-info → dtlpy-1.109.19.dist-info}/RECORD +35 -33
- dtlpy-1.108.7.dist-info/METADATA +0 -82
- {dtlpy-1.108.7.data → dtlpy-1.109.19.data}/scripts/dlp +0 -0
- {dtlpy-1.108.7.data → dtlpy-1.109.19.data}/scripts/dlp.bat +0 -0
- {dtlpy-1.108.7.data → dtlpy-1.109.19.data}/scripts/dlp.py +0 -0
- {dtlpy-1.108.7.dist-info → dtlpy-1.109.19.dist-info}/LICENSE +0 -0
- {dtlpy-1.108.7.dist-info → dtlpy-1.109.19.dist-info}/WHEEL +0 -0
- {dtlpy-1.108.7.dist-info → dtlpy-1.109.19.dist-info}/entry_points.txt +0 -0
- {dtlpy-1.108.7.dist-info → dtlpy-1.109.19.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
from dtlpy import miscellaneous
|
|
2
|
+
|
|
3
|
+
from ..services.api_client import ApiClient
|
|
4
|
+
from .. import exceptions, entities
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
logger = logging.getLogger(name='dtlpy')
|
|
8
|
+
|
|
9
|
+
class ServiceDrivers:
|
|
10
|
+
|
|
11
|
+
def __init__(self, client_api: ApiClient):
|
|
12
|
+
self._client_api = client_api
|
|
13
|
+
self._base_url = '/serviceDrivers'
|
|
14
|
+
|
|
15
|
+
def create(
|
|
16
|
+
self,
|
|
17
|
+
name: str,
|
|
18
|
+
compute_id: str,
|
|
19
|
+
context: entities.ComputeContext,
|
|
20
|
+
namespace: str = None
|
|
21
|
+
):
|
|
22
|
+
"""
|
|
23
|
+
Create a new service driver
|
|
24
|
+
|
|
25
|
+
:param name: Service driver name
|
|
26
|
+
:param compute_id: Compute ID
|
|
27
|
+
:param context: Compute context
|
|
28
|
+
:param namespace: Namespace
|
|
29
|
+
:return: Service driver
|
|
30
|
+
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
payload = {
|
|
34
|
+
'name': name,
|
|
35
|
+
'computeId': compute_id,
|
|
36
|
+
'context': context.to_json()
|
|
37
|
+
}
|
|
38
|
+
if namespace is not None:
|
|
39
|
+
payload['namespace'] = namespace
|
|
40
|
+
|
|
41
|
+
# request
|
|
42
|
+
success, response = self._client_api.gen_request(
|
|
43
|
+
req_type='post',
|
|
44
|
+
path=self._base_url,
|
|
45
|
+
json_req=payload
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
if not success:
|
|
49
|
+
raise exceptions.PlatformException(response)
|
|
50
|
+
|
|
51
|
+
service_driver = entities.ServiceDriver.from_json(
|
|
52
|
+
_json=response.json(),
|
|
53
|
+
client_api=self._client_api
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
return service_driver
|
|
57
|
+
|
|
58
|
+
def get(self, service_driver_id: str):
|
|
59
|
+
"""
|
|
60
|
+
Get a service driver
|
|
61
|
+
|
|
62
|
+
:param service_driver_id: Service driver ID
|
|
63
|
+
:return: Service driver
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
# request
|
|
67
|
+
success, response = self._client_api.gen_request(
|
|
68
|
+
req_type='get',
|
|
69
|
+
path=self._base_url + '/{}'.format(service_driver_id)
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
if not success:
|
|
73
|
+
raise exceptions.PlatformException(response)
|
|
74
|
+
|
|
75
|
+
service_driver = entities.ServiceDriver.from_json(
|
|
76
|
+
_json=response.json(),
|
|
77
|
+
client_api=self._client_api
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
return service_driver
|
|
81
|
+
|
|
82
|
+
def delete(self, service_driver_id: str):
|
|
83
|
+
"""
|
|
84
|
+
Delete a service driver
|
|
85
|
+
|
|
86
|
+
:param service_driver_id: Service driver ID
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
# request
|
|
90
|
+
success, response = self._client_api.gen_request(
|
|
91
|
+
req_type='delete',
|
|
92
|
+
path=self._base_url + '/{}'.format(service_driver_id)
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
if not success:
|
|
96
|
+
raise exceptions.PlatformException(response)
|
|
97
|
+
|
|
98
|
+
return True
|
|
99
|
+
|
|
100
|
+
def set_default(self, service_driver_id: str, org_id: str, update_existing_services=False):
|
|
101
|
+
"""
|
|
102
|
+
Set a service driver as default
|
|
103
|
+
|
|
104
|
+
:param service_driver_id: Compute name
|
|
105
|
+
:param org_id: Organization ID
|
|
106
|
+
:param update_existing_services: Update existing services
|
|
107
|
+
|
|
108
|
+
:return: Service driver
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
# request
|
|
112
|
+
success, response = self._client_api.gen_request(
|
|
113
|
+
req_type='post',
|
|
114
|
+
path=self._base_url + '/default',
|
|
115
|
+
json_req={
|
|
116
|
+
'organizationId': org_id,
|
|
117
|
+
'updateExistingServices': update_existing_services,
|
|
118
|
+
'driverName': service_driver_id
|
|
119
|
+
}
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
if not success:
|
|
123
|
+
raise exceptions.PlatformException(response)
|
|
124
|
+
|
|
125
|
+
service_driver = entities.ServiceDriver.from_json(
|
|
126
|
+
_json=response.json(),
|
|
127
|
+
client_api=self._client_api
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
return service_driver
|
|
131
|
+
|
|
132
|
+
def update(self, service_driver: entities.ServiceDriver):
|
|
133
|
+
"""
|
|
134
|
+
Update a service driver
|
|
135
|
+
|
|
136
|
+
:param dtlpy.entities.service_driver.ServiceDriver service_driver: updated service driver object
|
|
137
|
+
:return: Service driver entity
|
|
138
|
+
:rtype: dtlpy.entities.service_driver.ServiceDriver
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
# request
|
|
142
|
+
success, response = self._client_api.gen_request(
|
|
143
|
+
req_type='patch',
|
|
144
|
+
path=self._base_url + '/{}'.format(service_driver.id),
|
|
145
|
+
json_req=service_driver.to_json()
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
if not success:
|
|
149
|
+
raise exceptions.PlatformException(response)
|
|
150
|
+
|
|
151
|
+
service_driver = entities.ServiceDriver.from_json(
|
|
152
|
+
_json=response.json(),
|
|
153
|
+
client_api=self._client_api
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
return service_driver
|
|
157
|
+
|
|
158
|
+
def _list(self, filters: entities.Filters):
|
|
159
|
+
url = self._base_url + '/query'
|
|
160
|
+
success, response = self._client_api.gen_request(req_type='POST',
|
|
161
|
+
path=url,
|
|
162
|
+
json_req=filters.prepare())
|
|
163
|
+
if not success:
|
|
164
|
+
raise exceptions.PlatformException(response)
|
|
165
|
+
|
|
166
|
+
return response.json()
|
|
167
|
+
|
|
168
|
+
def _build_entities_from_response(self, response_items) -> miscellaneous.List[entities.ServiceDriver]:
|
|
169
|
+
pool = self._client_api.thread_pools(pool_name='entity.create')
|
|
170
|
+
jobs = [None for _ in range(len(response_items))]
|
|
171
|
+
for i_item, item in enumerate(response_items):
|
|
172
|
+
jobs[i_item] = pool.submit(entities.ServiceDriver._protected_from_json,
|
|
173
|
+
**{'client_api': self._client_api,
|
|
174
|
+
'_json': item})
|
|
175
|
+
results = [j.result() for j in jobs]
|
|
176
|
+
_ = [logger.warning(r[1]) for r in results if r[0] is False]
|
|
177
|
+
items = miscellaneous.List([r[1] for r in results if r[0] is True])
|
|
178
|
+
return items
|
|
179
|
+
|
|
180
|
+
def list(self, filters: entities.Filters = None) -> entities.PagedEntities:
|
|
181
|
+
"""
|
|
182
|
+
List all services drivers
|
|
183
|
+
|
|
184
|
+
:param dtlpy.entities.filters.Filters filters: Filters entity or a dictionary containing filters parameters
|
|
185
|
+
:return: Paged entity
|
|
186
|
+
:rtype: dtlpy.entities.paged_entities.PagedEntities
|
|
187
|
+
|
|
188
|
+
**Example**:
|
|
189
|
+
|
|
190
|
+
.. code-block:: python
|
|
191
|
+
|
|
192
|
+
services = dl.service_drivers.list()
|
|
193
|
+
"""
|
|
194
|
+
# default filters
|
|
195
|
+
if filters is None:
|
|
196
|
+
filters = entities.Filters(resource=entities.FiltersResource.SERVICE_DRIVER)
|
|
197
|
+
|
|
198
|
+
if filters.resource != entities.FiltersResource.SERVICE_DRIVER:
|
|
199
|
+
raise exceptions.PlatformException(
|
|
200
|
+
error='400',
|
|
201
|
+
message='Filters resource must to be FiltersResource.SERVICE_DRIVER. Got: {!r}'.format(
|
|
202
|
+
filters.resource))
|
|
203
|
+
|
|
204
|
+
if not isinstance(filters, entities.Filters):
|
|
205
|
+
raise exceptions.PlatformException('400', 'Unknown filters type')
|
|
206
|
+
|
|
207
|
+
paged = entities.PagedEntities(items_repository=self,
|
|
208
|
+
filters=filters,
|
|
209
|
+
page_offset=filters.page,
|
|
210
|
+
page_size=filters.page_size,
|
|
211
|
+
client_api=self._client_api)
|
|
212
|
+
paged.get_page()
|
|
213
|
+
return paged
|
dtlpy/repositories/services.py
CHANGED
|
@@ -606,6 +606,7 @@ class Services:
|
|
|
606
606
|
max_attempts: int = None,
|
|
607
607
|
secrets=None,
|
|
608
608
|
integrations=None,
|
|
609
|
+
active: bool = True,
|
|
609
610
|
**kwargs
|
|
610
611
|
) -> entities.Service:
|
|
611
612
|
"""
|
|
@@ -633,6 +634,7 @@ class Services:
|
|
|
633
634
|
:param bool force: optional - terminate old replicas immediately
|
|
634
635
|
:param list secrets: list of the integrations ids
|
|
635
636
|
:param list integrations: list of the integrations
|
|
637
|
+
:param bool active: optional - if true, service will be active
|
|
636
638
|
:param kwargs:
|
|
637
639
|
:return: Service object
|
|
638
640
|
:rtype: dtlpy.entities.service.Service
|
|
@@ -686,6 +688,7 @@ class Services:
|
|
|
686
688
|
'versions': agent_versions,
|
|
687
689
|
'packageRevision': revision if revision is not None else package.version,
|
|
688
690
|
'driverId': driver_id,
|
|
691
|
+
'active': active
|
|
689
692
|
}
|
|
690
693
|
|
|
691
694
|
if secrets is not None:
|
|
@@ -1183,6 +1186,7 @@ class Services:
|
|
|
1183
1186
|
force: bool = False,
|
|
1184
1187
|
secrets: list = None,
|
|
1185
1188
|
integrations: list = None,
|
|
1189
|
+
active: bool = True,
|
|
1186
1190
|
**kwargs) -> entities.Service:
|
|
1187
1191
|
"""
|
|
1188
1192
|
Deploy service.
|
|
@@ -1212,6 +1216,7 @@ class Services:
|
|
|
1212
1216
|
:param bool force: optional - if true, terminate old replicas immediately
|
|
1213
1217
|
:param list secrets: list of the integrations ids
|
|
1214
1218
|
:param list integrations: list of the integrations
|
|
1219
|
+
:param bool active: if true, activate the service
|
|
1215
1220
|
:param kwargs: list of additional arguments
|
|
1216
1221
|
:return: Service object
|
|
1217
1222
|
:rtype: dtlpy.entities.service.Service
|
|
@@ -1336,6 +1341,7 @@ class Services:
|
|
|
1336
1341
|
on_reset=on_reset,
|
|
1337
1342
|
secrets=secrets,
|
|
1338
1343
|
integrations=integrations,
|
|
1344
|
+
active=active
|
|
1339
1345
|
)
|
|
1340
1346
|
if checkout:
|
|
1341
1347
|
self.checkout(service=service)
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: dtlpy
|
|
3
|
+
Version: 1.109.19
|
|
4
|
+
Summary: SDK and CLI for Dataloop platform
|
|
5
|
+
Home-page: https://github.com/dataloop-ai/dtlpy
|
|
6
|
+
Author: Dataloop Team
|
|
7
|
+
Author-email: info@dataloop.ai
|
|
8
|
+
License: Apache License 2.0
|
|
9
|
+
Classifier: Programming Language :: Python
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Requires-Python: >=3.7
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: urllib3 (>=1.26)
|
|
21
|
+
Requires-Dist: tqdm (>=4.63)
|
|
22
|
+
Requires-Dist: certifi (>=2020.12.5)
|
|
23
|
+
Requires-Dist: webvtt-py (==0.4.3)
|
|
24
|
+
Requires-Dist: aiohttp (>=3.8)
|
|
25
|
+
Requires-Dist: requests-toolbelt (>=1.0.0)
|
|
26
|
+
Requires-Dist: requests (>=2.25.0)
|
|
27
|
+
Requires-Dist: numpy (>=1.16.2)
|
|
28
|
+
Requires-Dist: pandas (>=0.24.2)
|
|
29
|
+
Requires-Dist: tabulate (>=0.8.9)
|
|
30
|
+
Requires-Dist: Pillow (>=7.2)
|
|
31
|
+
Requires-Dist: PyJWT (>=2.4)
|
|
32
|
+
Requires-Dist: jinja2 (>=2.11.3)
|
|
33
|
+
Requires-Dist: attrs (<=22.2.0)
|
|
34
|
+
Requires-Dist: prompt-toolkit (>=2.0.9)
|
|
35
|
+
Requires-Dist: fuzzyfinder (<=2.1.0)
|
|
36
|
+
Requires-Dist: dictdiffer (>=0.8.1)
|
|
37
|
+
Requires-Dist: validators (<=0.18.2)
|
|
38
|
+
Requires-Dist: pathspec (>=0.8.1)
|
|
39
|
+
Requires-Dist: filelock (>=3.0.12)
|
|
40
|
+
Requires-Dist: diskcache (>=5.4)
|
|
41
|
+
Requires-Dist: redis (>=3.5)
|
|
42
|
+
Requires-Dist: inquirer
|
|
43
|
+
Requires-Dist: dtlpymetrics
|
|
44
|
+
Requires-Dist: dataclasses
|
|
45
|
+
|
|
46
|
+
# **DTLPY – SDK and CLI for Dataloop.ai**
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
[](https://sdk-docs.dataloop.ai/en/latest/?badge=latest)
|
|
51
|
+
[](https://pypi.org/project/dtlpy/)
|
|
52
|
+
[](https://github.com/dataloop-ai/dtlpy)
|
|
53
|
+
[](https://github.com/dataloop-ai/dtlpy/blob/master/LICENSE)
|
|
54
|
+
[](https://pepy.tech/project/dtlpy)
|
|
55
|
+
|
|
56
|
+
📚 [Platform Documentation](https://dataloop.ai/docs) | 📖 [SDK Documentation](https://console.dataloop.ai/sdk-docs/latest) | [Developer docs](https://developers.dataloop.ai/)
|
|
57
|
+
|
|
58
|
+
An open-source SDK and CLI toolkit to interact seamlessly with the [Dataloop.ai](https://dataloop.ai/) platform, providing powerful data management, annotation capabilities, and workflow automation.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## **Table of Contents**
|
|
63
|
+
|
|
64
|
+
- [Overview](#overview)
|
|
65
|
+
- [Installation](#installation)
|
|
66
|
+
- [Usage](#usage)
|
|
67
|
+
- [SDK Usage](#sdk-usage)
|
|
68
|
+
- [CLI Usage](#cli-usage)
|
|
69
|
+
- [Python Version Support](#python-version-support)
|
|
70
|
+
- [Development](#development)
|
|
71
|
+
- [Resources](#resources)
|
|
72
|
+
- [Contribution Guidelines](#contribution-guidelines)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## **Overview**
|
|
77
|
+
|
|
78
|
+
DTLPY provides a robust Python SDK and a powerful CLI, enabling developers and data scientists to automate tasks, manage datasets, annotations, and streamline workflows within the Dataloop platform.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## **Installation**
|
|
83
|
+
|
|
84
|
+
Install DTLPY directly from PyPI using pip:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pip install dtlpy
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Alternatively, for the latest development version, install directly from GitHub:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
pip install git+https://github.com/dataloop-ai/dtlpy.git
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## **Usage**
|
|
99
|
+
|
|
100
|
+
### **SDK Usage**
|
|
101
|
+
|
|
102
|
+
Here's a basic example to get started with the DTLPY SDK:
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
import dtlpy as dl
|
|
106
|
+
|
|
107
|
+
# Authenticate
|
|
108
|
+
dl.login()
|
|
109
|
+
|
|
110
|
+
# Access a project
|
|
111
|
+
project = dl.projects.get(project_name='your-project-name')
|
|
112
|
+
|
|
113
|
+
# Access dataset
|
|
114
|
+
dataset = project.datasets.get(dataset_name='your-dataset-name')
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### **CLI Usage**
|
|
118
|
+
|
|
119
|
+
DTLPY also provides a convenient command-line interface:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
dlp login
|
|
123
|
+
dlp projects ls
|
|
124
|
+
dlp datasets ls --project-name your-project-name
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## **Python Version Support**
|
|
130
|
+
|
|
131
|
+
DTLPY supports multiple Python versions as follows:
|
|
132
|
+
|
|
133
|
+
| Python Version | 3.11 | 3.10 | 3.9 | 3.8 | 3.7 | 3.6 | 3.5 |
|
|
134
|
+
|--------------------|------|------|-----|-----|-----|-----|-----|
|
|
135
|
+
| **dtlpy >= 1.99** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
136
|
+
| **dtlpy 1.76–1.98**| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
|
|
137
|
+
| **dtlpy >= 1.61** | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
|
|
138
|
+
| **dtlpy 1.50–1.60**| ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
|
|
139
|
+
| **dtlpy <= 1.49** | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## **Development**
|
|
144
|
+
|
|
145
|
+
To set up the development environment, clone the repository and install dependencies:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
git clone https://github.com/dataloop-ai/dtlpy.git
|
|
149
|
+
cd dtlpy
|
|
150
|
+
pip install -r requirements.txt
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## **Resources**
|
|
154
|
+
|
|
155
|
+
- [Dataloop Platform](https://console.dataloop.ai)
|
|
156
|
+
- [Full SDK Documentation](https://console.dataloop.ai/sdk-docs/latest)
|
|
157
|
+
- [Platform Documentation](https://dataloop.ai/docs)
|
|
158
|
+
- [SDK Examples and Tutorials](https://github.com/dataloop-ai/dtlpy-documentation)
|
|
159
|
+
- [Developer docs](https://developers.dataloop.ai/)
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## **Contribution Guidelines**
|
|
164
|
+
|
|
165
|
+
We encourage contributions! Please ensure:
|
|
166
|
+
|
|
167
|
+
- Clear and descriptive commit messages
|
|
168
|
+
- Code follows existing formatting and conventions
|
|
169
|
+
- Comprehensive tests for new features or bug fixes
|
|
170
|
+
- Updates to documentation if relevant
|
|
171
|
+
|
|
172
|
+
Create pull requests for review. All contributions will be reviewed carefully and integrated accordingly.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
dtlpy/__init__.py,sha256=
|
|
2
|
-
dtlpy/__version__.py,sha256=
|
|
1
|
+
dtlpy/__init__.py,sha256=n86boFpXWXPLjSXZMmWCageGjBumPjWxRv3srysrplk,20338
|
|
2
|
+
dtlpy/__version__.py,sha256=eIgLM-gZdxM-jhKIfBZi2m6DL_vSoUQ556FqCWu8aCs,21
|
|
3
3
|
dtlpy/exceptions.py,sha256=EQCKs3pwhwZhgMByQN3D3LpWpdxwcKPEEt-bIaDwURM,2871
|
|
4
|
-
dtlpy/new_instance.py,sha256=
|
|
4
|
+
dtlpy/new_instance.py,sha256=tUCzBGaSpm9GTjRuwOkFgo3A8vopUQ-baltdJss3XlI,9964
|
|
5
5
|
dtlpy/assets/__init__.py,sha256=D_hAa6NM8Zoy32sF_9b7m0b7I-BQEyBFg8-9Tg2WOeo,976
|
|
6
6
|
dtlpy/assets/lock_open.png,sha256=BH9uyf5uYvgZrDpDw9qCUnT3UbkXG8XbeRmWDpWlV4M,18215
|
|
7
7
|
dtlpy/assets/main.py,sha256=N1JUsx79qnXI7Hx22C8JOzHJdGHxvrXeTx5UZAxvJfE,1380
|
|
@@ -43,9 +43,9 @@ dtlpy/dlp/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
|
43
43
|
dtlpy/dlp/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
44
44
|
dtlpy/dlp/dlp.py,sha256=YjNBjeCDTXJ7tj8qdiGZ8lFb8DtPZl-FvViyjxt9xF8,4278
|
|
45
45
|
dtlpy/dlp/parser.py,sha256=p-TFaiAU2c3QkI97TXzL2LDR3Eq0hGDFrTc9J2jWLh4,30551
|
|
46
|
-
dtlpy/entities/__init__.py,sha256=
|
|
46
|
+
dtlpy/entities/__init__.py,sha256=quty3pkoJ9_8dRyZG2WnPj7Qpr4O05FxXpWsY_txz_M,4982
|
|
47
47
|
dtlpy/entities/analytic.py,sha256=5MpYDKPVsZ1MIy20Ju515RWed6P667j4TLxsan2gyNM,11925
|
|
48
|
-
dtlpy/entities/annotation.py,sha256=
|
|
48
|
+
dtlpy/entities/annotation.py,sha256=DYpVb4bNxwXnxXjh3zUa58qo2nSMaQnejiDwUZntn0E,66610
|
|
49
49
|
dtlpy/entities/annotation_collection.py,sha256=CEYSBHhhDkC0VJdHsBSrA6TgdKGMcKeI3tFM40UJwS8,29838
|
|
50
50
|
dtlpy/entities/app.py,sha256=vQ7hSMnuRIpoZqZc2NwjGTtWiPTCgi47x_oOgGUB-Pk,6996
|
|
51
51
|
dtlpy/entities/app_module.py,sha256=0UiAbBX1q8iEImi3nY7ySWZZHoRRwu0qUXmyXmgVAc4,3645
|
|
@@ -55,24 +55,24 @@ dtlpy/entities/base_entity.py,sha256=i83KrtAz6dX4t8JEiUimLI5ZRrN0VnoUWKG2Zz49N5w
|
|
|
55
55
|
dtlpy/entities/bot.py,sha256=is3NUCnPg56HSjsHIvFcVkymValMqDV0uHRDC1Ib-ds,3819
|
|
56
56
|
dtlpy/entities/codebase.py,sha256=pwRkAq2GV0wvmzshg89IAmE-0I2Wsy_-QNOu8OV8uqc,8999
|
|
57
57
|
dtlpy/entities/collection.py,sha256=FPPPfIxOsBG1ujORPJVq8uXyF8vhIqC6N4EiI9SJzl0,1160
|
|
58
|
-
dtlpy/entities/command.py,sha256=
|
|
59
|
-
dtlpy/entities/compute.py,sha256=
|
|
60
|
-
dtlpy/entities/dataset.py,sha256=
|
|
58
|
+
dtlpy/entities/command.py,sha256=5RMQYjOGLRF8JZd7QFAPyE8utsp4eZzLApI2dEAbaqo,5301
|
|
59
|
+
dtlpy/entities/compute.py,sha256=IFMkHWVu8RyUZSZ24SuE-TnOP-3XzPT5eOEbYFJg76E,14207
|
|
60
|
+
dtlpy/entities/dataset.py,sha256=GEvBOly1M8uU--apQZ-G-78DJZzFk178LmMhEANyi0A,53838
|
|
61
61
|
dtlpy/entities/directory_tree.py,sha256=Rni6pLSWytR6yeUPgEdCCRfTg_cqLOdUc9uCqz9KT-Q,1186
|
|
62
|
-
dtlpy/entities/dpk.py,sha256=
|
|
62
|
+
dtlpy/entities/dpk.py,sha256=XrK8X8p4Ag6LMjDrDpMstY-h_yTll_sMmKTZT6bLbWE,17923
|
|
63
63
|
dtlpy/entities/driver.py,sha256=O_QdK1EaLjQyQkmvKsmkNgmvmMb1mPjKnJGxK43KrOA,7197
|
|
64
64
|
dtlpy/entities/execution.py,sha256=uQe535w9OcAoDiNWf96KcpFzUDEUU-DYsUalv5VziyM,13673
|
|
65
65
|
dtlpy/entities/feature.py,sha256=9fFjD0W57anOVSAVU55ypxN_WTCsWTG03Wkc3cAAj78,3732
|
|
66
66
|
dtlpy/entities/feature_set.py,sha256=niw4MkmrDbD_LWQu1X30uE6U4DCzmFhPTaYeZ6VZDB0,4443
|
|
67
|
-
dtlpy/entities/filters.py,sha256=
|
|
67
|
+
dtlpy/entities/filters.py,sha256=8nz3V5Ui4LemEIfSTp3uAHJAf_ZpwQrMSrfUL6AB7Zk,22719
|
|
68
68
|
dtlpy/entities/gis_item.py,sha256=Uk-wMBxwcHsImjz4qOjP-EyZAohbRzN43kMpCaVjCXU,3982
|
|
69
69
|
dtlpy/entities/integration.py,sha256=Kdy1j6-cJLW8qNmnqCmdg36phi843YDrlMqcMyMfvYk,5875
|
|
70
|
-
dtlpy/entities/item.py,sha256=
|
|
70
|
+
dtlpy/entities/item.py,sha256=WCIPHUmubIe0wva-YMm-LPQdn2S3_-Q151x49C9NEw8,34591
|
|
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
74
|
dtlpy/entities/model.py,sha256=YwjIi3MxAZoyartTvqx_qhtDKQe6zVsQuwZbYLygMxU,26898
|
|
75
|
-
dtlpy/entities/node.py,sha256=
|
|
75
|
+
dtlpy/entities/node.py,sha256=RiCqG659Pb1PZNMewR-F7eNbU5tt713fiZY9xW6-Pes,39199
|
|
76
76
|
dtlpy/entities/ontology.py,sha256=924g9c2ZTfr69fWd_ejrVU0C-MAUR8UAhhz6GY-IQME,32100
|
|
77
77
|
dtlpy/entities/organization.py,sha256=Zm-tTHV82PvYyTNetRRXqvmvzBCbXEwS-gAENf7Zny4,9874
|
|
78
78
|
dtlpy/entities/package.py,sha256=QSDePHlp4ik19aUE3dAUC7edh0oUUVjzSmMG867avc4,26363
|
|
@@ -88,15 +88,16 @@ dtlpy/entities/prompt_item.py,sha256=qXDK2IWVKszm7gpqcgCE51SSf4IUTNFirq40qszBYw8
|
|
|
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=ZKxEYS9Gre8u7A6CN8P37ZyuApw92Q5B-6R2mgnzFwA,33230
|
|
92
|
+
dtlpy/entities/service_driver.py,sha256=N3fL_xTPLu75UBFQZO5Plxx2kpED-UIILxTYbD58rzQ,3917
|
|
92
93
|
dtlpy/entities/setting.py,sha256=uXagJHtcCR3nJYClR_AUGZjz_kx3TejPcUZ8ginHFIA,8561
|
|
93
94
|
dtlpy/entities/task.py,sha256=WOKrZBOu9BaJopZBToFEFOQsEntsfvzKolJYPEUjIeI,19511
|
|
94
95
|
dtlpy/entities/time_series.py,sha256=336jWNckjuSn0G29WJFetB7nBoFAKqs4VH9_IB4m4FE,4017
|
|
95
|
-
dtlpy/entities/trigger.py,sha256=
|
|
96
|
+
dtlpy/entities/trigger.py,sha256=9Um74Tq-Hn_K35x8QrLPugjKIFEC1eGLQAFcwuymOUs,14296
|
|
96
97
|
dtlpy/entities/user.py,sha256=hqEzwN6rl1oUTpKOV5eXvw9Z7dtpsiC4TAPSNBmkqcM,3865
|
|
97
98
|
dtlpy/entities/webhook.py,sha256=6R06MgLxabvKySInGlSJmaf0AVmAMe3vKusWhqONRyU,3539
|
|
98
99
|
dtlpy/entities/annotation_definitions/__init__.py,sha256=qZ77hGmCQopPSpiDHYhNWbNKC7nrn10NWNlim9dINmg,666
|
|
99
|
-
dtlpy/entities/annotation_definitions/base_annotation_definition.py,sha256=
|
|
100
|
+
dtlpy/entities/annotation_definitions/base_annotation_definition.py,sha256=quZthKbVdYAMFexOVok1YAjDS_aaFe01Umugxc5Z1gU,2547
|
|
100
101
|
dtlpy/entities/annotation_definitions/box.py,sha256=A4NnMrHkq3CuvFR9wq-jqAMHMHKKWyc2gMwMHmQXKdU,6045
|
|
101
102
|
dtlpy/entities/annotation_definitions/classification.py,sha256=uqLAAaqNww2ZwR1e4UW22foJtDxoeZXJsv5PTvyt-tA,1559
|
|
102
103
|
dtlpy/entities/annotation_definitions/comparison.py,sha256=cp9HZ32wm7E78tbeoqsfJL5oZ26ojig7Cjn2FJE7mbI,1806
|
|
@@ -153,7 +154,7 @@ dtlpy/ml/metrics.py,sha256=BG2E-1Mvjv2e2No9mIJKVmvzqBvLqytKcw3hA7wVUNc,20037
|
|
|
153
154
|
dtlpy/ml/predictions_utils.py,sha256=He_84U14oS2Ss7T_-Zj5GDiBZwS-GjMPURUh7u7DjF8,12484
|
|
154
155
|
dtlpy/ml/summary_writer.py,sha256=dehDi8zmGC1sAGyy_3cpSWGXoGQSiQd7bL_Thoo8yIs,2784
|
|
155
156
|
dtlpy/ml/train_utils.py,sha256=R-BHKRfqDoLLhFyLzsRFyJ4E-8iedj9s9oZqy3IO2rg,2404
|
|
156
|
-
dtlpy/repositories/__init__.py,sha256=
|
|
157
|
+
dtlpy/repositories/__init__.py,sha256=D2YI3ZLlSx0OlgVr8y_E9rsj-IxCDOj0MB6QTlv2NSA,2061
|
|
157
158
|
dtlpy/repositories/analytics.py,sha256=dQPCYTPAIuyfVI_ppR49W7_GBj0033feIm9Gd7LW1V0,2966
|
|
158
159
|
dtlpy/repositories/annotations.py,sha256=idTKzanNt-ncB0eIKE5p6WclrVGNjceI2Y7dAzDFtzY,43595
|
|
159
160
|
dtlpy/repositories/apps.py,sha256=OE2UbxE2oGA44-7pso7fm9GErTRFyGEFK2k7ibC_h6U,16002
|
|
@@ -161,19 +162,19 @@ dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzM
|
|
|
161
162
|
dtlpy/repositories/assignments.py,sha256=1VwJZ7ctQe1iaDDDpeYDgoj2G-TCgzolVLUEqUocd2w,25506
|
|
162
163
|
dtlpy/repositories/bots.py,sha256=q1SqH01JHloljKxknhHU09psV1vQx9lPhu3g8mBBeRg,8104
|
|
163
164
|
dtlpy/repositories/codebases.py,sha256=pvcZxdrq0-zWysVbdXjUOhnfcF6hJD8v5VclNZ-zhGA,24668
|
|
164
|
-
dtlpy/repositories/collections.py,sha256=
|
|
165
|
-
dtlpy/repositories/commands.py,sha256=
|
|
165
|
+
dtlpy/repositories/collections.py,sha256=z-nkR33rq-MzkEff7DDSBlfsI_lkCDFwQZIlMaIT5rM,13514
|
|
166
|
+
dtlpy/repositories/commands.py,sha256=MgXhXxbAzBa2QJM9Z5EsQZRaZ4fGBM17ALoldxi8xYA,5848
|
|
166
167
|
dtlpy/repositories/compositions.py,sha256=H417BvlQAiWr5NH2eANFke6CfEO5o7DSvapYpf7v5Hk,2150
|
|
167
|
-
dtlpy/repositories/computes.py,sha256=
|
|
168
|
-
dtlpy/repositories/datasets.py,sha256=
|
|
169
|
-
dtlpy/repositories/downloader.py,sha256=
|
|
170
|
-
dtlpy/repositories/dpks.py,sha256=
|
|
168
|
+
dtlpy/repositories/computes.py,sha256=vHMvKVX8U-33nB5TR_Nfs9euGr9MbkiwTHuq4yZojM8,14134
|
|
169
|
+
dtlpy/repositories/datasets.py,sha256=p0HBbTGrxAQ8h9tJsp1jRasPbwnMAtXQ4_sIef9_590,59358
|
|
170
|
+
dtlpy/repositories/downloader.py,sha256=XJC9FhlXgHrA8Ae9bftrbs4YKFCcZoEYJAh6Bt6zGhU,45167
|
|
171
|
+
dtlpy/repositories/dpks.py,sha256=dxZpGloZGH6MJG9ZFff5l3GlXw6i-52n9kxL-QiHosQ,18516
|
|
171
172
|
dtlpy/repositories/drivers.py,sha256=fF0UuHCyBzop8pHfryex23mf0kVFAkqzNdOmwBbaWxY,10204
|
|
172
173
|
dtlpy/repositories/executions.py,sha256=4UoU6bnB3kl5cMuF1eJvDecfZCaB06gKWxPfv6_g1_k,32598
|
|
173
174
|
dtlpy/repositories/feature_sets.py,sha256=UowMDAl_CRefRB5oZzubnsjU_OFgiPPdQXn8q2j4Kuw,9666
|
|
174
175
|
dtlpy/repositories/features.py,sha256=A_RqTJxzjTh-Wbm0uXaoTNyHSfCLbeiH38iB11p2ifY,9915
|
|
175
176
|
dtlpy/repositories/integrations.py,sha256=gSgaVp4MkcdrJMnXVr_fl4xrzhfJba8BFbBJTuJPwXc,18159
|
|
176
|
-
dtlpy/repositories/items.py,sha256=
|
|
177
|
+
dtlpy/repositories/items.py,sha256=S1OWZ6s8AbVXMiLtCfBBiYPMG8OLqdUhKMHuZWE3bnU,40029
|
|
177
178
|
dtlpy/repositories/messages.py,sha256=QU0Psckg6CA_Tlw9AVxqa-Ay1fRM4n269sSIJkH9o7E,3066
|
|
178
179
|
dtlpy/repositories/models.py,sha256=IekNMcnuKVaAVTJf2AJv6YvX5qCd9kkSl4ETPMWP4Zc,38213
|
|
179
180
|
dtlpy/repositories/nodes.py,sha256=xXJm_YA0vDUn0dVvaGeq6ORM0vI3YXvfjuylvGRtkxo,3061
|
|
@@ -186,7 +187,8 @@ dtlpy/repositories/projects.py,sha256=TKLCuL7Inlv4GwgcQcuXkPQtgacfrXYjsTQng8nPC7
|
|
|
186
187
|
dtlpy/repositories/recipes.py,sha256=ZZDhHn9g28C99bsf0nFaIpVYn6f6Jisz9upkHEkeaYY,15843
|
|
187
188
|
dtlpy/repositories/resource_executions.py,sha256=PyzsbdJxz6jf17Gx13GZmqdu6tZo3TTVv-DypnJ_sY0,5374
|
|
188
189
|
dtlpy/repositories/schema.py,sha256=kTKDrbwm7BfQnBAK81LpAl9ChNFdyUweSLNazlJJhjk,3953
|
|
189
|
-
dtlpy/repositories/
|
|
190
|
+
dtlpy/repositories/service_drivers.py,sha256=rxbhLUtT7TCbkVxH4HJtFT9ywcikByPFdX7_4kiTiK0,6766
|
|
191
|
+
dtlpy/repositories/services.py,sha256=LvZCE5_uxsK886sGCSaiZuaRnYbHFSrR2P4G_MlJopY,68856
|
|
190
192
|
dtlpy/repositories/settings.py,sha256=HHYSGub5Y6cQ746pBfvlQndsgBj1UoNFupa2otgvsWI,11645
|
|
191
193
|
dtlpy/repositories/tasks.py,sha256=sBV7SLLwt2QsJkjdEuKLJgIPS34H1b5E2rdFQb1n1Wo,50160
|
|
192
194
|
dtlpy/repositories/times_series.py,sha256=m-bKFEgiZ13yQNelDjBfeXMUy_HgsPD_JAHj1GVx9fU,11420
|
|
@@ -224,9 +226,9 @@ dtlpy/utilities/reports/report.py,sha256=3nEsNnIWmdPEsd21nN8vMMgaZVcPKn9iawKTTeO
|
|
|
224
226
|
dtlpy/utilities/videos/__init__.py,sha256=SV3w51vfPuGBxaMeNemx6qEMHw_C4lLpWNGXMvdsKSY,734
|
|
225
227
|
dtlpy/utilities/videos/video_player.py,sha256=LCxg0EZ_DeuwcT7U_r7MRC6Q19s0xdFb7x5Gk39PRms,24072
|
|
226
228
|
dtlpy/utilities/videos/videos.py,sha256=Dj916B4TQRIhI7HZVevl3foFrCsPp0eeWwvGbgX3-_A,21875
|
|
227
|
-
dtlpy-1.
|
|
228
|
-
dtlpy-1.
|
|
229
|
-
dtlpy-1.
|
|
229
|
+
dtlpy-1.109.19.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
230
|
+
dtlpy-1.109.19.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
231
|
+
dtlpy-1.109.19.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
|
|
230
232
|
tests/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
231
233
|
tests/assets/models_flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
232
234
|
tests/assets/models_flow/failedmain.py,sha256=n8F4eu_u7JPrJ1zedbJPvv9e3lHb3ihoErqrBIcseEc,1847
|
|
@@ -234,9 +236,9 @@ tests/assets/models_flow/main.py,sha256=vnDKyVZaae2RFpvwS22Hzi6Dt2LJerH4yQrmKtaT
|
|
|
234
236
|
tests/assets/models_flow/main_model.py,sha256=Hl_tv7Q6KaRL3yLkpUoLMRqu5-ab1QsUYPL6RPEoamw,2042
|
|
235
237
|
tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
238
|
tests/features/environment.py,sha256=JcM956BxLBRvDqy6Kr1Nxd1FY_gxbE6XztZBVBMCGYM,18897
|
|
237
|
-
dtlpy-1.
|
|
238
|
-
dtlpy-1.
|
|
239
|
-
dtlpy-1.
|
|
240
|
-
dtlpy-1.
|
|
241
|
-
dtlpy-1.
|
|
242
|
-
dtlpy-1.
|
|
239
|
+
dtlpy-1.109.19.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
240
|
+
dtlpy-1.109.19.dist-info/METADATA,sha256=S1lFH5dyjapOJM45lU0Xs_kPQJLzlbL5QPjxwQDLqss,5470
|
|
241
|
+
dtlpy-1.109.19.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
242
|
+
dtlpy-1.109.19.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
|
|
243
|
+
dtlpy-1.109.19.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
|
|
244
|
+
dtlpy-1.109.19.dist-info/RECORD,,
|
dtlpy-1.108.7.dist-info/METADATA
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: dtlpy
|
|
3
|
-
Version: 1.108.7
|
|
4
|
-
Summary: SDK and CLI for Dataloop platform
|
|
5
|
-
Home-page: https://github.com/dataloop-ai/dtlpy
|
|
6
|
-
Author: Dataloop Team
|
|
7
|
-
Author-email: info@dataloop.ai
|
|
8
|
-
License: Apache License 2.0
|
|
9
|
-
Classifier: Programming Language :: Python
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Requires-Python: >=3.7
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
License-File: LICENSE
|
|
20
|
-
Requires-Dist: urllib3 (>=1.26)
|
|
21
|
-
Requires-Dist: tqdm (>=4.63)
|
|
22
|
-
Requires-Dist: certifi (>=2020.12.5)
|
|
23
|
-
Requires-Dist: webvtt-py (==0.4.3)
|
|
24
|
-
Requires-Dist: aiohttp (>=3.8)
|
|
25
|
-
Requires-Dist: requests-toolbelt (>=1.0.0)
|
|
26
|
-
Requires-Dist: requests (>=2.25.0)
|
|
27
|
-
Requires-Dist: numpy (>=1.16.2)
|
|
28
|
-
Requires-Dist: pandas (>=0.24.2)
|
|
29
|
-
Requires-Dist: tabulate (>=0.8.9)
|
|
30
|
-
Requires-Dist: Pillow (>=7.2)
|
|
31
|
-
Requires-Dist: PyJWT (>=2.4)
|
|
32
|
-
Requires-Dist: jinja2 (>=2.11.3)
|
|
33
|
-
Requires-Dist: attrs (<=22.2.0)
|
|
34
|
-
Requires-Dist: prompt-toolkit (>=2.0.9)
|
|
35
|
-
Requires-Dist: fuzzyfinder (<=2.1.0)
|
|
36
|
-
Requires-Dist: dictdiffer (>=0.8.1)
|
|
37
|
-
Requires-Dist: validators (<=0.18.2)
|
|
38
|
-
Requires-Dist: pathspec (>=0.8.1)
|
|
39
|
-
Requires-Dist: filelock (>=3.0.12)
|
|
40
|
-
Requires-Dist: diskcache (>=5.4)
|
|
41
|
-
Requires-Dist: redis (>=3.5)
|
|
42
|
-
Requires-Dist: inquirer
|
|
43
|
-
Requires-Dist: dtlpymetrics
|
|
44
|
-
Requires-Dist: dataclasses
|
|
45
|
-
|
|
46
|
-

|
|
47
|
-
|
|
48
|
-
[](https://sdk-docs.dataloop.ai/en/latest/?badge=latest)
|
|
49
|
-
[](https://pypi.org/project/dtlpy/)
|
|
50
|
-
[](https://github.com/dataloop-ai/dtlpy)
|
|
51
|
-
[](https://github.com/dataloop-ai/dtlpy/blob/master/LICENSE)
|
|
52
|
-
[](https://pepy.tech/project/dtlpy)
|
|
53
|
-
|
|
54
|
-
## **Overview**
|
|
55
|
-
This is the SDK and CLI open source repository for [Dataloop.ai](https://dataloop.ai/) platform
|
|
56
|
-
|
|
57
|
-
For full platform documentation click [here](https://dataloop.ai/docs)
|
|
58
|
-
|
|
59
|
-
For full SDK documentation click [here](https://console.dataloop.ai/sdk-docs/latest)
|
|
60
|
-
|
|
61
|
-
## **Prerequisites**
|
|
62
|
-
|
|
63
|
-
### Python
|
|
64
|
-
|
|
65
|
-
#### Dtlpy supports these Python versions.
|
|
66
|
-
|
|
67
|
-
| Python | 3.11 | 3.10 | 3.9 | 3.8 | 3.7 | 3.6 | 3.5 |
|
|
68
|
-
|-------------------|------|------|-----|-----|-----|-----|-----|
|
|
69
|
-
| dtlpy >= 1.99 | Yes | Yes | Yes | Yes | Yes | | |
|
|
70
|
-
| dtlpy 1.76 - 1.98 | Yes | Yes | Yes | Yes | Yes | Yes | |
|
|
71
|
-
| dtlpy >= 1.61 | | Yes | Yes | Yes | Yes | Yes | |
|
|
72
|
-
| dtlpy 1.60 - 1.50 | | | Yes | Yes | Yes | Yes | |
|
|
73
|
-
| dtlpy <= 1.49 | | | Yes | Yes | Yes | Yes | Yes |
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
## **Installation**
|
|
77
|
-
|
|
78
|
-
The latest stable version is [available on PyPI](https://pypi.org/project/dtlpy/). Install with pip:
|
|
79
|
-
|
|
80
|
-
```code
|
|
81
|
-
pip install dtlpy
|
|
82
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|