lamindb 0.76.6__tar.gz → 0.76.7__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 (470) hide show
  1. {lamindb-0.76.6 → lamindb-0.76.7}/.github/ISSUE_TEMPLATE/bug_report.yml +2 -1
  2. {lamindb-0.76.6 → lamindb-0.76.7}/.github/ISSUE_TEMPLATE/feature_request.yml +2 -1
  3. lamindb-0.76.7/.github/ISSUE_TEMPLATE/usage_question.yml +20 -0
  4. {lamindb-0.76.6 → lamindb-0.76.7}/PKG-INFO +5 -5
  5. {lamindb-0.76.6 → lamindb-0.76.7}/docs/schemas.ipynb +4 -4
  6. {lamindb-0.76.6 → lamindb-0.76.7}/docs/setup.ipynb +2 -13
  7. {lamindb-0.76.6 → lamindb-0.76.7}/docs/signup-login.md +3 -3
  8. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/prepare-transfer-local-to-cloud.ipynb +2 -5
  9. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/transfer-local-to-cloud.ipynb +3 -7
  10. {lamindb-0.76.6 → lamindb-0.76.7}/docs/tutorial.ipynb +20 -2
  11. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/__init__.py +1 -1
  12. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_artifact.py +23 -19
  13. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_collection.py +6 -1
  14. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_curate.py +1 -1
  15. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/__init__.py +2 -1
  16. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_context.py +28 -12
  17. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_data.py +5 -5
  18. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_feature_manager.py +2 -1
  19. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_label_manager.py +2 -1
  20. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/exceptions.py +3 -3
  21. lamindb-0.76.7/lamindb/core/loaders.py +164 -0
  22. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/__init__.py +1 -1
  23. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_tiledbsoma.py +17 -9
  24. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_zarr.py +1 -1
  25. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/paths.py +0 -104
  26. {lamindb-0.76.6 → lamindb-0.76.7}/noxfile.py +6 -4
  27. {lamindb-0.76.6 → lamindb-0.76.7}/pyproject.toml +4 -4
  28. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/.github/workflows/build.yml +5 -4
  29. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/.gitignore +1 -0
  30. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/__init__.py +11 -1
  31. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/_public_ontology.py +31 -5
  32. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/dev/_handle_sources.py +1 -1
  33. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_bfxpipeline.py +5 -5
  34. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_biosample.py +5 -3
  35. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_cellline.py +5 -3
  36. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_cellmarker.py +5 -3
  37. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_celltype.py +15 -3
  38. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_developmentalstage.py +5 -3
  39. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_disease.py +23 -3
  40. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_drug.py +6 -3
  41. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_ethnicity.py +5 -3
  42. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_experimentalfactor.py +7 -4
  43. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_gene.py +8 -7
  44. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_organism.py +17 -5
  45. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_pathway.py +5 -3
  46. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_phenotype.py +21 -3
  47. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_protein.py +5 -3
  48. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_tissue.py +16 -3
  49. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/sources.yaml +12 -0
  50. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/core/_add_ontology.py +12 -3
  51. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/models.py +14 -1
  52. lamindb-0.76.7/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  53. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/lamin_cli/__main__.py +52 -56
  54. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/lamin_cli/_get.py +17 -1
  55. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_cli.py +22 -4
  56. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_get.py +2 -1
  57. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/.github/workflows/build.yml +13 -9
  58. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  59. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +5 -1
  60. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_setup_user.py +10 -7
  61. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +1 -1
  62. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +68 -2
  63. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +6 -0
  64. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +1 -1
  65. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +2 -0
  66. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/django.py +1 -0
  67. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_login.py +20 -5
  68. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-local/test_all.py +45 -0
  69. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +2 -2
  70. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  71. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/models.py +11 -12
  72. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/.github/workflows/build.yml +5 -5
  73. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/.pre-commit-config.yaml +1 -2
  74. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +3 -5
  75. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/__init__.py +18 -17
  76. lamindb-0.76.7/sub/wetlab/wetlab/migrations/0022_remove_experiment_experiment_type_and_more.py +991 -0
  77. lamindb-0.76.7/sub/wetlab/wetlab/migrations/0023_compoundtreatment_duration_and_more.py +183 -0
  78. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/models.py +333 -172
  79. lamindb-0.76.7/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +73 -0
  80. lamindb-0.76.7/tests/core/notebooks/not-initialized.ipynb +64 -0
  81. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_artifact.py +3 -5
  82. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_cache.py +3 -3
  83. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_collection.py +3 -0
  84. {lamindb-0.76.6 → lamindb-0.76.7}/tests/storage/test_storage.py +10 -8
  85. lamindb-0.76.6/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  86. lamindb-0.76.6/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -63
  87. lamindb-0.76.6/tests/core/notebooks/not-initialized.ipynb +0 -48
  88. {lamindb-0.76.6 → lamindb-0.76.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  89. {lamindb-0.76.6 → lamindb-0.76.7}/.github/workflows/build.yml +0 -0
  90. {lamindb-0.76.6 → lamindb-0.76.7}/.github/workflows/doc-changes.yml +0 -0
  91. {lamindb-0.76.6 → lamindb-0.76.7}/.gitignore +0 -0
  92. {lamindb-0.76.6 → lamindb-0.76.7}/.gitmodules +0 -0
  93. {lamindb-0.76.6 → lamindb-0.76.7}/.pre-commit-config.yaml +0 -0
  94. {lamindb-0.76.6 → lamindb-0.76.7}/CONTRIBUTING.md +0 -0
  95. {lamindb-0.76.6 → lamindb-0.76.7}/LICENSE +0 -0
  96. {lamindb-0.76.6 → lamindb-0.76.7}/README.md +0 -0
  97. {lamindb-0.76.6 → lamindb-0.76.7}/docs/api.md +0 -0
  98. {lamindb-0.76.6 → lamindb-0.76.7}/docs/arrays.ipynb +0 -0
  99. {lamindb-0.76.6 → lamindb-0.76.7}/docs/bio-registries.ipynb +0 -0
  100. {lamindb-0.76.6 → lamindb-0.76.7}/docs/bionty.md +0 -0
  101. {lamindb-0.76.6 → lamindb-0.76.7}/docs/changelog.md +0 -0
  102. {lamindb-0.76.6 → lamindb-0.76.7}/docs/curate-any.ipynb +0 -0
  103. {lamindb-0.76.6 → lamindb-0.76.7}/docs/curate-df.ipynb +0 -0
  104. {lamindb-0.76.6 → lamindb-0.76.7}/docs/curate.md +0 -0
  105. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/acid.ipynb +0 -0
  106. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/delete.ipynb +0 -0
  107. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/idempotency.ipynb +0 -0
  108. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/import-schema.ipynb +0 -0
  109. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/keep-artifacts-local.ipynb +0 -0
  110. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/key.ipynb +0 -0
  111. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/reference-field.ipynb +0 -0
  112. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/setup.ipynb +0 -0
  113. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/test_notebooks.py +0 -0
  114. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/track-run-inputs.ipynb +0 -0
  115. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq/visibility.ipynb +0 -0
  116. {lamindb-0.76.6 → lamindb-0.76.7}/docs/faq.md +0 -0
  117. {lamindb-0.76.6 → lamindb-0.76.7}/docs/guide.md +0 -0
  118. {lamindb-0.76.6 → lamindb-0.76.7}/docs/includes/features-lamindb.md +0 -0
  119. {lamindb-0.76.6 → lamindb-0.76.7}/docs/includes/features-laminhub.md +0 -0
  120. {lamindb-0.76.6 → lamindb-0.76.7}/docs/includes/installation.md +0 -0
  121. {lamindb-0.76.6 → lamindb-0.76.7}/docs/index.md +0 -0
  122. {lamindb-0.76.6 → lamindb-0.76.7}/docs/introduction.ipynb +0 -0
  123. {lamindb-0.76.6 → lamindb-0.76.7}/docs/lamindb.md +0 -0
  124. {lamindb-0.76.6 → lamindb-0.76.7}/docs/laminr.md +0 -0
  125. {lamindb-0.76.6 → lamindb-0.76.7}/docs/query-search.md +0 -0
  126. {lamindb-0.76.6 → lamindb-0.76.7}/docs/registries.ipynb +0 -0
  127. {lamindb-0.76.6 → lamindb-0.76.7}/docs/rest.md +0 -0
  128. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/add-replace-cache.ipynb +0 -0
  129. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/anndata-accessor.ipynb +0 -0
  130. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/test-files/iris.csv +0 -0
  131. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/test-files/iris.data +0 -0
  132. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/test-files/new_iris.csv +0 -0
  133. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/test_notebooks.py +0 -0
  134. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/upload.ipynb +0 -0
  135. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage/vitessce.ipynb +0 -0
  136. {lamindb-0.76.6 → lamindb-0.76.7}/docs/storage.md +0 -0
  137. {lamindb-0.76.6 → lamindb-0.76.7}/docs/test_notebooks.py +0 -0
  138. {lamindb-0.76.6 → lamindb-0.76.7}/docs/track.ipynb +0 -0
  139. {lamindb-0.76.6 → lamindb-0.76.7}/docs/transfer.ipynb +0 -0
  140. {lamindb-0.76.6 → lamindb-0.76.7}/docs/tutorial2.ipynb +0 -0
  141. {lamindb-0.76.6 → lamindb-0.76.7}/docs/wetlab.md +0 -0
  142. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_can_validate.py +0 -0
  143. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_feature.py +0 -0
  144. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_feature_set.py +0 -0
  145. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_filter.py +0 -0
  146. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_finish.py +0 -0
  147. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_from_values.py +0 -0
  148. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_is_versioned.py +0 -0
  149. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_parents.py +0 -0
  150. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_query_manager.py +0 -0
  151. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_query_set.py +0 -0
  152. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_record.py +0 -0
  153. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_run.py +0 -0
  154. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_save.py +0 -0
  155. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_storage.py +0 -0
  156. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_transform.py +0 -0
  157. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_ulabel.py +0 -0
  158. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_utils.py +0 -0
  159. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/_view.py +0 -0
  160. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_mapped_collection.py +0 -0
  161. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_settings.py +0 -0
  162. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_sync_git.py +0 -0
  163. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/_track_environment.py +0 -0
  164. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/datasets/__init__.py +0 -0
  165. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/datasets/_core.py +0 -0
  166. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/datasets/_fake.py +0 -0
  167. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/fields.py +0 -0
  168. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/schema.py +0 -0
  169. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_anndata_accessor.py +0 -0
  170. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_anndata_sizes.py +0 -0
  171. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_backed_access.py +0 -0
  172. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/_valid_suffixes.py +0 -0
  173. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/storage/objects.py +0 -0
  174. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/subsettings/__init__.py +0 -0
  175. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/subsettings/_creation_settings.py +0 -0
  176. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/subsettings/_transform_settings.py +0 -0
  177. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/types.py +0 -0
  178. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/core/versioning.py +0 -0
  179. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/integrations/__init__.py +0 -0
  180. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/integrations/_vitessce.py +0 -0
  181. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/setup/__init__.py +0 -0
  182. {lamindb-0.76.6 → lamindb-0.76.7}/lamindb/setup/core/__init__.py +0 -0
  183. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  184. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  185. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/.pre-commit-config.yaml +0 -0
  186. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/LICENSE +0 -0
  187. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/README.md +0 -0
  188. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/_bionty.py +0 -0
  189. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/__init__.py +0 -0
  190. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/_display_sources.py +0 -0
  191. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/_ontology.py +0 -0
  192. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/_settings.py +0 -0
  193. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  194. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  195. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/dev/_io.py +0 -0
  196. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  197. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  198. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  199. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  200. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  201. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  202. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  203. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  204. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  205. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/core/__init__.py +0 -0
  206. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/core/_bionty.py +0 -0
  207. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/core/_settings.py +0 -0
  208. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/ids.py +0 -0
  209. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  210. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  211. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  212. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  213. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  214. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  215. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  216. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  217. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  218. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  219. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  220. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  221. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  222. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
  223. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
  224. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  225. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0038_alter_artifactcellline_created_by_and_more.py +0 -0
  226. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/0039_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  227. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/bionty/migrations/__init__.py +0 -0
  228. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/guide/concepts.md +0 -0
  229. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/guide/config.md +0 -0
  230. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/guide/extend.md +0 -0
  231. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  232. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/guide.md +0 -0
  233. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/index.md +0 -0
  234. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/docs/reference.md +0 -0
  235. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/lamin-project.yaml +0 -0
  236. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/noxfile.py +0 -0
  237. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/pyproject.toml +0 -0
  238. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  239. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/dev/test_io.py +0 -0
  240. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  241. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_biosample.py +0 -0
  242. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_cellline.py +0 -0
  243. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  244. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_celltype.py +0 -0
  245. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  246. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_disease.py +0 -0
  247. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_drug.py +0 -0
  248. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  249. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  250. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_gene.py +0 -0
  251. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_organism.py +0 -0
  252. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_pathway.py +0 -0
  253. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  254. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_protein.py +0 -0
  255. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/entities/test_tissue.py +0 -0
  256. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/test_bionty.py +0 -0
  257. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/test_lamindb.py +0 -0
  258. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/test_md5.py +0 -0
  259. {lamindb-0.76.6 → lamindb-0.76.7}/sub/bionty/tests/test_ontology.py +0 -0
  260. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  261. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/.gitignore +0 -0
  262. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  263. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/LICENSE +0 -0
  264. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/README.md +0 -0
  265. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  266. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  267. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  268. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/pyproject.toml +0 -0
  269. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/conftest.py +0 -0
  270. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  271. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  272. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  273. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  274. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  275. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  276. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_migrate.py +0 -0
  277. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  278. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_save_files.py +0 -0
  279. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  280. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  281. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  282. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/.gitignore +0 -0
  283. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  284. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/LICENSE +0 -0
  285. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/README.md +0 -0
  286. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/changelog.md +0 -0
  287. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  288. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
  289. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
  290. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  291. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  292. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  293. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  294. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +0 -0
  295. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  296. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  297. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  298. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  299. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  300. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  301. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-init-load-local-anonymously.ipynb +0 -0
  302. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  303. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  304. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  305. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  306. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/index.md +0 -0
  307. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/notebooks.md +0 -0
  308. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/docs/reference.md +0 -0
  309. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  310. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  311. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  312. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  313. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  314. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  315. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_entry_points.py +0 -0
  316. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  317. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  318. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  319. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  320. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  321. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  322. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  323. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
  324. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  325. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  326. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  327. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  328. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  329. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  330. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  331. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  332. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  333. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  334. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  335. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +0 -0
  336. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  337. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  338. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  339. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  340. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  341. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  342. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
  343. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/noxfile.py +0 -0
  344. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/pyproject.toml +0 -0
  345. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
  346. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  347. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  348. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
  349. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  350. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  351. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  352. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  353. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  354. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  355. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  356. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  357. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  358. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_entry_point.py +0 -0
  359. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  360. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  361. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  362. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  363. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  364. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  365. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  366. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/.gitignore +0 -0
  367. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  368. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/CHANGELOG.md +0 -0
  369. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/LICENSE +0 -0
  370. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/README.md +0 -0
  371. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  372. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  373. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  374. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  375. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  376. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  377. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  378. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  379. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  380. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  381. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  382. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  383. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  384. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  385. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  386. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  387. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  388. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  389. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  390. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  391. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  392. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
  393. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  394. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  395. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  396. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  397. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
  398. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
  399. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
  400. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -0
  401. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0065_remove_collection_feature_sets_and_more.py +0 -0
  402. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/0066_alter_artifact__feature_values_and_more.py +0 -0
  403. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  404. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  405. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/types.py +0 -0
  406. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/lnschema_core/users.py +0 -0
  407. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/noxfile.py +0 -0
  408. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/pyproject.toml +0 -0
  409. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/tests/conftest.py +0 -0
  410. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/tests/test_integrity.py +0 -0
  411. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/tests/test_models.py +0 -0
  412. {lamindb-0.76.6 → lamindb-0.76.7}/sub/lnschema-core/tests/test_types.py +0 -0
  413. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  414. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/.gitignore +0 -0
  415. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/README.md +0 -0
  416. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/changelog.md +0 -0
  417. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  418. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/guide.md +0 -0
  419. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/index.md +0 -0
  420. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/docs/reference.md +0 -0
  421. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/noxfile.py +0 -0
  422. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/pyproject.toml +0 -0
  423. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/tests/test_integrity.py +0 -0
  424. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/tests/test_notebooks.py +0 -0
  425. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  426. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  427. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
  428. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  429. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  430. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  431. {lamindb-0.76.6 → lamindb-0.76.7}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  432. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/conftest.py +0 -0
  433. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/notebooks/no-title.ipynb +0 -0
  434. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  435. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  436. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  437. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  438. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  439. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  440. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/scripts/script-to-test-versioning.py +0 -0
  441. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_artifact_folders.py +0 -0
  442. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_can_validate.py +0 -0
  443. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_context.py +0 -0
  444. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_curate.py +0 -0
  445. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_data.py +0 -0
  446. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_db.py +0 -0
  447. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_delete.py +0 -0
  448. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_feature.py +0 -0
  449. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_feature_manager.py +0 -0
  450. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_feature_set.py +0 -0
  451. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_from_values.py +0 -0
  452. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_label_manager.py +0 -0
  453. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_load.py +0 -0
  454. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_manager.py +0 -0
  455. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_notebooks.py +0 -0
  456. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_parents.py +0 -0
  457. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_queryset.py +0 -0
  458. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_record.py +0 -0
  459. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_run.py +0 -0
  460. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_save.py +0 -0
  461. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_search.py +0 -0
  462. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_settings.py +0 -0
  463. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_transform.py +0 -0
  464. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_uid.py +0 -0
  465. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_ulabel.py +0 -0
  466. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_versioning.py +0 -0
  467. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_view.py +0 -0
  468. {lamindb-0.76.6 → lamindb-0.76.7}/tests/core/test_visibility.py +0 -0
  469. {lamindb-0.76.6 → lamindb-0.76.7}/tests/storage/conftest.py +0 -0
  470. {lamindb-0.76.6 → lamindb-0.76.7}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,7 @@
1
1
  name: Bug report
2
2
  description: Report something that is broken or incorrect
3
- labels: bug
3
+ labels:
4
+ - ":bug: bug"
4
5
  body:
5
6
  - type: markdown
6
7
  attributes:
@@ -1,6 +1,7 @@
1
1
  name: Feature request
2
2
  description: Propose a new feature for lamindb
3
- labels: enhancement
3
+ labels:
4
+ - ":sparkles: feature"
4
5
  body:
5
6
  - type: markdown
6
7
  attributes:
@@ -0,0 +1,20 @@
1
+ name: Usage question
2
+ description: Ask a usage question
3
+ labels:
4
+ - ":children_crossing: ux"
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ **Note**: This is a public repository! Do not reveal any internal information.
10
+
11
+ - type: textarea
12
+ id: description
13
+ attributes:
14
+ label: Usage question
15
+ description: Please ask your question.
16
+ placeholder: |
17
+ This is a public repository!
18
+ Do not reveal any internal information.
19
+ validations:
20
+ required: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.76.6
3
+ Version: 0.76.7
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.74.1
13
- Requires-Dist: lamindb_setup==0.77.1
12
+ Requires-Dist: lnschema_core==0.74.3
13
+ Requires-Dist: lamindb_setup==0.77.2
14
14
  Requires-Dist: lamin_utils==0.13.4
15
- Requires-Dist: lamin_cli==0.17.2
15
+ Requires-Dist: lamin_cli==0.17.3
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.50.1 ; extra == "bionty"
27
+ Requires-Dist: bionty==0.50.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"
@@ -44,7 +44,7 @@
44
44
  "id": "7e7c43f8",
45
45
  "metadata": {},
46
46
  "source": [
47
- "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/XoTQFCmmj2uU4d2xyj9t.png\" width=\"350px\" style=\"background: transparent\" align=\"right\">\n"
47
+ "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/XoTQFCmmj2uU4d2xyj9u.png\" width=\"350px\" style=\"background: transparent\" align=\"right\">\n"
48
48
  ]
49
49
  },
50
50
  {
@@ -64,7 +64,7 @@
64
64
  "id": "f5375b44",
65
65
  "metadata": {},
66
66
  "source": [
67
- "### View the entire schema"
67
+ "### View the schema"
68
68
  ]
69
69
  },
70
70
  {
@@ -73,9 +73,9 @@
73
73
  "id": "de6fdc7e",
74
74
  "metadata": {},
75
75
  "source": [
76
- "For your given instance, you view the registries by running `lamin schema view` on the command line.\n",
76
+ "For your given instance, you view the registries by running `lamin info schema` on the command line.\n",
77
77
  "\n",
78
- "In your browser, navigating to `<localhost>/schema/` will show an interactive version of graph similar to the one on the right."
78
+ "Your browser will show an interactive version of a graph similar to the one on the right. In the left side panel, you can choose to hide the relationships you're not interested in and you'll be able to trace some relationships."
79
79
  ]
80
80
  },
81
81
  {
@@ -56,16 +56,6 @@
56
56
  "- `schema` (optional): comma-separated string of schema modules"
57
57
  ]
58
58
  },
59
- {
60
- "attachments": {},
61
- "cell_type": "markdown",
62
- "metadata": {},
63
- "source": [
64
- "### Examples\n",
65
- "\n",
66
- "#### Local storage + SQLite"
67
- ]
68
- },
69
59
  {
70
60
  "attachments": {},
71
61
  "cell_type": "markdown",
@@ -91,11 +81,10 @@
91
81
  ]
92
82
  },
93
83
  {
94
- "attachments": {},
95
84
  "cell_type": "markdown",
96
85
  "metadata": {},
97
86
  "source": [
98
- "#### S3 + SQLite"
87
+ "You can also pass an AWS S3 bucket."
99
88
  ]
100
89
  },
101
90
  {
@@ -113,7 +102,7 @@
113
102
  "cell_type": "markdown",
114
103
  "metadata": {},
115
104
  "source": [
116
- "#### GCP + Postgres"
105
+ "Instead of SQLite, you can pass a Postgres connection string."
117
106
  ]
118
107
  },
119
108
  {
@@ -8,9 +8,9 @@
8
8
 
9
9
  An account is free & [signing up](https://lamin.ai/signup) takes 1 min.
10
10
 
11
- Lamin does _not_ store or see any of your data, but only _basic_ metadata about you (email address, etc.).
11
+ Through signing up, Lamin does _not_ store or see any of your data, but only _basic_ metadata about you (email address, etc.).
12
12
 
13
- If you register a LaminDB instance on LaminHub, Lamin only stores the storage location (AWS S3 or GCP bucket names, directory names).
13
+ If you register a LaminDB instance to LaminHub, we store metadata about the involved infrastructure (database server, storage locations, etc.). But we don't store any secrets when you call `lamin init` and can't see your data or metadata. If you want to connect your instance to LaminHub for exploration with read-write access: please [reach out](https://lamin.ai/contact).
14
14
 
15
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
 
@@ -32,5 +32,5 @@ lamin login <email> --key <API-key>
32
32
  Log out:
33
33
 
34
34
  ```
35
- lamin lgout
35
+ lamin login --logout
36
36
  ```
@@ -55,10 +55,7 @@
55
55
  "organism.save()\n",
56
56
  "artifact.labels.add(organism)\n",
57
57
  "\n",
58
- "experiment_type = wl.ExperimentType(name=\"experiment-type-test-transfer-to-cloud\")\n",
59
- "experiment_type.save()\n",
60
58
  "experiment = wl.Experiment(name=\"experiment-test-transfer-to-cloud\")\n",
61
- "experiment.experiment_type = experiment_type\n",
62
59
  "experiment.save()\n",
63
60
  "\n",
64
61
  "artifact.experiments.add(experiment)\n",
@@ -78,7 +75,7 @@
78
75
  ],
79
76
  "metadata": {
80
77
  "kernelspec": {
81
- "display_name": "py310",
78
+ "display_name": "Python 3 (ipykernel)",
82
79
  "language": "python",
83
80
  "name": "python3"
84
81
  },
@@ -92,7 +89,7 @@
92
89
  "name": "python",
93
90
  "nbconvert_exporter": "python",
94
91
  "pygments_lexer": "ipython3",
95
- "version": "3.10.13"
92
+ "version": "3.9.17"
96
93
  }
97
94
  },
98
95
  "nbformat": 4,
@@ -33,11 +33,7 @@
33
33
  "def cleanup(artifact: ln.Artifact):\n",
34
34
  " features_sets = artifact.feature_sets.all()\n",
35
35
  " experiments = artifact.experiments.all()\n",
36
- " try:\n",
37
- " artifact.delete(permanent=True, storage=False)\n",
38
- " except Exception as e:\n",
39
- " print(e)\n",
40
- " pass\n",
36
+ " artifact.delete(permanent=True, storage=False)\n",
41
37
  " features_sets.delete()\n",
42
38
  " experiments.delete()\n",
43
39
  "\n",
@@ -99,7 +95,7 @@
99
95
  ],
100
96
  "metadata": {
101
97
  "kernelspec": {
102
- "display_name": "py310",
98
+ "display_name": "Python 3 (ipykernel)",
103
99
  "language": "python",
104
100
  "name": "python3"
105
101
  },
@@ -113,7 +109,7 @@
113
109
  "name": "python",
114
110
  "nbconvert_exporter": "python",
115
111
  "pygments_lexer": "ipython3",
116
- "version": "3.10.13"
112
+ "version": "3.9.17"
117
113
  }
118
114
  },
119
115
  "nbformat": 4,
@@ -722,7 +722,25 @@
722
722
  "cell_type": "markdown",
723
723
  "metadata": {},
724
724
  "source": [
725
- "Are there remaining questions about storing artifacts? If so, see: {doc}`docs:faq/storage`."
725
+ "## File-like artifacts"
726
+ ]
727
+ },
728
+ {
729
+ "cell_type": "markdown",
730
+ "metadata": {},
731
+ "source": [
732
+ "Above, we looked at a folder-like artifact. Here is a file-like artifact."
733
+ ]
734
+ },
735
+ {
736
+ "cell_type": "code",
737
+ "execution_count": null,
738
+ "metadata": {},
739
+ "outputs": [],
740
+ "source": [
741
+ "local_filepath = ln.core.datasets.file_jpg_paradisi05()\n",
742
+ "artifact = ln.Artifact(local_filepath, description=\"My single image\").save()\n",
743
+ "artifact.load()"
726
744
  ]
727
745
  },
728
746
  {
@@ -886,7 +904,7 @@
886
904
  "metadata": {},
887
905
  "source": [
888
906
  "```\n",
889
- "ln.finish()\n",
907
+ "ln.context.finish()\n",
890
908
  "```"
891
909
  ]
892
910
  },
@@ -41,7 +41,7 @@ Modules and settings.
41
41
  """
42
42
 
43
43
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
44
- __version__ = "0.76.6"
44
+ __version__ = "0.76.7"
45
45
 
46
46
  import os as _os
47
47
 
@@ -31,12 +31,12 @@ from lamindb._utils import attach_func_to_class_method
31
31
  from lamindb.core._data import _track_run_input, describe, view_lineage
32
32
  from lamindb.core._settings import settings
33
33
  from lamindb.core.exceptions import IntegrityError
34
+ from lamindb.core.loaders import load_to_memory
34
35
  from lamindb.core.storage import (
35
36
  LocalPathClasses,
36
37
  UPath,
37
38
  delete_storage,
38
39
  infer_suffix,
39
- load_to_memory,
40
40
  write_to_disk,
41
41
  )
42
42
  from lamindb.core.storage.paths import (
@@ -955,24 +955,8 @@ def open(
955
955
  return access
956
956
 
957
957
 
958
- # docstring handled through attach_func_to_class_method
959
- def load(self, is_run_input: bool | None = None, stream: bool = False, **kwargs) -> Any:
960
- if hasattr(self, "_memory_rep") and self._memory_rep is not None:
961
- access_memory = self._memory_rep
962
- else:
963
- using_key = settings._using_key
964
- access_memory = load_to_memory(
965
- filepath_from_artifact(self, using_key=using_key), stream=stream, **kwargs
966
- )
967
- # only call if load is successfull
968
- _track_run_input(self, is_run_input)
969
- return access_memory
970
-
971
-
972
- # docstring handled through attach_func_to_class_method
973
- def cache(self, is_run_input: bool | None = None) -> Path:
974
- using_key = settings._using_key
975
- filepath = filepath_from_artifact(self, using_key=using_key)
958
+ # can't really just call .cache in .load because of double tracking
959
+ def _synchronize_cleanup_on_error(filepath: UPath) -> UPath:
976
960
  try:
977
961
  cache_path = setup_settings.instance.storage.cloud_to_local(
978
962
  filepath, print_progress=True
@@ -987,6 +971,26 @@ def cache(self, is_run_input: bool | None = None) -> Path:
987
971
  elif cache_path.is_dir():
988
972
  shutil.rmtree(cache_path)
989
973
  raise e
974
+ return cache_path
975
+
976
+
977
+ # docstring handled through attach_func_to_class_method
978
+ def load(self, is_run_input: bool | None = None, **kwargs) -> Any:
979
+ if hasattr(self, "_memory_rep") and self._memory_rep is not None:
980
+ access_memory = self._memory_rep
981
+ else:
982
+ filepath = filepath_from_artifact(self, using_key=settings._using_key)
983
+ cache_path = _synchronize_cleanup_on_error(filepath)
984
+ access_memory = load_to_memory(cache_path, **kwargs)
985
+ # only call if load is successfull
986
+ _track_run_input(self, is_run_input)
987
+ return access_memory
988
+
989
+
990
+ # docstring handled through attach_func_to_class_method
991
+ def cache(self, is_run_input: bool | None = None) -> Path:
992
+ filepath = filepath_from_artifact(self, using_key=settings._using_key)
993
+ cache_path = _synchronize_cleanup_on_error(filepath)
990
994
  # only call if sync is successfull
991
995
  _track_run_input(self, is_run_input)
992
996
  return cache_path
@@ -221,7 +221,12 @@ def mapped(
221
221
  is_run_input: bool | None = None,
222
222
  ) -> MappedCollection:
223
223
  path_list = []
224
- for artifact in self.ordered_artifacts.all():
224
+ if self._state.adding:
225
+ artifacts = self._artifacts
226
+ logger.warning("The collection isn't saved, consider calling `.save()`")
227
+ else:
228
+ artifacts = self.ordered_artifacts.all()
229
+ for artifact in artifacts:
225
230
  if artifact.suffix not in {".h5ad", ".zarr"}:
226
231
  logger.warning(f"Ignoring artifact with suffix {artifact.suffix}")
227
232
  continue
@@ -1188,7 +1188,7 @@ def validate_categories(
1188
1188
  print_values = _print_values(non_validated)
1189
1189
  warning_message = (
1190
1190
  f"{colors.red(f'{n_non_validated} terms')} {are} not validated: "
1191
- f"{colors.red(print_values)}\n → save terms via "
1191
+ f"{colors.red(print_values)}\n → fix typos, remove non-existent values, or save terms via "
1192
1192
  f"{colors.red(non_validated_hint_print)}"
1193
1193
  )
1194
1194
  if logger.indent == "":
@@ -54,6 +54,7 @@ Modules:
54
54
  .. autosummary::
55
55
  :toctree: .
56
56
 
57
+ loaders
57
58
  datasets
58
59
  storage
59
60
  types
@@ -87,7 +88,7 @@ from lamindb._query_set import QuerySet, RecordsList
87
88
  from lamindb.core._feature_manager import FeatureManager, ParamManager
88
89
  from lamindb.core._label_manager import LabelManager
89
90
 
90
- from . import _data, datasets, exceptions, fields, subsettings, types
91
+ from . import _data, datasets, exceptions, fields, loaders, subsettings, types
91
92
  from ._context import Context
92
93
  from ._mapped_collection import MappedCollection
93
94
  from ._settings import Settings
@@ -18,8 +18,8 @@ from ._settings import settings
18
18
  from ._sync_git import get_transform_reference_from_git_repo
19
19
  from ._track_environment import track_environment
20
20
  from .exceptions import (
21
- MissingContext,
22
- NotebookFileNotSavedToDisk,
21
+ MissingContextUID,
22
+ NotebookNotSaved,
23
23
  NotebookNotSavedError,
24
24
  NoTitleError,
25
25
  TrackNotCalled,
@@ -81,21 +81,30 @@ def get_notebook_name_colab() -> str:
81
81
  return name.rstrip(".ipynb")
82
82
 
83
83
 
84
- def raise_missing_context(transform_type: str, key: str) -> None:
84
+ def raise_missing_context(transform_type: str, key: str) -> bool:
85
85
  transform = Transform.filter(key=key).latest_version().first()
86
86
  if transform is None:
87
87
  new_uid = f"{base62_12()}0000"
88
- message = f"To track this {transform_type}, set\n\n"
88
+ message = f"To track this {transform_type}, copy & paste the below into the current cell and re-run it\n\n"
89
+ message += f'ln.context.uid = "{new_uid}"\nln.context.track()'
89
90
  else:
90
91
  uid = transform.uid
91
92
  suid, vuid = uid[: Transform._len_stem_uid], uid[Transform._len_stem_uid :]
92
93
  new_vuid = increment_base62(vuid)
93
94
  new_uid = f"{suid}{new_vuid}"
94
- message = f"You already have a {transform_type} version family with key '{key}', suid '{transform.stem_uid}' & name '{transform.name}'.\n\n- to create a new {transform_type} version family, rename your file and rerun: ln.context.track()\n- to bump the version, set: "
95
- message += f'ln.context.uid = "{new_uid}"'
95
+ message = f"You already have a version family with key '{key}' (stem_uid='{transform.stem_uid}').\n\n- to make a revision, set `ln.context.uid = '{new_uid}'`\n- to start a new version family, rename your file and rerun: `ln.context.track()`"
96
96
  if transform_type == "notebook":
97
- message += "\n\nRestart your notebook if you want consecutive cell execution."
98
- raise MissingContext(message)
97
+ print(f"→ {message}\n")
98
+ response = input("→ Ready to re-run? (y/n)")
99
+ if response == "y":
100
+ logger.important(
101
+ "Note: Restart your notebook if you want consecutive cell execution"
102
+ )
103
+ return True
104
+ raise MissingContextUID("Please follow the instructions.")
105
+ else:
106
+ raise MissingContextUID(message)
107
+ return False
99
108
 
100
109
 
101
110
  def pretty_pypackages(dependencies: dict) -> str:
@@ -280,7 +289,9 @@ class Context:
280
289
  # if no error is raised, the transform is tracked
281
290
  is_tracked = True
282
291
  if not is_tracked:
283
- raise_missing_context(transform_type, key)
292
+ early_return = raise_missing_context(transform_type, key)
293
+ if early_return:
294
+ return None
284
295
  else:
285
296
  if transform.type in {"notebook", "script"}:
286
297
  raise ValueError(
@@ -508,7 +519,7 @@ class Context:
508
519
  When called in the last cell of a notebook:
509
520
 
510
521
  - prompts for user input if not consecutively executed
511
- - requires to save the notebook in your editor
522
+ - requires to save the notebook in your editor right before
512
523
  - saves a run report: `run.report`
513
524
 
514
525
  Args:
@@ -530,6 +541,11 @@ class Context:
530
541
  def get_seconds_since_modified(filepath) -> float:
531
542
  return datetime.now().timestamp() - filepath.stat().st_mtime
532
543
 
544
+ def get_shortcut() -> str:
545
+ import platform
546
+
547
+ return "CMD + s" if platform.system() == "Darwin" else "CTRL + s"
548
+
533
549
  if context.run is None:
534
550
  raise TrackNotCalled("Please run `ln.context.track()` before `ln.finish()`")
535
551
  if context._path is None:
@@ -543,8 +559,8 @@ class Context:
543
559
  return None
544
560
  if is_run_from_ipython: # notebooks
545
561
  if get_seconds_since_modified(context._path) > 2 and not ln_setup._TESTING:
546
- raise NotebookFileNotSavedToDisk(
547
- "Please save the notebook manually in your editor right before running `ln.context.finish()`"
562
+ raise NotebookNotSaved(
563
+ f"Please save the notebook in your editor (shortcut `{get_shortcut()}`) right before calling `ln.context.finish()`"
548
564
  )
549
565
  save_context_core(
550
566
  run=context.run,
@@ -39,10 +39,13 @@ from .schema import (
39
39
  if TYPE_CHECKING:
40
40
  from lnschema_core.types import StrField
41
41
 
42
+
42
43
  WARNING_RUN_TRANSFORM = (
43
- "no run & transform get linked, consider calling ln.context.track()"
44
+ "no run & transform got linked, call `ln.context.track()` & re-run`"
44
45
  )
45
46
 
47
+ WARNING_NO_INPUT = "run input wasn't tracked, call `ln.context.track()` and re-run"
48
+
46
49
 
47
50
  def get_run(run: Run | None) -> Run | None:
48
51
  if run is None:
@@ -384,10 +387,7 @@ def _track_run_input(
384
387
  # we don't have a run record
385
388
  if run is None:
386
389
  if settings.track_run_inputs:
387
- logger.hint(
388
- "you can auto-track these data as a run input by calling"
389
- " `ln.context.track()`"
390
- )
390
+ logger.warning(WARNING_NO_INPUT)
391
391
  # assume we have a run record
392
392
  else:
393
393
  # assume there is non-cyclic candidate input data
@@ -808,7 +808,8 @@ def _add_from(self, data: Artifact | Collection, transfer_logs: dict = None):
808
808
  # create records from ontology_id
809
809
  if hasattr(registry, "_ontology_id_field") and len(member_uids) > 0:
810
810
  # create from bionty
811
- save(registry.from_values(member_uids, field=field))
811
+ members_records = registry.from_values(member_uids, field=field)
812
+ save([r for r in members_records if r._state.adding])
812
813
  validated = registry.validate(member_uids, field=field, mute=True)
813
814
  new_members_uids = list(compress(member_uids, ~validated))
814
815
  new_members = members.filter(**{f"{field}__in": new_members_uids}).all()
@@ -98,7 +98,8 @@ def validate_labels(labels: QuerySet | list | dict):
98
98
  # save labels from ontology_ids
99
99
  if hasattr(registry, "_ontology_id_field") and len(label_uids) > 0:
100
100
  try:
101
- save(registry.from_values(label_uids, field=field))
101
+ labels_records = registry.from_values(label_uids, field=field)
102
+ save([r for r in labels_records if r._state.adding])
102
103
  except Exception: # noqa S110
103
104
  pass
104
105
  field = "uid"
@@ -9,7 +9,7 @@ The registry base class:
9
9
  ValidationError
10
10
  NotebookNotSavedError
11
11
  NoTitleError
12
- MissingContext
12
+ MissingContextUID
13
13
  UpdateContext
14
14
  IntegrityError
15
15
 
@@ -20,7 +20,7 @@ class TrackNotCalled(SystemExit):
20
20
  pass
21
21
 
22
22
 
23
- class NotebookFileNotSavedToDisk(SystemExit):
23
+ class NotebookNotSaved(SystemExit):
24
24
  pass
25
25
 
26
26
 
@@ -65,7 +65,7 @@ class NoTitleError(Exception):
65
65
  pass
66
66
 
67
67
 
68
- class MissingContext(SystemExit):
68
+ class MissingContextUID(SystemExit):
69
69
  """User didn't define transform settings."""
70
70
 
71
71
  pass