lamindb 0.71.2__tar.gz → 0.72.0__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 (432) hide show
  1. {lamindb-0.71.2 → lamindb-0.72.0}/.github/workflows/build.yml +3 -3
  2. {lamindb-0.71.2 → lamindb-0.72.0}/.gitmodules +3 -0
  3. {lamindb-0.71.2 → lamindb-0.72.0}/PKG-INFO +7 -6
  4. {lamindb-0.71.2 → lamindb-0.72.0}/docs/annotate-for-developers.ipynb +1 -1
  5. {lamindb-0.71.2 → lamindb-0.72.0}/docs/bio-registries.ipynb +108 -122
  6. {lamindb-0.71.2 → lamindb-0.72.0}/docs/changelog.md +31 -0
  7. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/idempotency.ipynb +4 -4
  8. {lamindb-0.71.2 → lamindb-0.72.0}/docs/introduction.ipynb +24 -10
  9. {lamindb-0.71.2 → lamindb-0.72.0}/docs/meta.ipynb +2 -12
  10. {lamindb-0.71.2 → lamindb-0.72.0}/docs/signup-login.md +1 -1
  11. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/prepare-transfer-local-to-cloud.ipynb +4 -4
  12. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/transfer-local-to-cloud.ipynb +5 -3
  13. {lamindb-0.71.2 → lamindb-0.72.0}/docs/transfer.ipynb +1 -3
  14. {lamindb-0.71.2 → lamindb-0.72.0}/docs/tutorial.ipynb +7 -5
  15. {lamindb-0.71.2 → lamindb-0.72.0}/docs/tutorial2.ipynb +81 -64
  16. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/__init__.py +2 -2
  17. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_annotate.py +6 -10
  18. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_artifact.py +24 -10
  19. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_can_validate.py +9 -3
  20. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_collection.py +7 -7
  21. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_feature.py +53 -45
  22. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_feature_set.py +37 -74
  23. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_from_values.py +27 -8
  24. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_query_manager.py +6 -1
  25. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_registry.py +60 -100
  26. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_run.py +0 -2
  27. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_save.py +28 -11
  28. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/__init__.py +4 -0
  29. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_data.py +56 -30
  30. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_feature_manager.py +159 -64
  31. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_label_manager.py +53 -38
  32. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_run_context.py +24 -1
  33. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/datasets/_core.py +10 -18
  34. lamindb-0.72.0/lamindb/core/schema.py +53 -0
  35. {lamindb-0.71.2 → lamindb-0.72.0}/noxfile.py +2 -2
  36. {lamindb-0.71.2 → lamindb-0.72.0}/pyproject.toml +6 -5
  37. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/bionty/__init__.py +2 -2
  38. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/pyproject.toml +1 -1
  39. lamindb-0.72.0/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  40. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/lamin_cli/_get.py +11 -6
  41. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_get.py +11 -1
  42. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/changelog.md +9 -1
  43. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +22 -1
  44. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +1 -1
  45. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  46. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +78 -61
  47. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_delete.py +10 -49
  48. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_init_instance.py +18 -17
  49. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +4 -0
  50. lamindb-0.72.0/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +144 -0
  51. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +21 -13
  52. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +16 -17
  53. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +18 -2
  54. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/hashing.py +23 -20
  55. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/upath.py +4 -68
  56. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-prod/conftest.py +2 -2
  57. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/.gitignore +1 -0
  58. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/docs/changelog.md +12 -0
  59. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/__init__.py +1 -1
  60. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py → lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +324 -335
  61. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0024_remove_cellline_collections_and_more.py +64 -0
  62. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +851 -0
  63. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +520 -0
  64. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +388 -0
  65. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0028_artifactcellline_created_at_and_more.py +703 -0
  66. lamindb-0.72.0/sub/lnschema-bionty/lnschema_bionty/migrations/0028_squashed.py +2137 -0
  67. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/models.py +367 -304
  68. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/pyproject.toml +1 -1
  69. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/CHANGELOG.md +7 -0
  70. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  71. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py → lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +263 -33
  72. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +1 -3
  73. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +178 -0
  74. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +33 -0
  75. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +58 -0
  76. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +191 -0
  77. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +71 -0
  78. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +419 -0
  79. lamindb-0.72.0/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +1302 -0
  80. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/models.py +358 -208
  81. lamindb-0.72.0/sub/wetlab/.github/workflows/build.yml +67 -0
  82. lamindb-0.72.0/sub/wetlab/.github/workflows/deploy-instance-apis.yml +19 -0
  83. lamindb-0.72.0/sub/wetlab/.github/workflows/latest-changes.jinja2 +2 -0
  84. lamindb-0.72.0/sub/wetlab/.github/workflows/latest-changes.yml +25 -0
  85. lamindb-0.72.0/sub/wetlab/.gitignore +118 -0
  86. lamindb-0.72.0/sub/wetlab/.pre-commit-config.yaml +65 -0
  87. lamindb-0.72.0/sub/wetlab/README.md +3 -0
  88. lamindb-0.72.0/sub/wetlab/docs/changelog.md +51 -0
  89. lamindb-0.72.0/sub/wetlab/docs/guide/01-get-started.ipynb +99 -0
  90. lamindb-0.72.0/sub/wetlab/docs/guide/index.md +9 -0
  91. lamindb-0.72.0/sub/wetlab/docs/index.md +12 -0
  92. lamindb-0.72.0/sub/wetlab/docs/reference.md +5 -0
  93. lamindb-0.72.0/sub/wetlab/noxfile.py +25 -0
  94. lamindb-0.72.0/sub/wetlab/pyproject.toml +37 -0
  95. lamindb-0.72.0/sub/wetlab/tests/test_integrity.py +13 -0
  96. lamindb-0.72.0/sub/wetlab/tests/test_notebooks.py +14 -0
  97. lamindb-0.72.0/sub/wetlab/wetlab/__init__.py +45 -0
  98. lamindb-0.72.0/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +321 -0
  99. lamindb-0.72.0/sub/wetlab/wetlab/migrations/0018_squashed.py +346 -0
  100. lamindb-0.72.0/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +36 -0
  101. lamindb-0.72.0/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  102. lamindb-0.72.0/sub/wetlab/wetlab/models.py +226 -0
  103. {lamindb-0.71.2 → lamindb-0.72.0}/tests/conftest.py +1 -0
  104. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_annotate.py +14 -0
  105. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_can_validate.py +1 -0
  106. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_collection.py +18 -18
  107. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_feature.py +20 -18
  108. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_feature_manager.py +78 -48
  109. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_feature_set.py +20 -18
  110. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_from_values.py +14 -5
  111. lamindb-0.72.0/tests/test_label_manager.py +53 -0
  112. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_queryset.py +5 -4
  113. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_registry.py +5 -5
  114. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_run_context.py +15 -2
  115. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_save.py +13 -0
  116. lamindb-0.72.0/tests/test_search.py +62 -0
  117. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_transfer.py +10 -11
  118. lamindb-0.71.2/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  119. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -838
  120. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -48
  121. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -87
  122. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -153
  123. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -151
  124. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -60
  125. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -73
  126. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -90
  127. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -19
  128. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -19
  129. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -123
  130. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -19
  131. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -43
  132. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -179
  133. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -143
  134. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -55
  135. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -70
  136. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -142
  137. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -85
  138. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -23
  139. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -78
  140. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -77
  141. lamindb-0.71.2/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -138
  142. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -445
  143. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -19
  144. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -26
  145. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -74
  146. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -26
  147. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -118
  148. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -35
  149. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -26
  150. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -131
  151. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -88
  152. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -150
  153. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -244
  154. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -117
  155. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -17
  156. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -30
  157. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -160
  158. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -33
  159. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -65
  160. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -47
  161. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -62
  162. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -33
  163. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -331
  164. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -51
  165. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -84
  166. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -16
  167. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -22
  168. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -18
  169. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -30
  170. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -23
  171. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -72
  172. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -172
  173. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -16
  174. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -26
  175. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -27
  176. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -31
  177. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -19
  178. lamindb-0.71.2/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -34
  179. lamindb-0.71.2/tests/test_label_manager.py +0 -48
  180. {lamindb-0.71.2 → lamindb-0.72.0}/.github/workflows/latest-changes.jinja2 +0 -0
  181. {lamindb-0.71.2 → lamindb-0.72.0}/.github/workflows/latest-changes.yml +0 -0
  182. {lamindb-0.71.2 → lamindb-0.72.0}/.gitignore +0 -0
  183. {lamindb-0.71.2 → lamindb-0.72.0}/.pre-commit-config.yaml +0 -0
  184. {lamindb-0.71.2 → lamindb-0.72.0}/LICENSE +0 -0
  185. {lamindb-0.71.2 → lamindb-0.72.0}/README.md +0 -0
  186. {lamindb-0.71.2 → lamindb-0.72.0}/docs/annotate.ipynb +0 -0
  187. {lamindb-0.71.2 → lamindb-0.72.0}/docs/bionty-base.md +0 -0
  188. {lamindb-0.71.2 → lamindb-0.72.0}/docs/bionty.md +0 -0
  189. {lamindb-0.71.2 → lamindb-0.72.0}/docs/can-validate.ipynb +0 -0
  190. {lamindb-0.71.2 → lamindb-0.72.0}/docs/data.ipynb +0 -0
  191. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/acid.ipynb +0 -0
  192. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/delete.ipynb +0 -0
  193. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/import-schema.ipynb +0 -0
  194. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/keep-artifacts-local.ipynb +0 -0
  195. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/key.ipynb +0 -0
  196. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/reference-field.ipynb +0 -0
  197. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/setup.ipynb +0 -0
  198. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/test_notebooks.py +0 -0
  199. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/track-run-inputs.ipynb +0 -0
  200. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq/visibility.ipynb +0 -0
  201. {lamindb-0.71.2 → lamindb-0.72.0}/docs/faq.md +0 -0
  202. {lamindb-0.71.2 → lamindb-0.72.0}/docs/features-lamindb.md +0 -0
  203. {lamindb-0.71.2 → lamindb-0.72.0}/docs/features-laminhub.md +0 -0
  204. {lamindb-0.71.2 → lamindb-0.72.0}/docs/guide.md +0 -0
  205. {lamindb-0.71.2 → lamindb-0.72.0}/docs/index.md +0 -0
  206. {lamindb-0.71.2 → lamindb-0.72.0}/docs/installation.md +0 -0
  207. {lamindb-0.71.2 → lamindb-0.72.0}/docs/lamin-utils.md +0 -0
  208. {lamindb-0.71.2 → lamindb-0.72.0}/docs/lamindb.md +0 -0
  209. {lamindb-0.71.2 → lamindb-0.72.0}/docs/nbproject.md +0 -0
  210. {lamindb-0.71.2 → lamindb-0.72.0}/docs/query-search.md +0 -0
  211. {lamindb-0.71.2 → lamindb-0.72.0}/docs/readfcs.md +0 -0
  212. {lamindb-0.71.2 → lamindb-0.72.0}/docs/reference.md +0 -0
  213. {lamindb-0.71.2 → lamindb-0.72.0}/docs/schemas.ipynb +0 -0
  214. {lamindb-0.71.2 → lamindb-0.72.0}/docs/setup.ipynb +0 -0
  215. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/add-replace-stage.ipynb +0 -0
  216. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/anndata-accessor.ipynb +0 -0
  217. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/test-files/iris.csv +0 -0
  218. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/test-files/iris.data +0 -0
  219. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/test-files/new_iris.csv +0 -0
  220. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/test_notebooks.py +0 -0
  221. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/upload.ipynb +0 -0
  222. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage/vitessce.ipynb +0 -0
  223. {lamindb-0.71.2 → lamindb-0.72.0}/docs/storage.md +0 -0
  224. {lamindb-0.71.2 → lamindb-0.72.0}/docs/test_notebooks.py +0 -0
  225. {lamindb-0.71.2 → lamindb-0.72.0}/docs/track.ipynb +0 -0
  226. {lamindb-0.71.2 → lamindb-0.72.0}/docs/wetlab.md +0 -0
  227. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_filter.py +0 -0
  228. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_finish.py +0 -0
  229. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_is_versioned.py +0 -0
  230. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_parents.py +0 -0
  231. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_query_set.py +0 -0
  232. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_storage.py +0 -0
  233. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_transform.py +0 -0
  234. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_ulabel.py +0 -0
  235. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_utils.py +0 -0
  236. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/_view.py +0 -0
  237. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_mapped_collection.py +0 -0
  238. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_settings.py +0 -0
  239. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_sync_git.py +0 -0
  240. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_track_environment.py +0 -0
  241. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/_transform_settings.py +0 -0
  242. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/datasets/__init__.py +0 -0
  243. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/datasets/_fake.py +0 -0
  244. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/exceptions.py +0 -0
  245. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/fields.py +0 -0
  246. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/__init__.py +0 -0
  247. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/_anndata_sizes.py +0 -0
  248. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/_backed_access.py +0 -0
  249. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/_valid_suffixes.py +0 -0
  250. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/_zarr.py +0 -0
  251. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/objects.py +0 -0
  252. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/storage/paths.py +0 -0
  253. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/types.py +0 -0
  254. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/core/versioning.py +0 -0
  255. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/integrations/__init__.py +0 -0
  256. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/integrations/_vitessce.py +0 -0
  257. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/setup/__init__.py +0 -0
  258. {lamindb-0.71.2 → lamindb-0.72.0}/lamindb/setup/core/__init__.py +0 -0
  259. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/.github/workflows/build.yml +0 -0
  260. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
  261. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
  262. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/.gitignore +0 -0
  263. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/.pre-commit-config.yaml +0 -0
  264. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/LICENSE +0 -0
  265. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/README.md +0 -0
  266. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/bionty/core/__init__.py +0 -0
  267. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/docs/changelog.md +0 -0
  268. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/docs/index.md +0 -0
  269. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/docs/reference.md +0 -0
  270. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/lamin-project.yaml +0 -0
  271. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/noxfile.py +0 -0
  272. {lamindb-0.71.2 → lamindb-0.72.0}/sub/bionty/tests/test_notebooks.py +0 -0
  273. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/.gitignore +0 -0
  274. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  275. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/README.md +0 -0
  276. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
  277. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  278. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  279. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  280. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/pyproject.toml +0 -0
  281. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/conftest.py +0 -0
  282. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  283. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  284. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  285. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  286. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  287. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  288. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_cli.py +0 -0
  289. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_migrate.py +0 -0
  290. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  291. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_save_files.py +0 -0
  292. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  293. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  294. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  295. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  296. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  297. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/.gitignore +0 -0
  298. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  299. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/LICENSE +0 -0
  300. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/README.md +0 -0
  301. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  302. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
  303. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  304. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  305. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  306. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  307. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  308. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  309. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  310. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  311. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  312. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  313. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  314. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  315. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  316. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  317. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/index.md +0 -0
  318. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/notebooks.md +0 -0
  319. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/docs/reference.md +0 -0
  320. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  321. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  322. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  323. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  324. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  325. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  326. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  327. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  328. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  329. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  330. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  331. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  332. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  333. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  334. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  335. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  336. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  337. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  338. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  339. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  340. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  341. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  342. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  343. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  344. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  345. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  346. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  347. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  348. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  349. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/noxfile.py +0 -0
  350. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/pyproject.toml +0 -0
  351. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  352. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  353. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  354. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  355. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  356. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  357. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  358. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
  359. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
  360. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  361. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  362. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  363. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  364. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  365. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  366. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  367. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  368. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
  369. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
  370. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
  371. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
  372. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/LICENSE +0 -0
  373. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/README.md +0 -0
  374. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/docs/index.md +0 -0
  375. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/docs/reference.md +0 -0
  376. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lamin-project.yaml +0 -0
  377. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -0
  378. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +0 -0
  379. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +0 -0
  380. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +0 -0
  381. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
  382. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
  383. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/noxfile.py +0 -0
  384. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
  385. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  386. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  387. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  388. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/.gitignore +0 -0
  389. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  390. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/LICENSE +0 -0
  391. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/README.md +0 -0
  392. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  393. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  394. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  395. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  396. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  397. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  398. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  399. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  400. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  401. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  402. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  403. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/types.py +0 -0
  404. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/lnschema_core/users.py +0 -0
  405. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/noxfile.py +0 -0
  406. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/pyproject.toml +0 -0
  407. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/tests/test_integrity.py +0 -0
  408. {lamindb-0.71.2 → lamindb-0.72.0}/sub/lnschema-core/tests/test_types.py +0 -0
  409. {lamindb-0.71.2 → lamindb-0.72.0}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
  410. {lamindb-0.71.2 → lamindb-0.72.0}/tests/notebooks/no-title.ipynb +0 -0
  411. {lamindb-0.71.2 → lamindb-0.72.0}/tests/notebooks/not-initialized.ipynb +0 -0
  412. {lamindb-0.71.2 → lamindb-0.72.0}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  413. {lamindb-0.71.2 → lamindb-0.72.0}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  414. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_artifact.py +2 -2
  415. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_artifact_folders.py +0 -0
  416. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_cache.py +0 -0
  417. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_data.py +0 -0
  418. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_db.py +0 -0
  419. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_delete.py +0 -0
  420. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_load.py +0 -0
  421. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_manager.py +0 -0
  422. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_notebooks.py +0 -0
  423. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_parents.py +0 -0
  424. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_run.py +0 -0
  425. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_settings.py +0 -0
  426. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_storage.py +0 -0
  427. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_transform.py +0 -0
  428. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_uid.py +0 -0
  429. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_ulabel.py +0 -0
  430. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_versioning.py +0 -0
  431. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_view.py +0 -0
  432. {lamindb-0.71.2 → lamindb-0.72.0}/tests/test_visibility.py +0 -0
@@ -22,7 +22,7 @@ jobs:
22
22
  - "faq"
23
23
  - "storage"
24
24
  - "cli"
25
- timeout-minutes: 10
25
+ timeout-minutes: 6
26
26
 
27
27
  steps:
28
28
  - uses: actions/checkout@v4
@@ -50,10 +50,10 @@ jobs:
50
50
  path: ~/postgres.tar
51
51
  key: cache-postgres-0
52
52
  - name: cache postgres miss
53
- if: ${{ steps.cache-postgres.outputs.cache-hit != 'true' && matrix.group == 'faq' || matrix.group == 'unit' }}
53
+ if: ${{ steps.cache-postgres.outputs.cache-hit != 'true' }}
54
54
  run: docker pull postgres:latest && docker image save postgres:latest --output ~/postgres.tar
55
55
  - name: cache postgres use
56
- if: ${{ steps.cache-postgres.outputs.cache-hit == 'true' && matrix.group == 'faq' || matrix.group == 'unit' }}
56
+ if: ${{ steps.cache-postgres.outputs.cache-hit == 'true' }}
57
57
  run: docker image load --input ~/postgres.tar
58
58
  - run: pip install -U laminci
59
59
  - name: install postgres
@@ -13,3 +13,6 @@
13
13
  [submodule "sub/bionty"]
14
14
  path = sub/bionty
15
15
  url = https://github.com/laminlabs/bionty
16
+ [submodule "sub/wetlab"]
17
+ path = sub/wetlab
18
+ url = https://github.com/laminlabs/wetlab
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.71.2
3
+ Version: 0.72.0
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -9,10 +9,10 @@ Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: lnschema_core==0.66.4
13
- Requires-Dist: lamindb_setup==0.71.3
12
+ Requires-Dist: lnschema_core==0.67.1
13
+ Requires-Dist: lamindb_setup==0.72.1
14
14
  Requires-Dist: lamin_utils==0.13.2
15
- Requires-Dist: lamin_cli==0.13.1
15
+ Requires-Dist: lamin_cli==0.13.2
16
16
  Requires-Dist: rapidfuzz
17
17
  Requires-Dist: pyarrow
18
18
  Requires-Dist: typing_extensions!=4.6.0
@@ -23,8 +23,9 @@ Requires-Dist: fsspec
23
23
  Requires-Dist: pandas
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
26
+ Requires-Dist: psutil
26
27
  Requires-Dist: lamindb_setup[aws] ; extra == "aws"
27
- Requires-Dist: bionty==0.42.9 ; extra == "bionty"
28
+ Requires-Dist: bionty==0.43.0 ; extra == "bionty"
28
29
  Requires-Dist: pandas<2 ; extra == "dev"
29
30
  Requires-Dist: pre-commit ; extra == "dev"
30
31
  Requires-Dist: nox ; extra == "dev"
@@ -37,7 +38,7 @@ Requires-Dist: faker-biology ; extra == "dev"
37
38
  Requires-Dist: django-schema-graph ; extra == "erdiagram"
38
39
  Requires-Dist: readfcs>=1.1.8 ; extra == "fcs"
39
40
  Requires-Dist: lamindb_setup[gcp] ; extra == "gcp"
40
- Requires-Dist: nbproject==0.10.2 ; extra == "jupyter"
41
+ Requires-Dist: nbproject==0.10.3 ; extra == "jupyter"
41
42
  Requires-Dist: nbstripout==0.6.1 ; extra == "jupyter"
42
43
  Requires-Dist: nbconvert ; extra == "jupyter"
43
44
  Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
@@ -259,7 +259,7 @@
259
259
  "source": [
260
260
  "# external metadata features\n",
261
261
  "external_meta_features = [\n",
262
- " ln.Feature(name=name, type=\"category\") for name in external_meta.keys()\n",
262
+ " ln.Feature(name=name, dtype=\"cat\") for name in external_meta.keys()\n",
263
263
  "]\n",
264
264
  "ln.save(external_meta_features)\n",
265
265
  "external_meta_features"
@@ -149,7 +149,11 @@
149
149
  {
150
150
  "cell_type": "code",
151
151
  "execution_count": null,
152
- "metadata": {},
152
+ "metadata": {
153
+ "tags": [
154
+ "hide-output"
155
+ ]
156
+ },
153
157
  "outputs": [],
154
158
  "source": [
155
159
  "public.search(\"gamma delta T cell\").head(3)"
@@ -166,7 +170,11 @@
166
170
  {
167
171
  "cell_type": "code",
168
172
  "execution_count": null,
169
- "metadata": {},
173
+ "metadata": {
174
+ "tags": [
175
+ "hide-output"
176
+ ]
177
+ },
170
178
  "outputs": [],
171
179
  "source": [
172
180
  "lookup = public.lookup()\n",
@@ -192,18 +200,14 @@
192
200
  {
193
201
  "cell_type": "code",
194
202
  "execution_count": null,
195
- "metadata": {},
196
- "outputs": [],
197
- "source": [
198
- "gdt_cell = bt.CellType(lookup.gamma_delta_t_cell)"
199
- ]
200
- },
201
- {
202
- "cell_type": "code",
203
- "execution_count": null,
204
- "metadata": {},
203
+ "metadata": {
204
+ "tags": [
205
+ "hide-output"
206
+ ]
207
+ },
205
208
  "outputs": [],
206
209
  "source": [
210
+ "gdt_cell = bt.CellType(lookup.gamma_delta_t_cell)\n",
207
211
  "gdt_cell"
208
212
  ]
209
213
  },
@@ -217,7 +221,11 @@
217
221
  {
218
222
  "cell_type": "code",
219
223
  "execution_count": null,
220
- "metadata": {},
224
+ "metadata": {
225
+ "tags": [
226
+ "hide-output"
227
+ ]
228
+ },
221
229
  "outputs": [],
222
230
  "source": [
223
231
  "bt.CellType.from_public(ontology_id=\"CL:0000798\")"
@@ -284,7 +292,11 @@
284
292
  {
285
293
  "cell_type": "code",
286
294
  "execution_count": null,
287
- "metadata": {},
295
+ "metadata": {
296
+ "tags": [
297
+ "hide-output"
298
+ ]
299
+ },
288
300
  "outputs": [],
289
301
  "source": [
290
302
  "gdt_cell.parents.df()"
@@ -339,7 +351,7 @@
339
351
  "source": [
340
352
  "When accessing data sources, one often encounters bulk references to entities that might be corrupted or standardized using different standardization schemes.\n",
341
353
  "\n",
342
- "Let's consider an example based on an `AnnData` object:"
354
+ "Let's consider an example based on an `AnnData` object, in the `cell_type` annotations of this `AnnData` object, we find 4 references to cell types:"
343
355
  ]
344
356
  },
345
357
  {
@@ -352,22 +364,7 @@
352
364
  },
353
365
  "outputs": [],
354
366
  "source": [
355
- "adata = ln.core.datasets.anndata_with_obs()"
356
- ]
357
- },
358
- {
359
- "cell_type": "markdown",
360
- "metadata": {},
361
- "source": [
362
- "In the `cell_type` annotations of this `AnnData` object, we find 4 references to cell types:"
363
- ]
364
- },
365
- {
366
- "cell_type": "code",
367
- "execution_count": null,
368
- "metadata": {},
369
- "outputs": [],
370
- "source": [
367
+ "adata = ln.core.datasets.anndata_with_obs()\n",
371
368
  "adata.obs.cell_type.value_counts()"
372
369
  ]
373
370
  },
@@ -383,7 +380,11 @@
383
380
  {
384
381
  "cell_type": "code",
385
382
  "execution_count": null,
386
- "metadata": {},
383
+ "metadata": {
384
+ "tags": [
385
+ "hide-output"
386
+ ]
387
+ },
387
388
  "outputs": [],
388
389
  "source": [
389
390
  "cell_types = bt.CellType.from_values(adata.obs.cell_type)\n",
@@ -444,7 +445,11 @@
444
445
  {
445
446
  "cell_type": "code",
446
447
  "execution_count": null,
447
- "metadata": {},
448
+ "metadata": {
449
+ "tags": [
450
+ "hide-output"
451
+ ]
452
+ },
448
453
  "outputs": [],
449
454
  "source": [
450
455
  "adata.obs.cell_type_id.unique().tolist()"
@@ -453,7 +458,11 @@
453
458
  {
454
459
  "cell_type": "code",
455
460
  "execution_count": null,
456
- "metadata": {},
461
+ "metadata": {
462
+ "tags": [
463
+ "hide-output"
464
+ ]
465
+ },
457
466
  "outputs": [],
458
467
  "source": [
459
468
  "bt.CellType.from_values(adata.obs.cell_type_id, field=bt.CellType.ontology_id)"
@@ -519,10 +528,14 @@
519
528
  {
520
529
  "cell_type": "code",
521
530
  "execution_count": null,
522
- "metadata": {},
531
+ "metadata": {
532
+ "tags": [
533
+ "hide-output"
534
+ ]
535
+ },
523
536
  "outputs": [],
524
537
  "source": [
525
- "bt.CellType.search(\"gamma delta T cell\").head(2)"
538
+ "bt.CellType.search(\"gamma delta T cell\").df().head(2)"
526
539
  ]
527
540
  },
528
541
  {
@@ -535,7 +548,11 @@
535
548
  {
536
549
  "cell_type": "code",
537
550
  "execution_count": null,
538
- "metadata": {},
551
+ "metadata": {
552
+ "tags": [
553
+ "hide-output"
554
+ ]
555
+ },
539
556
  "outputs": [],
540
557
  "source": [
541
558
  "cell_types = bt.CellType.lookup()\n",
@@ -562,7 +579,11 @@
562
579
  {
563
580
  "cell_type": "code",
564
581
  "execution_count": null,
565
- "metadata": {},
582
+ "metadata": {
583
+ "tags": [
584
+ "hide-output"
585
+ ]
586
+ },
566
587
  "outputs": [],
567
588
  "source": [
568
589
  "bt.CellType.validate([\"HSC\", \"blood forming stem cell\"])"
@@ -580,7 +601,11 @@
580
601
  {
581
602
  "cell_type": "code",
582
603
  "execution_count": null,
583
- "metadata": {},
604
+ "metadata": {
605
+ "tags": [
606
+ "hide-output"
607
+ ]
608
+ },
584
609
  "outputs": [],
585
610
  "source": [
586
611
  "bt.CellType.standardize([\"HSC\", \"blood forming stem cell\"])"
@@ -596,7 +621,11 @@
596
621
  {
597
622
  "cell_type": "code",
598
623
  "execution_count": null,
599
- "metadata": {},
624
+ "metadata": {
625
+ "tags": [
626
+ "hide-output"
627
+ ]
628
+ },
600
629
  "outputs": [],
601
630
  "source": [
602
631
  "bt.CellType.from_values([\"HSC\", \"blood forming stem cell\"])"
@@ -630,7 +659,11 @@
630
659
  {
631
660
  "cell_type": "code",
632
661
  "execution_count": null,
633
- "metadata": {},
662
+ "metadata": {
663
+ "tags": [
664
+ "hide-output"
665
+ ]
666
+ },
634
667
  "outputs": [],
635
668
  "source": [
636
669
  "bt.CellType.standardize([\"HSCs\"])"
@@ -662,7 +695,11 @@
662
695
  {
663
696
  "cell_type": "code",
664
697
  "execution_count": null,
665
- "metadata": {},
698
+ "metadata": {
699
+ "tags": [
700
+ "hide-output"
701
+ ]
702
+ },
666
703
  "outputs": [],
667
704
  "source": [
668
705
  "cell_types = bt.CellType.lookup(\"abbr\")\n",
@@ -720,13 +757,6 @@
720
757
  "bt.Gene.validate([\"TCF7\", \"ABC1\"], organism=\"human\")"
721
758
  ]
722
759
  },
723
- {
724
- "cell_type": "markdown",
725
- "metadata": {},
726
- "source": [
727
- "You can also pass organism for validating features upon registering data, e.g., in `ln.Artifact.from_anndata(..., field=bionty.Gene.ensembl_gene_id, organism=...)`."
728
- ]
729
- },
730
760
  {
731
761
  "cell_type": "markdown",
732
762
  "metadata": {},
@@ -792,7 +822,11 @@
792
822
  {
793
823
  "cell_type": "code",
794
824
  "execution_count": null,
795
- "metadata": {},
825
+ "metadata": {
826
+ "tags": [
827
+ "hide-output"
828
+ ]
829
+ },
796
830
  "outputs": [],
797
831
  "source": [
798
832
  "hepatocyte = bt.CellType.filter(name=\"hepatocyte\").one()\n",
@@ -808,24 +842,6 @@
808
842
  "By default, records are created from the `\"currently_used\"` public sources which are configured during the instance initialization, e.g.:"
809
843
  ]
810
844
  },
811
- {
812
- "cell_type": "code",
813
- "execution_count": null,
814
- "metadata": {},
815
- "outputs": [],
816
- "source": [
817
- "bt.Phenotype.public()"
818
- ]
819
- },
820
- {
821
- "cell_type": "markdown",
822
- "metadata": {},
823
- "source": [
824
- "Sometimes, the default source doesn't contain the ontology term you are looking for.\n",
825
- "\n",
826
- "You can then specify to create a record from a non-default source. For instance, instead of using untyped labels for iris organisms as {doc}`/tutorial2`, we can use the `ncbitaxon` ontology:"
827
- ]
828
- },
829
845
  {
830
846
  "cell_type": "code",
831
847
  "execution_count": null,
@@ -836,43 +852,7 @@
836
852
  },
837
853
  "outputs": [],
838
854
  "source": [
839
- "public_source = bt.PublicSource.filter(entity=\"Organism\", source=\"ncbitaxon\").one()\n",
840
- "iris_setosa = bt.Organism.from_public(name=\"iris setosa\", public_source=public_source)\n",
841
- "iris_setosa.save()"
842
- ]
843
- },
844
- {
845
- "cell_type": "code",
846
- "execution_count": null,
847
- "metadata": {},
848
- "outputs": [],
849
- "source": [
850
- "iris_setosa"
851
- ]
852
- },
853
- {
854
- "cell_type": "code",
855
- "execution_count": null,
856
- "metadata": {},
857
- "outputs": [],
858
- "source": [
859
- "iris_setosa.public_source"
860
- ]
861
- },
862
- {
863
- "cell_type": "code",
864
- "execution_count": null,
865
- "metadata": {},
866
- "outputs": [],
867
- "source": [
868
- "iris_setosa.parents.df()"
869
- ]
870
- },
871
- {
872
- "cell_type": "markdown",
873
- "metadata": {},
874
- "source": [
875
- "Analogously, you can pass `public_source` to bulk-create records from a non-default source:"
855
+ "bt.Phenotype.public()"
876
856
  ]
877
857
  },
878
858
  {
@@ -885,28 +865,34 @@
885
865
  },
886
866
  "outputs": [],
887
867
  "source": [
888
- "records = bt.Organism.from_values(\n",
889
- " [\"iris setosa\", \"iris versicolor\", \"iris virginica\"], public_source=public_source\n",
890
- ")\n",
891
- "ln.save(records)"
892
- ]
893
- },
894
- {
895
- "cell_type": "code",
896
- "execution_count": null,
897
- "metadata": {},
898
- "outputs": [],
899
- "source": [
900
- "records"
868
+ "bt.Phenotype.sources(currently_used=True).df()"
901
869
  ]
902
870
  },
903
871
  {
904
- "cell_type": "code",
905
- "execution_count": null,
872
+ "cell_type": "markdown",
906
873
  "metadata": {},
907
- "outputs": [],
908
874
  "source": [
909
- "iris_setosa.parents.get(name=\"iris\").view_parents(with_children=True)"
875
+ "Sometimes, the default source doesn't contain the ontology term you are looking for.\n",
876
+ "\n",
877
+ "You can then specify to create a record from a non-default source. For instance, instead of using untyped labels for iris organisms as {doc}`/tutorial2`, we can use the `ncbitaxon` ontology:\n",
878
+ "\n",
879
+ "```python\n",
880
+ "\n",
881
+ "public_source = bt.PublicSource.filter(entity=\"Organism\", source=\"ncbitaxon\").one()\n",
882
+ "iris_setosa = bt.Organism.from_public(name=\"iris setosa\", public_source=public_source)\n",
883
+ "iris_setosa.save()\n",
884
+ "```\n",
885
+ "\n",
886
+ "Analogously, you can pass `public_source` to bulk-create records from a non-default source:\n",
887
+ "\n",
888
+ "```python\n",
889
+ "\n",
890
+ "records = bt.Organism.from_values(\n",
891
+ " [\"iris setosa\", \"iris versicolor\", \"iris virginica\"], public_source=public_source\n",
892
+ ")\n",
893
+ "ln.save(records)\n",
894
+ "iris_setosa.parents.get(name=\"iris\").view_parents(with_children=True)\n",
895
+ "```"
910
896
  ]
911
897
  },
912
898
  {
@@ -12,8 +12,39 @@ LaminDB implements "migration-based versioning". When upgrading your LaminDB ins
12
12
  .. role:: small
13
13
  ```
14
14
 
15
+ ## 0.72
16
+
17
+ ### 0.72.0 {small}`2024-05-19`
18
+
19
+ - ✨ Extend managed access for AWS S3 to arbitrary paths [PR](https://github.com/laminlabs/lamindb/pull/1668) [@Koncopd](https://github.com/Koncopd) [@fredericenard](https://github.com/fredericenard)
20
+ - ✨ Extended data lineage tracking [PR](https://github.com/laminlabs/lamindb/pull/1667) [@falexwolf](https://github.com/falexwolf)
21
+ - Now store all _creating_ runs and all _updating_ runs for any entity, not just for `Artifact` & `Collection`, e.g., runs can now have `CellType` record outputs
22
+ - Code is simpler through inheritance from two new base classes: `TracksRun` and `TracksUpdates`
23
+ - ♻️ Briefer and richer syntax for denoting feature types, renamed `Feature.type` to `Feature.dtype`, e.g., for categorical features, a valid type can be: `cat[ULabel|bionty.Drug]` [PR](https://github.com/laminlabs/lamindb/pull/1663) [@falexwolf](https://github.com/falexwolf)
24
+ - ✨ Support non-categorical metadata [PR](https://github.com/laminlabs/lnschema-core/pull/379) [@falexwolf](https://github.com/falexwolf)
25
+ - Track non-categorical features: `int`, `float`, `bool`, `datetime`, lists & dictionaries stored in a `FeatureValue` registry
26
+ - Track arbitrary typed parameters for runs through a `Param` registry analogous to the `Feature` registry: this replaces the hard-to-validate, hard-to-migrate, and hard-to-query `json` field of `Run`
27
+ - 🏗️ Refactor link models [PR](https://github.com/laminlabs/lamindb/pull/1666) [PR](https://github.com/laminlabs/lamindb/pull/1661) [@falexwolf](https://github.com/falexwolf)
28
+ - All annotation-related links are now stratified by `Feature`: what held for `ULabel` now also holds `CellType` and all other `Bionty` registries
29
+ - Indicate whether semantic keys were used during validation to enable warnings upon renames
30
+ - Protect artifact annotations rather than cascade delete them
31
+ - More consistent naming of link models, e.g., `ulabels.artifact_links` instead of `ulabels.artifactulabel_set`
32
+ - Dropped linking `Bionty` entities directly against `Collection`
33
+ - Pruned & squashed migrations for faster instance creation
34
+
15
35
  ## 0.71
16
36
 
37
+ ### 0.71.3 {small}`2024-05-14`
38
+
39
+ - 🎨 Enable transfer when schema don't match [PR](https://github.com/laminlabs/lamindb/pull/1654) [@sunnyosun](https://github.com/sunnyosun)
40
+ - ✨ Get artifacts through the CLI [PR](https://github.com/laminlabs/lamindb/pull/1642) [@falexwolf](https://github.com/falexwolf)
41
+ - ⚡️ Improve the speed of describe [PR](https://github.com/laminlabs/lamindb/pull/1645) [@sunnyosun](https://github.com/sunnyosun)
42
+ - ⚡️ Parallel hashing of directories [PR](https://github.com/laminlabs/lamindb/pull/1652) [@Koncopd](https://github.com/Koncopd)
43
+ - ⚡️ Speed-up file hash [PR](https://github.com/laminlabs/lamindb/pull/1651) [@Koncopd](https://github.com/Koncopd)
44
+ - ♻️ Refactor search [PR](https://github.com/laminlabs/lamindb/pull/1646) [@falexwolf](https://github.com/falexwolf)
45
+ - ✨ Introduce bulk update [PR](https://github.com/laminlabs/lamindb/pull/1640) [@falexwolf](https://github.com/falexwolf)
46
+ - 🚸 No need to pass organism if validating on ids [PR](https://github.com/laminlabs/lamindb/pull/1639) [@sunnyosun](https://github.com/sunnyosun)
47
+
17
48
  ### 0.71.2 {small}`2024-05-07`
18
49
 
19
50
  - ✨ Enable passing parameters to `ln.track()` [PR](https://github.com/laminlabs/lamindb/pull/1637) [@falexwolf](https://github.com/falexwolf)
@@ -130,7 +130,7 @@
130
130
  "metadata": {},
131
131
  "outputs": [],
132
132
  "source": [
133
- "label = ln.ULabel(name=\"My project 2\")"
133
+ "label = ln.ULabel(name=\"My project 1a\")"
134
134
  ]
135
135
  },
136
136
  {
@@ -197,7 +197,7 @@
197
197
  "metadata": {},
198
198
  "outputs": [],
199
199
  "source": [
200
- "label = ln.ULabel(name=\"My project 3\")"
200
+ "label = ln.ULabel(name=\"My project 1b\")"
201
201
  ]
202
202
  },
203
203
  {
@@ -226,7 +226,7 @@
226
226
  "metadata": {},
227
227
  "outputs": [],
228
228
  "source": [
229
- "label = ln.ULabel(name=\"My project 3\")"
229
+ "label = ln.ULabel(name=\"My project 1c\")"
230
230
  ]
231
231
  },
232
232
  {
@@ -401,7 +401,7 @@
401
401
  "artifact3 = ln.Artifact(filepath, description=\"My fcs artifact\")\n",
402
402
  "assert artifact3.id == artifact2.id\n",
403
403
  "assert artifact3.run != artifact2.run\n",
404
- "assert artifact3.replicating_runs.first() == artifact2.run"
404
+ "assert artifact3.previous_runs.first() == artifact2.run"
405
405
  ]
406
406
  },
407
407
  {
@@ -66,7 +66,11 @@
66
66
  {
67
67
  "cell_type": "code",
68
68
  "execution_count": null,
69
- "metadata": {},
69
+ "metadata": {
70
+ "tags": [
71
+ "hide-output"
72
+ ]
73
+ },
70
74
  "outputs": [],
71
75
  "source": [
72
76
  "# store artifacts in a local directory `./lamin-intro`\n",
@@ -79,7 +83,9 @@
79
83
  "source": [
80
84
  "### Track\n",
81
85
  "\n",
82
- "Run {meth}`~lamindb.track` to track the input and output data of your code ({class}`~lamindb.Transform`)."
86
+ "Run {meth}`~lamindb.track` to track the inputs and outputs of your code ({class}`~lamindb.Transform`).\n",
87
+ "\n",
88
+ "When you first run `ln.track()`, it creates a `stem_uid` & `version` to unambiguously identify your notebook or script."
83
89
  ]
84
90
  },
85
91
  {
@@ -94,11 +100,11 @@
94
100
  "source": [
95
101
  "import lamindb as ln\n",
96
102
  "\n",
97
- "# auto-generated identifiers for your notebook or script\n",
98
- "ln.settings.transform.stem_uid = \"FPnfDtJz8qbE\"\n",
99
- "ln.settings.transform.version = \"1\"\n",
103
+ "# copy-pasted identifiers for your notebook or script\n",
104
+ "ln.settings.transform.stem_uid = \"FPnfDtJz8qbE\" # <-- auto-generated by running ln.track()\n",
105
+ "ln.settings.transform.version = \"1\" # <-- auto-generated by running ln.track()\n",
100
106
  "\n",
101
- "# track the execution of your code\n",
107
+ "# track the execution of your notebook or script\n",
102
108
  "ln.track()"
103
109
  ]
104
110
  },
@@ -304,7 +310,7 @@
304
310
  "outputs": [],
305
311
  "source": [
306
312
  "# search in a registry\n",
307
- "ln.Transform.search(\"intro\")\n",
313
+ "ln.Transform.search(\"intro\").df()\n",
308
314
  "\n",
309
315
  "# look up records with auto-complete\n",
310
316
  "labels = ln.ULabel.lookup()"
@@ -768,7 +774,7 @@
768
774
  "source": [
769
775
  "### Data lineage across entire projects\n",
770
776
  "\n",
771
- "View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [here](docs:project-flow), based on [Schmidt _et al._, 2022](https://pubmed.ncbi.nlm.nih.gov/35113687/)):\n",
777
+ "View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [a use case](inv:docs#project-flow), based on [Schmidt _et al._, 2022](https://pubmed.ncbi.nlm.nih.gov/35113687/)):\n",
772
778
  "\n",
773
779
  "```python\n",
774
780
  "transform.view_parents()\n",
@@ -844,9 +850,12 @@
844
850
  "\n",
845
851
  "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/BunYmHkyFLITlM5MYQci.svg\" width=\"350px\" style=\"background: transparent\" align=\"right\">\n",
846
852
  "\n",
847
- "The complexity of modern R&D data often blocks realizing the scientific progress it promises.\n",
853
+ "The complexity of modern R&D data often blocks realizing the scientific progress it promises: see this [blog post](https://lamin.ai/blog/problems).\n",
854
+ "\n",
855
+ "More basically: The pydata family of objects is at the heart of most data science, ML & comp bio workflows: `DataFrame`, `AnnData`, `pytorch.DataLoader`, `zarr.Array`, `pyarrow.Table`, `xarray.Collection`, etc. We couldn’t find a tool to link these objects to context so that they could be analyzed in context:\n",
848
856
  "\n",
849
- "See this [blog post](https://lamin.ai/blog/problems).\n",
857
+ "- provenance: data sources, data transformations, models, users\n",
858
+ "- domain knowledge & experimental metadata: the features & labels derived from domain entities\n",
850
859
  "\n",
851
860
  "### Assumptions\n",
852
861
  "\n",
@@ -893,6 +902,11 @@
893
902
  "\n",
894
903
  "LaminDB was influenced by many other projects, see {doc}`docs:influences`."
895
904
  ]
905
+ },
906
+ {
907
+ "cell_type": "markdown",
908
+ "metadata": {},
909
+ "source": []
896
910
  }
897
911
  ],
898
912
  "metadata": {
@@ -229,17 +229,7 @@
229
229
  "metadata": {},
230
230
  "outputs": [],
231
231
  "source": [
232
- "ln.Artifact.search(\"iris\")"
233
- ]
234
- },
235
- {
236
- "cell_type": "code",
237
- "execution_count": null,
238
- "id": "2aa66c4e",
239
- "metadata": {},
240
- "outputs": [],
241
- "source": [
242
- "ln.Artifact.search(\"iris\", return_queryset=True).first()"
232
+ "ln.Artifact.search(\"iris\").df()"
243
233
  ]
244
234
  },
245
235
  {
@@ -282,7 +272,7 @@
282
272
  "metadata": {},
283
273
  "outputs": [],
284
274
  "source": [
285
- "ln.Transform.search(\"intestine\").head()"
275
+ "ln.Transform.search(\"intestine\").df().head()"
286
276
  ]
287
277
  },
288
278
  {
@@ -12,7 +12,7 @@ Lamin does _not_ store or see any of your data, but only _basic_ metadata about
12
12
 
13
13
  If you register a LaminDB instance on LaminHub, Lamin only stores the storage location (AWS S3 or GCP bucket names, directory names).
14
14
 
15
- For more, see our guide on [access management & security](docs:access), [the source code](https://github.com/laminlabs/lamindb-setup), or the [privacy policy](https://lamin.ai/legal/privacy-policy).
15
+ For more, see [doc](inv:docs#access), [the source code](https://github.com/laminlabs/lamindb-setup), or the [privacy policy](https://lamin.ai/legal/privacy-policy).
16
16
 
17
17
  ```
18
18