lamindb 1.6.0__tar.gz → 1.6.1__tar.gz

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 (259) hide show
  1. {lamindb-1.6.0 → lamindb-1.6.1}/PKG-INFO +5 -4
  2. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/__init__.py +2 -2
  3. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_context.py +29 -7
  4. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/datasets/mini_immuno.py +3 -3
  5. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +20 -27
  6. lamindb-1.6.1/lamindb/migrations/0104_alter_branch_uid.py +403 -0
  7. lamindb-1.6.0/lamindb/migrations/0103_squashed.py → lamindb-1.6.1/lamindb/migrations/0104_squashed.py +33 -3
  8. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_feature_manager.py +11 -7
  9. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/collection.py +1 -3
  10. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/project.py +11 -7
  11. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/record.py +45 -0
  12. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/run.py +4 -2
  13. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/sqlrecord.py +42 -40
  14. {lamindb-1.6.0 → lamindb-1.6.1}/pyproject.toml +6 -4
  15. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_can_curate.py +2 -2
  16. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_feature_label_manager.py +7 -1
  17. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_records.py +4 -2
  18. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/scripts/check_lamin_dev.py +1 -1
  19. lamindb-1.6.1/tests/permissions/scripts/clean_lamin_dev.py +15 -0
  20. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/scripts/setup_access.py +4 -4
  21. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/test_permissions.py +43 -15
  22. {lamindb-1.6.0 → lamindb-1.6.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  23. {lamindb-1.6.0 → lamindb-1.6.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  24. {lamindb-1.6.0 → lamindb-1.6.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  25. {lamindb-1.6.0 → lamindb-1.6.1}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  26. {lamindb-1.6.0 → lamindb-1.6.1}/.github/workflows/build.yml +0 -0
  27. {lamindb-1.6.0 → lamindb-1.6.1}/.github/workflows/doc-changes.yml +0 -0
  28. {lamindb-1.6.0 → lamindb-1.6.1}/.gitignore +0 -0
  29. {lamindb-1.6.0 → lamindb-1.6.1}/.gitmodules +0 -0
  30. {lamindb-1.6.0 → lamindb-1.6.1}/.pre-commit-config.yaml +0 -0
  31. {lamindb-1.6.0 → lamindb-1.6.1}/CONTRIBUTING.md +0 -0
  32. {lamindb-1.6.0 → lamindb-1.6.1}/LICENSE +0 -0
  33. {lamindb-1.6.0 → lamindb-1.6.1}/README.md +0 -0
  34. {lamindb-1.6.0 → lamindb-1.6.1}/docs/api.md +0 -0
  35. {lamindb-1.6.0 → lamindb-1.6.1}/docs/arrays.ipynb +0 -0
  36. {lamindb-1.6.0 → lamindb-1.6.1}/docs/bio-registries.ipynb +0 -0
  37. {lamindb-1.6.0 → lamindb-1.6.1}/docs/bionty.md +0 -0
  38. {lamindb-1.6.0 → lamindb-1.6.1}/docs/changelog.md +0 -0
  39. {lamindb-1.6.0 → lamindb-1.6.1}/docs/clinicore.md +0 -0
  40. {lamindb-1.6.0 → lamindb-1.6.1}/docs/curate.ipynb +0 -0
  41. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/acid.ipynb +0 -0
  42. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/curate-any.ipynb +0 -0
  43. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/delete.ipynb +0 -0
  44. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/idempotency.ipynb +0 -0
  45. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/import-modules.ipynb +0 -0
  46. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/keep-artifacts-local.ipynb +0 -0
  47. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/pydantic-pandera.ipynb +0 -0
  48. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/reference-field.ipynb +0 -0
  49. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/search.ipynb +0 -0
  50. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/setup.ipynb +0 -0
  51. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/symbol-mapping.ipynb +0 -0
  52. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/test_notebooks.py +0 -0
  53. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/track-run-inputs.ipynb +0 -0
  54. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/validate-fields.ipynb +0 -0
  55. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq/visibility.ipynb +0 -0
  56. {lamindb-1.6.0 → lamindb-1.6.1}/docs/faq.md +0 -0
  57. {lamindb-1.6.0 → lamindb-1.6.1}/docs/guide.md +0 -0
  58. {lamindb-1.6.0 → lamindb-1.6.1}/docs/includes/installation.md +0 -0
  59. {lamindb-1.6.0 → lamindb-1.6.1}/docs/index.md +0 -0
  60. {lamindb-1.6.0 → lamindb-1.6.1}/docs/lamindb.md +0 -0
  61. {lamindb-1.6.0 → lamindb-1.6.1}/docs/query-search.md +0 -0
  62. {lamindb-1.6.0 → lamindb-1.6.1}/docs/registries.ipynb +0 -0
  63. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_anndata_flexible.py +0 -0
  64. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_dataframe_flexible.py +0 -0
  65. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_dataframe_minimal_errors.py +0 -0
  66. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_mudata.py +0 -0
  67. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_soma_experiment.py +0 -0
  68. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/curate_spatialdata.py +0 -0
  69. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/define_mini_immuno_features_labels.py +0 -0
  70. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
  71. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
  72. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/define_schema_spatialdata.py +0 -0
  73. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/define_valid_features.py +0 -0
  74. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/ingest_mini_immuno_datasets.py +0 -0
  75. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/run_track_and_finish.py +0 -0
  76. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/run_track_with_params.py +0 -0
  77. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/run_workflow.py +0 -0
  78. {lamindb-1.6.0 → lamindb-1.6.1}/docs/scripts/synced_with_git.py +0 -0
  79. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/add-replace-cache.ipynb +0 -0
  80. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/anndata-accessor.ipynb +0 -0
  81. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  82. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/test-files/iris.csv +0 -0
  83. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/test-files/iris.data +0 -0
  84. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/test-files/new_iris.csv +0 -0
  85. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/test_notebooks.py +0 -0
  86. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  87. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/upload.ipynb +0 -0
  88. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage/vitessce.ipynb +0 -0
  89. {lamindb-1.6.0 → lamindb-1.6.1}/docs/storage.md +0 -0
  90. {lamindb-1.6.0 → lamindb-1.6.1}/docs/test_notebooks.py +0 -0
  91. {lamindb-1.6.0 → lamindb-1.6.1}/docs/track.ipynb +0 -0
  92. {lamindb-1.6.0 → lamindb-1.6.1}/docs/transfer.ipynb +0 -0
  93. {lamindb-1.6.0 → lamindb-1.6.1}/docs/wetlab.md +0 -0
  94. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/_finish.py +0 -0
  95. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/_tracked.py +0 -0
  96. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/_view.py +0 -0
  97. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/__init__.py +0 -0
  98. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/fields.py +0 -0
  99. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/ids.py +0 -0
  100. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/types.py +0 -0
  101. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/uids.py +0 -0
  102. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/base/users.py +0 -0
  103. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/__init__.py +0 -0
  104. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_compat.py +0 -0
  105. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_mapped_collection.py +0 -0
  106. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_settings.py +0 -0
  107. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_sync_git.py +0 -0
  108. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/_track_environment.py +0 -0
  109. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/datasets/__init__.py +0 -0
  110. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/datasets/_core.py +0 -0
  111. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/datasets/_fake.py +0 -0
  112. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/datasets/_small.py +0 -0
  113. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/exceptions.py +0 -0
  114. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/loaders.py +0 -0
  115. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/__init__.py +0 -0
  116. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_anndata_accessor.py +0 -0
  117. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_backed_access.py +0 -0
  118. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_polars_lazy_df.py +0 -0
  119. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
  120. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_tiledbsoma.py +0 -0
  121. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_valid_suffixes.py +0 -0
  122. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/_zarr.py +0 -0
  123. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/objects.py +0 -0
  124. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/storage/paths.py +0 -0
  125. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/subsettings/__init__.py +0 -0
  126. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/subsettings/_annotation_settings.py +0 -0
  127. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
  128. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/core/types.py +0 -0
  129. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/curators/__init__.py +0 -0
  130. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/curators/_cellxgene_schemas/__init__.py +0 -0
  131. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/curators/_cellxgene_schemas/schema_versions.csv +0 -0
  132. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/curators/_legacy.py +0 -0
  133. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/curators/core.py +0 -0
  134. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/errors.py +0 -0
  135. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/examples/__init__.py +0 -0
  136. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/examples/schemas/__init__.py +0 -0
  137. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/examples/schemas/_anndata.py +0 -0
  138. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/examples/schemas/_simple.py +0 -0
  139. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/integrations/__init__.py +0 -0
  140. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/integrations/_vitessce.py +0 -0
  141. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0069_squashed.py +0 -0
  142. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
  143. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
  144. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
  145. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
  146. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
  147. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
  148. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
  149. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
  150. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
  151. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
  152. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
  153. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
  154. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
  155. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  156. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
  157. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  158. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0086_various.py +0 -0
  159. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
  160. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0088_schema_components.py +0 -0
  161. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0089_subsequent_runs.py +0 -0
  162. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
  163. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
  164. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
  165. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
  166. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
  167. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
  168. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
  169. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
  170. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
  171. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
  172. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
  173. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
  174. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
  175. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/migrations/__init__.py +0 -0
  176. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/__init__.py +0 -0
  177. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_describe.py +0 -0
  178. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_django.py +0 -0
  179. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_from_values.py +0 -0
  180. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_is_versioned.py +0 -0
  181. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_label_manager.py +0 -0
  182. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/_relations.py +0 -0
  183. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/artifact.py +0 -0
  184. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/artifact_set.py +0 -0
  185. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/can_curate.py +0 -0
  186. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/core.py +0 -0
  187. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/feature.py +0 -0
  188. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/has_parents.py +0 -0
  189. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/query_manager.py +0 -0
  190. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/query_set.py +0 -0
  191. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/save.py +0 -0
  192. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/schema.py +0 -0
  193. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/transform.py +0 -0
  194. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/models/ulabel.py +0 -0
  195. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/setup/__init__.py +0 -0
  196. {lamindb-1.6.0 → lamindb-1.6.1}/lamindb/setup/core/__init__.py +0 -0
  197. {lamindb-1.6.0 → lamindb-1.6.1}/noxfile.py +0 -0
  198. {lamindb-1.6.0 → lamindb-1.6.1}/tests/conftest.py +0 -0
  199. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/_dataset_fixtures.py +0 -0
  200. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/conftest.py +0 -0
  201. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
  202. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
  203. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  204. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/no-title.ipynb +0 -0
  205. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  206. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  207. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  208. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  209. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  210. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
  211. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  212. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/scripts/script-to-test-versioning.py +0 -0
  213. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_artifact.py +0 -0
  214. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_artifact_folders.py +0 -0
  215. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_collection.py +0 -0
  216. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_data.py +0 -0
  217. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_db.py +0 -0
  218. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_delete.py +0 -0
  219. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_describe_and_df_calls.py +0 -0
  220. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_dtype.py +0 -0
  221. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_feature.py +0 -0
  222. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_from_values.py +0 -0
  223. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_has_parents.py +0 -0
  224. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_integrity.py +0 -0
  225. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_load.py +0 -0
  226. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_manager.py +0 -0
  227. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_models.py +0 -0
  228. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_notebooks.py +0 -0
  229. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_queryset.py +0 -0
  230. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_record.py +0 -0
  231. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_run.py +0 -0
  232. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_save.py +0 -0
  233. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_schema.py +0 -0
  234. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_search.py +0 -0
  235. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_track.py +0 -0
  236. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_tracked.py +0 -0
  237. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_transform.py +0 -0
  238. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_ulabel.py +0 -0
  239. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_versioning.py +0 -0
  240. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_view.py +0 -0
  241. {lamindb-1.6.0 → lamindb-1.6.1}/tests/core/test_visibility.py +0 -0
  242. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/conftest.py +0 -0
  243. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_cat_managers.py +0 -0
  244. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_curators_examples.py +0 -0
  245. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_curators_general.py +0 -0
  246. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_curators_multivalue.py +0 -0
  247. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_cxg_curator.py +0 -0
  248. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
  249. {lamindb-1.6.0 → lamindb-1.6.1}/tests/curators/test_pert_curator.py +0 -0
  250. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/conftest.py +0 -0
  251. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/jwt_utils.py +0 -0
  252. {lamindb-1.6.0 → lamindb-1.6.1}/tests/permissions/scripts/setup_instance.py +0 -0
  253. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/conftest.py +0 -0
  254. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_artifact_storage.py +0 -0
  255. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_artifact_zarr.py +0 -0
  256. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_cache.py +0 -0
  257. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_storage.py +0 -0
  258. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_switch_storage.py +0 -0
  259. {lamindb-1.6.0 → lamindb-1.6.1}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamindb
3
- Version: 1.6.0
3
+ Version: 1.6.1
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.10,<3.14
@@ -10,7 +10,7 @@ Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Requires-Dist: lamin_utils==0.14.0
13
- Requires-Dist: lamin_cli==1.4.1
13
+ Requires-Dist: lamin_cli==1.4.2
14
14
  Requires-Dist: lamindb_setup[aws]==1.6.0
15
15
  Requires-Dist: pyyaml
16
16
  Requires-Dist: pyarrow
@@ -23,7 +23,7 @@ Requires-Dist: anndata>=0.8.0,<=0.11.4
23
23
  Requires-Dist: fsspec
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
26
- Requires-Dist: bionty>=1.4a1 ; extra == "bionty"
26
+ Requires-Dist: bionty>=1.5.0 ; extra == "bionty"
27
27
  Requires-Dist: clinicore ; extra == "clinicore"
28
28
  Requires-Dist: tomlkit ; extra == "dev"
29
29
  Requires-Dist: line_profiler ; extra == "dev"
@@ -36,6 +36,7 @@ Requires-Dist: pytest-cov ; extra == "dev"
36
36
  Requires-Dist: mudata ; extra == "dev"
37
37
  Requires-Dist: nbproject_test>=0.6.0 ; extra == "dev"
38
38
  Requires-Dist: faker-biology ; extra == "dev"
39
+ Requires-Dist: pronto ; extra == "dev"
39
40
  Requires-Dist: readfcs>=2.0.1 ; extra == "fcs"
40
41
  Requires-Dist: lamindb_setup[gcp] ; extra == "gcp"
41
42
  Requires-Dist: nbproject==0.11.1 ; extra == "jupyter"
@@ -43,7 +44,7 @@ Requires-Dist: jupytext ; extra == "jupyter"
43
44
  Requires-Dist: nbconvert>=7.2.1 ; extra == "jupyter"
44
45
  Requires-Dist: mistune!=3.1.0 ; extra == "jupyter"
45
46
  Requires-Dist: omop ; extra == "omop"
46
- Requires-Dist: wetlab>=1.3a1 ; extra == "wetlab"
47
+ Requires-Dist: wetlab>=1.3.1 ; extra == "wetlab"
47
48
  Requires-Dist: numcodecs<0.16.0 ; extra == "zarr"
48
49
  Requires-Dist: zarr>=2.16.0,<3.0.0a0 ; extra == "zarr"
49
50
  Project-URL: Home, https://github.com/laminlabs/lamindb
@@ -109,7 +109,7 @@ Backwards compatibility.
109
109
 
110
110
  # ruff: noqa: I001
111
111
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
112
- __version__ = "1.6.0"
112
+ __version__ = "1.6.1"
113
113
 
114
114
  import warnings
115
115
 
@@ -140,7 +140,6 @@ if _check_instance_setup(from_module="lamindb"):
140
140
  from .curators._legacy import CatManager as Curator
141
141
  from .models import (
142
142
  Artifact,
143
- Branch,
144
143
  Collection,
145
144
  Feature,
146
145
  FeatureSet, # backward compat
@@ -154,6 +153,7 @@ if _check_instance_setup(from_module="lamindb"):
154
153
  ULabel,
155
154
  User,
156
155
  Space,
156
+ Branch,
157
157
  Record,
158
158
  Sheet,
159
159
  )
@@ -38,7 +38,7 @@ if TYPE_CHECKING:
38
38
  from lamindb_setup.core.types import UPathStr
39
39
 
40
40
  from lamindb.base.types import TransformType
41
- from lamindb.models import Project, Space
41
+ from lamindb.models import Branch, Project, Space
42
42
 
43
43
  is_run_from_ipython = getattr(builtins, "__IPYTHON__", False)
44
44
 
@@ -193,6 +193,7 @@ class Context:
193
193
  """A local path to the script or notebook that's running."""
194
194
  self._project: Project | None = None
195
195
  self._space: Space | None = None
196
+ self._branch: Branch | None = None
196
197
  self._logging_message_track: str = ""
197
198
  self._logging_message_imports: str = ""
198
199
  self._stream_tracker: LogStreamTracker = LogStreamTracker()
@@ -247,9 +248,14 @@ class Context:
247
248
 
248
249
  @property
249
250
  def space(self) -> Space | None:
250
- """The space in which entities are created during the run."""
251
+ """The space in which artifacts, collections, transforms, and runs are saved during the run."""
251
252
  return self._space
252
253
 
254
+ @property
255
+ def branch(self) -> Branch | None:
256
+ """The branch on which entities are created during the run."""
257
+ return self._branch
258
+
253
259
  @property
254
260
  def run(self) -> Run | None:
255
261
  """Managed run of context."""
@@ -261,6 +267,7 @@ class Context:
261
267
  *,
262
268
  project: str | Project | None = None,
263
269
  space: str | Space | None = None,
270
+ branch: str | Branch | None = None,
264
271
  params: dict | None = None,
265
272
  new_run: bool | None = None,
266
273
  path: str | None = None,
@@ -273,11 +280,11 @@ class Context:
273
280
 
274
281
  Args:
275
282
  transform: A transform (stem) `uid` (or record). If `None`, auto-creates a `transform` with its `uid`.
276
- project: A project, its `name` or `uid` for labeling entities created during the run.
277
- space: A restricted space, its `name` or `uid` for creating sensitive entities are created during the run.
278
- The default is the common `"All"` space that every LaminDB instance has.
279
- The `space` argument doesn't affect `Storage`, `ULabel`, `Feature`, `Schema`, `Param` and bionty entities as these provide structure that should typically be commonly accessible.
283
+ project: A project (or its `name` or `uid`) for labeling entities.
284
+ space: A restricted space (or its `name` or `uid`) in which to store artifacts, collections, transforms, and runs.
285
+ Default: the `"All"` space.
280
286
  If you want to manually move entities to a different space, set the `.space` field (:doc:`docs:access`).
287
+ branch: A branch (or its `name` or `uid`) on which to store records.
281
288
  params: A dictionary of parameters to track for the run.
282
289
  new_run: If `False`, loads the latest run of transform
283
290
  (default notebook), if `True`, creates new run (default non-notebook).
@@ -299,7 +306,7 @@ class Context:
299
306
 
300
307
  More examples: :doc:`/track`
301
308
  """
302
- from lamindb.models import Project, Space
309
+ from lamindb.models import Branch, Project, Space
303
310
 
304
311
  instance_settings = ln_setup.settings.instance
305
312
  # similar logic here: https://github.com/laminlabs/lamindb/pull/2527
@@ -337,6 +344,21 @@ class Context:
337
344
  f"Space '{space}', please check on the hub UI whether you have the correct `uid` or `name`."
338
345
  )
339
346
  self._space = space_record
347
+ if branch is not None:
348
+ if isinstance(branch, Branch):
349
+ assert branch._state.adding is False, ( # noqa: S101
350
+ "Branch must be saved before passing it to track()"
351
+ )
352
+ branch_record = branch
353
+ else:
354
+ branch_record = Branch.filter(
355
+ Q(name=branch) | Q(uid=branch)
356
+ ).one_or_none()
357
+ if branch_record is None:
358
+ raise InvalidArgument(
359
+ f"Space '{branch}', please check on the hub UI whether you have the correct `uid` or `name`."
360
+ )
361
+ self._branch = branch_record
340
362
  self._logging_message_track = ""
341
363
  self._logging_message_imports = ""
342
364
  if transform is not None and isinstance(transform, str):
@@ -105,9 +105,9 @@ def get_dataset1(
105
105
  "treatment_time_h": [24, 24, 6],
106
106
  "donor": ["D0001", "D0002", None],
107
107
  "donor_ethnicity": [
108
- ["African", "African American"],
109
- ["African", "West African"],
110
- ["Asian"],
108
+ ["Chinese", "Singaporean Chinese"],
109
+ ["Chinese", "Han Chinese"],
110
+ ["Chinese"],
111
111
  ],
112
112
  }
113
113
  # define the dataset-level metadata
@@ -8,42 +8,35 @@ import lamindb.base.fields
8
8
 
9
9
 
10
10
  def populate_hash_values(apps, schema_editor):
11
+ from tqdm import tqdm
12
+
11
13
  FeatureValue = apps.get_model("lamindb", "FeatureValue")
12
14
 
13
- # Get records that need updating
14
- records_to_update = FeatureValue.objects.filter(hash__isnull=True)
15
+ records_queryset = FeatureValue.objects.filter(hash__isnull=True)
16
+ total_count = records_queryset.count()
17
+ print(f"\nFound {total_count} FeatureValue records with hash=None. Populating...")
15
18
 
16
- print(
17
- f"\nFound {records_to_update.count()} FeatureValue records with hash=None. Populating..."
18
- )
19
+ # Convert to list to avoid QuerySet modification issues
20
+ records_to_update = list(records_queryset)
19
21
 
22
+ batch_size = 1000
20
23
  updated_count = 0
21
- skipped_count = 0
22
24
 
23
- # Iterate efficiently through records
24
- for record in records_to_update.iterator():
25
- value = record.value
26
- new_hash = None
25
+ for batch_start in tqdm(range(0, len(records_to_update), batch_size)):
26
+ batch_records = records_to_update[batch_start : batch_start + batch_size]
27
27
 
28
- if not isinstance(value, dict):
29
- new_hash = hash_string(str(value))
30
- else:
31
- new_hash = hash_dict(value)
28
+ # Calculate hashes for all records in batch
29
+ for record in batch_records:
30
+ if not isinstance(record.value, dict):
31
+ record.hash = hash_string(str(record.value))
32
+ else:
33
+ record.hash = hash_dict(record.value)
32
34
 
33
- try:
34
- record.hash = new_hash
35
- record.save(update_fields=["hash"])
36
- updated_count += 1
37
- except Exception as e:
38
- # This will likely catch IntegrityError if a duplicate hash exists
39
- # for the same feature. You might want to log these or handle them
40
- # based on your data cleanup strategy.
41
- print(
42
- f" - Could not update record {record.id} (value: {str(value)[:50]}...): {e}"
43
- )
44
- skipped_count += 1
35
+ # Bulk update the entire batch
36
+ FeatureValue.objects.bulk_update(batch_records, ["hash"], batch_size=batch_size)
37
+ updated_count += len(batch_records)
45
38
 
46
- print(f"Finished. Updated: {updated_count}, Skipped/Errors: {skipped_count}.")
39
+ print(f"Finished. Updated: {updated_count} records.")
47
40
 
48
41
 
49
42
  class Migration(migrations.Migration):
@@ -0,0 +1,403 @@
1
+ # Generated by Django 5.2 on 2025-06-02 10:53
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations
5
+
6
+ import lamindb.base.fields
7
+ import lamindb.base.uids
8
+
9
+
10
+ class Migration(migrations.Migration):
11
+ dependencies = [
12
+ ("lamindb", "0103_remove_writelog_migration_state_and_more"),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.AlterField(
17
+ model_name="branch",
18
+ name="uid",
19
+ field=lamindb.base.fields.CharField(
20
+ blank=True,
21
+ db_index=True,
22
+ default=lamindb.base.uids.base62_12,
23
+ editable=False,
24
+ max_length=12,
25
+ unique=True,
26
+ ),
27
+ ),
28
+ migrations.AlterField(
29
+ model_name="artifact",
30
+ name="branch",
31
+ field=lamindb.base.fields.ForeignKey(
32
+ blank=True,
33
+ db_column="_branch_code",
34
+ db_default=1,
35
+ default=1,
36
+ on_delete=django.db.models.deletion.PROTECT,
37
+ related_name="+",
38
+ to="lamindb.branch",
39
+ ),
40
+ ),
41
+ migrations.AlterField(
42
+ model_name="artifact",
43
+ name="space",
44
+ field=lamindb.base.fields.ForeignKey(
45
+ blank=True,
46
+ db_default=1,
47
+ default=1,
48
+ on_delete=django.db.models.deletion.PROTECT,
49
+ related_name="+",
50
+ to="lamindb.space",
51
+ ),
52
+ ),
53
+ migrations.AlterField(
54
+ model_name="collection",
55
+ name="branch",
56
+ field=lamindb.base.fields.ForeignKey(
57
+ blank=True,
58
+ db_column="_branch_code",
59
+ db_default=1,
60
+ default=1,
61
+ on_delete=django.db.models.deletion.PROTECT,
62
+ related_name="+",
63
+ to="lamindb.branch",
64
+ ),
65
+ ),
66
+ migrations.AlterField(
67
+ model_name="collection",
68
+ name="space",
69
+ field=lamindb.base.fields.ForeignKey(
70
+ blank=True,
71
+ db_default=1,
72
+ default=1,
73
+ on_delete=django.db.models.deletion.PROTECT,
74
+ related_name="+",
75
+ to="lamindb.space",
76
+ ),
77
+ ),
78
+ migrations.AlterField(
79
+ model_name="feature",
80
+ name="branch",
81
+ field=lamindb.base.fields.ForeignKey(
82
+ blank=True,
83
+ db_column="_branch_code",
84
+ db_default=1,
85
+ default=1,
86
+ on_delete=django.db.models.deletion.PROTECT,
87
+ related_name="+",
88
+ to="lamindb.branch",
89
+ ),
90
+ ),
91
+ migrations.AlterField(
92
+ model_name="feature",
93
+ name="space",
94
+ field=lamindb.base.fields.ForeignKey(
95
+ blank=True,
96
+ db_default=1,
97
+ default=1,
98
+ on_delete=django.db.models.deletion.PROTECT,
99
+ related_name="+",
100
+ to="lamindb.space",
101
+ ),
102
+ ),
103
+ migrations.AlterField(
104
+ model_name="featurevalue",
105
+ name="branch",
106
+ field=lamindb.base.fields.ForeignKey(
107
+ blank=True,
108
+ db_column="_branch_code",
109
+ db_default=1,
110
+ default=1,
111
+ on_delete=django.db.models.deletion.PROTECT,
112
+ related_name="+",
113
+ to="lamindb.branch",
114
+ ),
115
+ ),
116
+ migrations.AlterField(
117
+ model_name="featurevalue",
118
+ name="space",
119
+ field=lamindb.base.fields.ForeignKey(
120
+ blank=True,
121
+ db_default=1,
122
+ default=1,
123
+ on_delete=django.db.models.deletion.PROTECT,
124
+ related_name="+",
125
+ to="lamindb.space",
126
+ ),
127
+ ),
128
+ migrations.AlterField(
129
+ model_name="person",
130
+ name="branch",
131
+ field=lamindb.base.fields.ForeignKey(
132
+ blank=True,
133
+ db_column="_branch_code",
134
+ db_default=1,
135
+ default=1,
136
+ on_delete=django.db.models.deletion.PROTECT,
137
+ related_name="+",
138
+ to="lamindb.branch",
139
+ ),
140
+ ),
141
+ migrations.AlterField(
142
+ model_name="person",
143
+ name="space",
144
+ field=lamindb.base.fields.ForeignKey(
145
+ blank=True,
146
+ db_default=1,
147
+ default=1,
148
+ on_delete=django.db.models.deletion.PROTECT,
149
+ related_name="+",
150
+ to="lamindb.space",
151
+ ),
152
+ ),
153
+ migrations.AlterField(
154
+ model_name="project",
155
+ name="branch",
156
+ field=lamindb.base.fields.ForeignKey(
157
+ blank=True,
158
+ db_column="_branch_code",
159
+ db_default=1,
160
+ default=1,
161
+ on_delete=django.db.models.deletion.PROTECT,
162
+ related_name="+",
163
+ to="lamindb.branch",
164
+ ),
165
+ ),
166
+ migrations.AlterField(
167
+ model_name="project",
168
+ name="space",
169
+ field=lamindb.base.fields.ForeignKey(
170
+ blank=True,
171
+ db_default=1,
172
+ default=1,
173
+ on_delete=django.db.models.deletion.PROTECT,
174
+ related_name="+",
175
+ to="lamindb.space",
176
+ ),
177
+ ),
178
+ migrations.AlterField(
179
+ model_name="record",
180
+ name="branch",
181
+ field=lamindb.base.fields.ForeignKey(
182
+ blank=True,
183
+ db_column="_branch_code",
184
+ db_default=1,
185
+ default=1,
186
+ on_delete=django.db.models.deletion.PROTECT,
187
+ related_name="+",
188
+ to="lamindb.branch",
189
+ ),
190
+ ),
191
+ migrations.AlterField(
192
+ model_name="record",
193
+ name="space",
194
+ field=lamindb.base.fields.ForeignKey(
195
+ blank=True,
196
+ db_default=1,
197
+ default=1,
198
+ on_delete=django.db.models.deletion.PROTECT,
199
+ related_name="+",
200
+ to="lamindb.space",
201
+ ),
202
+ ),
203
+ migrations.AlterField(
204
+ model_name="recordrecord",
205
+ name="branch",
206
+ field=lamindb.base.fields.ForeignKey(
207
+ blank=True,
208
+ db_column="_branch_code",
209
+ db_default=1,
210
+ default=1,
211
+ on_delete=django.db.models.deletion.PROTECT,
212
+ related_name="+",
213
+ to="lamindb.branch",
214
+ ),
215
+ ),
216
+ migrations.AlterField(
217
+ model_name="recordrecord",
218
+ name="space",
219
+ field=lamindb.base.fields.ForeignKey(
220
+ blank=True,
221
+ db_default=1,
222
+ default=1,
223
+ on_delete=django.db.models.deletion.PROTECT,
224
+ related_name="+",
225
+ to="lamindb.space",
226
+ ),
227
+ ),
228
+ migrations.AlterField(
229
+ model_name="reference",
230
+ name="branch",
231
+ field=lamindb.base.fields.ForeignKey(
232
+ blank=True,
233
+ db_column="_branch_code",
234
+ db_default=1,
235
+ default=1,
236
+ on_delete=django.db.models.deletion.PROTECT,
237
+ related_name="+",
238
+ to="lamindb.branch",
239
+ ),
240
+ ),
241
+ migrations.AlterField(
242
+ model_name="reference",
243
+ name="space",
244
+ field=lamindb.base.fields.ForeignKey(
245
+ blank=True,
246
+ db_default=1,
247
+ default=1,
248
+ on_delete=django.db.models.deletion.PROTECT,
249
+ related_name="+",
250
+ to="lamindb.space",
251
+ ),
252
+ ),
253
+ migrations.AlterField(
254
+ model_name="run",
255
+ name="branch",
256
+ field=lamindb.base.fields.ForeignKey(
257
+ blank=True,
258
+ db_column="_branch_code",
259
+ db_default=1,
260
+ default=1,
261
+ on_delete=django.db.models.deletion.PROTECT,
262
+ related_name="+",
263
+ to="lamindb.branch",
264
+ ),
265
+ ),
266
+ migrations.AlterField(
267
+ model_name="run",
268
+ name="space",
269
+ field=lamindb.base.fields.ForeignKey(
270
+ blank=True,
271
+ db_default=1,
272
+ default=1,
273
+ on_delete=django.db.models.deletion.PROTECT,
274
+ related_name="+",
275
+ to="lamindb.space",
276
+ ),
277
+ ),
278
+ migrations.AlterField(
279
+ model_name="schema",
280
+ name="branch",
281
+ field=lamindb.base.fields.ForeignKey(
282
+ blank=True,
283
+ db_column="_branch_code",
284
+ db_default=1,
285
+ default=1,
286
+ on_delete=django.db.models.deletion.PROTECT,
287
+ related_name="+",
288
+ to="lamindb.branch",
289
+ ),
290
+ ),
291
+ migrations.AlterField(
292
+ model_name="schema",
293
+ name="space",
294
+ field=lamindb.base.fields.ForeignKey(
295
+ blank=True,
296
+ db_default=1,
297
+ default=1,
298
+ on_delete=django.db.models.deletion.PROTECT,
299
+ related_name="+",
300
+ to="lamindb.space",
301
+ ),
302
+ ),
303
+ migrations.AlterField(
304
+ model_name="sheet",
305
+ name="branch",
306
+ field=lamindb.base.fields.ForeignKey(
307
+ blank=True,
308
+ db_column="_branch_code",
309
+ db_default=1,
310
+ default=1,
311
+ on_delete=django.db.models.deletion.PROTECT,
312
+ related_name="+",
313
+ to="lamindb.branch",
314
+ ),
315
+ ),
316
+ migrations.AlterField(
317
+ model_name="sheet",
318
+ name="space",
319
+ field=lamindb.base.fields.ForeignKey(
320
+ blank=True,
321
+ db_default=1,
322
+ default=1,
323
+ on_delete=django.db.models.deletion.PROTECT,
324
+ related_name="+",
325
+ to="lamindb.space",
326
+ ),
327
+ ),
328
+ migrations.AlterField(
329
+ model_name="storage",
330
+ name="branch",
331
+ field=lamindb.base.fields.ForeignKey(
332
+ blank=True,
333
+ db_column="_branch_code",
334
+ db_default=1,
335
+ default=1,
336
+ on_delete=django.db.models.deletion.PROTECT,
337
+ related_name="+",
338
+ to="lamindb.branch",
339
+ ),
340
+ ),
341
+ migrations.AlterField(
342
+ model_name="storage",
343
+ name="space",
344
+ field=lamindb.base.fields.ForeignKey(
345
+ blank=True,
346
+ db_default=1,
347
+ default=1,
348
+ on_delete=django.db.models.deletion.PROTECT,
349
+ related_name="+",
350
+ to="lamindb.space",
351
+ ),
352
+ ),
353
+ migrations.AlterField(
354
+ model_name="transform",
355
+ name="branch",
356
+ field=lamindb.base.fields.ForeignKey(
357
+ blank=True,
358
+ db_column="_branch_code",
359
+ db_default=1,
360
+ default=1,
361
+ on_delete=django.db.models.deletion.PROTECT,
362
+ related_name="+",
363
+ to="lamindb.branch",
364
+ ),
365
+ ),
366
+ migrations.AlterField(
367
+ model_name="transform",
368
+ name="space",
369
+ field=lamindb.base.fields.ForeignKey(
370
+ blank=True,
371
+ db_default=1,
372
+ default=1,
373
+ on_delete=django.db.models.deletion.PROTECT,
374
+ related_name="+",
375
+ to="lamindb.space",
376
+ ),
377
+ ),
378
+ migrations.AlterField(
379
+ model_name="ulabel",
380
+ name="branch",
381
+ field=lamindb.base.fields.ForeignKey(
382
+ blank=True,
383
+ db_column="_branch_code",
384
+ db_default=1,
385
+ default=1,
386
+ on_delete=django.db.models.deletion.PROTECT,
387
+ related_name="+",
388
+ to="lamindb.branch",
389
+ ),
390
+ ),
391
+ migrations.AlterField(
392
+ model_name="ulabel",
393
+ name="space",
394
+ field=lamindb.base.fields.ForeignKey(
395
+ blank=True,
396
+ db_default=1,
397
+ default=1,
398
+ on_delete=django.db.models.deletion.PROTECT,
399
+ related_name="+",
400
+ to="lamindb.space",
401
+ ),
402
+ ),
403
+ ]