datachain 0.8.13__py3-none-any.whl → 0.9.1__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.

@@ -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 it in the config file as team under studio."
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=5)
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 ConnectionError or Timeout exceptions are thrown from
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 requests.exceptions.HTTPError:
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.query_file,
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.job_id, args.team)
43
+ return cancel_job(args.id, args.team)
45
44
  if args.cmd == "logs":
46
- return show_job_logs(args.job_id, args.team)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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
- raise_remote_error(response.message)
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 Exception:
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.8.13
3
+ Version: 0.9.1
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.9
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.14.1; extra == "dev"
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.68; extra == "examples"
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=ofPJ6B-d-ybSDRrE7J6wqF_ZRAB2W9U8l-eeuBtqPLg,865
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=uqP6gtVFcVMVUFyB9Twr6Uk2onx-aBurbli8_VZu4-s,18993
6
+ datachain/dataset.py,sha256=e-iU2cOEYpmETN1Tu0d5-Mubad5dOWmgVhi4rmuOr6k,19067
7
7
  datachain/error.py,sha256=P1VI-etraA08ZrXHUEg1-xnOa2MkONd7vV0qA5uxBig,1314
8
- datachain/job.py,sha256=Jt4sNutMHJReaGsj3r3scueN5aESLGfhimAa8pUP7Is,1271
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=iMVDm9wfc86_G02N2p7qF4sdmKDGUkGz7kTOKc9m3Ao,9408
15
+ datachain/studio.py,sha256=Coo_6murSjh-RypiHDWNsVXGmfsopyMPCpPS1sA6uUc,9844
16
16
  datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
17
- datachain/utils.py,sha256=LBeg-9n48saBTHSPk7u_j-kjJnPUAq5Oyps_peSaqlM,14128
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=Kg5JBfuf-e7QoiHx1wLKRq4h3KmWEMpCHpHLd-WBX9E,58611
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=B6xw0qTcBgrICPqeWOhVXPaWJcxdKKg0Os6j2_IGAIc,8219
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=k_CwJ_wYX-Jcc_Z8t9a8vX5jFHVt7qDQ0dehaA94iKs,3140
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=mfOf3tbN4xGr4WQND1B5qMQ4LXoqEU9OhYac7wI-WBc,14393
33
- datachain/cli/parser/job.py,sha256=Zpi_bEsMp71YCr8xay0I93Taz8zS0_jHbxtvvTzXj6c,3197
34
- datachain/cli/parser/studio.py,sha256=CwmfdnsDNvDTOEbhLmjun18s4yo8zCgrtGTpF67qf8Q,2968
35
- datachain/cli/parser/utils.py,sha256=7ZtzGXfBAjVthnc-agz7R9rplnxqFan0LT6x2tq-6Fk,2007
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=OapNRBsyGDOQHelefUEoXoFHRWCJuBnhvD0ibebKvBc,10486
53
- datachain/func/__init__.py,sha256=DDpkbK6Kg53ONVGZo8szaNEFJrcepCAG9ev27DC6_7E,1125
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=g46zwW-i87uA45zWJnPHtHaqr6qOXSg6xLb4p9W3Gtk,6400
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=sU6cbjz2W1UuTfez6tCYPfVPJXlmfMDbnaVWPhMu0XU,9906
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=hJR0rxP4mQozYubERiw35mkTpsm2J0nvB7dJIAWEQ30,93367
70
- datachain/lib/file.py,sha256=SLgaE5sJJu0-c981Ux1OsR4-IbULD17wGO7fttbCcXU,16743
71
- datachain/lib/hf.py,sha256=DvoI8fv-WkL3FDEuIT80T9WrRs6fXesjbU0bmIDDsNE,5882
71
+ datachain/lib/dc.py,sha256=rQZgFLFSIde6wfiAnBnlSE4qnjNjNXQ0F3TGhDQ6ap8,93459
72
+ datachain/lib/file.py,sha256=jtjypMGEvXw3S1oJHeWYiAKJREhhdI7cLGKME8obA78,27030
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/vfile.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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=Su4axlm8ShxUzalYYA7UKU11Pm9cmYi88kUI9FKScew,56328
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=3v4ZqP06BwBMLXQ4mbcTS95oUodYgBv9A5XisL6ffWo,12915
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.8.13.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
- datachain-0.8.13.dist-info/METADATA,sha256=ugNjNgfRl-dnR4tKM3AqiRHEmPGFXSYjA-7Bl1BRgOA,10880
138
- datachain-0.8.13.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
- datachain-0.8.13.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
- datachain-0.8.13.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
- datachain-0.8.13.dist-info/RECORD,,
138
+ datachain-0.9.1.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
139
+ datachain-0.9.1.dist-info/METADATA,sha256=WC_qkAVg28I5GkwG_XDGoNC_2e0hKcBC7kqEzmna71A,11198
140
+ datachain-0.9.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
141
+ datachain-0.9.1.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
142
+ datachain-0.9.1.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
143
+ datachain-0.9.1.dist-info/RECORD,,
File without changes