lamindb 1.0.4__py3-none-any.whl → 1.1.0__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 +14 -5
- lamindb/_artifact.py +174 -57
- lamindb/_can_curate.py +27 -8
- lamindb/_collection.py +85 -51
- lamindb/_feature.py +177 -41
- lamindb/_finish.py +222 -81
- lamindb/_from_values.py +83 -98
- lamindb/_parents.py +4 -4
- lamindb/_query_set.py +59 -17
- lamindb/_record.py +171 -53
- lamindb/_run.py +4 -4
- lamindb/_save.py +33 -10
- lamindb/_schema.py +135 -38
- lamindb/_storage.py +1 -1
- lamindb/_tracked.py +106 -0
- lamindb/_transform.py +21 -8
- lamindb/_ulabel.py +5 -14
- lamindb/base/validation.py +2 -6
- lamindb/core/__init__.py +13 -14
- lamindb/core/_context.py +39 -36
- lamindb/core/_data.py +29 -25
- lamindb/core/_describe.py +1 -1
- lamindb/core/_django.py +1 -1
- lamindb/core/_feature_manager.py +54 -44
- lamindb/core/_label_manager.py +4 -4
- lamindb/core/_mapped_collection.py +20 -7
- lamindb/core/datasets/__init__.py +6 -1
- lamindb/core/datasets/_core.py +12 -11
- lamindb/core/datasets/_small.py +66 -20
- lamindb/core/exceptions.py +1 -90
- lamindb/core/loaders.py +7 -13
- lamindb/core/relations.py +6 -4
- lamindb/core/storage/_anndata_accessor.py +41 -0
- lamindb/core/storage/_backed_access.py +2 -2
- lamindb/core/storage/_pyarrow_dataset.py +25 -15
- lamindb/core/storage/_tiledbsoma.py +56 -12
- lamindb/core/storage/paths.py +41 -22
- lamindb/core/subsettings/_creation_settings.py +4 -16
- lamindb/curators/__init__.py +2168 -833
- lamindb/curators/_cellxgene_schemas/__init__.py +26 -0
- lamindb/curators/_cellxgene_schemas/schema_versions.yml +104 -0
- lamindb/errors.py +96 -0
- lamindb/integrations/_vitessce.py +3 -3
- lamindb/migrations/0069_squashed.py +76 -75
- lamindb/migrations/0075_lamindbv1_part5.py +4 -5
- lamindb/migrations/0082_alter_feature_dtype.py +21 -0
- lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +94 -0
- lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +35 -0
- lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +63 -0
- lamindb/migrations/0086_various.py +95 -0
- lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +41 -0
- lamindb/migrations/0088_schema_components.py +273 -0
- lamindb/migrations/0088_squashed.py +4372 -0
- lamindb/models.py +423 -156
- {lamindb-1.0.4.dist-info → lamindb-1.1.0.dist-info}/METADATA +10 -7
- lamindb-1.1.0.dist-info/RECORD +95 -0
- lamindb/curators/_spatial.py +0 -528
- lamindb/migrations/0052_squashed.py +0 -1261
- lamindb/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -57
- lamindb/migrations/0054_alter_feature_previous_runs_and_more.py +0 -35
- lamindb/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -61
- lamindb/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -22
- lamindb/migrations/0057_link_models_latest_report_and_others.py +0 -356
- lamindb/migrations/0058_artifact__actions_collection__actions.py +0 -22
- lamindb/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -31
- lamindb/migrations/0060_alter_artifact__actions.py +0 -22
- lamindb/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -45
- lamindb/migrations/0062_add_is_latest_field.py +0 -32
- lamindb/migrations/0063_populate_latest_field.py +0 -45
- lamindb/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -33
- lamindb/migrations/0065_remove_collection_feature_sets_and_more.py +0 -22
- lamindb/migrations/0066_alter_artifact__feature_values_and_more.py +0 -352
- lamindb/migrations/0067_alter_featurevalue_unique_together_and_more.py +0 -20
- lamindb/migrations/0068_alter_artifactulabel_unique_together_and_more.py +0 -20
- lamindb/migrations/0069_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -1294
- lamindb-1.0.4.dist-info/RECORD +0 -102
- {lamindb-1.0.4.dist-info → lamindb-1.1.0.dist-info}/LICENSE +0 -0
- {lamindb-1.0.4.dist-info → lamindb-1.1.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
from pathlib import Path
|
2
|
+
|
3
|
+
import pandas as pd
|
4
|
+
import yaml # type: ignore
|
5
|
+
|
6
|
+
|
7
|
+
def _read_schema_versions(ontology_versions: Path) -> dict[str, pd.DataFrame]:
|
8
|
+
data = yaml.safe_load(open(ontology_versions))
|
9
|
+
schema_versions = data["schema-version"]
|
10
|
+
|
11
|
+
def _schema_to_df(schema_data):
|
12
|
+
return pd.DataFrame(
|
13
|
+
[
|
14
|
+
(entity, organism, ontology, version)
|
15
|
+
for entity, details in schema_data.items()
|
16
|
+
for ontology, values in details.items()
|
17
|
+
for organism, version in values.items()
|
18
|
+
],
|
19
|
+
columns=["entity", "organism", "source", "version"],
|
20
|
+
).set_index("entity")
|
21
|
+
|
22
|
+
schema_versions_df = {
|
23
|
+
version: _schema_to_df(details) for version, details in schema_versions.items()
|
24
|
+
}
|
25
|
+
|
26
|
+
return schema_versions_df
|
@@ -0,0 +1,104 @@
|
|
1
|
+
schema-version:
|
2
|
+
4.0.0:
|
3
|
+
CellType:
|
4
|
+
cl:
|
5
|
+
all: "2023-08-24"
|
6
|
+
ExperimentalFactor:
|
7
|
+
efo:
|
8
|
+
all: "3.57.0"
|
9
|
+
Ethnicity:
|
10
|
+
hancestro:
|
11
|
+
human: "3.0"
|
12
|
+
DevelopmentalStage:
|
13
|
+
hsapdv:
|
14
|
+
human: "2020-03-10"
|
15
|
+
mmusdv:
|
16
|
+
mouse: "2020-03-10"
|
17
|
+
Disease:
|
18
|
+
mondo:
|
19
|
+
all: "2023-08-02"
|
20
|
+
Organism:
|
21
|
+
ncbitaxon:
|
22
|
+
all: "2023-06-20"
|
23
|
+
Phenotype:
|
24
|
+
pato:
|
25
|
+
all: "2023-05-18"
|
26
|
+
Tissue:
|
27
|
+
uberon:
|
28
|
+
all: "2023-09-05"
|
29
|
+
Gene:
|
30
|
+
genecode:
|
31
|
+
human: "v38"
|
32
|
+
mouse: "vM27"
|
33
|
+
5.0.0:
|
34
|
+
CellType:
|
35
|
+
cl:
|
36
|
+
all: "2024-01-04"
|
37
|
+
ExperimentalFactor:
|
38
|
+
efo:
|
39
|
+
all: "3.62.0"
|
40
|
+
Ethnicity:
|
41
|
+
hancestro:
|
42
|
+
human: "3.0"
|
43
|
+
DevelopmentalStage:
|
44
|
+
hsapdv:
|
45
|
+
human: "2020-03-10"
|
46
|
+
mmusdv:
|
47
|
+
mouse: "2020-03-10"
|
48
|
+
Disease:
|
49
|
+
mondo:
|
50
|
+
all: "2024-01-03"
|
51
|
+
Organism:
|
52
|
+
ncbitaxon:
|
53
|
+
all: "2023-06-20"
|
54
|
+
ensembl:
|
55
|
+
vertebrates: "release-110"
|
56
|
+
Phenotype:
|
57
|
+
pato:
|
58
|
+
all: "2023-05-18"
|
59
|
+
Tissue:
|
60
|
+
uberon:
|
61
|
+
all: "2024-01-18"
|
62
|
+
Gene:
|
63
|
+
genecode:
|
64
|
+
human: "v44"
|
65
|
+
mouse: "vM33"
|
66
|
+
ensembl:
|
67
|
+
human: "release-110"
|
68
|
+
mouse: "release-110"
|
69
|
+
5.1.0:
|
70
|
+
CellType:
|
71
|
+
cl:
|
72
|
+
all: "2024-04-05"
|
73
|
+
ExperimentalFactor:
|
74
|
+
efo:
|
75
|
+
all: "3.65.0"
|
76
|
+
Ethnicity:
|
77
|
+
hancestro:
|
78
|
+
human: "3.0"
|
79
|
+
DevelopmentalStage:
|
80
|
+
hsapdv:
|
81
|
+
human: "2020-03-10"
|
82
|
+
mmusdv:
|
83
|
+
mouse: "2020-03-10"
|
84
|
+
Disease:
|
85
|
+
mondo:
|
86
|
+
all: "2024-05-08"
|
87
|
+
Organism:
|
88
|
+
ncbitaxon:
|
89
|
+
all: "2023-06-20"
|
90
|
+
ensembl:
|
91
|
+
vertebrates: "release-110"
|
92
|
+
Phenotype:
|
93
|
+
pato:
|
94
|
+
all: "2023-05-18"
|
95
|
+
Tissue:
|
96
|
+
uberon:
|
97
|
+
all: "2024-03-22"
|
98
|
+
Gene:
|
99
|
+
genecode:
|
100
|
+
human: "v44"
|
101
|
+
mouse: "vM33"
|
102
|
+
ensembl:
|
103
|
+
human: "release-110"
|
104
|
+
mouse: "release-110"
|
lamindb/errors.py
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
"""Exceptions.
|
2
|
+
|
3
|
+
.. autosummary::
|
4
|
+
:toctree: .
|
5
|
+
|
6
|
+
ValidationError
|
7
|
+
InvalidArgument
|
8
|
+
DoesNotExist
|
9
|
+
NotebookNotSaved
|
10
|
+
MissingContextUID
|
11
|
+
UpdateContext
|
12
|
+
IntegrityError
|
13
|
+
RecordNameChangeIntegrityError
|
14
|
+
|
15
|
+
"""
|
16
|
+
|
17
|
+
# inheriting from SystemExit has the sole purpose of suppressing
|
18
|
+
# the traceback - this isn't optimal but the current best solution
|
19
|
+
# https://laminlabs.slack.com/archives/C04A0RMA0SC/p1726856875597489
|
20
|
+
|
21
|
+
|
22
|
+
class ValidationError(Exception):
|
23
|
+
"""Validation error."""
|
24
|
+
|
25
|
+
pass
|
26
|
+
|
27
|
+
|
28
|
+
class InvalidArgument(Exception):
|
29
|
+
"""Invalid method or function argument."""
|
30
|
+
|
31
|
+
pass
|
32
|
+
|
33
|
+
|
34
|
+
class TrackNotCalled(Exception):
|
35
|
+
"""`ln.track()` wasn't called."""
|
36
|
+
|
37
|
+
pass
|
38
|
+
|
39
|
+
|
40
|
+
class NotebookNotSaved(Exception):
|
41
|
+
"""Notebook wasn't saved."""
|
42
|
+
|
43
|
+
pass
|
44
|
+
|
45
|
+
|
46
|
+
# equivalent to Django's DoesNotExist
|
47
|
+
# and SQLAlchemy's NoResultFound
|
48
|
+
class DoesNotExist(Exception):
|
49
|
+
"""No record found."""
|
50
|
+
|
51
|
+
pass
|
52
|
+
|
53
|
+
|
54
|
+
class InconsistentKey(Exception):
|
55
|
+
"""Inconsistent transform or artifact `key`."""
|
56
|
+
|
57
|
+
pass
|
58
|
+
|
59
|
+
|
60
|
+
class RecordNameChangeIntegrityError(Exception):
|
61
|
+
"""Custom exception for name change errors."""
|
62
|
+
|
63
|
+
pass
|
64
|
+
|
65
|
+
|
66
|
+
class FieldValidationError(Exception):
|
67
|
+
"""Field validation error."""
|
68
|
+
|
69
|
+
pass
|
70
|
+
|
71
|
+
|
72
|
+
# -------------------------------------------------------------------------------------
|
73
|
+
# run context
|
74
|
+
# -------------------------------------------------------------------------------------
|
75
|
+
|
76
|
+
|
77
|
+
class IntegrityError(Exception):
|
78
|
+
"""Integrity error.
|
79
|
+
|
80
|
+
For instance, it's not allowed to delete artifacts outside managed storage
|
81
|
+
locations.
|
82
|
+
"""
|
83
|
+
|
84
|
+
pass
|
85
|
+
|
86
|
+
|
87
|
+
class MissingContextUID(SystemExit):
|
88
|
+
"""User didn't define transform settings."""
|
89
|
+
|
90
|
+
pass
|
91
|
+
|
92
|
+
|
93
|
+
class UpdateContext(SystemExit):
|
94
|
+
"""Transform settings require update."""
|
95
|
+
|
96
|
+
pass
|
@@ -31,7 +31,7 @@ def save_vitessce_config(
|
|
31
31
|
Args:
|
32
32
|
vitessce_config: A `VitessceConfig` object.
|
33
33
|
description: A description for the `VitessceConfig` object. Is used as
|
34
|
-
`
|
34
|
+
`key` for a `Collection` in case the `VitessceConfig` object
|
35
35
|
references multiple artifacts.
|
36
36
|
|
37
37
|
.. versionchanged:: 0.76.12
|
@@ -58,7 +58,7 @@ def save_vitessce_config(
|
|
58
58
|
assert len(dataset_artifacts) > 0 # noqa: S101
|
59
59
|
|
60
60
|
# the below will be replaced with a `ln.tracked()` decorator soon
|
61
|
-
transform = Transform(
|
61
|
+
transform = Transform( # type: ignore
|
62
62
|
uid="kup03MJBsIVa0002",
|
63
63
|
key="save_vitessce_config",
|
64
64
|
type="function",
|
@@ -70,7 +70,7 @@ def save_vitessce_config(
|
|
70
70
|
if len(dataset_artifacts) > 1:
|
71
71
|
# if we have more datasets, we should create a collection
|
72
72
|
# and attach an action to the collection
|
73
|
-
collection = Collection(dataset_artifacts,
|
73
|
+
collection = Collection(dataset_artifacts, key=description).save()
|
74
74
|
|
75
75
|
# create a JSON export
|
76
76
|
config_file_local_path = ln_setup.settings.cache_dir / "config.vitessce.json"
|
@@ -10,81 +10,82 @@ import lamindb.models
|
|
10
10
|
|
11
11
|
|
12
12
|
class Migration(migrations.Migration):
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
13
|
+
initial = True
|
14
|
+
# replaces = [
|
15
|
+
# (
|
16
|
+
# "lamindb",
|
17
|
+
# "0037_rename_dataset_to_collection",
|
18
|
+
# ),
|
19
|
+
# (
|
20
|
+
# "lamindb",
|
21
|
+
# "0038_alter_collection_artifact_alter_collection_artifacts_and_more",
|
22
|
+
# ),
|
23
|
+
# (
|
24
|
+
# "lamindb",
|
25
|
+
# "0039_remove_collection_artifacts_collectionartifact_and_more",
|
26
|
+
# ),
|
27
|
+
# ("lamindb", "0040_alter_transform_type"),
|
28
|
+
# (
|
29
|
+
# "lamindb",
|
30
|
+
# "0041_remove_transform_short_name_transform_description_and_more",
|
31
|
+
# ),
|
32
|
+
# ("lamindb", "0042_rename_run_at_run_started_at_run_finished_at"),
|
33
|
+
# ("lamindb", "0043_run_json"),
|
34
|
+
# ("lamindb", "0044_run_replicated_outputs_transform_ulabels_and_more"),
|
35
|
+
# (
|
36
|
+
# "lamindb",
|
37
|
+
# "0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more",
|
38
|
+
# ),
|
39
|
+
# ("lamindb", "0046_storage_instance_uid"),
|
40
|
+
# ("lamindb", "0047_featurevalue_artifactfeaturevalue_and_more"),
|
41
|
+
# ("lamindb", "0048_alter_artifactulabel_feature_and_more"),
|
42
|
+
# ("lamindb", "0049_rename_type_feature_dtype_and_more"),
|
43
|
+
# ("lamindb", "0050_artifactfeatureset_feature_ref_is_semantic_and_more"),
|
44
|
+
# (
|
45
|
+
# "lamindb",
|
46
|
+
# "0051_remove_feature_feature_sets_featuresetfeature_and_more",
|
47
|
+
# ),
|
48
|
+
# (
|
49
|
+
# "lamindb",
|
50
|
+
# "0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more",
|
51
|
+
# ),
|
52
|
+
# ("lamindb", "0052_squashed"),
|
53
|
+
# (
|
54
|
+
# "lamindb",
|
55
|
+
# "0053_alter_featureset_hash_alter_paramvalue_created_by_and_more",
|
56
|
+
# ),
|
57
|
+
# ("lamindb", "0054_alter_feature_previous_runs_and_more"),
|
58
|
+
# ("lamindb", "0055_artifact_type_artifactparamvalue_and_more"),
|
59
|
+
# (
|
60
|
+
# "lamindb",
|
61
|
+
# "0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more",
|
62
|
+
# ),
|
63
|
+
# ("lamindb", "0057_link_models_latest_report_and_others"),
|
64
|
+
# ("lamindb", "0058_artifact__actions_collection__actions"),
|
65
|
+
# (
|
66
|
+
# "lamindb",
|
67
|
+
# "0059_alter_artifact__accessor_alter_artifact__hash_type_and_more",
|
68
|
+
# ),
|
69
|
+
# ("lamindb", "0060_alter_artifact__actions"),
|
70
|
+
# (
|
71
|
+
# "lamindb",
|
72
|
+
# "0061_alter_collection_meta_artifact_alter_run_environment_and_more",
|
73
|
+
# ),
|
74
|
+
# ("lamindb", "0062_add_is_latest_field"),
|
75
|
+
# ("lamindb", "0063_populate_latest_field"),
|
76
|
+
# (
|
77
|
+
# "lamindb",
|
78
|
+
# "0064_alter_artifact_version_alter_collection_version_and_more",
|
79
|
+
# ),
|
80
|
+
# ("lamindb", "0065_remove_collection_feature_sets_and_more"),
|
81
|
+
# ("lamindb", "0066_alter_artifact__feature_values_and_more"),
|
82
|
+
# ("lamindb", "0067_alter_featurevalue_unique_together_and_more"),
|
83
|
+
# ("lamindb", "0068_alter_artifactulabel_unique_together_and_more"),
|
84
|
+
# (
|
85
|
+
# "lamindb",
|
86
|
+
# "0069_alter_artifact__accessor_alter_artifact__hash_type_and_more",
|
87
|
+
# ),
|
88
|
+
# ]
|
88
89
|
|
89
90
|
dependencies = [] # type: ignore
|
90
91
|
operations = [
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# Generated by Django 5.2 on 2025-01-13 14:10
|
2
2
|
|
3
3
|
import django.db.models.deletion
|
4
|
-
import lamindb_setup
|
5
4
|
from django.db import migrations, models
|
6
5
|
|
7
6
|
import lamindb.base.fields
|
@@ -270,7 +269,7 @@ class Migration(migrations.Migration):
|
|
270
269
|
]
|
271
270
|
|
272
271
|
|
273
|
-
if "bionty" in lamindb_setup.settings.instance.modules:
|
274
|
-
|
275
|
-
|
276
|
-
|
272
|
+
# if "bionty" in lamindb_setup.settings.instance.modules:
|
273
|
+
# Migration.dependencies += [
|
274
|
+
# ("bionty", "0046_alter_cellline__aux_alter_cellmarker__aux_and_more"),
|
275
|
+
# ]
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Generated by Django 5.2 on 2025-01-25 08:26
|
2
|
+
|
3
|
+
from django.db import migrations
|
4
|
+
|
5
|
+
import lamindb.base.fields
|
6
|
+
|
7
|
+
|
8
|
+
class Migration(migrations.Migration):
|
9
|
+
dependencies = [
|
10
|
+
("lamindb", "0081_revert_textfield_collection"),
|
11
|
+
]
|
12
|
+
|
13
|
+
operations = [
|
14
|
+
migrations.AlterField(
|
15
|
+
model_name="feature",
|
16
|
+
name="dtype",
|
17
|
+
field=lamindb.base.fields.CharField(
|
18
|
+
blank=True, db_index=True, default=None, max_length=255, null=True
|
19
|
+
),
|
20
|
+
),
|
21
|
+
]
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# Generated by Django 5.2 on 2025-01-25 13:29
|
2
|
+
|
3
|
+
from django.db import migrations
|
4
|
+
|
5
|
+
import lamindb.base.fields
|
6
|
+
|
7
|
+
|
8
|
+
class Migration(migrations.Migration):
|
9
|
+
dependencies = [
|
10
|
+
("lamindb", "0082_alter_feature_dtype"),
|
11
|
+
]
|
12
|
+
|
13
|
+
operations = [
|
14
|
+
migrations.RunSQL(
|
15
|
+
sql="""
|
16
|
+
UPDATE lamindb_feature
|
17
|
+
SET is_type = FALSE
|
18
|
+
WHERE is_type IS NULL;
|
19
|
+
|
20
|
+
UPDATE lamindb_flextable
|
21
|
+
SET is_type = FALSE
|
22
|
+
WHERE is_type IS NULL;
|
23
|
+
|
24
|
+
UPDATE lamindb_param
|
25
|
+
SET is_type = FALSE
|
26
|
+
WHERE is_type IS NULL;
|
27
|
+
|
28
|
+
UPDATE lamindb_project
|
29
|
+
SET is_type = FALSE
|
30
|
+
WHERE is_type IS NULL;
|
31
|
+
|
32
|
+
UPDATE lamindb_reference
|
33
|
+
SET is_type = FALSE
|
34
|
+
WHERE is_type IS NULL;
|
35
|
+
|
36
|
+
UPDATE lamindb_schema
|
37
|
+
SET is_type = FALSE
|
38
|
+
WHERE is_type IS NULL;
|
39
|
+
|
40
|
+
UPDATE lamindb_ulabel
|
41
|
+
SET is_type = FALSE
|
42
|
+
WHERE is_type IS NULL;
|
43
|
+
"""
|
44
|
+
),
|
45
|
+
migrations.AlterField(
|
46
|
+
model_name="feature",
|
47
|
+
name="is_type",
|
48
|
+
field=lamindb.base.fields.BooleanField(
|
49
|
+
blank=True, db_index=True, default=False
|
50
|
+
),
|
51
|
+
),
|
52
|
+
migrations.AlterField(
|
53
|
+
model_name="flextable",
|
54
|
+
name="is_type",
|
55
|
+
field=lamindb.base.fields.BooleanField(
|
56
|
+
blank=True, db_index=True, default=False
|
57
|
+
),
|
58
|
+
),
|
59
|
+
migrations.AlterField(
|
60
|
+
model_name="param",
|
61
|
+
name="is_type",
|
62
|
+
field=lamindb.base.fields.BooleanField(
|
63
|
+
blank=True, db_index=True, default=False
|
64
|
+
),
|
65
|
+
),
|
66
|
+
migrations.AlterField(
|
67
|
+
model_name="project",
|
68
|
+
name="is_type",
|
69
|
+
field=lamindb.base.fields.BooleanField(
|
70
|
+
blank=True, db_index=True, default=False
|
71
|
+
),
|
72
|
+
),
|
73
|
+
migrations.AlterField(
|
74
|
+
model_name="reference",
|
75
|
+
name="is_type",
|
76
|
+
field=lamindb.base.fields.BooleanField(
|
77
|
+
blank=True, db_index=True, default=False
|
78
|
+
),
|
79
|
+
),
|
80
|
+
migrations.AlterField(
|
81
|
+
model_name="schema",
|
82
|
+
name="is_type",
|
83
|
+
field=lamindb.base.fields.BooleanField(
|
84
|
+
blank=True, db_index=True, default=False
|
85
|
+
),
|
86
|
+
),
|
87
|
+
migrations.AlterField(
|
88
|
+
model_name="ulabel",
|
89
|
+
name="is_type",
|
90
|
+
field=lamindb.base.fields.BooleanField(
|
91
|
+
blank=True, db_index=True, default=False
|
92
|
+
),
|
93
|
+
),
|
94
|
+
]
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Generated by Django 5.2 on 2025-01-27 07:22
|
2
|
+
|
3
|
+
import django.db.models.deletion
|
4
|
+
from django.db import migrations
|
5
|
+
|
6
|
+
import lamindb.base.fields
|
7
|
+
|
8
|
+
|
9
|
+
class Migration(migrations.Migration):
|
10
|
+
dependencies = [
|
11
|
+
("lamindb", "0083_alter_feature_is_type_alter_flextable_is_type_and_more"),
|
12
|
+
]
|
13
|
+
|
14
|
+
operations = [
|
15
|
+
migrations.AlterField(
|
16
|
+
model_name="schemafeature",
|
17
|
+
name="feature",
|
18
|
+
field=lamindb.base.fields.ForeignKey(
|
19
|
+
blank=True,
|
20
|
+
on_delete=django.db.models.deletion.PROTECT,
|
21
|
+
related_name="links_schema",
|
22
|
+
to="lamindb.feature",
|
23
|
+
),
|
24
|
+
),
|
25
|
+
migrations.AlterField(
|
26
|
+
model_name="schemafeature",
|
27
|
+
name="schema",
|
28
|
+
field=lamindb.base.fields.ForeignKey(
|
29
|
+
blank=True,
|
30
|
+
on_delete=django.db.models.deletion.CASCADE,
|
31
|
+
related_name="links_feature",
|
32
|
+
to="lamindb.schema",
|
33
|
+
),
|
34
|
+
),
|
35
|
+
]
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# Generated by Django 5.2 on 2025-01-27 13:48
|
2
|
+
|
3
|
+
from django.db import migrations
|
4
|
+
|
5
|
+
import lamindb.base.fields
|
6
|
+
|
7
|
+
|
8
|
+
class Migration(migrations.Migration):
|
9
|
+
dependencies = [
|
10
|
+
("lamindb", "0084_alter_schemafeature_feature_and_more"),
|
11
|
+
]
|
12
|
+
|
13
|
+
operations = [
|
14
|
+
migrations.AlterField(
|
15
|
+
model_name="feature",
|
16
|
+
name="is_type",
|
17
|
+
field=lamindb.base.fields.BooleanField(
|
18
|
+
blank=True, db_index=True, default=False, null=True
|
19
|
+
),
|
20
|
+
),
|
21
|
+
migrations.AlterField(
|
22
|
+
model_name="flextable",
|
23
|
+
name="is_type",
|
24
|
+
field=lamindb.base.fields.BooleanField(
|
25
|
+
blank=True, db_index=True, default=False, null=True
|
26
|
+
),
|
27
|
+
),
|
28
|
+
migrations.AlterField(
|
29
|
+
model_name="param",
|
30
|
+
name="is_type",
|
31
|
+
field=lamindb.base.fields.BooleanField(
|
32
|
+
blank=True, db_index=True, default=False, null=True
|
33
|
+
),
|
34
|
+
),
|
35
|
+
migrations.AlterField(
|
36
|
+
model_name="project",
|
37
|
+
name="is_type",
|
38
|
+
field=lamindb.base.fields.BooleanField(
|
39
|
+
blank=True, db_index=True, default=False, null=True
|
40
|
+
),
|
41
|
+
),
|
42
|
+
migrations.AlterField(
|
43
|
+
model_name="reference",
|
44
|
+
name="is_type",
|
45
|
+
field=lamindb.base.fields.BooleanField(
|
46
|
+
blank=True, db_index=True, default=False, null=True
|
47
|
+
),
|
48
|
+
),
|
49
|
+
migrations.AlterField(
|
50
|
+
model_name="schema",
|
51
|
+
name="is_type",
|
52
|
+
field=lamindb.base.fields.BooleanField(
|
53
|
+
blank=True, db_index=True, default=False, null=True
|
54
|
+
),
|
55
|
+
),
|
56
|
+
migrations.AlterField(
|
57
|
+
model_name="ulabel",
|
58
|
+
name="is_type",
|
59
|
+
field=lamindb.base.fields.BooleanField(
|
60
|
+
blank=True, db_index=True, default=False, null=True
|
61
|
+
),
|
62
|
+
),
|
63
|
+
]
|