lamindb 0.76.2__tar.gz → 0.76.3__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 (457) hide show
  1. lamindb-0.76.3/.github/ISSUE_TEMPLATE/bug_report.yml +94 -0
  2. lamindb-0.76.3/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. lamindb-0.76.3/.github/ISSUE_TEMPLATE/feature_request.yml +19 -0
  4. {lamindb-0.76.2 → lamindb-0.76.3}/.github/workflows/build.yml +4 -3
  5. {lamindb-0.76.2 → lamindb-0.76.3}/.gitignore +2 -0
  6. {lamindb-0.76.2/sub/lnschema-core → lamindb-0.76.3}/.pre-commit-config.yaml +3 -4
  7. {lamindb-0.76.2 → lamindb-0.76.3}/PKG-INFO +4 -4
  8. {lamindb-0.76.2 → lamindb-0.76.3}/docs/arrays.ipynb +2 -2
  9. {lamindb-0.76.2 → lamindb-0.76.3}/docs/bio-registries.ipynb +4 -4
  10. {lamindb-0.76.2 → lamindb-0.76.3}/docs/curate-df.ipynb +89 -61
  11. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/keep-artifacts-local.ipynb +1 -1
  12. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/key.ipynb +2 -2
  13. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/track-run-inputs.ipynb +8 -8
  14. {lamindb-0.76.2 → lamindb-0.76.3}/docs/introduction.ipynb +119 -111
  15. {lamindb-0.76.2 → lamindb-0.76.3}/docs/schemas.ipynb +8 -10
  16. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/transfer-local-to-cloud.ipynb +1 -1
  17. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/vitessce.ipynb +1 -1
  18. {lamindb-0.76.2 → lamindb-0.76.3}/docs/track.ipynb +17 -18
  19. {lamindb-0.76.2 → lamindb-0.76.3}/docs/tutorial.ipynb +2 -4
  20. {lamindb-0.76.2 → lamindb-0.76.3}/docs/tutorial2.ipynb +3 -3
  21. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/__init__.py +4 -3
  22. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_artifact.py +8 -2
  23. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_curate.py +97 -34
  24. lamindb-0.76.3/lamindb/_filter.py +23 -0
  25. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_finish.py +1 -1
  26. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_query_set.py +26 -1
  27. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/__init__.py +2 -0
  28. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_context.py +3 -3
  29. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_mapped_collection.py +31 -1
  30. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/exceptions.py +1 -1
  31. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/__init__.py +1 -1
  32. lamindb-0.76.3/lamindb/core/storage/_tiledbsoma.py +192 -0
  33. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/integrations/__init__.py +3 -0
  34. {lamindb-0.76.2 → lamindb-0.76.3}/noxfile.py +28 -8
  35. {lamindb-0.76.2 → lamindb-0.76.3}/pyproject.toml +3 -3
  36. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/__init__.py +1 -1
  37. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/_bionty.py +7 -5
  38. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/_public_ontology.py +33 -37
  39. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/core/_add_ontology.py +19 -17
  40. lamindb-0.76.3/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +130 -0
  41. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/models.py +107 -152
  42. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_gene.py +0 -4
  43. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/__main__.py +14 -14
  44. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_cli.py +0 -6
  45. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +10 -4
  46. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  47. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_migrate.py +6 -3
  48. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +8 -5
  49. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +3 -2
  50. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/noxfile.py +2 -2
  51. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/pyproject.toml +3 -2
  52. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-local/test_all.py +1 -0
  53. {lamindb-0.76.2 → lamindb-0.76.3/sub/lnschema-core}/.pre-commit-config.yaml +1 -1
  54. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  55. lamindb-0.76.3/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +33 -0
  56. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/models.py +3 -3
  57. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/users.py +4 -1
  58. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/tests/test_models.py +0 -2
  59. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/conftest.py +14 -9
  60. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_artifact.py +7 -5
  61. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_cache.py +2 -2
  62. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_collection.py +13 -2
  63. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_context.py +8 -5
  64. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_curate.py +22 -10
  65. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_label_manager.py +4 -4
  66. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_settings.py +5 -2
  67. lamindb-0.76.3/tests/storage/conftest.py +41 -0
  68. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/storage}/test_storage.py +26 -50
  69. lamindb-0.76.2/lamindb/_filter.py +0 -37
  70. lamindb-0.76.2/lamindb/core/storage/_tiledbsoma.py +0 -229
  71. {lamindb-0.76.2 → lamindb-0.76.3}/.github/workflows/doc-changes.yml +0 -0
  72. {lamindb-0.76.2 → lamindb-0.76.3}/.gitmodules +0 -0
  73. {lamindb-0.76.2 → lamindb-0.76.3}/CONTRIBUTING.md +0 -0
  74. {lamindb-0.76.2 → lamindb-0.76.3}/LICENSE +0 -0
  75. {lamindb-0.76.2 → lamindb-0.76.3}/README.md +0 -0
  76. {lamindb-0.76.2 → lamindb-0.76.3}/docs/api.md +0 -0
  77. {lamindb-0.76.2 → lamindb-0.76.3}/docs/bionty.md +0 -0
  78. {lamindb-0.76.2 → lamindb-0.76.3}/docs/changelog.md +0 -0
  79. {lamindb-0.76.2 → lamindb-0.76.3}/docs/curate-any.ipynb +0 -0
  80. {lamindb-0.76.2 → lamindb-0.76.3}/docs/curate.md +0 -0
  81. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/acid.ipynb +0 -0
  82. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/delete.ipynb +0 -0
  83. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/idempotency.ipynb +0 -0
  84. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/import-schema.ipynb +0 -0
  85. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/reference-field.ipynb +0 -0
  86. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/setup.ipynb +0 -0
  87. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/test_notebooks.py +0 -0
  88. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq/visibility.ipynb +0 -0
  89. {lamindb-0.76.2 → lamindb-0.76.3}/docs/faq.md +0 -0
  90. {lamindb-0.76.2 → lamindb-0.76.3}/docs/guide.md +0 -0
  91. {lamindb-0.76.2 → lamindb-0.76.3}/docs/includes/features-lamindb.md +0 -0
  92. {lamindb-0.76.2 → lamindb-0.76.3}/docs/includes/features-laminhub.md +0 -0
  93. {lamindb-0.76.2 → lamindb-0.76.3}/docs/includes/installation.md +0 -0
  94. {lamindb-0.76.2 → lamindb-0.76.3}/docs/index.md +0 -0
  95. {lamindb-0.76.2 → lamindb-0.76.3}/docs/lamindb.md +0 -0
  96. {lamindb-0.76.2 → lamindb-0.76.3}/docs/query-search.md +0 -0
  97. {lamindb-0.76.2 → lamindb-0.76.3}/docs/readfcs.md +0 -0
  98. {lamindb-0.76.2 → lamindb-0.76.3}/docs/records.ipynb +0 -0
  99. {lamindb-0.76.2 → lamindb-0.76.3}/docs/rest.md +0 -0
  100. {lamindb-0.76.2 → lamindb-0.76.3}/docs/setup.ipynb +0 -0
  101. {lamindb-0.76.2 → lamindb-0.76.3}/docs/signup-login.md +0 -0
  102. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/add-replace-cache.ipynb +0 -0
  103. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/anndata-accessor.ipynb +0 -0
  104. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  105. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/test-files/iris.csv +0 -0
  106. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/test-files/iris.data +0 -0
  107. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/test-files/new_iris.csv +0 -0
  108. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/test_notebooks.py +0 -0
  109. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage/upload.ipynb +0 -0
  110. {lamindb-0.76.2 → lamindb-0.76.3}/docs/storage.md +0 -0
  111. {lamindb-0.76.2 → lamindb-0.76.3}/docs/test_notebooks.py +0 -0
  112. {lamindb-0.76.2 → lamindb-0.76.3}/docs/transfer.ipynb +0 -0
  113. {lamindb-0.76.2 → lamindb-0.76.3}/docs/wetlab.md +0 -0
  114. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_can_validate.py +0 -0
  115. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_collection.py +0 -0
  116. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_feature.py +0 -0
  117. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_feature_set.py +0 -0
  118. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_from_values.py +0 -0
  119. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_is_versioned.py +0 -0
  120. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_parents.py +0 -0
  121. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_query_manager.py +0 -0
  122. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_record.py +0 -0
  123. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_run.py +0 -0
  124. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_save.py +0 -0
  125. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_storage.py +0 -0
  126. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_transform.py +0 -0
  127. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_ulabel.py +0 -0
  128. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_utils.py +0 -0
  129. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/_view.py +0 -0
  130. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_data.py +0 -0
  131. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_feature_manager.py +0 -0
  132. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_label_manager.py +0 -0
  133. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_settings.py +0 -0
  134. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_sync_git.py +0 -0
  135. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/_track_environment.py +0 -0
  136. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/datasets/__init__.py +0 -0
  137. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/datasets/_core.py +0 -0
  138. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/datasets/_fake.py +0 -0
  139. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/fields.py +0 -0
  140. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/schema.py +0 -0
  141. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/_anndata_accessor.py +0 -0
  142. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/_anndata_sizes.py +0 -0
  143. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/_backed_access.py +0 -0
  144. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/_valid_suffixes.py +0 -0
  145. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/_zarr.py +0 -0
  146. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/objects.py +0 -0
  147. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/storage/paths.py +0 -0
  148. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/subsettings/__init__.py +0 -0
  149. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/subsettings/_creation_settings.py +0 -0
  150. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/subsettings/_transform_settings.py +0 -0
  151. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/types.py +0 -0
  152. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/core/versioning.py +0 -0
  153. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/integrations/_vitessce.py +0 -0
  154. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/setup/__init__.py +0 -0
  155. {lamindb-0.76.2 → lamindb-0.76.3}/lamindb/setup/core/__init__.py +0 -0
  156. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/.github/workflows/build.yml +0 -0
  157. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  158. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  159. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/.gitignore +0 -0
  160. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/.pre-commit-config.yaml +0 -0
  161. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/LICENSE +0 -0
  162. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/README.md +0 -0
  163. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/__init__.py +0 -0
  164. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/_display_sources.py +0 -0
  165. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/_ontology.py +0 -0
  166. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/_settings.py +0 -0
  167. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  168. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  169. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
  170. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/dev/_io.py +0 -0
  171. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  172. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  173. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
  174. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
  175. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
  176. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
  177. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
  178. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
  179. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_disease.py +0 -0
  180. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_drug.py +0 -0
  181. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
  182. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_experimentalfactor.py +0 -0
  183. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_gene.py +0 -0
  184. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_organism.py +0 -0
  185. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
  186. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
  187. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_protein.py +0 -0
  188. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  189. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
  190. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  191. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  192. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  193. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  194. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  195. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  196. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/base/sources.yaml +0 -0
  197. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/core/__init__.py +0 -0
  198. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/core/_bionty.py +0 -0
  199. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/core/_settings.py +0 -0
  200. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/ids.py +0 -0
  201. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  202. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  203. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  204. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  205. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  206. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  207. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  208. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  209. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  210. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  211. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  212. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  213. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  214. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
  215. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
  216. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/bionty/migrations/__init__.py +0 -0
  217. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/guide/concepts.md +0 -0
  218. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/guide/config.md +0 -0
  219. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/guide/extend.md +0 -0
  220. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  221. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/guide.md +0 -0
  222. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/index.md +0 -0
  223. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/docs/reference.md +0 -0
  224. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/lamin-project.yaml +0 -0
  225. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/noxfile.py +0 -0
  226. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/pyproject.toml +0 -0
  227. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  228. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/dev/test_io.py +0 -0
  229. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  230. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_biosample.py +0 -0
  231. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_cellline.py +0 -0
  232. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  233. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_celltype.py +0 -0
  234. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  235. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_disease.py +0 -0
  236. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_drug.py +0 -0
  237. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  238. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  239. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_organism.py +0 -0
  240. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_pathway.py +0 -0
  241. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  242. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_protein.py +0 -0
  243. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/entities/test_tissue.py +0 -0
  244. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/test_bionty.py +0 -0
  245. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/test_lamindb.py +0 -0
  246. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/test_md5.py +0 -0
  247. {lamindb-0.76.2 → lamindb-0.76.3}/sub/bionty/tests/test_ontology.py +0 -0
  248. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  249. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/.gitignore +0 -0
  250. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  251. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/README.md +0 -0
  252. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/__init__.py +0 -0
  253. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  254. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/_get.py +0 -0
  255. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  256. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  257. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/pyproject.toml +0 -0
  258. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/conftest.py +0 -0
  259. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  260. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  261. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  262. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  263. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  264. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  265. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_get.py +0 -0
  266. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_migrate.py +0 -0
  267. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  268. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_save_files.py +0 -0
  269. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  270. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  271. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  272. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  273. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/.gitignore +0 -0
  274. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  275. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/LICENSE +0 -0
  276. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/README.md +0 -0
  277. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/changelog.md +0 -0
  278. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  279. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
  280. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  281. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  282. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  283. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  284. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +0 -0
  285. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  286. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  287. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  288. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  289. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  290. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  291. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  292. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  293. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  294. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  295. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/index.md +0 -0
  296. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/notebooks.md +0 -0
  297. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/docs/reference.md +0 -0
  298. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  299. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  300. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  301. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  302. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +0 -0
  303. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  304. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  305. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  306. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  307. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  308. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  309. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  310. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  311. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
  312. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  313. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  314. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  315. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  316. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  317. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  318. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  319. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +0 -0
  320. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  321. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  322. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  323. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  324. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  325. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  326. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +0 -0
  327. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  328. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  329. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  330. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  331. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
  332. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  333. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  334. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  335. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
  336. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
  337. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  338. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  339. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
  340. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  341. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  342. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  343. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  344. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  345. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
  346. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  347. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  348. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  349. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  350. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  351. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  352. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  353. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  354. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  355. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  356. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  357. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  358. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/.gitignore +0 -0
  359. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/CHANGELOG.md +0 -0
  360. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/LICENSE +0 -0
  361. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/README.md +0 -0
  362. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  363. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  364. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  365. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  366. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  367. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  368. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  369. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  370. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  371. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  372. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  373. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  374. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  375. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  376. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  377. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  378. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  379. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  380. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  381. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  382. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  383. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
  384. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  385. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  386. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  387. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  388. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
  389. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
  390. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
  391. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  392. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  393. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/lnschema_core/types.py +0 -0
  394. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/noxfile.py +0 -0
  395. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/pyproject.toml +0 -0
  396. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/tests/conftest.py +0 -0
  397. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/tests/test_integrity.py +0 -0
  398. {lamindb-0.76.2 → lamindb-0.76.3}/sub/lnschema-core/tests/test_types.py +0 -0
  399. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/.github/workflows/build.yml +0 -0
  400. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  401. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/.gitignore +0 -0
  402. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/.pre-commit-config.yaml +0 -0
  403. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/README.md +0 -0
  404. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/changelog.md +0 -0
  405. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  406. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
  407. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/guide.md +0 -0
  408. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/index.md +0 -0
  409. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/docs/reference.md +0 -0
  410. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/noxfile.py +0 -0
  411. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/pyproject.toml +0 -0
  412. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/tests/test_integrity.py +0 -0
  413. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/tests/test_notebooks.py +0 -0
  414. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/__init__.py +0 -0
  415. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  416. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  417. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
  418. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  419. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  420. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  421. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  422. {lamindb-0.76.2 → lamindb-0.76.3}/sub/wetlab/wetlab/models.py +0 -0
  423. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  424. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/notebooks/no-title.ipynb +0 -0
  425. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/notebooks/not-initialized.ipynb +0 -0
  426. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  427. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  428. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/scripts/duplicate1/script-to-test-versioning.py +0 -0
  429. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/scripts/duplicate2/script-to-test-versioning.py +0 -0
  430. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/scripts/duplicate3/script-to-test-versioning.py +0 -0
  431. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/scripts/script-to-test-filename-change.py +0 -0
  432. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/scripts/script-to-test-versioning.py +0 -0
  433. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_artifact_folders.py +0 -0
  434. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_can_validate.py +0 -0
  435. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_data.py +0 -0
  436. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_db.py +0 -0
  437. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_delete.py +0 -0
  438. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_feature.py +0 -0
  439. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_feature_manager.py +0 -0
  440. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_feature_set.py +0 -0
  441. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_from_values.py +0 -0
  442. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_load.py +0 -0
  443. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_manager.py +0 -0
  444. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_notebooks.py +0 -0
  445. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_parents.py +0 -0
  446. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_queryset.py +0 -0
  447. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_record.py +0 -0
  448. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_run.py +0 -0
  449. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_save.py +0 -0
  450. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_search.py +0 -0
  451. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_transfer.py +0 -0
  452. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_transform.py +0 -0
  453. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_uid.py +0 -0
  454. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_ulabel.py +0 -0
  455. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_versioning.py +0 -0
  456. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_view.py +0 -0
  457. {lamindb-0.76.2/tests → lamindb-0.76.3/tests/core}/test_visibility.py +0 -0
@@ -0,0 +1,94 @@
1
+ name: Bug report
2
+ description: Report something that is broken or incorrect
3
+ labels: bug
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ **Note**: This is a public repository! Do not reveal any internal information.
9
+ Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug.
10
+ In brief:
11
+ * Please provide exact steps how to reproduce the bug in a clean Python environment if possible.
12
+
13
+ - type: textarea
14
+ id: report
15
+ attributes:
16
+ label: Report
17
+ description: A clear and concise description of what the bug is.
18
+ placeholder: |
19
+ This is a public repository!
20
+ Do not reveal any internal information.
21
+ validations:
22
+ required: true
23
+
24
+ - type: textarea
25
+ id: versions
26
+ attributes:
27
+ label: Version information
28
+ description: |
29
+ Please paste below the output of
30
+
31
+ ```bash
32
+ pip install session-info
33
+ ```
34
+
35
+ ```python
36
+ import session_info
37
+ session_info.show(html=False, dependencies=True)
38
+ ```
39
+ placeholder: |
40
+ -----
41
+ anndata 0.8.0rc2.dev27+ge524389
42
+ session_info 1.0.0
43
+ -----
44
+ asttokens NA
45
+ awkward 1.8.0
46
+ backcall 0.2.0
47
+ cython_runtime NA
48
+ dateutil 2.8.2
49
+ debugpy 1.6.0
50
+ decorator 5.1.1
51
+ entrypoints 0.4
52
+ executing 0.8.3
53
+ h5py 3.7.0
54
+ ipykernel 6.15.0
55
+ jedi 0.18.1
56
+ mpl_toolkits NA
57
+ natsort 8.1.0
58
+ numpy 1.22.4
59
+ packaging 21.3
60
+ pandas 1.4.2
61
+ parso 0.8.3
62
+ pexpect 4.8.0
63
+ pickleshare 0.7.5
64
+ pkg_resources NA
65
+ prompt_toolkit 3.0.29
66
+ psutil 5.9.1
67
+ ptyprocess 0.7.0
68
+ pure_eval 0.2.2
69
+ pydev_ipython NA
70
+ pydevconsole NA
71
+ pydevd 2.8.0
72
+ pydevd_file_utils NA
73
+ pydevd_plugins NA
74
+ pydevd_tracing NA
75
+ pygments 2.12.0
76
+ pytz 2022.1
77
+ scipy 1.8.1
78
+ setuptools 62.5.0
79
+ setuptools_scm NA
80
+ six 1.16.0
81
+ stack_data 0.3.0
82
+ tornado 6.1
83
+ traitlets 5.3.0
84
+ wcwidth 0.2.5
85
+ zmq 23.1.0
86
+ -----
87
+ IPython 8.4.0
88
+ jupyter_client 7.3.4
89
+ jupyter_core 4.10.0
90
+ -----
91
+ Python 3.9.13 | packaged by conda-forge | (main, May 27 2022, 16:58:50) [GCC 10.3.0]
92
+ Linux-5.18.6-arch1-1-x86_64-with-glibc2.35
93
+ -----
94
+ Session information updated at 2022-07-07 17:55
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: LaminHub issues
4
+ url: https://github.com/laminlabs/laminhub-public
5
+ about: If you have issues with LaminHub, please report them here.
6
+ - name: Enterprise support
7
+ url: https://lamin.ai/contact
8
+ about: If you have non-technical inquiries, please contact us directly.
@@ -0,0 +1,19 @@
1
+ name: Feature request
2
+ description: Propose a new feature for lamindb
3
+ labels: enhancement
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ **Note**: This is a public repository! Do not reveal any internal information.
9
+
10
+ - type: textarea
11
+ id: description
12
+ attributes:
13
+ label: Description of feature
14
+ description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered.
15
+ placeholder: |
16
+ This is a public repository!
17
+ Do not reveal any internal information.
18
+ validations:
19
+ required: true
@@ -14,14 +14,15 @@ jobs:
14
14
  fail-fast: false
15
15
  matrix:
16
16
  group:
17
- - "unit"
17
+ - "unit-core"
18
+ - "unit-storage"
18
19
  - "tutorial"
19
20
  - "guide"
20
21
  - "biology"
21
22
  - "faq"
22
23
  - "storage"
23
24
  - "cli"
24
- timeout-minutes: 11
25
+ timeout-minutes: 10
25
26
 
26
27
  steps:
27
28
  - uses: actions/checkout@v4
@@ -42,7 +43,7 @@ jobs:
42
43
  path: ~/.cache/pre-commit
43
44
  key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
44
45
  - name: cache postgres
45
- if: ${{ matrix.group == 'faq' || matrix.group == 'unit' }}
46
+ if: ${{ matrix.group == 'faq' || matrix.group == 'unit-core' || matrix.group == 'unit-storage' }}
46
47
  id: cache-postgres
47
48
  uses: actions/cache@v4
48
49
  with:
@@ -61,6 +61,8 @@ test-search3
61
61
  test-search4
62
62
  test-search5
63
63
  default_storage
64
+ default_storage_unit_core
65
+ default_storage_unit_storage
64
66
  test.ipynb
65
67
  run-tests
66
68
 
@@ -12,7 +12,7 @@ repos:
12
12
  - id: prettier
13
13
  exclude: |
14
14
  (?x)(
15
- docs/changelog.md
15
+ docs/changelog.md|.github/ISSUE_TEMPLATE/config.yml
16
16
  )
17
17
  - repo: https://github.com/kynan/nbstripout
18
18
  rev: 0.6.1
@@ -48,9 +48,8 @@ repos:
48
48
  hooks:
49
49
  - id: mypy
50
50
  args: [--no-strict-optional, --ignore-missing-imports]
51
- additional_dependencies:
52
- ["types-pkg-resources", "types-requests", "types-attrs"]
51
+ additional_dependencies: ["types-requests", "types-attrs"]
53
52
  exclude: |
54
53
  (?x)(
55
- test_notebooks.py
54
+ test_notebooks.py|script-to-test-versioning.py|tests/storage/conftest.py
56
55
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.76.2
3
+ Version: 0.76.3
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -9,8 +9,8 @@ Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: lnschema_core==0.73.2
13
- Requires-Dist: lamindb_setup==0.76.6
12
+ Requires-Dist: lnschema_core==0.73.3
13
+ Requires-Dist: lamindb_setup==0.76.7
14
14
  Requires-Dist: lamin_utils==0.13.4
15
15
  Requires-Dist: lamin_cli==0.16.2
16
16
  Requires-Dist: rapidfuzz
@@ -24,7 +24,7 @@ Requires-Dist: pandas
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
26
26
  Requires-Dist: lamindb_setup[aws] ; extra == "aws"
27
- Requires-Dist: bionty==0.48.3 ; extra == "bionty"
27
+ Requires-Dist: bionty==0.49.0 ; extra == "bionty"
28
28
  Requires-Dist: pre-commit ; extra == "dev"
29
29
  Requires-Dist: nox ; extra == "dev"
30
30
  Requires-Dist: laminci>=0.3 ; extra == "dev"
@@ -116,7 +116,7 @@
116
116
  "metadata": {},
117
117
  "outputs": [],
118
118
  "source": [
119
- "artifact = ln.Artifact.filter(key=\"lndb-storage/pbmc68k.h5ad\").one()"
119
+ "artifact = ln.Artifact.get(key=\"lndb-storage/pbmc68k.h5ad\")"
120
120
  ]
121
121
  },
122
122
  {
@@ -248,7 +248,7 @@
248
248
  "metadata": {},
249
249
  "outputs": [],
250
250
  "source": [
251
- "artifact = ln.Artifact.filter(key=\"lndb-storage/testfile.hdf5\").one()"
251
+ "artifact = ln.Artifact.get(key=\"lndb-storage/testfile.hdf5\")"
252
252
  ]
253
253
  },
254
254
  {
@@ -162,7 +162,7 @@
162
162
  "metadata": {},
163
163
  "outputs": [],
164
164
  "source": [
165
- "gdt_cell = bt.CellType.filter(ontology_id=\"CL:0000798\", created_by__handle=\"testuser1\").one()\n",
165
+ "gdt_cell = bt.CellType.get(ontology_id=\"CL:0000798\", created_by__handle=\"testuser1\")\n",
166
166
  "gdt_cell"
167
167
  ]
168
168
  },
@@ -644,7 +644,7 @@
644
644
  },
645
645
  "outputs": [],
646
646
  "source": [
647
- "hepatocyte = bt.CellType.filter(name=\"hepatocyte\").one()\n",
647
+ "hepatocyte = bt.CellType.get(name=\"hepatocyte\")\n",
648
648
  "hepatocyte.source"
649
649
  ]
650
650
  },
@@ -685,7 +685,7 @@
685
685
  "metadata": {},
686
686
  "outputs": [],
687
687
  "source": [
688
- "source = bt.Source.filter(entity=\"bionty.Organism\", name=\"ncbitaxon\").one()\n",
688
+ "source = bt.Source.get(entity=\"bionty.Organism\", name=\"ncbitaxon\")\n",
689
689
  "source"
690
690
  ]
691
691
  },
@@ -722,7 +722,7 @@
722
722
  "ln.save(records)\n",
723
723
  "\n",
724
724
  "# now we can query a iris organism and view its parents and children\n",
725
- "iris = bt.Organism.filter(name=\"iris\").one()\n",
725
+ "iris = bt.Organism.get(name=\"iris\")\n",
726
726
  "iris.view_parents(with_children=True)"
727
727
  ]
728
728
  },
@@ -5,19 +5,21 @@
5
5
  "id": "1d2cd769",
6
6
  "metadata": {},
7
7
  "source": [
8
- "# Curate DataFrame and AnnData objects\n",
8
+ "# Curate DataFrames and AnnDatas\n",
9
9
  "\n",
10
- "When we talk about \"curating datasets\", we typically mean three distinct actions:\n",
10
+ "Curating datasets typically means three things:\n",
11
11
  "\n",
12
- "1. Validate: ensure a dataset meets predefined validation criteria\n",
12
+ "1. Validate: ensure a dataset meets predefined _validation criteria_\n",
13
13
  "2. Standardize: transform a dataset so that it meets validation criteria, e.g., by fixing typos or using standardized identifiers\n",
14
14
  "3. Annotate: link a dataset against metadata records\n",
15
15
  "\n",
16
- "## Key Concepts\n",
16
+ "In LaminDB, valid metadata is metadata that's stored in a metadata registry and _validation criteria_ merely defines a mapping onto a field of a registry.\n",
17
17
  "\n",
18
- "- **Registries** store valid metadata records. For instance, if the string `\"Experiment 1\"` was registered as the `name` of a `ULabel` record, it's going to pass validation against `ULabel.name`.\n",
18
+ "```{admonition} Example\n",
19
19
  "\n",
20
- "- **Artifacts**: These are the data objects that you manage with LaminDB. Artifacts can be validated & curated with metadata records from registries."
20
+ "`\"Experiment 1\"` is a valid value for `ULabel.name` if a record with this name exists in the {class}`~lamindb.ULabel` registry.\n",
21
+ "\n",
22
+ "```"
21
23
  ]
22
24
  },
23
25
  {
@@ -35,25 +37,12 @@
35
37
  "!lamin init --storage ./test-curate --schema bionty"
36
38
  ]
37
39
  },
38
- {
39
- "cell_type": "code",
40
- "execution_count": null,
41
- "id": "a691aae0",
42
- "metadata": {},
43
- "outputs": [],
44
- "source": [
45
- "import lamindb as ln\n",
46
- "import bionty as bt\n",
47
- "import pandas as pd\n",
48
- "import anndata as ad"
49
- ]
50
- },
51
40
  {
52
41
  "cell_type": "markdown",
53
42
  "id": "946a3371",
54
43
  "metadata": {},
55
44
  "source": [
56
- "## Validate and standardize metadata from a DataFrame"
45
+ "## Validate a DataFrame"
57
46
  ]
58
47
  },
59
48
  {
@@ -61,7 +50,7 @@
61
50
  "id": "52bbbac2",
62
51
  "metadata": {},
63
52
  "source": [
64
- "Let's start with a DataFrame that we'd like to validate:"
53
+ "Let's start with a DataFrame that we'd like to validate."
65
54
  ]
66
55
  },
67
56
  {
@@ -75,6 +64,11 @@
75
64
  },
76
65
  "outputs": [],
77
66
  "source": [
67
+ "import lamindb as ln\n",
68
+ "import bionty as bt\n",
69
+ "import pandas as pd\n",
70
+ "\n",
71
+ "\n",
78
72
  "df = pd.DataFrame(\n",
79
73
  " {\n",
80
74
  " \"temperature\": [37.2, 36.3, 38.2],\n",
@@ -92,7 +86,7 @@
92
86
  "id": "c7d74af9",
93
87
  "metadata": {},
94
88
  "source": [
95
- "First, let's define the validation criteria:"
89
+ "Define validation criteria and create a {class}`~lamindb.Curator` object."
96
90
  ]
97
91
  },
98
92
  {
@@ -106,33 +100,16 @@
106
100
  },
107
101
  "outputs": [],
108
102
  "source": [
109
- "# define validation criteria for categorical variables\n",
110
- "# in the dictionary, each key is a column name of the dataframe, and each value is a registry field onto which values are mapped\n",
103
+ "# in the dictionary, each key is a column name of the dataframe, and each value\n",
104
+ "# is a registry field onto which values are mapped\n",
111
105
  "categoricals = {\n",
112
106
  " \"cell_type\": bt.CellType.name,\n",
113
107
  " \"assay_ontology_id\": bt.ExperimentalFactor.ontology_id,\n",
114
108
  " \"donor\": ln.ULabel.name,\n",
115
- "}"
116
- ]
117
- },
118
- {
119
- "cell_type": "markdown",
120
- "id": "6c293ddf",
121
- "metadata": {},
122
- "source": [
123
- "Now, initialize a Curate object by passing data and its validation criteria:"
124
- ]
125
- },
126
- {
127
- "cell_type": "code",
128
- "execution_count": null,
129
- "id": "78424b30",
130
- "metadata": {},
131
- "outputs": [],
132
- "source": [
133
- "# create an Curate object to guide validation and annotation\n",
134
- "# this object will use our DataFrame and the defined categorical criteria\n",
135
- "curate = ln.Curate.from_df(df, categoricals=categoricals)"
109
+ "}\n",
110
+ "\n",
111
+ "# pass validation criteria\n",
112
+ "curate = ln.Curator.from_df(df, categoricals=categoricals)"
136
113
  ]
137
114
  },
138
115
  {
@@ -140,7 +117,7 @@
140
117
  "id": "804ae191",
141
118
  "metadata": {},
142
119
  "source": [
143
- "The `validate()` method checks our data against the defined criteria. It identifies which values are already validated (exist in our registries) and which are new or potentially problematic."
120
+ "The {meth}`~lamindb.core.BaseCurator.validate` method checks our data against the defined criteria. It identifies which values are already validated (exist in our registries) and which are potentially problematic (do not yet exist in our registries)."
144
121
  ]
145
122
  },
146
123
  {
@@ -164,9 +141,9 @@
164
141
  "source": [
165
142
  "## Register new metadata values\n",
166
143
  "\n",
167
- "If you see any \"non-validated\" values, you'll need to decide whether to add them to your registries or correct them in your data.\n",
144
+ "If you see \"non-validated\" values, you'll need to decide whether to add them to your registries or \"fix\" them in your dataset.\n",
168
145
  "\n",
169
- "Because our current database instance is empty, here, we'll add values to the registries defined in the validation criteria."
146
+ "Because our current registries are still empty, we'll start by populating our {class}`~bionty.CellType` registry with values from a public ontology."
170
147
  ]
171
148
  },
172
149
  {
@@ -180,10 +157,36 @@
180
157
  },
181
158
  "outputs": [],
182
159
  "source": [
183
- "# this adds cell types that were validated (via a public ontology)\n",
160
+ "# this adds cell types that were validated based on a public ontology\n",
184
161
  "curate.add_validated_from(\"cell_type\")"
185
162
  ]
186
163
  },
164
+ {
165
+ "cell_type": "markdown",
166
+ "id": "5bcfc09f",
167
+ "metadata": {},
168
+ "source": [
169
+ "If we call `validate()` again, we see that one cell type still doesn't pass validation."
170
+ ]
171
+ },
172
+ {
173
+ "cell_type": "code",
174
+ "execution_count": null,
175
+ "id": "104f9932",
176
+ "metadata": {},
177
+ "outputs": [],
178
+ "source": [
179
+ "curate.validate()"
180
+ ]
181
+ },
182
+ {
183
+ "cell_type": "markdown",
184
+ "id": "8c2417c7",
185
+ "metadata": {},
186
+ "source": [
187
+ "Hence, let's understand which cell type in the public ontology might be the actual match."
188
+ ]
189
+ },
187
190
  {
188
191
  "cell_type": "code",
189
192
  "execution_count": null,
@@ -195,7 +198,7 @@
195
198
  },
196
199
  "outputs": [],
197
200
  "source": [
198
- "# use a lookup object to get the correct spelling of categories from a public reference\n",
201
+ "# use a lookup object to get the correct spelling of categories from a public ontology\n",
199
202
  "lookup = curate.lookup(\"public\")\n",
200
203
  "lookup"
201
204
  ]
@@ -211,7 +214,8 @@
211
214
  },
212
215
  "outputs": [],
213
216
  "source": [
214
- "cell_types = lookup[df.cell_type.name]\n",
217
+ "# here is an example for the cell_type column\n",
218
+ "cell_types = lookup[\"cell_type\"]\n",
215
219
  "cell_types.cerebral_cortex_pyramidal_neuron"
216
220
  ]
217
221
  },
@@ -226,12 +230,20 @@
226
230
  },
227
231
  "outputs": [],
228
232
  "source": [
229
- "# curate the cell type\n",
233
+ "# fix the cell type\n",
230
234
  "df.cell_type = df.cell_type.replace({\"cerebral pyramidal neuron\": cell_types.cerebral_cortex_pyramidal_neuron.name})\n",
231
235
  "# now register curated and validated cell types\n",
232
236
  "curate.add_validated_from(df.cell_type.name)"
233
237
  ]
234
238
  },
239
+ {
240
+ "cell_type": "markdown",
241
+ "id": "752142a1",
242
+ "metadata": {},
243
+ "source": [
244
+ "Now, do the same for `\"assay_ontology_id`\" and `\"donor\"`."
245
+ ]
246
+ },
235
247
  {
236
248
  "cell_type": "code",
237
249
  "execution_count": null,
@@ -243,7 +255,7 @@
243
255
  },
244
256
  "outputs": [],
245
257
  "source": [
246
- "# this adds assays that were validated (via a public ontology)\n",
258
+ "# this adds assays that were validated based on a public ontology\n",
247
259
  "curate.add_validated_from(\"assay_ontology_id\")"
248
260
  ]
249
261
  },
@@ -259,7 +271,7 @@
259
271
  "outputs": [],
260
272
  "source": [
261
273
  "# this adds donors that were _not_ validated\n",
262
- "curate.add_new_from(df.donor.name)"
274
+ "curate.add_new_from(\"donor\")"
263
275
  ]
264
276
  },
265
277
  {
@@ -283,7 +295,7 @@
283
295
  "id": "b9d09a10",
284
296
  "metadata": {},
285
297
  "source": [
286
- "## Validate an AnnData object\n",
298
+ "## Validate an AnnData\n",
287
299
  "\n",
288
300
  "Here we addtionally specify which `var_index` to validate against."
289
301
  ]
@@ -299,6 +311,8 @@
299
311
  },
300
312
  "outputs": [],
301
313
  "source": [
314
+ "import anndata as ad\n",
315
+ "\n",
302
316
  "X = pd.DataFrame(\n",
303
317
  " {\n",
304
318
  " \"ENSG00000081059\": [1, 2, 3], \n",
@@ -326,7 +340,7 @@
326
340
  },
327
341
  "outputs": [],
328
342
  "source": [
329
- "curate = ln.Curate.from_anndata(\n",
343
+ "curate = ln.Curator.from_anndata(\n",
330
344
  " adata, \n",
331
345
  " var_index=bt.Gene.ensembl_gene_id, # validate var.index against Gene.ensembl_gene_id\n",
332
346
  " categoricals=categoricals, \n",
@@ -350,10 +364,20 @@
350
364
  },
351
365
  {
352
366
  "cell_type": "markdown",
353
- "id": "a8a7a653",
367
+ "id": "71a917d1",
368
+ "metadata": {},
369
+ "source": [
370
+ "Save the validated genes following the instruction:"
371
+ ]
372
+ },
373
+ {
374
+ "cell_type": "code",
375
+ "execution_count": null,
376
+ "id": "e31dabcc",
354
377
  "metadata": {},
378
+ "outputs": [],
355
379
  "source": [
356
- "## Curate data object to pass validation"
380
+ "curate.add_validated_from_var_index()"
357
381
  ]
358
382
  },
359
383
  {
@@ -368,7 +392,11 @@
368
392
  "cell_type": "code",
369
393
  "execution_count": null,
370
394
  "id": "4e2fd290",
371
- "metadata": {},
395
+ "metadata": {
396
+ "tags": [
397
+ "hide-output"
398
+ ]
399
+ },
372
400
  "outputs": [],
373
401
  "source": [
374
402
  "curate.non_validated"
@@ -379,7 +407,7 @@
379
407
  "id": "b2ec4aeb",
380
408
  "metadata": {},
381
409
  "source": [
382
- "Subset anndata object to validated genes only:"
410
+ "Subset the `AnnData` to validated genes only:"
383
411
  ]
384
412
  },
385
413
  {
@@ -411,7 +439,7 @@
411
439
  },
412
440
  "outputs": [],
413
441
  "source": [
414
- "curate = ln.Curate.from_anndata(\n",
442
+ "curate = ln.Curator.from_anndata(\n",
415
443
  " adata_validated, \n",
416
444
  " var_index=bt.Gene.ensembl_gene_id, # validate var.index against Gene.ensembl_gene_id\n",
417
445
  " categoricals=categoricals, \n",
@@ -112,7 +112,7 @@
112
112
  "metadata": {},
113
113
  "outputs": [],
114
114
  "source": [
115
- "storage_record = ln.Storage.filter(root=ln.settings.storage_local.root).one()\n",
115
+ "storage_record = ln.Storage.get(root=ln.settings.storage_local.root)\n",
116
116
  "storage_record.description = \"Files stored locally in site X on server Y for reason ABC\"\n",
117
117
  "storage_record.save()\n",
118
118
  "ln.Storage.df()"
@@ -928,7 +928,7 @@
928
928
  "metadata": {},
929
929
  "outputs": [],
930
930
  "source": [
931
- "ln.Artifact.filter(key__icontains=\"raw_feature_bc_matrix/matrix.mtx.gz\").one().path"
931
+ "ln.Artifact.get(key__icontains=\"raw_feature_bc_matrix/matrix.mtx.gz\").path"
932
932
  ]
933
933
  },
934
934
  {
@@ -937,7 +937,7 @@
937
937
  "metadata": {},
938
938
  "outputs": [],
939
939
  "source": [
940
- "artifact = ln.Artifact.filter(description=\"cellranger raw\").one()\n",
940
+ "artifact = ln.Artifact.get(description=\"cellranger raw\")\n",
941
941
  "artifact.path.glob(\"*\")"
942
942
  ]
943
943
  }
@@ -99,7 +99,7 @@
99
99
  "metadata": {},
100
100
  "outputs": [],
101
101
  "source": [
102
- "artifact = ln.Artifact.filter(description=\"My image\").one()"
102
+ "artifact = ln.Artifact.get(description=\"My image\")"
103
103
  ]
104
104
  },
105
105
  {
@@ -125,7 +125,7 @@
125
125
  "metadata": {},
126
126
  "outputs": [],
127
127
  "source": [
128
- "ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()"
128
+ "ln.Run.get(id=ln.context.run.id).input_artifacts.all()"
129
129
  ]
130
130
  },
131
131
  {
@@ -138,7 +138,7 @@
138
138
  },
139
139
  "outputs": [],
140
140
  "source": [
141
- "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 0"
141
+ "assert len(ln.Run.get(id=ln.context.run.id).input_artifacts.all()) == 0"
142
142
  ]
143
143
  },
144
144
  {
@@ -180,7 +180,7 @@
180
180
  "metadata": {},
181
181
  "outputs": [],
182
182
  "source": [
183
- "for input in ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all():\n",
183
+ "for input in ln.Run.get(id=ln.context.run.id).input_artifacts.all():\n",
184
184
  " print(input)"
185
185
  ]
186
186
  },
@@ -194,7 +194,7 @@
194
194
  },
195
195
  "outputs": [],
196
196
  "source": [
197
- "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 1"
197
+ "assert len(ln.Run.get(id=ln.context.run.id).input_artifacts.all()) == 1"
198
198
  ]
199
199
  },
200
200
  {
@@ -228,7 +228,7 @@
228
228
  "metadata": {},
229
229
  "outputs": [],
230
230
  "source": [
231
- "artifact = ln.Artifact.filter(description=\"My csv\").one()"
231
+ "artifact = ln.Artifact.get(description=\"My csv\")"
232
232
  ]
233
233
  },
234
234
  {
@@ -246,7 +246,7 @@
246
246
  "metadata": {},
247
247
  "outputs": [],
248
248
  "source": [
249
- "for input in ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all():\n",
249
+ "for input in ln.Run.get(id=ln.context.run.id).input_artifacts.all():\n",
250
250
  " print(input)"
251
251
  ]
252
252
  },
@@ -260,7 +260,7 @@
260
260
  },
261
261
  "outputs": [],
262
262
  "source": [
263
- "assert len(ln.Run.filter(id=ln.context.run.id).one().input_artifacts.all()) == 2"
263
+ "assert len(ln.Run.get(id=ln.context.run.id).input_artifacts.all()) == 2"
264
264
  ]
265
265
  },
266
266
  {