lamindb 0.77.2__py3-none-any.whl → 1.0rc1__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 (89) hide show
  1. lamindb/__init__.py +39 -32
  2. lamindb/_artifact.py +95 -64
  3. lamindb/_can_curate.py +19 -10
  4. lamindb/_collection.py +51 -49
  5. lamindb/_feature.py +9 -9
  6. lamindb/_finish.py +99 -86
  7. lamindb/_from_values.py +20 -17
  8. lamindb/_is_versioned.py +2 -1
  9. lamindb/_parents.py +23 -16
  10. lamindb/_query_manager.py +3 -3
  11. lamindb/_query_set.py +85 -18
  12. lamindb/_record.py +121 -46
  13. lamindb/_run.py +3 -3
  14. lamindb/_save.py +14 -8
  15. lamindb/{_feature_set.py → _schema.py} +34 -31
  16. lamindb/_storage.py +2 -1
  17. lamindb/_transform.py +51 -23
  18. lamindb/_ulabel.py +17 -8
  19. lamindb/_view.py +15 -14
  20. lamindb/base/__init__.py +24 -0
  21. lamindb/base/fields.py +281 -0
  22. lamindb/base/ids.py +103 -0
  23. lamindb/base/types.py +51 -0
  24. lamindb/base/users.py +30 -0
  25. lamindb/base/validation.py +67 -0
  26. lamindb/core/__init__.py +19 -14
  27. lamindb/core/_context.py +297 -228
  28. lamindb/core/_data.py +44 -49
  29. lamindb/core/_describe.py +41 -31
  30. lamindb/core/_django.py +59 -44
  31. lamindb/core/_feature_manager.py +192 -168
  32. lamindb/core/_label_manager.py +22 -22
  33. lamindb/core/_mapped_collection.py +17 -14
  34. lamindb/core/_settings.py +1 -12
  35. lamindb/core/_sync_git.py +56 -9
  36. lamindb/core/_track_environment.py +1 -1
  37. lamindb/core/datasets/_core.py +5 -6
  38. lamindb/core/exceptions.py +0 -7
  39. lamindb/core/fields.py +1 -1
  40. lamindb/core/loaders.py +18 -2
  41. lamindb/core/{schema.py → relations.py} +22 -19
  42. lamindb/core/storage/_anndata_accessor.py +1 -2
  43. lamindb/core/storage/_backed_access.py +2 -1
  44. lamindb/core/storage/_tiledbsoma.py +40 -13
  45. lamindb/core/storage/objects.py +1 -1
  46. lamindb/core/storage/paths.py +13 -8
  47. lamindb/core/subsettings/__init__.py +0 -2
  48. lamindb/core/types.py +2 -23
  49. lamindb/core/versioning.py +11 -7
  50. lamindb/{_curate.py → curators/__init__.py} +700 -57
  51. lamindb/curators/_spatial.py +528 -0
  52. lamindb/integrations/_vitessce.py +1 -3
  53. lamindb/migrations/0052_squashed.py +1261 -0
  54. lamindb/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +57 -0
  55. lamindb/migrations/0054_alter_feature_previous_runs_and_more.py +35 -0
  56. lamindb/migrations/0055_artifact_type_artifactparamvalue_and_more.py +61 -0
  57. lamindb/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +22 -0
  58. lamindb/migrations/0057_link_models_latest_report_and_others.py +356 -0
  59. lamindb/migrations/0058_artifact__actions_collection__actions.py +22 -0
  60. lamindb/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +31 -0
  61. lamindb/migrations/0060_alter_artifact__actions.py +22 -0
  62. lamindb/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +45 -0
  63. lamindb/migrations/0062_add_is_latest_field.py +32 -0
  64. lamindb/migrations/0063_populate_latest_field.py +45 -0
  65. lamindb/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +33 -0
  66. lamindb/migrations/0065_remove_collection_feature_sets_and_more.py +22 -0
  67. lamindb/migrations/0066_alter_artifact__feature_values_and_more.py +352 -0
  68. lamindb/migrations/0067_alter_featurevalue_unique_together_and_more.py +20 -0
  69. lamindb/migrations/0068_alter_artifactulabel_unique_together_and_more.py +20 -0
  70. lamindb/migrations/0069_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +1294 -0
  71. lamindb/migrations/0069_squashed.py +1770 -0
  72. lamindb/migrations/0070_lamindbv1_migrate_data.py +78 -0
  73. lamindb/migrations/0071_lamindbv1_migrate_schema.py +741 -0
  74. lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +148 -0
  75. lamindb/migrations/0073_merge_ourprojects.py +945 -0
  76. lamindb/migrations/0074_lamindbv1_part4.py +374 -0
  77. lamindb/migrations/0075_lamindbv1_part5.py +276 -0
  78. lamindb/migrations/0076_lamindbv1_part6.py +621 -0
  79. lamindb/migrations/0077_lamindbv1_part6b.py +228 -0
  80. lamindb/migrations/0078_lamindbv1_part6c.py +468 -0
  81. lamindb/migrations/0079_alter_rundata_value_json_and_more.py +36 -0
  82. lamindb/migrations/__init__.py +0 -0
  83. lamindb/models.py +4064 -0
  84. {lamindb-0.77.2.dist-info → lamindb-1.0rc1.dist-info}/METADATA +15 -20
  85. lamindb-1.0rc1.dist-info/RECORD +100 -0
  86. {lamindb-0.77.2.dist-info → lamindb-1.0rc1.dist-info}/WHEEL +1 -1
  87. lamindb/core/subsettings/_transform_settings.py +0 -21
  88. lamindb-0.77.2.dist-info/RECORD +0 -63
  89. {lamindb-0.77.2.dist-info → lamindb-1.0rc1.dist-info}/LICENSE +0 -0
@@ -0,0 +1,45 @@
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
+ )
@@ -0,0 +1,33 @@
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
+ ]
@@ -0,0 +1,22 @@
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
+ ]
@@ -0,0 +1,352 @@
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
+ ]
@@ -0,0 +1,20 @@
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
+ ]
@@ -0,0 +1,20 @@
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
+ ]