datachain 0.8.6__py3-none-any.whl → 0.8.8__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/cache.py CHANGED
@@ -9,8 +9,6 @@ from dvc_objects.fs.local import LocalFileSystem
9
9
  from dvc_objects.fs.utils import remove
10
10
  from fsspec.callbacks import Callback, TqdmCallback
11
11
 
12
- from .progress import Tqdm
13
-
14
12
  if TYPE_CHECKING:
15
13
  from datachain.client import Client
16
14
  from datachain.lib.file import File
@@ -86,9 +84,11 @@ class DataChainCache:
86
84
  size = file.size
87
85
  if size < 0:
88
86
  size = await client.get_size(from_path, version_id=file.version)
87
+ from tqdm.auto import tqdm
88
+
89
89
  cb = callback or TqdmCallback(
90
90
  tqdm_kwargs={"desc": odb_fs.name(from_path), "bytes": True, "leave": False},
91
- tqdm_cls=Tqdm,
91
+ tqdm_cls=tqdm,
92
92
  size=size,
93
93
  )
94
94
  try:
@@ -28,7 +28,7 @@ import requests
28
28
  import sqlalchemy as sa
29
29
  import yaml
30
30
  from sqlalchemy import Column
31
- from tqdm import tqdm
31
+ from tqdm.auto import tqdm
32
32
 
33
33
  from datachain.cache import DataChainCache
34
34
  from datachain.client import Client
datachain/client/azure.py CHANGED
@@ -2,7 +2,7 @@ from typing import Any, Optional
2
2
  from urllib.parse import parse_qs, urlsplit, urlunsplit
3
3
 
4
4
  from adlfs import AzureBlobFileSystem
5
- from tqdm import tqdm
5
+ from tqdm.auto import tqdm
6
6
 
7
7
  from datachain.lib.file import File
8
8
 
@@ -23,7 +23,7 @@ from botocore.exceptions import ClientError
23
23
  from dvc_objects.fs.system import reflink
24
24
  from fsspec.asyn import get_loop, sync
25
25
  from fsspec.callbacks import DEFAULT_CALLBACK, Callback
26
- from tqdm import tqdm
26
+ from tqdm.auto import tqdm
27
27
 
28
28
  from datachain.cache import DataChainCache
29
29
  from datachain.client.fileslice import FileWrapper
datachain/client/gcs.py CHANGED
@@ -7,7 +7,7 @@ from typing import Any, Optional, cast
7
7
 
8
8
  from dateutil.parser import isoparse
9
9
  from gcsfs import GCSFileSystem
10
- from tqdm import tqdm
10
+ from tqdm.auto import tqdm
11
11
 
12
12
  from datachain.lib.file import File
13
13
 
datachain/client/s3.py CHANGED
@@ -5,7 +5,7 @@ from urllib.parse import parse_qs, urlsplit, urlunsplit
5
5
 
6
6
  from botocore.exceptions import NoCredentialsError
7
7
  from s3fs import S3FileSystem
8
- from tqdm import tqdm
8
+ from tqdm.auto import tqdm
9
9
 
10
10
  from datachain.lib.file import File
11
11
 
@@ -32,17 +32,20 @@ class ClientS3(Client):
32
32
  if "aws_token" in kwargs:
33
33
  kwargs.setdefault("token", kwargs.pop("aws_token"))
34
34
 
35
+ # We want to use newer v4 signature version since regions added after
36
+ # 2014 are not going to support v2 which is the older one.
37
+ # All regions support v4.
38
+ kwargs.setdefault("config_kwargs", {}).setdefault("signature_version", "s3v4")
39
+
40
+ if "region_name" in kwargs:
41
+ kwargs["config_kwargs"].setdefault("region_name", kwargs.pop("region_name"))
42
+
35
43
  # remove this `if` when https://github.com/fsspec/s3fs/pull/929 lands
36
44
  if not os.environ.get("AWS_REGION") and not os.environ.get("AWS_ENDPOINT_URL"):
37
45
  # caching bucket regions to use the right one in signed urls, otherwise
38
46
  # it tries to randomly guess and creates wrong signature
39
47
  kwargs.setdefault("cache_regions", True)
40
48
 
41
- # We want to use newer v4 signature version since regions added after
42
- # 2014 are not going to support v2 which is the older one.
43
- # All regions support v4.
44
- kwargs.setdefault("config_kwargs", {}).setdefault("signature_version", "s3v4")
45
-
46
49
  if not kwargs.get("anon"):
47
50
  try:
48
51
  # Run an inexpensive check to see if credentials are available
@@ -21,7 +21,7 @@ from sqlalchemy.schema import CreateIndex, CreateTable, DropTable
21
21
  from sqlalchemy.sql import func
22
22
  from sqlalchemy.sql.expression import bindparam, cast
23
23
  from sqlalchemy.sql.selectable import Select
24
- from tqdm import tqdm
24
+ from tqdm.auto import tqdm
25
25
 
26
26
  import datachain.sql.sqlite
27
27
  from datachain.data_storage import AbstractDBMetastore, AbstractWarehouse
@@ -14,7 +14,7 @@ import sqlalchemy as sa
14
14
  from sqlalchemy import Table, case, select
15
15
  from sqlalchemy.sql import func
16
16
  from sqlalchemy.sql.expression import true
17
- from tqdm import tqdm
17
+ from tqdm.auto import tqdm
18
18
 
19
19
  from datachain.client import Client
20
20
  from datachain.data_storage.schema import convert_rows_custom_column_types
datachain/lib/arrow.py CHANGED
@@ -7,7 +7,7 @@ import orjson
7
7
  import pyarrow as pa
8
8
  from fsspec.core import split_protocol
9
9
  from pyarrow.dataset import CsvFileFormat, dataset
10
- from tqdm import tqdm
10
+ from tqdm.auto import tqdm
11
11
 
12
12
  from datachain.lib.data_model import dict_to_data_model
13
13
  from datachain.lib.file import ArrowRow, File
datachain/lib/dc.py CHANGED
@@ -1330,19 +1330,27 @@ class DataChain:
1330
1330
 
1331
1331
  Parameters:
1332
1332
  right_ds: Chain to join with.
1333
- on: Predicate or list of Predicates to join on. If both chains have the
1334
- same predicates then this predicate is enough for the join. Otherwise,
1335
- `right_on` parameter has to specify the predicates for the other chain.
1336
- right_on: Optional predicate or list of Predicates
1337
- for the `right_ds` to join.
1333
+ on: Predicate ("column.name", C("column.name"), or Func) or list of
1334
+ Predicates to join on. If both chains have the same predicates then
1335
+ this predicate is enough for the join. Otherwise, `right_on` parameter
1336
+ has to specify the predicates for the other chain.
1337
+ right_on: Optional predicate or list of Predicates for the `right_ds`
1338
+ to join.
1338
1339
  inner (bool): Whether to run inner join or outer join.
1339
- rname (str): name prefix for conflicting signal names.
1340
+ rname (str): Name prefix for conflicting signal names.
1340
1341
 
1341
- Example:
1342
+ Examples:
1342
1343
  ```py
1343
1344
  meta = meta_emd.merge(meta_pq, on=(C.name, C.emd__index),
1344
1345
  right_on=(C.name, C.pq__index))
1345
1346
  ```
1347
+
1348
+ ```py
1349
+ imgs.merge(captions,
1350
+ on=func.path.file_stem(imgs.c("file.path")),
1351
+ right_on=func.path.file_stem(captions.c("file.path"))
1352
+ ```
1353
+ )
1346
1354
  """
1347
1355
  if on is None:
1348
1356
  raise DatasetMergeError(["None"], None, "'on' must be specified")
datachain/lib/hf.py CHANGED
@@ -29,7 +29,7 @@ from io import BytesIO
29
29
  from typing import TYPE_CHECKING, Any, Union
30
30
 
31
31
  import PIL
32
- from tqdm import tqdm
32
+ from tqdm.auto import tqdm
33
33
 
34
34
  from datachain.lib.arrow import arrow_type_mapper
35
35
  from datachain.lib.data_model import DataModel, DataType, dict_to_data_model
datachain/listing.py CHANGED
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Optional
7
7
 
8
8
  from sqlalchemy import Column
9
9
  from sqlalchemy.sql import func
10
- from tqdm import tqdm
10
+ from tqdm.auto import tqdm
11
11
 
12
12
  from datachain.node import DirType, Node, NodeWithPath
13
13
  from datachain.sql.functions import path as pathfunc
datachain/progress.py CHANGED
@@ -1,138 +1,16 @@
1
1
  """Manages progress bars."""
2
2
 
3
3
  import logging
4
- import sys
5
4
  from threading import RLock
6
- from typing import Any, ClassVar
7
5
 
8
6
  from fsspec import Callback
9
7
  from fsspec.callbacks import TqdmCallback
10
- from tqdm import tqdm
11
-
12
- from datachain.utils import env2bool
8
+ from tqdm.auto import tqdm
13
9
 
14
10
  logger = logging.getLogger(__name__)
15
11
  tqdm.set_lock(RLock())
16
12
 
17
13
 
18
- class Tqdm(tqdm):
19
- """
20
- maximum-compatibility tqdm-based progressbars
21
- """
22
-
23
- BAR_FMT_DEFAULT = (
24
- "{percentage:3.0f}% {desc}|{bar}|"
25
- "{postfix[info]}{n_fmt}/{total_fmt}"
26
- " [{elapsed}<{remaining}, {rate_fmt:>11}]"
27
- )
28
- # nested bars should have fixed bar widths to align nicely
29
- BAR_FMT_DEFAULT_NESTED = (
30
- "{percentage:3.0f}%|{bar:10}|{desc:{ncols_desc}.{ncols_desc}}"
31
- "{postfix[info]}{n_fmt}/{total_fmt}"
32
- " [{elapsed}<{remaining}, {rate_fmt:>11}]"
33
- )
34
- BAR_FMT_NOTOTAL = "{desc}{bar:b}|{postfix[info]}{n_fmt} [{elapsed}, {rate_fmt:>11}]"
35
- BYTES_DEFAULTS: ClassVar[dict[str, Any]] = {
36
- "unit": "B",
37
- "unit_scale": True,
38
- "unit_divisor": 1024,
39
- "miniters": 1,
40
- }
41
-
42
- def __init__(
43
- self,
44
- iterable=None,
45
- disable=None,
46
- level=logging.ERROR,
47
- desc=None,
48
- leave=False,
49
- bar_format=None,
50
- bytes=False,
51
- file=None,
52
- total=None,
53
- postfix=None,
54
- **kwargs,
55
- ):
56
- """
57
- bytes : shortcut for
58
- `unit='B', unit_scale=True, unit_divisor=1024, miniters=1`
59
- desc : persists after `close()`
60
- level : effective logging level for determining `disable`;
61
- used only if `disable` is unspecified
62
- disable : If (default: None) or False,
63
- will be determined by logging level.
64
- May be overridden to `True` due to non-TTY status.
65
- Skip override by specifying env var `DATACHAIN_IGNORE_ISATTY`.
66
- kwargs : anything accepted by `tqdm.tqdm()`
67
- """
68
- kwargs = kwargs.copy()
69
- if bytes:
70
- kwargs = self.BYTES_DEFAULTS | kwargs
71
- else:
72
- kwargs.setdefault("unit_scale", total > 999 if total else True)
73
- if file is None:
74
- file = sys.stderr
75
- # auto-disable based on `logger.level`
76
- if not disable:
77
- disable = logger.getEffectiveLevel() > level
78
- # auto-disable based on TTY
79
- if (
80
- not disable
81
- and not env2bool("DATACHAIN_IGNORE_ISATTY")
82
- and hasattr(file, "isatty")
83
- ):
84
- disable = not file.isatty()
85
- super().__init__(
86
- iterable=iterable,
87
- disable=disable,
88
- leave=leave,
89
- desc=desc,
90
- bar_format="!",
91
- lock_args=(False,),
92
- total=total,
93
- **kwargs,
94
- )
95
- self.postfix = postfix or {"info": ""}
96
- if bar_format is None:
97
- if self.__len__():
98
- self.bar_format = (
99
- self.BAR_FMT_DEFAULT_NESTED if self.pos else self.BAR_FMT_DEFAULT
100
- )
101
- else:
102
- self.bar_format = self.BAR_FMT_NOTOTAL
103
- else:
104
- self.bar_format = bar_format
105
- self.refresh()
106
-
107
- def close(self):
108
- self.postfix["info"] = ""
109
- # remove ETA (either unknown or zero); remove completed bar
110
- self.bar_format = self.bar_format.replace("<{remaining}", "").replace(
111
- "|{bar:10}|", " "
112
- )
113
- super().close()
114
-
115
- @property
116
- def format_dict(self):
117
- """inject `ncols_desc` to fill the display width (`ncols`)"""
118
- d = super().format_dict
119
- ncols = d["ncols"] or 80
120
- # assumes `bar_format` has max one of ("ncols_desc" & "ncols_info")
121
-
122
- meter = self.format_meter( # type: ignore[call-arg]
123
- ncols_desc=1, ncols_info=1, **d
124
- )
125
- ncols_left = ncols - len(meter) + 1
126
- ncols_left = max(ncols_left, 0)
127
- if ncols_left:
128
- d["ncols_desc"] = d["ncols_info"] = ncols_left
129
- else:
130
- # work-around for zero-width description
131
- d["ncols_desc"] = d["ncols_info"] = 1
132
- d["prefix"] = ""
133
- return d
134
-
135
-
136
14
  class CombinedDownloadCallback(Callback):
137
15
  def set_size(self, size):
138
16
  # This is a no-op to prevent fsspec's .get_file() from setting the combined
@@ -148,6 +26,8 @@ class TqdmCombinedDownloadCallback(CombinedDownloadCallback, TqdmCallback):
148
26
  self.files_count = 0
149
27
  tqdm_kwargs = tqdm_kwargs or {}
150
28
  tqdm_kwargs.setdefault("postfix", {}).setdefault("files", self.files_count)
29
+ kwargs = kwargs or {}
30
+ kwargs["tqdm_cls"] = tqdm
151
31
  super().__init__(tqdm_kwargs, *args, **kwargs)
152
32
 
153
33
  def increment_file_count(self, n: int = 1) -> None:
@@ -33,6 +33,7 @@ from sqlalchemy.sql.elements import ColumnClause, ColumnElement
33
33
  from sqlalchemy.sql.expression import label
34
34
  from sqlalchemy.sql.schema import TableClause
35
35
  from sqlalchemy.sql.selectable import Select
36
+ from tqdm.auto import tqdm
36
37
 
37
38
  from datachain.asyn import ASYNC_WORKERS, AsyncMapper, OrderedMapper
38
39
  from datachain.catalog.catalog import clone_catalog_with_cache
@@ -366,12 +367,16 @@ def get_download_callback(suffix: str = "", **kwargs) -> CombinedDownloadCallbac
366
367
 
367
368
 
368
369
  def get_processed_callback() -> Callback:
369
- return TqdmCallback({"desc": "Processed", "unit": " rows", "leave": False})
370
+ return TqdmCallback(
371
+ {"desc": "Processed", "unit": " rows", "leave": False}, tqdm_cls=tqdm
372
+ )
370
373
 
371
374
 
372
375
  def get_generated_callback(is_generator: bool = False) -> Callback:
373
376
  if is_generator:
374
- return TqdmCallback({"desc": "Generated", "unit": " rows", "leave": False})
377
+ return TqdmCallback(
378
+ {"desc": "Generated", "unit": " rows", "leave": False}, tqdm_cls=tqdm
379
+ )
375
380
  return DEFAULT_CALLBACK
376
381
 
377
382
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: datachain
3
- Version: 0.8.6
3
+ Version: 0.8.8
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License: Apache-2.0
@@ -1,22 +1,22 @@
1
1
  datachain/__init__.py,sha256=ofPJ6B-d-ybSDRrE7J6wqF_ZRAB2W9U8l-eeuBtqPLg,865
2
2
  datachain/__main__.py,sha256=hG3Y4ARGEqe1AWwNMd259rBlqtphx1Wk39YbueQ0yV8,91
3
3
  datachain/asyn.py,sha256=RH_jFwJcTXxhEFomaI9yL6S3Onau6NZ6FSKfKFGtrJE,9689
4
- datachain/cache.py,sha256=7ABXvxhuYmXPymC_MilxxUk3iIr2y5s2FqCmh4uacaQ,3651
4
+ datachain/cache.py,sha256=8BdTklwLOsDicVXUfriIXsheiYVLxgrC-ElkRhPoHxI,3659
5
5
  datachain/config.py,sha256=g8qbNV0vW2VEKpX-dGZ9pAn0DAz6G2ZFcr7SAV3PoSM,4272
6
6
  datachain/dataset.py,sha256=5HtqZBRaaToa_C74g62bACjBaCRf2Y6BDgIACLhK1ZA,19161
7
7
  datachain/error.py,sha256=bxAAL32lSeMgzsQDEHbGTGORj-mPzzpCRvWDPueJNN4,1092
8
8
  datachain/job.py,sha256=Jt4sNutMHJReaGsj3r3scueN5aESLGfhimAa8pUP7Is,1271
9
- datachain/listing.py,sha256=1v4ryVp1EbodyA-bmfFqWHWvykfd6ww33pp9pEbozo8,7607
9
+ datachain/listing.py,sha256=kTjZq3XUBmReh_P3sBP2n87F87h30FJwGSRgs6S_0TE,7612
10
10
  datachain/node.py,sha256=HSpjBUBQBWXUUpbUEq839dsSc5KR2O8ww1Udl4jQemY,6023
11
11
  datachain/nodes_fetcher.py,sha256=ILMzUW5o4_6lUOVrLDC9gJPCXfcgKnMG68plrc7dAOA,1113
12
12
  datachain/nodes_thread_pool.py,sha256=uPo-xl8zG5m9YgODjPFBpbcqqHjI-dcxH87yAbj_qco,3192
13
- datachain/progress.py,sha256=V-TSrzrbmSkxegKxvXmNiGxpfBEL_XM26iVfSfbJJ-c,4962
13
+ datachain/progress.py,sha256=L14emyupjkwaKEh9KGK4AeRGG0uuCMQwHmD9yWfV8nM,1120
14
14
  datachain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  datachain/studio.py,sha256=LFSX-HDRiceZDqc4pfy6q97xoejQCeWmuUGomwmOH9Y,9315
16
16
  datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
17
17
  datachain/utils.py,sha256=LBeg-9n48saBTHSPk7u_j-kjJnPUAq5Oyps_peSaqlM,14128
18
18
  datachain/catalog/__init__.py,sha256=g2iAAFx_gEIrqshXlhSEbrc8qDaEH11cjU40n3CHDz4,409
19
- datachain/catalog/catalog.py,sha256=tPE5aqA6rj0T19JeQdb6A8nHy76R7WwOiQMhWrUfQK8,60511
19
+ datachain/catalog/catalog.py,sha256=1jtwHVxCRQWJSTz1GjP6qvB2bDo2AosBjouQh3neKaM,60516
20
20
  datachain/catalog/datasource.py,sha256=IkGMh0Ttg6Q-9DWfU_H05WUnZepbGa28HYleECi6K7I,1353
21
21
  datachain/catalog/loader.py,sha256=HA_mBC7q_My8j2WnSvIjUGuJpl6SIdg5vvy_lagxJlA,5733
22
22
  datachain/cli/__init__.py,sha256=ywf3C552rQeXAW7xemodYqxJb1pAeVQulyCJSr7xiCk,8380
@@ -34,21 +34,21 @@ datachain/cli/parser/job.py,sha256=KIs4_yIcfr09RqG5Bx7YAd-QlUs7IznUhf34OxX1z2c,3
34
34
  datachain/cli/parser/studio.py,sha256=V3LjaN8gexpMOHdshSCgfwR0LJswE4te0PLqARwwlPA,4044
35
35
  datachain/cli/parser/utils.py,sha256=exnlrEQlEa5q0Jh4w_g-1O4niyDixsDpqa1DoIQewok,1590
36
36
  datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
37
- datachain/client/azure.py,sha256=lK2yg24doplYsR28CAG9eNr34MJjkoYplT1Urcf0EOQ,3216
37
+ datachain/client/azure.py,sha256=ma6fJcnveG8wpNy1PSrN5hgvmRdCj8Sf3RKjfd3qCyM,3221
38
38
  datachain/client/fileslice.py,sha256=bT7TYco1Qe3bqoc8aUkUZcPdPofJDHlryL5BsTn9xsY,3021
39
- datachain/client/fsspec.py,sha256=ZelCVAuPnSUYuMD-l7IUsbIKNmWzTm6PKdrlK9Bw5xw,13907
40
- datachain/client/gcs.py,sha256=-KsOrA_SPS9xCQtizUcI3Iy9lMSY8iVxUSPINOWj7i4,5109
39
+ datachain/client/fsspec.py,sha256=7gysN8NjFXKEgu1-gy_PCiupByV-UGh3AEkz-jF1hVI,13912
40
+ datachain/client/gcs.py,sha256=TY5K5INORKknTnoWDYv0EUztVLmuY1hHmdf2wUB_9uE,5114
41
41
  datachain/client/hf.py,sha256=XeVJVbiNViZCpn3sfb90Fr8SYO3BdLmfE3hOWMoqInE,951
42
42
  datachain/client/local.py,sha256=iHQKh-HhoNzqZ2yaiuIfZWGXtt_X9FMSA-TN_03zjPc,4708
43
- datachain/client/s3.py,sha256=SAqnCAz3DtMLjJ7A1A8OZ7wvYuYFZXLioxifteTP-rQ,7153
43
+ datachain/client/s3.py,sha256=l2A4J086ZROKKHNVXnoBky0OgYYKB0EAr8Y3lObo8GY,7284
44
44
  datachain/data_storage/__init__.py,sha256=9Wit-oe5P46V7CJQTD0BJ5MhOa2Y9h3ddJ4VWTe-Lec,273
45
45
  datachain/data_storage/db_engine.py,sha256=n8ojCbvVMPY2e3SG8fUaaD0b9GkVfpl_Naa_6EiHfWg,3788
46
46
  datachain/data_storage/job.py,sha256=w-7spowjkOa1P5fUVtJou3OltT0L48P0RYWZ9rSJ9-s,383
47
47
  datachain/data_storage/metastore.py,sha256=hfTITcesE9XlUTxcCcdDyWGGep-QSjJL9DUxko5QCeI,37524
48
48
  datachain/data_storage/schema.py,sha256=8np_S6Ltq7WXfcqpoSeFPryPS7cipdbiSP6UnKJkAac,9516
49
49
  datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
50
- datachain/data_storage/sqlite.py,sha256=hz6ZBxhEID1AroY5Xs3YbgJf_o9-4JiG2OE5yN5Ci1o,23176
51
- datachain/data_storage/warehouse.py,sha256=gFAzkt_lNF0KoKylwtmQ9sLg4Soc6AVho0nvkUX67_0,30823
50
+ datachain/data_storage/sqlite.py,sha256=kSUvChn3bugyh5qUN8cEE6Rvornwh_6fd94ZKKTxLpk,23181
51
+ datachain/data_storage/warehouse.py,sha256=ASKD0mMB8eTvXhMLoUroUypWpN1fVaynSB6k1NZX8lE,30828
52
52
  datachain/diff/__init__.py,sha256=OapNRBsyGDOQHelefUEoXoFHRWCJuBnhvD0ibebKvBc,10486
53
53
  datachain/func/__init__.py,sha256=8WWvzWYtOzXmAC1fOMegyoJ-rFnpAca_5UW4gy8BVsk,1077
54
54
  datachain/func/aggregate.py,sha256=7_IPrIwb2XSs3zG4iOr1eTvzn6kNVe2mkzvNzjusDHk,10942
@@ -62,13 +62,13 @@ datachain/func/random.py,sha256=pENOLj9rSmWfGCnOsUIaCsVC5486zQb66qfQvXaz9Z4,452
62
62
  datachain/func/string.py,sha256=8az3BTeezlaZt6NW-54GWX7WSosAOVMbTr6bXIYyJq4,5958
63
63
  datachain/func/window.py,sha256=0MB1yjpVbwOrl_WNLZ8V3jkJz3o0XlYinpAcZQJuxiA,1688
64
64
  datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- datachain/lib/arrow.py,sha256=N1s59qNLtkpGRk400pztuukzekC_Yt_hvNfhul7Rf_Y,9902
65
+ datachain/lib/arrow.py,sha256=ckxg_5-DvboV_TV8ZZCKcTllwTpJsesnNqLTUJqnSJM,9907
66
66
  datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
67
67
  datachain/lib/data_model.py,sha256=zS4lmXHVBXc9ntcyea2a1CRLXGSAN_0glXcF88CohgY,2685
68
68
  datachain/lib/dataset_info.py,sha256=IjdF1E0TQNOq9YyynfWiCFTeZpbyGfyJvxgJY4YN810,2493
69
- datachain/lib/dc.py,sha256=qwZzHQ0blx3nddmNIHjRYaGcsDfoAVIhWYEYeRq8p4Q,91234
69
+ datachain/lib/dc.py,sha256=kKtFZ2p8BBQJwANgigD9BcUa5v71c4_8YUh7qfOnVbo,91513
70
70
  datachain/lib/file.py,sha256=VGC5Bj5BGLIj-6KOICP_H7IbRhYsKuGoh293GCmJCfs,15440
71
- datachain/lib/hf.py,sha256=CfRbT3VQ8_siLQ0tFuvNwx4n4D2m4AfEjJ9MKO7Ukww,5877
71
+ datachain/lib/hf.py,sha256=DvoI8fv-WkL3FDEuIT80T9WrRs6fXesjbU0bmIDDsNE,5882
72
72
  datachain/lib/image.py,sha256=AMXYwQsmarZjRbPCZY3M1jDsM2WAB_b3cTY4uOIuXNU,2675
73
73
  datachain/lib/listing.py,sha256=6TRVCoXzC83wLFSyVOdA90_yxbKUmgcVYgIDSYuixiA,6621
74
74
  datachain/lib/listing_info.py,sha256=9ua40Hw0aiQByUw3oAEeNzMavJYfW0Uhe8YdCTK-m_g,1110
@@ -101,7 +101,7 @@ datachain/model/ultralytics/pose.py,sha256=71KBTcoST2wcEtsyGXqLVpvUtqbp9gwZGA15p
101
101
  datachain/model/ultralytics/segment.py,sha256=Z1ab0tZRJubSYNH4KkFlzhYeGNTfAyC71KmkQcToHDQ,2760
102
102
  datachain/query/__init__.py,sha256=7DhEIjAA8uZJfejruAVMZVcGFmvUpffuZJwgRqNwe-c,263
103
103
  datachain/query/batch.py,sha256=6w8gzLTmLeylststu-gT5jIqEfi4-djS7_yTYyeo-fw,4190
104
- datachain/query/dataset.py,sha256=VL9iyVlX3jvir5XVnVxvfM2msBvxFsJGiwXaKkJIrmY,56148
104
+ datachain/query/dataset.py,sha256=k-8LCY4I9WH7ePi6lSTxH1zMjXRa7UEUoRE6GatZeOc,56241
105
105
  datachain/query/dispatch.py,sha256=_1vjeQ1wjUoxlik55k0JkWqQCUfMjgVWmEOyWRkx0dU,12437
106
106
  datachain/query/metrics.py,sha256=r5b0ygYhokbXp8Mg3kCH8iFSRw0jxzyeBe-C-J_bKFc,938
107
107
  datachain/query/params.py,sha256=O_j89mjYRLOwWNhYZl-z7mi-rkdP7WyFmaDufsdTryE,863
@@ -133,9 +133,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
133
133
  datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
134
134
  datachain/toolkit/split.py,sha256=z3zRJNzjWrpPuRw-zgFbCOBKInyYxJew8ygrYQRQLNc,2930
135
135
  datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
136
- datachain-0.8.6.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
- datachain-0.8.6.dist-info/METADATA,sha256=rxqKMGu-GmRD4bEx8sYjEq-UaRu9HXEWQUXzmOzNm3Y,11064
138
- datachain-0.8.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
- datachain-0.8.6.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
- datachain-0.8.6.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
- datachain-0.8.6.dist-info/RECORD,,
136
+ datachain-0.8.8.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
+ datachain-0.8.8.dist-info/METADATA,sha256=RjUvN1_Jy8r4j7mZ-vV1GeiZC0dr9RLfXScHe4kZ5k0,11064
138
+ datachain-0.8.8.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
+ datachain-0.8.8.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
+ datachain-0.8.8.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
+ datachain-0.8.8.dist-info/RECORD,,