datachain 0.8.13__py3-none-any.whl → 0.9.0__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.
Potentially problematic release.
This version of datachain might be problematic. Click here for more details.
- datachain/__init__.py +10 -0
- datachain/catalog/catalog.py +32 -9
- datachain/cli/__init__.py +2 -0
- datachain/cli/commands/datasets.py +78 -12
- datachain/cli/parser/__init__.py +62 -12
- datachain/cli/parser/job.py +14 -4
- datachain/cli/parser/studio.py +8 -0
- datachain/cli/parser/utils.py +20 -1
- datachain/dataset.py +7 -4
- datachain/diff/__init__.py +78 -128
- datachain/fs/reference.py +21 -0
- datachain/func/__init__.py +3 -1
- datachain/func/conditional.py +66 -2
- datachain/job.py +1 -1
- datachain/lib/arrow.py +1 -11
- datachain/lib/dc.py +2 -0
- datachain/lib/file.py +292 -5
- datachain/lib/hf.py +1 -1
- datachain/lib/video.py +223 -0
- datachain/query/dataset.py +28 -3
- datachain/remote/studio.py +13 -6
- datachain/studio.py +34 -12
- datachain/utils.py +12 -2
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/METADATA +13 -5
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/RECORD +30 -28
- /datachain/{lib/vfile.py → fs/__init__.py} +0 -0
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/LICENSE +0 -0
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/WHEEL +0 -0
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/entry_points.txt +0 -0
- {datachain-0.8.13.dist-info → datachain-0.9.0.dist-info}/top_level.txt +0 -0
datachain/remote/studio.py
CHANGED
|
@@ -14,6 +14,7 @@ from typing import (
|
|
|
14
14
|
from urllib.parse import urlparse, urlunparse
|
|
15
15
|
|
|
16
16
|
import websockets
|
|
17
|
+
from requests.exceptions import HTTPError, Timeout
|
|
17
18
|
|
|
18
19
|
from datachain.config import Config
|
|
19
20
|
from datachain.error import DataChainError
|
|
@@ -38,6 +39,13 @@ def _is_server_error(status_code: int) -> bool:
|
|
|
38
39
|
return str(status_code).startswith("5")
|
|
39
40
|
|
|
40
41
|
|
|
42
|
+
def is_token_set() -> bool:
|
|
43
|
+
return (
|
|
44
|
+
bool(os.environ.get("DVC_STUDIO_TOKEN"))
|
|
45
|
+
or Config().read().get("studio", {}).get("token") is not None
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
41
49
|
def _parse_dates(obj: dict, date_fields: list[str]):
|
|
42
50
|
"""
|
|
43
51
|
Function that converts string ISO dates to datetime.datetime instances in object
|
|
@@ -104,8 +112,8 @@ class StudioClient:
|
|
|
104
112
|
raise DataChainError(
|
|
105
113
|
"Studio team is not set. "
|
|
106
114
|
"Use `datachain auth team <team_name>` "
|
|
107
|
-
"or environment variable `DVC_STUDIO_TEAM` to set it."
|
|
108
|
-
"You can also set
|
|
115
|
+
"or environment variable `DVC_STUDIO_TEAM` to set it. "
|
|
116
|
+
"You can also set `studio.team` in the config file."
|
|
109
117
|
)
|
|
110
118
|
|
|
111
119
|
return team
|
|
@@ -158,15 +166,14 @@ class StudioClient:
|
|
|
158
166
|
message = content.get("message", "")
|
|
159
167
|
return Response(response_data, ok, message)
|
|
160
168
|
|
|
161
|
-
@retry_with_backoff(retries=
|
|
169
|
+
@retry_with_backoff(retries=3, errors=(HTTPError, Timeout))
|
|
162
170
|
def _send_request(
|
|
163
171
|
self, route: str, data: dict[str, Any], method: Optional[str] = "POST"
|
|
164
172
|
) -> Response[Any]:
|
|
165
173
|
"""
|
|
166
174
|
Function that communicate Studio API.
|
|
167
175
|
It will raise an exception, and try to retry, if 5xx status code is
|
|
168
|
-
returned, or if
|
|
169
|
-
requests lib
|
|
176
|
+
returned, or if Timeout exceptions is thrown from the requests lib
|
|
170
177
|
"""
|
|
171
178
|
import requests
|
|
172
179
|
|
|
@@ -188,7 +195,7 @@ class StudioClient:
|
|
|
188
195
|
)
|
|
189
196
|
try:
|
|
190
197
|
response.raise_for_status()
|
|
191
|
-
except
|
|
198
|
+
except HTTPError:
|
|
192
199
|
if _is_server_error(response.status_code):
|
|
193
200
|
# going to retry
|
|
194
201
|
raise
|
datachain/studio.py
CHANGED
|
@@ -3,7 +3,6 @@ import os
|
|
|
3
3
|
import sys
|
|
4
4
|
from typing import TYPE_CHECKING, Optional
|
|
5
5
|
|
|
6
|
-
from datachain.catalog.catalog import raise_remote_error
|
|
7
6
|
from datachain.config import Config, ConfigLevel
|
|
8
7
|
from datachain.dataset import QUERY_DATASET_PREFIX
|
|
9
8
|
from datachain.error import DataChainError
|
|
@@ -29,7 +28,7 @@ def process_jobs_args(args: "Namespace"):
|
|
|
29
28
|
|
|
30
29
|
if args.cmd == "run":
|
|
31
30
|
return create_job(
|
|
32
|
-
args.
|
|
31
|
+
args.file,
|
|
33
32
|
args.team,
|
|
34
33
|
args.env_file,
|
|
35
34
|
args.env,
|
|
@@ -41,9 +40,9 @@ def process_jobs_args(args: "Namespace"):
|
|
|
41
40
|
)
|
|
42
41
|
|
|
43
42
|
if args.cmd == "cancel":
|
|
44
|
-
return cancel_job(args.
|
|
43
|
+
return cancel_job(args.id, args.team)
|
|
45
44
|
if args.cmd == "logs":
|
|
46
|
-
return show_job_logs(args.
|
|
45
|
+
return show_job_logs(args.id, args.team)
|
|
47
46
|
raise DataChainError(f"Unknown command '{args.cmd}'.")
|
|
48
47
|
|
|
49
48
|
|
|
@@ -140,11 +139,18 @@ def token():
|
|
|
140
139
|
print(token)
|
|
141
140
|
|
|
142
141
|
|
|
143
|
-
def list_datasets(team: Optional[str] = None):
|
|
142
|
+
def list_datasets(team: Optional[str] = None, name: Optional[str] = None):
|
|
143
|
+
if name:
|
|
144
|
+
yield from list_dataset_versions(team, name)
|
|
145
|
+
return
|
|
146
|
+
|
|
144
147
|
client = StudioClient(team=team)
|
|
148
|
+
|
|
145
149
|
response = client.ls_datasets()
|
|
150
|
+
|
|
146
151
|
if not response.ok:
|
|
147
|
-
|
|
152
|
+
raise DataChainError(response.message)
|
|
153
|
+
|
|
148
154
|
if not response.data:
|
|
149
155
|
return
|
|
150
156
|
|
|
@@ -158,6 +164,22 @@ def list_datasets(team: Optional[str] = None):
|
|
|
158
164
|
yield (name, version)
|
|
159
165
|
|
|
160
166
|
|
|
167
|
+
def list_dataset_versions(team: Optional[str] = None, name: str = ""):
|
|
168
|
+
client = StudioClient(team=team)
|
|
169
|
+
|
|
170
|
+
response = client.dataset_info(name)
|
|
171
|
+
|
|
172
|
+
if not response.ok:
|
|
173
|
+
raise DataChainError(response.message)
|
|
174
|
+
|
|
175
|
+
if not response.data:
|
|
176
|
+
return
|
|
177
|
+
|
|
178
|
+
for v in response.data.get("versions", []):
|
|
179
|
+
version = v.get("version")
|
|
180
|
+
yield (name, version)
|
|
181
|
+
|
|
182
|
+
|
|
161
183
|
def edit_studio_dataset(
|
|
162
184
|
team_name: Optional[str],
|
|
163
185
|
name: str,
|
|
@@ -168,7 +190,7 @@ def edit_studio_dataset(
|
|
|
168
190
|
client = StudioClient(team=team_name)
|
|
169
191
|
response = client.edit_dataset(name, new_name, description, labels)
|
|
170
192
|
if not response.ok:
|
|
171
|
-
|
|
193
|
+
raise DataChainError(response.message)
|
|
172
194
|
|
|
173
195
|
print(f"Dataset '{name}' updated in Studio")
|
|
174
196
|
|
|
@@ -182,7 +204,7 @@ def remove_studio_dataset(
|
|
|
182
204
|
client = StudioClient(team=team_name)
|
|
183
205
|
response = client.rm_dataset(name, version, force)
|
|
184
206
|
if not response.ok:
|
|
185
|
-
|
|
207
|
+
raise DataChainError(response.message)
|
|
186
208
|
|
|
187
209
|
print(f"Dataset '{name}' removed from Studio")
|
|
188
210
|
|
|
@@ -212,7 +234,7 @@ def show_logs_from_client(client, job_id):
|
|
|
212
234
|
|
|
213
235
|
response = client.dataset_job_versions(job_id)
|
|
214
236
|
if not response.ok:
|
|
215
|
-
|
|
237
|
+
raise DataChainError(response.message)
|
|
216
238
|
|
|
217
239
|
response_data = response.data
|
|
218
240
|
if response_data:
|
|
@@ -263,7 +285,7 @@ def create_job(
|
|
|
263
285
|
requirements=requirements,
|
|
264
286
|
)
|
|
265
287
|
if not response.ok:
|
|
266
|
-
|
|
288
|
+
raise DataChainError(response.message)
|
|
267
289
|
|
|
268
290
|
if not response.data:
|
|
269
291
|
raise DataChainError("Failed to create job")
|
|
@@ -284,7 +306,7 @@ def upload_files(client: StudioClient, files: list[str]) -> list[str]:
|
|
|
284
306
|
file_content = f.read()
|
|
285
307
|
response = client.upload_file(file_content, file_name)
|
|
286
308
|
if not response.ok:
|
|
287
|
-
|
|
309
|
+
raise DataChainError(response.message)
|
|
288
310
|
|
|
289
311
|
if not response.data:
|
|
290
312
|
raise DataChainError(f"Failed to upload file {file_name}")
|
|
@@ -305,7 +327,7 @@ def cancel_job(job_id: str, team_name: Optional[str]):
|
|
|
305
327
|
client = StudioClient(team=team_name)
|
|
306
328
|
response = client.cancel_job(job_id)
|
|
307
329
|
if not response.ok:
|
|
308
|
-
|
|
330
|
+
raise DataChainError(response.message)
|
|
309
331
|
|
|
310
332
|
print(f"Job {job_id} canceled")
|
|
311
333
|
|
datachain/utils.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import glob
|
|
2
2
|
import io
|
|
3
3
|
import json
|
|
4
|
+
import logging
|
|
4
5
|
import os
|
|
5
6
|
import os.path as osp
|
|
6
7
|
import random
|
|
@@ -25,6 +26,9 @@ if TYPE_CHECKING:
|
|
|
25
26
|
import pandas as pd
|
|
26
27
|
from typing_extensions import Self
|
|
27
28
|
|
|
29
|
+
|
|
30
|
+
logger = logging.getLogger("datachain")
|
|
31
|
+
|
|
28
32
|
NUL = b"\0"
|
|
29
33
|
TIME_ZERO = datetime.fromtimestamp(0, tz=timezone.utc)
|
|
30
34
|
|
|
@@ -271,19 +275,25 @@ def flatten(items):
|
|
|
271
275
|
yield item
|
|
272
276
|
|
|
273
277
|
|
|
274
|
-
def retry_with_backoff(retries=5, backoff_sec=1):
|
|
278
|
+
def retry_with_backoff(retries=5, backoff_sec=1, errors=(Exception,)):
|
|
275
279
|
def retry(f):
|
|
276
280
|
def wrapper(*args, **kwargs):
|
|
277
281
|
num_tried = 0
|
|
278
282
|
while True:
|
|
279
283
|
try:
|
|
280
284
|
return f(*args, **kwargs)
|
|
281
|
-
except
|
|
285
|
+
except errors:
|
|
282
286
|
if num_tried == retries:
|
|
283
287
|
raise
|
|
284
288
|
sleep = (
|
|
285
289
|
backoff_sec * 2** num_tried + random.uniform(0, 1) # noqa: S311
|
|
286
290
|
)
|
|
291
|
+
logger.exception(
|
|
292
|
+
"Error in %s, retrying in %ds, attempt %d",
|
|
293
|
+
f.__name__,
|
|
294
|
+
sleep,
|
|
295
|
+
num_tried,
|
|
296
|
+
)
|
|
287
297
|
time.sleep(sleep)
|
|
288
298
|
num_tried += 1
|
|
289
299
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: datachain
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Wrangle unstructured AI data at scale
|
|
5
5
|
Author-email: Dmitry Petrov <support@dvc.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -21,10 +21,12 @@ Requires-Dist: tomlkit
|
|
|
21
21
|
Requires-Dist: tqdm
|
|
22
22
|
Requires-Dist: numpy<3,>=1
|
|
23
23
|
Requires-Dist: pandas>=2.0.0
|
|
24
|
+
Requires-Dist: packaging
|
|
24
25
|
Requires-Dist: pyarrow
|
|
25
26
|
Requires-Dist: typing-extensions
|
|
26
27
|
Requires-Dist: python-dateutil>=2
|
|
27
28
|
Requires-Dist: attrs>=21.3.0
|
|
29
|
+
Requires-Dist: fsspec>=2024.2.0
|
|
28
30
|
Requires-Dist: s3fs>=2024.2.0
|
|
29
31
|
Requires-Dist: gcsfs>=2024.2.0
|
|
30
32
|
Requires-Dist: adlfs>=2024.2.0
|
|
@@ -42,7 +44,7 @@ Requires-Dist: Pillow<12,>=10.0.0
|
|
|
42
44
|
Requires-Dist: msgpack<2,>=1.0.4
|
|
43
45
|
Requires-Dist: psutil
|
|
44
46
|
Requires-Dist: huggingface_hub
|
|
45
|
-
Requires-Dist: iterative-telemetry>=0.0.
|
|
47
|
+
Requires-Dist: iterative-telemetry>=0.0.10
|
|
46
48
|
Requires-Dist: platformdirs
|
|
47
49
|
Requires-Dist: dvc-studio-client<1,>=0.21
|
|
48
50
|
Requires-Dist: tabulate
|
|
@@ -54,6 +56,7 @@ Requires-Dist: mkdocs-material==9.5.22; extra == "docs"
|
|
|
54
56
|
Requires-Dist: mkdocs-section-index>=0.3.6; extra == "docs"
|
|
55
57
|
Requires-Dist: mkdocstrings-python>=1.6.3; extra == "docs"
|
|
56
58
|
Requires-Dist: mkdocs-literate-nav>=0.6.1; extra == "docs"
|
|
59
|
+
Requires-Dist: eval-type-backport; extra == "docs"
|
|
57
60
|
Provides-Extra: torch
|
|
58
61
|
Requires-Dist: torch>=2.1.0; extra == "torch"
|
|
59
62
|
Requires-Dist: torchvision; extra == "torch"
|
|
@@ -66,8 +69,13 @@ Requires-Dist: usearch; extra == "vector"
|
|
|
66
69
|
Provides-Extra: hf
|
|
67
70
|
Requires-Dist: numba>=0.60.0; extra == "hf"
|
|
68
71
|
Requires-Dist: datasets[audio,vision]>=2.21.0; extra == "hf"
|
|
72
|
+
Provides-Extra: video
|
|
73
|
+
Requires-Dist: av<14; extra == "video"
|
|
74
|
+
Requires-Dist: ffmpeg-python; extra == "video"
|
|
75
|
+
Requires-Dist: imageio[ffmpeg]; extra == "video"
|
|
76
|
+
Requires-Dist: opencv-python; extra == "video"
|
|
69
77
|
Provides-Extra: tests
|
|
70
|
-
Requires-Dist: datachain[hf,remote,torch,vector]; extra == "tests"
|
|
78
|
+
Requires-Dist: datachain[hf,remote,torch,vector,video]; extra == "tests"
|
|
71
79
|
Requires-Dist: pytest<9,>=8; extra == "tests"
|
|
72
80
|
Requires-Dist: pytest-sugar>=0.9.6; extra == "tests"
|
|
73
81
|
Requires-Dist: pytest-cov>=4.1.0; extra == "tests"
|
|
@@ -83,7 +91,7 @@ Requires-Dist: requests-mock; extra == "tests"
|
|
|
83
91
|
Requires-Dist: scipy; extra == "tests"
|
|
84
92
|
Provides-Extra: dev
|
|
85
93
|
Requires-Dist: datachain[docs,tests]; extra == "dev"
|
|
86
|
-
Requires-Dist: mypy==1.
|
|
94
|
+
Requires-Dist: mypy==1.15.0; extra == "dev"
|
|
87
95
|
Requires-Dist: types-python-dateutil; extra == "dev"
|
|
88
96
|
Requires-Dist: types-pytz; extra == "dev"
|
|
89
97
|
Requires-Dist: types-PyYAML; extra == "dev"
|
|
@@ -94,7 +102,7 @@ Requires-Dist: datachain[tests]; extra == "examples"
|
|
|
94
102
|
Requires-Dist: defusedxml; extra == "examples"
|
|
95
103
|
Requires-Dist: accelerate; extra == "examples"
|
|
96
104
|
Requires-Dist: huggingface_hub[hf_transfer]; extra == "examples"
|
|
97
|
-
Requires-Dist: ultralytics==8.3.
|
|
105
|
+
Requires-Dist: ultralytics==8.3.74; extra == "examples"
|
|
98
106
|
Requires-Dist: open_clip_torch; extra == "examples"
|
|
99
107
|
|
|
100
108
|
================
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
datachain/__init__.py,sha256=
|
|
1
|
+
datachain/__init__.py,sha256=WfGQWOA05pz9haabxOjZYJMZBI1MXOEtIraDkjXaXBw,1019
|
|
2
2
|
datachain/__main__.py,sha256=hG3Y4ARGEqe1AWwNMd259rBlqtphx1Wk39YbueQ0yV8,91
|
|
3
3
|
datachain/asyn.py,sha256=RH_jFwJcTXxhEFomaI9yL6S3Onau6NZ6FSKfKFGtrJE,9689
|
|
4
4
|
datachain/cache.py,sha256=yQblPhOh_Mq74Ma7xT1CL1idLJ0HgrQxpGVYvRy_9Eg,3623
|
|
5
5
|
datachain/config.py,sha256=g8qbNV0vW2VEKpX-dGZ9pAn0DAz6G2ZFcr7SAV3PoSM,4272
|
|
6
|
-
datachain/dataset.py,sha256=
|
|
6
|
+
datachain/dataset.py,sha256=e-iU2cOEYpmETN1Tu0d5-Mubad5dOWmgVhi4rmuOr6k,19067
|
|
7
7
|
datachain/error.py,sha256=P1VI-etraA08ZrXHUEg1-xnOa2MkONd7vV0qA5uxBig,1314
|
|
8
|
-
datachain/job.py,sha256=
|
|
8
|
+
datachain/job.py,sha256=x5PB6d5sqx00hePNNkirESlOVAvnmkEM5ygUgQmAhsk,1262
|
|
9
9
|
datachain/listing.py,sha256=HNB-xeKA6aUA-HTWr--H22S6jVOxP2OVQ-3d07ISqAk,7109
|
|
10
10
|
datachain/node.py,sha256=KWDT0ClYXB7FYI-QOvzAa-UDkLJErUI2eWm5FBteYuU,5577
|
|
11
11
|
datachain/nodes_fetcher.py,sha256=_wgaKyqEjkqdwJ_Hj6D8vUYz7hnU7g6xhm0H6ZnYxmE,1095
|
|
12
12
|
datachain/nodes_thread_pool.py,sha256=uPo-xl8zG5m9YgODjPFBpbcqqHjI-dcxH87yAbj_qco,3192
|
|
13
13
|
datachain/progress.py,sha256=lRzxoYP4Qv2XBwD78sOkmYRzHFpZ2ExVNJF8wAeICtY,770
|
|
14
14
|
datachain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
datachain/studio.py,sha256=
|
|
15
|
+
datachain/studio.py,sha256=Coo_6murSjh-RypiHDWNsVXGmfsopyMPCpPS1sA6uUc,9844
|
|
16
16
|
datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
|
|
17
|
-
datachain/utils.py,sha256=
|
|
17
|
+
datachain/utils.py,sha256=n8fcyOM8P_2CEFK4h8BZxCAwCkOpt8NAeJK5tm1gIOg,14433
|
|
18
18
|
datachain/catalog/__init__.py,sha256=cMZzSz3VoUi-6qXSVaHYN-agxQuAcz2XSqnEPZ55crE,353
|
|
19
|
-
datachain/catalog/catalog.py,sha256=
|
|
19
|
+
datachain/catalog/catalog.py,sha256=xZC6drw4opoYcxTTiAFv6nbhNOzBb-UZZ_VqY9dqdIs,59458
|
|
20
20
|
datachain/catalog/datasource.py,sha256=IkGMh0Ttg6Q-9DWfU_H05WUnZepbGa28HYleECi6K7I,1353
|
|
21
21
|
datachain/catalog/loader.py,sha256=HA_mBC7q_My8j2WnSvIjUGuJpl6SIdg5vvy_lagxJlA,5733
|
|
22
|
-
datachain/cli/__init__.py,sha256=
|
|
22
|
+
datachain/cli/__init__.py,sha256=Uu_ARR5-VS1srC_o2EADRjYKX1c86GK7LZCDL4ufE_w,8290
|
|
23
23
|
datachain/cli/utils.py,sha256=wrLnAh7Wx8O_ojZE8AE4Lxn5WoxHbOj7as8NWlLAA74,3036
|
|
24
24
|
datachain/cli/commands/__init__.py,sha256=zp3bYIioO60x_X04A4-IpZqSYVnpwOa1AdERQaRlIhI,493
|
|
25
|
-
datachain/cli/commands/datasets.py,sha256=
|
|
25
|
+
datachain/cli/commands/datasets.py,sha256=865ui6q4UVPbL_-jk18C-lYi_bGMlh7XhfRaHbbNyhk,5796
|
|
26
26
|
datachain/cli/commands/du.py,sha256=9edEzDEs98K2VYk8Wf-ZMpUzALcgm9uD6YtoqbvtUGU,391
|
|
27
27
|
datachain/cli/commands/index.py,sha256=eglNaIe1yyIadUHHumjtNbgIjht6kme7SS7xE3YHR88,198
|
|
28
28
|
datachain/cli/commands/ls.py,sha256=Wb8hXyBwyhb62Zk6ZhNFPFrj2lJhdbRcnBQQkgL_qyw,5174
|
|
29
29
|
datachain/cli/commands/misc.py,sha256=c0DmkOLwcDI2YhA8ArOuLJk6aGzSMZCiKL_E2JGibVE,600
|
|
30
30
|
datachain/cli/commands/query.py,sha256=2S7hQxialt1fkbocxi6JXZI6jS5QnFrD1aOjKgZkzfI,1471
|
|
31
31
|
datachain/cli/commands/show.py,sha256=RVb_7Kjd1kzqTxRKYFvmD04LaJHOtrCc4FYMyc-ZEYw,1149
|
|
32
|
-
datachain/cli/parser/__init__.py,sha256=
|
|
33
|
-
datachain/cli/parser/job.py,sha256=
|
|
34
|
-
datachain/cli/parser/studio.py,sha256=
|
|
35
|
-
datachain/cli/parser/utils.py,sha256=
|
|
32
|
+
datachain/cli/parser/__init__.py,sha256=rtjlqSsDd4LZH9WdgvluO27M4sID1wD7YkQ4cKhNXzw,15721
|
|
33
|
+
datachain/cli/parser/job.py,sha256=kvQkSfieyUmvJpOK8p78UgS8sygHhQXztRlOtVcgtaU,3449
|
|
34
|
+
datachain/cli/parser/studio.py,sha256=4HEE1K93WDJxMLfgqAA4mHdigpSzC7SLUx-qPF0NgYQ,3254
|
|
35
|
+
datachain/cli/parser/utils.py,sha256=GEzxfPJ4i6nt6JhjvZ3PQesXl9islEV3E-N1NZGrLaA,2750
|
|
36
36
|
datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
|
|
37
37
|
datachain/client/azure.py,sha256=ma6fJcnveG8wpNy1PSrN5hgvmRdCj8Sf3RKjfd3qCyM,3221
|
|
38
38
|
datachain/client/fileslice.py,sha256=bT7TYco1Qe3bqoc8aUkUZcPdPofJDHlryL5BsTn9xsY,3021
|
|
@@ -49,12 +49,14 @@ datachain/data_storage/schema.py,sha256=qSukry2kINhVw8aj5lQrpe7N90DFeatKIKmDh6jA
|
|
|
49
49
|
datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
|
|
50
50
|
datachain/data_storage/sqlite.py,sha256=KJ8hI0Hrwv9eAA-nLUlw2AYCQxiAAZ12a-ftUBtroNQ,24545
|
|
51
51
|
datachain/data_storage/warehouse.py,sha256=ovdH9LmOWLfCrvf0UvXnrNC-CrdAjns3EmXEgFdz4KM,30824
|
|
52
|
-
datachain/diff/__init__.py,sha256=
|
|
53
|
-
datachain/
|
|
52
|
+
datachain/diff/__init__.py,sha256=xSbJtmj-oawXQ2qfdGtfnVsfXV7KhdkQKC9bG_5lA2k,9256
|
|
53
|
+
datachain/fs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
datachain/fs/reference.py,sha256=A8McpXF0CqbXPqanXuvpKu50YLB3a2ZXA3YAPxtBXSM,914
|
|
55
|
+
datachain/func/__init__.py,sha256=vpd61Q0AmNHEhUTEtzmmmZMLngr7xkgy-SazX7Pzf4w,1159
|
|
54
56
|
datachain/func/aggregate.py,sha256=7_IPrIwb2XSs3zG4iOr1eTvzn6kNVe2mkzvNzjusDHk,10942
|
|
55
57
|
datachain/func/array.py,sha256=O784_uwmaP5CjZX4VSF4RmS8cmpaForQc8zASxHJB6A,6717
|
|
56
58
|
datachain/func/base.py,sha256=wA0sBQAVyN9LPxoo7Ox83peS0zUVnyuKxukwAcjGLfY,534
|
|
57
|
-
datachain/func/conditional.py,sha256=
|
|
59
|
+
datachain/func/conditional.py,sha256=HkNamQr9dLyIMDEbIeO6CZR0emQoDqeaWrZ1fECod4M,8062
|
|
58
60
|
datachain/func/func.py,sha256=PnwTRAiEJUus3e4NYdQ-hldqLzKS9hY0FjiyBMZhsSo,16183
|
|
59
61
|
datachain/func/numeric.py,sha256=gMe1Ks0dqQKHkjcpvj7I5S-neECzQ_gltPQLNoaWOyo,5632
|
|
60
62
|
datachain/func/path.py,sha256=mqN_mfkwv44z2II7DMTp_fGGw95hmTCNls_TOFNpr4k,3155
|
|
@@ -62,13 +64,13 @@ datachain/func/random.py,sha256=pENOLj9rSmWfGCnOsUIaCsVC5486zQb66qfQvXaz9Z4,452
|
|
|
62
64
|
datachain/func/string.py,sha256=8az3BTeezlaZt6NW-54GWX7WSosAOVMbTr6bXIYyJq4,5958
|
|
63
65
|
datachain/func/window.py,sha256=0MB1yjpVbwOrl_WNLZ8V3jkJz3o0XlYinpAcZQJuxiA,1688
|
|
64
66
|
datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
datachain/lib/arrow.py,sha256=
|
|
67
|
+
datachain/lib/arrow.py,sha256=9UBCF-lftQaz0yxdsjbLKbyzVSmrF_QSWdhp2oBDPqs,9486
|
|
66
68
|
datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
|
|
67
69
|
datachain/lib/data_model.py,sha256=zS4lmXHVBXc9ntcyea2a1CRLXGSAN_0glXcF88CohgY,2685
|
|
68
70
|
datachain/lib/dataset_info.py,sha256=IjdF1E0TQNOq9YyynfWiCFTeZpbyGfyJvxgJY4YN810,2493
|
|
69
|
-
datachain/lib/dc.py,sha256=
|
|
70
|
-
datachain/lib/file.py,sha256=
|
|
71
|
-
datachain/lib/hf.py,sha256=
|
|
71
|
+
datachain/lib/dc.py,sha256=rQZgFLFSIde6wfiAnBnlSE4qnjNjNXQ0F3TGhDQ6ap8,93459
|
|
72
|
+
datachain/lib/file.py,sha256=HXH4pgPN_Zx9rPI0jy-Cjl2F3ItJchH7ycrIXnOgaGk,26892
|
|
73
|
+
datachain/lib/hf.py,sha256=gjxuStZBlKtNk3-4yYSlWZDv9zBGblOdvEy_Lwap5hA,5882
|
|
72
74
|
datachain/lib/image.py,sha256=AMXYwQsmarZjRbPCZY3M1jDsM2WAB_b3cTY4uOIuXNU,2675
|
|
73
75
|
datachain/lib/listing.py,sha256=auodM0HitYZsL0DybdgQUYhne_LgkVW-LKGYYOACP90,7272
|
|
74
76
|
datachain/lib/listing_info.py,sha256=9ua40Hw0aiQByUw3oAEeNzMavJYfW0Uhe8YdCTK-m_g,1110
|
|
@@ -82,7 +84,7 @@ datachain/lib/text.py,sha256=UNHm8fhidk7wdrWqacEWaA6I9ykfYqarQ2URby7jc7M,1261
|
|
|
82
84
|
datachain/lib/udf.py,sha256=TlvikKTFvkIKaqqSkSriOyXhQ0rwRHV2ZRs1LHZOCmo,16107
|
|
83
85
|
datachain/lib/udf_signature.py,sha256=GXw24A-Olna6DWCdgy2bC-gZh_gLGPQ-KvjuI6pUjC0,7281
|
|
84
86
|
datachain/lib/utils.py,sha256=QrjVs_oLRXEotOPUYurBJypBFi_ReTJmxcnJeH4j2Uk,1596
|
|
85
|
-
datachain/lib/
|
|
87
|
+
datachain/lib/video.py,sha256=rqFockGMoWmLuGMN044BGZVogoCePv056BYi36u3nNo,6522
|
|
86
88
|
datachain/lib/webdataset.py,sha256=o7SHk5HOUWsZ5Ln04xOM04eQqiBHiJNO7xLgyVBrwo8,6924
|
|
87
89
|
datachain/lib/webdataset_laion.py,sha256=xvT6m_r5y0KbOx14BUe7UC5mOgrktJq53Mh-H0EVlUE,2525
|
|
88
90
|
datachain/lib/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -101,7 +103,7 @@ datachain/model/ultralytics/pose.py,sha256=71KBTcoST2wcEtsyGXqLVpvUtqbp9gwZGA15p
|
|
|
101
103
|
datachain/model/ultralytics/segment.py,sha256=Z1ab0tZRJubSYNH4KkFlzhYeGNTfAyC71KmkQcToHDQ,2760
|
|
102
104
|
datachain/query/__init__.py,sha256=7DhEIjAA8uZJfejruAVMZVcGFmvUpffuZJwgRqNwe-c,263
|
|
103
105
|
datachain/query/batch.py,sha256=6w8gzLTmLeylststu-gT5jIqEfi4-djS7_yTYyeo-fw,4190
|
|
104
|
-
datachain/query/dataset.py,sha256=
|
|
106
|
+
datachain/query/dataset.py,sha256=tXinFa-0ytC4j3W3XKjSkVW3qX3iFGQyRO800k9JW98,57083
|
|
105
107
|
datachain/query/dispatch.py,sha256=_1vjeQ1wjUoxlik55k0JkWqQCUfMjgVWmEOyWRkx0dU,12437
|
|
106
108
|
datachain/query/metrics.py,sha256=r5b0ygYhokbXp8Mg3kCH8iFSRw0jxzyeBe-C-J_bKFc,938
|
|
107
109
|
datachain/query/params.py,sha256=O_j89mjYRLOwWNhYZl-z7mi-rkdP7WyFmaDufsdTryE,863
|
|
@@ -111,7 +113,7 @@ datachain/query/session.py,sha256=fQAtl5zRESRDfRS2d5J9KgrWauunCtrd96vP4Ns1KlE,59
|
|
|
111
113
|
datachain/query/udf.py,sha256=GY8E9pnzPE7ZKl_jvetZpn9R2rlUtMlhoYj4UmrzFzw,594
|
|
112
114
|
datachain/query/utils.py,sha256=u0A_BwG9PNs0DxoDcvSWgWLpj3ByTUv8CqH13CIuGag,1293
|
|
113
115
|
datachain/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
-
datachain/remote/studio.py,sha256=
|
|
116
|
+
datachain/remote/studio.py,sha256=kzpOWnmtaeXlRXgHbZ7pxno-r0pSgwq2LJFGSY0u1UY,13110
|
|
115
117
|
datachain/sql/__init__.py,sha256=6SQRdbljO3d2hx3EAVXEZrHQKv5jth0Jh98PogT59No,262
|
|
116
118
|
datachain/sql/selectable.py,sha256=cTc60qVoAwqqss0Vop8Lt5Z-ROnM1XrQmL_GLjRxhXs,1765
|
|
117
119
|
datachain/sql/types.py,sha256=ASSPkmM5EzdRindqj2O7WHLXq8VHAgFYedG8lYfGvVI,14045
|
|
@@ -133,9 +135,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
|
|
|
133
135
|
datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
|
|
134
136
|
datachain/toolkit/split.py,sha256=z3zRJNzjWrpPuRw-zgFbCOBKInyYxJew8ygrYQRQLNc,2930
|
|
135
137
|
datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
|
|
136
|
-
datachain-0.
|
|
137
|
-
datachain-0.
|
|
138
|
-
datachain-0.
|
|
139
|
-
datachain-0.
|
|
140
|
-
datachain-0.
|
|
141
|
-
datachain-0.
|
|
138
|
+
datachain-0.9.0.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
|
|
139
|
+
datachain-0.9.0.dist-info/METADATA,sha256=GJFjVJKy6bvK7OwltIhcQEA3GHdpR2pHHJEAdoeapM8,11198
|
|
140
|
+
datachain-0.9.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
141
|
+
datachain-0.9.0.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
|
|
142
|
+
datachain-0.9.0.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
|
|
143
|
+
datachain-0.9.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|