lamindb 0.74.3__py3-none-any.whl → 0.75.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.
- lamindb/__init__.py +1 -1
- lamindb/_artifact.py +85 -43
- lamindb/_can_validate.py +100 -35
- lamindb/_collection.py +36 -28
- lamindb/_curate.py +432 -181
- lamindb/_feature_set.py +5 -5
- lamindb/_filter.py +3 -3
- lamindb/_finish.py +29 -23
- lamindb/_from_values.py +47 -66
- lamindb/_is_versioned.py +1 -1
- lamindb/_parents.py +38 -13
- lamindb/_record.py +41 -42
- lamindb/_save.py +7 -7
- lamindb/_transform.py +27 -16
- lamindb/_view.py +13 -11
- lamindb/core/__init__.py +2 -0
- lamindb/core/_data.py +18 -20
- lamindb/core/_feature_manager.py +50 -50
- lamindb/core/_label_manager.py +17 -19
- lamindb/core/_mapped_collection.py +1 -1
- lamindb/core/_run_context.py +6 -8
- lamindb/core/datasets/_core.py +7 -7
- lamindb/core/exceptions.py +11 -0
- lamindb/core/schema.py +5 -5
- lamindb/core/storage/__init__.py +12 -2
- lamindb/core/storage/_anndata_accessor.py +735 -0
- lamindb/core/storage/_backed_access.py +77 -747
- lamindb/core/storage/_valid_suffixes.py +16 -2
- lamindb/core/storage/paths.py +9 -14
- lamindb/core/types.py +3 -0
- lamindb/core/versioning.py +1 -1
- lamindb/integrations/__init__.py +1 -0
- lamindb/integrations/_vitessce.py +68 -31
- {lamindb-0.74.3.dist-info → lamindb-0.75.1.dist-info}/METADATA +5 -5
- lamindb-0.75.1.dist-info/RECORD +58 -0
- lamindb-0.74.3.dist-info/RECORD +0 -57
- {lamindb-0.74.3.dist-info → lamindb-0.75.1.dist-info}/LICENSE +0 -0
- {lamindb-0.74.3.dist-info → lamindb-0.75.1.dist-info}/WHEEL +0 -0
@@ -1,5 +1,19 @@
|
|
1
|
-
from lamindb_setup.core.upath import VALID_COMPOSITE_SUFFIXES,
|
1
|
+
from lamindb_setup.core.upath import VALID_COMPOSITE_SUFFIXES, VALID_SIMPLE_SUFFIXES
|
2
2
|
|
3
3
|
# add new composite suffixes like so
|
4
|
-
VALID_COMPOSITE_SUFFIXES.update(
|
4
|
+
VALID_COMPOSITE_SUFFIXES.update(
|
5
|
+
{
|
6
|
+
".vitessce.json",
|
7
|
+
".ome.zarr",
|
8
|
+
}
|
9
|
+
)
|
5
10
|
# can do the same for simple valid suffixes
|
11
|
+
|
12
|
+
|
13
|
+
class VALID_SUFFIXES:
|
14
|
+
"""Valid suffixes."""
|
15
|
+
|
16
|
+
SIMPLE: set[str] = VALID_SIMPLE_SUFFIXES
|
17
|
+
"""Simple suffixes."""
|
18
|
+
COMPOSITE: set[str] = VALID_COMPOSITE_SUFFIXES
|
19
|
+
"""Composite suffixes."""
|
lamindb/core/storage/paths.py
CHANGED
@@ -39,7 +39,7 @@ is_run_from_ipython = getattr(builtins, "__IPYTHON__", False)
|
|
39
39
|
|
40
40
|
# add type annotations back asap when re-organizing the module
|
41
41
|
def auto_storage_key_from_artifact(artifact: Artifact):
|
42
|
-
if artifact.key is None or artifact.
|
42
|
+
if artifact.key is None or artifact._key_is_virtual:
|
43
43
|
is_dir = artifact.n_objects is not None
|
44
44
|
return auto_storage_key_from_artifact_uid(artifact.uid, artifact.suffix, is_dir)
|
45
45
|
else:
|
@@ -56,6 +56,14 @@ def auto_storage_key_from_artifact_uid(uid: str, suffix: str, is_dir: bool) -> s
|
|
56
56
|
return storage_key
|
57
57
|
|
58
58
|
|
59
|
+
def check_path_is_child_of_root(path: Path | UPath, root: Path | UPath | None) -> bool:
|
60
|
+
# str is needed to eliminate UPath storage_options
|
61
|
+
# from the equality checks below
|
62
|
+
path = UPath(str(path))
|
63
|
+
root = UPath(str(root))
|
64
|
+
return root.resolve() in path.resolve().parents
|
65
|
+
|
66
|
+
|
59
67
|
def attempt_accessing_path(
|
60
68
|
artifact: Artifact,
|
61
69
|
storage_key: str,
|
@@ -141,19 +149,6 @@ def delete_storage(
|
|
141
149
|
storagepath: Path, raise_file_not_found_error: bool = True
|
142
150
|
) -> None | str:
|
143
151
|
"""Delete arbitrary artifact."""
|
144
|
-
# TODO is_relative_to is not available in 3.8 and deprecated since 3.12
|
145
|
-
# replace with check_path_is_child_of_root but this needs to first be debugged
|
146
|
-
# if not check_path_is_child_of_root(storagepath, settings.storage.root):
|
147
|
-
if not storagepath.is_relative_to(settings.storage.root): # type: ignore
|
148
|
-
allow_delete = False
|
149
|
-
if setup_settings.instance.keep_artifacts_local:
|
150
|
-
allow_delete = storagepath.is_relative_to( # type: ignore
|
151
|
-
setup_settings.instance.storage_local.root
|
152
|
-
)
|
153
|
-
if not allow_delete:
|
154
|
-
logger.warning("couldn't delete files outside of default storage")
|
155
|
-
return "did-not-delete"
|
156
|
-
# only delete files in the default storage
|
157
152
|
if storagepath.is_file():
|
158
153
|
storagepath.unlink()
|
159
154
|
elif storagepath.is_dir():
|
lamindb/core/types.py
CHANGED
lamindb/core/versioning.py
CHANGED
@@ -136,7 +136,7 @@ def process_is_new_version_of(
|
|
136
136
|
type: type[IsVersioned],
|
137
137
|
) -> tuple[str, str, str]:
|
138
138
|
if is_new_version_of is not None and not isinstance(is_new_version_of, type):
|
139
|
-
raise TypeError(f"is_new_version_of has to be of type {type}")
|
139
|
+
raise TypeError(f"is_new_version_of has to be of type {type.__name__}")
|
140
140
|
if is_new_version_of is None:
|
141
141
|
uid = init_uid(version=version, n_full_id=type._len_full_uid)
|
142
142
|
else:
|
lamindb/integrations/__init__.py
CHANGED
@@ -15,61 +15,98 @@ if TYPE_CHECKING:
|
|
15
15
|
from vitessce import VitessceConfig
|
16
16
|
|
17
17
|
|
18
|
-
#
|
19
|
-
|
18
|
+
# "unit test": https://github.com/laminlabs/lamindb/blob/main/docs/storage/vitessce.ipynb
|
19
|
+
# integration test & context: https://github.com/laminlabs/lamin-spatial/blob/main/docs/vitessce.ipynb
|
20
|
+
def save_vitessce_config(
|
21
|
+
vitessce_config: VitessceConfig, description: str | None = None
|
22
|
+
) -> Artifact:
|
20
23
|
"""Validates and saves a ``VitessceConfig`` object.
|
21
24
|
|
22
|
-
|
25
|
+
Guide: :doc:`docs:vitessce`.
|
23
26
|
|
24
27
|
Args:
|
25
|
-
vitessce_config (``VitessceConfig``): A VitessceConfig object.
|
26
|
-
description: A description for the artifact.
|
28
|
+
vitessce_config (``VitessceConfig``): A `VitessceConfig` object.
|
29
|
+
description: A description for the `VitessceConfig` artifact.
|
27
30
|
|
31
|
+
.. versionchanged:: 0.75.1
|
32
|
+
Now displays the "Vitessce button" on the hub next to the dataset. It additionally keeps displaying it next to the configuration file.
|
28
33
|
.. versionchanged:: 0.70.2
|
29
|
-
|
34
|
+
No longer saves the dataset. It only saves the `VitessceConfig` object.
|
30
35
|
"""
|
36
|
+
# can only import here because vitessce is not a dependency
|
37
|
+
from vitessce import VitessceConfig
|
38
|
+
|
39
|
+
from lamindb.core.storage import VALID_SUFFIXES
|
40
|
+
|
41
|
+
assert isinstance(vitessce_config, VitessceConfig) # noqa: S101
|
31
42
|
vc_dict = vitessce_config.to_dict()
|
43
|
+
valid_composite_zarr_suffixes = [
|
44
|
+
suffix for suffix in VALID_SUFFIXES.COMPOSITE if suffix.endswith(".zarr")
|
45
|
+
]
|
32
46
|
# validate
|
33
|
-
|
34
|
-
|
35
|
-
for
|
36
|
-
|
37
|
-
|
38
|
-
|
47
|
+
dataset_artifacts = []
|
48
|
+
assert vc_dict["datasets"] # noqa: S101
|
49
|
+
for vitessce_dataset in vc_dict["datasets"]:
|
50
|
+
# didn't find good ways to violate the below, hence using plain asserts
|
51
|
+
# without user feedback
|
52
|
+
assert "files" in vitessce_dataset # noqa: S101
|
53
|
+
assert vitessce_dataset["files"] # noqa: S101
|
54
|
+
for file in vitessce_dataset["files"]:
|
39
55
|
if "url" not in file:
|
40
56
|
raise ValueError("Each file must have a 'url' key.")
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
57
|
+
s3_path = file["url"]
|
58
|
+
s3_path_last_element = s3_path.split("/")[-1]
|
59
|
+
# note 1: the following parses the stem uid of the artifact from the S3 path
|
60
|
+
# there might be a better way of doing this in case the vitessce config
|
61
|
+
# gets updated in the future; but given these paths are set in stone
|
62
|
+
# this should be more robust than it looks
|
63
|
+
#
|
64
|
+
# note 2: what's not great is the fact that people might use composite suffixes we don't recognize
|
65
|
+
# I don't know what to do about it other than documenting it clearly
|
66
|
+
# https://github.com/laminlabs/lamindb/blob/main/lamindb/core/storage/_valid_suffixes.py
|
67
|
+
# https://docs.lamin.ai/lamindb.core.storage.valid_suffixes
|
68
|
+
#
|
69
|
+
# now start with attempting to strip the composite suffix candidates
|
70
|
+
for suffix in valid_composite_zarr_suffixes:
|
71
|
+
s3_path_last_element = s3_path_last_element.replace(suffix, "")
|
72
|
+
# in case there was no hit, strip plain ".zarr"
|
73
|
+
artifact_stem_uid = s3_path_last_element.replace(".zarr", "")
|
74
|
+
# if there is still a "." in string, we
|
75
|
+
if "." in artifact_stem_uid:
|
76
|
+
raise ValueError(
|
77
|
+
f"Suffix should be '.zarr' or one of {valid_composite_zarr_suffixes}. Inspect your path {s3_path}"
|
45
78
|
)
|
46
|
-
|
47
|
-
filename.replace(".anndata.zarr", "")
|
48
|
-
.replace(".spatialdata.zarr", "")
|
49
|
-
.replace(".ome.zarr", "")
|
50
|
-
)
|
51
|
-
artifact = Artifact.filter(uid__startswith=filestem).one_or_none()
|
79
|
+
artifact = Artifact.filter(uid__startswith=artifact_stem_uid).one_or_none()
|
52
80
|
if artifact is None:
|
53
|
-
|
54
|
-
f"
|
81
|
+
raise ValueError(
|
82
|
+
f"Could not find dataset with stem uid '{artifact_stem_uid}' in lamindb: {vitessce_dataset}. Did you follow https://docs.lamin.ai/vitessce? It appears the AWS S3 path doesn't encode a lamindb uid."
|
55
83
|
)
|
56
84
|
else:
|
57
|
-
|
85
|
+
dataset_artifacts.append(artifact)
|
58
86
|
# link inputs
|
59
87
|
with logger.mute():
|
60
|
-
transform = Transform(name="save_vitessce_config", type="function", version="
|
88
|
+
transform = Transform(name="save_vitessce_config", type="function", version="2")
|
61
89
|
transform.save()
|
62
90
|
run = Run(transform=transform)
|
63
91
|
run.save()
|
64
|
-
|
92
|
+
if len(dataset_artifacts) > 1:
|
93
|
+
# if we have more datasets, we should create a collection
|
94
|
+
# and attach an action to the collection
|
95
|
+
raise NotImplementedError
|
96
|
+
run.input_artifacts.set(dataset_artifacts)
|
65
97
|
# create a JSON export
|
66
98
|
config_file_local_path = (
|
67
99
|
ln_setup.settings.storage.cache_dir / "config.vitessce.json"
|
68
100
|
)
|
69
101
|
with open(config_file_local_path, "w") as file:
|
70
102
|
json.dump(vc_dict, file)
|
71
|
-
|
72
|
-
|
103
|
+
vitessce_config_artifact = Artifact(
|
104
|
+
config_file_local_path, description=description, run=run
|
105
|
+
).save()
|
106
|
+
# we have one and only one dataset artifact, hence the following line is OK
|
107
|
+
dataset_artifacts[0]._actions.add(vitessce_config_artifact)
|
73
108
|
slug = ln_setup.settings.instance.slug
|
74
|
-
logger.important(
|
75
|
-
|
109
|
+
logger.important(
|
110
|
+
f"go to: https://lamin.ai/{slug}/artifact/{vitessce_config_artifact.uid}"
|
111
|
+
)
|
112
|
+
return vitessce_config_artifact
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.75.1
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.8
|
@@ -9,10 +9,10 @@ Classifier: Programming Language :: Python :: 3.8
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.9
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
12
|
-
Requires-Dist: lnschema_core==0.
|
13
|
-
Requires-Dist: lamindb_setup==0.
|
12
|
+
Requires-Dist: lnschema_core==0.72.2
|
13
|
+
Requires-Dist: lamindb_setup==0.76.3
|
14
14
|
Requires-Dist: lamin_utils==0.13.2
|
15
|
-
Requires-Dist: lamin_cli==0.
|
15
|
+
Requires-Dist: lamin_cli==0.16.0
|
16
16
|
Requires-Dist: rapidfuzz
|
17
17
|
Requires-Dist: pyarrow
|
18
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -24,7 +24,7 @@ Requires-Dist: pandas
|
|
24
24
|
Requires-Dist: graphviz
|
25
25
|
Requires-Dist: psycopg2-binary
|
26
26
|
Requires-Dist: lamindb_setup[aws] ; extra == "aws"
|
27
|
-
Requires-Dist: bionty==0.
|
27
|
+
Requires-Dist: bionty==0.48.0 ; extra == "bionty"
|
28
28
|
Requires-Dist: pre-commit ; extra == "dev"
|
29
29
|
Requires-Dist: nox ; extra == "dev"
|
30
30
|
Requires-Dist: laminci>=0.3 ; extra == "dev"
|
@@ -0,0 +1,58 @@
|
|
1
|
+
lamindb/__init__.py,sha256=i66mHHYh9TUGKmCb5WgvaZx0flzOQyKKLcCpz01_8X0,2249
|
2
|
+
lamindb/_artifact.py,sha256=pu0d2CuRkT4xP5hLpkrKlSPU3Maihmdk1B7VKu-cjj4,42575
|
3
|
+
lamindb/_can_validate.py,sha256=jPZHhtPaZJos5bL8Mk8ZNh34mItwYRwOynhofKUxwfY,17472
|
4
|
+
lamindb/_collection.py,sha256=vrvuww4MLPx6qHqRWy6tLvRHOmXdvEjYN7dnG9DIIPU,14894
|
5
|
+
lamindb/_curate.py,sha256=M42XxtcSKSo2Vh3xCio1UogVS0kCG1Dtx5cwEwnWOEM,55508
|
6
|
+
lamindb/_feature.py,sha256=hLj5KDhIVkZrIa7IbiHGyUBGZS7PeDNxKsNK1EadBAc,7377
|
7
|
+
lamindb/_feature_set.py,sha256=DmAy96V_RyV0yiyvWOCHgustXPsCaMwn4TrWwh2qDd8,8104
|
8
|
+
lamindb/_filter.py,sha256=I1tSIF-izmD48YpB8NtKmau59Vpt6C54RPHWc3oinGM,1412
|
9
|
+
lamindb/_finish.py,sha256=3rGY4RxhcKR1BIdgf6GPB03AArhlV5vYtD6wxtTHYxE,10817
|
10
|
+
lamindb/_from_values.py,sha256=tE6LKWbixZWbt-ILsy2EeRh7i9eKvvAeJv081VQRGAk,12859
|
11
|
+
lamindb/_is_versioned.py,sha256=Z_zVsHTnNaWvD15dEz18VocsSgka53jUzs_wDr78ltI,1344
|
12
|
+
lamindb/_parents.py,sha256=eMavdd6IO6STOVJSlR2TzdRtx6sKYDKsMOtlR3DZlgQ,15599
|
13
|
+
lamindb/_query_manager.py,sha256=6_ZqQr0SKTYsbMtJd5BmaMoyASIVel5v2F1KMgacWlU,4252
|
14
|
+
lamindb/_query_set.py,sha256=LM5NsAWy5FCZZSxX1VbE20RdA5nsyk4_5p4abuMjdcI,11662
|
15
|
+
lamindb/_record.py,sha256=XtNKZol9X5u3h1fecDhOn5Z1OpTXunQ9UrZwcHSiajM,19219
|
16
|
+
lamindb/_run.py,sha256=xj3ER4F_yWvuNw1mr0XU-QuIPi5hBO7Ue0ygBgJQ6mc,1887
|
17
|
+
lamindb/_save.py,sha256=9lpFpQLgmPOp6JcoM9XetNkbYu2JgY70sGQZVz3Gzmw,11027
|
18
|
+
lamindb/_storage.py,sha256=GBVChv-DHVMNEBJL5l_JT6B4RDhZ6NnwgzmUICphYKk,413
|
19
|
+
lamindb/_transform.py,sha256=OtZmCSS-mxWPJU0S6p79sYauY-cKIxqBYfeMX0-SQ_A,3435
|
20
|
+
lamindb/_ulabel.py,sha256=XDSdZBXX_ki5s1vOths3MjF2x5DPggBR_PV_KF4SGyg,1611
|
21
|
+
lamindb/_utils.py,sha256=LGdiW4k3GClLz65vKAVRkL6Tw-Gkx9DWAdez1jyA5bE,428
|
22
|
+
lamindb/_view.py,sha256=4Ln2ItTb3857PAI-70O8eJYqoTJ_NNFc7E_wds6OGns,2412
|
23
|
+
lamindb/core/__init__.py,sha256=uCtTkcUwJ7w40cWdaVBymiyxMuKlkdX-QZMtOr3k0us,1441
|
24
|
+
lamindb/core/_data.py,sha256=AbBVvutI7iFZW5PVEYzx0HIlaLhR9KpnoPyba9OI86k,16253
|
25
|
+
lamindb/core/_feature_manager.py,sha256=gJowe9-tifi0Z5IcChV-jtGYVdl6XgR2m_oswwhU17Y,31980
|
26
|
+
lamindb/core/_label_manager.py,sha256=5jbBF9aYPeeqpDZDimAXskGw76YUaQTQak6XAt6madU,9183
|
27
|
+
lamindb/core/_mapped_collection.py,sha256=wN2qEXnKrx0kqblVml_Kx9hYomUAZLYKckGXX4-9dr0,19621
|
28
|
+
lamindb/core/_run_context.py,sha256=bk4hwbGbx1no-JKVpLioIOU5dyO8YCdg-srbQV7UuGE,18371
|
29
|
+
lamindb/core/_settings.py,sha256=sDfIfq9H7H8nUE51FJF4EO_Zihlxh44S3GbaliHKJY4,6108
|
30
|
+
lamindb/core/_sync_git.py,sha256=qc0yfPyKeG4uuNT_3qsv-mkIMqhLFqfXNeNVO49vV00,4547
|
31
|
+
lamindb/core/_track_environment.py,sha256=STzEVUzOeUEWdX7WDJUkKH4u08k7eupRX6AXQwoVt14,828
|
32
|
+
lamindb/core/exceptions.py,sha256=rNLDlqDJt6stM_HGeE9qR0oWRNn4Kq0WDdIi85P53VA,1057
|
33
|
+
lamindb/core/fields.py,sha256=47Jmh3efUr5ZscgimR_yckY-I3cNf8ScLutbwKCK3j4,162
|
34
|
+
lamindb/core/schema.py,sha256=KiYQn_8fokSMztTNDe6qUocZzKXWxU32H-YChNJv51A,1877
|
35
|
+
lamindb/core/types.py,sha256=uVBqSVLoQaTkqP9nqsJhwU6yYnx8H5e6-ZxrB6vpOOw,265
|
36
|
+
lamindb/core/versioning.py,sha256=8fapNQmpxlUaiJG9oo9Y4I7xtFXzD077dMwzkeWTMMY,4965
|
37
|
+
lamindb/core/datasets/__init__.py,sha256=zRP98oqUAaXhqWyKMiH0s_ImVIuNeziQQ2kQ_t0f-DI,1353
|
38
|
+
lamindb/core/datasets/_core.py,sha256=04mqj3IVIpY97HlD7VVL6-E6tf7za9suzE3lH07Z698,19564
|
39
|
+
lamindb/core/datasets/_fake.py,sha256=BZF9R_1iF0HDnvtZNqL2FtsjSMuqDIfuFxnw_LJYIh4,953
|
40
|
+
lamindb/core/storage/__init__.py,sha256=MjKg2-p8EbOYTVsgufnK93ut7HG7_MzLDAqtzXt0U2Q,501
|
41
|
+
lamindb/core/storage/_anndata_accessor.py,sha256=jmEZeeZlt8-qBXRkU0tTA-t6dVEb_dH86wc1ok0jSRY,24030
|
42
|
+
lamindb/core/storage/_anndata_sizes.py,sha256=aXO3OB--tF5MChenSsigW6Q-RuE8YJJOUTVukkLrv9A,1029
|
43
|
+
lamindb/core/storage/_backed_access.py,sha256=MsSgiIccHVhqOcur2lZ4mj5LSIL5OL8nX4eqK6mloU0,4732
|
44
|
+
lamindb/core/storage/_valid_suffixes.py,sha256=9erE4FX1ArRoTkvn5pzUmlKQSYnKeQBymOnOPCv2TD4,465
|
45
|
+
lamindb/core/storage/_zarr.py,sha256=5ceEz6YIvgvUnVVNWhK5Z4W0WfrvyvY82Yna5jSX1_E,3661
|
46
|
+
lamindb/core/storage/objects.py,sha256=OzvBCS-Urz5mr-O95qYt6RGBDDX5HmjfRRKWPPDn1ZE,1797
|
47
|
+
lamindb/core/storage/paths.py,sha256=I0UjQfXfh3MptfLgpA0iSyR-X9pLOvgtXNr4B_Lwk4g,7810
|
48
|
+
lamindb/core/subsettings/__init__.py,sha256=KFHPzIE7f7Bj4RgMjGQF4CjTdHVG_VNFBrCndo49ixo,198
|
49
|
+
lamindb/core/subsettings/_creation_settings.py,sha256=54mfMH_osC753hpxcl7Dq1rwBD2LHnWveXtQpkLBITE,1194
|
50
|
+
lamindb/core/subsettings/_transform_settings.py,sha256=4YbCuZtJo6zdytl6UQR4GvdDkTtT6SRBqVzofGzNOt8,583
|
51
|
+
lamindb/integrations/__init__.py,sha256=MoLRD_qqX5WHFUAqHL6zoY_cDkWH0zimaGT_1CyXKnk,124
|
52
|
+
lamindb/integrations/_vitessce.py,sha256=jcpLUNFq1BsDpZDkG5L3nzWNXDLuy3Eep_GfY0XqhhA,5077
|
53
|
+
lamindb/setup/__init__.py,sha256=OwZpZzPDv5lPPGXZP7-zK6UdO4FHvvuBh439yZvIp3A,410
|
54
|
+
lamindb/setup/core/__init__.py,sha256=SevlVrc2AZWL3uALbE5sopxBnIZPWZ1IB0NBDudiAL8,167
|
55
|
+
lamindb-0.75.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
56
|
+
lamindb-0.75.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
57
|
+
lamindb-0.75.1.dist-info/METADATA,sha256=dhUZDNTu6BtE-J67uGuRwJMQEJk8V_NpEurzVc90GoM,2669
|
58
|
+
lamindb-0.75.1.dist-info/RECORD,,
|
lamindb-0.74.3.dist-info/RECORD
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
lamindb/__init__.py,sha256=VfwmNQfCefzn3jsRS2l3fnV7jub1RpMj4aVCFh09vxI,2249
|
2
|
-
lamindb/_artifact.py,sha256=pdSMBuZnlr-Jfot8p90x7TEbto-viXyryax5p1FljEs,40133
|
3
|
-
lamindb/_can_validate.py,sha256=CUu-lBY9XnSYGWiazYhLMW5H0LuuR86mVbU7UnIZTVU,15010
|
4
|
-
lamindb/_collection.py,sha256=P4UjZxC2OcViTmqSeW3NIiXU3C0ZF5BF9P6YcchS2Zg,14617
|
5
|
-
lamindb/_curate.py,sha256=i3pqkNvgXtOXXmw7zPgnr7BT3KnZDBw8DyxuyPkhwbo,44898
|
6
|
-
lamindb/_feature.py,sha256=hLj5KDhIVkZrIa7IbiHGyUBGZS7PeDNxKsNK1EadBAc,7377
|
7
|
-
lamindb/_feature_set.py,sha256=nsiT9mKfEJdh2yqihOawfFL0mkHRNi5-9vxRllv5NAM,8137
|
8
|
-
lamindb/_filter.py,sha256=Ed9k-LOkr1BwqeHpvaEe0w27cG7Bu0BaXPDA0OIzUpQ,1410
|
9
|
-
lamindb/_finish.py,sha256=FRGN2cmBbZqmxr803YIpGGUaqst8xBTi3kmliV5oJo4,10504
|
10
|
-
lamindb/_from_values.py,sha256=SGTQNb0M1h3icuYsfIIjqI7xNy3i3Frw_-PAl5MXMBo,13860
|
11
|
-
lamindb/_is_versioned.py,sha256=8pXW2gkLTZsTxRERuWZLidiagNIC8evmCmnbztWkVQ4,1343
|
12
|
-
lamindb/_parents.py,sha256=Zgi9Lmw9td18Y0QJ96rYaBrjSaZ8XGcseWdbJkpJhFU,15061
|
13
|
-
lamindb/_query_manager.py,sha256=6_ZqQr0SKTYsbMtJd5BmaMoyASIVel5v2F1KMgacWlU,4252
|
14
|
-
lamindb/_query_set.py,sha256=LM5NsAWy5FCZZSxX1VbE20RdA5nsyk4_5p4abuMjdcI,11662
|
15
|
-
lamindb/_record.py,sha256=5B0mMvEoZ0gZ6MALy6bsbDOVU47pkVEhRCBVwVJnNwg,19150
|
16
|
-
lamindb/_run.py,sha256=xj3ER4F_yWvuNw1mr0XU-QuIPi5hBO7Ue0ygBgJQ6mc,1887
|
17
|
-
lamindb/_save.py,sha256=xs1ZdTYGd78zA3XqXhiwZ_QKAogLdHCQv1EBVFDWCis,11020
|
18
|
-
lamindb/_storage.py,sha256=GBVChv-DHVMNEBJL5l_JT6B4RDhZ6NnwgzmUICphYKk,413
|
19
|
-
lamindb/_transform.py,sha256=E9C7psuOnsNrUQpWRuGgEUM8_pc7YhDn7n4ieHzB4X0,3169
|
20
|
-
lamindb/_ulabel.py,sha256=XDSdZBXX_ki5s1vOths3MjF2x5DPggBR_PV_KF4SGyg,1611
|
21
|
-
lamindb/_utils.py,sha256=LGdiW4k3GClLz65vKAVRkL6Tw-Gkx9DWAdez1jyA5bE,428
|
22
|
-
lamindb/_view.py,sha256=_sAcSD06bC92R_LLDcHMhO0IfOqybBXXRYxOXvm1Juc,2322
|
23
|
-
lamindb/core/__init__.py,sha256=HtyYVFrS6RclSk7gZty9vgXU0k2_oZiqFPfqghBc4Fc,1415
|
24
|
-
lamindb/core/_data.py,sha256=yk2ozTt-mNIA8bWllmcC__WgFukj03fZU41rr_ultlM,16264
|
25
|
-
lamindb/core/_feature_manager.py,sha256=EvMoY9EAFGdbRkDR44YMJBMWBEt9IbtfZ0RHmiv0D58,31910
|
26
|
-
lamindb/core/_label_manager.py,sha256=udG70H1FucAr4lmtFMgAcMJiAcYvoZIyT034NO93YF8,9265
|
27
|
-
lamindb/core/_mapped_collection.py,sha256=SGUsR6RbjNzUOq6A6wTa4M4GkLMuP4Z70WOeF39WPCU,19618
|
28
|
-
lamindb/core/_run_context.py,sha256=w_LdfwYTncCZmh4agNPey37UdKrzSglLfLUNBe5z1mw,18421
|
29
|
-
lamindb/core/_settings.py,sha256=sDfIfq9H7H8nUE51FJF4EO_Zihlxh44S3GbaliHKJY4,6108
|
30
|
-
lamindb/core/_sync_git.py,sha256=qc0yfPyKeG4uuNT_3qsv-mkIMqhLFqfXNeNVO49vV00,4547
|
31
|
-
lamindb/core/_track_environment.py,sha256=STzEVUzOeUEWdX7WDJUkKH4u08k7eupRX6AXQwoVt14,828
|
32
|
-
lamindb/core/exceptions.py,sha256=bbm-PeSy24qFcqh2HpucZWpwGAvk-TL_3FUoAPb3e3E,867
|
33
|
-
lamindb/core/fields.py,sha256=47Jmh3efUr5ZscgimR_yckY-I3cNf8ScLutbwKCK3j4,162
|
34
|
-
lamindb/core/schema.py,sha256=sNrzWnqeyh9Ppr7yImlSAXiHb_VJdB5DWuO-QERxQGY,1847
|
35
|
-
lamindb/core/types.py,sha256=xeQF2x40p2pR9eIVQrXT74RrS810z2fbjmTRTSQUqPM,230
|
36
|
-
lamindb/core/versioning.py,sha256=lz1JP3K-0npeSTZPY7kMVXqOOcB8IEGmdG0Si3kSdN8,4956
|
37
|
-
lamindb/core/datasets/__init__.py,sha256=zRP98oqUAaXhqWyKMiH0s_ImVIuNeziQQ2kQ_t0f-DI,1353
|
38
|
-
lamindb/core/datasets/_core.py,sha256=NhMELgF4aR9HAlU37BF3FkPLobxinRbMJ8s6XwgIqEM,19549
|
39
|
-
lamindb/core/datasets/_fake.py,sha256=BZF9R_1iF0HDnvtZNqL2FtsjSMuqDIfuFxnw_LJYIh4,953
|
40
|
-
lamindb/core/storage/__init__.py,sha256=5LUFQKRr2BX24d-yWBezhTXBV83sShcOvPj5Y5u6qIg,441
|
41
|
-
lamindb/core/storage/_anndata_sizes.py,sha256=aXO3OB--tF5MChenSsigW6Q-RuE8YJJOUTVukkLrv9A,1029
|
42
|
-
lamindb/core/storage/_backed_access.py,sha256=4VmnqGd5DH6xJ5UQ7JMiQ2dfs-uLBnVlJXkZB8GcJHI,26624
|
43
|
-
lamindb/core/storage/_valid_suffixes.py,sha256=J08aglC9oo35pzahj0SQXW9IHib8Asp4dc11co-2uys,212
|
44
|
-
lamindb/core/storage/_zarr.py,sha256=5ceEz6YIvgvUnVVNWhK5Z4W0WfrvyvY82Yna5jSX1_E,3661
|
45
|
-
lamindb/core/storage/objects.py,sha256=OzvBCS-Urz5mr-O95qYt6RGBDDX5HmjfRRKWPPDn1ZE,1797
|
46
|
-
lamindb/core/storage/paths.py,sha256=IAtZTkYB0Q1vlVkx-7c-zBjQtlKVdwojemNgqVTOUC0,8255
|
47
|
-
lamindb/core/subsettings/__init__.py,sha256=KFHPzIE7f7Bj4RgMjGQF4CjTdHVG_VNFBrCndo49ixo,198
|
48
|
-
lamindb/core/subsettings/_creation_settings.py,sha256=54mfMH_osC753hpxcl7Dq1rwBD2LHnWveXtQpkLBITE,1194
|
49
|
-
lamindb/core/subsettings/_transform_settings.py,sha256=4YbCuZtJo6zdytl6UQR4GvdDkTtT6SRBqVzofGzNOt8,583
|
50
|
-
lamindb/integrations/__init__.py,sha256=aH2PmO2m4-vwIifMYTB0Fyyr_gZWtVnV71jT0tVWSw0,123
|
51
|
-
lamindb/integrations/_vitessce.py,sha256=VC80NKuzZ0FdjFxaLvyD78kAUNwvwBnGblSPDqT_mGQ,2737
|
52
|
-
lamindb/setup/__init__.py,sha256=OwZpZzPDv5lPPGXZP7-zK6UdO4FHvvuBh439yZvIp3A,410
|
53
|
-
lamindb/setup/core/__init__.py,sha256=SevlVrc2AZWL3uALbE5sopxBnIZPWZ1IB0NBDudiAL8,167
|
54
|
-
lamindb-0.74.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
55
|
-
lamindb-0.74.3.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
56
|
-
lamindb-0.74.3.dist-info/METADATA,sha256=v0qwjHuybQfWzw2juEC3T31Ot74DQtbjlUR2Rhzg4Yg,2669
|
57
|
-
lamindb-0.74.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|