lamindb 0.70.4__tar.gz → 0.71.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. {lamindb-0.70.4 → lamindb-0.71.1}/.gitignore +2 -0
  2. {lamindb-0.70.4 → lamindb-0.71.1}/PKG-INFO +7 -10
  3. {lamindb-0.70.4 → lamindb-0.71.1}/docs/changelog.md +21 -2
  4. {lamindb-0.70.4 → lamindb-0.71.1}/docs/data.ipynb +5 -38
  5. lamindb-0.71.1/docs/faq/keep-artifacts-local.ipynb +522 -0
  6. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq.md +1 -0
  7. {lamindb-0.70.4 → lamindb-0.71.1}/docs/introduction.ipynb +10 -15
  8. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/add-replace-stage.ipynb +3 -4
  9. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/upload.ipynb +2 -1
  10. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/vitessce.ipynb +2 -1
  11. {lamindb-0.70.4 → lamindb-0.71.1}/docs/transfer.ipynb +24 -30
  12. {lamindb-0.70.4 → lamindb-0.71.1}/docs/tutorial.ipynb +149 -72
  13. {lamindb-0.70.4 → lamindb-0.71.1}/docs/tutorial2.ipynb +226 -110
  14. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/__init__.py +2 -1
  15. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_artifact.py +56 -47
  16. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_finish.py +54 -38
  17. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_query_set.py +1 -21
  18. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_registry.py +3 -2
  19. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_save.py +7 -20
  20. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/__init__.py +0 -2
  21. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_data.py +1 -1
  22. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_feature_manager.py +6 -5
  23. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_run_context.py +44 -71
  24. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_settings.py +21 -10
  25. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_sync_git.py +6 -2
  26. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/datasets/_core.py +2 -2
  27. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/__init__.py +2 -2
  28. lamindb-0.71.1/lamindb/core/storage/_valid_suffixes.py +5 -0
  29. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/objects.py +10 -3
  30. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/paths.py +8 -5
  31. {lamindb-0.70.4 → lamindb-0.71.1}/noxfile.py +42 -38
  32. {lamindb-0.70.4 → lamindb-0.71.1}/pyproject.toml +6 -9
  33. lamindb-0.71.1/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  34. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/lamin_cli/_get.py +3 -1
  35. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/lamin_cli/_save.py +38 -1
  36. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/conftest.py +5 -4
  37. lamindb-0.71.1/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +193 -0
  38. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -1
  39. lamindb-0.71.1/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +4 -0
  40. lamindb-0.70.4/sub/lamin-cli/tests/scripts/initialized.py → lamindb-0.71.1/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -2
  41. lamindb-0.70.4/sub/lamin-cli/tests/scripts/initialized-no-git-sync.py → lamindb-0.71.1/sub/lamin-cli/tests/scripts/run-track-and-finish.py +6 -1
  42. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_multi_process.py +1 -1
  43. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_save_notebooks.py +26 -20
  44. lamindb-0.71.1/sub/lamin-cli/tests/test_save_scripts.py +103 -0
  45. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/.github/workflows/build.yml +29 -27
  46. lamindb-0.71.1/sub/lamindb-setup/.pre-commit-config.yaml +52 -0
  47. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/changelog.md +19 -0
  48. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +1 -1
  49. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +1 -1
  50. lamindb-0.71.1/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +425 -0
  51. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +5 -3
  52. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +2 -0
  53. lamindb-0.71.1/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +216 -0
  54. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +1 -0
  55. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +1 -1
  56. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +1 -1
  57. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +1 -0
  58. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/notebooks.md +1 -1
  59. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/__init__.py +15 -15
  60. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_cache.py +4 -1
  61. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_check.py +3 -0
  62. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_check_setup.py +13 -7
  63. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_close.py +2 -0
  64. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +51 -30
  65. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_delete.py +72 -40
  66. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_django.py +4 -1
  67. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_exportdb.py +4 -2
  68. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_importdb.py +5 -1
  69. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +62 -46
  70. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +16 -13
  71. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +10 -3
  72. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_schema.py +6 -3
  73. lamindb-0.71.1/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +37 -0
  74. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +7 -7
  75. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +4 -2
  76. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/__init__.py +4 -3
  77. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +3 -0
  78. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +2 -7
  79. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_docs.py +2 -0
  80. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +12 -10
  81. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +204 -89
  82. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +21 -12
  83. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +11 -8
  84. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings.py +23 -26
  85. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +149 -80
  86. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +13 -7
  87. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +13 -8
  88. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +76 -42
  89. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +4 -2
  90. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +10 -6
  91. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +9 -2
  92. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +13 -10
  93. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/django.py +7 -2
  94. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +4 -2
  95. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/hashing.py +15 -5
  96. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/types.py +5 -2
  97. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/lamindb_setup/core/upath.py +194 -90
  98. lamindb-0.71.1/sub/lamindb-setup/noxfile.py +106 -0
  99. lamindb-0.71.1/sub/lamindb-setup/pyproject.toml +145 -0
  100. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +17 -18
  101. lamindb-0.71.1/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +10 -0
  102. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +12 -29
  103. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-cloud/test_login.py +2 -0
  104. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +2 -1
  105. lamindb-0.71.1/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +15 -0
  106. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-local/conftest.py +3 -3
  107. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-local/test_all.py +23 -21
  108. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-prod/conftest.py +9 -2
  109. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +2 -0
  110. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-prod/test_django.py +2 -1
  111. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +4 -1
  112. lamindb-0.71.1/sub/lamindb-setup/tests/hub-prod/test_upath.py +39 -0
  113. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/storage/test_hashing.py +16 -2
  114. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/storage/test_storage_access.py +5 -2
  115. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/storage/test_storage_basis.py +5 -1
  116. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/tests/storage/test_storage_stats.py +3 -1
  117. lamindb-0.71.1/sub/lamindb-setup/tests/storage/test_to_url.py +31 -0
  118. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/CHANGELOG.md +3 -0
  119. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  120. lamindb-0.71.1/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +40 -0
  121. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/models.py +122 -85
  122. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/types.py +1 -0
  123. lamindb-0.71.1/sub/lnschema-core/lnschema_core/users.py +27 -0
  124. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/pyproject.toml +1 -1
  125. {lamindb-0.70.4 → lamindb-0.71.1}/tests/conftest.py +7 -1
  126. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_artifact.py +27 -4
  127. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_cache.py +4 -7
  128. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_feature_manager.py +2 -2
  129. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_run_context.py +6 -5
  130. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_settings.py +5 -4
  131. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_storage.py +3 -3
  132. lamindb-0.70.4/lamindb/core/_view_tree.py +0 -116
  133. lamindb-0.70.4/lamindb/core/storage/_valid_suffixes.py +0 -3
  134. lamindb-0.70.4/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  135. lamindb-0.70.4/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -218
  136. lamindb-0.70.4/sub/lamin-cli/tests/test_save_scripts.py +0 -57
  137. lamindb-0.70.4/sub/lamindb-setup/.pre-commit-config.yaml +0 -72
  138. lamindb-0.70.4/sub/lamindb-setup/docs/hub-cloud/03-set-storage.ipynb +0 -280
  139. lamindb-0.70.4/sub/lamindb-setup/docs/hub-cloud/07-connect-hybrid-instance.ipynb +0 -86
  140. lamindb-0.70.4/sub/lamindb-setup/lamindb_setup/_add_remote_storage.py +0 -50
  141. lamindb-0.70.4/sub/lamindb-setup/noxfile.py +0 -119
  142. lamindb-0.70.4/sub/lamindb-setup/pyproject.toml +0 -50
  143. lamindb-0.70.4/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -12
  144. lamindb-0.70.4/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -9
  145. lamindb-0.70.4/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -18
  146. lamindb-0.70.4/sub/lnschema-core/lnschema_core/users.py +0 -20
  147. {lamindb-0.70.4 → lamindb-0.71.1}/.github/workflows/build.yml +0 -0
  148. {lamindb-0.70.4 → lamindb-0.71.1}/.github/workflows/latest-changes.jinja2 +0 -0
  149. {lamindb-0.70.4 → lamindb-0.71.1}/.github/workflows/latest-changes.yml +0 -0
  150. {lamindb-0.70.4 → lamindb-0.71.1}/.gitmodules +0 -0
  151. {lamindb-0.70.4 → lamindb-0.71.1}/.pre-commit-config.yaml +0 -0
  152. {lamindb-0.70.4 → lamindb-0.71.1}/LICENSE +0 -0
  153. {lamindb-0.70.4 → lamindb-0.71.1}/README.md +0 -0
  154. {lamindb-0.70.4 → lamindb-0.71.1}/docs/annotate-for-developers.ipynb +0 -0
  155. {lamindb-0.70.4 → lamindb-0.71.1}/docs/annotate.ipynb +0 -0
  156. {lamindb-0.70.4 → lamindb-0.71.1}/docs/bio-registries.ipynb +0 -0
  157. {lamindb-0.70.4 → lamindb-0.71.1}/docs/bionty-base.md +0 -0
  158. {lamindb-0.70.4 → lamindb-0.71.1}/docs/bionty.md +0 -0
  159. {lamindb-0.70.4 → lamindb-0.71.1}/docs/can-validate.ipynb +0 -0
  160. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/acid.ipynb +0 -0
  161. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/delete.ipynb +0 -0
  162. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/idempotency.ipynb +0 -0
  163. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/import-schema.ipynb +0 -0
  164. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/key.ipynb +0 -0
  165. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/reference-field.ipynb +0 -0
  166. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/setup.ipynb +0 -0
  167. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/test_notebooks.py +0 -0
  168. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/track-run-inputs.ipynb +0 -0
  169. {lamindb-0.70.4 → lamindb-0.71.1}/docs/faq/visibility.ipynb +0 -0
  170. {lamindb-0.70.4 → lamindb-0.71.1}/docs/features-lamindb.md +0 -0
  171. {lamindb-0.70.4 → lamindb-0.71.1}/docs/features-laminhub.md +0 -0
  172. {lamindb-0.70.4 → lamindb-0.71.1}/docs/guide.md +0 -0
  173. {lamindb-0.70.4 → lamindb-0.71.1}/docs/index.md +0 -0
  174. {lamindb-0.70.4 → lamindb-0.71.1}/docs/installation.md +0 -0
  175. {lamindb-0.70.4 → lamindb-0.71.1}/docs/lamin-utils.md +0 -0
  176. {lamindb-0.70.4 → lamindb-0.71.1}/docs/lamindb.md +0 -0
  177. {lamindb-0.70.4 → lamindb-0.71.1}/docs/meta.ipynb +0 -0
  178. {lamindb-0.70.4 → lamindb-0.71.1}/docs/nbproject.md +0 -0
  179. {lamindb-0.70.4 → lamindb-0.71.1}/docs/query-search.md +0 -0
  180. {lamindb-0.70.4 → lamindb-0.71.1}/docs/readfcs.md +0 -0
  181. {lamindb-0.70.4 → lamindb-0.71.1}/docs/reference.md +0 -0
  182. {lamindb-0.70.4 → lamindb-0.71.1}/docs/schemas.ipynb +0 -0
  183. {lamindb-0.70.4 → lamindb-0.71.1}/docs/setup.ipynb +0 -0
  184. {lamindb-0.70.4 → lamindb-0.71.1}/docs/signup-login.md +0 -0
  185. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/anndata-accessor.ipynb +0 -0
  186. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  187. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/test-files/iris.csv +0 -0
  188. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/test-files/iris.data +0 -0
  189. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/test-files/new_iris.csv +0 -0
  190. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/test_notebooks.py +0 -0
  191. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  192. {lamindb-0.70.4 → lamindb-0.71.1}/docs/storage.md +0 -0
  193. {lamindb-0.70.4 → lamindb-0.71.1}/docs/test_notebooks.py +0 -0
  194. {lamindb-0.70.4 → lamindb-0.71.1}/docs/track.ipynb +0 -0
  195. {lamindb-0.70.4 → lamindb-0.71.1}/docs/wetlab.md +0 -0
  196. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_annotate.py +0 -0
  197. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_can_validate.py +0 -0
  198. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_collection.py +0 -0
  199. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_feature.py +0 -0
  200. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_feature_set.py +0 -0
  201. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_filter.py +0 -0
  202. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_from_values.py +0 -0
  203. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_is_versioned.py +0 -0
  204. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_parents.py +0 -0
  205. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_query_manager.py +0 -0
  206. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_run.py +0 -0
  207. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_storage.py +0 -0
  208. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_transform.py +0 -0
  209. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_ulabel.py +0 -0
  210. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_utils.py +0 -0
  211. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/_view.py +0 -0
  212. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_label_manager.py +0 -0
  213. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_mapped_collection.py +0 -0
  214. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_track_environment.py +0 -0
  215. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/_transform_settings.py +0 -0
  216. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/datasets/__init__.py +0 -0
  217. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/datasets/_fake.py +0 -0
  218. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/exceptions.py +0 -0
  219. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/fields.py +0 -0
  220. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/_anndata_sizes.py +0 -0
  221. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/_backed_access.py +0 -0
  222. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/storage/_zarr.py +0 -0
  223. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/types.py +0 -0
  224. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/core/versioning.py +0 -0
  225. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/integrations/__init__.py +0 -0
  226. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/integrations/_vitessce.py +0 -0
  227. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/setup/__init__.py +0 -0
  228. {lamindb-0.70.4 → lamindb-0.71.1}/lamindb/setup/core/__init__.py +0 -0
  229. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/.github/workflows/build.yml +0 -0
  230. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
  231. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
  232. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/.gitignore +0 -0
  233. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/.pre-commit-config.yaml +0 -0
  234. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/LICENSE +0 -0
  235. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/README.md +0 -0
  236. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/bionty/__init__.py +0 -0
  237. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/bionty/core/__init__.py +0 -0
  238. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/docs/changelog.md +0 -0
  239. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/docs/index.md +0 -0
  240. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/docs/reference.md +0 -0
  241. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/lamin-project.yaml +0 -0
  242. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/noxfile.py +0 -0
  243. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/pyproject.toml +0 -0
  244. {lamindb-0.70.4 → lamindb-0.71.1}/sub/bionty/tests/test_notebooks.py +0 -0
  245. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/.gitignore +0 -0
  246. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  247. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/README.md +0 -0
  248. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
  249. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  250. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  251. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/pyproject.toml +0 -0
  252. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  253. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_cli.py +0 -0
  254. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_get.py +0 -0
  255. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_migrate.py +0 -0
  256. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamin-cli/tests/test_save_files.py +0 -0
  257. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  258. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  259. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/.gitignore +0 -0
  260. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/LICENSE +0 -0
  261. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/README.md +0 -0
  262. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  263. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  264. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  265. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  266. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  267. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  268. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  269. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  270. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/index.md +0 -0
  271. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lamindb-setup/docs/reference.md +0 -0
  272. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
  273. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
  274. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
  275. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/.gitignore +0 -0
  276. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
  277. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/LICENSE +0 -0
  278. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/README.md +0 -0
  279. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/docs/changelog.md +0 -0
  280. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/docs/index.md +0 -0
  281. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/docs/reference.md +0 -0
  282. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lamin-project.yaml +0 -0
  283. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/__init__.py +0 -0
  284. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -0
  285. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +0 -0
  286. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +0 -0
  287. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +0 -0
  288. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
  289. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
  290. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
  291. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
  292. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
  293. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
  294. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
  295. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
  296. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
  297. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
  298. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
  299. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
  300. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
  301. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
  302. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
  303. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
  304. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
  305. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
  306. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
  307. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
  308. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
  309. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
  310. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
  311. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
  312. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  313. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
  314. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/lnschema_bionty/models.py +0 -0
  315. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/noxfile.py +0 -0
  316. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/pyproject.toml +0 -0
  317. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
  318. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  319. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  320. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  321. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/.gitignore +0 -0
  322. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  323. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/LICENSE +0 -0
  324. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/README.md +0 -0
  325. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  326. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  327. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
  328. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  329. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  330. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  331. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  332. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  333. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  334. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  335. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  336. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
  337. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
  338. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
  339. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
  340. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
  341. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
  342. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
  343. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
  344. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
  345. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
  346. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
  347. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
  348. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
  349. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
  350. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
  351. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
  352. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
  353. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
  354. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
  355. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
  356. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
  357. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
  358. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
  359. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
  360. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
  361. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
  362. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
  363. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  364. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  365. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  366. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  367. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  368. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  369. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  370. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  371. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  372. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  373. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  374. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/noxfile.py +0 -0
  375. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
  376. {lamindb-0.70.4 → lamindb-0.71.1}/sub/lnschema-core/tests/test_types.py +0 -0
  377. {lamindb-0.70.4 → lamindb-0.71.1}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
  378. {lamindb-0.70.4 → lamindb-0.71.1}/tests/notebooks/no-title.ipynb +0 -0
  379. {lamindb-0.70.4 → lamindb-0.71.1}/tests/notebooks/not-initialized.ipynb +0 -0
  380. {lamindb-0.70.4 → lamindb-0.71.1}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  381. {lamindb-0.70.4 → lamindb-0.71.1}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  382. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_annotate.py +0 -0
  383. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_artifact_folders.py +0 -0
  384. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_can_validate.py +0 -0
  385. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_collection.py +0 -0
  386. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_data.py +0 -0
  387. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_db.py +0 -0
  388. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_delete.py +0 -0
  389. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_feature.py +0 -0
  390. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_feature_set.py +0 -0
  391. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_from_values.py +0 -0
  392. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_label_manager.py +0 -0
  393. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_load.py +0 -0
  394. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_manager.py +0 -0
  395. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_notebooks.py +0 -0
  396. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_parents.py +0 -0
  397. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_queryset.py +0 -0
  398. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_registry.py +0 -0
  399. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_run.py +0 -0
  400. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_save.py +0 -0
  401. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_transfer.py +0 -0
  402. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_transform.py +0 -0
  403. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_uid.py +0 -0
  404. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_ulabel.py +0 -0
  405. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_versioning.py +0 -0
  406. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_view.py +0 -0
  407. {lamindb-0.70.4 → lamindb-0.71.1}/tests/test_visibility.py +0 -0
@@ -1,4 +1,5 @@
1
1
  # LaminDB
2
+ docsbuild/
2
3
  docs/lamin.md
3
4
  docs/guide/data-validation.ipynb
4
5
  docs/guide/knowledge.ipynb
@@ -58,6 +59,7 @@ test-search2
58
59
  test-search3
59
60
  test-search4
60
61
  test-search5
62
+
61
63
  # General
62
64
  .DS_Store
63
65
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.70.4
3
+ Version: 0.71.1
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -9,10 +9,10 @@ Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: lnschema_core==0.65.2
13
- Requires-Dist: lamindb_setup==0.70.0
12
+ Requires-Dist: lnschema_core==0.66.3
13
+ Requires-Dist: lamindb_setup==0.71.3
14
14
  Requires-Dist: lamin_utils==0.13.2
15
- Requires-Dist: lamin_cli==0.12.3
15
+ Requires-Dist: lamin_cli==0.13.1
16
16
  Requires-Dist: rapidfuzz
17
17
  Requires-Dist: pyarrow
18
18
  Requires-Dist: typing_extensions!=4.6.0
@@ -23,10 +23,7 @@ Requires-Dist: fsspec
23
23
  Requires-Dist: pandas
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
26
- Requires-Dist: urllib3<2 ; extra == "aws"
27
- Requires-Dist: aiobotocore[boto3]>=2.5.4,<3.0.0 ; extra == "aws"
28
- Requires-Dist: s3fs==2023.12.2 ; extra == "aws"
29
- Requires-Dist: fsspec[s3]==2023.12.2 ; extra == "aws"
26
+ Requires-Dist: lamindb_setup[aws] ; extra == "aws"
30
27
  Requires-Dist: bionty==0.42.9 ; extra == "bionty"
31
28
  Requires-Dist: pandas<2 ; extra == "dev"
32
29
  Requires-Dist: pre-commit ; extra == "dev"
@@ -39,8 +36,8 @@ Requires-Dist: nbproject_test>=0.5.1 ; extra == "dev"
39
36
  Requires-Dist: faker-biology ; extra == "dev"
40
37
  Requires-Dist: django-schema-graph ; extra == "erdiagram"
41
38
  Requires-Dist: readfcs>=1.1.8 ; extra == "fcs"
42
- Requires-Dist: fsspec[gs]==2023.12.2 ; extra == "gcp"
43
- Requires-Dist: nbproject==0.10.0 ; extra == "jupyter"
39
+ Requires-Dist: lamindb_setup[gcp] ; extra == "gcp"
40
+ Requires-Dist: nbproject==0.10.2 ; extra == "jupyter"
44
41
  Requires-Dist: nbstripout==0.6.1 ; extra == "jupyter"
45
42
  Requires-Dist: nbconvert ; extra == "jupyter"
46
43
  Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
@@ -2,9 +2,9 @@
2
2
 
3
3
  :::{note}
4
4
 
5
- LaminDB implements "migration-based versioning".
5
+ If using LaminHub, please use the latest version of lamindb.
6
6
 
7
- When upgrading your LaminDB installation to a new `minor` version in `major.minor.patch`, you also migrate your database by calling `lamin migrate deploy`.
7
+ LaminDB implements "migration-based versioning". When upgrading your LaminDB installation to a new `minor` version in `major.minor.patch`, you also migrate your database by calling `lamin migrate deploy`.
8
8
 
9
9
  :::
10
10
 
@@ -12,6 +12,25 @@ When upgrading your LaminDB installation to a new `minor` version in `major.mino
12
12
  .. role:: small
13
13
  ```
14
14
 
15
+ ## 0.71
16
+
17
+ ### 0.71.1 {small}`2024-05-07`
18
+
19
+ - 🚸 Upload source code of scripts upon `ln.finish()` and no longer upon `ln.track()` [PR](https://github.com/laminlabs/lamindb/pull/1624) [@falexwolf](https://github.com/falexwolf)
20
+ - 🎨 Make `features.add_feature_set` public [PR](https://github.com/laminlabs/lamindb/pull/1626) [@sunnyosun](https://github.com/sunnyosun)
21
+ - 🎨 Use the same `uid` for the same feature set in transfer [PR](https://github.com/laminlabs/lamindb/pull/1621) [@sunnyosun](https://github.com/sunnyosun)
22
+ - 🎨 Upon upload switch to virtual key [PR](https://github.com/laminlabs/lamindb/pull/1622) [@falexwolf](https://github.com/falexwolf)
23
+ - ⚡️ Zarr and cache improvements [PR](https://github.com/laminlabs/lamindb/pull/1620) [@Koncopd](https://github.com/Koncopd)
24
+ - ♻️ Extend valid suffixes to composite suffixes [PR](https://github.com/laminlabs/lamindb/pull/1619) [@falexwolf](https://github.com/falexwolf)
25
+ - 🔥 Remove little-used `artifact.view_tree()` [PR](https://github.com/laminlabs/lamindb/pull/1627) [@falexwolf](https://github.com/falexwolf)
26
+
27
+ ### 0.71.0 {small}`2024-05-01`
28
+
29
+ - ✨ Manage multiple storage locations with integrity [PR](https://github.com/laminlabs/lamindb/pull/1611) [@falexwolf](https://github.com/falexwolf)
30
+ - 🚚 Add an `instance_uid` field to `Storage` | [374](https://github.com/laminlabs/lnschema-core/pull/374) [falexwolf](https://github.com/falexwolf)
31
+ - 🚸 Proper progress bars for upload and download [PR](https://github.com/laminlabs/lamindb/pull/1610) [@Koncopd](https://github.com/Koncopd)
32
+ - 🚸 Make save return self [PR](https://github.com/laminlabs/lamindb/pull/1606) [@falexwolf](https://github.com/falexwolf)
33
+
15
34
  ## 0.70
16
35
 
17
36
  ### 0.70.4 {small}`2024-04-24`
@@ -43,42 +43,19 @@
43
43
  "In this notebook, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud."
44
44
  ]
45
45
  },
46
- {
47
- "cell_type": "markdown",
48
- "metadata": {},
49
- "source": [
50
- "## Setup"
51
- ]
52
- },
53
46
  {
54
47
  "cell_type": "code",
55
48
  "execution_count": null,
56
49
  "metadata": {
57
50
  "tags": [
58
- "hide-output"
51
+ "hide-output",
52
+ "hide-cell"
59
53
  ]
60
54
  },
61
55
  "outputs": [],
62
56
  "source": [
63
- "!lamin init --storage s3://lamindb-ci/test-data --name test-data"
64
- ]
65
- },
66
- {
67
- "cell_type": "code",
68
- "execution_count": null,
69
- "metadata": {},
70
- "outputs": [],
71
- "source": [
72
- "!lamin info"
73
- ]
74
- },
75
- {
76
- "cell_type": "code",
77
- "execution_count": null,
78
- "metadata": {},
79
- "outputs": [],
80
- "source": [
81
- "!lamin set --auto-connect True"
57
+ "!lamin login testuser1\n",
58
+ "!lamin init --storage s3://lamindb-ci/test-array-notebook --name test-array-notebook"
82
59
  ]
83
60
  },
84
61
  {
@@ -90,15 +67,6 @@
90
67
  "import lamindb as ln"
91
68
  ]
92
69
  },
93
- {
94
- "cell_type": "code",
95
- "execution_count": null,
96
- "metadata": {},
97
- "outputs": [],
98
- "source": [
99
- "ln.connect(\"test-data\")"
100
- ]
101
- },
102
70
  {
103
71
  "cell_type": "code",
104
72
  "execution_count": null,
@@ -337,8 +305,7 @@
337
305
  "outputs": [],
338
306
  "source": [
339
307
  "# clean up test instance\n",
340
- "!lamin delete --force test-data\n",
341
- "!rm -r test-data"
308
+ "!lamin delete --force test-array-notebook"
342
309
  ]
343
310
  }
344
311
  ],
@@ -0,0 +1,522 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Keep artifacts local in a cloud instance"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "markdown",
12
+ "metadata": {},
13
+ "source": [
14
+ "If you want to default to keeping artifacts local in a cloud instance, enable {attr}`~lamindb.setup.core.InstanceSettings.keep_artifacts_local`."
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "code",
19
+ "execution_count": null,
20
+ "metadata": {
21
+ "tags": [
22
+ "hide-cell"
23
+ ]
24
+ },
25
+ "outputs": [],
26
+ "source": [
27
+ "!lamin login testuser1\n",
28
+ "!lamin init --storage s3://lamindb-ci/keep-artifacts-local"
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "code",
33
+ "execution_count": null,
34
+ "metadata": {},
35
+ "outputs": [],
36
+ "source": [
37
+ "import lamindb as ln\n",
38
+ "\n",
39
+ "ln.settings.transform.stem_uid = \"l9lFf83aPwRc\"\n",
40
+ "ln.settings.transform.version = \"1\"\n",
41
+ "ln.track()"
42
+ ]
43
+ },
44
+ {
45
+ "cell_type": "code",
46
+ "execution_count": null,
47
+ "metadata": {
48
+ "tags": [
49
+ "hide-cell"
50
+ ]
51
+ },
52
+ "outputs": [],
53
+ "source": [
54
+ "# the setting should be enabled on lamin.ai\n",
55
+ "# we're temporarily setting it here only for testing purposes\n",
56
+ "ln.setup.settings.instance._keep_artifacts_local = True"
57
+ ]
58
+ },
59
+ {
60
+ "cell_type": "markdown",
61
+ "metadata": {},
62
+ "source": [
63
+ "You can register a managed local storage location as follows:"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "metadata": {},
70
+ "outputs": [],
71
+ "source": [
72
+ "ln.settings.storage_local = \"./my_storage_local\""
73
+ ]
74
+ },
75
+ {
76
+ "cell_type": "markdown",
77
+ "metadata": {},
78
+ "source": [
79
+ "Now, you have two storage locations: one in the S3 bucket, and the other locally."
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": null,
85
+ "metadata": {
86
+ "tags": [
87
+ "hide-output"
88
+ ]
89
+ },
90
+ "outputs": [],
91
+ "source": [
92
+ "ln.Storage.df()"
93
+ ]
94
+ },
95
+ {
96
+ "cell_type": "markdown",
97
+ "metadata": {},
98
+ "source": [
99
+ "## Update storage description"
100
+ ]
101
+ },
102
+ {
103
+ "cell_type": "markdown",
104
+ "metadata": {},
105
+ "source": [
106
+ "You can add a description to the storage by using the description parameter:"
107
+ ]
108
+ },
109
+ {
110
+ "cell_type": "code",
111
+ "execution_count": null,
112
+ "metadata": {},
113
+ "outputs": [],
114
+ "source": [
115
+ "storage_record = ln.Storage.filter(root=ln.settings.storage_local).one()\n",
116
+ "storage_record.description = \"Files stored locally in site X on server Y for reason ABC\"\n",
117
+ "storage_record.save()\n",
118
+ "ln.Storage.df()"
119
+ ]
120
+ },
121
+ {
122
+ "cell_type": "markdown",
123
+ "metadata": {},
124
+ "source": [
125
+ "## Use local storage"
126
+ ]
127
+ },
128
+ {
129
+ "cell_type": "markdown",
130
+ "metadata": {},
131
+ "source": [
132
+ "If you save an artifact, by default, it's stored in local storage."
133
+ ]
134
+ },
135
+ {
136
+ "cell_type": "code",
137
+ "execution_count": null,
138
+ "metadata": {
139
+ "tags": [
140
+ "hide-output"
141
+ ]
142
+ },
143
+ "outputs": [],
144
+ "source": [
145
+ "original_filepath = ln.core.datasets.file_fcs()\n",
146
+ "artifact = ln.Artifact(original_filepath, description=\"My fcs file\").save()\n",
147
+ "local_path = artifact.path\n",
148
+ "local_path"
149
+ ]
150
+ },
151
+ {
152
+ "cell_type": "markdown",
153
+ "metadata": {},
154
+ "source": [
155
+ "You'll see the `.fcs` file named by the `uid` in your `.lamindb/` directory under `./my_storage_local/`:"
156
+ ]
157
+ },
158
+ {
159
+ "cell_type": "code",
160
+ "execution_count": null,
161
+ "metadata": {
162
+ "tags": [
163
+ "hide-output"
164
+ ]
165
+ },
166
+ "outputs": [],
167
+ "source": [
168
+ "ln.settings.storage_local.view_tree()"
169
+ ]
170
+ },
171
+ {
172
+ "cell_type": "code",
173
+ "execution_count": null,
174
+ "metadata": {
175
+ "tags": [
176
+ "hide-cell"
177
+ ]
178
+ },
179
+ "outputs": [],
180
+ "source": [
181
+ "assert local_path.exists()\n",
182
+ "assert artifact.path.as_posix().startswith(ln.setup.settings.instance.storage_local.root.as_posix())"
183
+ ]
184
+ },
185
+ {
186
+ "cell_type": "markdown",
187
+ "metadata": {},
188
+ "source": [
189
+ "If you'd like to upload an artifact, you pass `upload=True` to the `save()` method."
190
+ ]
191
+ },
192
+ {
193
+ "cell_type": "code",
194
+ "execution_count": null,
195
+ "metadata": {
196
+ "tags": [
197
+ "hide-output"
198
+ ]
199
+ },
200
+ "outputs": [],
201
+ "source": [
202
+ "artifact.save(upload=True)"
203
+ ]
204
+ },
205
+ {
206
+ "cell_type": "markdown",
207
+ "metadata": {},
208
+ "source": [
209
+ "You now see the artifact in the S3 bucket:"
210
+ ]
211
+ },
212
+ {
213
+ "cell_type": "code",
214
+ "execution_count": null,
215
+ "metadata": {
216
+ "tags": [
217
+ "hide-output"
218
+ ]
219
+ },
220
+ "outputs": [],
221
+ "source": [
222
+ "ln.setup.settings.storage.root.view_tree()"
223
+ ]
224
+ },
225
+ {
226
+ "cell_type": "markdown",
227
+ "metadata": {},
228
+ "source": [
229
+ "And it's no longer present in local storage:"
230
+ ]
231
+ },
232
+ {
233
+ "cell_type": "code",
234
+ "execution_count": null,
235
+ "metadata": {
236
+ "tags": [
237
+ "hide-output"
238
+ ]
239
+ },
240
+ "outputs": [],
241
+ "source": [
242
+ "ln.setup.settings.instance.storage_local.root.view_tree()"
243
+ ]
244
+ },
245
+ {
246
+ "cell_type": "code",
247
+ "execution_count": null,
248
+ "metadata": {
249
+ "tags": [
250
+ "hide-cell"
251
+ ]
252
+ },
253
+ "outputs": [],
254
+ "source": [
255
+ "assert artifact.path.exists()\n",
256
+ "assert not local_path.exists()\n",
257
+ "assert artifact.path.as_posix().startswith(ln.setup.settings.instance.storage.root.as_posix())"
258
+ ]
259
+ },
260
+ {
261
+ "cell_type": "markdown",
262
+ "metadata": {},
263
+ "source": [
264
+ "## Direct upload"
265
+ ]
266
+ },
267
+ {
268
+ "cell_type": "markdown",
269
+ "metadata": {},
270
+ "source": [
271
+ "You can also directly upload a file by passing `upload=True`:"
272
+ ]
273
+ },
274
+ {
275
+ "cell_type": "code",
276
+ "execution_count": null,
277
+ "metadata": {
278
+ "tags": [
279
+ "hide-output"
280
+ ]
281
+ },
282
+ "outputs": [],
283
+ "source": [
284
+ "filepath = ln.core.datasets.file_mini_csv()\n",
285
+ "artifact2 = ln.Artifact(filepath, description=\"My csv file\").save(upload=True)\n",
286
+ "artifact2.path"
287
+ ]
288
+ },
289
+ {
290
+ "cell_type": "markdown",
291
+ "metadata": {},
292
+ "source": [
293
+ "Now we have two files on S3:"
294
+ ]
295
+ },
296
+ {
297
+ "cell_type": "code",
298
+ "execution_count": null,
299
+ "metadata": {
300
+ "tags": [
301
+ "hide-output"
302
+ ]
303
+ },
304
+ "outputs": [],
305
+ "source": [
306
+ "ln.Artifact.df(include=\"storage__root\")"
307
+ ]
308
+ },
309
+ {
310
+ "cell_type": "code",
311
+ "execution_count": null,
312
+ "metadata": {
313
+ "tags": [
314
+ "hide-cell"
315
+ ]
316
+ },
317
+ "outputs": [],
318
+ "source": [
319
+ "assert artifact2.path.exists()"
320
+ ]
321
+ },
322
+ {
323
+ "cell_type": "markdown",
324
+ "metadata": {},
325
+ "source": [
326
+ "## Pre-existing artifacts"
327
+ ]
328
+ },
329
+ {
330
+ "cell_type": "markdown",
331
+ "metadata": {},
332
+ "source": [
333
+ "Assume we already have a file in our registered local storage location:"
334
+ ]
335
+ },
336
+ {
337
+ "cell_type": "code",
338
+ "execution_count": null,
339
+ "metadata": {
340
+ "tags": [
341
+ "hide-input"
342
+ ]
343
+ },
344
+ "outputs": [],
345
+ "source": [
346
+ "file_in_local_storage = ln.core.datasets.file_bam()\n",
347
+ "file_in_local_storage.rename(\"./my_storage_local/output.bam\")\n",
348
+ "ln.UPath(\"my_storage_local/\").view_tree()"
349
+ ]
350
+ },
351
+ {
352
+ "cell_type": "markdown",
353
+ "metadata": {},
354
+ "source": [
355
+ "If we create an artifact from it, it remains where it is during saving:"
356
+ ]
357
+ },
358
+ {
359
+ "cell_type": "code",
360
+ "execution_count": null,
361
+ "metadata": {
362
+ "tags": [
363
+ "hide-output"
364
+ ]
365
+ },
366
+ "outputs": [],
367
+ "source": [
368
+ "my_existing_file = ln.Artifact(\"./my_storage_local/output.bam\", description=\"my existing file\").save()\n",
369
+ "ln.UPath(\"my_storage_local/\").view_tree()"
370
+ ]
371
+ },
372
+ {
373
+ "cell_type": "markdown",
374
+ "metadata": {},
375
+ "source": [
376
+ "The storage path of the artifact is constructed using `key` because `key_is_virtual=False`:"
377
+ ]
378
+ },
379
+ {
380
+ "cell_type": "code",
381
+ "execution_count": null,
382
+ "metadata": {
383
+ "tags": [
384
+ "hide-output"
385
+ ]
386
+ },
387
+ "outputs": [],
388
+ "source": [
389
+ "my_existing_file"
390
+ ]
391
+ },
392
+ {
393
+ "cell_type": "markdown",
394
+ "metadata": {},
395
+ "source": [
396
+ "However, if we decide to upload the artifact, we'll use the `uid` for constructing the storage path and switch `key_is_virtual=True`:"
397
+ ]
398
+ },
399
+ {
400
+ "cell_type": "code",
401
+ "execution_count": null,
402
+ "metadata": {
403
+ "tags": [
404
+ "hide-output"
405
+ ]
406
+ },
407
+ "outputs": [],
408
+ "source": [
409
+ "my_existing_file.save(upload=True)"
410
+ ]
411
+ },
412
+ {
413
+ "cell_type": "markdown",
414
+ "metadata": {},
415
+ "source": [
416
+ "Here is the remote path of the artifact:"
417
+ ]
418
+ },
419
+ {
420
+ "cell_type": "code",
421
+ "execution_count": null,
422
+ "metadata": {
423
+ "tags": [
424
+ "hide-output"
425
+ ]
426
+ },
427
+ "outputs": [],
428
+ "source": [
429
+ "my_existing_file.path"
430
+ ]
431
+ },
432
+ {
433
+ "cell_type": "markdown",
434
+ "metadata": {},
435
+ "source": [
436
+ "And here are the contents of the storage locations:"
437
+ ]
438
+ },
439
+ {
440
+ "cell_type": "code",
441
+ "execution_count": null,
442
+ "metadata": {
443
+ "tags": [
444
+ "hide-output"
445
+ ]
446
+ },
447
+ "outputs": [],
448
+ "source": [
449
+ "# the path on S3\n",
450
+ "ln.setup.settings.storage.root.view_tree()\n",
451
+ "# the local path\n",
452
+ "ln.setup.settings.instance.storage_local.root.view_tree()"
453
+ ]
454
+ },
455
+ {
456
+ "cell_type": "markdown",
457
+ "metadata": {},
458
+ "source": [
459
+ "## Delete the test instance"
460
+ ]
461
+ },
462
+ {
463
+ "cell_type": "markdown",
464
+ "metadata": {},
465
+ "source": [
466
+ "Delete the artifacts:"
467
+ ]
468
+ },
469
+ {
470
+ "cell_type": "code",
471
+ "execution_count": null,
472
+ "metadata": {},
473
+ "outputs": [],
474
+ "source": [
475
+ "artifact.delete(permanent=True)\n",
476
+ "artifact2.delete(permanent=True)\n",
477
+ "my_existing_file.delete(permanent=True)"
478
+ ]
479
+ },
480
+ {
481
+ "cell_type": "markdown",
482
+ "metadata": {},
483
+ "source": [
484
+ "Delete the instance:"
485
+ ]
486
+ },
487
+ {
488
+ "cell_type": "code",
489
+ "execution_count": null,
490
+ "metadata": {
491
+ "tags": [
492
+ "hide-output"
493
+ ]
494
+ },
495
+ "outputs": [],
496
+ "source": [
497
+ "ln.setup.delete(\"keep-artifacts-local\", force=True)"
498
+ ]
499
+ }
500
+ ],
501
+ "metadata": {
502
+ "kernelspec": {
503
+ "display_name": "py310",
504
+ "language": "python",
505
+ "name": "python3"
506
+ },
507
+ "language_info": {
508
+ "codemirror_mode": {
509
+ "name": "ipython",
510
+ "version": 3
511
+ },
512
+ "file_extension": ".py",
513
+ "mimetype": "text/x-python",
514
+ "name": "python",
515
+ "nbconvert_exporter": "python",
516
+ "pygments_lexer": "ipython3",
517
+ "version": "3.10.13"
518
+ }
519
+ },
520
+ "nbformat": 4,
521
+ "nbformat_minor": 2
522
+ }
@@ -12,4 +12,5 @@ faq/reference-field
12
12
  faq/key
13
13
  faq/visibility
14
14
  faq/delete
15
+ faq/keep-artifacts-local
15
16
  ```