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,374 @@
1
+ # Generated by Django 5.2 on 2025-01-13 08:12
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+ import lamindb.base.fields
7
+
8
+
9
+ def migrate_refs_to_aux(apps, schema_editor):
10
+ Reference = apps.get_model("lamindb", "Reference")
11
+
12
+ for ref in Reference.objects.all():
13
+ # Get existing _aux or initialize new dict
14
+ aux_data = ref._aux or {}
15
+
16
+ # Create or update the adhoc section
17
+ aux_data["adhoc"] = {
18
+ "preprint": ref.preprint,
19
+ "public": ref.public,
20
+ "journal": ref.journal,
21
+ }
22
+
23
+ ref._aux = aux_data
24
+ ref.save(update_fields=["_aux"])
25
+
26
+
27
+ class Migration(migrations.Migration):
28
+ dependencies = [
29
+ ("lamindb", "0073_merge_ourprojects"),
30
+ ]
31
+
32
+ operations = [
33
+ migrations.RemoveField(
34
+ model_name="ulabel",
35
+ name="is_concept",
36
+ ),
37
+ migrations.AddField(
38
+ model_name="ulabel",
39
+ name="is_type",
40
+ field=lamindb.base.fields.BooleanField(
41
+ blank=True, db_index=True, default=None, null=True
42
+ ),
43
+ ),
44
+ migrations.AddField(
45
+ model_name="ulabel",
46
+ name="type",
47
+ field=lamindb.base.fields.ForeignKey(
48
+ blank=True,
49
+ null=True,
50
+ on_delete=django.db.models.deletion.PROTECT,
51
+ related_name="records",
52
+ to="lamindb.ulabel",
53
+ ),
54
+ ),
55
+ migrations.AlterField(
56
+ model_name="ulabel",
57
+ name="name",
58
+ field=lamindb.base.fields.CharField(
59
+ blank=True, db_index=True, default=None, max_length=150
60
+ ),
61
+ ),
62
+ migrations.AddField(
63
+ model_name="feature",
64
+ name="is_type",
65
+ field=lamindb.base.fields.BooleanField(
66
+ blank=True, db_index=True, default=None, null=True
67
+ ),
68
+ ),
69
+ migrations.AddField(
70
+ model_name="featureset",
71
+ name="is_type",
72
+ field=lamindb.base.fields.BooleanField(
73
+ blank=True, db_index=True, default=None, null=True
74
+ ),
75
+ ),
76
+ migrations.AddField(
77
+ model_name="featureset",
78
+ name="type",
79
+ field=lamindb.base.fields.ForeignKey(
80
+ blank=True,
81
+ null=True,
82
+ on_delete=django.db.models.deletion.PROTECT,
83
+ related_name="records",
84
+ to="lamindb.featureset",
85
+ ),
86
+ ),
87
+ migrations.AddField(
88
+ model_name="param",
89
+ name="is_type",
90
+ field=lamindb.base.fields.BooleanField(
91
+ blank=True, db_index=True, default=None, null=True
92
+ ),
93
+ ),
94
+ migrations.AddField(
95
+ model_name="reference",
96
+ name="is_type",
97
+ field=lamindb.base.fields.BooleanField(
98
+ blank=True, db_index=True, default=None, null=True
99
+ ),
100
+ ),
101
+ migrations.AddField(
102
+ model_name="reference",
103
+ name="type",
104
+ field=lamindb.base.fields.ForeignKey(
105
+ blank=True,
106
+ null=True,
107
+ on_delete=django.db.models.deletion.PROTECT,
108
+ related_name="records",
109
+ to="lamindb.reference",
110
+ ),
111
+ ),
112
+ migrations.AlterField(
113
+ model_name="feature",
114
+ name="type",
115
+ field=lamindb.base.fields.ForeignKey(
116
+ blank=True,
117
+ null=True,
118
+ on_delete=django.db.models.deletion.PROTECT,
119
+ related_name="records",
120
+ to="lamindb.feature",
121
+ ),
122
+ ),
123
+ migrations.AlterField(
124
+ model_name="param",
125
+ name="type",
126
+ field=lamindb.base.fields.ForeignKey(
127
+ blank=True,
128
+ null=True,
129
+ on_delete=django.db.models.deletion.PROTECT,
130
+ related_name="records",
131
+ to="lamindb.param",
132
+ ),
133
+ ),
134
+ migrations.RenameField(
135
+ model_name="project",
136
+ old_name="contributors",
137
+ new_name="persons",
138
+ ),
139
+ migrations.AddField(
140
+ model_name="project",
141
+ name="parents",
142
+ field=models.ManyToManyField(related_name="children", to="lamindb.project"),
143
+ ),
144
+ migrations.AddField(
145
+ model_name="project",
146
+ name="type",
147
+ field=lamindb.base.fields.CharField(
148
+ blank=True, db_index=True, default=None, max_length=64, null=True
149
+ ),
150
+ ),
151
+ migrations.AlterField(
152
+ model_name="project",
153
+ name="abbr",
154
+ field=lamindb.base.fields.CharField(
155
+ blank=True, db_index=True, default=None, max_length=32, null=True
156
+ ),
157
+ ),
158
+ migrations.AlterField(
159
+ model_name="reference",
160
+ name="abbr",
161
+ field=lamindb.base.fields.CharField(
162
+ blank=True, db_index=True, default=None, max_length=32, null=True
163
+ ),
164
+ ),
165
+ migrations.RenameField(
166
+ model_name="artifact",
167
+ old_name="aux",
168
+ new_name="_aux",
169
+ ),
170
+ migrations.RenameField(
171
+ model_name="collection",
172
+ old_name="aux",
173
+ new_name="_aux",
174
+ ),
175
+ migrations.RenameField(
176
+ model_name="feature",
177
+ old_name="aux",
178
+ new_name="_aux",
179
+ ),
180
+ migrations.RenameField(
181
+ model_name="featureset",
182
+ old_name="aux",
183
+ new_name="_aux",
184
+ ),
185
+ migrations.RenameField(
186
+ model_name="featurevalue",
187
+ old_name="aux",
188
+ new_name="_aux",
189
+ ),
190
+ migrations.RenameField(
191
+ model_name="param",
192
+ old_name="aux",
193
+ new_name="_aux",
194
+ ),
195
+ migrations.RenameField(
196
+ model_name="paramvalue",
197
+ old_name="aux",
198
+ new_name="_aux",
199
+ ),
200
+ migrations.RenameField(
201
+ model_name="person",
202
+ old_name="aux",
203
+ new_name="_aux",
204
+ ),
205
+ migrations.RenameField(
206
+ model_name="project",
207
+ old_name="aux",
208
+ new_name="_aux",
209
+ ),
210
+ migrations.RenameField(
211
+ model_name="reference",
212
+ old_name="aux",
213
+ new_name="_aux",
214
+ ),
215
+ migrations.RenameField(
216
+ model_name="run",
217
+ old_name="aux",
218
+ new_name="_aux",
219
+ ),
220
+ migrations.RenameField(
221
+ model_name="storage",
222
+ old_name="aux",
223
+ new_name="_aux",
224
+ ),
225
+ migrations.RenameField(
226
+ model_name="transform",
227
+ old_name="aux",
228
+ new_name="_aux",
229
+ ),
230
+ migrations.RenameField(
231
+ model_name="ulabel",
232
+ old_name="aux",
233
+ new_name="_aux",
234
+ ),
235
+ migrations.AddField(
236
+ model_name="space",
237
+ name="uid",
238
+ field=lamindb.base.fields.CharField(
239
+ blank=True,
240
+ db_default="00000000",
241
+ db_index=True,
242
+ default="00000000",
243
+ max_length=12,
244
+ unique=True,
245
+ ),
246
+ ),
247
+ # migrate references
248
+ migrations.RunPython(
249
+ migrate_refs_to_aux,
250
+ ),
251
+ # Then remove the old fields
252
+ migrations.RemoveField(
253
+ model_name="reference",
254
+ name="preprint",
255
+ ),
256
+ migrations.RemoveField(
257
+ model_name="reference",
258
+ name="public",
259
+ ),
260
+ migrations.RemoveField(
261
+ model_name="reference",
262
+ name="journal",
263
+ ),
264
+ migrations.AlterField(
265
+ model_name="artifact",
266
+ name="_aux",
267
+ field=lamindb.base.fields.JSONField(
268
+ blank=True, db_default=None, default=None, null=True
269
+ ),
270
+ ),
271
+ migrations.AlterField(
272
+ model_name="artifact",
273
+ name="_curator",
274
+ field=lamindb.base.fields.JSONField(
275
+ blank=True, db_default=None, default=None, null=True
276
+ ),
277
+ ),
278
+ migrations.AlterField(
279
+ model_name="collection",
280
+ name="_aux",
281
+ field=lamindb.base.fields.JSONField(
282
+ blank=True, db_default=None, default=None, null=True
283
+ ),
284
+ ),
285
+ migrations.AlterField(
286
+ model_name="feature",
287
+ name="_aux",
288
+ field=lamindb.base.fields.JSONField(
289
+ blank=True, db_default=None, default=None, null=True
290
+ ),
291
+ ),
292
+ migrations.AlterField(
293
+ model_name="featureset",
294
+ name="_aux",
295
+ field=lamindb.base.fields.JSONField(
296
+ blank=True, db_default=None, default=None, null=True
297
+ ),
298
+ ),
299
+ migrations.AlterField(
300
+ model_name="featurevalue",
301
+ name="_aux",
302
+ field=lamindb.base.fields.JSONField(
303
+ blank=True, db_default=None, default=None, null=True
304
+ ),
305
+ ),
306
+ migrations.AlterField(
307
+ model_name="param",
308
+ name="_aux",
309
+ field=lamindb.base.fields.JSONField(
310
+ blank=True, db_default=None, default=None, null=True
311
+ ),
312
+ ),
313
+ migrations.AlterField(
314
+ model_name="paramvalue",
315
+ name="_aux",
316
+ field=lamindb.base.fields.JSONField(
317
+ blank=True, db_default=None, default=None, null=True
318
+ ),
319
+ ),
320
+ migrations.AlterField(
321
+ model_name="person",
322
+ name="_aux",
323
+ field=lamindb.base.fields.JSONField(
324
+ blank=True, db_default=None, default=None, null=True
325
+ ),
326
+ ),
327
+ migrations.AlterField(
328
+ model_name="project",
329
+ name="_aux",
330
+ field=lamindb.base.fields.JSONField(
331
+ blank=True, db_default=None, default=None, null=True
332
+ ),
333
+ ),
334
+ migrations.AlterField(
335
+ model_name="reference",
336
+ name="_aux",
337
+ field=lamindb.base.fields.JSONField(
338
+ blank=True, db_default=None, default=None, null=True
339
+ ),
340
+ ),
341
+ migrations.AlterField(
342
+ model_name="run",
343
+ name="_aux",
344
+ field=lamindb.base.fields.JSONField(
345
+ blank=True, db_default=None, default=None, null=True
346
+ ),
347
+ ),
348
+ migrations.AlterField(
349
+ model_name="storage",
350
+ name="_aux",
351
+ field=lamindb.base.fields.JSONField(
352
+ blank=True, db_default=None, default=None, null=True
353
+ ),
354
+ ),
355
+ migrations.AlterField(
356
+ model_name="transform",
357
+ name="_aux",
358
+ field=lamindb.base.fields.JSONField(
359
+ blank=True, db_default=None, default=None, null=True
360
+ ),
361
+ ),
362
+ migrations.AlterField(
363
+ model_name="ulabel",
364
+ name="_aux",
365
+ field=lamindb.base.fields.JSONField(
366
+ blank=True, db_default=None, default=None, null=True
367
+ ),
368
+ ),
369
+ migrations.RenameField(
370
+ model_name="reference",
371
+ old_name="published_at",
372
+ new_name="date",
373
+ ),
374
+ ]
@@ -0,0 +1,276 @@
1
+ # Generated by Django 5.2 on 2025-01-13 14:10
2
+
3
+ import django.db.models.deletion
4
+ import lamindb_setup
5
+ from django.db import migrations, models
6
+
7
+ import lamindb.base.fields
8
+ import lamindb.base.users
9
+ import lamindb.models
10
+
11
+
12
+ class Migration(migrations.Migration):
13
+ dependencies = [
14
+ ("lamindb", "0074_lamindbv1_part4"),
15
+ ]
16
+
17
+ operations = [
18
+ migrations.RenameModel(
19
+ old_name="FeatureSet",
20
+ new_name="Schema",
21
+ ),
22
+ migrations.RenameModel(
23
+ old_name="ArtifactFeatureSet",
24
+ new_name="ArtifactSchema",
25
+ ),
26
+ migrations.RenameField(
27
+ model_name="feature",
28
+ old_name="feature_sets",
29
+ new_name="schemas",
30
+ ),
31
+ migrations.RenameField(
32
+ model_name="artifact",
33
+ old_name="feature_sets",
34
+ new_name="_schemas_m2m",
35
+ ),
36
+ migrations.RenameField(
37
+ model_name="artifactschema",
38
+ old_name="featureset",
39
+ new_name="schema",
40
+ ),
41
+ migrations.RenameModel(
42
+ old_name="FeatureSetFeature",
43
+ new_name="SchemaFeature",
44
+ ),
45
+ migrations.RenameField(
46
+ model_name="schemafeature",
47
+ old_name="featureset",
48
+ new_name="schema",
49
+ ),
50
+ migrations.AddField(
51
+ model_name="artifact",
52
+ name="schema",
53
+ field=lamindb.base.fields.ForeignKey(
54
+ blank=True,
55
+ default=None,
56
+ null=True,
57
+ on_delete=django.db.models.deletion.PROTECT,
58
+ related_name="artifacts",
59
+ to="lamindb.schema",
60
+ ),
61
+ ),
62
+ migrations.AlterField(
63
+ model_name="artifact",
64
+ name="_schemas_m2m",
65
+ field=models.ManyToManyField(
66
+ related_name="_artifacts_m2m",
67
+ through="lamindb.ArtifactSchema",
68
+ to="lamindb.schema",
69
+ ),
70
+ ),
71
+ migrations.AlterField(
72
+ model_name="artifactschema",
73
+ name="artifact",
74
+ field=lamindb.base.fields.ForeignKey(
75
+ blank=True,
76
+ on_delete=django.db.models.deletion.CASCADE,
77
+ related_name="_links_schema",
78
+ to="lamindb.artifact",
79
+ ),
80
+ ),
81
+ migrations.AlterField(
82
+ model_name="artifactschema",
83
+ name="schema",
84
+ field=lamindb.base.fields.ForeignKey(
85
+ blank=True,
86
+ on_delete=django.db.models.deletion.PROTECT,
87
+ related_name="_links_artifact",
88
+ to="lamindb.schema",
89
+ ),
90
+ ),
91
+ migrations.RemoveField(
92
+ model_name="artifact",
93
+ name="_curator",
94
+ ),
95
+ migrations.AddField(
96
+ model_name="feature",
97
+ name="_curation",
98
+ field=lamindb.base.fields.JSONField(
99
+ blank=True, db_default=None, default=None, null=True
100
+ ),
101
+ ),
102
+ migrations.AddField(
103
+ model_name="feature",
104
+ name="array_size",
105
+ field=models.IntegerField(db_index=True, default=0),
106
+ ),
107
+ migrations.AddField(
108
+ model_name="feature",
109
+ name="proxy_dtype",
110
+ field=lamindb.base.fields.CharField(
111
+ blank=True, null=True, default=None, max_length=255
112
+ ),
113
+ ),
114
+ migrations.AddField(
115
+ model_name="feature",
116
+ name="array_rank",
117
+ field=models.SmallIntegerField(db_index=True, default=0),
118
+ ),
119
+ migrations.AddField(
120
+ model_name="feature",
121
+ name="array_shape",
122
+ field=lamindb.base.fields.JSONField(
123
+ blank=True, db_default=None, default=None, null=True
124
+ ),
125
+ ),
126
+ migrations.AddField(
127
+ model_name="project",
128
+ name="_status_code",
129
+ field=models.SmallIntegerField(db_index=True, default=0),
130
+ ),
131
+ migrations.AddField(
132
+ model_name="project",
133
+ name="end_date",
134
+ field=lamindb.base.fields.DateField(blank=True, default=None, null=True),
135
+ ),
136
+ migrations.AddField(
137
+ model_name="project",
138
+ name="start_date",
139
+ field=lamindb.base.fields.DateField(blank=True, default=None, null=True),
140
+ ),
141
+ migrations.AddField(
142
+ model_name="schema",
143
+ name="_curation",
144
+ field=lamindb.base.fields.JSONField(
145
+ blank=True, db_default=None, default=None, null=True
146
+ ),
147
+ ),
148
+ migrations.AddField(
149
+ model_name="schema",
150
+ name="composite",
151
+ field=lamindb.base.fields.ForeignKey(
152
+ blank=True,
153
+ default=None,
154
+ null=True,
155
+ on_delete=django.db.models.deletion.PROTECT,
156
+ related_name="components",
157
+ to="lamindb.schema",
158
+ ),
159
+ ),
160
+ migrations.AddField(
161
+ model_name="schema",
162
+ name="maximal_set",
163
+ field=lamindb.base.fields.BooleanField(
164
+ blank=True, db_index=True, default=False
165
+ ),
166
+ ),
167
+ migrations.AddField(
168
+ model_name="schema",
169
+ name="minimal_set",
170
+ field=lamindb.base.fields.BooleanField(
171
+ blank=True, db_index=True, default=True
172
+ ),
173
+ ),
174
+ migrations.AddField(
175
+ model_name="schema",
176
+ name="ordered_set",
177
+ field=lamindb.base.fields.BooleanField(
178
+ blank=True, db_index=True, default=False
179
+ ),
180
+ ),
181
+ migrations.AddField(
182
+ model_name="schema",
183
+ name="otype",
184
+ field=lamindb.base.fields.CharField(
185
+ blank=True, db_index=True, default=None, max_length=64, null=True
186
+ ),
187
+ ),
188
+ migrations.AddField(
189
+ model_name="schema",
190
+ name="slot",
191
+ field=lamindb.base.fields.CharField(
192
+ blank=True, db_index=True, default=None, max_length=100, null=True
193
+ ),
194
+ ),
195
+ migrations.AddField(
196
+ model_name="schema",
197
+ name="validated_by",
198
+ field=lamindb.base.fields.ForeignKey(
199
+ blank=True,
200
+ default=None,
201
+ null=True,
202
+ on_delete=django.db.models.deletion.PROTECT,
203
+ related_name="validated_schemas",
204
+ to="lamindb.schema",
205
+ ),
206
+ ),
207
+ migrations.AlterField(
208
+ model_name="feature",
209
+ name="dtype",
210
+ field=lamindb.base.fields.CharField(
211
+ blank=True, db_index=True, default=None, max_length=255
212
+ ),
213
+ ),
214
+ migrations.AlterField(
215
+ model_name="schema",
216
+ name="hash",
217
+ field=lamindb.base.fields.CharField(
218
+ blank=True, db_index=True, default=None, max_length=22, null=True
219
+ ),
220
+ ),
221
+ migrations.CreateModel(
222
+ name="SchemaParam",
223
+ fields=[
224
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
225
+ (
226
+ "param",
227
+ lamindb.base.fields.ForeignKey(
228
+ blank=True,
229
+ on_delete=django.db.models.deletion.PROTECT,
230
+ related_name="+",
231
+ to="lamindb.param",
232
+ ),
233
+ ),
234
+ (
235
+ "schema",
236
+ lamindb.base.fields.ForeignKey(
237
+ blank=True,
238
+ on_delete=django.db.models.deletion.CASCADE,
239
+ related_name="+",
240
+ to="lamindb.schema",
241
+ ),
242
+ ),
243
+ ],
244
+ options={
245
+ "unique_together": {("schema", "param")},
246
+ },
247
+ bases=(models.Model, lamindb.models.LinkORM),
248
+ ),
249
+ migrations.AddField(
250
+ model_name="param",
251
+ name="schemas",
252
+ field=models.ManyToManyField(
253
+ related_name="params",
254
+ through="lamindb.SchemaParam",
255
+ to="lamindb.schema",
256
+ ),
257
+ ),
258
+ migrations.RenameField(
259
+ model_name="schema",
260
+ old_name="registry",
261
+ new_name="itype",
262
+ ),
263
+ migrations.AlterField(
264
+ model_name="schema",
265
+ name="itype",
266
+ field=lamindb.base.fields.CharField(
267
+ blank=True, db_index=True, default=None, max_length=120, null=True
268
+ ),
269
+ ),
270
+ ]
271
+
272
+
273
+ if "bionty" in lamindb_setup.settings.instance.modules:
274
+ Migration.dependencies += [
275
+ ("bionty", "0046_alter_cellline__aux_alter_cellmarker__aux_and_more"),
276
+ ]