datachain 0.16.5__py3-none-any.whl → 0.17.1__py3-none-any.whl

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

Potentially problematic release.


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

@@ -29,7 +29,7 @@ DatasetExportStatus = Optional[dict[str, Any]]
29
29
  DatasetExportSignedUrls = Optional[list[str]]
30
30
  FileUploadData = Optional[dict[str, Any]]
31
31
  JobData = Optional[dict[str, Any]]
32
-
32
+ JobListData = dict[str, Any]
33
33
  logger = logging.getLogger("datachain")
34
34
 
35
35
  DATASET_ROWS_CHUNK_SIZE = 8192
@@ -307,7 +307,7 @@ class StudioClient:
307
307
  def rm_dataset(
308
308
  self,
309
309
  name: str,
310
- version: Optional[int] = None,
310
+ version: Optional[str] = None,
311
311
  force: Optional[bool] = False,
312
312
  ) -> Response[DatasetInfoData]:
313
313
  return self._send_request(
@@ -336,7 +336,7 @@ class StudioClient:
336
336
  return response
337
337
 
338
338
  def dataset_rows_chunk(
339
- self, name: str, version: int, offset: int
339
+ self, name: str, version: str, offset: int
340
340
  ) -> Response[DatasetRowsData]:
341
341
  req_data = {"dataset_name": name, "dataset_version": version}
342
342
  return self._send_request_msgpack(
@@ -353,7 +353,7 @@ class StudioClient:
353
353
  )
354
354
 
355
355
  def export_dataset_table(
356
- self, name: str, version: int
356
+ self, name: str, version: str
357
357
  ) -> Response[DatasetExportSignedUrls]:
358
358
  return self._send_request(
359
359
  "datachain/datasets/export",
@@ -362,7 +362,7 @@ class StudioClient:
362
362
  )
363
363
 
364
364
  def dataset_export_status(
365
- self, name: str, version: int
365
+ self, name: str, version: str
366
366
  ) -> Response[DatasetExportStatus]:
367
367
  return self._send_request(
368
368
  "datachain/datasets/export-status",
@@ -402,6 +402,17 @@ class StudioClient:
402
402
  }
403
403
  return self._send_request("datachain/job", data)
404
404
 
405
+ def get_jobs(
406
+ self,
407
+ status: Optional[str] = None,
408
+ limit: int = 20,
409
+ ) -> Response[JobListData]:
410
+ return self._send_request(
411
+ "datachain/jobs",
412
+ {"status": status, "limit": limit} if status else {"limit": limit},
413
+ method="GET",
414
+ )
415
+
405
416
  def cancel_job(
406
417
  self,
407
418
  job_id: str,
datachain/semver.py ADDED
@@ -0,0 +1,58 @@
1
+ def parse(version: str) -> tuple[int, int, int]:
2
+ """Parsing semver into 3 integers: major, minor, patch"""
3
+ validate(version)
4
+ parts = version.split(".")
5
+ return (int(parts[0]), int(parts[1]), int(parts[2]))
6
+
7
+
8
+ def validate(version: str) -> None:
9
+ """
10
+ Raises exception if version doesn't have valid semver format which is:
11
+ <major>.<minor>.<patch> or one of version parts is not positive integer
12
+ """
13
+ error_message = (
14
+ "Invalid version. It should be in format: <major>.<minor>.<patch> where"
15
+ " each version part is positive integer"
16
+ )
17
+ parts = version.split(".")
18
+ if len(parts) != 3:
19
+ raise ValueError(error_message)
20
+ for part in parts:
21
+ try:
22
+ val = int(part)
23
+ assert val >= 0
24
+ except (ValueError, AssertionError):
25
+ raise ValueError(error_message) from None
26
+
27
+
28
+ def create(major: int = 0, minor: int = 0, patch: int = 0) -> str:
29
+ """Creates new semver from 3 integers: major, minor and patch"""
30
+ if major < 0 or minor < 0 or patch < 0:
31
+ raise ValueError("Major, minor and patch must be greater or equal to zero")
32
+
33
+ return ".".join([str(major), str(minor), str(patch)])
34
+
35
+
36
+ def value(version: str) -> int:
37
+ """
38
+ Calculate integer value of a version. This is useful when comparing two versions
39
+ """
40
+ major, minor, patch = parse(version)
41
+ return major * 100 + minor * 10 + patch
42
+
43
+
44
+ def compare(v1: str, v2: str) -> int:
45
+ """
46
+ Compares 2 versions and returns:
47
+ -1 if v1 < v2
48
+ 0 if v1 == v2
49
+ 1 if v1 > v2
50
+ """
51
+ v1_val = value(v1)
52
+ v2_val = value(v2)
53
+
54
+ if v1_val < v2_val:
55
+ return -1
56
+ if v1_val > v2_val:
57
+ return 1
58
+ return 0
datachain/studio.py CHANGED
@@ -3,6 +3,8 @@ import os
3
3
  import sys
4
4
  from typing import TYPE_CHECKING, Optional
5
5
 
6
+ import tabulate
7
+
6
8
  from datachain.config import Config, ConfigLevel
7
9
  from datachain.dataset import QUERY_DATASET_PREFIX
8
10
  from datachain.error import DataChainError
@@ -44,6 +46,10 @@ def process_jobs_args(args: "Namespace"):
44
46
  return cancel_job(args.id, args.team)
45
47
  if args.cmd == "logs":
46
48
  return show_job_logs(args.id, args.team)
49
+
50
+ if args.cmd == "ls":
51
+ return list_jobs(args.status, args.team, args.limit)
52
+
47
53
  raise DataChainError(f"Unknown command '{args.cmd}'.")
48
54
 
49
55
 
@@ -201,7 +207,7 @@ def edit_studio_dataset(
201
207
  def remove_studio_dataset(
202
208
  team_name: Optional[str],
203
209
  name: str,
204
- version: Optional[int] = None,
210
+ version: Optional[str] = None,
205
211
  force: Optional[bool] = False,
206
212
  ):
207
213
  client = StudioClient(team=team_name)
@@ -240,13 +246,13 @@ def show_logs_from_client(client, job_id):
240
246
  raise DataChainError(response.message)
241
247
 
242
248
  response_data = response.data
243
- if response_data:
249
+ if response_data and response_data.get("dataset_versions"):
244
250
  dataset_versions = response_data.get("dataset_versions", [])
245
251
  print("\n\n>>>> Dataset versions created during the job:")
246
252
  for version in dataset_versions:
247
253
  print(f" - {version.get('dataset_name')}@v{version.get('version')}")
248
254
  else:
249
- print("No dataset versions created during the job.")
255
+ print("\n\nNo dataset versions created during the job.")
250
256
 
251
257
 
252
258
  def create_job(
@@ -337,6 +343,31 @@ def cancel_job(job_id: str, team_name: Optional[str]):
337
343
  print(f"Job {job_id} canceled")
338
344
 
339
345
 
346
+ def list_jobs(status: Optional[str], team_name: Optional[str], limit: int):
347
+ client = StudioClient(team=team_name)
348
+ response = client.get_jobs(status, limit)
349
+ if not response.ok:
350
+ raise DataChainError(response.message)
351
+
352
+ jobs = response.data.get("jobs", [])
353
+ if not jobs:
354
+ print("No jobs found")
355
+ return
356
+
357
+ rows = [
358
+ {
359
+ "ID": job.get("id"),
360
+ "Name": job.get("name"),
361
+ "Status": job.get("status"),
362
+ "Created at": job.get("created_at"),
363
+ "Created by": job.get("created_by"),
364
+ }
365
+ for job in jobs
366
+ ]
367
+
368
+ print(tabulate.tabulate(rows, headers="keys", tablefmt="grid"))
369
+
370
+
340
371
  def show_job_logs(job_id: str, team_name: Optional[str]):
341
372
  token = Config().read().get("studio", {}).get("token")
342
373
  if not token:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datachain
3
- Version: 0.16.5
3
+ Version: 0.17.1
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
@@ -44,7 +44,7 @@ Requires-Dist: datamodel-code-generator>=0.25
44
44
  Requires-Dist: Pillow<12,>=10.0.0
45
45
  Requires-Dist: msgpack<2,>=1.0.4
46
46
  Requires-Dist: psutil
47
- Requires-Dist: huggingface_hub
47
+ Requires-Dist: huggingface_hub<0.31
48
48
  Requires-Dist: iterative-telemetry>=0.0.10
49
49
  Requires-Dist: platformdirs
50
50
  Requires-Dist: dvc-studio-client<1,>=0.21
@@ -3,35 +3,36 @@ datachain/__main__.py,sha256=hG3Y4ARGEqe1AWwNMd259rBlqtphx1Wk39YbueQ0yV8,91
3
3
  datachain/asyn.py,sha256=RH_jFwJcTXxhEFomaI9yL6S3Onau6NZ6FSKfKFGtrJE,9689
4
4
  datachain/cache.py,sha256=yQblPhOh_Mq74Ma7xT1CL1idLJ0HgrQxpGVYvRy_9Eg,3623
5
5
  datachain/config.py,sha256=g8qbNV0vW2VEKpX-dGZ9pAn0DAz6G2ZFcr7SAV3PoSM,4272
6
- datachain/dataset.py,sha256=msBC62M_HAv3hT4tKFEGOlH3sMCMg5DVd5lhmqkDGB4,19379
6
+ datachain/dataset.py,sha256=qxLIegmPF7e4uc2DrouyFtlLxWr7lChPxDt5H6dm9MM,20766
7
7
  datachain/error.py,sha256=bxAAL32lSeMgzsQDEHbGTGORj-mPzzpCRvWDPueJNN4,1092
8
8
  datachain/job.py,sha256=x5PB6d5sqx00hePNNkirESlOVAvnmkEM5ygUgQmAhsk,1262
9
- datachain/listing.py,sha256=kNSCFYWo2iM1wWg1trwq4WpYZxYqz4RKxkTtsppEzAw,7079
9
+ datachain/listing.py,sha256=JtExYIfKMFhEIIcSSWBmaxWpoS3ben7kb692cHHm4Lo,7079
10
10
  datachain/node.py,sha256=KWDT0ClYXB7FYI-QOvzAa-UDkLJErUI2eWm5FBteYuU,5577
11
11
  datachain/nodes_fetcher.py,sha256=_wgaKyqEjkqdwJ_Hj6D8vUYz7hnU7g6xhm0H6ZnYxmE,1095
12
12
  datachain/nodes_thread_pool.py,sha256=mdo0s-VybuSZkRUARcUO4Tjh8KFfZr9foHqmupx2SmM,3989
13
13
  datachain/progress.py,sha256=lRzxoYP4Qv2XBwD78sOkmYRzHFpZ2ExVNJF8wAeICtY,770
14
14
  datachain/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  datachain/script_meta.py,sha256=V-LaFOZG84pD0Zc0NvejYdzwDgzITv6yHvAHggDCnuY,4978
16
- datachain/studio.py,sha256=HULrTH3lSpzoH8JBBDrXnOBlSdxjG6pf0M8bSHOakng,10113
16
+ datachain/semver.py,sha256=t_3Y5OGLEthrstBwuwrf5pXVquEuRFu3ZoGe3ajfJB8,1715
17
+ datachain/studio.py,sha256=5MSDk-pM2Na0TlK0eCStmZ47hNBvlY2WPKzCQFmBPpM,10948
17
18
  datachain/telemetry.py,sha256=0A4IOPPp9VlP5pyW9eBfaTK3YhHGzHl7dQudQjUAx9A,994
18
19
  datachain/utils.py,sha256=DNqOi-Ydb7InyWvD9m7_yailxz6-YGpZzh00biQaHNo,15305
19
20
  datachain/catalog/__init__.py,sha256=cMZzSz3VoUi-6qXSVaHYN-agxQuAcz2XSqnEPZ55crE,353
20
- datachain/catalog/catalog.py,sha256=tvPnX9eNd986hxBOtntckVNQNzw3AGWsgPJ7tRVALXU,61155
21
+ datachain/catalog/catalog.py,sha256=yQ-St_vWU9ddUoma--wc8bWgSODo1kwHyZvRwvlT4no,58469
21
22
  datachain/catalog/datasource.py,sha256=IkGMh0Ttg6Q-9DWfU_H05WUnZepbGa28HYleECi6K7I,1353
22
23
  datachain/catalog/loader.py,sha256=UXjYD6BNRoupPvkiz3-b04jepXhtLHCA4gzKFnXxOtQ,5987
23
24
  datachain/cli/__init__.py,sha256=eKCyqT05OMESHXCC93iQdqzusBdk1ptqZbBeaEghkgo,8344
24
25
  datachain/cli/utils.py,sha256=wrLnAh7Wx8O_ojZE8AE4Lxn5WoxHbOj7as8NWlLAA74,3036
25
26
  datachain/cli/commands/__init__.py,sha256=zp3bYIioO60x_X04A4-IpZqSYVnpwOa1AdERQaRlIhI,493
26
- datachain/cli/commands/datasets.py,sha256=sQ83zxHLuP04cXqBYD3iVcsr49LHA3lnjYxdL142HMk,5793
27
+ datachain/cli/commands/datasets.py,sha256=77QBkn_Enok0vzkHE0rqCbM9YQuXK1oQNdfCCSKoFKE,5793
27
28
  datachain/cli/commands/du.py,sha256=9edEzDEs98K2VYk8Wf-ZMpUzALcgm9uD6YtoqbvtUGU,391
28
29
  datachain/cli/commands/index.py,sha256=eglNaIe1yyIadUHHumjtNbgIjht6kme7SS7xE3YHR88,198
29
30
  datachain/cli/commands/ls.py,sha256=dSD2_MHng4t9HRFJZWMOCjPL4XU3qaBV3piNl8UXP08,5275
30
31
  datachain/cli/commands/misc.py,sha256=c0DmkOLwcDI2YhA8ArOuLJk6aGzSMZCiKL_E2JGibVE,600
31
32
  datachain/cli/commands/query.py,sha256=Xzfgh14nPVH-sclqX1tpZqgfdTugw5s_44v0D33z6FA,1505
32
- datachain/cli/commands/show.py,sha256=K__cCLDJLTRt-sBTMxDID0A_4dFgRRMvjDrrVWcbMUQ,1606
33
- datachain/cli/parser/__init__.py,sha256=0N3QZKJPBhcxCt5Ky83_Oa-p9RMwBz6KfMxSSMtMbz0,15913
34
- datachain/cli/parser/job.py,sha256=1TfM8qkGn0e-zixnn40Z5-Pv9h_mZncPaDAOyzjIf5k,3601
33
+ datachain/cli/commands/show.py,sha256=Cf8wBs12h-xtdOzjU5GTDy2C8rF5HJSF0hDJYER1zH8,1606
34
+ datachain/cli/parser/__init__.py,sha256=sjCIcosAtZqa0m50GMQHqmCkZSYxKyZNwQ29XwRQlP0,15913
35
+ datachain/cli/parser/job.py,sha256=dpRY6KQgooCXhQGQiebPuNuGouKk5jclkpafpQ2TDvQ,4373
35
36
  datachain/cli/parser/studio.py,sha256=Y-1OlQGecLVi9QofvWUfSlPd2ISyaESf7QFGZqGsrdw,3609
36
37
  datachain/cli/parser/utils.py,sha256=rETdD-9Hq9A4OolgfT7jQw4aoawtbfmkdtH6E7nkhpI,2888
37
38
  datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
@@ -45,11 +46,11 @@ datachain/client/s3.py,sha256=YCtDhKVO_jGsMPeyqe3xk5QsF5lqMabqkt0tPFWUHOM,7286
45
46
  datachain/data_storage/__init__.py,sha256=9Wit-oe5P46V7CJQTD0BJ5MhOa2Y9h3ddJ4VWTe-Lec,273
46
47
  datachain/data_storage/db_engine.py,sha256=n8ojCbvVMPY2e3SG8fUaaD0b9GkVfpl_Naa_6EiHfWg,3788
47
48
  datachain/data_storage/job.py,sha256=9r0OGwh22bHNIvLHqg8_-eJSP1YYB-BN5HOla5TdCxw,402
48
- datachain/data_storage/metastore.py,sha256=NZwV4LaCwCtPzwmzFV28FqnkV9g2MUvRwY06qzS7eAc,38295
49
+ datachain/data_storage/metastore.py,sha256=vo2ab-U_-BKfeFYTmvpbCoMyMZEVxrVqM9DjjTg4UPk,38309
49
50
  datachain/data_storage/schema.py,sha256=asZYz1cg_WKfe2Q-k5W51E2z2CzHU5B4QEDZDMFr8yo,9346
50
51
  datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
51
- datachain/data_storage/sqlite.py,sha256=f4tvq0gzYQP7aYGnfL3j4IBUNvctpBxI_ioFU-B1LFc,24540
52
- datachain/data_storage/warehouse.py,sha256=HYFj3HAMFtsWsmen4Xg5KTEkk5fXVT0pDWWiFW0l0UU,31516
52
+ datachain/data_storage/sqlite.py,sha256=bwZAB_NUMT2WMv5tPQnnLFA0P-PiQtxzSaQ1q6xDxOU,24590
53
+ datachain/data_storage/warehouse.py,sha256=3MFurg3Gm24xalWI03e_uHkznPxfhzTXjX7AhrKMiXQ,31516
53
54
  datachain/diff/__init__.py,sha256=YkGdiDbZIMhAZ2SJ4eSe00HU67VP1P6SL2L_t0ODYMs,9425
54
55
  datachain/fs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
56
  datachain/fs/reference.py,sha256=A8McpXF0CqbXPqanXuvpKu50YLB3a2ZXA3YAPxtBXSM,914
@@ -69,7 +70,7 @@ datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
70
  datachain/lib/arrow.py,sha256=mFO_6wRqzpEzBhXf7Xn1aeLUvaiHcC6XQ-8as9sbcgY,10253
70
71
  datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
71
72
  datachain/lib/data_model.py,sha256=ZwBXELtqROEdLL4DmxTipnwUZmhQvMz_UVDzyf7nQ9Y,2899
72
- datachain/lib/dataset_info.py,sha256=Mmo3r_MWRb-47H4QueSaUqgeENJiJZmjkTYBMpRuKM8,3128
73
+ datachain/lib/dataset_info.py,sha256=d-jz6zeDU5DEgYtyeSF5nK0MU-40FV5km_iOCh4pXzo,3179
73
74
  datachain/lib/file.py,sha256=HLQXS_WULm7Y-fkHMy0WpibVAcrkLPRS6CrZy6rwFe0,30450
74
75
  datachain/lib/hf.py,sha256=gjxuStZBlKtNk3-4yYSlWZDv9zBGblOdvEy_Lwap5hA,5882
75
76
  datachain/lib/image.py,sha256=butvUY_33PVEYPKX2nVCPeJjJVcBaptZwsE9REQsTS8,3247
@@ -77,7 +78,7 @@ datachain/lib/listing.py,sha256=lFG1Ms6jwm_uqlOcsBUpkmyeSO9TZdtNd820PEpAHP4,7077
77
78
  datachain/lib/listing_info.py,sha256=9ua40Hw0aiQByUw3oAEeNzMavJYfW0Uhe8YdCTK-m_g,1110
78
79
  datachain/lib/meta_formats.py,sha256=Epydbdch1g4CojK8wd_ePzmwmljC4fVWlJtZ16jsX-A,6349
79
80
  datachain/lib/model_store.py,sha256=DNIv8Y6Jtk1_idNLzIpsThOsdW2BMAudyUCbPUcgcxk,2515
80
- datachain/lib/pytorch.py,sha256=YS6yR13iVlrAXo5wzJswFFUHwWOql9KTdWIa86DXB-k,7712
81
+ datachain/lib/pytorch.py,sha256=elrmJ4YUDC2LZ9yXM1KwImVBOYIBJf6k0ZR7eSe6Aao,7712
81
82
  datachain/lib/settings.py,sha256=ZELRCTLbi5vzRPiDX6cQ9LLg9TefJ_A05gIGni0lll8,2535
82
83
  datachain/lib/signal_schema.py,sha256=uIBHYXtu_XpLbOUVC-kq-GduEOCfz9hQORi9ZG3JFqo,35820
83
84
  datachain/lib/tar.py,sha256=3WIzao6yD5fbLqXLTt9GhPGNonbFIs_fDRu-9vgLgsA,1038
@@ -97,17 +98,17 @@ datachain/lib/convert/values_to_tuples.py,sha256=j5yZMrVUH6W7b-7yUvdCTGI7JCUAYUO
97
98
  datachain/lib/dc/__init__.py,sha256=HD0NYrdy44u6kkpvgGjJcvGz-UGTHui2azghcT8ZUg0,838
98
99
  datachain/lib/dc/csv.py,sha256=q6a9BpapGwP6nwy6c5cklxQumep2fUp9l2LAjtTJr6s,4411
99
100
  datachain/lib/dc/database.py,sha256=g5M6NjYR1T0vKte-abV-3Ejnm-HqxTIMir5cRi_SziE,6051
100
- datachain/lib/dc/datachain.py,sha256=vIGbRi1f9pwk1fi-Dg90cdDVWvHfR2Gi22F7-E7GJ1U,77362
101
- datachain/lib/dc/datasets.py,sha256=u6hlz0Eodh_s39TOW6kz0VIL3nGfadqu8FLoWqDxSJs,6890
101
+ datachain/lib/dc/datachain.py,sha256=bshGTACAiTQP8dNvLKqhivLdK_rTa-Fx8OaOy3l3jSY,77550
102
+ datachain/lib/dc/datasets.py,sha256=iDZj_wt0Wi3gsI6TqmiwU1xUVFYNXQ7xbw4MPxQfu8o,8044
102
103
  datachain/lib/dc/hf.py,sha256=PJl2wiLjdRsMz0SYbLT-6H8b-D5i2WjeH7li8HHOk_0,2145
103
104
  datachain/lib/dc/json.py,sha256=ZUThPDAaP2gBFIL5vsQTwKBcuN_dhvC_O44wdDv0jEc,2683
104
105
  datachain/lib/dc/listings.py,sha256=2na9v63xO1vPUNaoBSzA-TSN49V7zQAb-4iS1wOPLFE,1029
105
106
  datachain/lib/dc/pandas.py,sha256=ObueUXDUFKJGu380GmazdG02ARpKAHPhSaymfmOH13E,1489
106
107
  datachain/lib/dc/parquet.py,sha256=zYcSgrWwyEDW9UxGUSVdIVsCu15IGEf0xL8KfWQqK94,1782
107
108
  datachain/lib/dc/records.py,sha256=J1I69J2gFIBjRTGr2LG-5qn_rTVzRLcr2y3tVDrmHdg,3068
108
- datachain/lib/dc/storage.py,sha256=QLf3-xMV2Gmy3AA8qF9WqAsb7R8Rk87l4s5hBoiCH98,5285
109
+ datachain/lib/dc/storage.py,sha256=Z0rqBNoss8RVHo8I3Bpc5hJBLTJfmJHRbV0SA_tR5LI,5635
109
110
  datachain/lib/dc/utils.py,sha256=VawOAlJSvAtZbsMg33s5tJe21TRx1Km3QggI1nN6tnw,3984
110
- datachain/lib/dc/values.py,sha256=cBQubhmPNEDMJldUXzGh-UKbdim4P6O2B91Gp39roKw,1389
111
+ datachain/lib/dc/values.py,sha256=7l1n352xWrEdql2NhBcZ3hj8xyPglWiY4qHjFPjn6iw,1428
111
112
  datachain/model/__init__.py,sha256=R9faX5OHV1xh2EW-g2MPedwbtEqt3LodJRyluB-QylI,189
112
113
  datachain/model/bbox.py,sha256=cQNHuQuVsh6bW3n3Hj40F2Cc20cExQ9Lg_q7R2jxUMI,9324
113
114
  datachain/model/pose.py,sha256=rjquA6M-I-Y30Xm6YSkGv1OY52hJZmR2AuxbIpE5uD0,3865
@@ -119,17 +120,17 @@ datachain/model/ultralytics/pose.py,sha256=gXAWfAk4OWZl93hKcQPKZvqJa3nIrECB4RM8K
119
120
  datachain/model/ultralytics/segment.py,sha256=koq1HASo29isf0in6oSlzmU4IzsmOXe87F1ajQQVfh4,2911
120
121
  datachain/query/__init__.py,sha256=7DhEIjAA8uZJfejruAVMZVcGFmvUpffuZJwgRqNwe-c,263
121
122
  datachain/query/batch.py,sha256=-goxLpE0EUvaDHu66rstj53UnfHpYfBUGux8GSpJ93k,4306
122
- datachain/query/dataset.py,sha256=O1sO169hiXWdf3uqigT3AJUPvjQDL3LBXXJ-0OC3SIw,59102
123
- datachain/query/dispatch.py,sha256=xNAZ5HNx48vY8Azhh3j-H_WSeAlRTQKNWKJbOAEhyPY,15398
123
+ datachain/query/dataset.py,sha256=v9xVYyft06KNvsPrA-j59krZXwRAunKvyYyJsINZpxM,59114
124
+ datachain/query/dispatch.py,sha256=15M3zlTUFKM6D2ijITX4o5QxCkRe2klkODsIDi3aQOg,15544
124
125
  datachain/query/metrics.py,sha256=DOK5HdNVaRugYPjl8qnBONvTkwjMloLqAr7Mi3TjCO0,858
125
126
  datachain/query/params.py,sha256=O_j89mjYRLOwWNhYZl-z7mi-rkdP7WyFmaDufsdTryE,863
126
127
  datachain/query/queue.py,sha256=v0UeK4ilmdiRoJ5OdjB5qpnHTYDxRP4vhVp5Iw_toaI,3512
127
128
  datachain/query/schema.py,sha256=b_KnVy6B26Ol4nYG0LqNNpeQ1QYPk95YRGUjXfdaQWs,6606
128
- datachain/query/session.py,sha256=wNdOHAi4HrsEihfzdcTlfB5i1xyj0dw6rlUz84StOoU,6512
129
+ datachain/query/session.py,sha256=3nyOvPmLiA86IdHc3BL6Dt_himtHVvaDz_I1h3hZ_gI,6512
129
130
  datachain/query/udf.py,sha256=e753bDJzTNjGFQn1WGTvOAWSwjDbrFI1-_DDWkWN2ls,1343
130
131
  datachain/query/utils.py,sha256=HaSDNH_XGvp_NIcXjcB7j4vJRPi4_tbztDWclYelHY4,1208
131
132
  datachain/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- datachain/remote/studio.py,sha256=Lz8C4aps7-4dUiRKWNHNfChJ7YFVQAS0zp14ienThOc,13187
133
+ datachain/remote/studio.py,sha256=4oypHea2NYB7br_BJTYPAmh3FH8KV835mq01Pwexrrg,13524
133
134
  datachain/sql/__init__.py,sha256=6SQRdbljO3d2hx3EAVXEZrHQKv5jth0Jh98PogT59No,262
134
135
  datachain/sql/selectable.py,sha256=cTc60qVoAwqqss0Vop8Lt5Z-ROnM1XrQmL_GLjRxhXs,1765
135
136
  datachain/sql/types.py,sha256=ASSPkmM5EzdRindqj2O7WHLXq8VHAgFYedG8lYfGvVI,14045
@@ -151,9 +152,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
151
152
  datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
152
153
  datachain/toolkit/split.py,sha256=ktGWzY4kyzjWyR86dhvzw-Zhl0lVk_LOX3NciTac6qo,2914
153
154
  datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
154
- datachain-0.16.5.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
155
- datachain-0.16.5.dist-info/METADATA,sha256=gSZHMVWTIzRdW_LPQZuY73OVmkRpXnQfEiEjwA3-xfg,11331
156
- datachain-0.16.5.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
157
- datachain-0.16.5.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
158
- datachain-0.16.5.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
159
- datachain-0.16.5.dist-info/RECORD,,
155
+ datachain-0.17.1.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
156
+ datachain-0.17.1.dist-info/METADATA,sha256=AsvQrTzywEMuvPD8NPPwUc7wsCL2W7SGbpi5i1YMMYY,11336
157
+ datachain-0.17.1.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
158
+ datachain-0.17.1.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
159
+ datachain-0.17.1.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
160
+ datachain-0.17.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5