datachain 0.18.4__py3-none-any.whl → 0.18.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.

datachain/func/string.py CHANGED
@@ -1,64 +1,68 @@
1
- from typing import Optional, Union, get_origin
1
+ from typing import Optional, get_origin
2
2
 
3
3
  from sqlalchemy import literal
4
4
 
5
5
  from datachain.sql.functions import string
6
6
 
7
- from .func import Func
7
+ from .func import ColT, Func
8
8
 
9
9
 
10
- def length(col: Union[str, Func]) -> Func:
10
+ def length(col: ColT) -> Func:
11
11
  """
12
12
  Returns the length of the string.
13
13
 
14
14
  Args:
15
- col (str | literal | Func): String to compute the length of.
15
+ col (str | Column | Func | literal): String to compute the length of.
16
16
  If a string is provided, it is assumed to be the name of the column.
17
- If a literal is provided, it is assumed to be a string literal.
17
+ If a Column is provided, it is assumed to be a column in the dataset.
18
18
  If a Func is provided, it is assumed to be a function returning a string.
19
+ If a literal is provided, it is assumed to be a string literal.
19
20
 
20
21
  Returns:
21
- Func: A Func object that represents the string length function.
22
+ Func: A `Func` object that represents the string length function.
22
23
 
23
24
  Example:
24
25
  ```py
25
26
  dc.mutate(
26
27
  len1=func.string.length("file.path"),
27
- len2=func.string.length("Random string"),
28
+ len2=func.string.length(dc.C("file.path")),
29
+ len3=func.string.length(dc.func.literal("Random string")),
28
30
  )
29
31
  ```
30
32
 
31
- Note:
32
- - Result column will always be of type int.
33
+ Notes:
34
+ - The result column will always be of type int.
33
35
  """
34
36
  return Func("length", inner=string.length, cols=[col], result_type=int)
35
37
 
36
38
 
37
- def split(col: Union[str, Func], sep: str, limit: Optional[int] = None) -> Func:
39
+ def split(col: ColT, sep: str, limit: Optional[int] = None) -> Func:
38
40
  """
39
41
  Takes a column and split character and returns an array of the parts.
40
42
 
41
43
  Args:
42
- col (str | literal): Column to split.
44
+ col (str | Column | Func | literal): Column to split.
43
45
  If a string is provided, it is assumed to be the name of the column.
44
- If a literal is provided, it is assumed to be a string literal.
46
+ If a Column is provided, it is assumed to be a column in the dataset.
45
47
  If a Func is provided, it is assumed to be a function returning a string.
48
+ If a literal is provided, it is assumed to be a string literal.
46
49
  sep (str): Separator to split the string.
47
50
  limit (int, optional): Maximum number of splits to perform.
48
51
 
49
52
  Returns:
50
- Func: A Func object that represents the split function.
53
+ Func: A `Func` object that represents the split function.
51
54
 
52
55
  Example:
53
56
  ```py
54
57
  dc.mutate(
55
58
  path_parts=func.string.split("file.path", "/"),
56
- str_words=func.string.length("Random string", " "),
59
+ signal_values=func.string.split(dc.C("signal.value"), ","),
60
+ str_words=func.string.split(dc.func.literal("Random string"), " "),
57
61
  )
58
62
  ```
59
63
 
60
- Note:
61
- - Result column will always be of type array of strings.
64
+ Notes:
65
+ - The result column will always be of type array of strings.
62
66
  """
63
67
 
64
68
  def inner(arg):
@@ -76,30 +80,33 @@ def split(col: Union[str, Func], sep: str, limit: Optional[int] = None) -> Func:
76
80
  return Func("split", inner=inner, cols=cols, args=args, result_type=list[str])
77
81
 
78
82
 
79
- def replace(col: Union[str, Func], pattern: str, replacement: str) -> Func:
83
+ def replace(col: ColT, pattern: str, replacement: str) -> Func:
80
84
  """
81
85
  Replaces substring with another string.
82
86
 
83
87
  Args:
84
- col (str | literal): Column to split.
88
+ col (str | Column | Func | literal): Column to perform replacement on.
85
89
  If a string is provided, it is assumed to be the name of the column.
86
- If a literal is provided, it is assumed to be a string literal.
90
+ If a Column is provided, it is assumed to be a column in the dataset.
87
91
  If a Func is provided, it is assumed to be a function returning a string.
92
+ If a literal is provided, it is assumed to be a string literal.
88
93
  pattern (str): Pattern to replace.
89
94
  replacement (str): Replacement string.
90
95
 
91
96
  Returns:
92
- Func: A Func object that represents the replace function.
97
+ Func: A `Func` object that represents the replace function.
93
98
 
94
99
  Example:
95
100
  ```py
96
101
  dc.mutate(
97
- signal=func.string.replace("signal.name", "pattern", "replacement),
102
+ s1=func.string.replace("signal.name", "pattern", "replacement"),
103
+ s2=func.string.replace(dc.C("signal.name"), "pattern", "replacement"),
104
+ s3=func.string.replace(dc.func.literal("Random string"), "Random", "New"),
98
105
  )
99
106
  ```
100
107
 
101
- Note:
102
- - Result column will always be of type string.
108
+ Notes:
109
+ - The result column will always be of type string.
103
110
  """
104
111
 
105
112
  def inner(arg):
@@ -115,30 +122,37 @@ def replace(col: Union[str, Func], pattern: str, replacement: str) -> Func:
115
122
  return Func("replace", inner=inner, cols=cols, args=args, result_type=str)
116
123
 
117
124
 
118
- def regexp_replace(col: Union[str, Func], regex: str, replacement: str) -> Func:
125
+ def regexp_replace(col: ColT, regex: str, replacement: str) -> Func:
119
126
  r"""
120
127
  Replaces substring that match a regular expression.
121
128
 
122
129
  Args:
123
- col (str | literal): Column to split.
130
+ col (str | Column | Func | literal): Column to perform replacement on.
124
131
  If a string is provided, it is assumed to be the name of the column.
125
- If a literal is provided, it is assumed to be a string literal.
132
+ If a Column is provided, it is assumed to be a column in the dataset.
126
133
  If a Func is provided, it is assumed to be a function returning a string.
134
+ If a literal is provided, it is assumed to be a string literal.
127
135
  regex (str): Regular expression pattern to replace.
128
136
  replacement (str): Replacement string.
129
137
 
130
138
  Returns:
131
- Func: A Func object that represents the regexp_replace function.
139
+ Func: A `Func` object that represents the regexp_replace function.
132
140
 
133
141
  Example:
134
142
  ```py
135
143
  dc.mutate(
136
- signal=func.string.regexp_replace("signal.name", r"\d+", "X"),
144
+ s1=func.string.regexp_replace("signal.name", r"\d+", "X"),
145
+ s2=func.string.regexp_replace(dc.C("signal.name"), r"\d+", "X"),
146
+ s3=func.string.regexp_replace(
147
+ dc.func.literal("Random string"),
148
+ r"\s+",
149
+ "_",
150
+ ),
137
151
  )
138
152
  ```
139
153
 
140
- Note:
141
- - Result column will always be of type string.
154
+ Notes:
155
+ - The result column will always be of type string.
142
156
  """
143
157
 
144
158
  def inner(arg):
@@ -154,7 +168,7 @@ def regexp_replace(col: Union[str, Func], regex: str, replacement: str) -> Func:
154
168
  return Func("regexp_replace", inner=inner, cols=cols, args=args, result_type=str)
155
169
 
156
170
 
157
- def byte_hamming_distance(*args: Union[str, Func]) -> Func:
171
+ def byte_hamming_distance(*args: ColT) -> Func:
158
172
  """
159
173
  Computes the Hamming distance between two strings.
160
174
 
@@ -164,22 +178,30 @@ def byte_hamming_distance(*args: Union[str, Func]) -> Func:
164
178
  of the strings indicate higher dissimilarity.
165
179
 
166
180
  Args:
167
- args (str | literal): Two strings to compute the Hamming distance between.
168
- If a str is provided, it is assumed to be the name of the column.
169
- If a Literal is provided, it is assumed to be a string literal.
181
+ args (str | Column | Func | literal): Two strings to compute
182
+ the Hamming distance between.
183
+ If a string is provided, it is assumed to be the name of the column.
184
+ If a Column is provided, it is assumed to be a column in the dataset.
185
+ If a Func is provided, it is assumed to be a function returning a string.
186
+ If a literal is provided, it is assumed to be a string literal.
170
187
 
171
188
  Returns:
172
- Func: A Func object that represents the Hamming distance function.
189
+ Func: A `Func` object that represents the Hamming distance function.
173
190
 
174
191
  Example:
175
192
  ```py
176
193
  dc.mutate(
177
- ham_dist=func.byte_hamming_distance("file.phash", literal("hello")),
194
+ hd1=func.byte_hamming_distance("file.phash", literal("hello")),
195
+ hd2=func.byte_hamming_distance(dc.C("file.phash"), "hello"),
196
+ hd3=func.byte_hamming_distance(
197
+ dc.func.literal("hi"),
198
+ dc.func.literal("hello"),
199
+ ),
178
200
  )
179
201
  ```
180
202
 
181
203
  Notes:
182
- - Result column will always be of type int.
204
+ - The result column will always be of type int.
183
205
  """
184
206
  cols, func_args = [], []
185
207
  for arg in args:
datachain/func/window.py CHANGED
@@ -22,17 +22,16 @@ def window(partition_by: str, order_by: str, desc: bool = False) -> Window:
22
22
 
23
23
  Args:
24
24
  partition_by (str): The column name by which to partition the result set.
25
- Rows with the same value in the partition column
26
- will be grouped together for the window function.
27
- order_by (str): The column name by which to order the rows
28
- within each partition. This determines the sequence in which
29
- the window function is applied.
25
+ Rows with the same value in the partition column will be grouped together
26
+ for the window function.
27
+ order_by (str): The column name by which to order the rows within
28
+ each partition. This determines the sequence in which the window function
29
+ is applied.
30
30
  desc (bool, optional): If True, the rows will be ordered in descending order.
31
- Defaults to False, which orders the rows
32
- in ascending order.
31
+ Defaults to False, which orders the rows in ascending order.
33
32
 
34
33
  Returns:
35
- Window: A Window object representing the window specification.
34
+ Window: A `Window` object representing the window specification.
36
35
 
37
36
  Example:
38
37
  ```py
@@ -2082,6 +2082,11 @@ class DataChain:
2082
2082
  Use before running map/gen/agg/batch_map to save an object and pass it as an
2083
2083
  argument to the UDF.
2084
2084
 
2085
+ The value must be a callable (a `lambda: <value>` syntax can be used to quickly
2086
+ create one) that returns the object to be passed to the UDF. It is evaluated
2087
+ lazily when UDF is running, in case of multiple machines the callable is run on
2088
+ a worker machine.
2089
+
2085
2090
  Example:
2086
2091
  ```py
2087
2092
  import anthropic
@@ -2091,7 +2096,11 @@ class DataChain:
2091
2096
  (
2092
2097
  dc.read_storage(DATA, type="text")
2093
2098
  .settings(parallel=4, cache=True)
2099
+
2100
+ # Setup Anthropic client and pass it to the UDF below automatically
2101
+ # The value is callable (see the note above)
2094
2102
  .setup(client=lambda: anthropic.Anthropic(api_key=API_KEY))
2103
+
2095
2104
  .map(
2096
2105
  claude=lambda client, file: client.messages.create(
2097
2106
  model=MODEL,
@@ -33,7 +33,7 @@ class YoloBBox(DataModel):
33
33
  name = summary[0].get("name", "")
34
34
  box = (
35
35
  BBox.from_dict(summary[0]["box"], title=name)
36
- if "box" in summary[0]
36
+ if summary[0].get("box")
37
37
  else BBox()
38
38
  )
39
39
  return YoloBBox(
@@ -69,7 +69,8 @@ class YoloBBoxes(DataModel):
69
69
  cls.append(s["class"])
70
70
  names.append(name)
71
71
  confidence.append(s["confidence"])
72
- box.append(BBox.from_dict(s.get("box", {}), title=name))
72
+ if s.get("box"):
73
+ box.append(BBox.from_dict(s.get("box"), title=name))
73
74
  return YoloBBoxes(
74
75
  cls=cls,
75
76
  name=names,
@@ -102,7 +103,7 @@ class YoloOBBox(DataModel):
102
103
  name = summary[0].get("name", "")
103
104
  box = (
104
105
  OBBox.from_dict(summary[0]["box"], title=name)
105
- if "box" in summary[0]
106
+ if summary[0].get("box")
106
107
  else OBBox()
107
108
  )
108
109
  return YoloOBBox(
@@ -138,7 +139,8 @@ class YoloOBBoxes(DataModel):
138
139
  cls.append(s["class"])
139
140
  names.append(name)
140
141
  confidence.append(s["confidence"])
141
- box.append(OBBox.from_dict(s.get("box", {}), title=name))
142
+ if s.get("box"):
143
+ box.append(OBBox.from_dict(s.get("box"), title=name))
142
144
  return YoloOBBoxes(
143
145
  cls=cls,
144
146
  name=names,
@@ -58,12 +58,12 @@ class YoloPose(DataModel):
58
58
  name = summary[0].get("name", "")
59
59
  box = (
60
60
  BBox.from_dict(summary[0]["box"], title=name)
61
- if "box" in summary[0]
61
+ if summary[0].get("box")
62
62
  else BBox()
63
63
  )
64
64
  pose = (
65
65
  Pose3D.from_dict(summary[0]["keypoints"])
66
- if "keypoints" in summary[0]
66
+ if summary[0].get("keypoints")
67
67
  else Pose3D()
68
68
  )
69
69
  return YoloPose(
@@ -102,8 +102,10 @@ class YoloPoses(DataModel):
102
102
  cls.append(s["class"])
103
103
  names.append(name)
104
104
  confidence.append(s["confidence"])
105
- box.append(BBox.from_dict(s.get("box", {}), title=name))
106
- pose.append(Pose3D.from_dict(s.get("keypoints", {})))
105
+ if s.get("box"):
106
+ box.append(BBox.from_dict(s.get("box"), title=name))
107
+ if s.get("keypoints"):
108
+ pose.append(Pose3D.from_dict(s.get("keypoints")))
107
109
  return YoloPoses(
108
110
  cls=cls,
109
111
  name=names,
@@ -36,12 +36,12 @@ class YoloSegment(DataModel):
36
36
  name = summary[0].get("name", "")
37
37
  box = (
38
38
  BBox.from_dict(summary[0]["box"], title=name)
39
- if "box" in summary[0]
39
+ if summary[0].get("box")
40
40
  else BBox()
41
41
  )
42
42
  segment = (
43
43
  Segment.from_dict(summary[0]["segments"], title=name)
44
- if "segments" in summary[0]
44
+ if summary[0].get("segments")
45
45
  else Segment()
46
46
  )
47
47
  return YoloSegment(
@@ -80,8 +80,10 @@ class YoloSegments(DataModel):
80
80
  cls.append(s["class"])
81
81
  names.append(name)
82
82
  confidence.append(s["confidence"])
83
- box.append(BBox.from_dict(s.get("box", {}), title=name))
84
- segment.append(Segment.from_dict(s.get("segments", {}), title=name))
83
+ if s.get("box"):
84
+ box.append(BBox.from_dict(s.get("box"), title=name))
85
+ if s.get("segments"):
86
+ segment.append(Segment.from_dict(s.get("segments"), title=name))
85
87
  return YoloSegments(
86
88
  cls=cls,
87
89
  name=names,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datachain
3
- Version: 0.18.4
3
+ Version: 0.18.5
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License-Expression: Apache-2.0
@@ -23,7 +23,7 @@ Requires-Dist: tqdm
23
23
  Requires-Dist: numpy<3,>=1
24
24
  Requires-Dist: pandas>=2.0.0
25
25
  Requires-Dist: packaging
26
- Requires-Dist: pyarrow<20
26
+ Requires-Dist: pyarrow
27
27
  Requires-Dist: typing-extensions
28
28
  Requires-Dist: python-dateutil>=2
29
29
  Requires-Dist: attrs>=21.3.0
@@ -38,7 +38,7 @@ Requires-Dist: sqlalchemy>=2
38
38
  Requires-Dist: multiprocess==0.70.16
39
39
  Requires-Dist: cloudpickle
40
40
  Requires-Dist: orjson>=3.10.5
41
- Requires-Dist: pydantic<2.11,>=2
41
+ Requires-Dist: pydantic
42
42
  Requires-Dist: jmespath>=1.0
43
43
  Requires-Dist: datamodel-code-generator>=0.25
44
44
  Requires-Dist: Pillow<12,>=10.0.0
@@ -19,7 +19,7 @@ datachain/studio.py,sha256=1J2ANFVVA1ysPxBuLibQSnSXt0U9Vfgz9ZNGikYtWdk,11038
19
19
  datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
20
20
  datachain/utils.py,sha256=DNqOi-Ydb7InyWvD9m7_yailxz6-YGpZzh00biQaHNo,15305
21
21
  datachain/catalog/__init__.py,sha256=cMZzSz3VoUi-6qXSVaHYN-agxQuAcz2XSqnEPZ55crE,353
22
- datachain/catalog/catalog.py,sha256=vC6CkPKSmF5heXx7JEHbm94BzQOqKWLg-T0CBv3a24A,59462
22
+ datachain/catalog/catalog.py,sha256=J1MKOuoMSl5B0_XYGF5EjDPm7KCvOvllz8PXxt316Og,59352
23
23
  datachain/catalog/datasource.py,sha256=IkGMh0Ttg6Q-9DWfU_H05WUnZepbGa28HYleECi6K7I,1353
24
24
  datachain/catalog/loader.py,sha256=UXjYD6BNRoupPvkiz3-b04jepXhtLHCA4gzKFnXxOtQ,5987
25
25
  datachain/cli/__init__.py,sha256=eKCyqT05OMESHXCC93iQdqzusBdk1ptqZbBeaEghkgo,8344
@@ -37,17 +37,17 @@ datachain/cli/parser/job.py,sha256=acdVYuTsqluRDI_FYhZ1ohjQcVtBj-taUm8y9tGb0_0,4
37
37
  datachain/cli/parser/studio.py,sha256=Y-1OlQGecLVi9QofvWUfSlPd2ISyaESf7QFGZqGsrdw,3609
38
38
  datachain/cli/parser/utils.py,sha256=rETdD-9Hq9A4OolgfT7jQw4aoawtbfmkdtH6E7nkhpI,2888
39
39
  datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
40
- datachain/client/azure.py,sha256=ma6fJcnveG8wpNy1PSrN5hgvmRdCj8Sf3RKjfd3qCyM,3221
40
+ datachain/client/azure.py,sha256=dM9rGHHmi40iT3FOcLP5iNo_1nS2exjmJH9U4PElW5A,3232
41
41
  datachain/client/fileslice.py,sha256=bT7TYco1Qe3bqoc8aUkUZcPdPofJDHlryL5BsTn9xsY,3021
42
42
  datachain/client/fsspec.py,sha256=UJ7PDq1F11gf7OMjfXYqzrS1GHL3FZctOwXI0S_LU74,13852
43
- datachain/client/gcs.py,sha256=tepsstv-6WkkJ16SVXIPKPlWdNyFlTqrUlDwulWlWGQ,5116
43
+ datachain/client/gcs.py,sha256=ckdP7utmBfSDkj0GOhV_34itw5pN3DOD74hrWNKIcQg,5127
44
44
  datachain/client/hf.py,sha256=posnI5WOKOMG1yY_ZiV9Orcd24QsUPKZlOXgJVLxxrM,1558
45
45
  datachain/client/local.py,sha256=cGoCYflribzexiOe-Y1qbaE2fJRh-_EgQrfCSa0yK_E,4568
46
- datachain/client/s3.py,sha256=YCtDhKVO_jGsMPeyqe3xk5QsF5lqMabqkt0tPFWUHOM,7286
46
+ datachain/client/s3.py,sha256=bhlQGOVi0smKmLkkyO-Y1YR95u-aPim4bdkEj4wyhzU,7343
47
47
  datachain/data_storage/__init__.py,sha256=9Wit-oe5P46V7CJQTD0BJ5MhOa2Y9h3ddJ4VWTe-Lec,273
48
48
  datachain/data_storage/db_engine.py,sha256=n8ojCbvVMPY2e3SG8fUaaD0b9GkVfpl_Naa_6EiHfWg,3788
49
49
  datachain/data_storage/job.py,sha256=9r0OGwh22bHNIvLHqg8_-eJSP1YYB-BN5HOla5TdCxw,402
50
- datachain/data_storage/metastore.py,sha256=PGSDRwEckKR759CRgBGFC9aK_shBGLoFcHRuXJliqdc,38306
50
+ datachain/data_storage/metastore.py,sha256=1PaRTQbL7kjcU1BVjiLjXJLrrLzQtUvpqLmm0pwc1rU,39882
51
51
  datachain/data_storage/schema.py,sha256=asZYz1cg_WKfe2Q-k5W51E2z2CzHU5B4QEDZDMFr8yo,9346
52
52
  datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
53
53
  datachain/data_storage/sqlite.py,sha256=bwZAB_NUMT2WMv5tPQnnLFA0P-PiQtxzSaQ1q6xDxOU,24590
@@ -57,16 +57,16 @@ datachain/fs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  datachain/fs/reference.py,sha256=A8McpXF0CqbXPqanXuvpKu50YLB3a2ZXA3YAPxtBXSM,914
58
58
  datachain/fs/utils.py,sha256=s-FkTOCGBk-b6TT3toQH51s9608pofoFjUSTc1yy7oE,825
59
59
  datachain/func/__init__.py,sha256=CjNLHfJkepdXdRZ6HjJBjNSIjOeFMuMkwPDaPUrM75g,1270
60
- datachain/func/aggregate.py,sha256=UfxENlw56Qv3UEkj2sZ-JZHmr9q8Rnic9io9_63gF-E,10942
61
- datachain/func/array.py,sha256=xWiXYc2OgmndRoNtvczvkbpa9qNQalzFS0S3408jbSA,11872
60
+ datachain/func/aggregate.py,sha256=fmVEKf3MUR29dEgllGdtl6nG7Lwz-SiyA5X1EyRRNUk,12456
61
+ datachain/func/array.py,sha256=fz5NUIPkp_KZ7tadCqJQSSJwWMYXEfYn60QkG2epC3k,13627
62
62
  datachain/func/base.py,sha256=wA0sBQAVyN9LPxoo7Ox83peS0zUVnyuKxukwAcjGLfY,534
63
- datachain/func/conditional.py,sha256=HkNamQr9dLyIMDEbIeO6CZR0emQoDqeaWrZ1fECod4M,8062
64
- datachain/func/func.py,sha256=11z24FnhM_U6KQca0er9OSkd4xOTzO3W0tRs0yFg2mM,17375
65
- datachain/func/numeric.py,sha256=gMe1Ks0dqQKHkjcpvj7I5S-neECzQ_gltPQLNoaWOyo,5632
66
- datachain/func/path.py,sha256=mqN_mfkwv44z2II7DMTp_fGGw95hmTCNls_TOFNpr4k,3155
67
- datachain/func/random.py,sha256=pENOLj9rSmWfGCnOsUIaCsVC5486zQb66qfQvXaz9Z4,452
68
- datachain/func/string.py,sha256=8az3BTeezlaZt6NW-54GWX7WSosAOVMbTr6bXIYyJq4,5958
69
- datachain/func/window.py,sha256=0MB1yjpVbwOrl_WNLZ8V3jkJz3o0XlYinpAcZQJuxiA,1688
63
+ datachain/func/conditional.py,sha256=bzIZRSpVpe-lrHoWPTCA7bzZ-AHtR44BVM82hqD1pY0,9188
64
+ datachain/func/func.py,sha256=ARU6ifniVWR5a3vXynNDD42AATOBnuMIq66fQnDyTJc,17383
65
+ datachain/func/numeric.py,sha256=J6FgzuIAcS6B02Cm1qPnJdB6ut21jyBDVXSBrkZNZaQ,6978
66
+ datachain/func/path.py,sha256=9Jas35QhEtRai4l54hMqVvuJsqxHvOx88oo4vym1H_I,4077
67
+ datachain/func/random.py,sha256=t7jwXsI8-hy0qAdvjAntgzy-AHtTAfozlZ1CpKR-QZE,458
68
+ datachain/func/string.py,sha256=X9u4ip97U63RCaKRhMddoze7HgPiY3LbPRn9G06UWWo,7311
69
+ datachain/func/window.py,sha256=ImyRpc1QI8QUSPO7KdD60e_DPVo7Ja0G5kcm6BlyMcw,1584
70
70
  datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  datachain/lib/arrow.py,sha256=mFO_6wRqzpEzBhXf7Xn1aeLUvaiHcC6XQ-8as9sbcgY,10253
72
72
  datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
@@ -99,7 +99,7 @@ datachain/lib/convert/values_to_tuples.py,sha256=j5yZMrVUH6W7b-7yUvdCTGI7JCUAYUO
99
99
  datachain/lib/dc/__init__.py,sha256=HD0NYrdy44u6kkpvgGjJcvGz-UGTHui2azghcT8ZUg0,838
100
100
  datachain/lib/dc/csv.py,sha256=q6a9BpapGwP6nwy6c5cklxQumep2fUp9l2LAjtTJr6s,4411
101
101
  datachain/lib/dc/database.py,sha256=g5M6NjYR1T0vKte-abV-3Ejnm-HqxTIMir5cRi_SziE,6051
102
- datachain/lib/dc/datachain.py,sha256=DIlbIyO3aUidDTo3S2pOrSDyrVhr49iLCFGgL_otSig,80558
102
+ datachain/lib/dc/datachain.py,sha256=5rR_QqG4vesq-x545ZTSFJDSb6Oc5CW4-ziQYD6DpW4,80993
103
103
  datachain/lib/dc/datasets.py,sha256=G65leCuo_3bItmvjoV1wK0pzj7a2IQqe3xRsflpF3xM,10794
104
104
  datachain/lib/dc/hf.py,sha256=PJl2wiLjdRsMz0SYbLT-6H8b-D5i2WjeH7li8HHOk_0,2145
105
105
  datachain/lib/dc/json.py,sha256=ZUThPDAaP2gBFIL5vsQTwKBcuN_dhvC_O44wdDv0jEc,2683
@@ -116,9 +116,9 @@ datachain/model/pose.py,sha256=rjquA6M-I-Y30Xm6YSkGv1OY52hJZmR2AuxbIpE5uD0,3865
116
116
  datachain/model/segment.py,sha256=NhcEYB_KVa0aLQYiZ4jEwkylH9QBLd8fZhmg6PVnx1Y,1967
117
117
  datachain/model/utils.py,sha256=5elwCKleOO6CZM0IuWjFykPekrhc5m7V4jSIOcgGMms,6733
118
118
  datachain/model/ultralytics/__init__.py,sha256=EvcNX9qUyxKXXlKCPpsXeRrabyXk5E9EkN-tyiYkfS4,750
119
- datachain/model/ultralytics/bbox.py,sha256=1wnu3tXQn3i-047pncfHyCdKxHdP7MJDI1DXqzVc9ms,4500
120
- datachain/model/ultralytics/pose.py,sha256=gXAWfAk4OWZl93hKcQPKZvqJa3nIrECB4RM8K8w8Og0,3109
121
- datachain/model/ultralytics/segment.py,sha256=koq1HASo29isf0in6oSlzmU4IzsmOXe87F1ajQQVfh4,2911
119
+ datachain/model/ultralytics/bbox.py,sha256=vxrqu7poIgPD0V2iuy26F74YCKr3s-CFKibPOAbGS40,4570
120
+ datachain/model/ultralytics/pose.py,sha256=pBlmt63Qe68FKmexHimUGlNbNOoOlMHXG4fzXZ9edh8,3185
121
+ datachain/model/ultralytics/segment.py,sha256=63bDCj43E6iZ0hFI5J6uQfksdCmjEp6sEm1XzVaE8pw,2986
122
122
  datachain/query/__init__.py,sha256=7DhEIjAA8uZJfejruAVMZVcGFmvUpffuZJwgRqNwe-c,263
123
123
  datachain/query/batch.py,sha256=-goxLpE0EUvaDHu66rstj53UnfHpYfBUGux8GSpJ93k,4306
124
124
  datachain/query/dataset.py,sha256=3c3MAiIl7ZnCii_0dZA-Om73ornNMSKkna32JX3H05E,60587
@@ -153,9 +153,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
153
153
  datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
154
154
  datachain/toolkit/split.py,sha256=ktGWzY4kyzjWyR86dhvzw-Zhl0lVk_LOX3NciTac6qo,2914
155
155
  datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
156
- datachain-0.18.4.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
157
- datachain-0.18.4.dist-info/METADATA,sha256=8v8KDSKKk69QhkpKbfXqNg6cW9S5FGBaGVEVVkHXl5g,11331
158
- datachain-0.18.4.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
159
- datachain-0.18.4.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
160
- datachain-0.18.4.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
161
- datachain-0.18.4.dist-info/RECORD,,
156
+ datachain-0.18.5.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
157
+ datachain-0.18.5.dist-info/METADATA,sha256=nRjXtvxIMAGDnI5sLMewoVcqsRbn9jGWCZnmu2wzk1I,11319
158
+ datachain-0.18.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
+ datachain-0.18.5.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
160
+ datachain-0.18.5.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
161
+ datachain-0.18.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5