lamindb 0.76.12__py3-none-any.whl → 0.76.14__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 +8 -9
- lamindb/_collection.py +18 -5
- lamindb/_curate.py +242 -137
- lamindb/_feature_set.py +3 -1
- lamindb/_from_values.py +1 -5
- lamindb/_parents.py +18 -3
- lamindb/_query_manager.py +0 -15
- lamindb/_query_set.py +8 -4
- lamindb/_record.py +82 -6
- lamindb/core/__init__.py +2 -0
- lamindb/core/_context.py +1 -1
- lamindb/core/_data.py +19 -7
- lamindb/core/_django.py +19 -5
- lamindb/core/_feature_manager.py +80 -44
- lamindb/core/_label_manager.py +91 -93
- lamindb/core/exceptions.py +7 -0
- lamindb/core/schema.py +42 -3
- lamindb/core/types.py +1 -0
- {lamindb-0.76.12.dist-info → lamindb-0.76.14.dist-info}/METADATA +6 -6
- {lamindb-0.76.12.dist-info → lamindb-0.76.14.dist-info}/RECORD +23 -23
- {lamindb-0.76.12.dist-info → lamindb-0.76.14.dist-info}/LICENSE +0 -0
- {lamindb-0.76.12.dist-info → lamindb-0.76.14.dist-info}/WHEEL +0 -0
lamindb/core/_label_manager.py
CHANGED
@@ -26,32 +26,19 @@ if TYPE_CHECKING:
|
|
26
26
|
|
27
27
|
from lamindb._query_set import QuerySet
|
28
28
|
|
29
|
+
LABELS_EXCLUDE_SET = {"feature_sets"}
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
"input_of_runs",
|
35
|
-
"collections",
|
36
|
-
"_source_code_artifact_of",
|
37
|
-
"_report_of",
|
38
|
-
"_environment_of",
|
39
|
-
"links_collection",
|
40
|
-
"links_artifact",
|
41
|
-
"links_feature_set",
|
42
|
-
"previous_runs",
|
43
|
-
"_feature_values",
|
44
|
-
"_action_targets",
|
45
|
-
"_lnschema_core_collection__actions_+", # something seems off with this one
|
46
|
-
"_actions",
|
47
|
-
}
|
31
|
+
|
32
|
+
def get_labels_as_dict(
|
33
|
+
self: Artifact | Collection, links: bool = False, instance: str | None = None
|
34
|
+
) -> dict:
|
48
35
|
labels = {} # type: ignore
|
49
36
|
if self.id is None:
|
50
37
|
return labels
|
51
38
|
for related_model_name, related_name in dict_related_model_to_related_name(
|
52
|
-
self.__class__, links=links
|
39
|
+
self.__class__, links=links, instance=instance
|
53
40
|
).items():
|
54
|
-
if related_name not in
|
41
|
+
if related_name not in LABELS_EXCLUDE_SET and not related_name.startswith("_"):
|
55
42
|
labels[related_name] = (
|
56
43
|
related_model_name,
|
57
44
|
getattr(self, related_name).all(),
|
@@ -86,18 +73,15 @@ def print_labels(
|
|
86
73
|
labels_msg = _print_labels_postgres(self, m2m_data, print_types)
|
87
74
|
else:
|
88
75
|
labels_msg = ""
|
89
|
-
for related_name, (related_model, labels) in get_labels_as_dict(
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
labels_msg += f" .{related_name}{type_str} = {print_values}\n"
|
99
|
-
except Exception: # noqa: S112
|
100
|
-
continue
|
76
|
+
for related_name, (related_model, labels) in get_labels_as_dict(
|
77
|
+
self, instance=self._state.db
|
78
|
+
).items():
|
79
|
+
field = get_name_field(labels)
|
80
|
+
labels_list = list(labels.values_list(field, flat=True))
|
81
|
+
if len(labels_list) > 0:
|
82
|
+
print_values = _print_values(labels_list, n=10)
|
83
|
+
type_str = f": {related_model}" if print_types else ""
|
84
|
+
labels_msg += f" .{related_name}{type_str} = {print_values}\n"
|
101
85
|
|
102
86
|
msg = ""
|
103
87
|
if labels_msg:
|
@@ -214,75 +198,89 @@ class LabelManager:
|
|
214
198
|
>>> artifact1.ulabels.set(labels)
|
215
199
|
>>> artifact2.labels.add_from(artifact1)
|
216
200
|
"""
|
217
|
-
from django.db.utils import ProgrammingError
|
218
|
-
|
219
201
|
if transfer_logs is None:
|
220
202
|
transfer_logs = {"mapped": [], "transferred": [], "run": None}
|
221
203
|
using_key = settings._using_key
|
222
|
-
for related_name, (_, labels) in get_labels_as_dict(
|
204
|
+
for related_name, (_, labels) in get_labels_as_dict(
|
205
|
+
data, instance=self._host._state.db
|
206
|
+
).items():
|
223
207
|
labels = labels.all()
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
208
|
+
if not labels.exists():
|
209
|
+
continue
|
210
|
+
# look for features
|
211
|
+
data_name_lower = data.__class__.__name__.lower()
|
212
|
+
labels_by_features = defaultdict(list)
|
213
|
+
features = set()
|
214
|
+
_, new_labels = validate_labels(labels)
|
215
|
+
if len(new_labels) > 0:
|
216
|
+
transfer_fk_to_default_db_bulk(
|
217
|
+
new_labels, using_key, transfer_logs=transfer_logs
|
218
|
+
)
|
219
|
+
for label in labels:
|
220
|
+
# if the link table doesn't follow this convention, we'll ignore it
|
221
|
+
if not hasattr(label, f"links_{data_name_lower}"):
|
222
|
+
key = None
|
223
|
+
else:
|
224
|
+
link = getattr(label, f"links_{data_name_lower}").get(
|
225
|
+
**{f"{data_name_lower}_id": data.id}
|
235
226
|
)
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
key = None
|
227
|
+
if link.feature is not None:
|
228
|
+
features.add(link.feature)
|
229
|
+
key = link.feature.name
|
240
230
|
else:
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
231
|
+
key = None
|
232
|
+
label_returned = transfer_to_default_db(
|
233
|
+
label,
|
234
|
+
using_key,
|
235
|
+
transfer_logs=transfer_logs,
|
236
|
+
transfer_fk=False,
|
237
|
+
save=True,
|
238
|
+
)
|
239
|
+
# TODO: refactor return value of transfer to default db
|
240
|
+
if label_returned is not None:
|
241
|
+
label = label_returned
|
242
|
+
labels_by_features[key].append(label)
|
243
|
+
# treat features
|
244
|
+
_, new_features = validate_labels(list(features))
|
245
|
+
if len(new_features) > 0:
|
246
|
+
transfer_fk_to_default_db_bulk(
|
247
|
+
new_features, using_key, transfer_logs=transfer_logs
|
248
|
+
)
|
249
|
+
for feature in new_features:
|
250
|
+
transfer_to_default_db(
|
251
|
+
feature,
|
251
252
|
using_key,
|
252
253
|
transfer_logs=transfer_logs,
|
253
254
|
transfer_fk=False,
|
254
|
-
save=True,
|
255
255
|
)
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
256
|
+
save(new_features)
|
257
|
+
if hasattr(self._host, related_name):
|
258
|
+
for feature_name, labels in labels_by_features.items():
|
259
|
+
if feature_name is not None:
|
260
|
+
feature_id = Feature.get(name=feature_name).id
|
261
|
+
else:
|
262
|
+
feature_id = None
|
263
|
+
getattr(self._host, related_name).add(
|
264
|
+
*labels, through_defaults={"feature_id": feature_id}
|
265
265
|
)
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
)
|
288
|
-
continue
|
266
|
+
|
267
|
+
def make_external(self, label: Record):
|
268
|
+
"""Make a label external, aka dissociate label from internal features.
|
269
|
+
|
270
|
+
Args:
|
271
|
+
label: Label record to make external.
|
272
|
+
"""
|
273
|
+
d = dict_related_model_to_related_name(self._host)
|
274
|
+
registry = label.__class__
|
275
|
+
related_name = d.get(registry.__get_name_with_schema__())
|
276
|
+
link_model = getattr(self._host, related_name).through
|
277
|
+
link_records = link_model.filter(
|
278
|
+
artifact_id=self._host.id, **{f"{registry.__name__.lower()}_id": label.id}
|
279
|
+
)
|
280
|
+
features = link_records.values_list("feature__name", flat=True).distinct()
|
281
|
+
s = "s" if len(features) > 1 else ""
|
282
|
+
link_records.update(feature_id=None, feature_ref_is_name=None)
|
283
|
+
logger.warning(
|
284
|
+
f'{registry.__name__} "{getattr(label, label._name_field)}" is no longer associated with the following feature{s}:\n'
|
285
|
+
f"{list(features)}"
|
286
|
+
)
|
lamindb/core/exceptions.py
CHANGED
@@ -11,6 +11,7 @@
|
|
11
11
|
MissingContextUID
|
12
12
|
UpdateContext
|
13
13
|
IntegrityError
|
14
|
+
RecordNameChangeIntegrityError
|
14
15
|
|
15
16
|
"""
|
16
17
|
|
@@ -57,6 +58,12 @@ class InconsistentKey(Exception):
|
|
57
58
|
pass
|
58
59
|
|
59
60
|
|
61
|
+
class RecordNameChangeIntegrityError(SystemExit):
|
62
|
+
"""Custom exception for name change errors."""
|
63
|
+
|
64
|
+
pass
|
65
|
+
|
66
|
+
|
60
67
|
# -------------------------------------------------------------------------------------
|
61
68
|
# run context
|
62
69
|
# -------------------------------------------------------------------------------------
|
lamindb/core/schema.py
CHANGED
@@ -1,31 +1,66 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
import lamindb_setup as ln_setup
|
3
4
|
from django.db.models import ManyToManyField
|
5
|
+
from lamindb_setup._connect_instance import (
|
6
|
+
get_owner_name_from_identifier,
|
7
|
+
load_instance_settings,
|
8
|
+
)
|
9
|
+
from lamindb_setup.core._settings_store import instance_settings_file
|
4
10
|
from lnschema_core.models import Feature, FeatureSet, LinkORM, Record
|
5
11
|
|
6
12
|
|
7
|
-
def
|
13
|
+
def get_schemas_modules(instance: str | None) -> set[str]:
|
14
|
+
if instance is None or instance == "default":
|
15
|
+
schema_modules = set(ln_setup.settings.instance.schema)
|
16
|
+
schema_modules.add("core")
|
17
|
+
return schema_modules
|
18
|
+
owner, name = get_owner_name_from_identifier(instance)
|
19
|
+
settings_file = instance_settings_file(name, owner)
|
20
|
+
if settings_file.exists():
|
21
|
+
schema = set(load_instance_settings(settings_file).schema)
|
22
|
+
else:
|
23
|
+
cache_filepath = (
|
24
|
+
ln_setup.settings.cache_dir / f"instance--{owner}--{name}--uid.txt"
|
25
|
+
)
|
26
|
+
if cache_filepath.exists():
|
27
|
+
schema = set(cache_filepath.read_text().split("\n")[1].split(","))
|
28
|
+
else:
|
29
|
+
raise ValueError(f"Instance {instance} not found")
|
30
|
+
shared_schema_modules = set(ln_setup.settings.instance.schema).intersection(schema)
|
31
|
+
shared_schema_modules.add("core")
|
32
|
+
return shared_schema_modules
|
33
|
+
|
34
|
+
|
35
|
+
def dict_schema_name_to_model_name(
|
36
|
+
registry: type[Record], instance: str | None = None
|
37
|
+
) -> dict[str, Record]:
|
38
|
+
schema_modules = get_schemas_modules(instance)
|
8
39
|
d: dict = {
|
9
40
|
i.related_model.__get_name_with_schema__(): i.related_model
|
10
41
|
for i in registry._meta.related_objects
|
11
42
|
if i.related_name is not None
|
43
|
+
and i.related_model.__get_schema_name__() in schema_modules
|
12
44
|
}
|
13
45
|
d.update(
|
14
46
|
{
|
15
47
|
i.related_model.__get_name_with_schema__(): i.related_model
|
16
48
|
for i in registry._meta.many_to_many
|
17
49
|
if i.name is not None
|
50
|
+
and i.related_model.__get_schema_name__() in schema_modules
|
18
51
|
}
|
19
52
|
)
|
20
53
|
return d
|
21
54
|
|
22
55
|
|
23
56
|
def dict_related_model_to_related_name(
|
24
|
-
registry: type[Record], links: bool = False
|
57
|
+
registry: type[Record], links: bool = False, instance: str | None = None
|
25
58
|
) -> dict[str, str]:
|
26
59
|
def include(model: Record):
|
27
60
|
return not links != issubclass(model, LinkORM)
|
28
61
|
|
62
|
+
schema_modules = get_schemas_modules(instance)
|
63
|
+
|
29
64
|
related_objects = registry._meta.related_objects + registry._meta.many_to_many
|
30
65
|
d: dict = {
|
31
66
|
record.related_model.__get_name_with_schema__(): (
|
@@ -34,7 +69,11 @@ def dict_related_model_to_related_name(
|
|
34
69
|
else record.name
|
35
70
|
)
|
36
71
|
for record in related_objects
|
37
|
-
if (
|
72
|
+
if (
|
73
|
+
record.name is not None
|
74
|
+
and include(record.related_model)
|
75
|
+
and record.related_model.__get_schema_name__() in schema_modules
|
76
|
+
)
|
38
77
|
}
|
39
78
|
return d
|
40
79
|
|
lamindb/core/types.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.76.
|
3
|
+
Version: 0.76.14
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.9
|
@@ -8,9 +8,9 @@ Description-Content-Type: text/markdown
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.9
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
11
|
-
Requires-Dist: lnschema_core==0.
|
12
|
-
Requires-Dist: lamin_utils==0.13.
|
13
|
-
Requires-Dist: lamin_cli==0.
|
11
|
+
Requires-Dist: lnschema_core==0.76.0
|
12
|
+
Requires-Dist: lamin_utils==0.13.7
|
13
|
+
Requires-Dist: lamin_cli==0.20.1
|
14
14
|
Requires-Dist: lamindb_setup
|
15
15
|
Requires-Dist: rapidfuzz
|
16
16
|
Requires-Dist: pyarrow
|
@@ -23,7 +23,7 @@ Requires-Dist: pandas
|
|
23
23
|
Requires-Dist: graphviz
|
24
24
|
Requires-Dist: psycopg2-binary
|
25
25
|
Requires-Dist: lamindb_setup[aws] ; extra == "aws"
|
26
|
-
Requires-Dist: bionty==0.
|
26
|
+
Requires-Dist: bionty==0.52.0 ; extra == "bionty"
|
27
27
|
Requires-Dist: line_profiler ; extra == "dev"
|
28
28
|
Requires-Dist: pre-commit ; extra == "dev"
|
29
29
|
Requires-Dist: nox ; extra == "dev"
|
@@ -37,7 +37,7 @@ Requires-Dist: faker-biology ; extra == "dev"
|
|
37
37
|
Requires-Dist: django-schema-graph ; extra == "erdiagram"
|
38
38
|
Requires-Dist: readfcs>=1.1.8 ; extra == "fcs"
|
39
39
|
Requires-Dist: lamindb_setup[gcp] ; extra == "gcp"
|
40
|
-
Requires-Dist: nbproject==0.10.
|
40
|
+
Requires-Dist: nbproject==0.10.5 ; extra == "jupyter"
|
41
41
|
Requires-Dist: jupytext ; extra == "jupyter"
|
42
42
|
Requires-Dist: nbconvert ; extra == "jupyter"
|
43
43
|
Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
|
@@ -1,18 +1,18 @@
|
|
1
|
-
lamindb/__init__.py,sha256=
|
2
|
-
lamindb/_artifact.py,sha256=
|
1
|
+
lamindb/__init__.py,sha256=PelFCbUaNuz_1rnpOqj-mDCMqCfT2hJ27M3C-VkGJl0,2278
|
2
|
+
lamindb/_artifact.py,sha256=9soXXT3g9tG1BTwX4DCRPurbFFcpHKOT8W7SsoLiNbo,44847
|
3
3
|
lamindb/_can_validate.py,sha256=1pUavLwZ_yPAtbVYKOGYUHaPxlJGZ246qZ0e-4ZUDSc,19552
|
4
|
-
lamindb/_collection.py,sha256=
|
5
|
-
lamindb/_curate.py,sha256=
|
4
|
+
lamindb/_collection.py,sha256=vt604fUjkmOYCGR4Sq_NTwnPywATfjUAdkQjuJJ17y0,14613
|
5
|
+
lamindb/_curate.py,sha256=rFbPEoD-E-5s3QPIcUuedUO6a2c8QfpTrBfVX9gUVpE,63120
|
6
6
|
lamindb/_feature.py,sha256=nZhtrH0ssoNls-hV-dkwfK9sKypg2El59R9qfarxfUE,5340
|
7
|
-
lamindb/_feature_set.py,sha256=
|
7
|
+
lamindb/_feature_set.py,sha256=JQSP-YLam1KW-rDzly5Dm4IYVL2A6ec7ufIf6iCc2W8,8169
|
8
8
|
lamindb/_filter.py,sha256=Pf9NHV4gm7NOC0Frtvx4W7nvwt2EowOP74DwppyXAZs,635
|
9
9
|
lamindb/_finish.py,sha256=VMAmxCUFmTKIMSCx7LEh4QAnWDeue6MeUAAzkMVEYMU,9546
|
10
|
-
lamindb/_from_values.py,sha256=
|
10
|
+
lamindb/_from_values.py,sha256=uRtZLaMWKoANMMXm1hrADHfckRCTiK8_d02Yp07nLkw,14119
|
11
11
|
lamindb/_is_versioned.py,sha256=5lAnhTboltFkZCKVRV1uxkm0OCjJz_HKi3yQq_vEuMs,1306
|
12
|
-
lamindb/_parents.py,sha256=
|
13
|
-
lamindb/_query_manager.py,sha256=
|
14
|
-
lamindb/_query_set.py,sha256=
|
15
|
-
lamindb/_record.py,sha256=
|
12
|
+
lamindb/_parents.py,sha256=KMBUfCLNqjmFzOdZIXaUFqDPeEpWP28MCkHHPq887h8,16341
|
13
|
+
lamindb/_query_manager.py,sha256=pmPhJQ85-7XeAU9TFv6LPGi9F7dBgztZgZcXz33HYJM,3710
|
14
|
+
lamindb/_query_set.py,sha256=AyWvFZ-Vnd_1dhbDLkiyEh2-2XiIR_OpEk72xoQ2JVg,12980
|
15
|
+
lamindb/_record.py,sha256=FkU7G1OUl0HPQO6wh8EkPh4T_ogxcy6QGkrVz_I4WUw,26840
|
16
16
|
lamindb/_run.py,sha256=K_5drpLn3D7y3XtZ3vtAw35rG5RCSvB4bXQZx4ESSI0,1964
|
17
17
|
lamindb/_save.py,sha256=BCaSFnANYPxTqL5gw7Hrh_9kz7SDyOxrJV2KW6rXqts,11366
|
18
18
|
lamindb/_storage.py,sha256=GBVChv-DHVMNEBJL5l_JT6B4RDhZ6NnwgzmUICphYKk,413
|
@@ -20,21 +20,21 @@ lamindb/_transform.py,sha256=wZDkY8lp4d_OsO5a7rLs1RamkDzBXZSLaWJU34zRnmA,4728
|
|
20
20
|
lamindb/_ulabel.py,sha256=XDSdZBXX_ki5s1vOths3MjF2x5DPggBR_PV_KF4SGyg,1611
|
21
21
|
lamindb/_utils.py,sha256=LGdiW4k3GClLz65vKAVRkL6Tw-Gkx9DWAdez1jyA5bE,428
|
22
22
|
lamindb/_view.py,sha256=4Ln2ItTb3857PAI-70O8eJYqoTJ_NNFc7E_wds6OGns,2412
|
23
|
-
lamindb/core/__init__.py,sha256=
|
24
|
-
lamindb/core/_context.py,sha256=
|
25
|
-
lamindb/core/_data.py,sha256=
|
26
|
-
lamindb/core/_django.py,sha256=
|
27
|
-
lamindb/core/_feature_manager.py,sha256=
|
28
|
-
lamindb/core/_label_manager.py,sha256=
|
23
|
+
lamindb/core/__init__.py,sha256=y87MCP1BEC2qHNVDIOwqVteIP_2hPCdIoa9JXr0EG8U,1524
|
24
|
+
lamindb/core/_context.py,sha256=dI3z7fCMRPC3IMb7-EIaQYhacSZBA4HfLVFyoJtVL7I,22900
|
25
|
+
lamindb/core/_data.py,sha256=BVZkxK8aloSecH25LivbwnjcG1fz7Gs2UDceO5pWd3I,20049
|
26
|
+
lamindb/core/_django.py,sha256=yeMPp1n9WrFmEjVRdavfpVqAolPLd24RseTQlvsK67w,7157
|
27
|
+
lamindb/core/_feature_manager.py,sha256=q4WmzJvFLL_fAs-vNRgV2klanAoU6Wu8_g0O2dyIjVg,40027
|
28
|
+
lamindb/core/_label_manager.py,sha256=yh-r4KbtOArMUKPJL75yOxJc8HUKqsik8pExBVKyDlA,10949
|
29
29
|
lamindb/core/_mapped_collection.py,sha256=M50haewVAFONeF71QQbzD09L8lVZCL1hyf0W87jKE5U,24575
|
30
30
|
lamindb/core/_settings.py,sha256=6jNadlQdimxCsKR2ZyUD0YJYzOdubTnKktki-MqEWqQ,6137
|
31
31
|
lamindb/core/_sync_git.py,sha256=lIgl6YfpH4rCFT1WILAp7zlemZfxog1d0zp3cX0KIZw,4531
|
32
32
|
lamindb/core/_track_environment.py,sha256=Ywzg_sJ7guI1dcsN7h5orce9VdYl8VGVE3OLITlHBXQ,820
|
33
|
-
lamindb/core/exceptions.py,sha256=
|
33
|
+
lamindb/core/exceptions.py,sha256=Y1XQGbv9MgNLVvoClpcwN4NugrLW3Xgy1up15wZK740,1783
|
34
34
|
lamindb/core/fields.py,sha256=47Jmh3efUr5ZscgimR_yckY-I3cNf8ScLutbwKCK3j4,162
|
35
35
|
lamindb/core/loaders.py,sha256=KMTkDa73jkRVvI9uc5Fgr0t6mq22cAxBwhSlUZKUaBg,4016
|
36
|
-
lamindb/core/schema.py,sha256=
|
37
|
-
lamindb/core/types.py,sha256=
|
36
|
+
lamindb/core/schema.py,sha256=Y1tGn93B236PtnYZkpgTNFgTXBcVujPM1qh1kNG6Nbs,3441
|
37
|
+
lamindb/core/types.py,sha256=cL4cmJFA1xfxAIFOQqoa_fvVzdUM3A5blHStVwRNtk4,280
|
38
38
|
lamindb/core/versioning.py,sha256=KUpd94F5QpbDxx9eKgZwrpPyQpm9YeHVedrTEO2a_mI,4839
|
39
39
|
lamindb/core/datasets/__init__.py,sha256=zRP98oqUAaXhqWyKMiH0s_ImVIuNeziQQ2kQ_t0f-DI,1353
|
40
40
|
lamindb/core/datasets/_core.py,sha256=JGP_q-OQibDCEaI54jZ2F6fSbSW9Yg6oYOqgOCXM0v4,20414
|
@@ -55,7 +55,7 @@ lamindb/integrations/__init__.py,sha256=RWGMYYIzr8zvmNPyVB4m-p4gMDhxdRbjES2Ed23O
|
|
55
55
|
lamindb/integrations/_vitessce.py,sha256=uPl45_w4Uu9_BhpBDDVonC1nDOuAnB7DAnzi5w5bZAE,4032
|
56
56
|
lamindb/setup/__init__.py,sha256=OwZpZzPDv5lPPGXZP7-zK6UdO4FHvvuBh439yZvIp3A,410
|
57
57
|
lamindb/setup/core/__init__.py,sha256=SevlVrc2AZWL3uALbE5sopxBnIZPWZ1IB0NBDudiAL8,167
|
58
|
-
lamindb-0.76.
|
59
|
-
lamindb-0.76.
|
60
|
-
lamindb-0.76.
|
61
|
-
lamindb-0.76.
|
58
|
+
lamindb-0.76.14.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
59
|
+
lamindb-0.76.14.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
60
|
+
lamindb-0.76.14.dist-info/METADATA,sha256=j7r4goc9s3ANslQ7-pT7WIct1uDLJK3DGuN3kPsixYs,2361
|
61
|
+
lamindb-0.76.14.dist-info/RECORD,,
|
File without changes
|
File without changes
|