datachain 0.8.3__py3-none-any.whl → 0.8.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of datachain might be problematic. Click here for more details.

Files changed (50) hide show
  1. datachain/asyn.py +16 -6
  2. datachain/cache.py +32 -10
  3. datachain/catalog/catalog.py +17 -1
  4. datachain/cli/__init__.py +311 -0
  5. datachain/cli/commands/__init__.py +29 -0
  6. datachain/cli/commands/datasets.py +129 -0
  7. datachain/cli/commands/du.py +14 -0
  8. datachain/cli/commands/index.py +12 -0
  9. datachain/cli/commands/ls.py +169 -0
  10. datachain/cli/commands/misc.py +28 -0
  11. datachain/cli/commands/query.py +53 -0
  12. datachain/cli/commands/show.py +38 -0
  13. datachain/cli/parser/__init__.py +547 -0
  14. datachain/cli/parser/job.py +120 -0
  15. datachain/cli/parser/studio.py +126 -0
  16. datachain/cli/parser/utils.py +63 -0
  17. datachain/{cli_utils.py → cli/utils.py} +27 -1
  18. datachain/client/azure.py +6 -2
  19. datachain/client/fsspec.py +9 -3
  20. datachain/client/gcs.py +6 -2
  21. datachain/client/s3.py +16 -1
  22. datachain/data_storage/db_engine.py +9 -0
  23. datachain/data_storage/schema.py +4 -10
  24. datachain/data_storage/sqlite.py +7 -1
  25. datachain/data_storage/warehouse.py +6 -4
  26. datachain/{lib/diff.py → diff/__init__.py} +116 -12
  27. datachain/func/__init__.py +3 -2
  28. datachain/func/conditional.py +74 -0
  29. datachain/func/func.py +5 -1
  30. datachain/lib/arrow.py +7 -1
  31. datachain/lib/dc.py +8 -3
  32. datachain/lib/file.py +16 -5
  33. datachain/lib/hf.py +1 -1
  34. datachain/lib/listing.py +19 -1
  35. datachain/lib/pytorch.py +57 -13
  36. datachain/lib/signal_schema.py +89 -27
  37. datachain/lib/udf.py +82 -40
  38. datachain/listing.py +1 -0
  39. datachain/progress.py +20 -3
  40. datachain/query/dataset.py +122 -93
  41. datachain/query/dispatch.py +22 -16
  42. datachain/studio.py +58 -38
  43. datachain/utils.py +14 -3
  44. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/METADATA +9 -9
  45. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/RECORD +49 -37
  46. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/WHEEL +1 -1
  47. datachain/cli.py +0 -1475
  48. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/LICENSE +0 -0
  49. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/entry_points.txt +0 -0
  50. {datachain-0.8.3.dist-info → datachain-0.8.5.dist-info}/top_level.txt +0 -0
datachain/studio.py CHANGED
@@ -20,21 +20,7 @@ POST_LOGIN_MESSAGE = (
20
20
  )
21
21
 
22
22
 
23
- def process_studio_cli_args(args: "Namespace"): # noqa: PLR0911
24
- if args.cmd == "login":
25
- return login(args)
26
- if args.cmd == "logout":
27
- return logout()
28
- if args.cmd == "token":
29
- return token()
30
- if args.cmd == "datasets":
31
- rows = [
32
- {"Name": name, "Version": version}
33
- for name, version in list_datasets(args.team)
34
- ]
35
- print(tabulate(rows, headers="keys"))
36
- return 0
37
-
23
+ def process_jobs_args(args: "Namespace"):
38
24
  if args.cmd == "run":
39
25
  return create_job(
40
26
  args.query_file,
@@ -50,6 +36,25 @@ def process_studio_cli_args(args: "Namespace"): # noqa: PLR0911
50
36
 
51
37
  if args.cmd == "cancel":
52
38
  return cancel_job(args.job_id, args.team)
39
+ if args.cmd == "logs":
40
+ return show_job_logs(args.job_id, args.team)
41
+ raise DataChainError(f"Unknown command '{args.cmd}'.")
42
+
43
+
44
+ def process_studio_cli_args(args: "Namespace"):
45
+ if args.cmd == "login":
46
+ return login(args)
47
+ if args.cmd == "logout":
48
+ return logout()
49
+ if args.cmd == "token":
50
+ return token()
51
+ if args.cmd == "dataset":
52
+ rows = [
53
+ {"Name": name, "Version": version}
54
+ for name, version in list_datasets(args.team)
55
+ ]
56
+ print(tabulate(rows, headers="keys"))
57
+ return 0
53
58
 
54
59
  if args.cmd == "team":
55
60
  return set_team(args)
@@ -187,6 +192,32 @@ def save_config(hostname, token):
187
192
  return config.config_file()
188
193
 
189
194
 
195
+ def show_logs_from_client(client, job_id):
196
+ # Sync usage
197
+ async def _run():
198
+ async for message in client.tail_job_logs(job_id):
199
+ if "logs" in message:
200
+ for log in message["logs"]:
201
+ print(log["message"], end="")
202
+ elif "job" in message:
203
+ print(f"\n>>>> Job is now in {message['job']['status']} status.")
204
+
205
+ asyncio.run(_run())
206
+
207
+ response = client.dataset_job_versions(job_id)
208
+ if not response.ok:
209
+ raise_remote_error(response.message)
210
+
211
+ response_data = response.data
212
+ if response_data:
213
+ dataset_versions = response_data.get("dataset_versions", [])
214
+ print("\n\n>>>> Dataset versions created during the job:")
215
+ for version in dataset_versions:
216
+ print(f" - {version.get('dataset_name')}@v{version.get('version')}")
217
+ else:
218
+ print("No dataset versions created during the job.")
219
+
220
+
190
221
  def create_job(
191
222
  query_file: str,
192
223
  team_name: Optional[str],
@@ -236,29 +267,7 @@ def create_job(
236
267
  print("Open the job in Studio at", response.data.get("job", {}).get("url"))
237
268
  print("=" * 40)
238
269
 
239
- # Sync usage
240
- async def _run():
241
- async for message in client.tail_job_logs(job_id):
242
- if "logs" in message:
243
- for log in message["logs"]:
244
- print(log["message"], end="")
245
- elif "job" in message:
246
- print(f"\n>>>> Job is now in {message['job']['status']} status.")
247
-
248
- asyncio.run(_run())
249
-
250
- response = client.dataset_job_versions(job_id)
251
- if not response.ok:
252
- raise_remote_error(response.message)
253
-
254
- response_data = response.data
255
- if response_data:
256
- dataset_versions = response_data.get("dataset_versions", [])
257
- print("\n\n>>>> Dataset versions created during the job:")
258
- for version in dataset_versions:
259
- print(f" - {version.get('dataset_name')}@v{version.get('version')}")
260
- else:
261
- print("No dataset versions created during the job.")
270
+ show_logs_from_client(client, job_id)
262
271
 
263
272
 
264
273
  def upload_files(client: StudioClient, files: list[str]) -> list[str]:
@@ -293,3 +302,14 @@ def cancel_job(job_id: str, team_name: Optional[str]):
293
302
  raise_remote_error(response.message)
294
303
 
295
304
  print(f"Job {job_id} canceled")
305
+
306
+
307
+ def show_job_logs(job_id: str, team_name: Optional[str]):
308
+ token = Config().read().get("studio", {}).get("token")
309
+ if not token:
310
+ raise DataChainError(
311
+ "Not logged in to Studio. Log in with 'datachain studio login'."
312
+ )
313
+
314
+ client = StudioClient(team=team_name)
315
+ show_logs_from_client(client, job_id)
datachain/utils.py CHANGED
@@ -9,6 +9,7 @@ import stat
9
9
  import sys
10
10
  import time
11
11
  from collections.abc import Iterable, Iterator, Sequence
12
+ from contextlib import contextmanager
12
13
  from datetime import date, datetime, timezone
13
14
  from itertools import chain, islice
14
15
  from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
@@ -22,6 +23,7 @@ from pydantic import BaseModel
22
23
 
23
24
  if TYPE_CHECKING:
24
25
  import pandas as pd
26
+ from typing_extensions import Self
25
27
 
26
28
  NUL = b"\0"
27
29
  TIME_ZERO = datetime.fromtimestamp(0, tz=timezone.utc)
@@ -30,10 +32,10 @@ APPNAME = "datachain"
30
32
  APPAUTHOR = "iterative"
31
33
  ENV_DATACHAIN_SYSTEM_CONFIG_DIR = "DATACHAIN_SYSTEM_CONFIG_DIR"
32
34
  ENV_DATACHAIN_GLOBAL_CONFIG_DIR = "DATACHAIN_GLOBAL_CONFIG_DIR"
33
- STUDIO_URL = "https://studio.dvc.ai"
35
+ STUDIO_URL = "https://studio.datachain.ai"
34
36
 
35
37
 
36
- T = TypeVar("T", bound="DataChainDir")
38
+ T = TypeVar("T")
37
39
 
38
40
 
39
41
  class DataChainDir:
@@ -90,7 +92,7 @@ class DataChainDir:
90
92
  return osp.join(root_dir, cls.DEFAULT)
91
93
 
92
94
  @classmethod
93
- def find(cls: type[T], create: bool = True) -> T:
95
+ def find(cls, create: bool = True) -> "Self":
94
96
  try:
95
97
  root = os.environ[cls.ENV_VAR]
96
98
  except KeyError:
@@ -479,3 +481,12 @@ def row_to_nested_dict(
479
481
  for h, v in zip(headers, row):
480
482
  nested_dict_path_set(result, h, v)
481
483
  return result
484
+
485
+
486
+ @contextmanager
487
+ def safe_closing(thing: T) -> Iterator[T]:
488
+ try:
489
+ yield thing
490
+ finally:
491
+ if hasattr(thing, "close"):
492
+ thing.close()
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: datachain
3
- Version: 0.8.3
3
+ Version: 0.8.5
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License: Apache-2.0
@@ -50,7 +50,7 @@ Requires-Dist: websockets
50
50
  Provides-Extra: docs
51
51
  Requires-Dist: mkdocs>=1.5.2; extra == "docs"
52
52
  Requires-Dist: mkdocs-gen-files>=0.5.0; extra == "docs"
53
- Requires-Dist: mkdocs-material>=9.3.1; extra == "docs"
53
+ Requires-Dist: mkdocs-material==9.5.22; extra == "docs"
54
54
  Requires-Dist: mkdocs-section-index>=0.3.6; extra == "docs"
55
55
  Requires-Dist: mkdocstrings-python>=1.6.3; extra == "docs"
56
56
  Requires-Dist: mkdocs-literate-nav>=0.6.1; extra == "docs"
@@ -84,7 +84,7 @@ Requires-Dist: requests-mock; extra == "tests"
84
84
  Requires-Dist: scipy; extra == "tests"
85
85
  Provides-Extra: dev
86
86
  Requires-Dist: datachain[docs,tests]; extra == "dev"
87
- Requires-Dist: mypy==1.14.0; extra == "dev"
87
+ Requires-Dist: mypy==1.14.1; extra == "dev"
88
88
  Requires-Dist: types-python-dateutil; extra == "dev"
89
89
  Requires-Dist: types-pytz; extra == "dev"
90
90
  Requires-Dist: types-PyYAML; extra == "dev"
@@ -95,11 +95,11 @@ Requires-Dist: datachain[tests]; extra == "examples"
95
95
  Requires-Dist: defusedxml; extra == "examples"
96
96
  Requires-Dist: accelerate; extra == "examples"
97
97
  Requires-Dist: unstructured_ingest[embed-huggingface]; extra == "examples"
98
- Requires-Dist: unstructured[pdf]; extra == "examples"
99
- Requires-Dist: pdfplumber==0.11.4; extra == "examples"
98
+ Requires-Dist: unstructured[pdf]<0.16.12; extra == "examples"
99
+ Requires-Dist: pdfplumber==0.11.5; extra == "examples"
100
100
  Requires-Dist: huggingface_hub[hf_transfer]; extra == "examples"
101
101
  Requires-Dist: onnx==1.16.1; extra == "examples"
102
- Requires-Dist: ultralytics==8.3.53; extra == "examples"
102
+ Requires-Dist: ultralytics==8.3.58; extra == "examples"
103
103
 
104
104
  ================
105
105
  |logo| DataChain
@@ -134,7 +134,7 @@ Use Cases
134
134
  1. **ETL.** Pythonic framework for describing and running unstructured data transformations
135
135
  and enrichments, applying models to data, including LLMs.
136
136
  2. **Analytics.** DataChain dataset is a table that combines all the information about data
137
- objects in one place + it provides dataframe-like API and vecrorized engine to do analytics
137
+ objects in one place + it provides dataframe-like API and vectorized engine to do analytics
138
138
  on these tables at scale.
139
139
  3. **Versioning.** DataChain doesn't store, require moving or copying data (unlike DVC).
140
140
  Perfect use case is a bucket with thousands or millions of images, videos, audio, PDFs.
@@ -270,7 +270,7 @@ DataChain Studio Platform
270
270
 
271
271
  `DataChain Studio`_ is a proprietary solution for teams that offers:
272
272
 
273
- - **Centralized dataset registry** to manage data, code and dependency
273
+ - **Centralized dataset registry** to manage data, code and
274
274
  dependencies in one place.
275
275
  - **Data Lineage** for data sources as well as derivative dataset.
276
276
  - **UI for Multimodal Data** like images, videos, and PDFs.
@@ -1,73 +1,85 @@
1
1
  datachain/__init__.py,sha256=ofPJ6B-d-ybSDRrE7J6wqF_ZRAB2W9U8l-eeuBtqPLg,865
2
2
  datachain/__main__.py,sha256=hG3Y4ARGEqe1AWwNMd259rBlqtphx1Wk39YbueQ0yV8,91
3
- datachain/asyn.py,sha256=5aKrjnUxk0mtnZeFKNJd1DCE0MsnSoyJBZkr0y9H_a0,9313
4
- datachain/cache.py,sha256=4xI0Ct2gVXuLZPqKdbjmfb_KD2klou-9WnL1WNhIuCA,3077
5
- datachain/cli.py,sha256=gNXVoMfKINUhKjOpYN48tpyNBK13M0hkQWqra4jNSJQ,43137
6
- datachain/cli_utils.py,sha256=jrn9ejGXjybeO1ur3fjdSiAyCHZrX0qsLLbJzN9ErPM,2418
3
+ datachain/asyn.py,sha256=RH_jFwJcTXxhEFomaI9yL6S3Onau6NZ6FSKfKFGtrJE,9689
4
+ datachain/cache.py,sha256=7ABXvxhuYmXPymC_MilxxUk3iIr2y5s2FqCmh4uacaQ,3651
7
5
  datachain/config.py,sha256=g8qbNV0vW2VEKpX-dGZ9pAn0DAz6G2ZFcr7SAV3PoSM,4272
8
6
  datachain/dataset.py,sha256=5HtqZBRaaToa_C74g62bACjBaCRf2Y6BDgIACLhK1ZA,19161
9
7
  datachain/error.py,sha256=bxAAL32lSeMgzsQDEHbGTGORj-mPzzpCRvWDPueJNN4,1092
10
8
  datachain/job.py,sha256=Jt4sNutMHJReaGsj3r3scueN5aESLGfhimAa8pUP7Is,1271
11
- datachain/listing.py,sha256=WdiWMVa0xZ-LtR3SJ0gFLgYUI6VaLI0DSEE_KvfikXs,7582
9
+ datachain/listing.py,sha256=1v4ryVp1EbodyA-bmfFqWHWvykfd6ww33pp9pEbozo8,7607
12
10
  datachain/node.py,sha256=HSpjBUBQBWXUUpbUEq839dsSc5KR2O8ww1Udl4jQemY,6023
13
11
  datachain/nodes_fetcher.py,sha256=ILMzUW5o4_6lUOVrLDC9gJPCXfcgKnMG68plrc7dAOA,1113
14
12
  datachain/nodes_thread_pool.py,sha256=uPo-xl8zG5m9YgODjPFBpbcqqHjI-dcxH87yAbj_qco,3192
15
- datachain/progress.py,sha256=5KotcvvzAUL_RF0GEj4JY0IB1lyImnmHxe89YkT1XO4,4330
13
+ datachain/progress.py,sha256=V-TSrzrbmSkxegKxvXmNiGxpfBEL_XM26iVfSfbJJ-c,4962
16
14
  datachain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- datachain/studio.py,sha256=BegIXunW1n-sZtHSe3a30Mw2MXexVGRn_GU-OzjRRKM,8725
15
+ datachain/studio.py,sha256=LFSX-HDRiceZDqc4pfy6q97xoejQCeWmuUGomwmOH9Y,9315
18
16
  datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
19
- datachain/utils.py,sha256=9iP8RGm3MHemj13qt1VxRGYAsA6v-627M22o0fr76_M,13906
17
+ datachain/utils.py,sha256=LBeg-9n48saBTHSPk7u_j-kjJnPUAq5Oyps_peSaqlM,14128
20
18
  datachain/catalog/__init__.py,sha256=g2iAAFx_gEIrqshXlhSEbrc8qDaEH11cjU40n3CHDz4,409
21
- datachain/catalog/catalog.py,sha256=ixXJKftUIG_ZBPdie1dJAPPHddWV6HZwb3GO-TRHtxY,60103
19
+ datachain/catalog/catalog.py,sha256=tPE5aqA6rj0T19JeQdb6A8nHy76R7WwOiQMhWrUfQK8,60511
22
20
  datachain/catalog/datasource.py,sha256=IkGMh0Ttg6Q-9DWfU_H05WUnZepbGa28HYleECi6K7I,1353
23
21
  datachain/catalog/loader.py,sha256=HA_mBC7q_My8j2WnSvIjUGuJpl6SIdg5vvy_lagxJlA,5733
22
+ datachain/cli/__init__.py,sha256=ywf3C552rQeXAW7xemodYqxJb1pAeVQulyCJSr7xiCk,8380
23
+ datachain/cli/utils.py,sha256=jEoqY0agU3AZ-VQBpyieDKIlk7j3sumtlHE3OgbAzdU,3038
24
+ datachain/cli/commands/__init__.py,sha256=uc77ggTRWrq-w1AVsH3Muy6v1ATkNsXUBPIRaOFgNus,533
25
+ datachain/cli/commands/datasets.py,sha256=0a311oIeKPtRxtoJE0Ui5-y7PEtEl-YEsshjSb5shDU,3557
26
+ datachain/cli/commands/du.py,sha256=9edEzDEs98K2VYk8Wf-ZMpUzALcgm9uD6YtoqbvtUGU,391
27
+ datachain/cli/commands/index.py,sha256=eglNaIe1yyIadUHHumjtNbgIjht6kme7SS7xE3YHR88,198
28
+ datachain/cli/commands/ls.py,sha256=Wb8hXyBwyhb62Zk6ZhNFPFrj2lJhdbRcnBQQkgL_qyw,5174
29
+ datachain/cli/commands/misc.py,sha256=c0DmkOLwcDI2YhA8ArOuLJk6aGzSMZCiKL_E2JGibVE,600
30
+ datachain/cli/commands/query.py,sha256=2S7hQxialt1fkbocxi6JXZI6jS5QnFrD1aOjKgZkzfI,1471
31
+ datachain/cli/commands/show.py,sha256=RVb_7Kjd1kzqTxRKYFvmD04LaJHOtrCc4FYMyc-ZEYw,1149
32
+ datachain/cli/parser/__init__.py,sha256=MqtK-IsQlwGqQN_tebbBwZkDJgE4EEjpTctubueQQLA,15489
33
+ datachain/cli/parser/job.py,sha256=KIs4_yIcfr09RqG5Bx7YAd-QlUs7IznUhf34OxX1z2c,3569
34
+ datachain/cli/parser/studio.py,sha256=V3LjaN8gexpMOHdshSCgfwR0LJswE4te0PLqARwwlPA,4044
35
+ datachain/cli/parser/utils.py,sha256=exnlrEQlEa5q0Jh4w_g-1O4niyDixsDpqa1DoIQewok,1590
24
36
  datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
25
- datachain/client/azure.py,sha256=D-mfLtpiq6O-DaSs-ofEEYhjIZBNfgRw1l9R7UgxEM4,3055
37
+ datachain/client/azure.py,sha256=lK2yg24doplYsR28CAG9eNr34MJjkoYplT1Urcf0EOQ,3216
26
38
  datachain/client/fileslice.py,sha256=bT7TYco1Qe3bqoc8aUkUZcPdPofJDHlryL5BsTn9xsY,3021
27
- datachain/client/fsspec.py,sha256=rr6-M1iu30x8PAXpOD84U2Vh4CHU0-SdfJFdVZF3ouA,13650
28
- datachain/client/gcs.py,sha256=MI94GXpCRqAlaF56HNrzQbXA-yR7bn2FOBPzO-lG_SI,4947
39
+ datachain/client/fsspec.py,sha256=ZelCVAuPnSUYuMD-l7IUsbIKNmWzTm6PKdrlK9Bw5xw,13907
40
+ datachain/client/gcs.py,sha256=-KsOrA_SPS9xCQtizUcI3Iy9lMSY8iVxUSPINOWj7i4,5109
29
41
  datachain/client/hf.py,sha256=XeVJVbiNViZCpn3sfb90Fr8SYO3BdLmfE3hOWMoqInE,951
30
42
  datachain/client/local.py,sha256=iHQKh-HhoNzqZ2yaiuIfZWGXtt_X9FMSA-TN_03zjPc,4708
31
- datachain/client/s3.py,sha256=67XISS6tW9bnhlbRtKJEAYd_JQvtLHqdPBxm8ySrJl8,6440
43
+ datachain/client/s3.py,sha256=qPwpHTD934WypEbetPgn0uAiQ31_mTitCVeQr5QkDc0,6965
32
44
  datachain/data_storage/__init__.py,sha256=9Wit-oe5P46V7CJQTD0BJ5MhOa2Y9h3ddJ4VWTe-Lec,273
33
- datachain/data_storage/db_engine.py,sha256=81Ol1of9TTTzD97ORajCnP366Xz2mEJt6C-kTUCaru4,3406
45
+ datachain/data_storage/db_engine.py,sha256=n8ojCbvVMPY2e3SG8fUaaD0b9GkVfpl_Naa_6EiHfWg,3788
34
46
  datachain/data_storage/job.py,sha256=w-7spowjkOa1P5fUVtJou3OltT0L48P0RYWZ9rSJ9-s,383
35
47
  datachain/data_storage/metastore.py,sha256=hfTITcesE9XlUTxcCcdDyWGGep-QSjJL9DUxko5QCeI,37524
36
- datachain/data_storage/schema.py,sha256=-QVlRvD0dfu-ZFUxylEoSnLJLnleMEjVlcAb2OGu-AY,9895
48
+ datachain/data_storage/schema.py,sha256=8np_S6Ltq7WXfcqpoSeFPryPS7cipdbiSP6UnKJkAac,9516
37
49
  datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
38
- datachain/data_storage/sqlite.py,sha256=iJv1QxwVifOowtYhIDqYVoea21dvkQIdxklGNIend3c,22961
39
- datachain/data_storage/warehouse.py,sha256=CMW36ZNrAzoZ003xGkdnIxC7S0PnQxC2588iUMKI9SM,30779
40
- datachain/func/__init__.py,sha256=TG6JHFKtLi06Nd5iLszXIflEq-VKZcKMdgo_KiQ8SGQ,1055
50
+ datachain/data_storage/sqlite.py,sha256=hz6ZBxhEID1AroY5Xs3YbgJf_o9-4JiG2OE5yN5Ci1o,23176
51
+ datachain/data_storage/warehouse.py,sha256=gFAzkt_lNF0KoKylwtmQ9sLg4Soc6AVho0nvkUX67_0,30823
52
+ datachain/diff/__init__.py,sha256=OapNRBsyGDOQHelefUEoXoFHRWCJuBnhvD0ibebKvBc,10486
53
+ datachain/func/__init__.py,sha256=8WWvzWYtOzXmAC1fOMegyoJ-rFnpAca_5UW4gy8BVsk,1077
41
54
  datachain/func/aggregate.py,sha256=7_IPrIwb2XSs3zG4iOr1eTvzn6kNVe2mkzvNzjusDHk,10942
42
55
  datachain/func/array.py,sha256=zHDNWuWLA7HVa9FEvQeHhVi00_xqenyleTqcLwkXWBI,5477
43
56
  datachain/func/base.py,sha256=wA0sBQAVyN9LPxoo7Ox83peS0zUVnyuKxukwAcjGLfY,534
44
- datachain/func/conditional.py,sha256=mQroxsoExpBW84Zm5dAYP4OpBblWmzfnF2qJq9rba54,2223
45
- datachain/func/func.py,sha256=mJ_rOXMpoqnK4-d5eF9boSMx5hWzgKoMLPGpZQqLAfw,15222
57
+ datachain/func/conditional.py,sha256=AfvGQKBFOJ-wkmDTH0P7pmq42Zf1DRcYRsLGurdAiJE,4766
58
+ datachain/func/func.py,sha256=4FJYMqeGD6xNe5ahrFgfthi0DTFb5w3QDLlXxbpHZjU,15371
46
59
  datachain/func/numeric.py,sha256=gMe1Ks0dqQKHkjcpvj7I5S-neECzQ_gltPQLNoaWOyo,5632
47
60
  datachain/func/path.py,sha256=mqN_mfkwv44z2II7DMTp_fGGw95hmTCNls_TOFNpr4k,3155
48
61
  datachain/func/random.py,sha256=pENOLj9rSmWfGCnOsUIaCsVC5486zQb66qfQvXaz9Z4,452
49
62
  datachain/func/string.py,sha256=8az3BTeezlaZt6NW-54GWX7WSosAOVMbTr6bXIYyJq4,5958
50
63
  datachain/func/window.py,sha256=0MB1yjpVbwOrl_WNLZ8V3jkJz3o0XlYinpAcZQJuxiA,1688
51
64
  datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- datachain/lib/arrow.py,sha256=33Od_XECCfWR9PUDBdevSooXS4mpMdPx_hoMLjpaELU,9734
65
+ datachain/lib/arrow.py,sha256=N1s59qNLtkpGRk400pztuukzekC_Yt_hvNfhul7Rf_Y,9902
53
66
  datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
54
67
  datachain/lib/data_model.py,sha256=zS4lmXHVBXc9ntcyea2a1CRLXGSAN_0glXcF88CohgY,2685
55
68
  datachain/lib/dataset_info.py,sha256=IjdF1E0TQNOq9YyynfWiCFTeZpbyGfyJvxgJY4YN810,2493
56
- datachain/lib/dc.py,sha256=UhyNLYVuCPJPz-EamMVPFjYwzJzbFrDzXvb07PscykI,91015
57
- datachain/lib/diff.py,sha256=Yurzyi7PzZzY80HOnVTpwtbWzSJ1LqN8NgZWwZOh_UU,6732
58
- datachain/lib/file.py,sha256=KeccxOulTQCLitdHZoTaq96xpE-5kmWZCrT9X9bRkD0,15049
59
- datachain/lib/hf.py,sha256=a-zFpDmZIR4r8dlNNTjfpAKSnuJ9xyRXlgcdENiXt3E,5864
69
+ datachain/lib/dc.py,sha256=qwZzHQ0blx3nddmNIHjRYaGcsDfoAVIhWYEYeRq8p4Q,91234
70
+ datachain/lib/file.py,sha256=VGC5Bj5BGLIj-6KOICP_H7IbRhYsKuGoh293GCmJCfs,15440
71
+ datachain/lib/hf.py,sha256=CfRbT3VQ8_siLQ0tFuvNwx4n4D2m4AfEjJ9MKO7Ukww,5877
60
72
  datachain/lib/image.py,sha256=AMXYwQsmarZjRbPCZY3M1jDsM2WAB_b3cTY4uOIuXNU,2675
61
- datachain/lib/listing.py,sha256=8OPAJZbjPIGQ7qJPyfJEI1s9j9tP0GkKfyHebjQxPx0,6092
73
+ datachain/lib/listing.py,sha256=6TRVCoXzC83wLFSyVOdA90_yxbKUmgcVYgIDSYuixiA,6621
62
74
  datachain/lib/listing_info.py,sha256=9ua40Hw0aiQByUw3oAEeNzMavJYfW0Uhe8YdCTK-m_g,1110
63
75
  datachain/lib/meta_formats.py,sha256=hDPfEkcmiLZOjhBBXuareMdnq65Wj8vZvxjmum6cROM,6377
64
76
  datachain/lib/model_store.py,sha256=DNIv8Y6Jtk1_idNLzIpsThOsdW2BMAudyUCbPUcgcxk,2515
65
- datachain/lib/pytorch.py,sha256=dA3r1JY0wqV_907a1D0lFaEN-7v3fMRpc1ePFE9CnvA,6168
77
+ datachain/lib/pytorch.py,sha256=hExKapbOSA9Bw1DQZd4tMf_xnZ9nCwygSGU9EGUW9Jo,7641
66
78
  datachain/lib/settings.py,sha256=ZELRCTLbi5vzRPiDX6cQ9LLg9TefJ_A05gIGni0lll8,2535
67
- datachain/lib/signal_schema.py,sha256=ziRTctom0-wAqURZfkfG6dc_3P2FcYxKjYsKC49NQ1Q,25415
79
+ datachain/lib/signal_schema.py,sha256=ps5od6zhWtdX3Khx2fwArl2xlGkK8SKi6vCQ6QmbaR0,27404
68
80
  datachain/lib/tar.py,sha256=3WIzao6yD5fbLqXLTt9GhPGNonbFIs_fDRu-9vgLgsA,1038
69
81
  datachain/lib/text.py,sha256=UNHm8fhidk7wdrWqacEWaA6I9ykfYqarQ2URby7jc7M,1261
70
- datachain/lib/udf.py,sha256=Rsf_6mN6qCQVknl99yvi1guta1AMnG9MsoPn14ff5Fc,13609
82
+ datachain/lib/udf.py,sha256=gTdUTa2qKpmVQqkYMotXGUvFjiTCUrqR14FctazDcfc,14995
71
83
  datachain/lib/udf_signature.py,sha256=GXw24A-Olna6DWCdgy2bC-gZh_gLGPQ-KvjuI6pUjC0,7281
72
84
  datachain/lib/utils.py,sha256=QrjVs_oLRXEotOPUYurBJypBFi_ReTJmxcnJeH4j2Uk,1596
73
85
  datachain/lib/vfile.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -89,8 +101,8 @@ datachain/model/ultralytics/pose.py,sha256=71KBTcoST2wcEtsyGXqLVpvUtqbp9gwZGA15p
89
101
  datachain/model/ultralytics/segment.py,sha256=Z1ab0tZRJubSYNH4KkFlzhYeGNTfAyC71KmkQcToHDQ,2760
90
102
  datachain/query/__init__.py,sha256=7DhEIjAA8uZJfejruAVMZVcGFmvUpffuZJwgRqNwe-c,263
91
103
  datachain/query/batch.py,sha256=6w8gzLTmLeylststu-gT5jIqEfi4-djS7_yTYyeo-fw,4190
92
- datachain/query/dataset.py,sha256=1wJuiFgXgtYarJAgLmgQESrvp0ayIQbJUiCZyAe0NkU,54774
93
- datachain/query/dispatch.py,sha256=Uw4highKfs70ioEddSK2zknjpvz_q59OHc8s43nXa_I,12004
104
+ datachain/query/dataset.py,sha256=VL9iyVlX3jvir5XVnVxvfM2msBvxFsJGiwXaKkJIrmY,56148
105
+ datachain/query/dispatch.py,sha256=_1vjeQ1wjUoxlik55k0JkWqQCUfMjgVWmEOyWRkx0dU,12437
94
106
  datachain/query/metrics.py,sha256=r5b0ygYhokbXp8Mg3kCH8iFSRw0jxzyeBe-C-J_bKFc,938
95
107
  datachain/query/params.py,sha256=O_j89mjYRLOwWNhYZl-z7mi-rkdP7WyFmaDufsdTryE,863
96
108
  datachain/query/queue.py,sha256=waqM_KzavU8C-G95-4211Nd4GXna_u2747Chgwtgz2w,3839
@@ -121,9 +133,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
121
133
  datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
122
134
  datachain/toolkit/split.py,sha256=z3zRJNzjWrpPuRw-zgFbCOBKInyYxJew8ygrYQRQLNc,2930
123
135
  datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
124
- datachain-0.8.3.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
125
- datachain-0.8.3.dist-info/METADATA,sha256=gAPCEMlRQirhIDHK61LPuF1NNNaZQxwMlTVG-8fZDnM,11066
126
- datachain-0.8.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
127
- datachain-0.8.3.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
128
- datachain-0.8.3.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
129
- datachain-0.8.3.dist-info/RECORD,,
136
+ datachain-0.8.5.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
+ datachain-0.8.5.dist-info/METADATA,sha256=hwFSeah_bNcAtJvdN_xPnvAFjz17hoK2MCHQbtUZD9I,11064
138
+ datachain-0.8.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
+ datachain-0.8.5.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
+ datachain-0.8.5.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
+ datachain-0.8.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5