lamindb 1.5.2__py3-none-any.whl → 1.6.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.
Files changed (66) hide show
  1. lamindb/__init__.py +25 -6
  2. lamindb/_finish.py +5 -5
  3. lamindb/_tracked.py +1 -1
  4. lamindb/_view.py +4 -4
  5. lamindb/core/_context.py +32 -6
  6. lamindb/core/_settings.py +1 -1
  7. lamindb/core/datasets/mini_immuno.py +8 -0
  8. lamindb/core/loaders.py +1 -1
  9. lamindb/core/storage/_anndata_accessor.py +9 -9
  10. lamindb/core/storage/_valid_suffixes.py +1 -0
  11. lamindb/core/storage/_zarr.py +32 -107
  12. lamindb/curators/__init__.py +19 -2
  13. lamindb/curators/_cellxgene_schemas/__init__.py +3 -3
  14. lamindb/curators/_legacy.py +15 -19
  15. lamindb/curators/core.py +247 -80
  16. lamindb/errors.py +2 -2
  17. lamindb/migrations/0069_squashed.py +8 -8
  18. lamindb/migrations/0071_lamindbv1_migrate_schema.py +3 -3
  19. lamindb/migrations/0073_merge_ourprojects.py +7 -7
  20. lamindb/migrations/0075_lamindbv1_part5.py +1 -1
  21. lamindb/migrations/0077_lamindbv1_part6b.py +3 -3
  22. lamindb/migrations/0080_polish_lamindbv1.py +2 -2
  23. lamindb/migrations/0088_schema_components.py +1 -1
  24. lamindb/migrations/0090_runproject_project_runs.py +2 -2
  25. lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +1 -1
  26. lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +84 -0
  27. lamindb/migrations/0095_remove_rundata_flextable.py +155 -0
  28. lamindb/migrations/0096_remove_artifact__param_values_and_more.py +266 -0
  29. lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +27 -0
  30. lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +656 -0
  31. lamindb/migrations/0099_alter_writelog_seqno.py +22 -0
  32. lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +102 -0
  33. lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +444 -0
  34. lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +72 -0
  35. lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +46 -0
  36. lamindb/migrations/{0090_squashed.py → 0103_squashed.py} +1013 -1009
  37. lamindb/models/__init__.py +35 -18
  38. lamindb/models/_describe.py +4 -4
  39. lamindb/models/_django.py +38 -4
  40. lamindb/models/_feature_manager.py +66 -123
  41. lamindb/models/_from_values.py +13 -13
  42. lamindb/models/_label_manager.py +8 -6
  43. lamindb/models/_relations.py +7 -7
  44. lamindb/models/artifact.py +166 -156
  45. lamindb/models/can_curate.py +25 -25
  46. lamindb/models/collection.py +48 -18
  47. lamindb/models/core.py +3 -3
  48. lamindb/models/feature.py +88 -60
  49. lamindb/models/has_parents.py +17 -17
  50. lamindb/models/project.py +52 -24
  51. lamindb/models/query_manager.py +5 -5
  52. lamindb/models/query_set.py +61 -37
  53. lamindb/models/record.py +158 -1583
  54. lamindb/models/run.py +39 -176
  55. lamindb/models/save.py +6 -6
  56. lamindb/models/schema.py +33 -44
  57. lamindb/models/sqlrecord.py +1743 -0
  58. lamindb/models/transform.py +17 -33
  59. lamindb/models/ulabel.py +21 -15
  60. {lamindb-1.5.2.dist-info → lamindb-1.6.0.dist-info}/METADATA +7 -11
  61. lamindb-1.6.0.dist-info/RECORD +118 -0
  62. lamindb/core/storage/_anndata_sizes.py +0 -41
  63. lamindb/models/flextable.py +0 -163
  64. lamindb-1.5.2.dist-info/RECORD +0 -109
  65. {lamindb-1.5.2.dist-info → lamindb-1.6.0.dist-info}/LICENSE +0 -0
  66. {lamindb-1.5.2.dist-info → lamindb-1.6.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,27 @@
1
+ # Generated by Django 5.2 on 2025-05-11 18:54
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("lamindb", "0096_remove_artifact__param_values_and_more"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.DeleteModel(
13
+ name="ArtifactParamValue",
14
+ ),
15
+ migrations.DeleteModel(
16
+ name="SchemaParam",
17
+ ),
18
+ migrations.DeleteModel(
19
+ name="Param",
20
+ ),
21
+ migrations.DeleteModel(
22
+ name="ParamValue",
23
+ ),
24
+ migrations.DeleteModel(
25
+ name="RunParamValue",
26
+ ),
27
+ ]
@@ -0,0 +1,656 @@
1
+ # Generated by Django 5.2 on 2025-05-22 15:21
2
+
3
+ import django.db.models.deletion
4
+ import django.db.models.functions.datetime
5
+ from django.db import migrations, models
6
+
7
+ import lamindb.base.fields
8
+ import lamindb.base.uids
9
+ import lamindb.base.users
10
+ import lamindb.models.can_curate
11
+ import lamindb.models.run
12
+ import lamindb.models.sqlrecord
13
+
14
+
15
+ class Migration(migrations.Migration):
16
+ dependencies = [
17
+ ("lamindb", "0097_remove_schemaparam_param_remove_paramvalue_param_and_more"),
18
+ ]
19
+
20
+ operations = [
21
+ migrations.AlterField(
22
+ model_name="feature",
23
+ name="type",
24
+ field=lamindb.base.fields.ForeignKey(
25
+ blank=True,
26
+ null=True,
27
+ on_delete=django.db.models.deletion.PROTECT,
28
+ related_name="instances",
29
+ to="lamindb.feature",
30
+ ),
31
+ ),
32
+ migrations.AlterField(
33
+ model_name="project",
34
+ name="type",
35
+ field=lamindb.base.fields.ForeignKey(
36
+ blank=True,
37
+ null=True,
38
+ on_delete=django.db.models.deletion.PROTECT,
39
+ related_name="instances",
40
+ to="lamindb.project",
41
+ ),
42
+ ),
43
+ migrations.AlterField(
44
+ model_name="reference",
45
+ name="type",
46
+ field=lamindb.base.fields.ForeignKey(
47
+ blank=True,
48
+ null=True,
49
+ on_delete=django.db.models.deletion.PROTECT,
50
+ related_name="instances",
51
+ to="lamindb.reference",
52
+ ),
53
+ ),
54
+ migrations.AlterField(
55
+ model_name="schema",
56
+ name="type",
57
+ field=lamindb.base.fields.ForeignKey(
58
+ blank=True,
59
+ null=True,
60
+ on_delete=django.db.models.deletion.PROTECT,
61
+ related_name="instances",
62
+ to="lamindb.schema",
63
+ ),
64
+ ),
65
+ migrations.AlterField(
66
+ model_name="ulabel",
67
+ name="type",
68
+ field=lamindb.base.fields.ForeignKey(
69
+ blank=True,
70
+ null=True,
71
+ on_delete=django.db.models.deletion.PROTECT,
72
+ related_name="instances",
73
+ to="lamindb.ulabel",
74
+ ),
75
+ ),
76
+ migrations.CreateModel(
77
+ name="Record",
78
+ fields=[
79
+ (
80
+ "_branch_code",
81
+ models.SmallIntegerField(db_default=1, db_index=True, default=1),
82
+ ),
83
+ (
84
+ "_aux",
85
+ lamindb.base.fields.JSONField(
86
+ blank=True, db_default=None, default=None, null=True
87
+ ),
88
+ ),
89
+ (
90
+ "created_at",
91
+ lamindb.base.fields.DateTimeField(
92
+ blank=True,
93
+ db_default=django.db.models.functions.datetime.Now(),
94
+ db_index=True,
95
+ editable=False,
96
+ ),
97
+ ),
98
+ (
99
+ "updated_at",
100
+ lamindb.base.fields.DateTimeField(
101
+ blank=True,
102
+ db_default=django.db.models.functions.datetime.Now(),
103
+ db_index=True,
104
+ editable=False,
105
+ ),
106
+ ),
107
+ ("id", models.AutoField(primary_key=True, serialize=False)),
108
+ (
109
+ "uid",
110
+ lamindb.base.fields.CharField(
111
+ blank=True,
112
+ db_index=True,
113
+ default=lamindb.base.uids.base62_16,
114
+ editable=False,
115
+ max_length=16,
116
+ unique=True,
117
+ ),
118
+ ),
119
+ (
120
+ "name",
121
+ lamindb.base.fields.CharField(
122
+ blank=True,
123
+ db_index=True,
124
+ default=None,
125
+ max_length=150,
126
+ null=True,
127
+ ),
128
+ ),
129
+ (
130
+ "is_type",
131
+ lamindb.base.fields.BooleanField(
132
+ blank=True, db_index=True, default=False, null=True
133
+ ),
134
+ ),
135
+ (
136
+ "description",
137
+ lamindb.base.fields.CharField(
138
+ blank=True, default=None, max_length=255, null=True
139
+ ),
140
+ ),
141
+ (
142
+ "created_by",
143
+ lamindb.base.fields.ForeignKey(
144
+ blank=True,
145
+ default=lamindb.base.users.current_user_id,
146
+ editable=False,
147
+ on_delete=django.db.models.deletion.PROTECT,
148
+ related_name="+",
149
+ to="lamindb.user",
150
+ ),
151
+ ),
152
+ (
153
+ "run",
154
+ lamindb.base.fields.ForeignKey(
155
+ blank=True,
156
+ default=lamindb.models.run.current_run,
157
+ null=True,
158
+ on_delete=django.db.models.deletion.PROTECT,
159
+ related_name="+",
160
+ to="lamindb.run",
161
+ ),
162
+ ),
163
+ (
164
+ "space",
165
+ lamindb.base.fields.ForeignKey(
166
+ blank=True,
167
+ db_default=1,
168
+ default=1,
169
+ on_delete=django.db.models.deletion.PROTECT,
170
+ to="lamindb.space",
171
+ ),
172
+ ),
173
+ (
174
+ "type",
175
+ lamindb.base.fields.ForeignKey(
176
+ blank=True,
177
+ null=True,
178
+ on_delete=django.db.models.deletion.PROTECT,
179
+ related_name="instances",
180
+ to="lamindb.record",
181
+ ),
182
+ ),
183
+ ],
184
+ options={
185
+ "abstract": False,
186
+ },
187
+ bases=(lamindb.models.can_curate.CanCurate, models.Model),
188
+ ),
189
+ migrations.CreateModel(
190
+ name="RecordArtifact",
191
+ fields=[
192
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
193
+ (
194
+ "feature",
195
+ lamindb.base.fields.ForeignKey(
196
+ blank=True,
197
+ on_delete=django.db.models.deletion.CASCADE,
198
+ related_name="links_recordartifact",
199
+ to="lamindb.feature",
200
+ ),
201
+ ),
202
+ (
203
+ "record",
204
+ lamindb.base.fields.ForeignKey(
205
+ blank=True,
206
+ on_delete=django.db.models.deletion.CASCADE,
207
+ related_name="values_artifact",
208
+ to="lamindb.record",
209
+ ),
210
+ ),
211
+ (
212
+ "value",
213
+ lamindb.base.fields.ForeignKey(
214
+ blank=True,
215
+ on_delete=django.db.models.deletion.PROTECT,
216
+ related_name="links_record",
217
+ to="lamindb.artifact",
218
+ ),
219
+ ),
220
+ ],
221
+ options={
222
+ "unique_together": {("record", "feature", "value")},
223
+ },
224
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
225
+ ),
226
+ migrations.AddField(
227
+ model_name="record",
228
+ name="artifacts",
229
+ field=models.ManyToManyField(
230
+ related_name="records",
231
+ through="lamindb.RecordArtifact",
232
+ to="lamindb.artifact",
233
+ ),
234
+ ),
235
+ migrations.CreateModel(
236
+ name="RecordProject",
237
+ fields=[
238
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
239
+ (
240
+ "feature",
241
+ lamindb.base.fields.ForeignKey(
242
+ blank=True,
243
+ on_delete=django.db.models.deletion.CASCADE,
244
+ related_name="links_recordproject",
245
+ to="lamindb.feature",
246
+ ),
247
+ ),
248
+ (
249
+ "record",
250
+ lamindb.base.fields.ForeignKey(
251
+ blank=True,
252
+ on_delete=django.db.models.deletion.CASCADE,
253
+ related_name="values_project",
254
+ to="lamindb.record",
255
+ ),
256
+ ),
257
+ (
258
+ "value",
259
+ lamindb.base.fields.ForeignKey(
260
+ blank=True,
261
+ on_delete=django.db.models.deletion.PROTECT,
262
+ related_name="links_record",
263
+ to="lamindb.project",
264
+ ),
265
+ ),
266
+ ],
267
+ options={
268
+ "unique_together": {("record", "feature")},
269
+ },
270
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
271
+ ),
272
+ migrations.AddField(
273
+ model_name="project",
274
+ name="records",
275
+ field=models.ManyToManyField(
276
+ related_name="projects",
277
+ through="lamindb.RecordProject",
278
+ to="lamindb.record",
279
+ ),
280
+ ),
281
+ migrations.CreateModel(
282
+ name="RecordRecord",
283
+ fields=[
284
+ (
285
+ "_branch_code",
286
+ models.SmallIntegerField(db_default=1, db_index=True, default=1),
287
+ ),
288
+ (
289
+ "_aux",
290
+ lamindb.base.fields.JSONField(
291
+ blank=True, db_default=None, default=None, null=True
292
+ ),
293
+ ),
294
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
295
+ (
296
+ "feature",
297
+ lamindb.base.fields.ForeignKey(
298
+ blank=True,
299
+ on_delete=django.db.models.deletion.CASCADE,
300
+ related_name="links_recordrecord",
301
+ to="lamindb.feature",
302
+ ),
303
+ ),
304
+ (
305
+ "record",
306
+ lamindb.base.fields.ForeignKey(
307
+ blank=True,
308
+ on_delete=django.db.models.deletion.CASCADE,
309
+ related_name="values_record",
310
+ to="lamindb.record",
311
+ ),
312
+ ),
313
+ (
314
+ "space",
315
+ lamindb.base.fields.ForeignKey(
316
+ blank=True,
317
+ db_default=1,
318
+ default=1,
319
+ on_delete=django.db.models.deletion.PROTECT,
320
+ to="lamindb.space",
321
+ ),
322
+ ),
323
+ (
324
+ "value",
325
+ lamindb.base.fields.ForeignKey(
326
+ blank=True,
327
+ on_delete=django.db.models.deletion.PROTECT,
328
+ related_name="links_record",
329
+ to="lamindb.record",
330
+ ),
331
+ ),
332
+ ],
333
+ options={
334
+ "unique_together": {("record", "feature")},
335
+ },
336
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
337
+ ),
338
+ migrations.AddField(
339
+ model_name="record",
340
+ name="components",
341
+ field=models.ManyToManyField(
342
+ related_name="composites",
343
+ through="lamindb.RecordRecord",
344
+ to="lamindb.record",
345
+ ),
346
+ ),
347
+ migrations.CreateModel(
348
+ name="RecordRun",
349
+ fields=[
350
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
351
+ (
352
+ "feature",
353
+ lamindb.base.fields.ForeignKey(
354
+ blank=True,
355
+ on_delete=django.db.models.deletion.CASCADE,
356
+ related_name="links_recordrun",
357
+ to="lamindb.feature",
358
+ ),
359
+ ),
360
+ (
361
+ "record",
362
+ lamindb.base.fields.ForeignKey(
363
+ blank=True,
364
+ on_delete=django.db.models.deletion.CASCADE,
365
+ related_name="values_run",
366
+ to="lamindb.record",
367
+ ),
368
+ ),
369
+ (
370
+ "value",
371
+ lamindb.base.fields.ForeignKey(
372
+ blank=True,
373
+ on_delete=django.db.models.deletion.PROTECT,
374
+ related_name="links_record",
375
+ to="lamindb.run",
376
+ ),
377
+ ),
378
+ ],
379
+ options={
380
+ "unique_together": {("record", "feature")},
381
+ },
382
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
383
+ ),
384
+ migrations.AddField(
385
+ model_name="record",
386
+ name="runs",
387
+ field=models.ManyToManyField(
388
+ related_name="records", through="lamindb.RecordRun", to="lamindb.run"
389
+ ),
390
+ ),
391
+ migrations.CreateModel(
392
+ name="RecordULabel",
393
+ fields=[
394
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
395
+ (
396
+ "feature",
397
+ lamindb.base.fields.ForeignKey(
398
+ blank=True,
399
+ on_delete=django.db.models.deletion.CASCADE,
400
+ related_name="links_recordulabel",
401
+ to="lamindb.feature",
402
+ ),
403
+ ),
404
+ (
405
+ "record",
406
+ lamindb.base.fields.ForeignKey(
407
+ blank=True,
408
+ on_delete=django.db.models.deletion.CASCADE,
409
+ related_name="values_ulabel",
410
+ to="lamindb.record",
411
+ ),
412
+ ),
413
+ (
414
+ "value",
415
+ lamindb.base.fields.ForeignKey(
416
+ blank=True,
417
+ on_delete=django.db.models.deletion.PROTECT,
418
+ related_name="links_record",
419
+ to="lamindb.ulabel",
420
+ ),
421
+ ),
422
+ ],
423
+ options={
424
+ "unique_together": {("record", "feature")},
425
+ },
426
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
427
+ ),
428
+ migrations.AddField(
429
+ model_name="record",
430
+ name="ulabels",
431
+ field=models.ManyToManyField(
432
+ related_name="_records",
433
+ through="lamindb.RecordULabel",
434
+ to="lamindb.ulabel",
435
+ ),
436
+ ),
437
+ migrations.CreateModel(
438
+ name="Sheet",
439
+ fields=[
440
+ (
441
+ "_branch_code",
442
+ models.SmallIntegerField(db_default=1, db_index=True, default=1),
443
+ ),
444
+ (
445
+ "_aux",
446
+ lamindb.base.fields.JSONField(
447
+ blank=True, db_default=None, default=None, null=True
448
+ ),
449
+ ),
450
+ (
451
+ "created_at",
452
+ lamindb.base.fields.DateTimeField(
453
+ blank=True,
454
+ db_default=django.db.models.functions.datetime.Now(),
455
+ db_index=True,
456
+ editable=False,
457
+ ),
458
+ ),
459
+ (
460
+ "updated_at",
461
+ lamindb.base.fields.DateTimeField(
462
+ blank=True,
463
+ db_default=django.db.models.functions.datetime.Now(),
464
+ db_index=True,
465
+ editable=False,
466
+ ),
467
+ ),
468
+ ("id", models.AutoField(primary_key=True, serialize=False)),
469
+ (
470
+ "uid",
471
+ lamindb.base.fields.CharField(
472
+ blank=True,
473
+ db_index=True,
474
+ default=lamindb.base.uids.base62_12,
475
+ editable=False,
476
+ max_length=12,
477
+ unique=True,
478
+ ),
479
+ ),
480
+ (
481
+ "name",
482
+ lamindb.base.fields.CharField(
483
+ blank=True, db_index=True, default=None, max_length=255
484
+ ),
485
+ ),
486
+ (
487
+ "description",
488
+ lamindb.base.fields.CharField(
489
+ blank=True,
490
+ db_index=True,
491
+ default=None,
492
+ max_length=255,
493
+ null=True,
494
+ ),
495
+ ),
496
+ (
497
+ "created_by",
498
+ lamindb.base.fields.ForeignKey(
499
+ blank=True,
500
+ default=lamindb.base.users.current_user_id,
501
+ editable=False,
502
+ on_delete=django.db.models.deletion.PROTECT,
503
+ related_name="+",
504
+ to="lamindb.user",
505
+ ),
506
+ ),
507
+ (
508
+ "run",
509
+ lamindb.base.fields.ForeignKey(
510
+ blank=True,
511
+ default=lamindb.models.run.current_run,
512
+ null=True,
513
+ on_delete=django.db.models.deletion.PROTECT,
514
+ related_name="+",
515
+ to="lamindb.run",
516
+ ),
517
+ ),
518
+ (
519
+ "schema",
520
+ lamindb.base.fields.ForeignKey(
521
+ blank=True,
522
+ null=True,
523
+ on_delete=django.db.models.deletion.CASCADE,
524
+ related_name="sheets",
525
+ to="lamindb.schema",
526
+ ),
527
+ ),
528
+ (
529
+ "space",
530
+ lamindb.base.fields.ForeignKey(
531
+ blank=True,
532
+ db_default=1,
533
+ default=1,
534
+ on_delete=django.db.models.deletion.PROTECT,
535
+ to="lamindb.space",
536
+ ),
537
+ ),
538
+ ],
539
+ options={
540
+ "abstract": False,
541
+ },
542
+ ),
543
+ migrations.AddField(
544
+ model_name="record",
545
+ name="sheet",
546
+ field=lamindb.base.fields.ForeignKey(
547
+ blank=True,
548
+ null=True,
549
+ on_delete=django.db.models.deletion.CASCADE,
550
+ related_name="records",
551
+ to="lamindb.sheet",
552
+ ),
553
+ ),
554
+ migrations.CreateModel(
555
+ name="SheetProject",
556
+ fields=[
557
+ (
558
+ "created_at",
559
+ lamindb.base.fields.DateTimeField(
560
+ blank=True,
561
+ db_default=django.db.models.functions.datetime.Now(),
562
+ db_index=True,
563
+ editable=False,
564
+ ),
565
+ ),
566
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
567
+ (
568
+ "created_by",
569
+ lamindb.base.fields.ForeignKey(
570
+ blank=True,
571
+ default=lamindb.base.users.current_user_id,
572
+ editable=False,
573
+ on_delete=django.db.models.deletion.PROTECT,
574
+ related_name="+",
575
+ to="lamindb.user",
576
+ ),
577
+ ),
578
+ (
579
+ "project",
580
+ lamindb.base.fields.ForeignKey(
581
+ blank=True,
582
+ on_delete=django.db.models.deletion.PROTECT,
583
+ related_name="links_sheet",
584
+ to="lamindb.project",
585
+ ),
586
+ ),
587
+ (
588
+ "run",
589
+ lamindb.base.fields.ForeignKey(
590
+ blank=True,
591
+ default=lamindb.models.run.current_run,
592
+ null=True,
593
+ on_delete=django.db.models.deletion.PROTECT,
594
+ related_name="+",
595
+ to="lamindb.run",
596
+ ),
597
+ ),
598
+ (
599
+ "sheet",
600
+ lamindb.base.fields.ForeignKey(
601
+ blank=True,
602
+ on_delete=django.db.models.deletion.CASCADE,
603
+ related_name="links_project",
604
+ to="lamindb.sheet",
605
+ ),
606
+ ),
607
+ ],
608
+ options={
609
+ "unique_together": {("sheet", "project")},
610
+ },
611
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
612
+ ),
613
+ migrations.AddField(
614
+ model_name="project",
615
+ name="sheets",
616
+ field=models.ManyToManyField(
617
+ related_name="projects",
618
+ through="lamindb.SheetProject",
619
+ to="lamindb.sheet",
620
+ ),
621
+ ),
622
+ migrations.CreateModel(
623
+ name="RecordJson",
624
+ fields=[
625
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
626
+ (
627
+ "value",
628
+ lamindb.base.fields.JSONField(
629
+ blank=True, db_default=None, default=None
630
+ ),
631
+ ),
632
+ (
633
+ "feature",
634
+ lamindb.base.fields.ForeignKey(
635
+ blank=True,
636
+ on_delete=django.db.models.deletion.CASCADE,
637
+ related_name="links_recordjson",
638
+ to="lamindb.feature",
639
+ ),
640
+ ),
641
+ (
642
+ "record",
643
+ lamindb.base.fields.ForeignKey(
644
+ blank=True,
645
+ on_delete=django.db.models.deletion.CASCADE,
646
+ related_name="values_json",
647
+ to="lamindb.record",
648
+ ),
649
+ ),
650
+ ],
651
+ options={
652
+ "unique_together": {("record", "feature")},
653
+ },
654
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
655
+ ),
656
+ ]
@@ -0,0 +1,22 @@
1
+ # Generated by Django 5.1.7 on 2025-05-23 23:20
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("lamindb", "0098_alter_feature_type_alter_project_type_and_more"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="writelog",
14
+ name="seqno",
15
+ field=models.BigAutoField(primary_key=True, serialize=False),
16
+ ),
17
+ migrations.RenameField(
18
+ model_name="writelog",
19
+ old_name="seqno",
20
+ new_name="id",
21
+ ),
22
+ ]