lamindb 0.69.8__tar.gz → 0.69.9__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 (388) hide show
  1. {lamindb-0.69.8 → lamindb-0.69.9}/.github/workflows/build.yml +6 -1
  2. {lamindb-0.69.8 → lamindb-0.69.9}/PKG-INFO +4 -4
  3. {lamindb-0.69.8 → lamindb-0.69.9}/docs/changelog.md +4 -1
  4. {lamindb-0.69.8 → lamindb-0.69.9}/docs/introduction.ipynb +90 -78
  5. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/__init__.py +1 -1
  6. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_artifact.py +6 -9
  7. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_collection.py +3 -3
  8. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_feature_manager.py +2 -2
  9. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/file.py +3 -0
  10. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/types.py +0 -2
  11. lamindb-0.69.9/lamindb/setup/core/__init__.py +4 -0
  12. {lamindb-0.69.8 → lamindb-0.69.9}/pyproject.toml +3 -3
  13. lamindb-0.69.9/sub/lamin-cli/lamin_cli/__init__.py +3 -0
  14. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/__main__.py +1 -0
  15. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_cache.py +1 -0
  16. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_get.py +1 -0
  17. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_migration.py +1 -0
  18. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_save.py +1 -0
  19. lamindb-0.69.9/sub/lamin-cli/tests/scripts/initialized-no-git-sync.py +9 -0
  20. lamindb-0.69.9/sub/lamin-cli/tests/test_multi_process.py +35 -0
  21. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/changelog.md +7 -0
  22. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +19 -0
  23. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  24. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +109 -90
  25. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_init_instance.py +2 -1
  26. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -8
  27. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -20
  28. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +1 -4
  29. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +17 -24
  30. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/django.py +17 -53
  31. lamindb-0.69.9/sub/lamindb-setup/lamindb_setup/core/types.py +16 -0
  32. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/upath.py +2 -2
  33. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/noxfile.py +4 -1
  34. lamindb-0.69.9/sub/lamindb-setup/tests/hub-local/conftest.py +25 -0
  35. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/CHANGELOG.md +1 -0
  36. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  37. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/models.py +6 -8
  38. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/types.py +8 -13
  39. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_run_context.py +1 -1
  40. lamindb-0.69.8/lamindb/setup/core/__init__.py +0 -15
  41. lamindb-0.69.8/sub/lamin-cli/lamin_cli/__init__.py +0 -3
  42. lamindb-0.69.8/sub/lamindb-setup/lamindb_setup/core/types.py +0 -7
  43. lamindb-0.69.8/sub/lamindb-setup/tests/hub-local/conftest.py +0 -78
  44. lamindb-0.69.8/sub/lamindb-setup/tests/hub-local/test_check_s3_storage_empty.py +0 -33
  45. lamindb-0.69.8/sub/lamindb-setup/tests/hub-local/test_hosted_instance_deletion_gate.py +0 -32
  46. {lamindb-0.69.8 → lamindb-0.69.9}/.github/workflows/latest-changes.jinja2 +0 -0
  47. {lamindb-0.69.8 → lamindb-0.69.9}/.github/workflows/latest-changes.yml +0 -0
  48. {lamindb-0.69.8 → lamindb-0.69.9}/.gitignore +0 -0
  49. {lamindb-0.69.8 → lamindb-0.69.9}/.gitmodules +0 -0
  50. {lamindb-0.69.8 → lamindb-0.69.9}/.pre-commit-config.yaml +0 -0
  51. {lamindb-0.69.8 → lamindb-0.69.9}/LICENSE +0 -0
  52. {lamindb-0.69.8 → lamindb-0.69.9}/README.md +0 -0
  53. {lamindb-0.69.8 → lamindb-0.69.9}/docs/annotate-for-developers.ipynb +0 -0
  54. {lamindb-0.69.8 → lamindb-0.69.9}/docs/annotate.ipynb +0 -0
  55. {lamindb-0.69.8 → lamindb-0.69.9}/docs/bio-registries.ipynb +0 -0
  56. {lamindb-0.69.8 → lamindb-0.69.9}/docs/bionty-base.md +0 -0
  57. {lamindb-0.69.8 → lamindb-0.69.9}/docs/bionty.md +0 -0
  58. {lamindb-0.69.8 → lamindb-0.69.9}/docs/can-validate.ipynb +0 -0
  59. {lamindb-0.69.8 → lamindb-0.69.9}/docs/data.ipynb +0 -0
  60. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/acid.ipynb +0 -0
  61. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/delete.ipynb +0 -0
  62. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/idempotency.ipynb +0 -0
  63. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/import-schema.ipynb +0 -0
  64. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/key.ipynb +0 -0
  65. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/reference-field.ipynb +0 -0
  66. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/setup.ipynb +0 -0
  67. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/test_notebooks.py +0 -0
  68. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/track-run-inputs.ipynb +0 -0
  69. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq/visibility.ipynb +0 -0
  70. {lamindb-0.69.8 → lamindb-0.69.9}/docs/faq.md +0 -0
  71. {lamindb-0.69.8 → lamindb-0.69.9}/docs/features-lamindb.md +0 -0
  72. {lamindb-0.69.8 → lamindb-0.69.9}/docs/features-laminhub.md +0 -0
  73. {lamindb-0.69.8 → lamindb-0.69.9}/docs/guide.md +0 -0
  74. {lamindb-0.69.8 → lamindb-0.69.9}/docs/index.md +0 -0
  75. {lamindb-0.69.8 → lamindb-0.69.9}/docs/installation.md +0 -0
  76. {lamindb-0.69.8 → lamindb-0.69.9}/docs/lamin-utils.md +0 -0
  77. {lamindb-0.69.8 → lamindb-0.69.9}/docs/lamindb.md +0 -0
  78. {lamindb-0.69.8 → lamindb-0.69.9}/docs/meta.ipynb +0 -0
  79. {lamindb-0.69.8 → lamindb-0.69.9}/docs/nbproject.md +0 -0
  80. {lamindb-0.69.8 → lamindb-0.69.9}/docs/query-search.md +0 -0
  81. {lamindb-0.69.8 → lamindb-0.69.9}/docs/readfcs.md +0 -0
  82. {lamindb-0.69.8 → lamindb-0.69.9}/docs/reference.md +0 -0
  83. {lamindb-0.69.8 → lamindb-0.69.9}/docs/schemas.ipynb +0 -0
  84. {lamindb-0.69.8 → lamindb-0.69.9}/docs/setup.ipynb +0 -0
  85. {lamindb-0.69.8 → lamindb-0.69.9}/docs/signup-login.md +0 -0
  86. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/add-replace-stage.ipynb +0 -0
  87. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/anndata-accessor.ipynb +0 -0
  88. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  89. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/test-files/iris.csv +0 -0
  90. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/test-files/iris.data +0 -0
  91. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/test-files/new_iris.csv +0 -0
  92. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/test_notebooks.py +0 -0
  93. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  94. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage/upload.ipynb +0 -0
  95. {lamindb-0.69.8 → lamindb-0.69.9}/docs/storage.md +0 -0
  96. {lamindb-0.69.8 → lamindb-0.69.9}/docs/test_notebooks.py +0 -0
  97. {lamindb-0.69.8 → lamindb-0.69.9}/docs/track.ipynb +0 -0
  98. {lamindb-0.69.8 → lamindb-0.69.9}/docs/transfer.ipynb +0 -0
  99. {lamindb-0.69.8 → lamindb-0.69.9}/docs/tutorial.ipynb +0 -0
  100. {lamindb-0.69.8 → lamindb-0.69.9}/docs/tutorial2.ipynb +0 -0
  101. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_annotate.py +0 -0
  102. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_can_validate.py +0 -0
  103. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_feature.py +0 -0
  104. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_feature_set.py +0 -0
  105. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_filter.py +0 -0
  106. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_finish.py +0 -0
  107. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_from_values.py +0 -0
  108. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_is_versioned.py +0 -0
  109. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_parents.py +0 -0
  110. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_query_manager.py +0 -0
  111. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_query_set.py +0 -0
  112. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_registry.py +0 -0
  113. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_run.py +0 -0
  114. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_save.py +0 -0
  115. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_storage.py +0 -0
  116. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_transform.py +0 -0
  117. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_ulabel.py +0 -0
  118. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_utils.py +0 -0
  119. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/_view.py +0 -0
  120. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/__init__.py +0 -0
  121. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_data.py +0 -0
  122. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_label_manager.py +0 -0
  123. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_mapped_collection.py +0 -0
  124. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_run_context.py +0 -0
  125. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_settings.py +0 -0
  126. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_sync_git.py +0 -0
  127. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_track_environment.py +0 -0
  128. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_transform_settings.py +0 -0
  129. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/_view_tree.py +0 -0
  130. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/datasets/__init__.py +0 -0
  131. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/datasets/_core.py +0 -0
  132. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/datasets/_fake.py +0 -0
  133. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/exceptions.py +0 -0
  134. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/fields.py +0 -0
  135. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/__init__.py +0 -0
  136. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/_anndata_sizes.py +0 -0
  137. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/_backed_access.py +0 -0
  138. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/_zarr.py +0 -0
  139. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/storage/object.py +0 -0
  140. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/core/versioning.py +0 -0
  141. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/integrations/__init__.py +0 -0
  142. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/integrations/_vitessce.py +0 -0
  143. {lamindb-0.69.8 → lamindb-0.69.9}/lamindb/setup/__init__.py +0 -0
  144. {lamindb-0.69.8 → lamindb-0.69.9}/noxfile.py +0 -0
  145. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/.github/workflows/build.yml +0 -0
  146. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
  147. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
  148. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/.gitignore +0 -0
  149. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/.pre-commit-config.yaml +0 -0
  150. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/LICENSE +0 -0
  151. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/README.md +0 -0
  152. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/bionty/__init__.py +0 -0
  153. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/bionty/core/__init__.py +0 -0
  154. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/docs/changelog.md +0 -0
  155. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/docs/index.md +0 -0
  156. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/docs/reference.md +0 -0
  157. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/lamin-project.yaml +0 -0
  158. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/noxfile.py +0 -0
  159. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/pyproject.toml +0 -0
  160. {lamindb-0.69.8 → lamindb-0.69.9}/sub/bionty/tests/test_notebooks.py +0 -0
  161. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/.gitignore +0 -0
  162. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  163. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/README.md +0 -0
  164. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/pyproject.toml +0 -0
  165. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/conftest.py +0 -0
  166. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  167. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  168. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  169. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
  170. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_cli.py +0 -0
  171. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_get.py +0 -0
  172. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_migrate.py +0 -0
  173. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_files.py +0 -0
  174. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  175. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  176. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  177. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  178. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  179. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/.gitignore +0 -0
  180. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  181. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/LICENSE +0 -0
  182. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/README.md +0 -0
  183. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/01-init-on-prem-instance.ipynb +0 -0
  184. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/02-connect-on-prem-instance.ipynb +0 -0
  185. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/03-set-storage.ipynb +0 -0
  186. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  187. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
  188. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  189. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  190. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  191. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  192. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  193. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  194. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  195. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  196. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  197. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  198. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  199. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/index.md +0 -0
  200. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/notebooks.md +0 -0
  201. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/docs/reference.md +0 -0
  202. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_add_remote_storage.py +0 -0
  203. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  204. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  205. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  206. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  207. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  208. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  209. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  210. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  211. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  212. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  213. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  214. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  215. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  216. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  217. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  218. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  219. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  220. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  221. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  222. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +0 -0
  223. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  224. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  225. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  226. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  227. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  228. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  229. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  230. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  231. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/pyproject.toml +0 -0
  232. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  233. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  234. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  235. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  236. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  237. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  238. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
  239. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  240. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
  241. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  242. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  243. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  244. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  245. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  246. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  247. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  248. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
  249. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
  250. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
  251. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/.gitignore +0 -0
  252. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
  253. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/LICENSE +0 -0
  254. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/README.md +0 -0
  255. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/docs/changelog.md +0 -0
  256. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/docs/index.md +0 -0
  257. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/docs/reference.md +0 -0
  258. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lamin-project.yaml +0 -0
  259. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/__init__.py +0 -0
  260. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -0
  261. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +0 -0
  262. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +0 -0
  263. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +0 -0
  264. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
  265. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
  266. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
  267. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
  268. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
  269. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
  270. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
  271. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
  272. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
  273. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
  274. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
  275. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
  276. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
  277. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
  278. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
  279. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
  280. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
  281. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
  282. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
  283. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
  284. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
  285. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
  286. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
  287. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
  288. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  289. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
  290. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/models.py +0 -0
  291. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/noxfile.py +0 -0
  292. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/pyproject.toml +0 -0
  293. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
  294. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  295. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  296. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  297. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/.gitignore +0 -0
  298. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  299. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/LICENSE +0 -0
  300. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/README.md +0 -0
  301. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  302. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  303. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
  304. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  305. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  306. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  307. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  308. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  309. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  310. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  311. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  312. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
  313. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
  314. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
  315. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
  316. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
  317. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
  318. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
  319. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
  320. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
  321. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
  322. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
  323. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
  324. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
  325. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
  326. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
  327. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
  328. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
  329. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
  330. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
  331. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
  332. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
  333. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
  334. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
  335. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
  336. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
  337. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
  338. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
  339. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  340. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
  341. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
  342. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
  343. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
  344. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
  345. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  346. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  347. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  348. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/users.py +0 -0
  349. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/noxfile.py +0 -0
  350. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/pyproject.toml +0 -0
  351. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/tests/test_integrity.py +0 -0
  352. {lamindb-0.69.8 → lamindb-0.69.9}/sub/lnschema-core/tests/test_types.py +0 -0
  353. {lamindb-0.69.8 → lamindb-0.69.9}/tests/conftest.py +0 -0
  354. {lamindb-0.69.8 → lamindb-0.69.9}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
  355. {lamindb-0.69.8 → lamindb-0.69.9}/tests/notebooks/no-title.ipynb +0 -0
  356. {lamindb-0.69.8 → lamindb-0.69.9}/tests/notebooks/not-initialized.ipynb +0 -0
  357. {lamindb-0.69.8 → lamindb-0.69.9}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  358. {lamindb-0.69.8 → lamindb-0.69.9}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  359. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_annotate.py +0 -0
  360. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_artifact.py +0 -0
  361. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_cache.py +0 -0
  362. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_can_validate.py +0 -0
  363. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_collection.py +0 -0
  364. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_data.py +0 -0
  365. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_db.py +0 -0
  366. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_delete.py +0 -0
  367. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_feature.py +0 -0
  368. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_feature_manager.py +0 -0
  369. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_feature_set.py +0 -0
  370. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_from_values.py +0 -0
  371. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_label_manager.py +0 -0
  372. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_load.py +0 -0
  373. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_manager.py +0 -0
  374. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_notebooks.py +0 -0
  375. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_parents.py +0 -0
  376. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_queryset.py +0 -0
  377. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_registry.py +0 -0
  378. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_run.py +0 -0
  379. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_save.py +0 -0
  380. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_settings.py +0 -0
  381. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_storage.py +0 -0
  382. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_transfer.py +0 -0
  383. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_transform.py +0 -0
  384. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_uid.py +0 -0
  385. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_ulabel.py +0 -0
  386. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_versioning.py +0 -0
  387. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_view.py +0 -0
  388. {lamindb-0.69.8 → lamindb-0.69.9}/tests/test_visibility.py +0 -0
@@ -30,6 +30,11 @@ jobs:
30
30
  submodules: recursive
31
31
  fetch-depth: 0
32
32
  - uses: actions/setup-python@v5
33
+ if: ${{ matrix.group == 'storage' }}
34
+ with:
35
+ python-version: "3.9" # run just one job with a different python version
36
+ - uses: actions/setup-python@v5
37
+ if: ${{ matrix.group != 'storage' }}
33
38
  with:
34
39
  python-version: "3.11"
35
40
  - name: cache pre-commit
@@ -100,7 +105,7 @@ jobs:
100
105
  aws-region: us-east-1
101
106
  - uses: actions/setup-python@v5
102
107
  with:
103
- python-version: "3.10"
108
+ python-version: "3.10" # use 3.10, 3.8 and 3.11 give issues
104
109
  - run: pip install -U laminci
105
110
  - run: nox -s "install(group='docs')"
106
111
  - uses: actions/download-artifact@v2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.69.8
3
+ Version: 0.69.9
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -9,10 +9,10 @@ Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: lnschema_core==0.64.5
13
- Requires-Dist: lamindb_setup==0.68.5
12
+ Requires-Dist: lnschema_core==0.64.6
13
+ Requires-Dist: lamindb_setup==0.69.0
14
14
  Requires-Dist: lamin_utils==0.13.1
15
- Requires-Dist: lamin_cli==0.12.0
15
+ Requires-Dist: lamin_cli==0.12.1
16
16
  Requires-Dist: rapidfuzz
17
17
  Requires-Dist: pyarrow
18
18
  Requires-Dist: typing_extensions!=4.6.0
@@ -6,9 +6,12 @@
6
6
 
7
7
  ## 0.69
8
8
 
9
+ ### 0.69.9 {small}`2024-04-04`
10
+
11
+ - 🐛 Fix clashes for multiple processes [PR](https://github.com/laminlabs/lamindb/pull/1553) [@falexwolf](https://github.com/falexwolf)
12
+
9
13
  ### 0.69.8 {small}`2024-04-04`
10
14
 
11
- - 🐛 Avoid an error due to deleting the same file by multiple processes [PR](https://github.com/laminlabs/lamindb-setup/pull/703) [@Koncopd](https://github.com/Koncopd)
12
15
  - ♻️ Use future annotations [PR](https://github.com/laminlabs/lamindb/pull/1549) [@Zethson](https://github.com/Zethson)
13
16
 
14
17
  ### 0.69.7 {small}`2024-04-03`
@@ -77,9 +77,9 @@
77
77
  "cell_type": "markdown",
78
78
  "metadata": {},
79
79
  "source": [
80
- "### Provenance\n",
80
+ "### Data lineage\n",
81
81
  "\n",
82
- "Run {meth}`~lamindb.track` to auto-generate IDs to track data lineage."
82
+ "Run {meth}`~lamindb.track` to track data lineage."
83
83
  ]
84
84
  },
85
85
  {
@@ -88,7 +88,7 @@
88
88
  "metadata": {},
89
89
  "outputs": [],
90
90
  "source": [
91
- "# tag your code with auto-generated identifiers\n",
91
+ "# tag your notebook or script with auto-generated identifiers\n",
92
92
  "ln.settings.transform.stem_uid = \"FPnfDtJz8qbE\"\n",
93
93
  "ln.settings.transform.version = \"1\"\n",
94
94
  "\n",
@@ -157,7 +157,7 @@
157
157
  "cell_type": "markdown",
158
158
  "metadata": {},
159
159
  "source": [
160
- "### Label\n",
160
+ "### Label artifacts\n",
161
161
  "\n",
162
162
  "Label an artifact with {class}`~lamindb.ULabel`."
163
163
  ]
@@ -181,7 +181,7 @@
181
181
  "cell_type": "markdown",
182
182
  "metadata": {},
183
183
  "source": [
184
- "### Query\n",
184
+ "### Query anything\n",
185
185
  "\n",
186
186
  "Because, under-the-hood, LaminDB is SQL, you can write arbitrary relational queries."
187
187
  ]
@@ -255,9 +255,9 @@
255
255
  "cell_type": "markdown",
256
256
  "metadata": {},
257
257
  "source": [
258
- "### Public ontologies\n",
258
+ "## Validate & annotate\n",
259
259
  "\n",
260
- "Every {py:mod}`bionty` registry is based on public ontologies."
260
+ "Let's validate a `DataFrame` by passing validation criteria in the `Annotate` constructor."
261
261
  ]
262
262
  },
263
263
  {
@@ -266,10 +266,12 @@
266
266
  "metadata": {},
267
267
  "outputs": [],
268
268
  "source": [
269
- "import bionty as bt\n",
270
- "\n",
271
- "cell_types = bt.CellType.public()\n",
272
- "cell_types"
269
+ "annotate = ln.Annotate.from_df(\n",
270
+ " df,\n",
271
+ " columns=ln.Feature.name, # map column names\n",
272
+ " categoricals={df.perturbation.name: ln.ULabel.name}, # map categories\n",
273
+ ")\n",
274
+ "annotate.validate()"
273
275
  ]
274
276
  },
275
277
  {
@@ -278,16 +280,22 @@
278
280
  "metadata": {},
279
281
  "outputs": [],
280
282
  "source": [
281
- "cell_types.search(\"gamma delta T cell\").head(2)"
283
+ "# add non-validated terms to registries\n",
284
+ "annotate.add_new_from_columns()\n",
285
+ "annotate.add_new_from(df.perturbation.name)\n",
286
+ "\n",
287
+ "# view the registered features\n",
288
+ "ln.Feature.df()"
282
289
  ]
283
290
  },
284
291
  {
285
- "cell_type": "markdown",
292
+ "cell_type": "code",
293
+ "execution_count": null,
286
294
  "metadata": {},
295
+ "outputs": [],
287
296
  "source": [
288
- "## Validate & annotate\n",
289
- "\n",
290
- "Let's validate a `DataFrame` by passing validation criteria in the `Annotate` constructor."
297
+ "# view the registered ULabels\n",
298
+ "ln.ULabel.df()"
291
299
  ]
292
300
  },
293
301
  {
@@ -296,12 +304,12 @@
296
304
  "metadata": {},
297
305
  "outputs": [],
298
306
  "source": [
299
- "annotate = ln.Annotate.from_df(\n",
300
- " df,\n",
301
- " columns=ln.Feature.name, # validate column names\n",
302
- " categoricals={df.perturbation.name: ln.ULabel.name}, # validate categories\n",
303
- ")\n",
304
- "annotate.validate()"
307
+ "# now the validation passes\n",
308
+ "annotate.validate()\n",
309
+ "\n",
310
+ "# annotate and save the artifact\n",
311
+ "artifact = annotate.save_artifact(description=\"my RNA-seq\", version=\"1\")\n",
312
+ "artifact.describe()"
305
313
  ]
306
314
  },
307
315
  {
@@ -310,12 +318,9 @@
310
318
  "metadata": {},
311
319
  "outputs": [],
312
320
  "source": [
313
- "# add non-validated terms to registries for column names and perturbations\n",
314
- "annotate.add_new_from_columns()\n",
315
- "annotate.add_new_from(df.perturbation.name)\n",
316
- "\n",
317
- "# view the registered features\n",
318
- "ln.Feature.df()"
321
+ "# get lookup object for the entities of interest\n",
322
+ "lookups = annotate.lookup()\n",
323
+ "lookups"
319
324
  ]
320
325
  },
321
326
  {
@@ -324,15 +329,9 @@
324
329
  "metadata": {},
325
330
  "outputs": [],
326
331
  "source": [
327
- "# view the registered ULabels\n",
328
- "ln.ULabel.df()\n",
329
- "\n",
330
- "# now the validation passes\n",
331
- "annotate.validate()\n",
332
- "\n",
333
- "# annotate and save the artifact\n",
334
- "artifact = annotate.save_artifact(description=\"my RNA-seq\", version=\"1\")\n",
335
- "artifact.describe()"
332
+ "# filter artifacts with specific labels\n",
333
+ "perturbations = lookups[\"perturbation\"]\n",
334
+ "ln.Artifact.filter(ulabels=candidate_marker_study).filter(ulabels=perturbations.ifng).one()"
336
335
  ]
337
336
  },
338
337
  {
@@ -347,49 +346,49 @@
347
346
  ]
348
347
  },
349
348
  {
350
- "cell_type": "code",
351
- "execution_count": null,
349
+ "cell_type": "markdown",
352
350
  "metadata": {},
353
- "outputs": [],
354
351
  "source": [
355
- "# get lookup object for the entities of interest\n",
356
- "lookups = annotate.lookup()\n",
357
- "lookups"
352
+ "## Biological registries"
358
353
  ]
359
354
  },
360
355
  {
361
- "cell_type": "code",
362
- "execution_count": null,
356
+ "cell_type": "markdown",
363
357
  "metadata": {},
364
- "outputs": [],
365
- "source": []
358
+ "source": [
359
+ "The generic {class}`~lamindb.Feature` and {class}`~lamindb.ULabel` registries will get you pretty far.\n",
360
+ "\n",
361
+ "Let's now look at what you do can with a dedicated biological registry like {class}`~bionty.Gene`."
362
+ ]
366
363
  },
367
364
  {
368
- "cell_type": "code",
369
- "execution_count": null,
365
+ "cell_type": "markdown",
370
366
  "metadata": {},
371
- "outputs": [],
372
367
  "source": [
373
- "# filter artifacts with specific labels\n",
374
- "perturbations = lookups[\"perturbation\"]\n",
375
- "ln.Artifact.filter(ulabels=candidate_marker_study).filter(ulabels=perturbations.ifng).one()"
368
+ "### Access public ontologies\n",
369
+ "\n",
370
+ "Every {py:mod}`bionty` registry is based on public ontologies."
376
371
  ]
377
372
  },
378
373
  {
379
- "cell_type": "markdown",
374
+ "cell_type": "code",
375
+ "execution_count": null,
380
376
  "metadata": {},
377
+ "outputs": [],
381
378
  "source": [
382
- "## Biological types"
379
+ "import bionty as bt\n",
380
+ "\n",
381
+ "cell_types = bt.CellType.public()\n",
382
+ "cell_types"
383
383
  ]
384
384
  },
385
385
  {
386
- "cell_type": "markdown",
386
+ "cell_type": "code",
387
+ "execution_count": null,
387
388
  "metadata": {},
389
+ "outputs": [],
388
390
  "source": [
389
- "{class}`~lamindb.Feature` and {class}`~lamindb.ULabel` will get you pretty far.\n",
390
- "However, if you frequently use a specific entity, you'll want a dedicated registry.\n",
391
- "\n",
392
- "Let’s look at the example of {class}`~bionty.Gene` and use it to register features."
391
+ "cell_types.search(\"gamma delta T cell\").head(2)"
393
392
  ]
394
393
  },
395
394
  {
@@ -446,7 +445,7 @@
446
445
  "cell_type": "markdown",
447
446
  "metadata": {},
448
447
  "source": [
449
- "### Manage biological registries\n",
448
+ "### Add new entities to biological registries\n",
450
449
  "\n",
451
450
  "Create a cell type record and add a new cell state."
452
451
  ]
@@ -487,7 +486,14 @@
487
486
  "cell_type": "markdown",
488
487
  "metadata": {},
489
488
  "source": [
490
- "## Collections of artifacts"
489
+ "## Scale up learning"
490
+ ]
491
+ },
492
+ {
493
+ "cell_type": "markdown",
494
+ "metadata": {},
495
+ "source": [
496
+ "How do you learn from new data batches that extend your previous data history? Leverage {class}`~lamindb.Collection`."
491
497
  ]
492
498
  },
493
499
  {
@@ -549,16 +555,9 @@
549
555
  "outputs": [],
550
556
  "source": [
551
557
  "# if it's small enough, you can load the entire collection into memory as if it was one\n",
552
- "collection.load()"
553
- ]
554
- },
555
- {
556
- "cell_type": "code",
557
- "execution_count": null,
558
- "metadata": {},
559
- "outputs": [],
560
- "source": [
561
- "# you can always iterate over its artifacts\n",
558
+ "collection.load()\n",
559
+ "\n",
560
+ "# typically, it's too big, hence, iterate over its artifacts\n",
562
561
  "collection.artifacts.df()"
563
562
  ]
564
563
  },
@@ -567,7 +566,7 @@
567
566
  "metadata": {},
568
567
  "source": [
569
568
  "```\n",
570
- "# you can also batch iterate through collections\n",
569
+ "# to train models, batch iterate through the collection as if it was one array\n",
571
570
  "from torch.utils.data import DataLoader, WeightedRandomSampler\n",
572
571
  "dataset = collection.mapped(label_keys=[\"perturbation\"])\n",
573
572
  "sampler = WeightedRandomSampler(\n",
@@ -579,6 +578,13 @@
579
578
  "```"
580
579
  ]
581
580
  },
581
+ {
582
+ "cell_type": "markdown",
583
+ "metadata": {},
584
+ "source": [
585
+ "Read this [blog post](https://lamin.ai/blog/arrayloader-benchmarks) for more on training models on sharded datasets."
586
+ ]
587
+ },
582
588
  {
583
589
  "cell_type": "markdown",
584
590
  "metadata": {},
@@ -625,7 +631,7 @@
625
631
  "cell_type": "markdown",
626
632
  "metadata": {},
627
633
  "source": [
628
- "## Data lineage\n",
634
+ "## Data lineage across entire projects\n",
629
635
  "\n",
630
636
  "View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [here](docs:project-flow), based on [Schmidt _et al._, 2022](https://pubmed.ncbi.nlm.nih.gov/35113687/)):\n",
631
637
  "\n",
@@ -651,13 +657,19 @@
651
657
  "cell_type": "markdown",
652
658
  "metadata": {},
653
659
  "source": [
654
- "## Loading instances\n",
660
+ "## Distributed databases\n",
661
+ "\n",
662
+ "LaminDB is a distributed system like git. Similar to cloning a repository, collaborators can connect to your instance via:\n",
655
663
  "\n",
656
- "LaminDB is a distributed system like git. Similar to cloning a repository, collaborators can load your instance on the command-line using:\n",
664
+ "```python\n",
665
+ "ln.connect(\"account-handle/instance-name\")\n",
666
+ "```\n",
667
+ "\n",
668
+ "Or you can load an instance on the command line for auto-connecting in a Python session:\n",
657
669
  "\n",
658
670
  "```shell\n",
659
- "lamin load myhandle/myinstance\n",
660
- "```"
671
+ "lamin load \"account-handle/instance-name\"\n",
672
+ "```\n"
661
673
  ]
662
674
  },
663
675
  {
@@ -40,7 +40,7 @@ Modules & settings:
40
40
 
41
41
  """
42
42
 
43
- __version__ = "0.69.8" # denote a release candidate for 0.1.0 with 0.1rc1
43
+ __version__ = "0.69.9" # denote a release candidate for 0.1.0 with 0.1rc1
44
44
 
45
45
  import os as _os
46
46
 
@@ -22,7 +22,6 @@ from lamindb_setup.core.upath import (
22
22
  from lnschema_core import Artifact, Run, Storage
23
23
  from lnschema_core.models import IsTree
24
24
  from lnschema_core.types import (
25
- DataLike,
26
25
  VisibilityChoice,
27
26
  )
28
27
 
@@ -114,7 +113,7 @@ def process_pathlike(
114
113
 
115
114
  def process_data(
116
115
  provisional_uid: str,
117
- data: UPathStr | DataLike,
116
+ data: UPathStr | pd.DataFrame | AnnData,
118
117
  format: str | None,
119
118
  key: str | None,
120
119
  default_storage: Storage,
@@ -138,7 +137,7 @@ def process_data(
138
137
  )
139
138
  suffix = extract_suffix_from_path(path)
140
139
  memory_rep = None
141
- elif isinstance(data, (pd.DataFrame, AnnData)): # DataLike, spelled out
140
+ elif isinstance(data, (pd.DataFrame, AnnData)):
142
141
  storage = default_storage
143
142
  memory_rep = data
144
143
  if key is not None:
@@ -427,7 +426,7 @@ def log_storage_hint(
427
426
  logger.hint(hint)
428
427
 
429
428
 
430
- def data_is_anndata(data: DataLike):
429
+ def data_is_anndata(data: AnnData | UPathStr):
431
430
  if isinstance(data, AnnData):
432
431
  return True
433
432
  if isinstance(data, (str, Path, UPath)):
@@ -435,7 +434,7 @@ def data_is_anndata(data: DataLike):
435
434
  return False # pragma: no cover
436
435
 
437
436
 
438
- def data_is_mudata(data: DataLike): # pragma: no cover
437
+ def data_is_mudata(data: Any | UPathStr): # pragma: no cover
439
438
  try:
440
439
  from mudata import MuData
441
440
  except ModuleNotFoundError:
@@ -725,7 +724,7 @@ def from_dir(
725
724
  # docstring handled through attach_func_to_class_method
726
725
  def replace(
727
726
  self,
728
- data: UPathStr | DataLike,
727
+ data: UPathStr,
729
728
  run: Run | None = None,
730
729
  format: str | None = None,
731
730
  ) -> None:
@@ -808,9 +807,7 @@ def backed(self, is_run_input: bool | None = None) -> AnnDataAccessor | BackedAc
808
807
 
809
808
 
810
809
  # docstring handled through attach_func_to_class_method
811
- def load(
812
- self, is_run_input: bool | None = None, stream: bool = False, **kwargs
813
- ) -> DataLike:
810
+ def load(self, is_run_input: bool | None = None, stream: bool = False, **kwargs) -> Any:
814
811
  _track_run_input(self, is_run_input)
815
812
  if hasattr(self, "_memory_rep") and self._memory_rep is not None:
816
813
  return self._memory_rep
@@ -16,7 +16,7 @@ from lamin_utils import logger
16
16
  from lamindb_setup.core._docs import doc_args
17
17
  from lamindb_setup.core.hashing import hash_set
18
18
  from lnschema_core.models import Collection, CollectionArtifact, FeatureSet
19
- from lnschema_core.types import DataLike, VisibilityChoice
19
+ from lnschema_core.types import VisibilityChoice
20
20
 
21
21
  from lamindb._utils import attach_func_to_class_method
22
22
  from lamindb.core._data import _track_run_input
@@ -65,7 +65,7 @@ def __init__(
65
65
  data: Artifact | Iterable[Artifact] = (
66
66
  kwargs.pop("data") if len(args) == 0 else args[0]
67
67
  )
68
- meta: str | None = kwargs.pop("meta") if "meta" in kwargs else None
68
+ meta: Artifact | None = kwargs.pop("meta") if "meta" in kwargs else None
69
69
  name: str | None = kwargs.pop("name") if "name" in kwargs else None
70
70
  description: str | None = (
71
71
  kwargs.pop("description") if "description" in kwargs else None
@@ -273,7 +273,7 @@ def load(
273
273
  join: Literal["inner", "outer"] = "outer",
274
274
  is_run_input: bool | None = None,
275
275
  **kwargs,
276
- ) -> DataLike:
276
+ ) -> Any:
277
277
  # cannot call _track_run_input here, see comment further down
278
278
  all_artifacts = self.artifacts.all()
279
279
  suffixes = [artifact.suffix for artifact in all_artifacts]
@@ -23,7 +23,7 @@ from lamindb.core.storage import LocalPathClasses
23
23
  from ._settings import settings
24
24
 
25
25
  if TYPE_CHECKING:
26
- from lnschema_core.types import AnnDataLike, FieldAttr
26
+ from lnschema_core.types import FieldAttr
27
27
 
28
28
  from lamindb._query_set import QuerySet
29
29
 
@@ -132,7 +132,7 @@ def print_features(self: Data) -> str:
132
132
 
133
133
 
134
134
  def parse_feature_sets_from_anndata(
135
- adata: AnnDataLike,
135
+ adata: AnnData,
136
136
  var_field: FieldAttr,
137
137
  obs_field: FieldAttr = Feature.name,
138
138
  **kwargs,
@@ -136,6 +136,9 @@ def delete_storage_using_key(
136
136
 
137
137
  def delete_storage(storagepath: Path):
138
138
  """Delete arbitrary artifact."""
139
+ # TODO is_relative_to is not available in 3.8 and deprecated since 3.12
140
+ # replace with check_path_is_child_of_root but this needs to first be debugged
141
+ # if not check_path_is_child_of_root(storagepath, settings.storage):
139
142
  if not storagepath.is_relative_to(settings.storage): # type: ignore
140
143
  logger.warning("couldn't delete files outside of default storage")
141
144
  return "did-not-delete"
@@ -4,14 +4,12 @@
4
4
  :toctree: .
5
5
 
6
6
  UPathStr
7
- DataLike
8
7
  StrField
9
8
  ListLike
10
9
  TransformType
11
10
  """
12
11
  from lamindb_setup.core.types import UPathStr
13
12
  from lnschema_core.types import (
14
- DataLike,
15
13
  ListLike,
16
14
  StrField,
17
15
  TransformType,
@@ -0,0 +1,4 @@
1
+ import lamindb_setup as _lamindb_setup
2
+ from lamindb_setup.core import * # noqa: F403
3
+
4
+ __doc__ = _lamindb_setup.core.__doc__.replace("lamindb_setup", "lamindb.setup")
@@ -16,10 +16,10 @@ classifiers = [
16
16
  ]
17
17
  dependencies = [
18
18
  # Lamin PINNED packages
19
- "lnschema_core==0.64.5",
20
- "lamindb_setup==0.68.5",
19
+ "lnschema_core==0.64.6",
20
+ "lamindb_setup==0.69.0",
21
21
  "lamin_utils==0.13.1",
22
- "lamin_cli==0.12.0",
22
+ "lamin_cli==0.12.1",
23
23
  # others
24
24
  "rapidfuzz",
25
25
  "pyarrow",
@@ -0,0 +1,3 @@
1
+ """Lamin CLI."""
2
+
3
+ __version__ = "0.12.1"
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  import os
2
3
  import sys
3
4
  from importlib.metadata import PackageNotFoundError, version
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  import os
2
3
 
3
4
  if os.environ.get("NO_RICH"):
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  from typing import Tuple
2
3
  from lamin_utils import logger
3
4
  import lamindb_setup as ln_setup
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  import os
2
3
  from typing import Optional
3
4
 
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  from pathlib import Path
2
3
  from typing import Optional, Union
3
4
  import lamindb_setup as ln_setup
@@ -0,0 +1,9 @@
1
+ import lamindb as ln
2
+
3
+ ln.connect("lamindb-unit-tests")
4
+
5
+ if __name__ == "__main__":
6
+ # we're using new_run here to mock the notebook situation
7
+ # and cover the look up of an existing run in the tests
8
+ # new_run = True is trivial
9
+ print("hello!")
@@ -0,0 +1,35 @@
1
+ from multiprocessing import Process
2
+ from pathlib import Path
3
+ import subprocess
4
+
5
+ scripts_dir = Path(__file__).parent.resolve() / "scripts"
6
+
7
+
8
+ def run_script():
9
+ filepath = scripts_dir / "initialized-no-git-sync.py"
10
+ result = subprocess.run(
11
+ f"python {filepath}",
12
+ shell=True,
13
+ capture_output=True,
14
+ )
15
+ print(result.stdout.decode())
16
+ print(result.stderr.decode())
17
+ assert result.returncode == 0
18
+
19
+
20
+ def test_parallel_execution():
21
+ n_processes = 32
22
+ processes = []
23
+
24
+ # Create and start new processes
25
+ for _ in range(n_processes):
26
+ p = Process(target=run_script)
27
+ p.start()
28
+ processes.append(p)
29
+
30
+ # Wait for all processes to finish
31
+ for p in processes:
32
+ p.join()
33
+
34
+ for p in processes:
35
+ assert p.exitcode == 0
@@ -3,6 +3,13 @@
3
3
  <!-- prettier-ignore -->
4
4
  Name | PR | Developer | Date | Version
5
5
  --- | --- | --- | --- | ---
6
+ 🚸 Skip hub request for a purely local instance | [713](https://github.com/laminlabs/lamindb-setup/pull/713) | [falexwolf](https://github.com/falexwolf) | 2024-04-08 | 0.69.0
7
+ 🐛 Fix clashes for multi process | [712](https://github.com/laminlabs/lamindb-setup/pull/712) | [falexwolf](https://github.com/falexwolf) | 2024-04-08 |
8
+ ♻️ No longer need AWS account | [711](https://github.com/laminlabs/lamindb-setup/pull/711) | [falexwolf](https://github.com/falexwolf) | 2024-04-08 |
9
+ 📝 Fix docs | [709](https://github.com/laminlabs/lamindb-setup/pull/709) | [falexwolf](https://github.com/falexwolf) | 2024-04-05 |
10
+ ♻️ Replace TypeVar with TypeAlias | [707](https://github.com/laminlabs/lamindb-setup/pull/707) | [falexwolf](https://github.com/falexwolf) | 2024-04-04 |
11
+ ♻️ Refactor clean up | [706](https://github.com/laminlabs/lamindb-setup/pull/706) | [falexwolf](https://github.com/falexwolf) | 2024-04-04 |
12
+ 🩹 Do bucket injection trick only for s3 | [705](https://github.com/laminlabs/lamindb-setup/pull/705) | [Koncopd](https://github.com/Koncopd) | 2024-04-04 |
6
13
  🚸 Add region param | [704](https://github.com/laminlabs/lamindb-setup/pull/704) | [falexwolf](https://github.com/falexwolf) | 2024-04-04 |
7
14
  🐛 Avoid the error due to deleting the same file by multiple processes | [703](https://github.com/laminlabs/lamindb-setup/pull/703) | [Koncopd](https://github.com/Koncopd) | 2024-04-04 | 0.68.5
8
15
  🐛 Fix directory uploads for hosted instances | [702](https://github.com/laminlabs/lamindb-setup/pull/702) | [Koncopd](https://github.com/Koncopd) | 2024-04-04 |