dtlpy 1.107.8__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.
Files changed (40) hide show
  1. dtlpy/__init__.py +1 -7
  2. dtlpy/__version__.py +1 -1
  3. dtlpy/entities/__init__.py +5 -4
  4. dtlpy/entities/annotation.py +28 -57
  5. dtlpy/entities/annotation_definitions/base_annotation_definition.py +6 -14
  6. dtlpy/entities/app.py +1 -1
  7. dtlpy/entities/command.py +10 -7
  8. dtlpy/entities/compute.py +77 -94
  9. dtlpy/entities/dataset.py +29 -14
  10. dtlpy/entities/dpk.py +1 -0
  11. dtlpy/entities/filters.py +7 -6
  12. dtlpy/entities/item.py +7 -14
  13. dtlpy/entities/node.py +0 -12
  14. dtlpy/entities/service.py +0 -9
  15. dtlpy/entities/service_driver.py +118 -0
  16. dtlpy/entities/trigger.py +1 -1
  17. dtlpy/new_instance.py +1 -1
  18. dtlpy/repositories/__init__.py +2 -1
  19. dtlpy/repositories/apps.py +8 -4
  20. dtlpy/repositories/collections.py +86 -34
  21. dtlpy/repositories/commands.py +14 -4
  22. dtlpy/repositories/computes.py +173 -127
  23. dtlpy/repositories/datasets.py +20 -9
  24. dtlpy/repositories/downloader.py +20 -8
  25. dtlpy/repositories/dpks.py +26 -1
  26. dtlpy/repositories/items.py +5 -2
  27. dtlpy/repositories/service_drivers.py +213 -0
  28. dtlpy/repositories/services.py +6 -0
  29. dtlpy/repositories/uploader.py +4 -0
  30. dtlpy-1.109.19.dist-info/METADATA +172 -0
  31. {dtlpy-1.107.8.dist-info → dtlpy-1.109.19.dist-info}/RECORD +39 -37
  32. tests/features/environment.py +16 -15
  33. dtlpy-1.107.8.dist-info/METADATA +0 -69
  34. {dtlpy-1.107.8.data → dtlpy-1.109.19.data}/scripts/dlp +0 -0
  35. {dtlpy-1.107.8.data → dtlpy-1.109.19.data}/scripts/dlp.bat +0 -0
  36. {dtlpy-1.107.8.data → dtlpy-1.109.19.data}/scripts/dlp.py +0 -0
  37. {dtlpy-1.107.8.dist-info → dtlpy-1.109.19.dist-info}/LICENSE +0 -0
  38. {dtlpy-1.107.8.dist-info → dtlpy-1.109.19.dist-info}/WHEEL +0 -0
  39. {dtlpy-1.107.8.dist-info → dtlpy-1.109.19.dist-info}/entry_points.txt +0 -0
  40. {dtlpy-1.107.8.dist-info → dtlpy-1.109.19.dist-info}/top_level.txt +0 -0
@@ -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
+ ![logo.svg](docs%2F_static%2Flogo.svg)
49
+
50
+ [![Documentation Status](https://readthedocs.org/projects/dtlpy/badge/?version=latest)](https://sdk-docs.dataloop.ai/en/latest/?badge=latest)
51
+ [![PyPI Version](https://img.shields.io/pypi/v/dtlpy.svg)](https://pypi.org/project/dtlpy/)
52
+ [![Python Versions](https://img.shields.io/pypi/pyversions/dtlpy.svg)](https://github.com/dataloop-ai/dtlpy)
53
+ [![License](https://img.shields.io/github/license/dataloop-ai/dtlpy.svg)](https://github.com/dataloop-ai/dtlpy/blob/master/LICENSE)
54
+ [![Downloads](https://static.pepy.tech/personalized-badge/dtlpy?period=total&units=international_system&left_color=grey&right_color=green&left_text=Downloads)](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=K2c30sbTNH6bdPFLjabRX-Dh3TsQ33nR9psVGCAoUlw,20687
2
- dtlpy/__version__.py,sha256=DyXSqQ9xDLitJutTU-b8vJ4YgdU54rdp_AMOoLtwOKE,20
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=bHsWS-nNcQ5XWDcC4uASqOqpl1ye97kUacduxXZHO68,9990
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,11 +43,11 @@ 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=HQ2p5IWmBqT5oG908poiDsSsQOnESsV_Y2rHASEHdcs,4943
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=qpMGn1GEEw1Zdam4rL0gPaE4f_2hIyd_-tbNhoZLFWg,68482
48
+ dtlpy/entities/annotation.py,sha256=DYpVb4bNxwXnxXjh3zUa58qo2nSMaQnejiDwUZntn0E,66610
49
49
  dtlpy/entities/annotation_collection.py,sha256=CEYSBHhhDkC0VJdHsBSrA6TgdKGMcKeI3tFM40UJwS8,29838
50
- dtlpy/entities/app.py,sha256=dVd87-mP22NWvec5nqA5VjZ8Qk3aJlgUcloIAAOAPUw,6968
50
+ dtlpy/entities/app.py,sha256=vQ7hSMnuRIpoZqZc2NwjGTtWiPTCgi47x_oOgGUB-Pk,6996
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
@@ -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=FtfsO6kQSZqKn-Uo8n2ryGOB01Fgr-g5ewfMCtRMTfw,5247
59
- dtlpy/entities/compute.py,sha256=6mN4ZRUTf28wc0YtFy7W4mONaoZI0DyIGvwosjQrsAA,14663
60
- dtlpy/entities/dataset.py,sha256=4zFftsZy7SCLZriQyNa0bVbwg3LcwLlzAbk4fMT1vHg,52943
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=FJVhQKk2fj1cO_4rcE_bIF6QmIQZQWUkBnwTNQNMrfE,17857
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=PUmgor77m3CWeUgvCdWMg3Bt5SxHXPVBbN5VmD_dglQ,22683
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=vMMrUxdopp94cpNicCS4kTTUBP9eYwNilb1XhG8ZIeE,34839
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=yPPYDLtNMc6vZbbf4FIffY86y7tkaTvYm42Jb7k3Ofk,39617
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=X4rukxywZvb69swxj2C12i7HdmQ_XFuCRKV8Cdl_Dbw,33542
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=Spf5G3n1PsD3mDntwbAsc-DpEGDlqKgU9ec0Q0HinsQ,14286
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=tZGMokakJ4HjWAtD1obsgh2pORD66XWcnIT6CZLVMQs,3201
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,27 +154,27 @@ 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=b7jPmE4meKaeikO-x87HcO2lcfQg-8OzqcYZa8n6l-Q,2033
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
- dtlpy/repositories/apps.py,sha256=J-PDCPWVtvTLmzzkABs2-8zo9hGLk_z_sNR2JB1mB0c,15752
160
+ dtlpy/repositories/apps.py,sha256=OE2UbxE2oGA44-7pso7fm9GErTRFyGEFK2k7ibC_h6U,16002
160
161
  dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzMbo,19081
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=C_BPMg128Sl9AG3U4PxgI_2aaehQ2NuehMmzoTaXbPQ,11459
165
- dtlpy/repositories/commands.py,sha256=i6gQgOmRDG8ixqKU7672H3CvGt8VLT3ihDVfri1eWWc,5610
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=l0-FS3_8WEGG5tbtIR3ltsZc6MyHVkiYajHTCaeUugk,10156
168
- dtlpy/repositories/datasets.py,sha256=g0ii254YeAjA7B7MWhZoFsB03d70HiskCcPNkbfjC08,58762
169
- dtlpy/repositories/downloader.py,sha256=p4XXmH8cjYN8o0FJt81S9VqtnOyqj3YEfZKP-l6KGEM,44651
170
- dtlpy/repositories/dpks.py,sha256=dglvaiSFBvEithhlQ0RAXwzTxoZaICONs-owx3e2nfU,17848
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=uOukC5sCvdzdIGglYRfYw-1tS11Q9HH4oZFzORnpmk4,39881
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,13 +187,14 @@ 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/services.py,sha256=2ruoPwyznRwsNtM7YK2vSGQP9jtCHB6WitRo-Z0yB_c,68576
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
193
195
  dtlpy/repositories/triggers.py,sha256=izdNyCN1gDc5uo7AXntso0HSMTDIzGFUp-dSEz8cn_U,21990
194
196
  dtlpy/repositories/upload_element.py,sha256=R2KWIXmkp_dMAIr81tu3Y_VRfldj0ju8__V28ombkcg,10677
195
- dtlpy/repositories/uploader.py,sha256=5qQbsg701HrL8x0wWCRLPBP_dztqXEb31QfeZnh0SQk,31988
197
+ dtlpy/repositories/uploader.py,sha256=Keu_1fgJPiBpUgBGrAfRErejUK_UvqLTNdwK-BmTPY8,32064
196
198
  dtlpy/repositories/webhooks.py,sha256=IIpxOJ-7KeQp1TY9aJZz-FuycSjAoYx0TDk8z86KAK8,9033
197
199
  dtlpy/services/__init__.py,sha256=VfVJy2otIrDra6i7Sepjyez2ujiE6171ChQZp-YgxsM,904
198
200
  dtlpy/services/aihttp_retry.py,sha256=tgntZsAY0dW9v08rkjX1T5BLNDdDd8svtgn7nH8DSGU,5022
@@ -224,19 +226,19 @@ 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.107.8.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
228
- dtlpy-1.107.8.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
229
- dtlpy-1.107.8.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
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
233
235
  tests/assets/models_flow/main.py,sha256=vnDKyVZaae2RFpvwS22Hzi6Dt2LJerH4yQrmKtaT8_g,2123
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
- tests/features/environment.py,sha256=TMeUzSZkksHqbxNBDLk-LYBMD4G5dMo4ZLZXPwQImVE,18751
237
- dtlpy-1.107.8.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
238
- dtlpy-1.107.8.dist-info/METADATA,sha256=VTZNTqnNeuyZQM3xubZ68omm1J5fBp-e13CS7GRjjVA,3019
239
- dtlpy-1.107.8.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
240
- dtlpy-1.107.8.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
241
- dtlpy-1.107.8.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
242
- dtlpy-1.107.8.dist-info/RECORD,,
238
+ tests/features/environment.py,sha256=JcM956BxLBRvDqy6Kr1Nxd1FY_gxbE6XztZBVBMCGYM,18897
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,,
@@ -121,20 +121,21 @@ def after_feature(context, feature):
121
121
 
122
122
  # update api call json
123
123
  if hasattr(feature, 'dataloop_feature_dl'):
124
- try:
125
- api_calls_path = os.path.join(os.environ['DATALOOP_TEST_ASSETS'], 'api_calls.json')
126
- with open(api_calls_path, 'r') as f:
127
- api_calls = json.load(f)
128
- if context.feature.name in api_calls:
129
- api_calls[context.feature.name] += feature.dataloop_feature_dl.client_api.calls_counter.number
130
- else:
131
- api_calls[context.feature.name] = feature.dataloop_feature_dl.client_api.calls_counter.number
132
- # lock the file for multi processes needs
133
- with FileLock("api_calls.json.lock"):
134
- with open(api_calls_path, 'w') as f:
135
- json.dump(api_calls, f)
136
- except Exception:
137
- logging.exception('Failed to update api calls')
124
+ if not os.environ.get('IGNORE_API_CALLS', 'false') == 'true':
125
+ try:
126
+ api_calls_path = os.path.join(os.environ['DATALOOP_TEST_ASSETS'], 'api_calls.json')
127
+ with open(api_calls_path, 'r') as f:
128
+ api_calls = json.load(f)
129
+ if context.feature.name in api_calls:
130
+ api_calls[context.feature.name] += feature.dataloop_feature_dl.client_api.calls_counter.number
131
+ else:
132
+ api_calls[context.feature.name] = feature.dataloop_feature_dl.client_api.calls_counter.number
133
+ # lock the file for multi processes needs
134
+ with FileLock("api_calls.json.lock"):
135
+ with open(api_calls_path, 'w') as f:
136
+ json.dump(api_calls, f)
137
+ except Exception:
138
+ logging.exception('Failed to update api calls')
138
139
 
139
140
  if hasattr(feature, 'dataloop_feature_compute'):
140
141
  try:
@@ -293,7 +294,7 @@ def after_tag(context, tag):
293
294
  pass
294
295
  elif tag == 'wip':
295
296
  pass
296
- elif any(i_tag in tag for i_tag in ['DAT-', 'qa-', 'rc_only', 'skip_test']):
297
+ elif any(i_tag in tag for i_tag in ['DAT-', 'qa-', 'rc_only', 'skip_test', 'ATP', 'AIRGAPPED']):
297
298
  pass
298
299
  else:
299
300
  raise ValueError('unknown tag: {}'.format(tag))
@@ -1,69 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: dtlpy
3
- Version: 1.107.8
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
- ![logo.svg](docs%2F_static%2Flogo.svg)
47
- [![Documentation Status](https://readthedocs.org/projects/dtlpy/badge/?version=latest)](https://sdk-docs.dataloop.ai/en/latest/?badge=latest)
48
- [![pypi](https://img.shields.io/pypi/v/dtlpy.svg)](https://pypi.org/project/dtlpy/)
49
- [![versions](https://img.shields.io/pypi/pyversions/dtlpy.svg)](https://github.com/dataloop-ai/dtlpy)
50
- [![license](https://img.shields.io/github/license/dataloop-ai/dtlpy.svg)](https://github.com/dataloop-ai/dtlpy/blob/master/LICENSE)
51
- [![Downloads](https://static.pepy.tech/personalized-badge/dtlpy?period=total&units=international_system&left_color=grey&right_color=green&left_text=Downloads)](https://pepy.tech/project/dtlpy)
52
-
53
- This is the SDK and CLI open source repository for [Dataloop.ai](https://dataloop.ai/) platform
54
-
55
- For full platform documentation click [here](https://dataloop.ai/docs)
56
-
57
- For full SDK documentation click [here](https://console.dataloop.ai/sdk-docs/latest)
58
-
59
- ### Python Support
60
-
61
- #### Dtlpy supports these Python versions.
62
-
63
- | Python | 3.11 | 3.10 | 3.9 | 3.8 | 3.7 | 3.6 | 3.5 |
64
- |-------------------|------|------|-----|-----|-----|-----|-----|
65
- | dtlpy >= 1.99 | Yes | Yes | Yes | Yes | Yes | | |
66
- | dtlpy 1.76 - 1.98 | Yes | Yes | Yes | Yes | Yes | Yes | |
67
- | dtlpy >= 1.61 | | Yes | Yes | Yes | Yes | Yes | |
68
- | dtlpy 1.60 - 1.50 | | | Yes | Yes | Yes | Yes | |
69
- | dtlpy <= 1.49 | | | Yes | Yes | Yes | Yes | Yes |
File without changes