lamindb 1.0.5__py3-none-any.whl → 1.1.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.
Files changed (80) hide show
  1. lamindb/__init__.py +17 -6
  2. lamindb/_artifact.py +202 -87
  3. lamindb/_can_curate.py +27 -8
  4. lamindb/_collection.py +86 -52
  5. lamindb/_feature.py +177 -41
  6. lamindb/_finish.py +21 -7
  7. lamindb/_from_values.py +83 -98
  8. lamindb/_parents.py +4 -4
  9. lamindb/_query_set.py +78 -18
  10. lamindb/_record.py +170 -53
  11. lamindb/_run.py +4 -4
  12. lamindb/_save.py +42 -11
  13. lamindb/_schema.py +135 -38
  14. lamindb/_storage.py +1 -1
  15. lamindb/_tracked.py +129 -0
  16. lamindb/_transform.py +21 -8
  17. lamindb/_ulabel.py +5 -14
  18. lamindb/base/users.py +1 -4
  19. lamindb/base/validation.py +2 -6
  20. lamindb/core/__init__.py +13 -14
  21. lamindb/core/_context.py +14 -9
  22. lamindb/core/_data.py +29 -25
  23. lamindb/core/_describe.py +1 -1
  24. lamindb/core/_django.py +1 -1
  25. lamindb/core/_feature_manager.py +53 -43
  26. lamindb/core/_label_manager.py +4 -4
  27. lamindb/core/_mapped_collection.py +24 -9
  28. lamindb/core/_track_environment.py +2 -1
  29. lamindb/core/datasets/__init__.py +6 -1
  30. lamindb/core/datasets/_core.py +12 -11
  31. lamindb/core/datasets/_small.py +67 -21
  32. lamindb/core/exceptions.py +1 -90
  33. lamindb/core/loaders.py +21 -15
  34. lamindb/core/relations.py +6 -4
  35. lamindb/core/storage/_anndata_accessor.py +49 -3
  36. lamindb/core/storage/_backed_access.py +12 -7
  37. lamindb/core/storage/_pyarrow_dataset.py +40 -15
  38. lamindb/core/storage/_tiledbsoma.py +56 -12
  39. lamindb/core/storage/paths.py +30 -24
  40. lamindb/core/subsettings/_creation_settings.py +4 -16
  41. lamindb/curators/__init__.py +2193 -846
  42. lamindb/curators/_cellxgene_schemas/__init__.py +26 -0
  43. lamindb/curators/_cellxgene_schemas/schema_versions.yml +104 -0
  44. lamindb/errors.py +96 -0
  45. lamindb/integrations/_vitessce.py +3 -3
  46. lamindb/migrations/0069_squashed.py +76 -75
  47. lamindb/migrations/0075_lamindbv1_part5.py +4 -5
  48. lamindb/migrations/0082_alter_feature_dtype.py +21 -0
  49. lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +94 -0
  50. lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +35 -0
  51. lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +63 -0
  52. lamindb/migrations/0086_various.py +95 -0
  53. lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +41 -0
  54. lamindb/migrations/0088_schema_components.py +273 -0
  55. lamindb/migrations/0088_squashed.py +4372 -0
  56. lamindb/models.py +475 -168
  57. {lamindb-1.0.5.dist-info → lamindb-1.1.1.dist-info}/METADATA +9 -7
  58. lamindb-1.1.1.dist-info/RECORD +95 -0
  59. lamindb/curators/_spatial.py +0 -528
  60. lamindb/migrations/0052_squashed.py +0 -1261
  61. lamindb/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -57
  62. lamindb/migrations/0054_alter_feature_previous_runs_and_more.py +0 -35
  63. lamindb/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -61
  64. lamindb/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -22
  65. lamindb/migrations/0057_link_models_latest_report_and_others.py +0 -356
  66. lamindb/migrations/0058_artifact__actions_collection__actions.py +0 -22
  67. lamindb/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -31
  68. lamindb/migrations/0060_alter_artifact__actions.py +0 -22
  69. lamindb/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -45
  70. lamindb/migrations/0062_add_is_latest_field.py +0 -32
  71. lamindb/migrations/0063_populate_latest_field.py +0 -45
  72. lamindb/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -33
  73. lamindb/migrations/0065_remove_collection_feature_sets_and_more.py +0 -22
  74. lamindb/migrations/0066_alter_artifact__feature_values_and_more.py +0 -352
  75. lamindb/migrations/0067_alter_featurevalue_unique_together_and_more.py +0 -20
  76. lamindb/migrations/0068_alter_artifactulabel_unique_together_and_more.py +0 -20
  77. lamindb/migrations/0069_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -1294
  78. lamindb-1.0.5.dist-info/RECORD +0 -102
  79. {lamindb-1.0.5.dist-info → lamindb-1.1.1.dist-info}/LICENSE +0 -0
  80. {lamindb-1.0.5.dist-info → lamindb-1.1.1.dist-info}/WHEEL +0 -0
@@ -1,45 +0,0 @@
1
- # Generated by Django 5.2 on 2024-08-12 07:46
2
-
3
- from django.db import migrations
4
-
5
- SQL_TEMPLATE = """\
6
- -- First, set all is_latest to False
7
- UPDATE {table_name} SET is_latest = false;
8
-
9
- -- Then, set is_latest to True for the latest records
10
- UPDATE {table_name}
11
- SET is_latest = true
12
- WHERE id IN (
13
- SELECT t.id
14
- FROM {table_name} t
15
- INNER JOIN (
16
- SELECT substr(uid, 1, {stem_uid_len}) AS stem_uid, MAX(created_at) AS max_created_at
17
- FROM {table_name}
18
- GROUP BY substr(uid, 1, {stem_uid_len})
19
- ) latest ON substr(t.uid, 1, {stem_uid_len}) = latest.stem_uid AND t.created_at = latest.max_created_at
20
- );
21
- """
22
-
23
-
24
- class Migration(migrations.Migration):
25
- dependencies = [
26
- (
27
- "lamindb",
28
- "0062_add_is_latest_field",
29
- ),
30
- ]
31
-
32
- operations = [] # type: ignore
33
-
34
-
35
- # add data migration
36
- for table_name, stem_uid_len in [
37
- ("lamindb_transform", 12),
38
- ("lamindb_artifact", 16),
39
- ("lamindb_collection", 16),
40
- ]:
41
- Migration.operations.append(
42
- migrations.RunSQL(
43
- sql=SQL_TEMPLATE.format(table_name=table_name, stem_uid_len=stem_uid_len)
44
- )
45
- )
@@ -1,33 +0,0 @@
1
- # Generated by Django 5.2 on 2024-08-28 16:09
2
-
3
- from django.db import migrations, models
4
-
5
-
6
- class Migration(migrations.Migration):
7
- dependencies = [
8
- ("lamindb", "0063_populate_latest_field"),
9
- ]
10
-
11
- operations = [
12
- migrations.AlterField(
13
- model_name="artifact",
14
- name="version",
15
- field=models.CharField(
16
- db_index=True, default=None, max_length=30, null=True
17
- ),
18
- ),
19
- migrations.AlterField(
20
- model_name="collection",
21
- name="version",
22
- field=models.CharField(
23
- db_index=True, default=None, max_length=30, null=True
24
- ),
25
- ),
26
- migrations.AlterField(
27
- model_name="transform",
28
- name="version",
29
- field=models.CharField(
30
- db_index=True, default=None, max_length=30, null=True
31
- ),
32
- ),
33
- ]
@@ -1,22 +0,0 @@
1
- # Generated by Django 5.2 on 2024-09-08 11:37
2
-
3
- from django.db import migrations
4
-
5
-
6
- class Migration(migrations.Migration):
7
- dependencies = [
8
- (
9
- "lamindb",
10
- "0064_alter_artifact_version_alter_collection_version_and_more",
11
- ),
12
- ]
13
-
14
- operations = [
15
- migrations.RemoveField(
16
- model_name="collection",
17
- name="feature_sets",
18
- ),
19
- migrations.DeleteModel(
20
- name="CollectionFeatureSet",
21
- ),
22
- ]
@@ -1,352 +0,0 @@
1
- # Generated by Django 5.2 on 2024-09-09 07:52
2
-
3
- import django.db.models.deletion
4
- from django.db import migrations, models
5
-
6
- import lamindb.base.users
7
- import lamindb.models
8
-
9
-
10
- class Migration(migrations.Migration):
11
- dependencies = [
12
- ("lamindb", "0065_remove_collection_feature_sets_and_more"),
13
- ]
14
-
15
- operations = [
16
- migrations.AlterField(
17
- model_name="artifact",
18
- name="_feature_values",
19
- field=models.ManyToManyField(
20
- related_name="artifacts",
21
- through="lamindb.ArtifactFeatureValue",
22
- to="lamindb.featurevalue",
23
- ),
24
- ),
25
- migrations.AlterField(
26
- model_name="artifact",
27
- name="created_by",
28
- field=models.ForeignKey(
29
- default=lamindb.base.users.current_user_id,
30
- on_delete=django.db.models.deletion.PROTECT,
31
- related_name="+",
32
- to="lamindb.user",
33
- ),
34
- ),
35
- migrations.AlterField(
36
- model_name="artifactfeatureset",
37
- name="created_by",
38
- field=models.ForeignKey(
39
- default=lamindb.base.users.current_user_id,
40
- on_delete=django.db.models.deletion.PROTECT,
41
- related_name="+",
42
- to="lamindb.user",
43
- ),
44
- ),
45
- migrations.AlterField(
46
- model_name="artifactfeatureset",
47
- name="run",
48
- field=models.ForeignKey(
49
- default=lamindb.models.current_run,
50
- null=True,
51
- on_delete=django.db.models.deletion.PROTECT,
52
- related_name="+",
53
- to="lamindb.run",
54
- ),
55
- ),
56
- migrations.AlterField(
57
- model_name="artifactfeaturevalue",
58
- name="created_by",
59
- field=models.ForeignKey(
60
- default=lamindb.base.users.current_user_id,
61
- on_delete=django.db.models.deletion.PROTECT,
62
- related_name="+",
63
- to="lamindb.user",
64
- ),
65
- ),
66
- migrations.AlterField(
67
- model_name="artifactfeaturevalue",
68
- name="run",
69
- field=models.ForeignKey(
70
- default=lamindb.models.current_run,
71
- null=True,
72
- on_delete=django.db.models.deletion.PROTECT,
73
- related_name="+",
74
- to="lamindb.run",
75
- ),
76
- ),
77
- migrations.AlterField(
78
- model_name="artifactulabel",
79
- name="created_by",
80
- field=models.ForeignKey(
81
- default=lamindb.base.users.current_user_id,
82
- on_delete=django.db.models.deletion.PROTECT,
83
- related_name="+",
84
- to="lamindb.user",
85
- ),
86
- ),
87
- migrations.AlterField(
88
- model_name="artifactulabel",
89
- name="run",
90
- field=models.ForeignKey(
91
- default=lamindb.models.current_run,
92
- null=True,
93
- on_delete=django.db.models.deletion.PROTECT,
94
- related_name="+",
95
- to="lamindb.run",
96
- ),
97
- ),
98
- migrations.AlterField(
99
- model_name="collection",
100
- name="created_by",
101
- field=models.ForeignKey(
102
- default=lamindb.base.users.current_user_id,
103
- on_delete=django.db.models.deletion.PROTECT,
104
- related_name="+",
105
- to="lamindb.user",
106
- ),
107
- ),
108
- migrations.AlterField(
109
- model_name="collectionartifact",
110
- name="created_by",
111
- field=models.ForeignKey(
112
- default=lamindb.base.users.current_user_id,
113
- on_delete=django.db.models.deletion.PROTECT,
114
- related_name="+",
115
- to="lamindb.user",
116
- ),
117
- ),
118
- migrations.AlterField(
119
- model_name="collectionartifact",
120
- name="run",
121
- field=models.ForeignKey(
122
- default=lamindb.models.current_run,
123
- null=True,
124
- on_delete=django.db.models.deletion.PROTECT,
125
- related_name="+",
126
- to="lamindb.run",
127
- ),
128
- ),
129
- migrations.AlterField(
130
- model_name="collectionulabel",
131
- name="created_by",
132
- field=models.ForeignKey(
133
- default=lamindb.base.users.current_user_id,
134
- on_delete=django.db.models.deletion.PROTECT,
135
- related_name="+",
136
- to="lamindb.user",
137
- ),
138
- ),
139
- migrations.AlterField(
140
- model_name="collectionulabel",
141
- name="run",
142
- field=models.ForeignKey(
143
- default=lamindb.models.current_run,
144
- null=True,
145
- on_delete=django.db.models.deletion.PROTECT,
146
- related_name="+",
147
- to="lamindb.run",
148
- ),
149
- ),
150
- migrations.AlterField(
151
- model_name="feature",
152
- name="created_by",
153
- field=models.ForeignKey(
154
- default=lamindb.base.users.current_user_id,
155
- on_delete=django.db.models.deletion.PROTECT,
156
- related_name="+",
157
- to="lamindb.user",
158
- ),
159
- ),
160
- migrations.AlterField(
161
- model_name="feature",
162
- name="run",
163
- field=models.ForeignKey(
164
- default=lamindb.models.current_run,
165
- null=True,
166
- on_delete=django.db.models.deletion.PROTECT,
167
- related_name="+",
168
- to="lamindb.run",
169
- ),
170
- ),
171
- migrations.AlterField(
172
- model_name="featureset",
173
- name="created_by",
174
- field=models.ForeignKey(
175
- default=lamindb.base.users.current_user_id,
176
- on_delete=django.db.models.deletion.PROTECT,
177
- related_name="+",
178
- to="lamindb.user",
179
- ),
180
- ),
181
- migrations.AlterField(
182
- model_name="featureset",
183
- name="run",
184
- field=models.ForeignKey(
185
- default=lamindb.models.current_run,
186
- null=True,
187
- on_delete=django.db.models.deletion.PROTECT,
188
- related_name="+",
189
- to="lamindb.run",
190
- ),
191
- ),
192
- migrations.AlterField(
193
- model_name="featurevalue",
194
- name="created_by",
195
- field=models.ForeignKey(
196
- default=lamindb.base.users.current_user_id,
197
- on_delete=django.db.models.deletion.PROTECT,
198
- related_name="+",
199
- to="lamindb.user",
200
- ),
201
- ),
202
- migrations.AlterField(
203
- model_name="featurevalue",
204
- name="run",
205
- field=models.ForeignKey(
206
- default=lamindb.models.current_run,
207
- null=True,
208
- on_delete=django.db.models.deletion.PROTECT,
209
- related_name="+",
210
- to="lamindb.run",
211
- ),
212
- ),
213
- migrations.AlterField(
214
- model_name="param",
215
- name="created_by",
216
- field=models.ForeignKey(
217
- default=lamindb.base.users.current_user_id,
218
- on_delete=django.db.models.deletion.PROTECT,
219
- related_name="+",
220
- to="lamindb.user",
221
- ),
222
- ),
223
- migrations.AlterField(
224
- model_name="param",
225
- name="run",
226
- field=models.ForeignKey(
227
- default=lamindb.models.current_run,
228
- null=True,
229
- on_delete=django.db.models.deletion.PROTECT,
230
- related_name="+",
231
- to="lamindb.run",
232
- ),
233
- ),
234
- migrations.AlterField(
235
- model_name="storage",
236
- name="created_by",
237
- field=models.ForeignKey(
238
- default=lamindb.base.users.current_user_id,
239
- on_delete=django.db.models.deletion.PROTECT,
240
- related_name="+",
241
- to="lamindb.user",
242
- ),
243
- ),
244
- migrations.AlterField(
245
- model_name="storage",
246
- name="run",
247
- field=models.ForeignKey(
248
- default=lamindb.models.current_run,
249
- null=True,
250
- on_delete=django.db.models.deletion.PROTECT,
251
- related_name="+",
252
- to="lamindb.run",
253
- ),
254
- ),
255
- migrations.AlterField(
256
- model_name="ulabel",
257
- name="created_by",
258
- field=models.ForeignKey(
259
- default=lamindb.base.users.current_user_id,
260
- on_delete=django.db.models.deletion.PROTECT,
261
- related_name="+",
262
- to="lamindb.user",
263
- ),
264
- ),
265
- migrations.AlterField(
266
- model_name="ulabel",
267
- name="run",
268
- field=models.ForeignKey(
269
- default=lamindb.models.current_run,
270
- null=True,
271
- on_delete=django.db.models.deletion.PROTECT,
272
- related_name="+",
273
- to="lamindb.run",
274
- ),
275
- ),
276
- migrations.AlterField(
277
- model_name="artifact",
278
- name="_previous_runs",
279
- field=models.ManyToManyField(
280
- related_name="_output_artifacts_with_later_updates",
281
- to="lamindb.run",
282
- ),
283
- ),
284
- migrations.AlterField(
285
- model_name="artifact",
286
- name="created_by",
287
- field=models.ForeignKey(
288
- default=lamindb.base.users.current_user_id,
289
- on_delete=django.db.models.deletion.PROTECT,
290
- related_name="created_artifacts",
291
- to="lamindb.user",
292
- ),
293
- ),
294
- migrations.AlterField(
295
- model_name="collection",
296
- name="_previous_runs",
297
- field=models.ManyToManyField(
298
- related_name="_output_collections_with_later_updates",
299
- to="lamindb.run",
300
- ),
301
- ),
302
- migrations.AlterField(
303
- model_name="featurevalue",
304
- name="feature",
305
- field=models.ForeignKey(
306
- default=None,
307
- null=True,
308
- on_delete=django.db.models.deletion.CASCADE,
309
- related_name="values",
310
- to="lamindb.feature",
311
- ),
312
- ),
313
- migrations.AlterField(
314
- model_name="paramvalue",
315
- name="created_by",
316
- field=models.ForeignKey(
317
- default=lamindb.base.users.current_user_id,
318
- on_delete=django.db.models.deletion.PROTECT,
319
- related_name="+",
320
- to="lamindb.user",
321
- ),
322
- ),
323
- migrations.AlterField(
324
- model_name="paramvalue",
325
- name="param",
326
- field=models.ForeignKey(
327
- on_delete=django.db.models.deletion.CASCADE,
328
- related_name="values",
329
- to="lamindb.param",
330
- ),
331
- ),
332
- migrations.AlterField(
333
- model_name="run",
334
- name="created_by",
335
- field=models.ForeignKey(
336
- default=lamindb.base.users.current_user_id,
337
- on_delete=django.db.models.deletion.CASCADE,
338
- related_name="created_runs",
339
- to="lamindb.user",
340
- ),
341
- ),
342
- migrations.AlterField(
343
- model_name="transform",
344
- name="created_by",
345
- field=models.ForeignKey(
346
- default=lamindb.base.users.current_user_id,
347
- on_delete=django.db.models.deletion.PROTECT,
348
- related_name="created_transforms",
349
- to="lamindb.user",
350
- ),
351
- ),
352
- ]
@@ -1,20 +0,0 @@
1
- # Generated by Django 5.1.1 on 2024-10-02 23:29
2
-
3
- from django.db import migrations
4
-
5
-
6
- class Migration(migrations.Migration):
7
- dependencies = [
8
- ("lamindb", "0066_alter_artifact__feature_values_and_more"),
9
- ]
10
-
11
- operations = [
12
- migrations.AlterUniqueTogether(
13
- name="featurevalue",
14
- unique_together=set(),
15
- ),
16
- migrations.AlterUniqueTogether(
17
- name="paramvalue",
18
- unique_together=set(),
19
- ),
20
- ]
@@ -1,20 +0,0 @@
1
- # Generated by Django 5.1.1 on 2024-10-18 14:31
2
-
3
- from django.db import migrations
4
-
5
-
6
- class Migration(migrations.Migration):
7
- dependencies = [
8
- ("lamindb", "0067_alter_featurevalue_unique_together_and_more"),
9
- ]
10
-
11
- operations = [
12
- migrations.AlterUniqueTogether(
13
- name="artifactulabel",
14
- unique_together={("artifact", "ulabel", "feature")},
15
- ),
16
- migrations.AlterUniqueTogether(
17
- name="featuresetfeature",
18
- unique_together={("featureset", "feature")},
19
- ),
20
- ]