datachain 0.32.2__py3-none-any.whl → 0.32.3__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/data_storage/metastore.py +16 -24
- datachain/lib/file.py +14 -6
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/METADATA +1 -1
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/RECORD +8 -8
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/WHEEL +0 -0
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/entry_points.txt +0 -0
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/licenses/LICENSE +0 -0
- {datachain-0.32.2.dist-info → datachain-0.32.3.dist-info}/top_level.txt +0 -0
|
@@ -689,9 +689,6 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
689
689
|
return self._projects.select()
|
|
690
690
|
return select(*columns)
|
|
691
691
|
|
|
692
|
-
def _projects_update(self) -> "Update":
|
|
693
|
-
return self._projects.update()
|
|
694
|
-
|
|
695
692
|
def _projects_delete(self) -> "Delete":
|
|
696
693
|
return self._projects.delete()
|
|
697
694
|
|
|
@@ -839,6 +836,16 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
839
836
|
|
|
840
837
|
return self.get_project(name, namespace.name)
|
|
841
838
|
|
|
839
|
+
def _projects_base_query(self) -> "Select":
|
|
840
|
+
n = self._namespaces
|
|
841
|
+
p = self._projects
|
|
842
|
+
|
|
843
|
+
query = self._projects_select(
|
|
844
|
+
*(getattr(n.c, f) for f in self._namespaces_fields),
|
|
845
|
+
*(getattr(p.c, f) for f in self._projects_fields),
|
|
846
|
+
)
|
|
847
|
+
return query.select_from(n.join(p, n.c.id == p.c.namespace_id))
|
|
848
|
+
|
|
842
849
|
def get_project(
|
|
843
850
|
self, name: str, namespace_name: str, create: bool = False, conn=None
|
|
844
851
|
) -> Project:
|
|
@@ -854,11 +861,7 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
854
861
|
create = True
|
|
855
862
|
validate = False
|
|
856
863
|
|
|
857
|
-
query = self.
|
|
858
|
-
*(getattr(n.c, f) for f in self._namespaces_fields),
|
|
859
|
-
*(getattr(p.c, f) for f in self._projects_fields),
|
|
860
|
-
)
|
|
861
|
-
query = query.select_from(n.join(p, n.c.id == p.c.namespace_id)).where(
|
|
864
|
+
query = self._projects_base_query().where(
|
|
862
865
|
p.c.name == name, n.c.name == namespace_name
|
|
863
866
|
)
|
|
864
867
|
|
|
@@ -873,16 +876,9 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
873
876
|
|
|
874
877
|
def get_project_by_id(self, project_id: int, conn=None) -> Project:
|
|
875
878
|
"""Gets a single project by id"""
|
|
876
|
-
n = self._namespaces
|
|
877
879
|
p = self._projects
|
|
878
880
|
|
|
879
|
-
query = self.
|
|
880
|
-
*(getattr(n.c, f) for f in self._namespaces_fields),
|
|
881
|
-
*(getattr(p.c, f) for f in self._projects_fields),
|
|
882
|
-
)
|
|
883
|
-
query = query.select_from(n.join(p, n.c.id == p.c.namespace_id)).where(
|
|
884
|
-
p.c.id == project_id
|
|
885
|
-
)
|
|
881
|
+
query = self._projects_base_query().where(p.c.id == project_id)
|
|
886
882
|
|
|
887
883
|
rows = list(self.db.execute(query, conn=conn))
|
|
888
884
|
if not rows:
|
|
@@ -891,7 +887,8 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
891
887
|
|
|
892
888
|
def count_projects(self, namespace_id: Optional[int] = None) -> int:
|
|
893
889
|
p = self._projects
|
|
894
|
-
|
|
890
|
+
|
|
891
|
+
query = self._projects_base_query()
|
|
895
892
|
if namespace_id:
|
|
896
893
|
query = query.where(p.c.namespace_id == namespace_id)
|
|
897
894
|
|
|
@@ -917,17 +914,12 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
917
914
|
"""
|
|
918
915
|
Gets a list of projects inside some namespace, or in all namespaces
|
|
919
916
|
"""
|
|
920
|
-
n = self._namespaces
|
|
921
917
|
p = self._projects
|
|
922
918
|
|
|
923
|
-
query = self.
|
|
924
|
-
*(getattr(n.c, f) for f in self._namespaces_fields),
|
|
925
|
-
*(getattr(p.c, f) for f in self._projects_fields),
|
|
926
|
-
)
|
|
927
|
-
query = query.select_from(n.join(p, n.c.id == p.c.namespace_id))
|
|
919
|
+
query = self._projects_base_query()
|
|
928
920
|
|
|
929
921
|
if namespace_id:
|
|
930
|
-
query = query.where(
|
|
922
|
+
query = query.where(p.c.namespace_id == namespace_id)
|
|
931
923
|
|
|
932
924
|
rows = list(self.db.execute(query, conn=conn))
|
|
933
925
|
|
datachain/lib/file.py
CHANGED
|
@@ -332,7 +332,10 @@ class File(DataModel):
|
|
|
332
332
|
|
|
333
333
|
@classmethod
|
|
334
334
|
def upload(
|
|
335
|
-
cls,
|
|
335
|
+
cls,
|
|
336
|
+
data: bytes,
|
|
337
|
+
path: Union[str, os.PathLike[str]],
|
|
338
|
+
catalog: Optional["Catalog"] = None,
|
|
336
339
|
) -> "Self":
|
|
337
340
|
if catalog is None:
|
|
338
341
|
from datachain.catalog.loader import get_catalog
|
|
@@ -340,8 +343,10 @@ class File(DataModel):
|
|
|
340
343
|
catalog = get_catalog()
|
|
341
344
|
from datachain.client.fsspec import Client
|
|
342
345
|
|
|
343
|
-
|
|
344
|
-
|
|
346
|
+
path_str = stringify_path(path)
|
|
347
|
+
|
|
348
|
+
client_cls = Client.get_implementation(path_str)
|
|
349
|
+
source, rel_path = client_cls.split_url(path_str)
|
|
345
350
|
|
|
346
351
|
client = catalog.get_client(client_cls.get_uri(source))
|
|
347
352
|
file = client.upload(data, rel_path)
|
|
@@ -351,7 +356,9 @@ class File(DataModel):
|
|
|
351
356
|
return file
|
|
352
357
|
|
|
353
358
|
@classmethod
|
|
354
|
-
def at(
|
|
359
|
+
def at(
|
|
360
|
+
cls, uri: Union[str, os.PathLike[str]], session: Optional["Session"] = None
|
|
361
|
+
) -> "Self":
|
|
355
362
|
"""Construct a File from a full URI in one call.
|
|
356
363
|
|
|
357
364
|
Example:
|
|
@@ -364,9 +371,10 @@ class File(DataModel):
|
|
|
364
371
|
if session is None:
|
|
365
372
|
session = Session.get()
|
|
366
373
|
catalog = session.catalog
|
|
374
|
+
uri_str = stringify_path(uri)
|
|
367
375
|
|
|
368
|
-
client_cls = Client.get_implementation(
|
|
369
|
-
source, rel_path = client_cls.split_url(
|
|
376
|
+
client_cls = Client.get_implementation(uri_str)
|
|
377
|
+
source, rel_path = client_cls.split_url(uri_str)
|
|
370
378
|
file = cls(source=client_cls.get_uri(source), path=rel_path)
|
|
371
379
|
file._set_stream(catalog)
|
|
372
380
|
return file
|
|
@@ -49,7 +49,7 @@ datachain/client/s3.py,sha256=6DNVGLg-woPS1DVlYVX2rIlunNblsuxyOnI1rSzhW3k,7515
|
|
|
49
49
|
datachain/data_storage/__init__.py,sha256=9Wit-oe5P46V7CJQTD0BJ5MhOa2Y9h3ddJ4VWTe-Lec,273
|
|
50
50
|
datachain/data_storage/db_engine.py,sha256=n8ojCbvVMPY2e3SG8fUaaD0b9GkVfpl_Naa_6EiHfWg,3788
|
|
51
51
|
datachain/data_storage/job.py,sha256=ZkeXCNUj_VCkoKYx29hqB4AcfVUielnRjY-GYUcUxt4,426
|
|
52
|
-
datachain/data_storage/metastore.py,sha256=
|
|
52
|
+
datachain/data_storage/metastore.py,sha256=SrcMeHAjzwTbX8A3WEZ3zzQzVW1n7uamrGDtQXqucyE,55810
|
|
53
53
|
datachain/data_storage/schema.py,sha256=o3JbURKXRg3IJyIVA4QjHHkn6byRuz7avbydU2FlvNY,9897
|
|
54
54
|
datachain/data_storage/serializer.py,sha256=6G2YtOFqqDzJf1KbvZraKGXl2XHZyVml2krunWUum5o,927
|
|
55
55
|
datachain/data_storage/sqlite.py,sha256=1fIeIhmB3O8oQVzP8dDKap0KUIgI0n2TdBQSyv0R8J4,30345
|
|
@@ -75,7 +75,7 @@ datachain/lib/audio.py,sha256=fQmIBq-9hrUZtkgeJdPHYA_D8Wfe9D4cQZk4_ijxpNc,7580
|
|
|
75
75
|
datachain/lib/clip.py,sha256=ae6uoiymOl53rBXwIfqJkbHrk_IA21R1uJwXo5454C4,6145
|
|
76
76
|
datachain/lib/data_model.py,sha256=Rjah76GHwIV6AZQk4rsdg6JLre5D8Kb9T4PS5SXzsPA,3740
|
|
77
77
|
datachain/lib/dataset_info.py,sha256=7w-DoKOyIVoOtWGCgciMLcP5CiAWJB3rVI-vUDF80k0,3311
|
|
78
|
-
datachain/lib/file.py,sha256=
|
|
78
|
+
datachain/lib/file.py,sha256=FNM9XBn5uxOwaRedlL-aCYQ1CXboFaeQh5WzJXU3WhA,47505
|
|
79
79
|
datachain/lib/hf.py,sha256=3xdvPQPilnJiGv3H4S4bTGqvrGGlZgZmqjE1n_SMJZg,7293
|
|
80
80
|
datachain/lib/image.py,sha256=erWvZW5M3emnbl6_fGAOPyKm-1EKbt3vOdWPfe3Oo7U,3265
|
|
81
81
|
datachain/lib/listing.py,sha256=U-2stsTEwEsq4Y80dqGfktGzkmB5-ZntnL1_rzXlH0k,7089
|
|
@@ -161,9 +161,9 @@ datachain/sql/sqlite/vector.py,sha256=ncW4eu2FlJhrP_CIpsvtkUabZlQdl2D5Lgwy_cbfqR
|
|
|
161
161
|
datachain/toolkit/__init__.py,sha256=eQ58Q5Yf_Fgv1ZG0IO5dpB4jmP90rk8YxUWmPc1M2Bo,68
|
|
162
162
|
datachain/toolkit/split.py,sha256=ktGWzY4kyzjWyR86dhvzw-Zhl0lVk_LOX3NciTac6qo,2914
|
|
163
163
|
datachain/torch/__init__.py,sha256=gIS74PoEPy4TB3X6vx9nLO0Y3sLJzsA8ckn8pRWihJM,579
|
|
164
|
-
datachain-0.32.
|
|
165
|
-
datachain-0.32.
|
|
166
|
-
datachain-0.32.
|
|
167
|
-
datachain-0.32.
|
|
168
|
-
datachain-0.32.
|
|
169
|
-
datachain-0.32.
|
|
164
|
+
datachain-0.32.3.dist-info/licenses/LICENSE,sha256=8DnqK5yoPI_E50bEg_zsHKZHY2HqPy4rYN338BHQaRA,11344
|
|
165
|
+
datachain-0.32.3.dist-info/METADATA,sha256=MJCn0xaCu7eOuQl8AXKTFX4HTvPqtBPY93rCvcUcoBg,13607
|
|
166
|
+
datachain-0.32.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
167
|
+
datachain-0.32.3.dist-info/entry_points.txt,sha256=0GMJS6B_KWq0m3VT98vQI2YZodAMkn4uReZ_okga9R4,49
|
|
168
|
+
datachain-0.32.3.dist-info/top_level.txt,sha256=lZPpdU_2jJABLNIg2kvEOBi8PtsYikbN1OdMLHk8bTg,10
|
|
169
|
+
datachain-0.32.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|