datachain 0.8.7__py3-none-any.whl → 0.8.9__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/model/pose.py CHANGED
@@ -22,9 +22,9 @@ class Pose(DataModel):
22
22
  def from_list(points: list[list[float]]) -> "Pose":
23
23
  assert len(points) == 2, "Pose must be a list of 2 lists: x and y coordinates."
24
24
  points_x, points_y = points
25
- assert (
26
- len(points_x) == len(points_y) == 17
27
- ), "Pose x and y coordinates must have the same length of 17."
25
+ assert len(points_x) == len(points_y) == 17, (
26
+ "Pose x and y coordinates must have the same length of 17."
27
+ )
28
28
  assert all(
29
29
  isinstance(value, (int, float)) for value in [*points_x, *points_y]
30
30
  ), "Pose coordinates must be floats or integers."
@@ -61,13 +61,13 @@ class Pose3D(DataModel):
61
61
 
62
62
  @staticmethod
63
63
  def from_list(points: list[list[float]]) -> "Pose3D":
64
- assert (
65
- len(points) == 3
66
- ), "Pose3D must be a list of 3 lists: x, y coordinates and visible."
64
+ assert len(points) == 3, (
65
+ "Pose3D must be a list of 3 lists: x, y coordinates and visible."
66
+ )
67
67
  points_x, points_y, points_v = points
68
- assert (
69
- len(points_x) == len(points_y) == len(points_v) == 17
70
- ), "Pose3D x, y coordinates and visible must have the same length of 17."
68
+ assert len(points_x) == len(points_y) == len(points_v) == 17, (
69
+ "Pose3D x, y coordinates and visible must have the same length of 17."
70
+ )
71
71
  assert all(
72
72
  isinstance(value, (int, float))
73
73
  for value in [*points_x, *points_y, *points_v]
@@ -22,13 +22,13 @@ class Segment(DataModel):
22
22
 
23
23
  @staticmethod
24
24
  def from_list(points: list[list[float]], title: str = "") -> "Segment":
25
- assert (
26
- len(points) == 2
27
- ), "Segment must be a list of 2 lists: x and y coordinates."
25
+ assert len(points) == 2, (
26
+ "Segment must be a list of 2 lists: x and y coordinates."
27
+ )
28
28
  points_x, points_y = points
29
- assert len(points_x) == len(
30
- points_y
31
- ), "Segment x and y coordinates must have the same length."
29
+ assert len(points_x) == len(points_y), (
30
+ "Segment x and y coordinates must have the same length."
31
+ )
32
32
  assert all(
33
33
  isinstance(value, (int, float)) for value in [*points_x, *points_y]
34
34
  ), "Segment coordinates must be floats or integers."
datachain/progress.py CHANGED
@@ -1,136 +1,5 @@
1
- """Manages progress bars."""
2
-
3
- import logging
4
- import sys
5
- from threading import RLock
6
- from typing import Any, ClassVar
7
-
8
1
  from fsspec import Callback
9
2
  from fsspec.callbacks import TqdmCallback
10
- from tqdm import tqdm
11
-
12
- from datachain.utils import env2bool
13
-
14
- logger = logging.getLogger(__name__)
15
- tqdm.set_lock(RLock())
16
-
17
-
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
3
 
135
4
 
136
5
  class CombinedDownloadCallback(Callback):
@@ -146,8 +15,6 @@ class CombinedDownloadCallback(Callback):
146
15
  class TqdmCombinedDownloadCallback(CombinedDownloadCallback, TqdmCallback):
147
16
  def __init__(self, tqdm_kwargs=None, *args, **kwargs):
148
17
  self.files_count = 0
149
- tqdm_kwargs = tqdm_kwargs or {}
150
- tqdm_kwargs.setdefault("postfix", {}).setdefault("files", self.files_count)
151
18
  super().__init__(tqdm_kwargs, *args, **kwargs)
152
19
 
153
20
  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
@@ -335,15 +336,16 @@ def process_udf_outputs(
335
336
  for udf_output in udf_results:
336
337
  if not udf_output:
337
338
  continue
338
- for row in udf_output:
339
- cb.relative_update()
340
- rows.append(adjust_outputs(warehouse, row, udf_col_types))
341
- if len(rows) >= batch_size or (
342
- len(rows) % 10 == 0 and psutil.virtual_memory().percent > 80
343
- ):
344
- for row_chunk in batched(rows, batch_size):
345
- warehouse.insert_rows(udf_table, row_chunk)
346
- rows.clear()
339
+ with safe_closing(udf_output):
340
+ for row in udf_output:
341
+ cb.relative_update()
342
+ rows.append(adjust_outputs(warehouse, row, udf_col_types))
343
+ if len(rows) >= batch_size or (
344
+ len(rows) % 10 == 0 and psutil.virtual_memory().percent > 80
345
+ ):
346
+ for row_chunk in batched(rows, batch_size):
347
+ warehouse.insert_rows(udf_table, row_chunk)
348
+ rows.clear()
347
349
 
348
350
  if rows:
349
351
  for row_chunk in batched(rows, batch_size):
@@ -354,7 +356,7 @@ def process_udf_outputs(
354
356
 
355
357
  def get_download_callback(suffix: str = "", **kwargs) -> CombinedDownloadCallback:
356
358
  return TqdmCombinedDownloadCallback(
357
- {
359
+ tqdm_kwargs={
358
360
  "desc": "Download" + suffix,
359
361
  "unit": "B",
360
362
  "unit_scale": True,
@@ -362,16 +364,21 @@ def get_download_callback(suffix: str = "", **kwargs) -> CombinedDownloadCallbac
362
364
  "leave": False,
363
365
  **kwargs,
364
366
  },
367
+ tqdm_cls=tqdm,
365
368
  )
366
369
 
367
370
 
368
371
  def get_processed_callback() -> Callback:
369
- return TqdmCallback({"desc": "Processed", "unit": " rows", "leave": False})
372
+ return TqdmCallback(
373
+ {"desc": "Processed", "unit": " rows", "leave": False}, tqdm_cls=tqdm
374
+ )
370
375
 
371
376
 
372
377
  def get_generated_callback(is_generator: bool = False) -> Callback:
373
378
  if is_generator:
374
- return TqdmCallback({"desc": "Generated", "unit": " rows", "leave": False})
379
+ return TqdmCallback(
380
+ {"desc": "Generated", "unit": " rows", "leave": False}, tqdm_cls=tqdm
381
+ )
375
382
  return DEFAULT_CALLBACK
376
383
 
377
384
 
datachain/studio.py CHANGED
@@ -1,9 +1,8 @@
1
1
  import asyncio
2
2
  import os
3
+ import sys
3
4
  from typing import TYPE_CHECKING, Optional
4
5
 
5
- from tabulate import tabulate
6
-
7
6
  from datachain.catalog.catalog import raise_remote_error
8
7
  from datachain.config import Config, ConfigLevel
9
8
  from datachain.dataset import QUERY_DATASET_PREFIX
@@ -21,6 +20,13 @@ POST_LOGIN_MESSAGE = (
21
20
 
22
21
 
23
22
  def process_jobs_args(args: "Namespace"):
23
+ if args.cmd is None:
24
+ print(
25
+ f"Use 'datachain {args.command} --help' to see available options",
26
+ file=sys.stderr,
27
+ )
28
+ return 1
29
+
24
30
  if args.cmd == "run":
25
31
  return create_job(
26
32
  args.query_file,
@@ -42,19 +48,19 @@ def process_jobs_args(args: "Namespace"):
42
48
 
43
49
 
44
50
  def process_studio_cli_args(args: "Namespace"):
51
+ if args.cmd is None:
52
+ print(
53
+ f"Use 'datachain {args.command} --help' to see available options",
54
+ file=sys.stderr,
55
+ )
56
+ return 1
57
+
45
58
  if args.cmd == "login":
46
59
  return login(args)
47
60
  if args.cmd == "logout":
48
61
  return logout()
49
62
  if args.cmd == "token":
50
63
  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
58
64
 
59
65
  if args.cmd == "team":
60
66
  return set_team(args)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: datachain
3
- Version: 0.8.7
3
+ Version: 0.8.9
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License: Apache-2.0
@@ -99,7 +99,7 @@ Requires-Dist: unstructured[pdf]<0.16.12; extra == "examples"
99
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.58; extra == "examples"
102
+ Requires-Dist: ultralytics==8.3.61; extra == "examples"
103
103
 
104
104
  ================
105
105
  |logo| DataChain
@@ -189,13 +189,14 @@ Python code:
189
189
 
190
190
  .. code:: py
191
191
 
192
+ import os
192
193
  from mistralai import Mistral
193
194
  from datachain import File, DataChain, Column
194
195
 
195
196
  PROMPT = "Was this dialog successful? Answer in a single word: Success or Failure."
196
197
 
197
198
  def eval_dialogue(file: File) -> bool:
198
- client = Mistral()
199
+ client = Mistral(api_key = os.environ["MISTRAL_API_KEY"])
199
200
  response = client.chat.complete(
200
201
  model="open-mixtral-8x22b",
201
202
  messages=[{"role": "system", "content": PROMPT},
@@ -1,54 +1,54 @@
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=lRzxoYP4Qv2XBwD78sOkmYRzHFpZ2ExVNJF8wAeICtY,770
14
14
  datachain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- datachain/studio.py,sha256=LFSX-HDRiceZDqc4pfy6q97xoejQCeWmuUGomwmOH9Y,9315
15
+ datachain/studio.py,sha256=5LTzr7jNxapQk4aF4ob8ax9zNQ0ShZ26nQtOi4gKToc,9422
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
- datachain/cli/__init__.py,sha256=ywf3C552rQeXAW7xemodYqxJb1pAeVQulyCJSr7xiCk,8380
22
+ datachain/cli/__init__.py,sha256=jnmSov-UIvgz3p-YclkKEhVpvawPVtsd8o5uq7hrRfc,8489
23
23
  datachain/cli/utils.py,sha256=jEoqY0agU3AZ-VQBpyieDKIlk7j3sumtlHE3OgbAzdU,3038
24
24
  datachain/cli/commands/__init__.py,sha256=uc77ggTRWrq-w1AVsH3Muy6v1ATkNsXUBPIRaOFgNus,533
25
- datachain/cli/commands/datasets.py,sha256=0a311oIeKPtRxtoJE0Ui5-y7PEtEl-YEsshjSb5shDU,3557
25
+ datachain/cli/commands/datasets.py,sha256=q1FkvFfeBCkuIuaA8pick0y51ZQuQK89ULUFse5xsu0,3583
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=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
32
+ datachain/cli/parser/__init__.py,sha256=xBvS6FDkD-0TrME9t56C00jCFHD5Ly4SIQLe9JGHlpE,14881
33
+ datachain/cli/parser/job.py,sha256=m_w6DZBMvQu0pu5LHxBVnh9gENPf02jxhwtLqjfhEGU,3199
34
+ datachain/cli/parser/studio.py,sha256=AxCK8Oz5psj3jtl6XFSkGjDoSXuek3nBpPttvNFov9U,2977
35
+ datachain/cli/parser/utils.py,sha256=gDaRll8CugmdFdx9mhdSPVKW3oBoQOVlg6WmNeMgyd8,1597
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
- datachain/client/local.py,sha256=iHQKh-HhoNzqZ2yaiuIfZWGXtt_X9FMSA-TN_03zjPc,4708
43
- datachain/client/s3.py,sha256=bh40oAgnTZ3Diiofk_xU_2iPR0iPHCK8F_WFPHDTizc,7279
42
+ datachain/client/local.py,sha256=_twL9v9vM2q7hyWeETZ9qLJOlG4FhZ0cGg7RteEXHQA,4708
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,24 +62,24 @@ 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=sU6cbjz2W1UuTfez6tCYPfVPJXlmfMDbnaVWPhMu0XU,9906
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
70
- datachain/lib/file.py,sha256=VGC5Bj5BGLIj-6KOICP_H7IbRhYsKuGoh293GCmJCfs,15440
71
- datachain/lib/hf.py,sha256=CfRbT3VQ8_siLQ0tFuvNwx4n4D2m4AfEjJ9MKO7Ukww,5877
69
+ datachain/lib/dc.py,sha256=673Mu2Pqu63o7wrpdvujOmWJhJNbXfnyCSWLS93mJpw,92315
70
+ datachain/lib/file.py,sha256=7posvEFSb7gsLKAiid75dOJRyHTRKOmBAkmBw6RiZyg,16307
71
+ datachain/lib/hf.py,sha256=DvoI8fv-WkL3FDEuIT80T9WrRs6fXesjbU0bmIDDsNE,5882
72
72
  datachain/lib/image.py,sha256=AMXYwQsmarZjRbPCZY3M1jDsM2WAB_b3cTY4uOIuXNU,2675
73
- datachain/lib/listing.py,sha256=6TRVCoXzC83wLFSyVOdA90_yxbKUmgcVYgIDSYuixiA,6621
73
+ datachain/lib/listing.py,sha256=MSr07Xn2yjIKazbAtRIyVamK8GImcxMeVMChDu2vXrA,6621
74
74
  datachain/lib/listing_info.py,sha256=9ua40Hw0aiQByUw3oAEeNzMavJYfW0Uhe8YdCTK-m_g,1110
75
75
  datachain/lib/meta_formats.py,sha256=hDPfEkcmiLZOjhBBXuareMdnq65Wj8vZvxjmum6cROM,6377
76
76
  datachain/lib/model_store.py,sha256=DNIv8Y6Jtk1_idNLzIpsThOsdW2BMAudyUCbPUcgcxk,2515
77
- datachain/lib/pytorch.py,sha256=hExKapbOSA9Bw1DQZd4tMf_xnZ9nCwygSGU9EGUW9Jo,7641
77
+ datachain/lib/pytorch.py,sha256=sIm8ITBSGzw08zJMV9mm4nIqDLqbwb4AAmqhuW4_bzU,7728
78
78
  datachain/lib/settings.py,sha256=ZELRCTLbi5vzRPiDX6cQ9LLg9TefJ_A05gIGni0lll8,2535
79
79
  datachain/lib/signal_schema.py,sha256=ps5od6zhWtdX3Khx2fwArl2xlGkK8SKi6vCQ6QmbaR0,27404
80
80
  datachain/lib/tar.py,sha256=3WIzao6yD5fbLqXLTt9GhPGNonbFIs_fDRu-9vgLgsA,1038
81
81
  datachain/lib/text.py,sha256=UNHm8fhidk7wdrWqacEWaA6I9ykfYqarQ2URby7jc7M,1261
82
- datachain/lib/udf.py,sha256=gTdUTa2qKpmVQqkYMotXGUvFjiTCUrqR14FctazDcfc,14995
82
+ datachain/lib/udf.py,sha256=XYu0KN3vlreMcpfUDXuOT325fNwem3UHYPlbyEShdLw,16125
83
83
  datachain/lib/udf_signature.py,sha256=GXw24A-Olna6DWCdgy2bC-gZh_gLGPQ-KvjuI6pUjC0,7281
84
84
  datachain/lib/utils.py,sha256=QrjVs_oLRXEotOPUYurBJypBFi_ReTJmxcnJeH4j2Uk,1596
85
85
  datachain/lib/vfile.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -89,19 +89,19 @@ datachain/lib/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
89
89
  datachain/lib/convert/flatten.py,sha256=IZFiUYbgXSxXhPSG5Cqf5IjnJ4ZDZKXMr4o_yCR1NY4,1505
90
90
  datachain/lib/convert/python_to_sql.py,sha256=40SAOdoOgikZRhn8iomCPDRoxC3RFxjJLivEAA9MHDU,2880
91
91
  datachain/lib/convert/sql_to_python.py,sha256=XXCBYDQFUXJIBNWkjEP944cnCfJ8GF2Tji0DLF3A_zQ,315
92
- datachain/lib/convert/unflatten.py,sha256=5RLIEB7utQFcXlyUIRGqu6VtmAN4N4whlslpO7xMQyI,2026
92
+ datachain/lib/convert/unflatten.py,sha256=ysMkstwJzPMWUlnxn-Z-tXJR3wmhjHeSN_P-sDcLS6s,2010
93
93
  datachain/lib/convert/values_to_tuples.py,sha256=EFfIGBiVVltJQG8blzsQ1dGXneh4D3wdLfSUeoK10OI,3931
94
94
  datachain/model/__init__.py,sha256=R9faX5OHV1xh2EW-g2MPedwbtEqt3LodJRyluB-QylI,189
95
- datachain/model/bbox.py,sha256=1Li1G3RdiQwLOAc2Mak2nQU0bcvdH-lXmXtA984CUWM,3154
96
- datachain/model/pose.py,sha256=q9NgB8h66aKnYnLi7Pyf9bU-F_90W4cbvtSO3-_hkdk,3078
97
- datachain/model/segment.py,sha256=iRWf0KieXfSM1eGD9Y7THx8L_EMB79Sk8WVebs3xSbQ,1593
95
+ datachain/model/bbox.py,sha256=jCuOdcdY__4WMsVfZp5ZNxnmcHva0KUm9MfbL0AMMy4,3158
96
+ datachain/model/pose.py,sha256=NpxyDTcgPoB5LcoRVLwVXTKIHRxqZcdCX5c9soBIPb0,3078
97
+ datachain/model/segment.py,sha256=LEZ88H9mb7tXq3OAcOYiYF8Di7NWmkSe3x9WSewpKQk,1595
98
98
  datachain/model/ultralytics/__init__.py,sha256=EvcNX9qUyxKXXlKCPpsXeRrabyXk5E9EkN-tyiYkfS4,750
99
99
  datachain/model/ultralytics/bbox.py,sha256=OZ9XBdyMOYc401P-RhfSN9QaYvMpnx2Phu9ptaJgZBY,4316
100
100
  datachain/model/ultralytics/pose.py,sha256=71KBTcoST2wcEtsyGXqLVpvUtqbp9gwZGA15pEPtX5A,2959
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=iupWhXBxbBDuihqyidztXWhTAD7wAli3FLFkf8_neUA,56351
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.7.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
- datachain-0.8.7.dist-info/METADATA,sha256=GHZaYcxzi5dXmAaaJgirqiTTWiWMEPgN6MsFAuNiE90,11064
138
- datachain-0.8.7.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
- datachain-0.8.7.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
- datachain-0.8.7.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
- datachain-0.8.7.dist-info/RECORD,,
136
+ datachain-0.8.9.dist-info/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
137
+ datachain-0.8.9.dist-info/METADATA,sha256=fXC2bFkpYNoMmWo8a1m4NYgdCsH4HfLy9ufR89u0PHY,11117
138
+ datachain-0.8.9.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
139
+ datachain-0.8.9.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
140
+ datachain-0.8.9.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
141
+ datachain-0.8.9.dist-info/RECORD,,