lamindb 0.75.1__tar.gz → 0.76.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 (455) hide show
  1. {lamindb-0.75.1 → lamindb-0.76.1}/.github/workflows/build.yml +1 -1
  2. {lamindb-0.75.1 → lamindb-0.76.1}/.pre-commit-config.yaml +1 -1
  3. {lamindb-0.75.1 → lamindb-0.76.1}/PKG-INFO +5 -5
  4. {lamindb-0.75.1 → lamindb-0.76.1}/docs/api.md +8 -0
  5. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/idempotency.ipynb +3 -4
  6. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/keep-artifacts-local.ipynb +2 -3
  7. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/key.ipynb +2 -3
  8. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/setup.ipynb +3 -4
  9. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/track-run-inputs.ipynb +10 -11
  10. {lamindb-0.75.1 → lamindb-0.76.1}/docs/introduction.ipynb +17 -28
  11. {lamindb-0.75.1 → lamindb-0.76.1}/docs/records.ipynb +23 -2
  12. lamindb-0.76.1/docs/rest.md +3 -0
  13. {lamindb-0.75.1 → lamindb-0.76.1}/docs/track.ipynb +6 -7
  14. {lamindb-0.75.1 → lamindb-0.76.1}/docs/transfer.ipynb +2 -3
  15. {lamindb-0.75.1 → lamindb-0.76.1}/docs/tutorial.ipynb +5 -7
  16. {lamindb-0.75.1 → lamindb-0.76.1}/docs/tutorial2.ipynb +2 -11
  17. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/__init__.py +6 -8
  18. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_artifact.py +2 -1
  19. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_collection.py +1 -0
  20. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_curate.py +4 -4
  21. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_feature.py +1 -1
  22. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_finish.py +9 -52
  23. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_from_values.py +28 -12
  24. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_query_manager.py +2 -2
  25. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_query_set.py +5 -30
  26. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_record.py +73 -15
  27. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_run.py +1 -1
  28. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_transform.py +1 -1
  29. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/__init__.py +9 -3
  30. lamindb-0.76.1/lamindb/core/_context.py +513 -0
  31. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_data.py +8 -6
  32. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_label_manager.py +4 -3
  33. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_mapped_collection.py +82 -26
  34. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_settings.py +4 -8
  35. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/datasets/_core.py +30 -23
  36. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/exceptions.py +22 -5
  37. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/_valid_suffixes.py +2 -0
  38. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/versioning.py +13 -1
  39. {lamindb-0.75.1 → lamindb-0.76.1}/pyproject.toml +4 -4
  40. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/__init__.py +1 -1
  41. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/sources.yaml +3 -0
  42. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/core/_add_ontology.py +83 -38
  43. lamindb-0.76.1/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +19 -0
  44. lamindb-0.76.1/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +32 -0
  45. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/models.py +16 -13
  46. lamindb-0.76.1/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  47. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/lamin_cli/__main__.py +12 -5
  48. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/lamin_cli/_save.py +30 -19
  49. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +2 -3
  50. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +1 -1
  51. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +3 -4
  52. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +3 -4
  53. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_save_notebooks.py +17 -16
  54. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_save_scripts.py +22 -22
  55. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  56. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +1 -1
  57. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +16 -2
  58. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +9 -9
  59. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +22 -5
  60. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +1 -1
  61. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +2 -7
  62. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +17 -4
  63. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/upath.py +4 -4
  64. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-local/conftest.py +5 -3
  65. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-local/test_all.py +2 -2
  66. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/storage/test_storage_stats.py +15 -1
  67. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  68. lamindb-0.76.1/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +45 -0
  69. lamindb-0.76.1/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +32 -0
  70. lamindb-0.76.1/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +45 -0
  71. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/models.py +48 -21
  72. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/tests/test_models.py +1 -3
  73. lamindb-0.75.1/tests/notebooks/initialized-with-nbproject.ipynb → lamindb-0.76.1/tests/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +15 -17
  74. {lamindb-0.75.1 → lamindb-0.76.1}/tests/notebooks/no-title.ipynb +3 -4
  75. {lamindb-0.75.1 → lamindb-0.76.1}/tests/notebooks/not-initialized.ipynb +10 -3
  76. {lamindb-0.75.1 → lamindb-0.76.1}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +2 -1
  77. {lamindb-0.75.1 → lamindb-0.76.1}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +2 -3
  78. lamindb-0.76.1/tests/scripts/duplicate1/script-to-test-versioning.py +5 -0
  79. lamindb-0.76.1/tests/scripts/duplicate2/script-to-test-versioning.py +8 -0
  80. lamindb-0.76.1/tests/scripts/duplicate3/script-to-test-versioning.py +6 -0
  81. lamindb-0.76.1/tests/scripts/script-to-test-filename-change.py +4 -0
  82. lamindb-0.76.1/tests/scripts/script-to-test-versioning.py +5 -0
  83. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_artifact.py +2 -3
  84. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_collection.py +28 -10
  85. lamindb-0.76.1/tests/test_context.py +236 -0
  86. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_curate.py +7 -7
  87. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_feature_manager.py +1 -1
  88. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_notebooks.py +2 -0
  89. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_parents.py +21 -0
  90. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_queryset.py +2 -2
  91. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_record.py +20 -8
  92. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_versioning.py +36 -4
  93. lamindb-0.75.1/lamindb/core/_run_context.py +0 -514
  94. lamindb-0.75.1/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  95. lamindb-0.75.1/tests/test_run_context.py +0 -188
  96. {lamindb-0.75.1 → lamindb-0.76.1}/.github/workflows/doc-changes.yml +0 -0
  97. {lamindb-0.75.1 → lamindb-0.76.1}/.gitignore +0 -0
  98. {lamindb-0.75.1 → lamindb-0.76.1}/.gitmodules +0 -0
  99. {lamindb-0.75.1 → lamindb-0.76.1}/CONTRIBUTING.md +0 -0
  100. {lamindb-0.75.1 → lamindb-0.76.1}/LICENSE +0 -0
  101. {lamindb-0.75.1 → lamindb-0.76.1}/README.md +0 -0
  102. {lamindb-0.75.1 → lamindb-0.76.1}/docs/arrays.ipynb +0 -0
  103. {lamindb-0.75.1 → lamindb-0.76.1}/docs/bio-registries.ipynb +0 -0
  104. {lamindb-0.75.1 → lamindb-0.76.1}/docs/bionty.md +0 -0
  105. {lamindb-0.75.1 → lamindb-0.76.1}/docs/changelog.md +0 -0
  106. {lamindb-0.75.1 → lamindb-0.76.1}/docs/curate-any.ipynb +0 -0
  107. {lamindb-0.75.1 → lamindb-0.76.1}/docs/curate-df.ipynb +0 -0
  108. {lamindb-0.75.1 → lamindb-0.76.1}/docs/curate.md +0 -0
  109. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/acid.ipynb +0 -0
  110. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/delete.ipynb +0 -0
  111. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/import-schema.ipynb +0 -0
  112. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/reference-field.ipynb +0 -0
  113. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/test_notebooks.py +0 -0
  114. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq/visibility.ipynb +0 -0
  115. {lamindb-0.75.1 → lamindb-0.76.1}/docs/faq.md +0 -0
  116. {lamindb-0.75.1 → lamindb-0.76.1}/docs/guide.md +0 -0
  117. {lamindb-0.75.1 → lamindb-0.76.1}/docs/includes/features-lamindb.md +0 -0
  118. {lamindb-0.75.1 → lamindb-0.76.1}/docs/includes/features-laminhub.md +0 -0
  119. {lamindb-0.75.1 → lamindb-0.76.1}/docs/includes/installation.md +0 -0
  120. {lamindb-0.75.1 → lamindb-0.76.1}/docs/index.md +0 -0
  121. {lamindb-0.75.1 → lamindb-0.76.1}/docs/lamindb.md +0 -0
  122. {lamindb-0.75.1 → lamindb-0.76.1}/docs/query-search.md +0 -0
  123. {lamindb-0.75.1 → lamindb-0.76.1}/docs/readfcs.md +0 -0
  124. {lamindb-0.75.1 → lamindb-0.76.1}/docs/schemas.ipynb +0 -0
  125. {lamindb-0.75.1 → lamindb-0.76.1}/docs/setup.ipynb +0 -0
  126. {lamindb-0.75.1 → lamindb-0.76.1}/docs/signup-login.md +0 -0
  127. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/add-replace-cache.ipynb +0 -0
  128. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/anndata-accessor.ipynb +0 -0
  129. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  130. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/test-files/iris.csv +0 -0
  131. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/test-files/iris.data +0 -0
  132. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/test-files/new_iris.csv +0 -0
  133. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/test_notebooks.py +0 -0
  134. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  135. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/upload.ipynb +0 -0
  136. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage/vitessce.ipynb +0 -0
  137. {lamindb-0.75.1 → lamindb-0.76.1}/docs/storage.md +0 -0
  138. {lamindb-0.75.1 → lamindb-0.76.1}/docs/test_notebooks.py +0 -0
  139. {lamindb-0.75.1 → lamindb-0.76.1}/docs/wetlab.md +0 -0
  140. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_can_validate.py +0 -0
  141. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_feature_set.py +0 -0
  142. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_filter.py +0 -0
  143. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_is_versioned.py +0 -0
  144. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_parents.py +0 -0
  145. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_save.py +0 -0
  146. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_storage.py +0 -0
  147. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_ulabel.py +0 -0
  148. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_utils.py +0 -0
  149. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/_view.py +0 -0
  150. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_feature_manager.py +0 -0
  151. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_sync_git.py +0 -0
  152. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/_track_environment.py +0 -0
  153. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/datasets/__init__.py +0 -0
  154. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/datasets/_fake.py +0 -0
  155. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/fields.py +0 -0
  156. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/schema.py +0 -0
  157. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/__init__.py +0 -0
  158. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/_anndata_accessor.py +0 -0
  159. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/_anndata_sizes.py +0 -0
  160. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/_backed_access.py +0 -0
  161. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/_zarr.py +0 -0
  162. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/objects.py +0 -0
  163. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/storage/paths.py +0 -0
  164. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/subsettings/__init__.py +0 -0
  165. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
  166. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/subsettings/_transform_settings.py +0 -0
  167. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/core/types.py +0 -0
  168. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/integrations/__init__.py +0 -0
  169. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/integrations/_vitessce.py +0 -0
  170. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/setup/__init__.py +0 -0
  171. {lamindb-0.75.1 → lamindb-0.76.1}/lamindb/setup/core/__init__.py +0 -0
  172. {lamindb-0.75.1 → lamindb-0.76.1}/noxfile.py +0 -0
  173. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/.github/workflows/build.yml +0 -0
  174. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  175. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  176. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/.gitignore +0 -0
  177. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/.pre-commit-config.yaml +0 -0
  178. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/LICENSE +0 -0
  179. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/README.md +0 -0
  180. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/_bionty.py +0 -0
  181. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/__init__.py +0 -0
  182. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/_display_sources.py +0 -0
  183. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/_ontology.py +0 -0
  184. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/_public_ontology.py +0 -0
  185. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/_settings.py +0 -0
  186. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  187. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  188. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
  189. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/dev/_io.py +0 -0
  190. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  191. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  192. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
  193. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
  194. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
  195. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
  196. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
  197. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
  198. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_disease.py +0 -0
  199. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_drug.py +0 -0
  200. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
  201. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_experimentalfactor.py +0 -0
  202. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_gene.py +0 -0
  203. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_organism.py +0 -0
  204. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
  205. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
  206. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_protein.py +0 -0
  207. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  208. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
  209. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  210. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  211. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  212. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  213. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  214. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  215. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/core/__init__.py +0 -0
  216. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/core/_bionty.py +0 -0
  217. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/core/_settings.py +0 -0
  218. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/ids.py +0 -0
  219. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  220. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  221. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  222. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  223. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  224. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  225. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  226. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  227. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  228. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  229. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  230. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  231. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  232. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/bionty/migrations/__init__.py +0 -0
  233. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/developer/updating_source.md +0 -0
  234. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/comparison.md +0 -0
  235. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/concepts.md +0 -0
  236. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/config.md +0 -0
  237. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/extend.md +0 -0
  238. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/ontology.ipynb +0 -0
  239. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/search.ipynb +0 -0
  240. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/sources.ipynb +0 -0
  241. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  242. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide/validate.ipynb +0 -0
  243. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/guide.md +0 -0
  244. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/index.md +0 -0
  245. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/docs/reference.md +0 -0
  246. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/lamin-project.yaml +0 -0
  247. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/noxfile.py +0 -0
  248. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/pyproject.toml +0 -0
  249. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  250. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/dev/test_io.py +0 -0
  251. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  252. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_biosample.py +0 -0
  253. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_cellline.py +0 -0
  254. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  255. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_celltype.py +0 -0
  256. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  257. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_disease.py +0 -0
  258. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_drug.py +0 -0
  259. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  260. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  261. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_gene.py +0 -0
  262. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_organism.py +0 -0
  263. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_pathway.py +0 -0
  264. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  265. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_protein.py +0 -0
  266. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/entities/test_tissue.py +0 -0
  267. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/test_bionty.py +0 -0
  268. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/test_lamindb.py +0 -0
  269. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/test_md5.py +0 -0
  270. {lamindb-0.75.1 → lamindb-0.76.1}/sub/bionty/tests/test_ontology.py +0 -0
  271. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  272. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/.gitignore +0 -0
  273. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  274. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/README.md +0 -0
  275. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  276. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/lamin_cli/_get.py +0 -0
  277. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  278. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/pyproject.toml +0 -0
  279. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/conftest.py +0 -0
  280. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  281. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  282. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_cli.py +0 -0
  283. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_get.py +0 -0
  284. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_migrate.py +0 -0
  285. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  286. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamin-cli/tests/test_save_files.py +0 -0
  287. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  288. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  289. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/.gitignore +0 -0
  290. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  291. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/LICENSE +0 -0
  292. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/README.md +0 -0
  293. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/changelog.md +0 -0
  294. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  295. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
  296. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
  297. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  298. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  299. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  300. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  301. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  302. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  303. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  304. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  305. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  306. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  307. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  308. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  309. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  310. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  311. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  312. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/index.md +0 -0
  313. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/notebooks.md +0 -0
  314. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/docs/reference.md +0 -0
  315. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  316. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  317. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  318. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  319. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +0 -0
  320. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  321. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  322. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  323. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  324. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  325. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  326. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  327. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  328. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  329. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  330. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  331. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  332. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  333. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  334. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  335. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  336. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  337. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  338. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  339. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  340. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  341. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  342. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  343. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  344. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  345. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  346. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  347. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  348. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/noxfile.py +0 -0
  349. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/pyproject.toml +0 -0
  350. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  351. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  352. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  353. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  354. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  355. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  356. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
  357. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  358. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  359. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  360. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  361. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  362. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  363. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  364. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  365. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  366. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  367. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  368. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/.gitignore +0 -0
  369. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  370. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/CHANGELOG.md +0 -0
  371. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/LICENSE +0 -0
  372. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/README.md +0 -0
  373. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  374. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  375. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  376. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  377. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  378. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  379. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  380. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  381. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  382. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  383. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  384. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  385. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  386. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  387. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  388. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  389. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  390. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  391. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  392. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  393. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  394. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
  395. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  396. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  397. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  398. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  399. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  400. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  401. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
  402. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
  403. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/noxfile.py +0 -0
  404. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/pyproject.toml +0 -0
  405. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/tests/conftest.py +0 -0
  406. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
  407. {lamindb-0.75.1 → lamindb-0.76.1}/sub/lnschema-core/tests/test_types.py +0 -0
  408. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/.github/workflows/build.yml +0 -0
  409. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  410. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/.gitignore +0 -0
  411. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/.pre-commit-config.yaml +0 -0
  412. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/README.md +0 -0
  413. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/changelog.md +0 -0
  414. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  415. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
  416. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/guide.md +0 -0
  417. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/index.md +0 -0
  418. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/docs/reference.md +0 -0
  419. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/noxfile.py +0 -0
  420. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/pyproject.toml +0 -0
  421. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/tests/test_integrity.py +0 -0
  422. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/tests/test_notebooks.py +0 -0
  423. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/__init__.py +0 -0
  424. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  425. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  426. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
  427. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  428. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  429. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  430. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  431. {lamindb-0.75.1 → lamindb-0.76.1}/sub/wetlab/wetlab/models.py +0 -0
  432. {lamindb-0.75.1 → lamindb-0.76.1}/tests/conftest.py +0 -0
  433. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_artifact_folders.py +0 -0
  434. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_cache.py +0 -0
  435. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_can_validate.py +0 -0
  436. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_data.py +0 -0
  437. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_db.py +0 -0
  438. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_delete.py +0 -0
  439. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_feature.py +0 -0
  440. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_feature_set.py +0 -0
  441. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_from_values.py +0 -0
  442. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_label_manager.py +0 -0
  443. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_load.py +0 -0
  444. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_manager.py +0 -0
  445. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_run.py +0 -0
  446. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_save.py +0 -0
  447. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_search.py +0 -0
  448. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_settings.py +0 -0
  449. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_storage.py +0 -0
  450. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_transfer.py +0 -0
  451. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_transform.py +0 -0
  452. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_uid.py +0 -0
  453. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_ulabel.py +0 -0
  454. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_view.py +0 -0
  455. {lamindb-0.75.1 → lamindb-0.76.1}/tests/test_visibility.py +0 -0
@@ -21,7 +21,7 @@ jobs:
21
21
  - "faq"
22
22
  - "storage"
23
23
  - "cli"
24
- timeout-minutes: 6
24
+ timeout-minutes: 7
25
25
 
26
26
  steps:
27
27
  - uses: actions/checkout@v4
@@ -51,5 +51,5 @@ repos:
51
51
  additional_dependencies: ["types-requests", "types-attrs"]
52
52
  exclude: |
53
53
  (?x)(
54
- test_notebooks.py
54
+ test_notebooks.py|script-to-test-versioning.py
55
55
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.75.1
3
+ Version: 0.76.1
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.72.2
13
- Requires-Dist: lamindb_setup==0.76.3
12
+ Requires-Dist: lnschema_core==0.73.1
13
+ Requires-Dist: lamindb_setup==0.76.5
14
14
  Requires-Dist: lamin_utils==0.13.2
15
- Requires-Dist: lamin_cli==0.16.0
15
+ Requires-Dist: lamin_cli==0.16.2
16
16
  Requires-Dist: rapidfuzz
17
17
  Requires-Dist: pyarrow
18
18
  Requires-Dist: typing_extensions!=4.6.0
@@ -24,7 +24,7 @@ Requires-Dist: pandas
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
26
26
  Requires-Dist: lamindb_setup[aws] ; extra == "aws"
27
- Requires-Dist: bionty==0.48.0 ; extra == "bionty"
27
+ Requires-Dist: bionty==0.48.2 ; extra == "bionty"
28
28
  Requires-Dist: pre-commit ; extra == "dev"
29
29
  Requires-Dist: nox ; extra == "dev"
30
30
  Requires-Dist: laminci>=0.3 ; extra == "dev"
@@ -27,6 +27,14 @@ bionty
27
27
  wetlab
28
28
  ```
29
29
 
30
+ ```{toctree}
31
+ :maxdepth: 1
32
+ :caption: SDK
33
+ :hidden:
34
+
35
+ rest
36
+ ```
37
+
30
38
  ```{toctree}
31
39
  :maxdepth: 1
32
40
  :caption: Utilities
@@ -71,9 +71,8 @@
71
71
  "import pytest\n",
72
72
  "\n",
73
73
  "ln.settings.verbosity = \"hint\"\n",
74
- "ln.settings.transform.stem_uid = \"ANW20Fr4eZgM\"\n",
75
- "ln.settings.transform.version = \"1\"\n",
76
- "ln.track()"
74
+ "ln.context.uid = \"ANW20Fr4eZgM0000\"\n",
75
+ "ln.context.track()"
77
76
  ]
78
77
  },
79
78
  {
@@ -398,7 +397,7 @@
398
397
  },
399
398
  "outputs": [],
400
399
  "source": [
401
- "ln.track(new_run=True)\n",
400
+ "ln.context.track(new_run=True)\n",
402
401
  "artifact3 = ln.Artifact(filepath, description=\"My fcs artifact\")\n",
403
402
  "assert artifact3.id == artifact2.id\n",
404
403
  "assert artifact3.run != artifact2.run\n",
@@ -37,9 +37,8 @@
37
37
  "# !pip install 'lamindb[jupyter,aws]'\n",
38
38
  "import lamindb as ln\n",
39
39
  "\n",
40
- "ln.settings.transform.stem_uid = \"l9lFf83aPwRc\"\n",
41
- "ln.settings.transform.version = \"1\"\n",
42
- "ln.track()"
40
+ "ln.context.uid = \"l9lFf83aPwRc0000\"\n",
41
+ "ln.context.track()"
43
42
  ]
44
43
  },
45
44
  {
@@ -119,9 +119,8 @@
119
119
  "metadata": {},
120
120
  "outputs": [],
121
121
  "source": [
122
- "ln.settings.transform.stem_uid = \"WIwaNDvlEkwS\"\n",
123
- "ln.settings.transform.version = \"1\"\n",
124
- "ln.track()"
122
+ "ln.context.uid = \"WIwaNDvlEkwS0000\"\n",
123
+ "ln.context.track()"
125
124
  ]
126
125
  },
127
126
  {
@@ -56,7 +56,7 @@
56
56
  "outputs": [],
57
57
  "source": [
58
58
  "with pytest.raises(ln._InstanceNotSetupError):\n",
59
- " ln.track()"
59
+ " ln.context.track()"
60
60
  ]
61
61
  },
62
62
  {
@@ -85,9 +85,8 @@
85
85
  "metadata": {},
86
86
  "outputs": [],
87
87
  "source": [
88
- "ln.settings.transform.stem_uid = \"2lhqA4uTKSFP\"\n",
89
- "ln.settings.transform.version = \"0\"\n",
90
- "ln.track()"
88
+ "ln.context.uid = \"2lhqA4uTKSFP0000\"\n",
89
+ "ln.context.track()"
91
90
  ]
92
91
  },
93
92
  {
@@ -53,7 +53,7 @@
53
53
  "metadata": {},
54
54
  "outputs": [],
55
55
  "source": [
56
- "ln.track(transform=ln.Transform(name=\"Dummpy pipeline\"))\n",
56
+ "ln.context.track(transform=ln.Transform(name=\"Dummpy pipeline\"))\n",
57
57
  "ln.Artifact(ln.core.datasets.file_jpg_paradisi05(), description=\"My image\").save()\n",
58
58
  "ln.Artifact(ln.core.datasets.file_mini_csv(), description=\"My csv\").save()"
59
59
  ]
@@ -63,7 +63,7 @@
63
63
  "cell_type": "markdown",
64
64
  "metadata": {},
65
65
  "source": [
66
- "Call `ln.track()`:"
66
+ "Call `ln.context.track()`:"
67
67
  ]
68
68
  },
69
69
  {
@@ -72,9 +72,8 @@
72
72
  "metadata": {},
73
73
  "outputs": [],
74
74
  "source": [
75
- "ln.settings.transform.stem_uid = \"Rx2s9aPTMQLY\"\n",
76
- "ln.settings.transform.version = \"1\"\n",
77
- "ln.track()"
75
+ "ln.context.uid = \"Rx2s9aPTMQLY0000\"\n",
76
+ "ln.context.track()"
78
77
  ]
79
78
  },
80
79
  {
@@ -126,7 +125,7 @@
126
125
  "metadata": {},
127
126
  "outputs": [],
128
127
  "source": [
129
- "ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all()"
128
+ "ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()"
130
129
  ]
131
130
  },
132
131
  {
@@ -139,7 +138,7 @@
139
138
  },
140
139
  "outputs": [],
141
140
  "source": [
142
- "assert len(ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all()) == 0"
141
+ "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 0"
143
142
  ]
144
143
  },
145
144
  {
@@ -181,7 +180,7 @@
181
180
  "metadata": {},
182
181
  "outputs": [],
183
182
  "source": [
184
- "for input in ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all():\n",
183
+ "for input in ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all():\n",
185
184
  " print(input)"
186
185
  ]
187
186
  },
@@ -195,7 +194,7 @@
195
194
  },
196
195
  "outputs": [],
197
196
  "source": [
198
- "assert len(ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all()) == 1"
197
+ "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 1"
199
198
  ]
200
199
  },
201
200
  {
@@ -247,7 +246,7 @@
247
246
  "metadata": {},
248
247
  "outputs": [],
249
248
  "source": [
250
- "for input in ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all():\n",
249
+ "for input in ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all():\n",
251
250
  " print(input)"
252
251
  ]
253
252
  },
@@ -261,7 +260,7 @@
261
260
  },
262
261
  "outputs": [],
263
262
  "source": [
264
- "assert len(ln.Run.filter(id=ln.core.run_context.run.id).one().input_artifacts.all()) == 2"
263
+ "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 2"
265
264
  ]
266
265
  },
267
266
  {
@@ -60,7 +60,7 @@
60
60
  "pip install 'lamindb[jupyter,bionty]'\n",
61
61
  "```\n",
62
62
  "\n",
63
- "Initialize a LaminDB instance mounting plugin {py:mod}`bionty` for biological types."
63
+ "Initialize a LaminDB instance mounting plugin {py:mod}`bionty`."
64
64
  ]
65
65
  },
66
66
  {
@@ -103,13 +103,11 @@
103
103
  "cell_type": "markdown",
104
104
  "metadata": {},
105
105
  "source": [
106
- "### Track\n",
106
+ "### Track data transformations\n",
107
107
  "\n",
108
- "Call {meth}`~lamindb.track` to track code along with its inputs and outputs.\n",
108
+ "When you first call {meth}`~lamindb.core.Context.track`, it auto-generates a `uid` to identify a notebook or script.\n",
109
109
  "\n",
110
- "When you first call `ln.track()`, it raises an exception and creates a `stem_uid` & `version` to identify a notebook or script in your database.\n",
111
- "\n",
112
- "When you call it a second time, `ln.track()` saves transform and run records in their registries. The {class}`~lamindb.Transform` registry allows you to find your notebooks, scripts and pipelines. The {class}`~lamindb.Run` registry allows you to find their runs."
110
+ "When you call it a second time, it saves transform and run records: {class}`~lamindb.Transform` stores your notebooks, script, functions, and pipelines and {class}`~lamindb.Run` stores runs."
113
111
  ]
114
112
  },
115
113
  {
@@ -122,14 +120,10 @@
122
120
  },
123
121
  "outputs": [],
124
122
  "source": [
125
- "ln.settings.transform.stem_uid = \"FPnfDtJz8qbE\" # <-- auto-generated by ln.track()\n",
126
- "ln.settings.transform.version = \"1\" # <-- auto-generated by ln.track()\n",
127
- "\n",
128
- "# track the execution of your notebook or script\n",
129
- "run = ln.track()\n",
123
+ "ln.context.uid = \"FPnfDtJz8qbE0000\" # <-- auto-generated by ln.context.track()\n",
130
124
  "\n",
131
- "# see your currently running transform\n",
132
- "run.transform"
125
+ "# track the execution of your notebook or script with inputs & outputs\n",
126
+ "ln.context.track()"
133
127
  ]
134
128
  },
135
129
  {
@@ -142,21 +136,13 @@
142
136
  "\n",
143
137
  ":::\n",
144
138
  "\n",
145
- ":::{dropdown} Are the global identifiers `stem_uid` and `version` really necessary?\n",
139
+ ":::{dropdown} Why is the global `ln.context.uid` necessary?\n",
146
140
  "\n",
147
- "Yes, if you want to track data lineage outside of workflow managers.\n",
141
+ "To tie a piece of code to a record in a database in a way that survives name and content changes, you need to attach the code to an immutable identifier, e.g., LaminDB's `uid`.\n",
148
142
  "\n",
149
- "To tie a piece of code to a record in a database in a way that survives name changes (notebook file name, script name, pipeline name) and content changes, you need to attach the code to an immutable identifier.\n",
143
+ "git, by comparison, identifies code by its content hash & name. If you rename a notebook or script file and change the content, you lose the identity of the file. Notebook platforms like Google Colab and DeepNote support renaming and changing content of a given notebook, but they do not support versioning (every notebook version comes with the same [notebook id](https://lamin.ai/blog/nbproject#metadata-tracking) without versioning appearing in its metadata).\n",
150
144
  "\n",
151
- "Content changes need to correlate with the identifier, but shouldn't give rise to an entirely new identifier. To implement this behavior we code hashes with user input for `version` and create a universal identifier as follows:\n",
152
- "\n",
153
- "```python\n",
154
- "stem_uid = random_base62(n_char) # a random base62 sequence of length n_char\n",
155
- "version_uid = encode_base62(md5_hash(version))[:4] # version is, e.g., \"1\" or \"2.1.0\" or \"2022-03-01\"\n",
156
- "uid = f\"{stem_uid}{version_uid}\" # concatenate the stem_uid & version_uid\n",
157
- "```\n",
158
- "\n",
159
- "git, by comparison, identifies code by its content hash alone. Notebook platforms like Google Colab and DeepNote [do not encode versions into their notebook ids](https://lamin.ai/blog/nbproject#metadata-tracking). \n",
145
+ "To enable versioning, LaminDB auto-generates `uid` values so that different versions of a notebook or script are grouped by a random \"stem uid\" `suid`, consisting in the same first 12 characters of the `uid`. The remaining 4 characters encode a revision in a `ruid`, hence, `uid = f\"{suid}{ruid}\"`. You can optionally label any given version with a semantic tag via the `transform.version` field.\n",
160
146
  "\n",
161
147
  ":::"
162
148
  ]
@@ -424,10 +410,13 @@
424
410
  "metadata": {},
425
411
  "outputs": [],
426
412
  "source": [
427
- "# get an entity by uid (here, the current notebook)\n",
413
+ "# get a single record by uid (here, the current notebook)\n",
428
414
  "transform = ln.Transform.get(\"FPnfDtJz8qbE\")\n",
429
415
  "\n",
430
- "# filter by description\n",
416
+ "# get a single record by matching a field\n",
417
+ "transform = ln.Transform.get(name=\"Introduction\")\n",
418
+ "\n",
419
+ "# get a set of records by filtering on description\n",
431
420
  "ln.Artifact.filter(description=\"my RNA-seq\").df()\n",
432
421
  "\n",
433
422
  "# query all artifacts ingested from the current notebook\n",
@@ -1073,7 +1062,7 @@
1073
1062
  "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/KQmzmmLOeBN0C8Ykitjn.svg\" width=\"800\">\n",
1074
1063
  "\n",
1075
1064
  "\n",
1076
- "Both figures are based on mere calls to `ln.track()` in notebooks, pipelines & app."
1065
+ "Both figures are based on mere calls to `ln.context.track()` in notebooks, pipelines & app."
1077
1066
  ]
1078
1067
  },
1079
1068
  {
@@ -110,13 +110,34 @@
110
110
  "users_dict = ln.User.lookup().dict()"
111
111
  ]
112
112
  },
113
+ {
114
+ "cell_type": "markdown",
115
+ "id": "d54676dd",
116
+ "metadata": {},
117
+ "source": [
118
+ "## Query exactly one record"
119
+ ]
120
+ },
121
+ {
122
+ "cell_type": "code",
123
+ "execution_count": null,
124
+ "id": "463ff17c",
125
+ "metadata": {},
126
+ "outputs": [],
127
+ "source": [
128
+ "# by uid\n",
129
+ "ln.User.get(\"DzTjkKse\")\n",
130
+ "# by any expression involving fields\n",
131
+ "ln.User.get(handle=\"testuser1\")"
132
+ ]
133
+ },
113
134
  {
114
135
  "attachments": {},
115
136
  "cell_type": "markdown",
116
137
  "id": "45ac3b5c",
117
138
  "metadata": {},
118
139
  "source": [
119
- "## Filter by metadata"
140
+ "## Query sets of records"
120
141
  ]
121
142
  },
122
143
  {
@@ -148,7 +169,7 @@
148
169
  "\n",
149
170
  "- `.df()`: A pandas `DataFrame` with each record in a row.\n",
150
171
  "- `.all()`: A {class}`~lamindb.core.QuerySet`.\n",
151
- "- `.one()`: Exactly one record. Will raise an error if there is none.\n",
172
+ "- `.one()`: Exactly one record. Will raise an error if there is none. Is equivalent to the `.get()` method shown above.\n",
152
173
  "- `.one_or_none()`: Either one record or `None` if there is no query result."
153
174
  ]
154
175
  },
@@ -0,0 +1,3 @@
1
+ # `REST`
2
+
3
+ Actual content in lamin-docs.
@@ -6,7 +6,7 @@
6
6
  "source": [
7
7
  "# Track notebooks & scripts\n",
8
8
  "\n",
9
- "Call {meth}`~lamindb.track` to track code along with its inputs and outputs.\n",
9
+ "Call {meth}`~lamindb.core.Context.track` to track code along with its inputs and outputs.\n",
10
10
  "\n",
11
11
  "```{note}\n",
12
12
  "\n",
@@ -39,9 +39,9 @@
39
39
  "cell_type": "markdown",
40
40
  "metadata": {},
41
41
  "source": [
42
- "When you first call `ln.track()`, it raises an exception and creates a `stem_uid` & `version` to identify a notebook or script in your database.\n",
42
+ "When you first call `ln.context.track()`, it raises an exception and creates a `stem_uid` & `version` to identify a notebook or script in your database.\n",
43
43
  "\n",
44
- "When you call it a second time, `ln.track()` saves transform and run records in their registries. The {class}`~lamindb.Transform` registry allows you to find your notebooks, scripts and pipelines. The {class}`~lamindb.Run` registry allows you to find their runs."
44
+ "When you call it a second time, `ln.context.track()` saves transform and run records in their registries. The {class}`~lamindb.Transform` registry allows you to find your notebooks, scripts and pipelines. The {class}`~lamindb.Run` registry allows you to find their runs."
45
45
  ]
46
46
  },
47
47
  {
@@ -52,9 +52,8 @@
52
52
  "source": [
53
53
  "import lamindb as ln\n",
54
54
  "\n",
55
- "ln.settings.transform.stem_uid = \"9priar0hoE5u\" # <-- auto-generated by ln.track()\n",
56
- "ln.settings.transform.version = \"1\" # <-- auto-generated by ln.track()\n",
57
- "ln.track()"
55
+ "ln.context.uid = \"9priar0hoE5u0000\"\n",
56
+ "ln.context.track()"
58
57
  ]
59
58
  },
60
59
  {
@@ -153,7 +152,7 @@
153
152
  "ln.settings.sync_git_repo = \"https://github.com/...\"\n",
154
153
  "ln.settings.transform.stem_uid = \"9priar0hoE5u\"\n",
155
154
  "ln.settings.transform.version = \"1\"\n",
156
- "run = ln.track()\n",
155
+ "ln.context.track()\n",
157
156
  "\n",
158
157
  "# load input artifacts\n",
159
158
  "artifact = ln.Artifact.filter(...).one()\n",
@@ -40,9 +40,8 @@
40
40
  "source": [
41
41
  "import lamindb as ln\n",
42
42
  "\n",
43
- "ln.settings.transform.stem_uid = \"ITeOtm7bhtdq\"\n",
44
- "ln.settings.transform.version = \"1\"\n",
45
- "ln.track()"
43
+ "ln.context.uid = \"ITeOtm7bhtdq0000\"\n",
44
+ "ln.context.track()"
46
45
  ]
47
46
  },
48
47
  {
@@ -132,12 +132,10 @@
132
132
  },
133
133
  "outputs": [],
134
134
  "source": [
135
- "# copy-pasted identifiers for your notebook or script\n",
136
- "ln.settings.transform.stem_uid = \"NJvdsWWbJlZS\" # <-- auto-generated by running ln.track()\n",
137
- "ln.settings.transform.version = \"1\" # <-- auto-generated by running ln.track()\n",
135
+ "ln.context.uid = \"NJvdsWWbJlZS0000\" # <-- auto-generated by ln.context.track()\n",
138
136
  "\n",
139
137
  "# track the execution of your notebook or script\n",
140
- "ln.track()"
138
+ "ln.context.track()"
141
139
  ]
142
140
  },
143
141
  {
@@ -145,7 +143,7 @@
145
143
  "cell_type": "markdown",
146
144
  "metadata": {},
147
145
  "source": [
148
- "By calling {func}`~lamindb.track`, the notebook is automatically linked as the source of all data that's about to be saved!"
146
+ "By calling {func}`~lamindb.core.Context.track`, the notebook is automatically linked as the source of all data that's about to be saved!"
149
147
  ]
150
148
  },
151
149
  {
@@ -169,7 +167,7 @@
169
167
  "\n",
170
168
  "```python\n",
171
169
  "transform = ln.Transform(name=\"My pipeline\", version=\"1.2.0\")\n",
172
- "ln.track(transform)\n",
170
+ "ln.context.track(transform)\n",
173
171
  "```\n",
174
172
  "\n",
175
173
  ":::\n",
@@ -182,7 +180,7 @@
182
180
  "\n",
183
181
  "A notebook that's run a single time on specific data is not a pipeline: it's a (versioned) **document** that produced insight or some other form of data representation (with parallels to an ELN in the wetlab).\n",
184
182
  "\n",
185
- "Because humans are in the loop, most mistakes happen when using notebooks: {func}`~lamindb.track` helps avoiding some.\n",
183
+ "Because humans are in the loop, most mistakes happen when using notebooks: {func}`~lamindb.core.Context.track` helps avoiding some.\n",
186
184
  "\n",
187
185
  "(An early blog post on this is [here](https://lamin.ai/blog/2022/nbproject).)\n",
188
186
  "\n",
@@ -391,7 +391,7 @@
391
391
  " return output_data\n",
392
392
  "\n",
393
393
  "transform = ln.Transform(name=\"Petal & sepal regressor\", type=\"pipeline\")\n",
394
- "run = ln.track(transform=transform)\n",
394
+ "ln.context.track(transform=transform)\n",
395
395
  "df = run_ml_model()"
396
396
  ]
397
397
  },
@@ -422,15 +422,6 @@
422
422
  "And this is the pipeline that produced the dataframe:"
423
423
  ]
424
424
  },
425
- {
426
- "cell_type": "code",
427
- "execution_count": null,
428
- "metadata": {},
429
- "outputs": [],
430
- "source": [
431
- "run"
432
- ]
433
- },
434
425
  {
435
426
  "cell_type": "code",
436
427
  "execution_count": null,
@@ -441,7 +432,7 @@
441
432
  },
442
433
  "outputs": [],
443
434
  "source": [
444
- "run.transform.view_lineage()"
435
+ "ln.context.transform.view_lineage()"
445
436
  ]
446
437
  },
447
438
  {
@@ -21,9 +21,8 @@ Key functionality:
21
21
  .. autosummary::
22
22
  :toctree: .
23
23
 
24
+ context
24
25
  connect
25
- track
26
- finish
27
26
  Curate
28
27
  view
29
28
  save
@@ -42,7 +41,7 @@ Modules & settings:
42
41
  """
43
42
 
44
43
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
45
- __version__ = "0.75.1"
44
+ __version__ = "0.76.1"
46
45
 
47
46
  import os as _os
48
47
 
@@ -93,10 +92,9 @@ if _check_instance_setup(from_lamindb=True):
93
92
  integrations,
94
93
  )
95
94
  from ._curate import Curate
96
- from ._finish import finish
97
95
  from ._save import save
98
96
  from ._view import view
99
- from .core._run_context import run_context as _run_context
97
+ from .core._context import context
100
98
  from .core._settings import settings
101
99
 
102
100
  # schema modules
@@ -107,8 +105,8 @@ if _check_instance_setup(from_lamindb=True):
107
105
 
108
106
  _reload_schema_modules(_lamindb_setup.settings.instance)
109
107
 
110
- track = _run_context._track
108
+ track = context.track # backward compat
109
+ finish = context.finish # backward compat
111
110
  settings.__doc__ = """Global :class:`~lamindb.core.Settings`."""
111
+ context.__doc__ = """Global :class:`~lamindb.core.Context`."""
112
112
  from django.db.models import Q
113
-
114
- Annotate = Curate # backward compat
@@ -107,7 +107,7 @@ def process_pathlike(
107
107
  new_root = list(filepath.parents)[-1]
108
108
  # do not register remote storage locations on hub if the current instance
109
109
  # is not managed on the hub
110
- storage_settings = init_storage(
110
+ storage_settings, _ = init_storage(
111
111
  new_root, prevent_register_hub=not setup_settings.instance.is_on_hub
112
112
  )
113
113
  storage_record = register_storage_in_instance(storage_settings)
@@ -594,6 +594,7 @@ def __init__(artifact: Artifact, *args, **kwargs):
594
594
  kwargs["description"] = description
595
595
  kwargs["visibility"] = visibility
596
596
  kwargs["_accessor"] = accessor
597
+ kwargs["is_new_version_of"] = is_new_version_of
597
598
  # this check needs to come down here because key might be populated from an
598
599
  # existing file path during get_artifact_kwargs_from_data()
599
600
  if (
@@ -158,6 +158,7 @@ def __init__(
158
158
  run=run,
159
159
  version=version,
160
160
  visibility=visibility,
161
+ is_new_version_of=is_new_version_of,
161
162
  **kwargs,
162
163
  )
163
164
  collection._artifacts = artifacts
@@ -313,11 +313,11 @@ class DataFrameCurator:
313
313
 
314
314
  def clean_up_failed_runs(self):
315
315
  """Clean up previous failed runs that don't save any outputs."""
316
- from lamindb.core._run_context import run_context
316
+ from lamindb.core._context import context
317
317
 
318
- if run_context.transform is not None:
319
- Run.filter(transform=run_context.transform, output_artifacts=None).exclude(
320
- uid=run_context.run.uid
318
+ if context.run is not None:
319
+ Run.filter(transform=context.run.transform, output_artifacts=None).exclude(
320
+ uid=context.run.uid
321
321
  ).delete()
322
322
 
323
323
 
@@ -42,7 +42,7 @@ def __init__(self, *args, **kwargs):
42
42
  return None
43
43
  # now we proceed with the user-facing constructor
44
44
  if len(args) != 0:
45
- raise ValueError("Only non-keyword args allowed")
45
+ raise ValueError("Only keyword args allowed")
46
46
  dtype: type | str = kwargs.pop("dtype") if "dtype" in kwargs else None
47
47
  # cast type
48
48
  if dtype is None: