lamindb 0.76.11__tar.gz → 0.76.13__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 (520) hide show
  1. {lamindb-0.76.11 → lamindb-0.76.13}/PKG-INFO +5 -5
  2. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/idempotency.ipynb +8 -7
  3. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/setup.ipynb +3 -1
  4. {lamindb-0.76.11 → lamindb-0.76.13}/docs/scripts/run-track-with-params.py +5 -2
  5. {lamindb-0.76.11 → lamindb-0.76.13}/docs/setup.ipynb +33 -19
  6. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/prepare-transfer-local-to-cloud.ipynb +1 -1
  7. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/vitessce.ipynb +10 -32
  8. {lamindb-0.76.11 → lamindb-0.76.13}/docs/track.ipynb +45 -4
  9. {lamindb-0.76.11 → lamindb-0.76.13}/docs/tutorial.ipynb +4 -4
  10. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/__init__.py +1 -1
  11. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_artifact.py +8 -11
  12. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_collection.py +6 -5
  13. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_feature_set.py +3 -1
  14. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_filter.py +0 -2
  15. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_finish.py +3 -3
  16. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_parents.py +18 -3
  17. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_query_manager.py +0 -15
  18. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_query_set.py +3 -3
  19. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_record.py +10 -12
  20. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_save.py +1 -1
  21. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_context.py +17 -11
  22. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_django.py +19 -5
  23. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_feature_manager.py +43 -10
  24. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_label_manager.py +70 -93
  25. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_settings.py +5 -0
  26. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_sync_git.py +2 -2
  27. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_track_environment.py +1 -1
  28. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/exceptions.py +1 -1
  29. lamindb-0.76.13/lamindb/core/schema.py +95 -0
  30. lamindb-0.76.13/lamindb/integrations/_vitessce.py +101 -0
  31. {lamindb-0.76.11 → lamindb-0.76.13}/noxfile.py +1 -1
  32. {lamindb-0.76.11 → lamindb-0.76.13}/pyproject.toml +5 -4
  33. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/__init__.py +1 -1
  34. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_experimentalfactor.py +3 -1
  35. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/sources.yaml +3 -0
  36. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/.github/workflows/build.yml +3 -3
  37. lamindb-0.76.13/sub/clinicore/README.md +8 -0
  38. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/models.py +65 -44
  39. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/pyproject.toml +1 -1
  40. lamindb-0.76.13/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  41. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/__main__.py +3 -3
  42. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/_cache.py +1 -1
  43. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/_load.py +4 -3
  44. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/pyproject.toml +5 -2
  45. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -23
  46. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +7 -3
  47. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +23 -47
  48. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +3 -3
  49. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  50. lamindb-0.76.13/sub/lamindb-setup/lamindb_setup/_cache.py +48 -0
  51. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_check_setup.py +1 -1
  52. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +14 -4
  53. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_delete.py +1 -1
  54. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_django.py +0 -2
  55. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_init_instance.py +21 -9
  56. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_setup_user.py +1 -1
  57. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +5 -66
  58. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +1 -1
  59. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings.py +39 -0
  60. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +5 -0
  61. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +13 -1
  62. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +20 -9
  63. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +4 -65
  64. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +1 -1
  65. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +1 -1
  66. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/django.py +11 -1
  67. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -2
  68. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/hashing.py +3 -1
  69. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/types.py +1 -3
  70. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/pyproject.toml +1 -0
  71. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_edge_request.py +12 -1
  72. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +8 -2
  73. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-local/test_all.py +34 -58
  74. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +2 -2
  75. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  76. lamindb-0.76.13/sub/lnschema-core/lnschema_core/migrations/0067_alter_featurevalue_unique_together_and_more.py +20 -0
  77. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/models.py +56 -42
  78. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/pyproject.toml +0 -1
  79. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_artifact.py +4 -0
  80. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_cache.py +6 -6
  81. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_feature_manager.py +14 -1
  82. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_parents.py +15 -0
  83. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_record.py +5 -0
  84. lamindb-0.76.11/lamindb/core/schema.py +0 -56
  85. lamindb-0.76.11/lamindb/integrations/_vitessce.py +0 -107
  86. lamindb-0.76.11/sub/clinicore/README.md +0 -7
  87. lamindb-0.76.11/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  88. lamindb-0.76.11/sub/lamindb-setup/lamindb_setup/_cache.py +0 -34
  89. {lamindb-0.76.11 → lamindb-0.76.13}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  90. {lamindb-0.76.11 → lamindb-0.76.13}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  91. {lamindb-0.76.11 → lamindb-0.76.13}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  92. {lamindb-0.76.11 → lamindb-0.76.13}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  93. {lamindb-0.76.11 → lamindb-0.76.13}/.github/workflows/build.yml +0 -0
  94. {lamindb-0.76.11 → lamindb-0.76.13}/.github/workflows/doc-changes.yml +0 -0
  95. {lamindb-0.76.11 → lamindb-0.76.13}/.gitignore +0 -0
  96. {lamindb-0.76.11 → lamindb-0.76.13}/.gitmodules +0 -0
  97. {lamindb-0.76.11 → lamindb-0.76.13}/.pre-commit-config.yaml +0 -0
  98. {lamindb-0.76.11 → lamindb-0.76.13}/CONTRIBUTING.md +0 -0
  99. {lamindb-0.76.11 → lamindb-0.76.13}/LICENSE +0 -0
  100. {lamindb-0.76.11 → lamindb-0.76.13}/README.md +0 -0
  101. {lamindb-0.76.11 → lamindb-0.76.13}/docs/api.md +0 -0
  102. {lamindb-0.76.11 → lamindb-0.76.13}/docs/arrays.ipynb +0 -0
  103. {lamindb-0.76.11 → lamindb-0.76.13}/docs/bio-registries.ipynb +0 -0
  104. {lamindb-0.76.11 → lamindb-0.76.13}/docs/bionty.md +0 -0
  105. {lamindb-0.76.11 → lamindb-0.76.13}/docs/changelog.md +0 -0
  106. {lamindb-0.76.11 → lamindb-0.76.13}/docs/clinicore.md +0 -0
  107. {lamindb-0.76.11 → lamindb-0.76.13}/docs/curate-any.ipynb +0 -0
  108. {lamindb-0.76.11 → lamindb-0.76.13}/docs/curate-df.ipynb +0 -0
  109. {lamindb-0.76.11 → lamindb-0.76.13}/docs/curate.md +0 -0
  110. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/acid.ipynb +0 -0
  111. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/delete.ipynb +0 -0
  112. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/import-schema.ipynb +0 -0
  113. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/keep-artifacts-local.ipynb +0 -0
  114. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/key.ipynb +0 -0
  115. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/reference-field.ipynb +0 -0
  116. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/test_notebooks.py +0 -0
  117. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/track-run-inputs.ipynb +0 -0
  118. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq/visibility.ipynb +0 -0
  119. {lamindb-0.76.11 → lamindb-0.76.13}/docs/faq.md +0 -0
  120. {lamindb-0.76.11 → lamindb-0.76.13}/docs/findrefs.md +0 -0
  121. {lamindb-0.76.11 → lamindb-0.76.13}/docs/guide.md +0 -0
  122. {lamindb-0.76.11 → lamindb-0.76.13}/docs/includes/features-lamindb.md +0 -0
  123. {lamindb-0.76.11 → lamindb-0.76.13}/docs/includes/features-laminhub.md +0 -0
  124. {lamindb-0.76.11 → lamindb-0.76.13}/docs/includes/installation.md +0 -0
  125. {lamindb-0.76.11 → lamindb-0.76.13}/docs/index.md +0 -0
  126. {lamindb-0.76.11 → lamindb-0.76.13}/docs/introduction.ipynb +0 -0
  127. {lamindb-0.76.11 → lamindb-0.76.13}/docs/lamindb.md +0 -0
  128. {lamindb-0.76.11 → lamindb-0.76.13}/docs/laminr.md +0 -0
  129. {lamindb-0.76.11 → lamindb-0.76.13}/docs/query-search.md +0 -0
  130. {lamindb-0.76.11 → lamindb-0.76.13}/docs/registries.ipynb +0 -0
  131. {lamindb-0.76.11 → lamindb-0.76.13}/docs/rest.md +0 -0
  132. {lamindb-0.76.11 → lamindb-0.76.13}/docs/schemas.ipynb +0 -0
  133. {lamindb-0.76.11 → lamindb-0.76.13}/docs/scripts/synced-with-git.py +0 -0
  134. {lamindb-0.76.11 → lamindb-0.76.13}/docs/signup-login.md +0 -0
  135. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/add-replace-cache.ipynb +0 -0
  136. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/anndata-accessor.ipynb +0 -0
  137. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/test-files/iris.csv +0 -0
  138. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/test-files/iris.data +0 -0
  139. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/test-files/new_iris.csv +0 -0
  140. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/test_notebooks.py +0 -0
  141. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  142. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage/upload.ipynb +0 -0
  143. {lamindb-0.76.11 → lamindb-0.76.13}/docs/storage.md +0 -0
  144. {lamindb-0.76.11 → lamindb-0.76.13}/docs/test_notebooks.py +0 -0
  145. {lamindb-0.76.11 → lamindb-0.76.13}/docs/transfer.ipynb +0 -0
  146. {lamindb-0.76.11 → lamindb-0.76.13}/docs/tutorial2.ipynb +0 -0
  147. {lamindb-0.76.11 → lamindb-0.76.13}/docs/wetlab.md +0 -0
  148. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_can_validate.py +0 -0
  149. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_curate.py +0 -0
  150. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_feature.py +0 -0
  151. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_from_values.py +0 -0
  152. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_is_versioned.py +0 -0
  153. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_run.py +0 -0
  154. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_storage.py +0 -0
  155. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_transform.py +0 -0
  156. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_ulabel.py +0 -0
  157. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_utils.py +0 -0
  158. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/_view.py +0 -0
  159. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/__init__.py +0 -0
  160. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_data.py +0 -0
  161. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/_mapped_collection.py +0 -0
  162. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/datasets/__init__.py +0 -0
  163. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/datasets/_core.py +0 -0
  164. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/datasets/_fake.py +0 -0
  165. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/fields.py +0 -0
  166. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/loaders.py +0 -0
  167. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/__init__.py +0 -0
  168. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_anndata_accessor.py +0 -0
  169. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_anndata_sizes.py +0 -0
  170. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_backed_access.py +0 -0
  171. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_tiledbsoma.py +0 -0
  172. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_valid_suffixes.py +0 -0
  173. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/_zarr.py +0 -0
  174. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/objects.py +0 -0
  175. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/storage/paths.py +0 -0
  176. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/subsettings/__init__.py +0 -0
  177. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/subsettings/_creation_settings.py +0 -0
  178. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/subsettings/_transform_settings.py +0 -0
  179. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/types.py +0 -0
  180. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/core/versioning.py +0 -0
  181. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/integrations/__init__.py +0 -0
  182. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/setup/__init__.py +0 -0
  183. {lamindb-0.76.11 → lamindb-0.76.13}/lamindb/setup/core/__init__.py +0 -0
  184. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/.github/workflows/build.yml +0 -0
  185. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
  186. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
  187. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/.gitignore +0 -0
  188. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/.pre-commit-config.yaml +0 -0
  189. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/LICENSE +0 -0
  190. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/README.md +0 -0
  191. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/_bionty.py +0 -0
  192. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/__init__.py +0 -0
  193. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/_display_sources.py +0 -0
  194. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/_ontology.py +0 -0
  195. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/_public_ontology.py +0 -0
  196. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/_settings.py +0 -0
  197. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/_sync_sources.py +0 -0
  198. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/dev/__init__.py +0 -0
  199. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
  200. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/dev/_io.py +0 -0
  201. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/dev/_md5.py +0 -0
  202. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/__init__.py +0 -0
  203. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
  204. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
  205. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
  206. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
  207. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
  208. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
  209. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_disease.py +0 -0
  210. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_drug.py +0 -0
  211. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
  212. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_gene.py +0 -0
  213. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_organism.py +0 -0
  214. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
  215. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
  216. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_protein.py +0 -0
  217. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
  218. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
  219. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
  220. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
  221. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
  222. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
  223. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
  224. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
  225. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/core/__init__.py +0 -0
  226. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/core/_add_ontology.py +0 -0
  227. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/core/_bionty.py +0 -0
  228. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/core/_settings.py +0 -0
  229. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/ids.py +0 -0
  230. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  231. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
  232. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
  233. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
  234. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
  235. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
  236. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
  237. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
  238. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
  239. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
  240. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
  241. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
  242. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
  243. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
  244. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
  245. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  246. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0038_alter_artifactcellline_created_by_and_more.py +0 -0
  247. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/0039_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
  248. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/migrations/__init__.py +0 -0
  249. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/bionty/models.py +0 -0
  250. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/guide/concepts.md +0 -0
  251. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/guide/config.md +0 -0
  252. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/guide/extend.md +0 -0
  253. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/guide/test_notebooks.py +0 -0
  254. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/guide.md +0 -0
  255. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/index.md +0 -0
  256. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/docs/reference.md +0 -0
  257. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/lamin-project.yaml +0 -0
  258. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/noxfile.py +0 -0
  259. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/pyproject.toml +0 -0
  260. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
  261. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/dev/test_io.py +0 -0
  262. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
  263. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_biosample.py +0 -0
  264. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_cellline.py +0 -0
  265. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
  266. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_celltype.py +0 -0
  267. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
  268. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_disease.py +0 -0
  269. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_drug.py +0 -0
  270. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
  271. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
  272. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_gene.py +0 -0
  273. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_organism.py +0 -0
  274. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_pathway.py +0 -0
  275. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_phenotype.py +0 -0
  276. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_protein.py +0 -0
  277. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/entities/test_tissue.py +0 -0
  278. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/test_bionty.py +0 -0
  279. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/test_lamindb.py +0 -0
  280. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/test_md5.py +0 -0
  281. {lamindb-0.76.11 → lamindb-0.76.13}/sub/bionty/tests/test_ontology.py +0 -0
  282. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/.github/workflows/doc-changes.yml +0 -0
  283. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/.gitignore +0 -0
  284. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/.pre-commit-config.yaml +0 -0
  285. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/LICENSE +0 -0
  286. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/__init__.py +0 -0
  287. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0001_initial.py +0 -0
  288. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0002_biosample_patient_biosample_project.py +0 -0
  289. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0003_alter_project_uid.py +0 -0
  290. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0004_remove_biosample_project_clinicaltrial_and_more.py +0 -0
  291. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0005_alter_biosample_created_by_alter_biosample_run_and_more.py +0 -0
  292. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/0006_artifactbiosample_artifactclinicaltrial_and_more.py +0 -0
  293. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/clinicore/migrations/__init__.py +0 -0
  294. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/docs/changelog.md +0 -0
  295. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/docs/guide.md +0 -0
  296. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/docs/index.md +0 -0
  297. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/docs/quickstart.ipynb +0 -0
  298. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/docs/reference.md +0 -0
  299. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/noxfile.py +0 -0
  300. {lamindb-0.76.11 → lamindb-0.76.13}/sub/clinicore/tests/test_notebooks.py +0 -0
  301. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/.github/workflows/build.yml +0 -0
  302. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/.github/workflows/doc-changes.yml +0 -0
  303. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/.gitignore +0 -0
  304. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/.pre-commit-config.yaml +0 -0
  305. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/LICENSE +0 -0
  306. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/README.md +0 -0
  307. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/findrefs/__init__.py +0 -0
  308. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/findrefs/migrations/0001_initial.py +0 -0
  309. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/findrefs/migrations/__init__.py +0 -0
  310. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/findrefs/models.py +0 -0
  311. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/noxfile.py +0 -0
  312. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/pyproject.toml +0 -0
  313. {lamindb-0.76.11 → lamindb-0.76.13}/sub/findrefs/tests/test_integrity.py +0 -0
  314. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
  315. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/.gitignore +0 -0
  316. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  317. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/LICENSE +0 -0
  318. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/README.md +0 -0
  319. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  320. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  321. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/lamin_cli/_settings.py +0 -0
  322. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/conftest.py +0 -0
  323. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  324. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  325. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  326. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
  327. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  328. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
  329. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/scripts/run-track-with-params.py +0 -0
  330. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_cli.py +0 -0
  331. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_load.py +0 -0
  332. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_migrate.py +0 -0
  333. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_multi_process.py +0 -0
  334. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_save_files.py +0 -0
  335. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  336. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  337. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  338. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
  339. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/.gitignore +0 -0
  340. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  341. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/LICENSE +0 -0
  342. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/README.md +0 -0
  343. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/changelog.md +0 -0
  344. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
  345. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
  346. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  347. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  348. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
  349. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
  350. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  351. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  352. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  353. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  354. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-init-load-local-anonymously.ipynb +0 -0
  355. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  356. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  357. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  358. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  359. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/index.md +0 -0
  360. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/notebooks.md +0 -0
  361. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/docs/reference.md +0 -0
  362. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  363. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  364. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_entry_points.py +0 -0
  365. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  366. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  367. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  368. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  369. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  370. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
  371. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
  372. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  373. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  374. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
  375. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  376. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  377. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  378. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  379. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  380. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
  381. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  382. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  383. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
  384. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/noxfile.py +0 -0
  385. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/scripts/script-init-pass-user-no-writes.py +0 -0
  386. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
  387. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  388. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  389. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
  390. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_init_pass_user_no_writes.py +0 -0
  391. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  392. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  393. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  394. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  395. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
  396. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  397. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  398. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
  399. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  400. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_entry_point.py +0 -0
  401. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  402. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  403. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  404. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  405. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
  406. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  407. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
  408. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/.gitignore +0 -0
  409. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  410. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/CHANGELOG.md +0 -0
  411. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/LICENSE +0 -0
  412. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/README.md +0 -0
  413. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  414. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  415. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  416. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  417. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  418. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  419. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  420. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  421. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
  422. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
  423. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
  424. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
  425. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
  426. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
  427. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
  428. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
  429. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
  430. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
  431. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
  432. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
  433. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
  434. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
  435. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
  436. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
  437. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
  438. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
  439. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
  440. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
  441. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
  442. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -0
  443. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0065_remove_collection_feature_sets_and_more.py +0 -0
  444. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/0066_alter_artifact__feature_values_and_more.py +0 -0
  445. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  446. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  447. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/types.py +0 -0
  448. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/lnschema_core/users.py +0 -0
  449. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/noxfile.py +0 -0
  450. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/tests/conftest.py +0 -0
  451. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/tests/test_integrity.py +0 -0
  452. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/tests/test_models.py +0 -0
  453. {lamindb-0.76.11 → lamindb-0.76.13}/sub/lnschema-core/tests/test_types.py +0 -0
  454. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/.github/workflows/build.yml +0 -0
  455. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
  456. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/.gitignore +0 -0
  457. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/.pre-commit-config.yaml +0 -0
  458. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/README.md +0 -0
  459. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/changelog.md +0 -0
  460. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
  461. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
  462. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/guide.md +0 -0
  463. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/index.md +0 -0
  464. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/docs/reference.md +0 -0
  465. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/noxfile.py +0 -0
  466. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/pyproject.toml +0 -0
  467. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/tests/test_integrity.py +0 -0
  468. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/tests/test_notebooks.py +0 -0
  469. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/__init__.py +0 -0
  470. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
  471. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
  472. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
  473. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
  474. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
  475. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
  476. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0022_remove_experiment_experiment_type_and_more.py +0 -0
  477. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0023_compoundtreatment_duration_and_more.py +0 -0
  478. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/0024_compound_chembl_id.py +0 -0
  479. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
  480. {lamindb-0.76.11 → lamindb-0.76.13}/sub/wetlab/wetlab/models.py +0 -0
  481. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/conftest.py +0 -0
  482. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  483. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/notebooks/no-title.ipynb +0 -0
  484. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/notebooks/not-initialized.ipynb +0 -0
  485. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  486. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  487. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  488. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  489. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  490. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  491. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/scripts/script-to-test-versioning.py +0 -0
  492. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_artifact_folders.py +0 -0
  493. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_can_validate.py +0 -0
  494. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_collection.py +0 -0
  495. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_context.py +0 -0
  496. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_curate.py +0 -0
  497. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_data.py +0 -0
  498. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_db.py +0 -0
  499. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_delete.py +0 -0
  500. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_feature.py +0 -0
  501. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_feature_set.py +0 -0
  502. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_from_values.py +0 -0
  503. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_label_manager.py +0 -0
  504. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_load.py +0 -0
  505. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_manager.py +0 -0
  506. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_notebooks.py +0 -0
  507. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_queryset.py +0 -0
  508. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_run.py +0 -0
  509. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_save.py +0 -0
  510. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_search.py +0 -0
  511. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_settings.py +0 -0
  512. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_transform.py +0 -0
  513. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_uid.py +0 -0
  514. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_ulabel.py +0 -0
  515. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_versioning.py +0 -0
  516. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_view.py +0 -0
  517. {lamindb-0.76.11 → lamindb-0.76.13}/tests/core/test_visibility.py +0 -0
  518. {lamindb-0.76.11 → lamindb-0.76.13}/tests/storage/conftest.py +0 -0
  519. {lamindb-0.76.11 → lamindb-0.76.13}/tests/storage/test_storage.py +0 -0
  520. {lamindb-0.76.11 → lamindb-0.76.13}/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.13
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.19.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"
@@ -70,7 +70,6 @@
70
70
  "import lamindb as ln\n",
71
71
  "import pytest\n",
72
72
  "\n",
73
- "ln.settings.verbosity = \"hint\"\n",
74
73
  "ln.track(\"ANW20Fr4eZgM0000\")"
75
74
  ]
76
75
  },
@@ -301,8 +300,7 @@
301
300
  "metadata": {},
302
301
  "outputs": [],
303
302
  "source": [
304
- "artifact = ln.Artifact(filepath, description=\"My fcs artifact\")\n",
305
- "artifact.save()"
303
+ "artifact = ln.Artifact(filepath, description=\"My fcs artifact\").save()"
306
304
  ]
307
305
  },
308
306
  {
@@ -316,7 +314,9 @@
316
314
  },
317
315
  "outputs": [],
318
316
  "source": [
319
- "assert artifact.hash == \"KCEXRahJ-Ui9Y6nksQ8z1A\""
317
+ "assert artifact.hash == \"KCEXRahJ-Ui9Y6nksQ8z1A\"\n",
318
+ "assert artifact.run == ln.context.run\n",
319
+ "assert len(artifact._previous_runs.all()) == 0"
320
320
  ]
321
321
  },
322
322
  {
@@ -355,7 +355,8 @@
355
355
  "outputs": [],
356
356
  "source": [
357
357
  "assert artifact.id == artifact2.id\n",
358
- "assert artifact.run == artifact2.run"
358
+ "assert artifact.run == artifact2.run\n",
359
+ "assert len(artifact._previous_runs.all()) == 0"
359
360
  ]
360
361
  },
361
362
  {
@@ -485,8 +486,7 @@
485
486
  "metadata": {},
486
487
  "outputs": [],
487
488
  "source": [
488
- "artifact4 = ln.Artifact(filepath, description=\"My new fcs artifact\")\n",
489
- "artifact4.save()"
489
+ "artifact4 = ln.Artifact(filepath, description=\"My new fcs artifact\").save()"
490
490
  ]
491
491
  },
492
492
  {
@@ -543,6 +543,7 @@
543
543
  },
544
544
  "outputs": [],
545
545
  "source": [
546
+ "!rm -rf ./test-idempotency\n",
546
547
  "!lamin delete --force test-idempotency"
547
548
  ]
548
549
  }
@@ -100,7 +100,9 @@
100
100
  "metadata": {},
101
101
  "outputs": [],
102
102
  "source": [
103
- "with pytest.raises(RuntimeError):\n",
103
+ "from lamindb_setup._init_instance import CannotSwitchDefaultInstance\n",
104
+ "\n",
105
+ "with pytest.raises(CannotSwitchDefaultInstance):\n",
104
106
  " ln.setup.init(storage=\"./testsetup2\")"
105
107
  ]
106
108
  },
@@ -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
  {
@@ -574,7 +575,6 @@
574
575
  "ln.Artifact.filter(\n",
575
576
  " created_by=users.anonymous,\n",
576
577
  " transform=transform,\n",
577
- " suffix=\".csv\",\n",
578
578
  ").df().head()"
579
579
  ]
580
580
  },
@@ -595,7 +595,7 @@
595
595
  },
596
596
  "outputs": [],
597
597
  "source": [
598
- "ln.Artifact.filter(key__startswith=\"iris_studies/study0_raw_images/\").df().head()"
598
+ "ln.Artifact.filter(key__startswith=\"iris_studies/study0_raw_images\").df().head()"
599
599
  ]
600
600
  },
601
601
  {
@@ -947,7 +947,7 @@
947
947
  "name": "python",
948
948
  "nbconvert_exporter": "python",
949
949
  "pygments_lexer": "ipython3",
950
- "version": "3.10.13"
950
+ "version": "3.9.17"
951
951
  },
952
952
  "vscode": {
953
953
  "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.13"
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)
@@ -331,9 +331,10 @@ def get_artifact_kwargs_from_data(
331
331
  artifact = stat_or_artifact
332
332
  # update the run of the existing artifact
333
333
  if run is not None:
334
- # save the information that this artifact was previously
335
- # produced by another run
336
- if artifact.run is not None:
334
+ # save the information that this artifact was previously produced by
335
+ # another run
336
+ # note: same logic exists for _output_collections_with_later_updates
337
+ if artifact.run is not None and artifact.run != run:
337
338
  artifact.run._output_artifacts_with_later_updates.add(artifact)
338
339
  # update the run of the artifact with the latest run
339
340
  stat_or_artifact.run = run
@@ -344,7 +345,7 @@ def get_artifact_kwargs_from_data(
344
345
 
345
346
  if revises is not None: # update provisional_uid
346
347
  provisional_uid, revises = create_uid(revises=revises, version=version)
347
- if settings.storage.cache_dir in path.parents:
348
+ if settings.cache_dir in path.parents:
348
349
  path = path.rename(path.with_name(f"{provisional_uid}{suffix}"))
349
350
 
350
351
  check_path_in_storage = False
@@ -749,10 +750,6 @@ def from_dir(
749
750
  run: Run | None = None,
750
751
  ) -> list[Artifact]:
751
752
  """{}""" # 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
753
  folderpath: UPath = create_path(path) # returns Path for local
757
754
  default_storage = settings.storage.record
758
755
  using_key = settings._using_key
@@ -1125,7 +1122,7 @@ def save(self, upload: bool | None = None, **kwargs) -> Artifact:
1125
1122
  raise RuntimeError(exception)
1126
1123
  if local_path is not None and not state_was_adding:
1127
1124
  # 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
1125
+ local_path_cache = ln_setup.settings.cache_dir / local_path.name
1129
1126
  # don't use Path.rename here because of cross-device link error
1130
1127
  # https://laminlabs.slack.com/archives/C04A0RMA0SC/p1710259102686969
1131
1128
  shutil.move(
@@ -145,15 +145,16 @@ def __init__(
145
145
  logger.warning(
146
146
  f"returning existing collection with same hash: {existing_collection}"
147
147
  )
148
- # update the run of the existing artifact
148
+ # update the run of the existing collection
149
149
  if run is not None:
150
- # save the information that this artifact was previously
151
- # produced by another run
152
- if existing_collection.run is not None:
150
+ # save the information that this collection was previously produced
151
+ # by another run
152
+ # note: same logic exists for _output_artifacts_with_later_updates
153
+ if existing_collection.run is not None and existing_collection.run != run:
153
154
  existing_collection.run._output_collections_with_later_updates.add(
154
155
  existing_collection
155
156
  )
156
- # update the run of the artifact with the latest run
157
+ # update the run of the collection with the latest run
157
158
  existing_collection.run = run
158
159
  existing_collection.transform = run.transform
159
160
  init_self_from_db(collection, existing_collection)
@@ -216,7 +216,9 @@ def members(self) -> QuerySet:
216
216
 
217
217
 
218
218
  def _get_related_name(self: FeatureSet) -> str:
219
- feature_sets_related_models = dict_related_model_to_related_name(self)
219
+ feature_sets_related_models = dict_related_model_to_related_name(
220
+ self, instance=self._state.db
221
+ )
220
222
  related_name = feature_sets_related_models.get(self.registry)
221
223
  return related_name
222
224
 
@@ -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:
@@ -310,7 +310,12 @@ def _record_label(record: Record, field: str | None = None):
310
310
  rf' FACE="Monospace">uid={record.uid}<BR/>version={record.version}</FONT>>'
311
311
  )
312
312
  elif isinstance(record, Run):
313
- name = f'{record.transform.name.replace("&", "&amp;")}'
313
+ if record.transform.name:
314
+ name = f'{record.transform.name.replace("&", "&amp;")}'
315
+ elif record.transform.key:
316
+ name = f'{record.transform.key.replace("&", "&amp;")}'
317
+ else:
318
+ name = f"{record.transform.uid}"
314
319
  user_display = (
315
320
  record.created_by.handle
316
321
  if record.created_by.name is None
@@ -365,7 +370,6 @@ def _get_all_parent_runs(data: Artifact | Collection) -> list:
365
370
  inputs_run += (
366
371
  r.input_collections.all().filter(visibility__in=[0, 1]).list()
367
372
  )
368
- run_inputs_outputs += [(inputs_run, r)]
369
373
  outputs_run = (
370
374
  r.__getattribute__(f"output_{name}s")
371
375
  .all()
@@ -376,7 +380,18 @@ def _get_all_parent_runs(data: Artifact | Collection) -> list:
376
380
  outputs_run += (
377
381
  r.output_collections.all().filter(visibility__in=[0, 1]).list()
378
382
  )
379
- run_inputs_outputs += [(r, outputs_run)]
383
+ # if inputs are outputs artifacts are the same, will result infinite loop
384
+ # so only show as outputs
385
+ overlap = set(inputs_run).intersection(outputs_run)
386
+ if overlap:
387
+ logger.warning(
388
+ f"The following artifacts are both inputs and outputs of Run(uid={r.uid}): {overlap}\n → Only showing as outputs."
389
+ )
390
+ inputs_run = list(set(inputs_run) - overlap)
391
+ if len(inputs_run) > 0:
392
+ run_inputs_outputs += [(inputs_run, r)]
393
+ if len(outputs_run) > 0:
394
+ run_inputs_outputs += [(r, outputs_run)]
380
395
  inputs += inputs_run
381
396
  runs = [f.run for f in inputs if f.run is not None]
382
397
  return run_inputs_outputs
@@ -98,26 +98,11 @@ class QueryManager(models.Manager):
98
98
 
99
99
  return _lookup(cls=self.all(), field=field, **kwargs)
100
100
 
101
- def __getitem__(self, item: str):
102
- try:
103
- source_field_name = self.source_field_name
104
- target_field_name = self.target_field_name
105
-
106
- if (
107
- source_field_name in {"artifact", "collection"}
108
- and target_field_name == "feature_set"
109
- ):
110
- return get_feature_set_by_slot_(host=self.instance).get(item)
111
-
112
- except Exception: # pragma: no cover
113
- return
114
-
115
101
 
116
102
  models.Manager.list = QueryManager.list
117
103
  models.Manager.df = QueryManager.df
118
104
  models.Manager.search = QueryManager.search
119
105
  models.Manager.lookup = QueryManager.lookup
120
- models.Manager.__getitem__ = QueryManager.__getitem__
121
106
  models.Manager._track_run_input_manager = QueryManager._track_run_input_manager
122
107
  # the two lines below would be easy if we could actually inherit; like this,
123
108
  # they're suboptimal
@@ -115,7 +115,7 @@ def get(
115
115
  else:
116
116
  assert idlike is None # noqa: S101
117
117
  expressions = process_expressions(registry, expressions)
118
- return registry.objects.get(**expressions)
118
+ return registry.objects.using(qs.db).get(**expressions)
119
119
 
120
120
 
121
121
  class RecordsList(UserList):
@@ -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