lamindb 0.76.11__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 (519) hide show
  1. {lamindb-0.76.11 → lamindb-0.76.12}/PKG-INFO +5 -5
  2. {lamindb-0.76.11 → lamindb-0.76.12}/docs/scripts/run-track-with-params.py +5 -2
  3. {lamindb-0.76.11 → lamindb-0.76.12}/docs/setup.ipynb +33 -19
  4. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/prepare-transfer-local-to-cloud.ipynb +1 -1
  5. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/vitessce.ipynb +10 -32
  6. {lamindb-0.76.11 → lamindb-0.76.12}/docs/track.ipynb +45 -4
  7. {lamindb-0.76.11 → lamindb-0.76.12}/docs/tutorial.ipynb +3 -2
  8. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/__init__.py +1 -1
  9. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_artifact.py +4 -8
  10. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_filter.py +0 -2
  11. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_finish.py +3 -3
  12. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_query_set.py +2 -2
  13. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_record.py +4 -8
  14. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_save.py +1 -1
  15. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_context.py +16 -10
  16. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_feature_manager.py +39 -8
  17. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_settings.py +5 -0
  18. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_sync_git.py +2 -2
  19. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_track_environment.py +1 -1
  20. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/exceptions.py +1 -1
  21. lamindb-0.76.12/lamindb/integrations/_vitessce.py +101 -0
  22. {lamindb-0.76.11 → lamindb-0.76.12}/noxfile.py +1 -1
  23. {lamindb-0.76.11 → lamindb-0.76.12}/pyproject.toml +5 -4
  24. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/__init__.py +1 -1
  25. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_experimentalfactor.py +3 -1
  26. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/sources.yaml +3 -0
  27. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.github/workflows/build.yml +3 -3
  28. lamindb-0.76.12/sub/clinicore/README.md +8 -0
  29. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/models.py +65 -44
  30. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/pyproject.toml +1 -1
  31. lamindb-0.76.12/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  32. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/__main__.py +3 -3
  33. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_cache.py +1 -1
  34. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_load.py +4 -3
  35. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/pyproject.toml +5 -2
  36. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +23 -47
  37. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +3 -3
  38. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  39. lamindb-0.76.12/sub/lamindb-setup/lamindb_setup/_cache.py +48 -0
  40. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check_setup.py +1 -1
  41. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +6 -2
  42. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_delete.py +1 -1
  43. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_django.py +0 -2
  44. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_setup_user.py +1 -1
  45. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +5 -66
  46. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +1 -1
  47. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings.py +39 -0
  48. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +5 -0
  49. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +13 -1
  50. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +20 -9
  51. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +2 -63
  52. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +1 -1
  53. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +1 -1
  54. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -2
  55. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/hashing.py +3 -1
  56. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/types.py +1 -3
  57. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/pyproject.toml +1 -0
  58. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_edge_request.py +11 -0
  59. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +2 -2
  60. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_all.py +34 -58
  61. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +2 -2
  62. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  63. lamindb-0.76.12/sub/lnschema-core/lnschema_core/migrations/0067_alter_featurevalue_unique_together_and_more.py +20 -0
  64. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/models.py +56 -42
  65. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/pyproject.toml +0 -1
  66. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_cache.py +6 -6
  67. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature_manager.py +14 -1
  68. lamindb-0.76.11/lamindb/integrations/_vitessce.py +0 -107
  69. lamindb-0.76.11/sub/clinicore/README.md +0 -7
  70. lamindb-0.76.11/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  71. lamindb-0.76.11/sub/lamindb-setup/lamindb_setup/_cache.py +0 -34
  72. {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  73. {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  74. {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  75. {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  76. {lamindb-0.76.11 → lamindb-0.76.12}/.github/workflows/build.yml +0 -0
  77. {lamindb-0.76.11 → lamindb-0.76.12}/.github/workflows/doc-changes.yml +0 -0
  78. {lamindb-0.76.11 → lamindb-0.76.12}/.gitignore +0 -0
  79. {lamindb-0.76.11 → lamindb-0.76.12}/.gitmodules +0 -0
  80. {lamindb-0.76.11 → lamindb-0.76.12}/.pre-commit-config.yaml +0 -0
  81. {lamindb-0.76.11 → lamindb-0.76.12}/CONTRIBUTING.md +0 -0
  82. {lamindb-0.76.11 → lamindb-0.76.12}/LICENSE +0 -0
  83. {lamindb-0.76.11 → lamindb-0.76.12}/README.md +0 -0
  84. {lamindb-0.76.11 → lamindb-0.76.12}/docs/api.md +0 -0
  85. {lamindb-0.76.11 → lamindb-0.76.12}/docs/arrays.ipynb +0 -0
  86. {lamindb-0.76.11 → lamindb-0.76.12}/docs/bio-registries.ipynb +0 -0
  87. {lamindb-0.76.11 → lamindb-0.76.12}/docs/bionty.md +0 -0
  88. {lamindb-0.76.11 → lamindb-0.76.12}/docs/changelog.md +0 -0
  89. {lamindb-0.76.11 → lamindb-0.76.12}/docs/clinicore.md +0 -0
  90. {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate-any.ipynb +0 -0
  91. {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate-df.ipynb +0 -0
  92. {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate.md +0 -0
  93. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/acid.ipynb +0 -0
  94. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/delete.ipynb +0 -0
  95. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/idempotency.ipynb +0 -0
  96. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/import-schema.ipynb +0 -0
  97. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/keep-artifacts-local.ipynb +0 -0
  98. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/key.ipynb +0 -0
  99. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/reference-field.ipynb +0 -0
  100. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/setup.ipynb +0 -0
  101. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/test_notebooks.py +0 -0
  102. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/track-run-inputs.ipynb +0 -0
  103. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/visibility.ipynb +0 -0
  104. {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq.md +0 -0
  105. {lamindb-0.76.11 → lamindb-0.76.12}/docs/findrefs.md +0 -0
  106. {lamindb-0.76.11 → lamindb-0.76.12}/docs/guide.md +0 -0
  107. {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/features-lamindb.md +0 -0
  108. {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/features-laminhub.md +0 -0
  109. {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/installation.md +0 -0
  110. {lamindb-0.76.11 → lamindb-0.76.12}/docs/index.md +0 -0
  111. {lamindb-0.76.11 → lamindb-0.76.12}/docs/introduction.ipynb +0 -0
  112. {lamindb-0.76.11 → lamindb-0.76.12}/docs/lamindb.md +0 -0
  113. {lamindb-0.76.11 → lamindb-0.76.12}/docs/laminr.md +0 -0
  114. {lamindb-0.76.11 → lamindb-0.76.12}/docs/query-search.md +0 -0
  115. {lamindb-0.76.11 → lamindb-0.76.12}/docs/registries.ipynb +0 -0
  116. {lamindb-0.76.11 → lamindb-0.76.12}/docs/rest.md +0 -0
  117. {lamindb-0.76.11 → lamindb-0.76.12}/docs/schemas.ipynb +0 -0
  118. {lamindb-0.76.11 → lamindb-0.76.12}/docs/scripts/synced-with-git.py +0 -0
  119. {lamindb-0.76.11 → lamindb-0.76.12}/docs/signup-login.md +0 -0
  120. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/add-replace-cache.ipynb +0 -0
  121. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/anndata-accessor.ipynb +0 -0
  122. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/iris.csv +0 -0
  123. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/iris.data +0 -0
  124. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/new_iris.csv +0 -0
  125. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test_notebooks.py +0 -0
  126. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  127. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/upload.ipynb +0 -0
  128. {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage.md +0 -0
  129. {lamindb-0.76.11 → lamindb-0.76.12}/docs/test_notebooks.py +0 -0
  130. {lamindb-0.76.11 → lamindb-0.76.12}/docs/transfer.ipynb +0 -0
  131. {lamindb-0.76.11 → lamindb-0.76.12}/docs/tutorial2.ipynb +0 -0
  132. {lamindb-0.76.11 → lamindb-0.76.12}/docs/wetlab.md +0 -0
  133. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_can_validate.py +0 -0
  134. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_collection.py +0 -0
  135. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_curate.py +0 -0
  136. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_feature.py +0 -0
  137. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_feature_set.py +0 -0
  138. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_from_values.py +0 -0
  139. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_is_versioned.py +0 -0
  140. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_parents.py +0 -0
  141. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_query_manager.py +0 -0
  142. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_run.py +0 -0
  143. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_storage.py +0 -0
  144. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_transform.py +0 -0
  145. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_ulabel.py +0 -0
  146. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_utils.py +0 -0
  147. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_view.py +0 -0
  148. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/__init__.py +0 -0
  149. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_data.py +0 -0
  150. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_django.py +0 -0
  151. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_label_manager.py +0 -0
  152. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_mapped_collection.py +0 -0
  153. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/__init__.py +0 -0
  154. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/_core.py +0 -0
  155. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/_fake.py +0 -0
  156. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/fields.py +0 -0
  157. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/loaders.py +0 -0
  158. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/schema.py +0 -0
  159. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/__init__.py +0 -0
  160. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_anndata_accessor.py +0 -0
  161. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_anndata_sizes.py +0 -0
  162. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_backed_access.py +0 -0
  163. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_tiledbsoma.py +0 -0
  164. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_valid_suffixes.py +0 -0
  165. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_zarr.py +0 -0
  166. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/objects.py +0 -0
  167. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/paths.py +0 -0
  168. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/__init__.py +0 -0
  169. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/_creation_settings.py +0 -0
  170. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/_transform_settings.py +0 -0
  171. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/types.py +0 -0
  172. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/versioning.py +0 -0
  173. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/integrations/__init__.py +0 -0
  174. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/setup/__init__.py +0 -0
  175. {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/setup/core/__init__.py +0 -0
  176. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/build.yml +0 -0
  177. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  178. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  179. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.gitignore +0 -0
  180. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.pre-commit-config.yaml +0 -0
  181. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/LICENSE +0 -0
  182. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/README.md +0 -0
  183. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/_bionty.py +0 -0
  184. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/__init__.py +0 -0
  185. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_display_sources.py +0 -0
  186. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_ontology.py +0 -0
  187. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_public_ontology.py +0 -0
  188. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_settings.py +0 -0
  189. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  190. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  191. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
  192. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_io.py +0 -0
  193. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  194. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  195. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
  196. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
  197. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
  198. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
  199. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
  200. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
  201. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_disease.py +0 -0
  202. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_drug.py +0 -0
  203. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
  204. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_gene.py +0 -0
  205. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_organism.py +0 -0
  206. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
  207. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
  208. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_protein.py +0 -0
  209. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  210. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
  211. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  212. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  213. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  214. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  215. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  216. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  217. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/__init__.py +0 -0
  218. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_add_ontology.py +0 -0
  219. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_bionty.py +0 -0
  220. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_settings.py +0 -0
  221. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/ids.py +0 -0
  222. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  223. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  224. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  225. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  226. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  227. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  228. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  229. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  230. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  231. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  232. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  233. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  234. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  235. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
  236. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
  237. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  238. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0038_alter_artifactcellline_created_by_and_more.py +0 -0
  239. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0039_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  240. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/__init__.py +0 -0
  241. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/models.py +0 -0
  242. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/concepts.md +0 -0
  243. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/config.md +0 -0
  244. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/extend.md +0 -0
  245. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  246. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide.md +0 -0
  247. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/index.md +0 -0
  248. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/reference.md +0 -0
  249. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/lamin-project.yaml +0 -0
  250. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/noxfile.py +0 -0
  251. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/pyproject.toml +0 -0
  252. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  253. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/dev/test_io.py +0 -0
  254. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  255. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_biosample.py +0 -0
  256. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellline.py +0 -0
  257. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  258. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_celltype.py +0 -0
  259. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  260. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_disease.py +0 -0
  261. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_drug.py +0 -0
  262. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  263. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  264. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_gene.py +0 -0
  265. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_organism.py +0 -0
  266. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_pathway.py +0 -0
  267. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  268. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_protein.py +0 -0
  269. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_tissue.py +0 -0
  270. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_bionty.py +0 -0
  271. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_lamindb.py +0 -0
  272. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_md5.py +0 -0
  273. {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_ontology.py +0 -0
  274. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.github/workflows/doc-changes.yml +0 -0
  275. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.gitignore +0 -0
  276. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.pre-commit-config.yaml +0 -0
  277. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/LICENSE +0 -0
  278. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/__init__.py +0 -0
  279. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0001_initial.py +0 -0
  280. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0002_biosample_patient_biosample_project.py +0 -0
  281. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0003_alter_project_uid.py +0 -0
  282. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0004_remove_biosample_project_clinicaltrial_and_more.py +0 -0
  283. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0005_alter_biosample_created_by_alter_biosample_run_and_more.py +0 -0
  284. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0006_artifactbiosample_artifactclinicaltrial_and_more.py +0 -0
  285. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/__init__.py +0 -0
  286. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/changelog.md +0 -0
  287. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/guide.md +0 -0
  288. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/index.md +0 -0
  289. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/quickstart.ipynb +0 -0
  290. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/reference.md +0 -0
  291. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/noxfile.py +0 -0
  292. {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/tests/test_notebooks.py +0 -0
  293. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.github/workflows/build.yml +0 -0
  294. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.github/workflows/doc-changes.yml +0 -0
  295. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.gitignore +0 -0
  296. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.pre-commit-config.yaml +0 -0
  297. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/LICENSE +0 -0
  298. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/README.md +0 -0
  299. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/__init__.py +0 -0
  300. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/migrations/0001_initial.py +0 -0
  301. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/migrations/__init__.py +0 -0
  302. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/models.py +0 -0
  303. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/noxfile.py +0 -0
  304. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/pyproject.toml +0 -0
  305. {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/tests/test_integrity.py +0 -0
  306. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  307. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.gitignore +0 -0
  308. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  309. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/LICENSE +0 -0
  310. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/README.md +0 -0
  311. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  312. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  313. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_settings.py +0 -0
  314. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/conftest.py +0 -0
  315. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  316. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  317. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  318. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  319. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  320. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  321. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-with-params.py +0 -0
  322. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_cli.py +0 -0
  323. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_load.py +0 -0
  324. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_migrate.py +0 -0
  325. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  326. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_files.py +0 -0
  327. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  328. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  329. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  330. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  331. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.gitignore +0 -0
  332. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  333. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/LICENSE +0 -0
  334. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/README.md +0 -0
  335. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/changelog.md +0 -0
  336. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  337. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
  338. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
  339. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  340. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  341. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  342. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  343. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +0 -0
  344. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  345. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  346. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  347. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  348. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-init-load-local-anonymously.ipynb +0 -0
  349. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  350. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  351. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  352. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  353. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/index.md +0 -0
  354. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/notebooks.md +0 -0
  355. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/reference.md +0 -0
  356. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  357. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  358. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_entry_points.py +0 -0
  359. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  360. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  361. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  362. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  363. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  364. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  365. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  366. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
  367. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  368. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  369. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  370. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  371. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  372. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  373. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  374. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  375. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  376. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  377. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  378. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  379. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
  380. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/noxfile.py +0 -0
  381. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-init-pass-user-no-writes.py +0 -0
  382. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
  383. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  384. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  385. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
  386. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_pass_user_no_writes.py +0 -0
  387. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  388. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  389. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  390. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  391. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
  392. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  393. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  394. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  395. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  396. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_entry_point.py +0 -0
  397. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  398. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  399. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  400. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  401. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  402. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  403. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  404. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.gitignore +0 -0
  405. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  406. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/CHANGELOG.md +0 -0
  407. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/LICENSE +0 -0
  408. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/README.md +0 -0
  409. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  410. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  411. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  412. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  413. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  414. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  415. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  416. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  417. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  418. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  419. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  420. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  421. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  422. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  423. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  424. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  425. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  426. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  427. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  428. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  429. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  430. {lamindb-0.76.11 → 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
  431. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  432. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  433. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  434. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  435. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
  436. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
  437. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
  438. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -0
  439. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0065_remove_collection_feature_sets_and_more.py +0 -0
  440. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0066_alter_artifact__feature_values_and_more.py +0 -0
  441. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  442. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  443. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/types.py +0 -0
  444. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/users.py +0 -0
  445. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/noxfile.py +0 -0
  446. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/conftest.py +0 -0
  447. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_integrity.py +0 -0
  448. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_models.py +0 -0
  449. {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_types.py +0 -0
  450. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.github/workflows/build.yml +0 -0
  451. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  452. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.gitignore +0 -0
  453. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.pre-commit-config.yaml +0 -0
  454. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/README.md +0 -0
  455. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/changelog.md +0 -0
  456. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  457. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
  458. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide.md +0 -0
  459. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/index.md +0 -0
  460. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/reference.md +0 -0
  461. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/noxfile.py +0 -0
  462. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/pyproject.toml +0 -0
  463. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/tests/test_integrity.py +0 -0
  464. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/tests/test_notebooks.py +0 -0
  465. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/__init__.py +0 -0
  466. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  467. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  468. {lamindb-0.76.11 → 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.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  470. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  471. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  472. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0022_remove_experiment_experiment_type_and_more.py +0 -0
  473. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0023_compoundtreatment_duration_and_more.py +0 -0
  474. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0024_compound_chembl_id.py +0 -0
  475. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  476. {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/models.py +0 -0
  477. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/conftest.py +0 -0
  478. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  479. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/no-title.ipynb +0 -0
  480. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/not-initialized.ipynb +0 -0
  481. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  482. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  483. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  484. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  485. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  486. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  487. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/script-to-test-versioning.py +0 -0
  488. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_artifact.py +0 -0
  489. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_artifact_folders.py +0 -0
  490. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_can_validate.py +0 -0
  491. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_collection.py +0 -0
  492. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_context.py +0 -0
  493. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_curate.py +0 -0
  494. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_data.py +0 -0
  495. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_db.py +0 -0
  496. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_delete.py +0 -0
  497. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature.py +0 -0
  498. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature_set.py +0 -0
  499. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_from_values.py +0 -0
  500. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_label_manager.py +0 -0
  501. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_load.py +0 -0
  502. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_manager.py +0 -0
  503. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_notebooks.py +0 -0
  504. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_parents.py +0 -0
  505. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_queryset.py +0 -0
  506. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_record.py +0 -0
  507. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_run.py +0 -0
  508. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_save.py +0 -0
  509. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_search.py +0 -0
  510. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_settings.py +0 -0
  511. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_transform.py +0 -0
  512. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_uid.py +0 -0
  513. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_ulabel.py +0 -0
  514. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_versioning.py +0 -0
  515. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_view.py +0 -0
  516. {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_visibility.py +0 -0
  517. {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/conftest.py +0 -0
  518. {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/test_storage.py +0 -0
  519. {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.76.11
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.7
11
+ Requires-Dist: lnschema_core==0.75.0
13
12
  Requires-Dist: lamin_utils==0.13.6
14
- Requires-Dist: lamin_cli==0.17.8
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.1 ; 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"
@@ -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
  {
@@ -141,6 +141,8 @@
141
141
  "cell_type": "markdown",
142
142
  "metadata": {},
143
143
  "source": [
144
+ "(track-run-parameters)=\n",
145
+ "\n",
144
146
  "## Track run parameters"
145
147
  ]
146
148
  },
@@ -165,7 +167,7 @@
165
167
  "\n",
166
168
  "ln.Param(name=\"input_dir\", dtype=\"str\").save()\n",
167
169
  "ln.Param(name=\"learning_rate\", dtype=\"float\").save()\n",
168
- "ln.Param(name=\"downsample\", dtype=\"bool\").save()"
170
+ "ln.Param(name=\"preprocess_params\", dtype=\"dict\").save()"
169
171
  ]
170
172
  },
171
173
  {
@@ -223,14 +225,24 @@
223
225
  },
224
226
  "outputs": [],
225
227
  "source": [
226
- "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()"
227
229
  ]
228
230
  },
229
231
  {
230
232
  "cell_type": "markdown",
231
233
  "metadata": {},
232
234
  "source": [
233
- "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."
234
246
  ]
235
247
  },
236
248
  {
@@ -247,6 +259,35 @@
247
259
  "run.params.get_values()"
248
260
  ]
249
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
+ },
250
291
  {
251
292
  "cell_type": "markdown",
252
293
  "metadata": {},
@@ -297,7 +338,7 @@
297
338
  },
298
339
  "outputs": [],
299
340
  "source": [
300
- "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",
301
342
  "\n",
302
343
  "# clean up test instance\n",
303
344
  "!rm -r ./test-track\n",
@@ -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
  {
@@ -947,7 +948,7 @@
947
948
  "name": "python",
948
949
  "nbconvert_exporter": "python",
949
950
  "pygments_lexer": "ipython3",
950
- "version": "3.10.13"
951
+ "version": "3.9.17"
951
952
  },
952
953
  "vscode": {
953
954
  "interpreter": {
@@ -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.11"
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:
@@ -130,12 +130,12 @@ def save_context_core(
130
130
  if response != "y":
131
131
  return "aborted-non-consecutive"
132
132
  # write the report
133
- report_path = ln_setup.settings.storage.cache_dir / filepath.name.replace(
133
+ report_path = ln_setup.settings.cache_dir / filepath.name.replace(
134
134
  ".ipynb", ".html"
135
135
  )
136
136
  notebook_to_report(filepath, report_path)
137
137
  # write the source code
138
- source_code_path = ln_setup.settings.storage.cache_dir / filepath.name.replace(
138
+ source_code_path = ln_setup.settings.cache_dir / filepath.name.replace(
139
139
  ".ipynb", ".py"
140
140
  )
141
141
  notebook_to_script(transform, filepath, source_code_path)
@@ -171,7 +171,7 @@ def save_context_core(
171
171
  transform.hash = hash
172
172
 
173
173
  # track environment
174
- 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"
175
175
  if env_path.exists():
176
176
  overwrite_env = True
177
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
  )
@@ -40,7 +40,7 @@ from lamindb._record import (
40
40
  transfer_to_default_db,
41
41
  )
42
42
  from lamindb._save import save
43
- from lamindb.core.exceptions import ValidationError
43
+ from lamindb.core.exceptions import DoesNotExist, ValidationError
44
44
  from lamindb.core.storage import LocalPathClasses
45
45
 
46
46
  from ._django import get_artifact_with_related
@@ -509,18 +509,49 @@ def filter_base(cls, **expression):
509
509
  expression = {feature_param: feature, f"value{comparator}": value}
510
510
  feature_value = value_model.filter(**expression)
511
511
  new_expression[f"_{feature_param}_values__in"] = feature_value
512
- else:
512
+ elif isinstance(value, (str, Record)):
513
+ # because SQL is sensitive to whether querying with __in or not
514
+ # and might return multiple equivalent records for the latter
515
+ # we distinguish cases in which we have multiple label matches vs. one
516
+ label = None
517
+ labels = None
513
518
  if isinstance(value, str):
519
+ # we need the comparator here because users might query like so
520
+ # ln.Artifact.features.filter(experiment__contains="Experi")
514
521
  expression = {f"name{comparator}": value}
515
- label = ULabel.get(**expression)
516
- new_expression["ulabels"] = label
522
+ labels = ULabel.filter(**expression).all()
523
+ if len(labels) == 0:
524
+ raise DoesNotExist(
525
+ f"Did not find a ULabel matching `name{comparator}={value}`"
526
+ )
527
+ elif len(labels) == 1:
528
+ label = labels[0]
529
+ elif isinstance(value, Record):
530
+ label = value
531
+ label_registry = (
532
+ label.__class__ if label is not None else labels[0].__class__
533
+ )
534
+ accessor_name = (
535
+ label_registry.artifacts.through.artifact.field._related_name
536
+ )
537
+ new_expression[f"{accessor_name}__feature"] = feature
538
+ if label is not None:
539
+ # simplified query if we have exactly one label
540
+ new_expression[
541
+ f"{accessor_name}__{label_registry.__name__.lower()}"
542
+ ] = label
517
543
  else:
518
- raise NotImplementedError
544
+ new_expression[
545
+ f"{accessor_name}__{label_registry.__name__.lower()}__in"
546
+ ] = labels
547
+ else:
548
+ # if passing a list of records, we want to
549
+ # find artifacts that are annotated by all of them at the same
550
+ # time; hence, we don't want the __in construct that we use to match strings
551
+ # https://laminlabs.slack.com/archives/C04FPE8V01W/p1688328084810609
552
+ raise NotImplementedError
519
553
  if cls == FeatureManager or cls == ParamManagerArtifact:
520
554
  return Artifact.filter(**new_expression)
521
- # might renable something similar in the future
522
- # elif cls == FeatureManagerCollection:
523
- # return Collection.filter(**new_expression)
524
555
  elif cls == ParamManagerRun:
525
556
  return Run.filter(**new_expression)
526
557
 
@@ -143,6 +143,11 @@ class Settings:
143
143
  path, kwargs = path_kwargs, {}
144
144
  set_managed_storage(path, **kwargs)
145
145
 
146
+ @property
147
+ def cache_dir(self) -> UPath:
148
+ """Cache root, a local directory to cache cloud files."""
149
+ return ln_setup.settings.cache_dir
150
+
146
151
  @property
147
152
  def storage_local(self) -> StorageSettings:
148
153
  """An additional local default storage (a path to its root).
@@ -16,7 +16,7 @@ class BlobHashNotFound(SystemExit):
16
16
 
17
17
  def get_git_repo_from_remote() -> Path:
18
18
  repo_url = settings.sync_git_repo
19
- repo_dir = setup_settings.storage.cache_dir / repo_url.split("/")[-1]
19
+ repo_dir = setup_settings.cache_dir / repo_url.split("/")[-1]
20
20
  if repo_dir.exists():
21
21
  logger.warning(f"git repo {repo_dir} already exists locally")
22
22
  return repo_dir
@@ -26,7 +26,7 @@ def get_git_repo_from_remote() -> Path:
26
26
  result = subprocess.run(
27
27
  ["git", "clone", "--depth", "10", f"{repo_url}.git"],
28
28
  capture_output=True,
29
- cwd=setup_settings.storage.cache_dir,
29
+ cwd=setup_settings.cache_dir,
30
30
  )
31
31
  if result.returncode != 0 or not repo_dir.exists():
32
32
  raise RuntimeError(result.stderr.decode())
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
 
12
12
 
13
13
  def track_environment(run: Run) -> None:
14
- filepath = ln_setup.settings.storage.cache_dir / f"run_env_pip_{run.uid}.txt"
14
+ filepath = ln_setup.settings.cache_dir / f"run_env_pip_{run.uid}.txt"
15
15
  # create a requirements.txt
16
16
  # we don't create a conda environment.yml mostly for its slowness
17
17
  try:
@@ -45,7 +45,7 @@ class ValidationError(SystemExit):
45
45
 
46
46
  # inspired by Django's DoesNotExist
47
47
  # equivalent to SQLAlchemy's NoResultFound
48
- class DoesNotExist(Exception):
48
+ class DoesNotExist(SystemExit):
49
49
  """No record found."""
50
50
 
51
51
  pass