lamindb 0.76.10__tar.gz → 0.76.12__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 (518) hide show
  1. {lamindb-0.76.10 → lamindb-0.76.12}/.github/workflows/build.yml +1 -1
  2. {lamindb-0.76.10 → lamindb-0.76.12}/.gitmodules +3 -0
  3. {lamindb-0.76.10 → lamindb-0.76.12}/PKG-INFO +5 -5
  4. {lamindb-0.76.10 → lamindb-0.76.12}/docs/api.md +2 -0
  5. lamindb-0.76.12/docs/clinicore.md +5 -0
  6. {lamindb-0.76.10 → lamindb-0.76.12}/docs/curate-any.ipynb +2 -2
  7. lamindb-0.76.12/docs/findrefs.md +5 -0
  8. {lamindb-0.76.10 → lamindb-0.76.12}/docs/scripts/run-track-with-params.py +5 -2
  9. {lamindb-0.76.10 → lamindb-0.76.12}/docs/setup.ipynb +33 -19
  10. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/prepare-transfer-local-to-cloud.ipynb +1 -1
  11. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/vitessce.ipynb +10 -32
  12. {lamindb-0.76.10 → lamindb-0.76.12}/docs/track.ipynb +57 -41
  13. {lamindb-0.76.10 → lamindb-0.76.12}/docs/tutorial.ipynb +5 -4
  14. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/__init__.py +1 -1
  15. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_artifact.py +4 -8
  16. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_filter.py +0 -2
  17. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_finish.py +11 -4
  18. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_query_set.py +2 -2
  19. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_record.py +4 -8
  20. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_save.py +1 -1
  21. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_context.py +16 -10
  22. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_feature_manager.py +39 -8
  23. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_label_manager.py +1 -2
  24. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_settings.py +5 -0
  25. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_sync_git.py +2 -2
  26. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_track_environment.py +1 -1
  27. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/exceptions.py +1 -1
  28. lamindb-0.76.12/lamindb/integrations/_vitessce.py +101 -0
  29. {lamindb-0.76.10 → lamindb-0.76.12}/noxfile.py +6 -3
  30. {lamindb-0.76.10 → lamindb-0.76.12}/pyproject.toml +5 -4
  31. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/__init__.py +1 -1
  32. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_experimentalfactor.py +3 -1
  33. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/sources.yaml +3 -0
  34. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/models.py +14 -14
  35. lamindb-0.76.12/sub/clinicore/.github/workflows/build.yml +62 -0
  36. lamindb-0.76.12/sub/clinicore/.github/workflows/doc-changes.yml +23 -0
  37. lamindb-0.76.12/sub/clinicore/.gitignore +109 -0
  38. lamindb-0.76.12/sub/clinicore/.pre-commit-config.yaml +51 -0
  39. lamindb-0.76.12/sub/clinicore/README.md +8 -0
  40. lamindb-0.76.12/sub/clinicore/clinicore/__init__.py +38 -0
  41. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0001_initial.py +405 -0
  42. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0002_biosample_patient_biosample_project.py +42 -0
  43. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0003_alter_project_uid.py +20 -0
  44. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0004_remove_biosample_project_clinicaltrial_and_more.py +93 -0
  45. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0005_alter_biosample_created_by_alter_biosample_run_and_more.py +132 -0
  46. lamindb-0.76.12/sub/clinicore/clinicore/migrations/0006_artifactbiosample_artifactclinicaltrial_and_more.py +407 -0
  47. lamindb-0.76.12/sub/clinicore/clinicore/models.py +373 -0
  48. lamindb-0.76.12/sub/clinicore/docs/changelog.md +5 -0
  49. lamindb-0.76.12/sub/clinicore/docs/guide.md +7 -0
  50. lamindb-0.76.12/sub/clinicore/docs/index.md +13 -0
  51. lamindb-0.76.12/sub/clinicore/docs/quickstart.ipynb +116 -0
  52. lamindb-0.76.12/sub/clinicore/docs/reference.md +5 -0
  53. lamindb-0.76.12/sub/clinicore/noxfile.py +33 -0
  54. lamindb-0.76.12/sub/clinicore/pyproject.toml +135 -0
  55. lamindb-0.76.12/sub/clinicore/tests/test_notebooks.py +9 -0
  56. lamindb-0.76.12/sub/findrefs/.github/workflows/build.yml +50 -0
  57. lamindb-0.76.12/sub/findrefs/.github/workflows/doc-changes.yml +23 -0
  58. lamindb-0.76.12/sub/findrefs/.gitignore +110 -0
  59. lamindb-0.76.12/sub/findrefs/.pre-commit-config.yaml +51 -0
  60. lamindb-0.76.12/sub/findrefs/README.md +7 -0
  61. lamindb-0.76.12/sub/findrefs/findrefs/__init__.py +30 -0
  62. lamindb-0.76.12/sub/findrefs/findrefs/migrations/0001_initial.py +146 -0
  63. lamindb-0.76.12/sub/findrefs/findrefs/models.py +72 -0
  64. lamindb-0.76.12/sub/findrefs/noxfile.py +31 -0
  65. lamindb-0.76.12/sub/findrefs/pyproject.toml +135 -0
  66. lamindb-0.76.12/sub/findrefs/tests/test_integrity.py +17 -0
  67. lamindb-0.76.12/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  68. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/__main__.py +3 -3
  69. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_cache.py +1 -1
  70. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_load.py +8 -7
  71. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/pyproject.toml +5 -2
  72. lamindb-0.76.12/sub/lamindb-setup/LICENSE +201 -0
  73. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +2 -2
  74. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +1 -1
  75. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +23 -47
  76. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +6 -6
  77. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-init-load-local-anonymously.ipynb +1 -1
  78. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +1 -1
  79. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  80. lamindb-0.76.12/sub/lamindb-setup/lamindb_setup/_cache.py +48 -0
  81. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check_setup.py +3 -3
  82. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +7 -3
  83. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_delete.py +1 -1
  84. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_django.py +0 -2
  85. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_init_instance.py +1 -1
  86. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_setup_user.py +1 -1
  87. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +5 -66
  88. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +1 -1
  89. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings.py +39 -0
  90. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +6 -1
  91. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +14 -2
  92. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +20 -9
  93. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +5 -67
  94. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +1 -1
  95. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +1 -1
  96. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -2
  97. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/hashing.py +3 -1
  98. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/types.py +1 -3
  99. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/pyproject.toml +2 -1
  100. lamindb-0.76.12/sub/lamindb-setup/tests/hub-cloud/test_edge_request.py +63 -0
  101. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +2 -2
  102. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_all.py +34 -58
  103. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +2 -2
  104. lamindb-0.76.12/sub/lnschema-core/LICENSE +201 -0
  105. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  106. lamindb-0.76.12/sub/lnschema-core/lnschema_core/migrations/0067_alter_featurevalue_unique_together_and_more.py +20 -0
  107. lamindb-0.76.12/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  108. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/models.py +56 -42
  109. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/pyproject.toml +0 -1
  110. lamindb-0.76.12/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  111. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_cache.py +6 -6
  112. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_feature_manager.py +15 -1
  113. lamindb-0.76.10/lamindb/integrations/_vitessce.py +0 -107
  114. lamindb-0.76.10/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  115. lamindb-0.76.10/sub/lamindb-setup/lamindb_setup/_cache.py +0 -34
  116. {lamindb-0.76.10 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  117. {lamindb-0.76.10 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  118. {lamindb-0.76.10 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  119. {lamindb-0.76.10 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  120. {lamindb-0.76.10 → lamindb-0.76.12}/.github/workflows/doc-changes.yml +0 -0
  121. {lamindb-0.76.10 → lamindb-0.76.12}/.gitignore +0 -0
  122. {lamindb-0.76.10 → lamindb-0.76.12}/.pre-commit-config.yaml +0 -0
  123. {lamindb-0.76.10 → lamindb-0.76.12}/CONTRIBUTING.md +0 -0
  124. {lamindb-0.76.10 → lamindb-0.76.12}/LICENSE +0 -0
  125. {lamindb-0.76.10 → lamindb-0.76.12}/README.md +0 -0
  126. {lamindb-0.76.10 → lamindb-0.76.12}/docs/arrays.ipynb +0 -0
  127. {lamindb-0.76.10 → lamindb-0.76.12}/docs/bio-registries.ipynb +0 -0
  128. {lamindb-0.76.10 → lamindb-0.76.12}/docs/bionty.md +0 -0
  129. {lamindb-0.76.10 → lamindb-0.76.12}/docs/changelog.md +0 -0
  130. {lamindb-0.76.10 → lamindb-0.76.12}/docs/curate-df.ipynb +0 -0
  131. {lamindb-0.76.10 → lamindb-0.76.12}/docs/curate.md +0 -0
  132. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/acid.ipynb +0 -0
  133. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/delete.ipynb +0 -0
  134. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/idempotency.ipynb +0 -0
  135. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/import-schema.ipynb +0 -0
  136. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/keep-artifacts-local.ipynb +0 -0
  137. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/key.ipynb +0 -0
  138. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/reference-field.ipynb +0 -0
  139. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/setup.ipynb +0 -0
  140. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/test_notebooks.py +0 -0
  141. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/track-run-inputs.ipynb +0 -0
  142. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq/visibility.ipynb +0 -0
  143. {lamindb-0.76.10 → lamindb-0.76.12}/docs/faq.md +0 -0
  144. {lamindb-0.76.10 → lamindb-0.76.12}/docs/guide.md +0 -0
  145. {lamindb-0.76.10 → lamindb-0.76.12}/docs/includes/features-lamindb.md +0 -0
  146. {lamindb-0.76.10 → lamindb-0.76.12}/docs/includes/features-laminhub.md +0 -0
  147. {lamindb-0.76.10 → lamindb-0.76.12}/docs/includes/installation.md +0 -0
  148. {lamindb-0.76.10 → lamindb-0.76.12}/docs/index.md +0 -0
  149. {lamindb-0.76.10 → lamindb-0.76.12}/docs/introduction.ipynb +0 -0
  150. {lamindb-0.76.10 → lamindb-0.76.12}/docs/lamindb.md +0 -0
  151. {lamindb-0.76.10 → lamindb-0.76.12}/docs/laminr.md +0 -0
  152. {lamindb-0.76.10 → lamindb-0.76.12}/docs/query-search.md +0 -0
  153. {lamindb-0.76.10 → lamindb-0.76.12}/docs/registries.ipynb +0 -0
  154. {lamindb-0.76.10 → lamindb-0.76.12}/docs/rest.md +0 -0
  155. {lamindb-0.76.10 → lamindb-0.76.12}/docs/schemas.ipynb +0 -0
  156. {lamindb-0.76.10 → lamindb-0.76.12}/docs/scripts/synced-with-git.py +0 -0
  157. {lamindb-0.76.10 → lamindb-0.76.12}/docs/signup-login.md +0 -0
  158. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/add-replace-cache.ipynb +0 -0
  159. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/anndata-accessor.ipynb +0 -0
  160. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/test-files/iris.csv +0 -0
  161. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/test-files/iris.data +0 -0
  162. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/test-files/new_iris.csv +0 -0
  163. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/test_notebooks.py +0 -0
  164. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  165. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage/upload.ipynb +0 -0
  166. {lamindb-0.76.10 → lamindb-0.76.12}/docs/storage.md +0 -0
  167. {lamindb-0.76.10 → lamindb-0.76.12}/docs/test_notebooks.py +0 -0
  168. {lamindb-0.76.10 → lamindb-0.76.12}/docs/transfer.ipynb +0 -0
  169. {lamindb-0.76.10 → lamindb-0.76.12}/docs/tutorial2.ipynb +0 -0
  170. {lamindb-0.76.10 → lamindb-0.76.12}/docs/wetlab.md +0 -0
  171. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_can_validate.py +0 -0
  172. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_collection.py +0 -0
  173. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_curate.py +0 -0
  174. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_feature.py +0 -0
  175. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_feature_set.py +0 -0
  176. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_from_values.py +0 -0
  177. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_is_versioned.py +0 -0
  178. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_parents.py +0 -0
  179. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_query_manager.py +0 -0
  180. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_run.py +0 -0
  181. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_storage.py +0 -0
  182. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_transform.py +0 -0
  183. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_ulabel.py +0 -0
  184. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_utils.py +0 -0
  185. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/_view.py +0 -0
  186. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/__init__.py +0 -0
  187. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_data.py +0 -0
  188. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_django.py +0 -0
  189. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/_mapped_collection.py +0 -0
  190. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/datasets/__init__.py +0 -0
  191. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/datasets/_core.py +0 -0
  192. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/datasets/_fake.py +0 -0
  193. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/fields.py +0 -0
  194. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/loaders.py +0 -0
  195. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/schema.py +0 -0
  196. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/__init__.py +0 -0
  197. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_anndata_accessor.py +0 -0
  198. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_anndata_sizes.py +0 -0
  199. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_backed_access.py +0 -0
  200. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_tiledbsoma.py +0 -0
  201. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_valid_suffixes.py +0 -0
  202. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/_zarr.py +0 -0
  203. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/objects.py +0 -0
  204. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/storage/paths.py +0 -0
  205. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/subsettings/__init__.py +0 -0
  206. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/subsettings/_creation_settings.py +0 -0
  207. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/subsettings/_transform_settings.py +0 -0
  208. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/types.py +0 -0
  209. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/core/versioning.py +0 -0
  210. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/integrations/__init__.py +0 -0
  211. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/setup/__init__.py +0 -0
  212. {lamindb-0.76.10 → lamindb-0.76.12}/lamindb/setup/core/__init__.py +0 -0
  213. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/.github/workflows/build.yml +0 -0
  214. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  215. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  216. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/.gitignore +0 -0
  217. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/.pre-commit-config.yaml +0 -0
  218. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/LICENSE +0 -0
  219. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/README.md +0 -0
  220. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/_bionty.py +0 -0
  221. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/__init__.py +0 -0
  222. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/_display_sources.py +0 -0
  223. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/_ontology.py +0 -0
  224. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/_public_ontology.py +0 -0
  225. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/_settings.py +0 -0
  226. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  227. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  228. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
  229. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_io.py +0 -0
  230. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  231. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  232. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
  233. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
  234. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
  235. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
  236. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
  237. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
  238. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_disease.py +0 -0
  239. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_drug.py +0 -0
  240. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
  241. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_gene.py +0 -0
  242. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_organism.py +0 -0
  243. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
  244. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
  245. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_protein.py +0 -0
  246. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  247. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
  248. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  249. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  250. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  251. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  252. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  253. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  254. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/core/__init__.py +0 -0
  255. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/core/_add_ontology.py +0 -0
  256. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/core/_bionty.py +0 -0
  257. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/core/_settings.py +0 -0
  258. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/ids.py +0 -0
  259. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  260. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  261. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  262. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  263. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  264. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  265. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  266. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  267. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  268. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  269. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  270. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  271. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  272. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
  273. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
  274. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  275. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0038_alter_artifactcellline_created_by_and_more.py +0 -0
  276. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0039_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  277. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/bionty/migrations/__init__.py +0 -0
  278. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/guide/concepts.md +0 -0
  279. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/guide/config.md +0 -0
  280. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/guide/extend.md +0 -0
  281. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  282. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/guide.md +0 -0
  283. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/index.md +0 -0
  284. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/docs/reference.md +0 -0
  285. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/lamin-project.yaml +0 -0
  286. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/noxfile.py +0 -0
  287. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/pyproject.toml +0 -0
  288. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  289. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/dev/test_io.py +0 -0
  290. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  291. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_biosample.py +0 -0
  292. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellline.py +0 -0
  293. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  294. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_celltype.py +0 -0
  295. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  296. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_disease.py +0 -0
  297. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_drug.py +0 -0
  298. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  299. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  300. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_gene.py +0 -0
  301. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_organism.py +0 -0
  302. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_pathway.py +0 -0
  303. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  304. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_protein.py +0 -0
  305. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/entities/test_tissue.py +0 -0
  306. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/test_bionty.py +0 -0
  307. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/test_lamindb.py +0 -0
  308. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/test_md5.py +0 -0
  309. {lamindb-0.76.10 → lamindb-0.76.12}/sub/bionty/tests/test_ontology.py +0 -0
  310. {lamindb-0.76.10/sub/lamindb-setup → lamindb-0.76.12/sub/clinicore}/LICENSE +0 -0
  311. {lamindb-0.76.10/sub/lnschema-core/lnschema_core → lamindb-0.76.12/sub/clinicore/clinicore}/migrations/__init__.py +0 -0
  312. {lamindb-0.76.10/sub/lnschema-core → lamindb-0.76.12/sub/findrefs}/LICENSE +0 -0
  313. {lamindb-0.76.10/sub/wetlab/wetlab → lamindb-0.76.12/sub/findrefs/findrefs}/migrations/__init__.py +0 -0
  314. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  315. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/.gitignore +0 -0
  316. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  317. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/LICENSE +0 -0
  318. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/README.md +0 -0
  319. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  320. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  321. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_settings.py +0 -0
  322. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/conftest.py +0 -0
  323. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  324. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  325. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  326. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  327. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  328. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  329. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-with-params.py +0 -0
  330. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_cli.py +0 -0
  331. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_load.py +0 -0
  332. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_migrate.py +0 -0
  333. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  334. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_files.py +0 -0
  335. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  336. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  337. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  338. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  339. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/.gitignore +0 -0
  340. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  341. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/README.md +0 -0
  342. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/changelog.md +0 -0
  343. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  344. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  345. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  346. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  347. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  348. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +0 -0
  349. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  350. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  351. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  352. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  353. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  354. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  355. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  356. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/index.md +0 -0
  357. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/notebooks.md +0 -0
  358. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/docs/reference.md +0 -0
  359. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  360. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  361. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_entry_points.py +0 -0
  362. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  363. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  364. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  365. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  366. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  367. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  368. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
  369. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  370. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  371. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  372. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  373. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  374. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  375. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  376. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  377. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  378. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  379. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  380. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  381. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
  382. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/noxfile.py +0 -0
  383. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-init-pass-user-no-writes.py +0 -0
  384. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
  385. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  386. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  387. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
  388. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_pass_user_no_writes.py +0 -0
  389. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  390. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  391. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  392. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  393. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
  394. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  395. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  396. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  397. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  398. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_entry_point.py +0 -0
  399. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  400. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  401. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  402. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  403. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  404. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  405. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  406. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/.gitignore +0 -0
  407. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  408. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/CHANGELOG.md +0 -0
  409. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/README.md +0 -0
  410. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  411. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  412. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  413. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  414. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  415. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  416. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  417. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  418. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  419. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  420. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  421. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  422. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  423. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  424. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  425. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  426. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  427. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  428. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  429. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  430. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  431. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
  432. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  433. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  434. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  435. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  436. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
  437. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
  438. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
  439. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -0
  440. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0065_remove_collection_feature_sets_and_more.py +0 -0
  441. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0066_alter_artifact__feature_values_and_more.py +0 -0
  442. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  443. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/types.py +0 -0
  444. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/users.py +0 -0
  445. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/noxfile.py +0 -0
  446. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/tests/conftest.py +0 -0
  447. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/tests/test_integrity.py +0 -0
  448. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/tests/test_models.py +0 -0
  449. {lamindb-0.76.10 → lamindb-0.76.12}/sub/lnschema-core/tests/test_types.py +0 -0
  450. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/.github/workflows/build.yml +0 -0
  451. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  452. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/.gitignore +0 -0
  453. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/.pre-commit-config.yaml +0 -0
  454. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/README.md +0 -0
  455. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/changelog.md +0 -0
  456. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  457. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
  458. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/guide.md +0 -0
  459. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/index.md +0 -0
  460. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/docs/reference.md +0 -0
  461. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/noxfile.py +0 -0
  462. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/pyproject.toml +0 -0
  463. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/tests/test_integrity.py +0 -0
  464. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/tests/test_notebooks.py +0 -0
  465. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/__init__.py +0 -0
  466. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  467. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  468. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
  469. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  470. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  471. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  472. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0022_remove_experiment_experiment_type_and_more.py +0 -0
  473. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0023_compoundtreatment_duration_and_more.py +0 -0
  474. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0024_compound_chembl_id.py +0 -0
  475. {lamindb-0.76.10 → lamindb-0.76.12}/sub/wetlab/wetlab/models.py +0 -0
  476. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/conftest.py +0 -0
  477. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  478. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/notebooks/no-title.ipynb +0 -0
  479. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/notebooks/not-initialized.ipynb +0 -0
  480. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  481. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  482. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  483. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  484. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  485. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  486. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/scripts/script-to-test-versioning.py +0 -0
  487. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_artifact.py +0 -0
  488. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_artifact_folders.py +0 -0
  489. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_can_validate.py +0 -0
  490. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_collection.py +0 -0
  491. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_context.py +0 -0
  492. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_curate.py +0 -0
  493. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_data.py +0 -0
  494. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_db.py +0 -0
  495. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_delete.py +0 -0
  496. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_feature.py +0 -0
  497. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_feature_set.py +0 -0
  498. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_from_values.py +0 -0
  499. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_label_manager.py +0 -0
  500. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_load.py +0 -0
  501. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_manager.py +0 -0
  502. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_notebooks.py +0 -0
  503. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_parents.py +0 -0
  504. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_queryset.py +0 -0
  505. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_record.py +0 -0
  506. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_run.py +0 -0
  507. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_save.py +0 -0
  508. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_search.py +0 -0
  509. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_settings.py +0 -0
  510. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_transform.py +0 -0
  511. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_uid.py +0 -0
  512. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_ulabel.py +0 -0
  513. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_versioning.py +0 -0
  514. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_view.py +0 -0
  515. {lamindb-0.76.10 → lamindb-0.76.12}/tests/core/test_visibility.py +0 -0
  516. {lamindb-0.76.10 → lamindb-0.76.12}/tests/storage/conftest.py +0 -0
  517. {lamindb-0.76.10 → lamindb-0.76.12}/tests/storage/test_storage.py +0 -0
  518. {lamindb-0.76.10 → lamindb-0.76.12}/tests/storage/test_transfer.py +0 -0
@@ -107,7 +107,7 @@ jobs:
107
107
  - uses: actions/setup-python@v5
108
108
  with:
109
109
  python-version: "3.10" # use 3.10, 3.8 and 3.11 give issues
110
- - run: pip install -U laminci
110
+ - run: pip install "laminci@git+https://x-access-token:${{ secrets.LAMIN_BUILD_DOCS }}@github.com/laminlabs/laminci"
111
111
  - run: nox -s "install_ci(group='docs')"
112
112
  - uses: actions/download-artifact@v4
113
113
  - run: nox -s docs
@@ -16,3 +16,6 @@
16
16
  [submodule "sub/clinicore"]
17
17
  path = sub/clinicore
18
18
  url = https://github.com/laminlabs/clinicore
19
+ [submodule "sub/findrefs"]
20
+ path = sub/findrefs
21
+ url = https://github.com/laminlabs/findrefs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.76.10
3
+ Version: 0.76.12
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.9
@@ -8,10 +8,10 @@ Description-Content-Type: text/markdown
8
8
  Classifier: Programming Language :: Python :: 3.9
9
9
  Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
11
- Requires-Dist: lnschema_core==0.74.6
12
- Requires-Dist: lamindb_setup==0.77.6
11
+ Requires-Dist: lnschema_core==0.75.0
13
12
  Requires-Dist: lamin_utils==0.13.6
14
- Requires-Dist: lamin_cli==0.17.7
13
+ Requires-Dist: lamin_cli==0.18.0
14
+ Requires-Dist: lamindb_setup
15
15
  Requires-Dist: rapidfuzz
16
16
  Requires-Dist: pyarrow
17
17
  Requires-Dist: typing_extensions!=4.6.0
@@ -23,7 +23,7 @@ Requires-Dist: pandas
23
23
  Requires-Dist: graphviz
24
24
  Requires-Dist: psycopg2-binary
25
25
  Requires-Dist: lamindb_setup[aws] ; extra == "aws"
26
- Requires-Dist: bionty==0.51.0 ; extra == "bionty"
26
+ Requires-Dist: bionty==0.51.2 ; extra == "bionty"
27
27
  Requires-Dist: line_profiler ; extra == "dev"
28
28
  Requires-Dist: pre-commit ; extra == "dev"
29
29
  Requires-Dist: nox ; extra == "dev"
@@ -18,6 +18,8 @@ cli
18
18
  lamindb
19
19
  bionty
20
20
  wetlab
21
+ clinicore
22
+ findrefs
21
23
  ```
22
24
 
23
25
  ```{toctree}
@@ -0,0 +1,5 @@
1
+ # `clinicore`
2
+
3
+ ```{eval-rst}
4
+ .. automodule:: clinicore
5
+ ```
@@ -24,7 +24,7 @@
24
24
  "\n",
25
25
  "{class}`~lamindb.core.CanValidate` methods validate against the registries in your LaminDB instance.\n",
26
26
  "In {doc}`./bio-registries`, you'll see how to extend standard validation to validation against _public references_ using a `ReferenceTable` ontology object: `public = Record.public()`.\n",
27
- "By default, {meth}`~lamindb.core.Record.from_values` considers a match in a public reference a validated value for any {mod}`bionty` entity.\n",
27
+ "By default, {meth}`~lamindb.core.CanValidate.from_values` considers a match in a public reference a validated value for any {mod}`bionty` entity.\n",
28
28
  "\n",
29
29
  ":::"
30
30
  ]
@@ -131,7 +131,7 @@
131
131
  "source": [
132
132
  "Following the suggestions to register new labels:\n",
133
133
  "\n",
134
- "Bulk creating records using {meth}`~lamindb.core.Record.from_values` only returns validated records:\n",
134
+ "Bulk creating records using {meth}`~lamindb.core.CanValidate.from_values` only returns validated records:\n",
135
135
  "\n",
136
136
  "Note: Terms validated with public reference are also created with `.from_values`, see {doc}`/bio-registries` for details."
137
137
  ]
@@ -0,0 +1,5 @@
1
+ # `findrefs`
2
+
3
+ ```{eval-rst}
4
+ .. automodule:: findrefs
5
+ ```
@@ -10,8 +10,11 @@ if __name__ == "__main__":
10
10
  params = {
11
11
  "input_dir": args.input_dir,
12
12
  "learning_rate": args.learning_rate,
13
- "downsample": args.downsample,
13
+ "preprocess_params": {
14
+ "downsample": args.downsample,
15
+ "normalization": "the_good_one",
16
+ },
14
17
  }
15
- ln.track("JjRF4mACd9m00000", params=params)
18
+ ln.track("JjRF4mACd9m00001", params=params)
16
19
  # your code
17
20
  ln.finish()
@@ -254,25 +254,39 @@
254
254
  "source": [
255
255
  "`lamindb` mantains cache for cloud instances, i.e. instances having storage set to an AWS S3 bucket.\n",
256
256
  "\n",
257
- "Cache directory can be accessed via {class}`lamindb.settings`.\n",
258
- "\n",
259
- "```\n",
260
- "ln.settings.storage.cache_dir\n",
261
- "```\n",
262
- "\n",
263
- "or print the cache directory path with CLI\n",
264
- "\n",
265
- "```\n",
266
- "lamin cache get\n",
267
- "```\n",
268
- "\n",
269
- "It can be configured using the settings\n",
270
- "\n",
271
- "```\n",
272
- "ln.settings.storage.cache_dir = \"some/path/to/cache\"\n",
273
- "```\n",
274
- "\n",
275
- "or using CLI\n",
257
+ "Cache directory can be accessed via {class}`lamindb.settings`."
258
+ ]
259
+ },
260
+ {
261
+ "cell_type": "code",
262
+ "execution_count": null,
263
+ "metadata": {},
264
+ "outputs": [],
265
+ "source": [
266
+ "ln.settings.cache_dir"
267
+ ]
268
+ },
269
+ {
270
+ "cell_type": "markdown",
271
+ "metadata": {},
272
+ "source": [
273
+ "or print the cache directory path with CLI"
274
+ ]
275
+ },
276
+ {
277
+ "cell_type": "code",
278
+ "execution_count": null,
279
+ "metadata": {},
280
+ "outputs": [],
281
+ "source": [
282
+ "!lamin cache get"
283
+ ]
284
+ },
285
+ {
286
+ "cell_type": "markdown",
287
+ "metadata": {},
288
+ "source": [
289
+ "It can be also configured via \n",
276
290
  "\n",
277
291
  "```\n",
278
292
  "lamin cache set some/path/to/cache\n",
@@ -34,7 +34,7 @@
34
34
  "metadata": {},
35
35
  "outputs": [],
36
36
  "source": [
37
- "ln.setup.init(storage=\"./test-transfer-to-cloud\", schema=\"bionty,wetlab\")\n",
37
+ "ln.setup.init(storage=\"./test-transfer-to-cloud\", schema=\"bionty,wetlab,findrefs\")\n",
38
38
  "ln.setup.settings.auto_connect = False"
39
39
  ]
40
40
  },
@@ -82,7 +82,7 @@
82
82
  "vc = VitessceConfig(schema_version=\"1.0.15\")\n",
83
83
  "vc.add_dataset(name=\"test1\").add_object(\n",
84
84
  " AnnDataWrapper(\n",
85
- " adata_url=dataset_artifact.path.to_url(),\n",
85
+ " adata_artifact=dataset_artifact,\n",
86
86
  " obs_embedding_paths=[\"obsm/X_umap\"],\n",
87
87
  " ),\n",
88
88
  ")\n",
@@ -134,39 +134,17 @@
134
134
  "metadata": {},
135
135
  "outputs": [],
136
136
  "source": [
137
- "# use a corrupted suffix\n",
137
+ "# pass an artifact URL instead of the artifact object itself\n",
138
138
  "vc = VitessceConfig(schema_version=\"1.0.15\")\n",
139
- "vc.add_dataset(name=\"test1\").add_object(\n",
140
- " AnnDataWrapper(\n",
141
- " adata_url=dataset_artifact.path.to_url() + \".random\",\n",
142
- " obs_embedding_paths=[\"obsm/X_umap\"],\n",
143
- " ),\n",
144
- ")\n",
145
- "with pytest.raises(ValueError) as error:\n",
146
- " ln.integrations.save_vitessce_config(vc)\n",
147
- "print(error.exconly())\n",
148
- "assert error.exconly().startswith(\"ValueError: Suffix should be '.zarr' or one of\")\n",
149
- "assert error.exconly().endswith(\".random\")\n"
150
- ]
151
- },
152
- {
153
- "cell_type": "code",
154
- "execution_count": null,
155
- "metadata": {},
156
- "outputs": [],
157
- "source": [
158
- "# use a corrupted stem_uid\n",
159
- "vc = VitessceConfig(schema_version=\"1.0.15\")\n",
160
- "vc.add_dataset(name=\"test1\").add_object(\n",
161
- " AnnDataWrapper(\n",
162
- " adata_url=dataset_artifact.path.to_url().replace(dataset_artifact.stem_uid, \"not-a-valid-uid\"),\n",
163
- " obs_embedding_paths=[\"obsm/X_umap\"],\n",
164
- " ),\n",
165
- ")\n",
166
- "with pytest.raises(ValueError) as error:\n",
167
- " ln.integrations.save_vitessce_config(vc)\n",
139
+ "with pytest.raises(AttributeError) as error:\n",
140
+ " vc.add_dataset(name=\"test1\").add_object(\n",
141
+ " AnnDataWrapper(\n",
142
+ " adata_artifact=dataset_artifact.path.to_url(),\n",
143
+ " obs_embedding_paths=[\"obsm/X_umap\"],\n",
144
+ " ),\n",
145
+ " )\n",
168
146
  "print(error.exconly())\n",
169
- "assert error.exconly().startswith(\"ValueError: Could not find dataset with stem uid 'not-a-valid-uid' in lamindb\")"
147
+ "assert error.exconly().startswith(\"AttributeError: 'str' object has no attribute 'path'\")\n"
170
148
  ]
171
149
  },
172
150
  {
@@ -29,7 +29,7 @@
29
29
  "cell_type": "markdown",
30
30
  "metadata": {},
31
31
  "source": [
32
- "## Initiate tracking"
32
+ "## Track data lineage"
33
33
  ]
34
34
  },
35
35
  {
@@ -39,47 +39,20 @@
39
39
  "Call {meth}`~lamindb.track` to register a data transformation and start tracking inputs & outputs of a run. You will find your notebook or script in the {class}`~lamindb.Transform` registry along with pipelines & functions. {class}`~lamindb.Run` stores executions."
40
40
  ]
41
41
  },
42
- {
43
- "cell_type": "code",
44
- "execution_count": null,
45
- "metadata": {
46
- "tags": [
47
- "hide-output"
48
- ]
49
- },
50
- "outputs": [],
51
- "source": [
52
- "import lamindb as ln\n",
53
- "\n",
54
- "# call `ln.track()` to generate a uid that identifies your code\n",
55
- "\n",
56
- "ln.track(\"9priar0hoE5u0000\") # call `ln.track(uid)` to track a run with inputs & outputs"
57
- ]
58
- },
59
42
  {
60
43
  "cell_type": "markdown",
61
44
  "metadata": {},
62
45
  "source": [
63
- "LaminDB now automatically tracks all input and output data of the current run.\n",
46
+ "```python\n",
47
+ "import lamindb as ln\n",
64
48
  "\n",
65
- "Note: You can access a `requirments.txt` via `ln.context.run.environment`."
66
- ]
67
- },
68
- {
69
- "cell_type": "markdown",
70
- "metadata": {},
71
- "source": [
72
- "## Track run report & source code"
73
- ]
74
- },
75
- {
76
- "cell_type": "markdown",
77
- "metadata": {},
78
- "source": [
79
- "If you want to save the run report & source code for a notebook or script, call:\n",
49
+ "# --> `ln.track()` generates a uid for your code\n",
50
+ "# --> `ln.track(uid)` initiates a tracked run\n",
51
+ "ln.track(\"9priar0hoE5u0000\")\n",
80
52
  "\n",
81
- "```python\n",
82
- "ln.finish()\n",
53
+ "# your code\n",
54
+ "\n",
55
+ "ln.finish() # mark run as finished, save execution report, source code & environment\n",
83
56
  "```"
84
57
  ]
85
58
  },
@@ -87,7 +60,7 @@
87
60
  "cell_type": "markdown",
88
61
  "metadata": {},
89
62
  "source": [
90
- "Below is how a notebook with run report looks on the hub.\n",
63
+ "Below is how [a notebook](https://lamin.ai/laminlabs/lamindata/transform/PtTXoc0RbOIq65cN) with run report looks on the hub.\n",
91
64
  "\n",
92
65
  "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/RGXj5wcAf7EAc6J8dJfH.png\" width=\"900px\">"
93
66
  ]
@@ -168,6 +141,8 @@
168
141
  "cell_type": "markdown",
169
142
  "metadata": {},
170
143
  "source": [
144
+ "(track-run-parameters)=\n",
145
+ "\n",
171
146
  "## Track run parameters"
172
147
  ]
173
148
  },
@@ -188,9 +163,11 @@
188
163
  },
189
164
  "outputs": [],
190
165
  "source": [
166
+ "import lamindb as ln\n",
167
+ "\n",
191
168
  "ln.Param(name=\"input_dir\", dtype=\"str\").save()\n",
192
169
  "ln.Param(name=\"learning_rate\", dtype=\"float\").save()\n",
193
- "ln.Param(name=\"downsample\", dtype=\"bool\").save()"
170
+ "ln.Param(name=\"preprocess_params\", dtype=\"dict\").save()"
194
171
  ]
195
172
  },
196
173
  {
@@ -248,14 +225,24 @@
248
225
  },
249
226
  "outputs": [],
250
227
  "source": [
251
- "ln.Run.params.filter(learning_rate=0.01, input_dir=\"./mydataset\").df()"
228
+ "ln.Run.params.filter(learning_rate=0.01, input_dir=\"./mydataset\", preprocess_params__downsample=True).df()"
252
229
  ]
253
230
  },
254
231
  {
255
232
  "cell_type": "markdown",
256
233
  "metadata": {},
257
234
  "source": [
258
- "Look at the parameter values that were used for a given run."
235
+ "Note that:\n",
236
+ "\n",
237
+ "* `preprocess_params__downsample=True` traverses the dictionary `preprocess_params` to find the key `\"downsample\"` and match it to `True`\n",
238
+ "* nested keys like `\"downsample\"` in a dictionary do not appear in `Param` and hence, do not get validated"
239
+ ]
240
+ },
241
+ {
242
+ "cell_type": "markdown",
243
+ "metadata": {},
244
+ "source": [
245
+ "Below is how you get the parameter values that were used for a given run."
259
246
  ]
260
247
  },
261
248
  {
@@ -272,6 +259,35 @@
272
259
  "run.params.get_values()"
273
260
  ]
274
261
  },
262
+ {
263
+ "cell_type": "markdown",
264
+ "metadata": {},
265
+ "source": [
266
+ "Or [on the hub](https://lamin.ai/laminlabs/lamindata/transform/JjRF4mACd9m00001).\n",
267
+ "\n",
268
+ "<img width=\"500\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d8a5df37-d585-4940-b6f0-91f99b6c436c\">"
269
+ ]
270
+ },
271
+ {
272
+ "cell_type": "markdown",
273
+ "metadata": {},
274
+ "source": [
275
+ "If you want to query all parameter values across all runs, use {class}`~lamindb.core.ParamValue`."
276
+ ]
277
+ },
278
+ {
279
+ "cell_type": "code",
280
+ "execution_count": null,
281
+ "metadata": {
282
+ "tags": [
283
+ "hide-output"
284
+ ]
285
+ },
286
+ "outputs": [],
287
+ "source": [
288
+ "ln.core.ParamValue.df(include=[\"param__name\", \"created_by__handle\"])"
289
+ ]
290
+ },
275
291
  {
276
292
  "cell_type": "markdown",
277
293
  "metadata": {},
@@ -322,7 +338,7 @@
322
338
  },
323
339
  "outputs": [],
324
340
  "source": [
325
- "assert run.params.get_values() == {'downsample': True, 'input_dir': './mydataset', 'learning_rate': 0.01}\n",
341
+ "assert run.params.get_values() == {'input_dir': './mydataset', 'learning_rate': 0.01, 'preprocess_params': {'downsample': True, 'normalization': 'the_good_one'}}\n",
326
342
  "\n",
327
343
  "# clean up test instance\n",
328
344
  "!rm -r ./test-track\n",
@@ -116,9 +116,9 @@
116
116
  "source": [
117
117
  "import lamindb as ln\n",
118
118
  "\n",
119
- "# call `ln.track()` to generate a uid that identifies your code\n",
120
- "\n",
121
- "ln.track(\"NJvdsWWbJlZS0000\") # call `ln.track(uid)` to track a run with inputs & outputs\n"
119
+ "# --> `ln.track()` generates a uid for your code\n",
120
+ "# --> `ln.track(uid)` initiates a tracked run\n",
121
+ "ln.track(\"NJvdsWWbJlZS0000\")\n"
122
122
  ]
123
123
  },
124
124
  {
@@ -197,7 +197,8 @@
197
197
  },
198
198
  "outputs": [],
199
199
  "source": [
200
- "ln.UPath(\"s3://lamindata/iris_studies\").view_tree()"
200
+ "# we use anon=True here in case no aws credentials are configured\n",
201
+ "ln.UPath(\"s3://lamindata/iris_studies\", anon=True).view_tree()"
201
202
  ]
202
203
  },
203
204
  {
@@ -43,7 +43,7 @@ Modules and settings.
43
43
  """
44
44
 
45
45
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
46
- __version__ = "0.76.10"
46
+ __version__ = "0.76.12"
47
47
 
48
48
  import os as _os
49
49
 
@@ -10,7 +10,7 @@ import fsspec
10
10
  import lamindb_setup as ln_setup
11
11
  import pandas as pd
12
12
  from anndata import AnnData
13
- from django.db.models import Q, QuerySet
13
+ from django.db.models import Q
14
14
  from lamin_utils import colors, logger
15
15
  from lamindb_setup import settings as setup_settings
16
16
  from lamindb_setup._init_instance import register_storage_in_instance
@@ -180,7 +180,7 @@ def process_data(
180
180
  f" be '{suffix}'."
181
181
  )
182
182
  cache_name = f"{provisional_uid}{suffix}"
183
- path = settings.storage.cache_dir / cache_name
183
+ path = settings.cache_dir / cache_name
184
184
  # Alex: I don't understand the line below
185
185
  if path.suffixes == []:
186
186
  path = path.with_suffix(suffix)
@@ -344,7 +344,7 @@ def get_artifact_kwargs_from_data(
344
344
 
345
345
  if revises is not None: # update provisional_uid
346
346
  provisional_uid, revises = create_uid(revises=revises, version=version)
347
- if settings.storage.cache_dir in path.parents:
347
+ if settings.cache_dir in path.parents:
348
348
  path = path.rename(path.with_name(f"{provisional_uid}{suffix}"))
349
349
 
350
350
  check_path_in_storage = False
@@ -749,10 +749,6 @@ def from_dir(
749
749
  run: Run | None = None,
750
750
  ) -> list[Artifact]:
751
751
  """{}""" # noqa: D415
752
- logger.warning(
753
- "this creates one artifact per file in the directory - consider"
754
- " ln.Artifact(dir_path) to get one artifact for the entire directory"
755
- )
756
752
  folderpath: UPath = create_path(path) # returns Path for local
757
753
  default_storage = settings.storage.record
758
754
  using_key = settings._using_key
@@ -1125,7 +1121,7 @@ def save(self, upload: bool | None = None, **kwargs) -> Artifact:
1125
1121
  raise RuntimeError(exception)
1126
1122
  if local_path is not None and not state_was_adding:
1127
1123
  # only move the local artifact to cache if it was not newly created
1128
- local_path_cache = ln_setup.settings.storage.cache_dir / local_path.name
1124
+ local_path_cache = ln_setup.settings.cache_dir / local_path.name
1129
1125
  # don't use Path.rename here because of cross-device link error
1130
1126
  # https://laminlabs.slack.com/archives/C04A0RMA0SC/p1710259102686969
1131
1127
  shutil.move(
@@ -2,8 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from lnschema_core import Artifact, Collection
6
-
7
5
  from ._query_set import QuerySet, process_expressions
8
6
 
9
7
  if TYPE_CHECKING:
@@ -35,6 +35,13 @@ def prepare_notebook(
35
35
  if strip_title:
36
36
  lines.pop(i)
37
37
  cell["source"] = "\n".join(lines)
38
+ # strip resaved finish error if present
39
+ # this is normally the last cell
40
+ if cell["cell_type"] == "code" and ".finish(" in cell["source"]:
41
+ for output in cell["outputs"]:
42
+ if output.get("ename", None) == "NotebookNotSaved":
43
+ cell["outputs"] = []
44
+ break
38
45
  return None
39
46
 
40
47
 
@@ -112,7 +119,7 @@ def save_context_core(
112
119
  notebook_content = read_notebook(filepath) # type: ignore
113
120
  if not ignore_non_consecutive: # ignore_non_consecutive is None or False
114
121
  is_consecutive = check_consecutiveness(
115
- notebook_content, calling_statement=".finish()"
122
+ notebook_content, calling_statement=".finish("
116
123
  )
117
124
  if not is_consecutive:
118
125
  response = "n" # ignore_non_consecutive == False
@@ -123,12 +130,12 @@ def save_context_core(
123
130
  if response != "y":
124
131
  return "aborted-non-consecutive"
125
132
  # write the report
126
- report_path = ln_setup.settings.storage.cache_dir / filepath.name.replace(
133
+ report_path = ln_setup.settings.cache_dir / filepath.name.replace(
127
134
  ".ipynb", ".html"
128
135
  )
129
136
  notebook_to_report(filepath, report_path)
130
137
  # write the source code
131
- source_code_path = ln_setup.settings.storage.cache_dir / filepath.name.replace(
138
+ source_code_path = ln_setup.settings.cache_dir / filepath.name.replace(
132
139
  ".ipynb", ".py"
133
140
  )
134
141
  notebook_to_script(transform, filepath, source_code_path)
@@ -164,7 +171,7 @@ def save_context_core(
164
171
  transform.hash = hash
165
172
 
166
173
  # track environment
167
- env_path = ln_setup.settings.storage.cache_dir / f"run_env_pip_{run.uid}.txt"
174
+ env_path = ln_setup.settings.cache_dir / f"run_env_pip_{run.uid}.txt"
168
175
  if env_path.exists():
169
176
  overwrite_env = True
170
177
  if run.environment_id is not None and from_cli:
@@ -139,7 +139,7 @@ class QuerySet(models.QuerySet):
139
139
 
140
140
  See Also:
141
141
 
142
- `django QuerySet <https://docs.djangoproject.com/en/4.2/ref/models/querysets/>`__ # noqa
142
+ `django QuerySet <https://docs.djangoproject.com/en/4.2/ref/models/querysets/>`__
143
143
 
144
144
  Examples:
145
145
 
@@ -154,7 +154,7 @@ class QuerySet(models.QuerySet):
154
154
  ) -> pd.DataFrame:
155
155
  """{}""" # noqa: D415
156
156
  # re-order the columns
157
- exclude_field_names = ["created_at"]
157
+ exclude_field_names = ["updated_at"]
158
158
  field_names = [
159
159
  field.name
160
160
  for field in self.model._meta.fields
@@ -15,7 +15,7 @@ from lamindb_setup._connect_instance import (
15
15
  update_db_using_local,
16
16
  )
17
17
  from lamindb_setup.core._docs import doc_args
18
- from lamindb_setup.core._hub_core import connect_instance
18
+ from lamindb_setup.core._hub_core import connect_instance_hub
19
19
  from lamindb_setup.core._settings_store import instance_settings_file
20
20
  from lnschema_core.models import IsVersioned, Record, Run, Transform
21
21
 
@@ -380,11 +380,9 @@ def using(
380
380
  return QuerySet(model=cls, using=None)
381
381
  owner, name = get_owner_name_from_identifier(instance)
382
382
  settings_file = instance_settings_file(name, owner)
383
- cache_filepath = (
384
- ln_setup.settings.storage.cache_dir / f"instance--{owner}--{name}--uid.txt"
385
- )
383
+ cache_filepath = ln_setup.settings.cache_dir / f"instance--{owner}--{name}--uid.txt"
386
384
  if not settings_file.exists():
387
- result = connect_instance(owner=owner, name=name)
385
+ result = connect_instance_hub(owner=owner, name=name)
388
386
  if isinstance(result, str):
389
387
  raise RuntimeError(
390
388
  f"Failed to load instance {instance}, please check your permissions!"
@@ -469,9 +467,7 @@ def get_transfer_run(record) -> Run:
469
467
 
470
468
  slug = record._state.db
471
469
  owner, name = get_owner_name_from_identifier(slug)
472
- cache_filepath = (
473
- ln_setup.settings.storage.cache_dir / f"instance--{owner}--{name}--uid.txt"
474
- )
470
+ cache_filepath = ln_setup.settings.cache_dir / f"instance--{owner}--{name}--uid.txt"
475
471
  if not cache_filepath.exists():
476
472
  raise SystemExit("Need to call .using() before")
477
473
  instance_uid = cache_filepath.read_text()
@@ -168,7 +168,7 @@ def copy_or_move_to_cache(
168
168
 
169
169
  local_path = local_path.resolve()
170
170
  is_dir = local_path.is_dir()
171
- cache_dir = settings._storage_settings.cache_dir
171
+ cache_dir = settings.cache_dir
172
172
 
173
173
  # just delete from the cache dir if storage_path is local
174
174
  if cache_path is None:
@@ -562,26 +562,32 @@ class Context:
562
562
 
563
563
  return "CMD + s" if platform.system() == "Darwin" else "CTRL + s"
564
564
 
565
- if context.run is None:
565
+ if self.run is None:
566
566
  raise TrackNotCalled("Please run `ln.track()` before `ln.finish()`")
567
- if context._path is None:
568
- if context.run.transform.type in {"script", "notebook"}:
567
+ if self._path is None:
568
+ if self.run.transform.type in {"script", "notebook"}:
569
569
  raise ValueError(
570
- f"Transform type is not allowed to be 'script' or 'notebook' but is {context.run.transform.type}."
570
+ "Transform type is not allowed to be 'script' or 'notebook' because `context._path` is `None`."
571
571
  )
572
- context.run.finished_at = datetime.now(timezone.utc)
573
- context.run.save()
572
+ self.run.finished_at = datetime.now(timezone.utc)
573
+ self.run.save()
574
574
  # nothing else to do
575
575
  return None
576
576
  if is_run_from_ipython: # notebooks
577
- if get_seconds_since_modified(context._path) > 2 and not ln_setup._TESTING:
577
+ import nbproject
578
+
579
+ # it might be that the user modifies the title just before ln.finish()
580
+ if (nbproject_title := nbproject.meta.live.title) != self.transform.name:
581
+ self.transform.name = nbproject_title
582
+ self.transform.save()
583
+ if get_seconds_since_modified(self._path) > 2 and not ln_setup._TESTING:
578
584
  raise NotebookNotSaved(
579
585
  f"Please save the notebook in your editor (shortcut `{get_shortcut()}`) right before calling `ln.finish()`"
580
586
  )
581
587
  save_context_core(
582
- run=context.run,
583
- transform=context.run.transform,
584
- filepath=context._path,
588
+ run=self.run,
589
+ transform=self.run.transform,
590
+ filepath=self._path,
585
591
  finished_at=True,
586
592
  ignore_non_consecutive=ignore_non_consecutive,
587
593
  )