datachain 0.18.8__py3-none-any.whl → 0.18.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/cache.py +1 -1
- datachain/client/fsspec.py +3 -5
- datachain/client/local.py +4 -4
- datachain/lib/arrow.py +2 -2
- datachain/lib/file.py +23 -77
- datachain/lib/tar.py +2 -1
- datachain/lib/webdataset.py +1 -1
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/METADATA +1 -1
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/RECORD +13 -13
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/WHEEL +0 -0
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/entry_points.txt +0 -0
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/licenses/LICENSE +0 -0
- {datachain-0.18.8.dist-info → datachain-0.18.9.dist-info}/top_level.txt +0 -0
datachain/cache.py
CHANGED
|
@@ -76,9 +76,9 @@ class Cache:
|
|
|
76
76
|
async def download(
|
|
77
77
|
self, file: "File", client: "Client", callback: Optional[Callback] = None
|
|
78
78
|
) -> None:
|
|
79
|
+
from_path = f"{file.source}/{file.path}"
|
|
79
80
|
from dvc_objects.fs.utils import tmp_fname
|
|
80
81
|
|
|
81
|
-
from_path = file.get_uri()
|
|
82
82
|
odb_fs = self.odb.fs
|
|
83
83
|
tmp_info = odb_fs.join(self.odb.tmp_dir, tmp_fname()) # type: ignore[arg-type]
|
|
84
84
|
size = file.size
|
datachain/client/fsspec.py
CHANGED
|
@@ -207,14 +207,13 @@ class Client(ABC):
|
|
|
207
207
|
)
|
|
208
208
|
|
|
209
209
|
async def get_current_etag(self, file: "File") -> str:
|
|
210
|
-
file_path = file.get_path_normalized()
|
|
211
210
|
kwargs = {}
|
|
212
211
|
if self._is_version_aware():
|
|
213
212
|
kwargs["version_id"] = file.version
|
|
214
213
|
info = await self.fs._info(
|
|
215
|
-
self.get_full_path(
|
|
214
|
+
self.get_full_path(file.path, file.version), **kwargs
|
|
216
215
|
)
|
|
217
|
-
return self.info_to_file(info,
|
|
216
|
+
return self.info_to_file(info, file.path).etag
|
|
218
217
|
|
|
219
218
|
def get_file_info(self, path: str, version_id: Optional[str] = None) -> "File":
|
|
220
219
|
info = self.fs.info(self.get_full_path(path, version_id), version_id=version_id)
|
|
@@ -386,8 +385,7 @@ class Client(ABC):
|
|
|
386
385
|
return open(cache_path, mode="rb")
|
|
387
386
|
assert not file.location
|
|
388
387
|
return FileWrapper(
|
|
389
|
-
self.fs.open(self.get_full_path(file.
|
|
390
|
-
cb,
|
|
388
|
+
self.fs.open(self.get_full_path(file.path, file.version)), cb
|
|
391
389
|
) # type: ignore[return-value]
|
|
392
390
|
|
|
393
391
|
def upload(self, data: bytes, path: str) -> "File":
|
datachain/client/local.py
CHANGED
|
@@ -99,7 +99,7 @@ class FileClient(Client):
|
|
|
99
99
|
)
|
|
100
100
|
|
|
101
101
|
async def get_current_etag(self, file: "File") -> str:
|
|
102
|
-
info = self.fs.info(self.get_full_path(file.
|
|
102
|
+
info = self.fs.info(self.get_full_path(file.path))
|
|
103
103
|
return self.info_to_file(info, "").etag
|
|
104
104
|
|
|
105
105
|
async def get_size(self, path: str, version_id: Optional[str] = None) -> int:
|
|
@@ -138,8 +138,8 @@ class FileClient(Client):
|
|
|
138
138
|
if not self.use_symlinks:
|
|
139
139
|
super().fetch_nodes(nodes, shared_progress_bar)
|
|
140
140
|
|
|
141
|
-
def do_instantiate_object(self,
|
|
141
|
+
def do_instantiate_object(self, uid, dst):
|
|
142
142
|
if self.use_symlinks:
|
|
143
|
-
os.symlink(Path(self.name,
|
|
143
|
+
os.symlink(Path(self.name, uid.path), dst)
|
|
144
144
|
else:
|
|
145
|
-
super().do_instantiate_object(
|
|
145
|
+
super().do_instantiate_object(uid, dst)
|
datachain/lib/arrow.py
CHANGED
|
@@ -76,7 +76,7 @@ class ArrowGenerator(Generator):
|
|
|
76
76
|
fs_path = file.path
|
|
77
77
|
fs = ReferenceFileSystem({fs_path: [cache_path]})
|
|
78
78
|
else:
|
|
79
|
-
fs, fs_path = file.get_fs(), file.
|
|
79
|
+
fs, fs_path = file.get_fs(), file.get_path()
|
|
80
80
|
|
|
81
81
|
kwargs = self.kwargs
|
|
82
82
|
if format := kwargs.get("format"):
|
|
@@ -161,7 +161,7 @@ def infer_schema(chain: "DataChain", **kwargs) -> pa.Schema:
|
|
|
161
161
|
|
|
162
162
|
schemas = []
|
|
163
163
|
for file in chain.collect("file"):
|
|
164
|
-
ds = dataset(file.
|
|
164
|
+
ds = dataset(file.get_path(), filesystem=file.get_fs(), **kwargs) # type: ignore[union-attr]
|
|
165
165
|
schemas.append(ds.schema)
|
|
166
166
|
if not schemas:
|
|
167
167
|
raise ValueError(
|
datachain/lib/file.py
CHANGED
|
@@ -5,14 +5,13 @@ import json
|
|
|
5
5
|
import logging
|
|
6
6
|
import os
|
|
7
7
|
import posixpath
|
|
8
|
-
import warnings
|
|
9
8
|
from abc import ABC, abstractmethod
|
|
10
9
|
from collections.abc import Iterator
|
|
11
10
|
from contextlib import contextmanager
|
|
12
11
|
from datetime import datetime
|
|
13
12
|
from functools import partial
|
|
14
13
|
from io import BytesIO
|
|
15
|
-
from pathlib import Path,
|
|
14
|
+
from pathlib import Path, PurePosixPath
|
|
16
15
|
from typing import TYPE_CHECKING, Any, ClassVar, Literal, Optional, Union
|
|
17
16
|
from urllib.parse import unquote, urlparse
|
|
18
17
|
from urllib.request import url2pathname
|
|
@@ -70,7 +69,7 @@ class FileExporter(NodesThreadPool):
|
|
|
70
69
|
for task in done:
|
|
71
70
|
task.result()
|
|
72
71
|
|
|
73
|
-
def do_task(self, file
|
|
72
|
+
def do_task(self, file):
|
|
74
73
|
file.export(
|
|
75
74
|
self.output,
|
|
76
75
|
self.placement,
|
|
@@ -257,8 +256,8 @@ class File(DataModel):
|
|
|
257
256
|
|
|
258
257
|
@field_validator("path", mode="before")
|
|
259
258
|
@classmethod
|
|
260
|
-
def validate_path(cls, path
|
|
261
|
-
return
|
|
259
|
+
def validate_path(cls, path):
|
|
260
|
+
return Path(path).as_posix() if path else ""
|
|
262
261
|
|
|
263
262
|
def model_dump_custom(self):
|
|
264
263
|
res = self.model_dump()
|
|
@@ -320,11 +319,11 @@ class File(DataModel):
|
|
|
320
319
|
return cls(**{key: row[key] for key in cls._datachain_column_types})
|
|
321
320
|
|
|
322
321
|
@property
|
|
323
|
-
def name(self)
|
|
322
|
+
def name(self):
|
|
324
323
|
return PurePosixPath(self.path).name
|
|
325
324
|
|
|
326
325
|
@property
|
|
327
|
-
def parent(self)
|
|
326
|
+
def parent(self):
|
|
328
327
|
return str(PurePosixPath(self.path).parent)
|
|
329
328
|
|
|
330
329
|
@contextmanager
|
|
@@ -367,7 +366,7 @@ class File(DataModel):
|
|
|
367
366
|
|
|
368
367
|
client.upload(self.read(), destination)
|
|
369
368
|
|
|
370
|
-
def _symlink_to(self, destination: str)
|
|
369
|
+
def _symlink_to(self, destination: str):
|
|
371
370
|
if self.location:
|
|
372
371
|
raise OSError(errno.ENOTSUP, "Symlinking virtual file is not supported")
|
|
373
372
|
|
|
@@ -376,7 +375,7 @@ class File(DataModel):
|
|
|
376
375
|
source = self.get_local_path()
|
|
377
376
|
assert source, "File was not cached"
|
|
378
377
|
elif self.source.startswith("file://"):
|
|
379
|
-
source = self.
|
|
378
|
+
source = self.get_path()
|
|
380
379
|
else:
|
|
381
380
|
raise OSError(errno.EXDEV, "can't link across filesystems")
|
|
382
381
|
|
|
@@ -453,62 +452,27 @@ class File(DataModel):
|
|
|
453
452
|
|
|
454
453
|
def get_file_ext(self):
|
|
455
454
|
"""Returns last part of file name without `.`."""
|
|
456
|
-
return PurePosixPath(self.path).suffix.
|
|
455
|
+
return PurePosixPath(self.path).suffix.strip(".")
|
|
457
456
|
|
|
458
457
|
def get_file_stem(self):
|
|
459
458
|
"""Returns file name without extension."""
|
|
460
459
|
return PurePosixPath(self.path).stem
|
|
461
460
|
|
|
462
461
|
def get_full_name(self):
|
|
463
|
-
"""
|
|
464
|
-
[DEPRECATED] Use `file.path` directly instead.
|
|
465
|
-
|
|
466
|
-
Returns name with parent directories.
|
|
467
|
-
"""
|
|
468
|
-
warnings.warn(
|
|
469
|
-
"file.get_full_name() is deprecated and will be removed "
|
|
470
|
-
"in a future version. Use `file.path` directly.",
|
|
471
|
-
DeprecationWarning,
|
|
472
|
-
stacklevel=2,
|
|
473
|
-
)
|
|
462
|
+
"""Returns name with parent directories."""
|
|
474
463
|
return self.path
|
|
475
464
|
|
|
476
|
-
def
|
|
477
|
-
if not self.path:
|
|
478
|
-
raise FileError("path must not be empty", self.source, self.path)
|
|
479
|
-
|
|
480
|
-
if self.path.endswith("/"):
|
|
481
|
-
raise FileError("path must not be a directory", self.source, self.path)
|
|
482
|
-
|
|
483
|
-
normpath = os.path.normpath(self.path)
|
|
484
|
-
normpath = PurePath(normpath).as_posix()
|
|
485
|
-
|
|
486
|
-
if normpath == ".":
|
|
487
|
-
raise FileError("path must not be a directory", self.source, self.path)
|
|
488
|
-
|
|
489
|
-
if any(part == ".." for part in PurePath(normpath).parts):
|
|
490
|
-
raise FileError("path must not contain '..'", self.source, self.path)
|
|
491
|
-
|
|
492
|
-
return normpath
|
|
493
|
-
|
|
494
|
-
def get_uri(self) -> str:
|
|
465
|
+
def get_uri(self):
|
|
495
466
|
"""Returns file URI."""
|
|
496
|
-
return f"{self.source}/{self.
|
|
497
|
-
|
|
498
|
-
def get_fs_path(self) -> str:
|
|
499
|
-
"""
|
|
500
|
-
Returns file path with respect to the filescheme.
|
|
501
|
-
|
|
502
|
-
If `normalize` is True, the path is normalized to remove any redundant
|
|
503
|
-
separators and up-level references.
|
|
467
|
+
return f"{self.source}/{self.get_full_name()}"
|
|
504
468
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
"""
|
|
469
|
+
def get_path(self) -> str:
|
|
470
|
+
"""Returns file path."""
|
|
508
471
|
path = unquote(self.get_uri())
|
|
509
|
-
|
|
510
|
-
if
|
|
511
|
-
path =
|
|
472
|
+
source = urlparse(self.source)
|
|
473
|
+
if source.scheme == "file":
|
|
474
|
+
path = urlparse(path).path
|
|
475
|
+
path = url2pathname(path)
|
|
512
476
|
return path
|
|
513
477
|
|
|
514
478
|
def get_destination_path(
|
|
@@ -523,7 +487,7 @@ class File(DataModel):
|
|
|
523
487
|
elif placement == "etag":
|
|
524
488
|
path = f"{self.etag}{self.get_file_suffix()}"
|
|
525
489
|
elif placement == "fullpath":
|
|
526
|
-
path = unquote(self.
|
|
490
|
+
path = unquote(self.get_full_name())
|
|
527
491
|
source = urlparse(self.source)
|
|
528
492
|
if source.scheme and source.scheme != "file":
|
|
529
493
|
path = posixpath.join(source.netloc, path)
|
|
@@ -561,9 +525,8 @@ class File(DataModel):
|
|
|
561
525
|
) from e
|
|
562
526
|
|
|
563
527
|
try:
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
converted_info = client.info_to_file(info, normalized_path)
|
|
528
|
+
info = client.fs.info(client.get_full_path(self.path))
|
|
529
|
+
converted_info = client.info_to_file(info, self.path)
|
|
567
530
|
return type(self)(
|
|
568
531
|
path=self.path,
|
|
569
532
|
source=self.source,
|
|
@@ -574,17 +537,8 @@ class File(DataModel):
|
|
|
574
537
|
last_modified=converted_info.last_modified,
|
|
575
538
|
location=self.location,
|
|
576
539
|
)
|
|
577
|
-
except FileError as e:
|
|
578
|
-
logger.warning(
|
|
579
|
-
"File error when resolving %s/%s: %s", self.source, self.path, str(e)
|
|
580
|
-
)
|
|
581
540
|
except (FileNotFoundError, PermissionError, OSError) as e:
|
|
582
|
-
logger.warning(
|
|
583
|
-
"File system error when resolving %s/%s: %s",
|
|
584
|
-
self.source,
|
|
585
|
-
self.path,
|
|
586
|
-
str(e),
|
|
587
|
-
)
|
|
541
|
+
logger.warning("File system error when resolving %s: %s", self.path, str(e))
|
|
588
542
|
|
|
589
543
|
return type(self)(
|
|
590
544
|
path=self.path,
|
|
@@ -600,8 +554,6 @@ class File(DataModel):
|
|
|
600
554
|
|
|
601
555
|
def resolve(file: File) -> File:
|
|
602
556
|
"""
|
|
603
|
-
[DEPRECATED] Use `file.resolve()` directly instead.
|
|
604
|
-
|
|
605
557
|
Resolve a File object by checking its existence and updating its metadata.
|
|
606
558
|
|
|
607
559
|
This function is a wrapper around the File.resolve() method, designed to be
|
|
@@ -617,12 +569,6 @@ def resolve(file: File) -> File:
|
|
|
617
569
|
RuntimeError: If the file's catalog is not set or if
|
|
618
570
|
the file source protocol is unsupported.
|
|
619
571
|
"""
|
|
620
|
-
warnings.warn(
|
|
621
|
-
"resolve() is deprecated and will be removed "
|
|
622
|
-
"in a future version. Use file.resolve() directly.",
|
|
623
|
-
DeprecationWarning,
|
|
624
|
-
stacklevel=2,
|
|
625
|
-
)
|
|
626
572
|
return file.resolve()
|
|
627
573
|
|
|
628
574
|
|
|
@@ -970,7 +916,7 @@ class ArrowRow(DataModel):
|
|
|
970
916
|
ds = dataset(path, **self.kwargs)
|
|
971
917
|
|
|
972
918
|
else:
|
|
973
|
-
path = self.file.
|
|
919
|
+
path = self.file.get_path()
|
|
974
920
|
ds = dataset(path, filesystem=self.file.get_fs(), **self.kwargs)
|
|
975
921
|
|
|
976
922
|
return ds.take([self.index]).to_reader()
|
datachain/lib/tar.py
CHANGED
|
@@ -6,11 +6,12 @@ from datachain.lib.file import File, TarVFile
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def build_tar_member(parent: File, info: tarfile.TarInfo) -> File:
|
|
9
|
+
new_parent = parent.get_full_name()
|
|
9
10
|
etag_string = "-".join([parent.etag, info.name, str(info.mtime)])
|
|
10
11
|
etag = hashlib.md5(etag_string.encode(), usedforsecurity=False).hexdigest()
|
|
11
12
|
return File(
|
|
12
13
|
source=parent.source,
|
|
13
|
-
path=f"{
|
|
14
|
+
path=f"{new_parent}/{info.name}",
|
|
14
15
|
version=parent.version,
|
|
15
16
|
size=info.size,
|
|
16
17
|
etag=etag,
|
datachain/lib/webdataset.py
CHANGED
|
@@ -35,7 +35,7 @@ warnings.filterwarnings(
|
|
|
35
35
|
|
|
36
36
|
class WDSError(DataChainError):
|
|
37
37
|
def __init__(self, tar_stream, message: str):
|
|
38
|
-
super().__init__(f"WebDataset error '{tar_stream.
|
|
38
|
+
super().__init__(f"WebDataset error '{tar_stream.get_full_name()}': {message}")
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
class CoreFileDuplicationError(WDSError):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
datachain/__init__.py,sha256=Dx_Dw6AuvC_CZtXxfRv0Z-ND6ieC4Cz-tZkMW-Rvmz4,1496
|
|
2
2
|
datachain/__main__.py,sha256=hG3Y4ARGEqe1AWwNMd259rBlqtphx1Wk39YbueQ0yV8,91
|
|
3
3
|
datachain/asyn.py,sha256=RH_jFwJcTXxhEFomaI9yL6S3Onau6NZ6FSKfKFGtrJE,9689
|
|
4
|
-
datachain/cache.py,sha256=
|
|
4
|
+
datachain/cache.py,sha256=yQblPhOh_Mq74Ma7xT1CL1idLJ0HgrQxpGVYvRy_9Eg,3623
|
|
5
5
|
datachain/config.py,sha256=g8qbNV0vW2VEKpX-dGZ9pAn0DAz6G2ZFcr7SAV3PoSM,4272
|
|
6
6
|
datachain/dataset.py,sha256=XUZ-kSBL1y6juFqlSWXXbattGS1E53lXpyhc0Ip1_AA,20527
|
|
7
7
|
datachain/delta.py,sha256=q-ritPMxgsTh53qJYd2N1TqZ3Inxc7GJ9JED9rE-Z1M,3994
|
|
@@ -39,10 +39,10 @@ datachain/cli/parser/utils.py,sha256=rETdD-9Hq9A4OolgfT7jQw4aoawtbfmkdtH6E7nkhpI
|
|
|
39
39
|
datachain/client/__init__.py,sha256=1kDpCPoibMXi1gExR4lTLc5pi-k6M5TANiwtXkPoLhU,49
|
|
40
40
|
datachain/client/azure.py,sha256=7yyAgANHfu9Kfh187MKNTT1guvu9Q-WYsi4vYoY3aew,3270
|
|
41
41
|
datachain/client/fileslice.py,sha256=bT7TYco1Qe3bqoc8aUkUZcPdPofJDHlryL5BsTn9xsY,3021
|
|
42
|
-
datachain/client/fsspec.py,sha256=
|
|
42
|
+
datachain/client/fsspec.py,sha256=c8oRBUMo31k8bMB_mIA60PDfna4nYTdslzHqmqL2Uvg,13918
|
|
43
43
|
datachain/client/gcs.py,sha256=8hcFhEHp8qGRsJoyfCoawfuwb1Et-MSkyQoM9AnNuXI,5204
|
|
44
44
|
datachain/client/hf.py,sha256=posnI5WOKOMG1yY_ZiV9Orcd24QsUPKZlOXgJVLxxrM,1558
|
|
45
|
-
datachain/client/local.py,sha256=
|
|
45
|
+
datachain/client/local.py,sha256=cGoCYflribzexiOe-Y1qbaE2fJRh-_EgQrfCSa0yK_E,4568
|
|
46
46
|
datachain/client/s3.py,sha256=6DNVGLg-woPS1DVlYVX2rIlunNblsuxyOnI1rSzhW3k,7515
|
|
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
|
|
@@ -68,11 +68,11 @@ datachain/func/random.py,sha256=t7jwXsI8-hy0qAdvjAntgzy-AHtTAfozlZ1CpKR-QZE,458
|
|
|
68
68
|
datachain/func/string.py,sha256=X9u4ip97U63RCaKRhMddoze7HgPiY3LbPRn9G06UWWo,7311
|
|
69
69
|
datachain/func/window.py,sha256=ImyRpc1QI8QUSPO7KdD60e_DPVo7Ja0G5kcm6BlyMcw,1584
|
|
70
70
|
datachain/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
datachain/lib/arrow.py,sha256=
|
|
71
|
+
datachain/lib/arrow.py,sha256=mFO_6wRqzpEzBhXf7Xn1aeLUvaiHcC6XQ-8as9sbcgY,10253
|
|
72
72
|
datachain/lib/clip.py,sha256=lm5CzVi4Cj1jVLEKvERKArb-egb9j1Ls-fwTItT6vlI,6150
|
|
73
73
|
datachain/lib/data_model.py,sha256=ZwBXELtqROEdLL4DmxTipnwUZmhQvMz_UVDzyf7nQ9Y,2899
|
|
74
74
|
datachain/lib/dataset_info.py,sha256=d-jz6zeDU5DEgYtyeSF5nK0MU-40FV5km_iOCh4pXzo,3179
|
|
75
|
-
datachain/lib/file.py,sha256
|
|
75
|
+
datachain/lib/file.py,sha256=mzc7_fpHAkVhs4z3jBUhFQzPEbODdXJpzjVfby2IkC4,31117
|
|
76
76
|
datachain/lib/hf.py,sha256=gjxuStZBlKtNk3-4yYSlWZDv9zBGblOdvEy_Lwap5hA,5882
|
|
77
77
|
datachain/lib/image.py,sha256=erWvZW5M3emnbl6_fGAOPyKm-1EKbt3vOdWPfe3Oo7U,3265
|
|
78
78
|
datachain/lib/listing.py,sha256=5_GoATtIwCtd1JMqlorPB_vQDxndOQZpiWjNOG3NMw4,7007
|
|
@@ -82,13 +82,13 @@ datachain/lib/model_store.py,sha256=DNIv8Y6Jtk1_idNLzIpsThOsdW2BMAudyUCbPUcgcxk,
|
|
|
82
82
|
datachain/lib/pytorch.py,sha256=elrmJ4YUDC2LZ9yXM1KwImVBOYIBJf6k0ZR7eSe6Aao,7712
|
|
83
83
|
datachain/lib/settings.py,sha256=ZELRCTLbi5vzRPiDX6cQ9LLg9TefJ_A05gIGni0lll8,2535
|
|
84
84
|
datachain/lib/signal_schema.py,sha256=Zhg8qThFDf9eoNWFH6KGeYB-sIGys7A_ybq2CUBG7Dg,36127
|
|
85
|
-
datachain/lib/tar.py,sha256=
|
|
85
|
+
datachain/lib/tar.py,sha256=3WIzao6yD5fbLqXLTt9GhPGNonbFIs_fDRu-9vgLgsA,1038
|
|
86
86
|
datachain/lib/text.py,sha256=UNHm8fhidk7wdrWqacEWaA6I9ykfYqarQ2URby7jc7M,1261
|
|
87
87
|
datachain/lib/udf.py,sha256=FWqA476ygdk4MU-0qehYKxvnt8Tekh21Cyf3RgddD1k,16674
|
|
88
88
|
datachain/lib/udf_signature.py,sha256=2EtsOPDNSPqcOlYwqbCdy6RF5MldI-7smii8aLy8p7Y,7543
|
|
89
89
|
datachain/lib/utils.py,sha256=rG2y7NwTqZOuomZZRmrA-Q-ANM_j1cToQYqDJoOeGyU,1480
|
|
90
90
|
datachain/lib/video.py,sha256=u6fLJWj5G6QqsVkpfHnKGklBNpG3BRRg6v3izngnNcU,6767
|
|
91
|
-
datachain/lib/webdataset.py,sha256=
|
|
91
|
+
datachain/lib/webdataset.py,sha256=o7SHk5HOUWsZ5Ln04xOM04eQqiBHiJNO7xLgyVBrwo8,6924
|
|
92
92
|
datachain/lib/webdataset_laion.py,sha256=xvT6m_r5y0KbOx14BUe7UC5mOgrktJq53Mh-H0EVlUE,2525
|
|
93
93
|
datachain/lib/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
94
|
datachain/lib/convert/flatten.py,sha256=IZFiUYbgXSxXhPSG5Cqf5IjnJ4ZDZKXMr4o_yCR1NY4,1505
|
|
@@ -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.
|
|
157
|
-
datachain-0.18.
|
|
158
|
-
datachain-0.18.
|
|
159
|
-
datachain-0.18.
|
|
160
|
-
datachain-0.18.
|
|
161
|
-
datachain-0.18.
|
|
156
|
+
datachain-0.18.9.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
|
|
157
|
+
datachain-0.18.9.dist-info/METADATA,sha256=0BhJEeQiYf41Rg7DLgJ-WtiUu9cpwwUtVwo__lPaMAw,11319
|
|
158
|
+
datachain-0.18.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
159
|
+
datachain-0.18.9.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
|
|
160
|
+
datachain-0.18.9.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
|
|
161
|
+
datachain-0.18.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|