lamindb 0.70.0__tar.gz → 0.70.2__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 (388) hide show
  1. {lamindb-0.70.0 → lamindb-0.70.2}/PKG-INFO +5 -5
  2. {lamindb-0.70.0 → lamindb-0.70.2}/docs/changelog.md +9 -0
  3. {lamindb-0.70.0 → lamindb-0.70.2}/docs/introduction.ipynb +5 -1
  4. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/add-replace-stage.ipynb +1 -1
  5. lamindb-0.70.2/docs/storage/vitessce.ipynb +157 -0
  6. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage.md +1 -0
  7. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/__init__.py +1 -1
  8. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_annotate.py +4 -4
  9. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_artifact.py +12 -11
  10. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_can_validate.py +6 -3
  11. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_collection.py +1 -1
  12. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_finish.py +31 -29
  13. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_from_values.py +32 -18
  14. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_registry.py +2 -0
  15. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_save.py +4 -5
  16. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/storage/__init__.py +3 -2
  17. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/storage/_backed_access.py +5 -5
  18. lamindb-0.70.2/lamindb/core/storage/_valid_suffixes.py +3 -0
  19. lamindb-0.70.0/lamindb/core/storage/object.py → lamindb-0.70.2/lamindb/core/storage/objects.py +2 -3
  20. lamindb-0.70.0/lamindb/core/storage/file.py → lamindb-0.70.2/lamindb/core/storage/paths.py +12 -13
  21. lamindb-0.70.2/lamindb/integrations/_vitessce.py +70 -0
  22. {lamindb-0.70.0 → lamindb-0.70.2}/noxfile.py +1 -0
  23. {lamindb-0.70.0 → lamindb-0.70.2}/pyproject.toml +4 -4
  24. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/bionty/__init__.py +1 -1
  25. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/pyproject.toml +1 -1
  26. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/changelog.md +2 -0
  27. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  28. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +5 -2
  29. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/upath.py +13 -8
  30. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +20 -6
  31. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/docs/changelog.md +1 -0
  32. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/__init__.py +1 -1
  33. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/models.py +4 -2
  34. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/CHANGELOG.md +1 -0
  35. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  36. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/models.py +3 -0
  37. {lamindb-0.70.0 → lamindb-0.70.2}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +2 -3
  38. {lamindb-0.70.0 → lamindb-0.70.2}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +1 -1
  39. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_artifact.py +4 -26
  40. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_cache.py +9 -9
  41. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_collection.py +1 -1
  42. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_notebooks.py +4 -0
  43. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_storage.py +17 -3
  44. lamindb-0.70.0/lamindb/integrations/_vitessce.py +0 -50
  45. {lamindb-0.70.0 → lamindb-0.70.2}/.github/workflows/build.yml +0 -0
  46. {lamindb-0.70.0 → lamindb-0.70.2}/.github/workflows/latest-changes.jinja2 +0 -0
  47. {lamindb-0.70.0 → lamindb-0.70.2}/.github/workflows/latest-changes.yml +0 -0
  48. {lamindb-0.70.0 → lamindb-0.70.2}/.gitignore +0 -0
  49. {lamindb-0.70.0 → lamindb-0.70.2}/.gitmodules +0 -0
  50. {lamindb-0.70.0 → lamindb-0.70.2}/.pre-commit-config.yaml +0 -0
  51. {lamindb-0.70.0 → lamindb-0.70.2}/LICENSE +0 -0
  52. {lamindb-0.70.0 → lamindb-0.70.2}/README.md +0 -0
  53. {lamindb-0.70.0 → lamindb-0.70.2}/docs/annotate-for-developers.ipynb +0 -0
  54. {lamindb-0.70.0 → lamindb-0.70.2}/docs/annotate.ipynb +0 -0
  55. {lamindb-0.70.0 → lamindb-0.70.2}/docs/bio-registries.ipynb +0 -0
  56. {lamindb-0.70.0 → lamindb-0.70.2}/docs/bionty-base.md +0 -0
  57. {lamindb-0.70.0 → lamindb-0.70.2}/docs/bionty.md +0 -0
  58. {lamindb-0.70.0 → lamindb-0.70.2}/docs/can-validate.ipynb +0 -0
  59. {lamindb-0.70.0 → lamindb-0.70.2}/docs/data.ipynb +0 -0
  60. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/acid.ipynb +0 -0
  61. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/delete.ipynb +0 -0
  62. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/idempotency.ipynb +0 -0
  63. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/import-schema.ipynb +0 -0
  64. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/key.ipynb +0 -0
  65. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/reference-field.ipynb +0 -0
  66. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/setup.ipynb +0 -0
  67. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/test_notebooks.py +0 -0
  68. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/track-run-inputs.ipynb +0 -0
  69. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq/visibility.ipynb +0 -0
  70. {lamindb-0.70.0 → lamindb-0.70.2}/docs/faq.md +0 -0
  71. {lamindb-0.70.0 → lamindb-0.70.2}/docs/features-lamindb.md +0 -0
  72. {lamindb-0.70.0 → lamindb-0.70.2}/docs/features-laminhub.md +0 -0
  73. {lamindb-0.70.0 → lamindb-0.70.2}/docs/guide.md +0 -0
  74. {lamindb-0.70.0 → lamindb-0.70.2}/docs/index.md +0 -0
  75. {lamindb-0.70.0 → lamindb-0.70.2}/docs/installation.md +0 -0
  76. {lamindb-0.70.0 → lamindb-0.70.2}/docs/lamin-utils.md +0 -0
  77. {lamindb-0.70.0 → lamindb-0.70.2}/docs/lamindb.md +0 -0
  78. {lamindb-0.70.0 → lamindb-0.70.2}/docs/meta.ipynb +0 -0
  79. {lamindb-0.70.0 → lamindb-0.70.2}/docs/nbproject.md +0 -0
  80. {lamindb-0.70.0 → lamindb-0.70.2}/docs/query-search.md +0 -0
  81. {lamindb-0.70.0 → lamindb-0.70.2}/docs/readfcs.md +0 -0
  82. {lamindb-0.70.0 → lamindb-0.70.2}/docs/reference.md +0 -0
  83. {lamindb-0.70.0 → lamindb-0.70.2}/docs/schemas.ipynb +0 -0
  84. {lamindb-0.70.0 → lamindb-0.70.2}/docs/setup.ipynb +0 -0
  85. {lamindb-0.70.0 → lamindb-0.70.2}/docs/signup-login.md +0 -0
  86. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/anndata-accessor.ipynb +0 -0
  87. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  88. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/test-files/iris.csv +0 -0
  89. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/test-files/iris.data +0 -0
  90. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/test-files/new_iris.csv +0 -0
  91. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/test_notebooks.py +0 -0
  92. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  93. {lamindb-0.70.0 → lamindb-0.70.2}/docs/storage/upload.ipynb +0 -0
  94. {lamindb-0.70.0 → lamindb-0.70.2}/docs/test_notebooks.py +0 -0
  95. {lamindb-0.70.0 → lamindb-0.70.2}/docs/track.ipynb +0 -0
  96. {lamindb-0.70.0 → lamindb-0.70.2}/docs/transfer.ipynb +0 -0
  97. {lamindb-0.70.0 → lamindb-0.70.2}/docs/tutorial.ipynb +0 -0
  98. {lamindb-0.70.0 → lamindb-0.70.2}/docs/tutorial2.ipynb +0 -0
  99. {lamindb-0.70.0 → lamindb-0.70.2}/docs/wetlab.md +0 -0
  100. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_feature.py +0 -0
  101. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_feature_set.py +0 -0
  102. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_filter.py +0 -0
  103. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_is_versioned.py +0 -0
  104. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_parents.py +0 -0
  105. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_query_manager.py +0 -0
  106. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_query_set.py +0 -0
  107. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_run.py +0 -0
  108. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_storage.py +0 -0
  109. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_transform.py +0 -0
  110. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_ulabel.py +0 -0
  111. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_utils.py +0 -0
  112. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/_view.py +0 -0
  113. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/__init__.py +0 -0
  114. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_data.py +0 -0
  115. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_feature_manager.py +0 -0
  116. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_label_manager.py +0 -0
  117. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_mapped_collection.py +0 -0
  118. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_run_context.py +0 -0
  119. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_settings.py +0 -0
  120. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_sync_git.py +0 -0
  121. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_track_environment.py +0 -0
  122. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_transform_settings.py +0 -0
  123. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/_view_tree.py +0 -0
  124. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/datasets/__init__.py +0 -0
  125. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/datasets/_core.py +0 -0
  126. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/datasets/_fake.py +0 -0
  127. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/exceptions.py +0 -0
  128. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/fields.py +0 -0
  129. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/storage/_anndata_sizes.py +0 -0
  130. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/storage/_zarr.py +0 -0
  131. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/types.py +0 -0
  132. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/core/versioning.py +0 -0
  133. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/integrations/__init__.py +0 -0
  134. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/setup/__init__.py +0 -0
  135. {lamindb-0.70.0 → lamindb-0.70.2}/lamindb/setup/core/__init__.py +0 -0
  136. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/.github/workflows/build.yml +0 -0
  137. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
  138. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
  139. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/.gitignore +0 -0
  140. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/.pre-commit-config.yaml +0 -0
  141. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/LICENSE +0 -0
  142. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/README.md +0 -0
  143. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/bionty/core/__init__.py +0 -0
  144. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/docs/changelog.md +0 -0
  145. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/docs/index.md +0 -0
  146. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/docs/reference.md +0 -0
  147. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/lamin-project.yaml +0 -0
  148. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/noxfile.py +0 -0
  149. {lamindb-0.70.0 → lamindb-0.70.2}/sub/bionty/tests/test_notebooks.py +0 -0
  150. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/.gitignore +0 -0
  151. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  152. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/README.md +0 -0
  153. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/__init__.py +0 -0
  154. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
  155. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  156. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/_get.py +0 -0
  157. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  158. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  159. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/pyproject.toml +0 -0
  160. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/conftest.py +0 -0
  161. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  162. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  163. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  164. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/scripts/initialized-no-git-sync.py +0 -0
  165. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
  166. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_cli.py +0 -0
  167. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_get.py +0 -0
  168. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_migrate.py +0 -0
  169. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  170. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_save_files.py +0 -0
  171. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  172. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  173. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  174. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  175. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  176. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/.gitignore +0 -0
  177. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  178. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/LICENSE +0 -0
  179. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/README.md +0 -0
  180. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/01-init-on-prem-instance.ipynb +0 -0
  181. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/02-connect-on-prem-instance.ipynb +0 -0
  182. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/03-set-storage.ipynb +0 -0
  183. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  184. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  185. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  186. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  187. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  188. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  189. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  190. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  191. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  192. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  193. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  194. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  195. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  196. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  197. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/index.md +0 -0
  198. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/notebooks.md +0 -0
  199. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/docs/reference.md +0 -0
  200. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_add_remote_storage.py +0 -0
  201. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  202. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  203. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  204. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  205. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  206. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  207. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  208. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  209. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  210. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  211. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  212. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  213. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  214. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  215. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  216. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  217. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  218. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  219. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  220. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +0 -0
  221. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  222. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  223. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  224. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +0 -0
  225. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  226. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  227. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +0 -0
  228. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  229. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  230. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  231. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  232. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  233. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  234. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  235. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  236. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/noxfile.py +0 -0
  237. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/pyproject.toml +0 -0
  238. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  239. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  240. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  241. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  242. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  243. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  244. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
  245. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  246. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
  247. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  248. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  249. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  250. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  251. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  252. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  253. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  254. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
  255. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
  256. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
  257. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/.gitignore +0 -0
  258. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
  259. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/LICENSE +0 -0
  260. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/README.md +0 -0
  261. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/docs/index.md +0 -0
  262. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/docs/reference.md +0 -0
  263. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lamin-project.yaml +0 -0
  264. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -0
  265. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +0 -0
  266. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +0 -0
  267. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +0 -0
  268. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
  269. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
  270. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
  271. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
  272. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
  273. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
  274. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
  275. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
  276. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
  277. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
  278. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
  279. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
  280. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
  281. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
  282. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
  283. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
  284. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
  285. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
  286. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
  287. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
  288. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
  289. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
  290. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
  291. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
  292. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  293. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
  294. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/noxfile.py +0 -0
  295. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/pyproject.toml +0 -0
  296. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
  297. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  298. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  299. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  300. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/.gitignore +0 -0
  301. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  302. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/LICENSE +0 -0
  303. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/README.md +0 -0
  304. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  305. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  306. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
  307. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  308. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  309. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  310. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  311. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  312. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  313. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  314. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  315. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
  316. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
  317. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
  318. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
  319. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
  320. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
  321. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
  322. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
  323. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
  324. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
  325. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
  326. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
  327. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
  328. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
  329. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
  330. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
  331. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
  332. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
  333. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
  334. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
  335. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
  336. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
  337. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
  338. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
  339. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
  340. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
  341. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
  342. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  343. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  344. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  345. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  346. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  347. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  348. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  349. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  350. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  351. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  352. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  353. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/types.py +0 -0
  354. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/lnschema_core/users.py +0 -0
  355. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/noxfile.py +0 -0
  356. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/pyproject.toml +0 -0
  357. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/tests/test_integrity.py +0 -0
  358. {lamindb-0.70.0 → lamindb-0.70.2}/sub/lnschema-core/tests/test_types.py +0 -0
  359. {lamindb-0.70.0 → lamindb-0.70.2}/tests/conftest.py +0 -0
  360. {lamindb-0.70.0 → lamindb-0.70.2}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
  361. {lamindb-0.70.0 → lamindb-0.70.2}/tests/notebooks/no-title.ipynb +0 -0
  362. {lamindb-0.70.0 → lamindb-0.70.2}/tests/notebooks/not-initialized.ipynb +0 -0
  363. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_annotate.py +0 -0
  364. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_can_validate.py +0 -0
  365. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_data.py +0 -0
  366. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_db.py +0 -0
  367. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_delete.py +0 -0
  368. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_feature.py +0 -0
  369. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_feature_manager.py +0 -0
  370. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_feature_set.py +0 -0
  371. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_from_values.py +0 -0
  372. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_label_manager.py +0 -0
  373. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_load.py +0 -0
  374. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_manager.py +0 -0
  375. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_parents.py +0 -0
  376. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_queryset.py +0 -0
  377. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_registry.py +0 -0
  378. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_run.py +0 -0
  379. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_run_context.py +0 -0
  380. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_save.py +0 -0
  381. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_settings.py +0 -0
  382. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_transfer.py +0 -0
  383. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_transform.py +0 -0
  384. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_uid.py +0 -0
  385. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_ulabel.py +0 -0
  386. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_versioning.py +0 -0
  387. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_view.py +0 -0
  388. {lamindb-0.70.0 → lamindb-0.70.2}/tests/test_visibility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.70.0
3
+ Version: 0.70.2
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,9 +9,9 @@ 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.65.0
13
- Requires-Dist: lamindb_setup==0.69.2
14
- Requires-Dist: lamin_utils==0.13.1
12
+ Requires-Dist: lnschema_core==0.65.1
13
+ Requires-Dist: lamindb_setup==0.69.4
14
+ Requires-Dist: lamin_utils==0.13.2
15
15
  Requires-Dist: lamin_cli==0.12.3
16
16
  Requires-Dist: rapidfuzz
17
17
  Requires-Dist: pyarrow
@@ -27,7 +27,7 @@ Requires-Dist: urllib3<2 ; extra == "aws"
27
27
  Requires-Dist: aiobotocore[boto3]>=2.5.4,<3.0.0 ; extra == "aws"
28
28
  Requires-Dist: s3fs==2023.12.2 ; extra == "aws"
29
29
  Requires-Dist: fsspec[s3]==2023.12.2 ; extra == "aws"
30
- Requires-Dist: bionty==0.42.8 ; extra == "bionty"
30
+ Requires-Dist: bionty==0.42.9 ; extra == "bionty"
31
31
  Requires-Dist: pandas<2 ; extra == "dev"
32
32
  Requires-Dist: pre-commit ; extra == "dev"
33
33
  Requires-Dist: nox ; extra == "dev"
@@ -14,6 +14,15 @@ When upgrading your LaminDB installation to a new `minor` version in `major.mino
14
14
 
15
15
  ## 0.70
16
16
 
17
+ ### 0.70.2 {small}`2024-04-19`
18
+
19
+ - ♻️ In Vitessce integration, separate `VitessceConfig` from its referenced artifacts [PR](https://github.com/laminlabs/lamindb/pull/1582) [@falexwolf](https://github.com/falexwolf)
20
+ - 🚸 In `ln.finish()`, remove flag `i_saved_the_notebook` [PR](https://github.com/laminlabs/lamindb/pull/1581) [@falexwolf](https://github.com/falexwolf)
21
+
22
+ ### 0.70.1 {small}`2024-04-18`
23
+
24
+ - 🐛 Fix `public_source` in inspect [PR](https://github.com/laminlabs/lamindb/pull/1578) [@sunnyosun](https://github.com/sunnyosun)
25
+
17
26
  ### 0.70.0 {small}`2024-04-17`
18
27
 
19
28
  - 🚸 Update data source in case transform is re-run [PR](https://github.com/laminlabs/lamindb/pull/1571) [@falexwolf](https://github.com/falexwolf)
@@ -675,7 +675,11 @@
675
675
  {
676
676
  "cell_type": "code",
677
677
  "execution_count": null,
678
- "metadata": {},
678
+ "metadata": {
679
+ "tags": [
680
+ "hide-output"
681
+ ]
682
+ },
679
683
  "outputs": [],
680
684
  "source": [
681
685
  "# if it's small enough, you can load the entire collection into memory as if it was one\n",
@@ -37,7 +37,7 @@
37
37
  "metadata": {},
38
38
  "outputs": [],
39
39
  "source": [
40
- "AUTO_KEY_PREFIX = ln.core.storage.file.AUTO_KEY_PREFIX\n",
40
+ "AUTO_KEY_PREFIX = ln.core.storage.paths.AUTO_KEY_PREFIX\n",
41
41
  "root = ln.settings.storage"
42
42
  ]
43
43
  },
@@ -0,0 +1,157 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Vitessce integration"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "markdown",
12
+ "metadata": {},
13
+ "source": [
14
+ "For more comprehensive integration tests, see: https://github.com/laminlabs/lamin-spatial"
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "code",
19
+ "execution_count": null,
20
+ "metadata": {},
21
+ "outputs": [],
22
+ "source": [
23
+ "import pytest\n",
24
+ "import lamindb as ln\n",
25
+ "\n",
26
+ "INSTANCE_NAME = \"test-vitessce\"\n",
27
+ "ln.setup.init(storage=f\"s3://lamindb-ci/{INSTANCE_NAME}\")"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "code",
32
+ "execution_count": null,
33
+ "metadata": {},
34
+ "outputs": [],
35
+ "source": [
36
+ "pbmc68k = ln.core.datasets.anndata_pbmc68k_reduced()"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "code",
41
+ "execution_count": null,
42
+ "metadata": {},
43
+ "outputs": [],
44
+ "source": [
45
+ "pbmc68k = pbmc68k[:100, :200].copy()"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "code",
50
+ "execution_count": null,
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "zarr_filepath = \"my_test.zarr\"\n",
55
+ "pbmc68k.write_zarr(zarr_filepath)"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "code",
60
+ "execution_count": null,
61
+ "metadata": {},
62
+ "outputs": [],
63
+ "source": [
64
+ "zarr_artifact = ln.Artifact(zarr_filepath, description=\"Test dataset\")\n",
65
+ "zarr_artifact.save()"
66
+ ]
67
+ },
68
+ {
69
+ "cell_type": "code",
70
+ "execution_count": null,
71
+ "metadata": {},
72
+ "outputs": [],
73
+ "source": [
74
+ "from vitessce import (\n",
75
+ " VitessceConfig,\n",
76
+ " Component as cm,\n",
77
+ " AnnDataWrapper,\n",
78
+ ")\n",
79
+ "vc = VitessceConfig(\n",
80
+ " schema_version=\"1.0.15\",\n",
81
+ " name=\"Test dataset\",\n",
82
+ " description=\"Test description\",\n",
83
+ ")\n",
84
+ "dataset = vc.add_dataset(name=\"test1\").add_object(\n",
85
+ " AnnDataWrapper(adata_url=zarr_artifact.path.to_url()),\n",
86
+ ")\n",
87
+ "obs_sets = vc.add_view(cm.OBS_SETS, dataset=dataset)\n",
88
+ "obs_sets_sizes = vc.add_view(cm.OBS_SET_SIZES, dataset=dataset)\n",
89
+ "scatterplot = vc.add_view(cm.SCATTERPLOT, dataset=dataset, mapping=\"UMAP\")\n",
90
+ "heatmap = vc.add_view(cm.HEATMAP, dataset=dataset)\n",
91
+ "genes = vc.add_view(cm.FEATURE_LIST, dataset=dataset)\n",
92
+ "vc.layout(((scatterplot | obs_sets) / heatmap) | (obs_sets_sizes / genes))\n",
93
+ "\n",
94
+ "# inspect the config\n",
95
+ "vc.to_dict()"
96
+ ]
97
+ },
98
+ {
99
+ "cell_type": "code",
100
+ "execution_count": null,
101
+ "metadata": {},
102
+ "outputs": [],
103
+ "source": [
104
+ "from lamindb.integrations import save_vitessce_config"
105
+ ]
106
+ },
107
+ {
108
+ "cell_type": "code",
109
+ "execution_count": null,
110
+ "metadata": {},
111
+ "outputs": [],
112
+ "source": [
113
+ "vc_artifact = save_vitessce_config(vc, description=\"View Habib17 in Vitessce\")"
114
+ ]
115
+ },
116
+ {
117
+ "cell_type": "code",
118
+ "execution_count": null,
119
+ "metadata": {},
120
+ "outputs": [],
121
+ "source": [
122
+ "zarr_artifact.delete(permanent=True)\n",
123
+ "vc_artifact.delete(permanent=True)"
124
+ ]
125
+ },
126
+ {
127
+ "cell_type": "code",
128
+ "execution_count": null,
129
+ "metadata": {},
130
+ "outputs": [],
131
+ "source": [
132
+ "!lamin delete --force test-vitessce"
133
+ ]
134
+ }
135
+ ],
136
+ "metadata": {
137
+ "kernelspec": {
138
+ "display_name": "py310",
139
+ "language": "python",
140
+ "name": "python3"
141
+ },
142
+ "language_info": {
143
+ "codemirror_mode": {
144
+ "name": "ipython",
145
+ "version": 3
146
+ },
147
+ "file_extension": ".py",
148
+ "mimetype": "text/x-python",
149
+ "name": "python",
150
+ "nbconvert_exporter": "python",
151
+ "pygments_lexer": "ipython3",
152
+ "version": "3.10.13"
153
+ }
154
+ },
155
+ "nbformat": 4,
156
+ "nbformat_minor": 2
157
+ }
@@ -8,4 +8,5 @@ storage/add-replace-stage
8
8
  storage/anndata-accessor
9
9
  storage/prepare-transfer-local-to-cloud
10
10
  storage/transfer-local-to-cloud
11
+ storage/vitessce
11
12
  ```
@@ -40,7 +40,7 @@ Modules & settings:
40
40
 
41
41
  """
42
42
 
43
- __version__ = "0.70.0" # denote a release candidate for 0.1.0 with 0.1rc1
43
+ __version__ = "0.70.2" # denote a release candidate for 0.1.0 with 0.1rc1
44
44
 
45
45
  import os as _os
46
46
 
@@ -351,7 +351,7 @@ class AnnDataAnnotator(DataFrameAnnotator):
351
351
  self,
352
352
  adata: ad.AnnData,
353
353
  var_index: FieldAttr,
354
- categoricals: dict[str, FieldAttr],
354
+ categoricals: dict[str, FieldAttr] | None = None,
355
355
  using: str = "default",
356
356
  verbosity: str = "hint",
357
357
  organism: str | None = None,
@@ -494,7 +494,7 @@ class MuDataAnnotator:
494
494
  self,
495
495
  mdata: MuData,
496
496
  var_index: dict[str, dict[str, FieldAttr]],
497
- categoricals: dict[str, FieldAttr],
497
+ categoricals: dict[str, FieldAttr] | None = None,
498
498
  using: str = "default",
499
499
  verbosity: str = "hint",
500
500
  organism: str | None = None,
@@ -751,7 +751,7 @@ class Annotate:
751
751
  cls,
752
752
  adata: ad.AnnData,
753
753
  var_index: FieldAttr,
754
- categoricals: dict[str, FieldAttr],
754
+ categoricals: dict[str, FieldAttr] | None = None,
755
755
  using: str = "default",
756
756
  verbosity: str = "hint",
757
757
  organism: str | None = None,
@@ -772,7 +772,7 @@ class Annotate:
772
772
  cls,
773
773
  mdata: MuData,
774
774
  var_index: dict[str, dict[str, FieldAttr]],
775
- categoricals: dict[str, dict[str, FieldAttr]],
775
+ categoricals: dict[str, FieldAttr] | None = None,
776
776
  using: str = "default",
777
777
  verbosity: str = "hint",
778
778
  organism: str | None = None,
@@ -37,7 +37,7 @@ from lamindb.core.storage import (
37
37
  size_adata,
38
38
  write_to_file,
39
39
  )
40
- from lamindb.core.storage.file import (
40
+ from lamindb.core.storage.paths import (
41
41
  auto_storage_key_from_artifact,
42
42
  auto_storage_key_from_artifact_uid,
43
43
  filepath_from_artifact,
@@ -50,8 +50,8 @@ from .core._data import (
50
50
  save_feature_set_links,
51
51
  save_feature_sets,
52
52
  )
53
- from .core.storage.file import AUTO_KEY_PREFIX
54
- from .core.storage.object import _mudata_is_installed
53
+ from .core.storage.objects import _mudata_is_installed
54
+ from .core.storage.paths import AUTO_KEY_PREFIX
55
55
 
56
56
  if TYPE_CHECKING:
57
57
  from lamindb_setup.core.types import UPathStr
@@ -167,7 +167,7 @@ def process_data(
167
167
  # Alex: I don't understand the line below
168
168
  if path.suffixes == []:
169
169
  path = path.with_suffix(suffix)
170
- if suffix not in {".zarr", ".zrad"}:
170
+ if suffix != ".zarr":
171
171
  write_to_file(data, path)
172
172
  use_existing_storage_key = False
173
173
  else:
@@ -188,11 +188,7 @@ def get_stat_or_artifact(
188
188
  n_objects = None
189
189
  if settings.upon_file_create_skip_size_hash:
190
190
  return None, None, None, n_objects
191
- if (
192
- suffix in {".zarr", ".zrad"}
193
- and memory_rep is not None
194
- and isinstance(memory_rep, AnnData)
195
- ):
191
+ if suffix == ".zarr" and memory_rep is not None and isinstance(memory_rep, AnnData):
196
192
  size = size_adata(memory_rep)
197
193
  return size, None, None, n_objects
198
194
  stat = path.stat() # one network request
@@ -450,7 +446,12 @@ def data_is_anndata(data: AnnData | UPathStr):
450
446
  if isinstance(data, AnnData):
451
447
  return True
452
448
  if isinstance(data, (str, Path, UPath)):
453
- return Path(data).suffix in {".h5ad", ".zrad"}
449
+ if Path(data).suffix == ".h5ad":
450
+ return True
451
+ elif Path(data).suffix == ".zarr":
452
+ raise NotImplementedError(
453
+ "auto-detecting AnnData from Zarr is not yet supported"
454
+ )
454
455
  return False
455
456
 
456
457
 
@@ -832,7 +833,7 @@ def replace(
832
833
 
833
834
  # docstring handled through attach_func_to_class_method
834
835
  def backed(self, is_run_input: bool | None = None) -> AnnDataAccessor | BackedAccessor:
835
- suffixes = (".h5", ".hdf5", ".h5ad", ".zrad", ".zarr")
836
+ suffixes = (".h5", ".hdf5", ".h5ad", ".zarr")
836
837
  if self.suffix not in suffixes:
837
838
  raise ValueError(
838
839
  "Artifact should have a zarr or h5 object as the underlying data, please"
@@ -30,6 +30,7 @@ def inspect(
30
30
  *,
31
31
  mute: bool = False,
32
32
  organism: str | Registry | None = None,
33
+ public_source: Registry | None = None,
33
34
  ) -> InspectResult:
34
35
  """{}."""
35
36
  return _inspect(
@@ -38,6 +39,7 @@ def inspect(
38
39
  field=field,
39
40
  mute=mute,
40
41
  organism=organism,
42
+ public_source=public_source,
41
43
  )
42
44
 
43
45
 
@@ -63,6 +65,7 @@ def _inspect(
63
65
  mute: bool = False,
64
66
  using_key: str | None = None,
65
67
  organism: str | Registry | None = None,
68
+ public_source: Registry | None = None,
66
69
  ) -> pd.DataFrame | dict[str, list[str]]:
67
70
  """{}."""
68
71
  from lamin_utils._inspect import inspect
@@ -86,9 +89,9 @@ def _inspect(
86
89
 
87
90
  if len(nonval) > 0 and orm.__get_schema_name__() == "bionty":
88
91
  try:
89
- bionty_result = orm.public(organism=organism).inspect(
90
- values=nonval, field=field, mute=True
91
- )
92
+ bionty_result = orm.public(
93
+ organism=organism, public_source=public_source
94
+ ).inspect(values=nonval, field=field, mute=True)
92
95
  bionty_validated = bionty_result.validated
93
96
  bionty_mapper = bionty_result.synonyms_mapper
94
97
  hint = False
@@ -234,7 +234,7 @@ def mapped(
234
234
  ) -> MappedCollection:
235
235
  path_list = []
236
236
  for artifact in self.artifacts.all():
237
- if artifact.suffix not in {".h5ad", ".zrad", ".zarr"}:
237
+ if artifact.suffix not in {".h5ad", ".zarr"}:
238
238
  logger.warning(f"Ignoring artifact with suffix {artifact.suffix}")
239
239
  continue
240
240
  elif not stream:
@@ -20,37 +20,40 @@ if TYPE_CHECKING:
20
20
  from ._query_set import QuerySet
21
21
 
22
22
 
23
- class CallFinishInLastCell(SystemExit):
23
+ class TrackNotCalled(SystemExit):
24
24
  pass
25
25
 
26
26
 
27
- def finish(i_saved_the_notebook: bool = False):
28
- """Mark a tracked run as finished.
27
+ class NotebookNotSaved(SystemExit):
28
+ pass
29
29
 
30
- When run in notebooks, save the run report to your default storage location.
31
30
 
32
- Args:
33
- i_saved_the_notebook: Indicate that you saved the notebook in your
34
- editor (JupyterLab, VSCode, etc.).
35
- """
36
- if is_run_from_ipython:
37
- # notebooks
38
- from nbproject.dev import read_notebook
39
- from nbproject.dev._check_last_cell import check_last_cell
31
+ def get_seconds_since_modified(filepath) -> float:
32
+ return datetime.now().timestamp() - filepath.stat().st_mtime
40
33
 
41
- if not i_saved_the_notebook and not ln_setup._TESTING:
42
- logger.error(
43
- "Please pass `i_saved_the_notebook=True` to `ln.finish()`, save the notebook, and re-run this cell."
34
+
35
+ def finish():
36
+ """Mark a tracked run as finished.
37
+
38
+ If run in a notebook, it saves the run report & source code to your default storage location.
39
+ """
40
+ if run_context.path is None:
41
+ raise TrackNotCalled("Please run `ln.track()` before `ln.finish()`")
42
+ if is_run_from_ipython: # notebooks
43
+ if (
44
+ get_seconds_since_modified(run_context.path) > 3
45
+ and os.getenv("LAMIN_TESTING") is None
46
+ ):
47
+ raise NotebookNotSaved(
48
+ "Please save the notebook in your editor right before running `ln.finish()`"
44
49
  )
45
- return None
46
50
  save_run_context_core(
47
51
  run=run_context.run,
48
52
  transform=run_context.transform,
49
53
  filepath=run_context.path,
50
54
  finished_at=True,
51
55
  )
52
- else:
53
- # scripts
56
+ else: # scripts
54
57
  # save_run_context_core was already called during ln.track()
55
58
  run_context.run.finished_at = datetime.now(timezone.utc) # update run time
56
59
  run_context.run.save()
@@ -98,7 +101,7 @@ def save_run_context_core(
98
101
  # log_level is set to 40 to silence the nbconvert logging
99
102
  subprocess.run(
100
103
  "jupyter nbconvert --to html"
101
- f" {filepath.as_posix()} --Application.log_level=40",
104
+ f" '{filepath.as_posix()}' --Application.log_level=40",
102
105
  shell=True,
103
106
  check=True,
104
107
  )
@@ -118,7 +121,7 @@ def save_run_context_core(
118
121
  # first, copy the notebook file to a temporary file in the cache
119
122
  source_code_path = ln_setup.settings.storage.cache_dir / filepath.name
120
123
  shutil.copy2(filepath, source_code_path) # copy
121
- subprocess.run(f"nbstripout {source_code_path}", shell=True, check=True)
124
+ subprocess.run(f"nbstripout '{source_code_path}'", shell=True, check=True)
122
125
  # find initial versions of source codes and html reports
123
126
  prev_report = None
124
127
  prev_source = None
@@ -139,9 +142,8 @@ def save_run_context_core(
139
142
  if os.getenv("LAMIN_TESTING") is None:
140
143
  # in test, auto-confirm overwrite
141
144
  response = input(
142
- "You try to save a new notebook source code with the same version"
143
- f" '{transform.version}'; do you want to replace the content of the"
144
- f" existing source code {transform.source_code}? (y/n)"
145
+ f"You are about to overwrite existing source code (hash {transform.source_code.hash}) for transform version"
146
+ f" '{transform.version}'. Proceed? (y/n)"
145
147
  )
146
148
  else:
147
149
  response = "y"
@@ -149,10 +151,7 @@ def save_run_context_core(
149
151
  transform.source_code.replace(source_code_path)
150
152
  transform.source_code.save()
151
153
  else:
152
- logger.warning(
153
- "Please create a new version of the notebook via `lamin track"
154
- " <filepath>` and re-run the notebook"
155
- )
154
+ logger.warning("Please re-run `ln.track()` to make a new version")
156
155
  return "rerun-the-notebook"
157
156
  else:
158
157
  source_code = ln.Artifact(
@@ -207,8 +206,11 @@ def save_run_context_core(
207
206
  transform.save()
208
207
  if transform.type == TransformType.notebook:
209
208
  logger.success(f"saved transform.latest_report: {transform.latest_report}")
210
- identifier = ln_setup.settings.instance.slug
211
- logger.success(f"go to: https://lamin.ai/{identifier}/transform/{transform.uid}")
209
+ if ln_setup.settings.instance.is_remote:
210
+ identifier = ln_setup.settings.instance.slug
211
+ logger.success(
212
+ f"go to: https://lamin.ai/{identifier}/transform/{transform.uid}"
213
+ )
212
214
  # because run & transform changed, update the global run_context
213
215
  run_context.run = run
214
216
  run_context.transform = transform
@@ -21,6 +21,7 @@ def get_or_create_records(
21
21
  from_public: bool = False,
22
22
  organism: Registry | str | None = None,
23
23
  public_source: Registry | None = None,
24
+ mute: bool = False,
24
25
  ) -> list[Registry]:
25
26
  """Get or create records from iterables."""
26
27
  upon_create_search_names = settings.upon_create_search_names
@@ -38,14 +39,18 @@ def get_or_create_records(
38
39
 
39
40
  # returns existing records & non-existing values
40
41
  records, nonexist_values, msg = get_existing_records(
41
- iterable_idx=iterable_idx, field=field, **kwargs
42
+ iterable_idx=iterable_idx, field=field, mute=mute, **kwargs
42
43
  )
43
44
 
44
45
  # new records to be created based on new values
45
46
  if len(nonexist_values) > 0:
46
47
  if from_public:
47
48
  records_bionty, unmapped_values = create_records_from_public(
48
- iterable_idx=nonexist_values, field=field, msg=msg, **kwargs
49
+ iterable_idx=nonexist_values,
50
+ field=field,
51
+ msg=msg,
52
+ mute=mute,
53
+ **kwargs,
49
54
  )
50
55
  if len(records_bionty) > 0:
51
56
  msg = ""
@@ -56,16 +61,17 @@ def get_or_create_records(
56
61
  unmapped_values = nonexist_values
57
62
  # unmapped new_ids will NOT create records
58
63
  if len(unmapped_values) > 0:
59
- if len(msg) > 0:
64
+ if len(msg) > 0 and not mute:
60
65
  logger.success(msg)
61
66
  s = "" if len(unmapped_values) == 1 else "s"
62
67
  print_values = colors.yellow(_print_values(unmapped_values))
63
68
  name = Registry.__name__
64
69
  n_nonval = colors.yellow(f"{len(unmapped_values)} non-validated")
65
- logger.warning(
66
- f"{colors.red('did not create')} {name} record{s} for "
67
- f"{n_nonval} {colors.italic(f'{field.field.name}{s}')}: {print_values}"
68
- )
70
+ if not mute:
71
+ logger.warning(
72
+ f"{colors.red('did not create')} {name} record{s} for "
73
+ f"{n_nonval} {colors.italic(f'{field.field.name}{s}')}: {print_values}"
74
+ )
69
75
  if Registry.__module__.startswith("lnschema_bionty.") or Registry == ULabel:
70
76
  if isinstance(iterable, pd.Series):
71
77
  feature = iterable.name
@@ -85,6 +91,7 @@ def get_or_create_records(
85
91
  def get_existing_records(
86
92
  iterable_idx: pd.Index,
87
93
  field: StrField,
94
+ mute: bool = False,
88
95
  **kwargs,
89
96
  ):
90
97
  model = field.field.model
@@ -96,7 +103,11 @@ def get_existing_records(
96
103
  # standardize based on the DB reference
97
104
  # log synonyms mapped terms
98
105
  result = model.inspect(
99
- iterable_idx, field=field, organism=kwargs.get("organism"), mute=True
106
+ iterable_idx,
107
+ field=field,
108
+ organism=kwargs.get("organism"),
109
+ public_source=kwargs.get("public_source"),
110
+ mute=True,
100
111
  )
101
112
  syn_mapper = result.synonyms_mapper
102
113
 
@@ -146,9 +157,10 @@ def get_existing_records(
146
157
  # no logging if all values are validated
147
158
  # logs if there are synonyms
148
159
  if len(syn_msg) > 0:
149
- if len(msg) > 0:
160
+ if len(msg) > 0 and not mute:
150
161
  logger.success(msg)
151
- logger.success(syn_msg)
162
+ if not mute:
163
+ logger.success(syn_msg)
152
164
  msg = ""
153
165
 
154
166
  existing_values = iterable_idx.intersection(
@@ -163,6 +175,7 @@ def create_records_from_public(
163
175
  iterable_idx: pd.Index,
164
176
  field: StrField,
165
177
  msg: str = "",
178
+ mute: bool = False,
166
179
  **kwargs,
167
180
  ):
168
181
  model = field.field.model
@@ -219,19 +232,20 @@ def create_records_from_public(
219
232
  s = "" if len(validated) == 1 else "s"
220
233
  print_values = colors.purple(_print_values(validated))
221
234
  # this is the success msg for existing records in the DB
222
- if len(msg) > 0:
235
+ if len(msg) > 0 and not mute:
223
236
  logger.success(msg)
224
- logger.success(
225
- "created"
226
- f" {colors.purple(f'{len(validated)} {model.__name__} record{s} from Bionty')}"
227
- f" matching {colors.italic(f'{field.field.name}')}: {print_values}"
228
- )
237
+ if not mute:
238
+ logger.success(
239
+ "created"
240
+ f" {colors.purple(f'{len(validated)} {model.__name__} record{s} from Bionty')}"
241
+ f" matching {colors.italic(f'{field.field.name}')}: {print_values}"
242
+ )
229
243
 
230
244
  # make sure that synonyms logging appears after the field logging
231
- if len(msg_syn) > 0:
245
+ if len(msg_syn) > 0 and not mute:
232
246
  logger.success(msg_syn)
233
247
  # warning about multi matches
234
- if len(multi_msg) > 0:
248
+ if len(multi_msg) > 0 and not mute:
235
249
  logger.warning(multi_msg)
236
250
 
237
251
  # return the values that are not found in the bionty reference
@@ -134,6 +134,7 @@ def from_values(
134
134
  field: StrField | None = None,
135
135
  organism: Registry | str | None = None,
136
136
  public_source: Registry | None = None,
137
+ mute: bool = False,
137
138
  ) -> list[Registry]:
138
139
  """{}."""
139
140
  from_public = True if cls.__module__.startswith("lnschema_bionty.") else False
@@ -144,6 +145,7 @@ def from_values(
144
145
  from_public=from_public,
145
146
  organism=organism,
146
147
  public_source=public_source,
148
+ mute=mute,
147
149
  )
148
150
 
149
151
 
@@ -16,11 +16,11 @@ from lamindb_setup.core.upath import UPath, print_hook
16
16
  from lnschema_core.models import Artifact, Registry
17
17
 
18
18
  from lamindb.core._settings import settings
19
- from lamindb.core.storage.file import (
19
+ from lamindb.core.storage.paths import (
20
20
  attempt_accessing_path,
21
21
  auto_storage_key_from_artifact,
22
22
  delete_storage_using_key,
23
- store_artifact,
23
+ store_file_or_folder,
24
24
  )
25
25
 
26
26
  try:
@@ -286,7 +286,7 @@ def upload_artifact(
286
286
  )
287
287
  msg = f"storing artifact '{artifact.uid}' at '{storage_path}'"
288
288
  if (
289
- artifact.suffix in {".zarr", ".zrad"}
289
+ artifact.suffix == ".zarr"
290
290
  and hasattr(artifact, "_memory_rep")
291
291
  and artifact._memory_rep is not None
292
292
  ):
@@ -295,6 +295,5 @@ def upload_artifact(
295
295
  write_adata_zarr(artifact._memory_rep, storage_path, callback=print_progress)
296
296
  elif hasattr(artifact, "_to_store") and artifact._to_store:
297
297
  logger.save(msg)
298
- store_artifact(artifact._local_filepath, storage_path)
299
-
298
+ store_file_or_folder(artifact._local_filepath, storage_path)
300
299
  return storage_path