lamindb 1.9.1__tar.gz → 1.10.1__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 (289) hide show
  1. {lamindb-1.9.1 → lamindb-1.10.1}/.github/workflows/build.yml +1 -1
  2. {lamindb-1.9.1 → lamindb-1.10.1}/.gitignore +1 -0
  3. {lamindb-1.9.1 → lamindb-1.10.1}/PKG-INFO +4 -4
  4. {lamindb-1.9.1 → lamindb-1.10.1}/docs/arrays.ipynb +110 -47
  5. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/pydantic-pandera.ipynb +248 -14
  6. {lamindb-1.9.1 → lamindb-1.10.1}/docs/registries.ipynb +2 -2
  7. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/vitessce.ipynb +3 -2
  8. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/__init__.py +1 -1
  9. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/__init__.py +2 -2
  10. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/__init__.py +2 -1
  11. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_anndata_accessor.py +16 -1
  12. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_backed_access.py +4 -0
  13. lamindb-1.10.1/lamindb/core/storage/_spatialdata_accessor.py +52 -0
  14. lamindb-1.10.1/lamindb/examples/__init__.py +14 -0
  15. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/cellxgene/_cellxgene.py +11 -3
  16. lamindb-1.10.1/lamindb/examples/croissant/__init__.py +44 -0
  17. lamindb-1.10.1/lamindb/examples/croissant/mini_immuno.anndata.zarr_metadata.json +73 -0
  18. {lamindb-1.9.1/lamindb/core → lamindb-1.10.1/lamindb/examples}/datasets/__init__.py +5 -2
  19. {lamindb-1.9.1/lamindb/core → lamindb-1.10.1/lamindb/examples}/datasets/_core.py +33 -1
  20. {lamindb-1.9.1/lamindb/core → lamindb-1.10.1/lamindb/examples}/datasets/mini_immuno.py +19 -8
  21. lamindb-1.10.1/lamindb/examples/schemas/_anndata.py +35 -0
  22. lamindb-1.10.1/lamindb/examples/schemas/_simple.py +33 -0
  23. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/integrations/__init__.py +2 -0
  24. lamindb-1.10.1/lamindb/integrations/_croissant.py +122 -0
  25. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/integrations/_vitessce.py +14 -12
  26. lamindb-1.10.1/lamindb/migrations/0116_remove_artifact_unique_artifact_storage_key_hash_and_more.py +51 -0
  27. lamindb-1.10.1/lamindb/migrations/0117_fix_artifact_storage_hash_unique_constraints.py +32 -0
  28. lamindb-1.9.1/lamindb/migrations/0115_squashed.py → lamindb-1.10.1/lamindb/migrations/0117_squashed.py +29 -6
  29. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_describe.py +107 -1
  30. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_django.py +63 -6
  31. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_feature_manager.py +0 -1
  32. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/artifact.py +41 -11
  33. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/collection.py +4 -9
  34. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/project.py +2 -2
  35. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/record.py +1 -1
  36. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/run.py +1 -1
  37. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/sqlrecord.py +3 -0
  38. {lamindb-1.9.1 → lamindb-1.10.1}/noxfile.py +3 -3
  39. {lamindb-1.9.1 → lamindb-1.10.1}/pyproject.toml +3 -3
  40. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/_dataset_fixtures.py +14 -1
  41. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_artifact.py +14 -6
  42. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_collection.py +16 -0
  43. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_describe_and_df_calls.py +4 -4
  44. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_feature.py +11 -2
  45. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_feature_label_manager.py +8 -4
  46. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_save.py +11 -9
  47. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_tracked.py +8 -1
  48. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/conftest.py +4 -0
  49. lamindb-1.10.1/tests/curators/test_curate_from_croissant.py +43 -0
  50. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_curators_general.py +27 -0
  51. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/scripts/setup_access.py +1 -1
  52. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_streaming.py +13 -2
  53. lamindb-1.9.1/lamindb/examples/__init__.py +0 -29
  54. lamindb-1.9.1/lamindb/examples/schemas/_anndata.py +0 -25
  55. lamindb-1.9.1/lamindb/examples/schemas/_simple.py +0 -19
  56. {lamindb-1.9.1 → lamindb-1.10.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  57. {lamindb-1.9.1 → lamindb-1.10.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  58. {lamindb-1.9.1 → lamindb-1.10.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  59. {lamindb-1.9.1 → lamindb-1.10.1}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  60. {lamindb-1.9.1 → lamindb-1.10.1}/.github/workflows/doc-changes.yml +0 -0
  61. {lamindb-1.9.1 → lamindb-1.10.1}/.gitmodules +0 -0
  62. {lamindb-1.9.1 → lamindb-1.10.1}/.pre-commit-config.yaml +0 -0
  63. {lamindb-1.9.1 → lamindb-1.10.1}/CONTRIBUTING.md +0 -0
  64. {lamindb-1.9.1 → lamindb-1.10.1}/LICENSE +0 -0
  65. {lamindb-1.9.1 → lamindb-1.10.1}/README.md +0 -0
  66. {lamindb-1.9.1 → lamindb-1.10.1}/docs/api.md +0 -0
  67. {lamindb-1.9.1 → lamindb-1.10.1}/docs/bio-registries.ipynb +0 -0
  68. {lamindb-1.9.1 → lamindb-1.10.1}/docs/bionty.md +0 -0
  69. {lamindb-1.9.1 → lamindb-1.10.1}/docs/changelog.md +0 -0
  70. {lamindb-1.9.1 → lamindb-1.10.1}/docs/clinicore.md +0 -0
  71. {lamindb-1.9.1 → lamindb-1.10.1}/docs/curate.ipynb +0 -0
  72. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/acid.ipynb +0 -0
  73. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/curate-any.ipynb +0 -0
  74. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/delete.ipynb +0 -0
  75. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/idempotency.ipynb +0 -0
  76. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/import-modules.ipynb +0 -0
  77. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/keep-artifacts-local.ipynb +0 -0
  78. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/reference-field.ipynb +0 -0
  79. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/search.ipynb +0 -0
  80. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/setup.ipynb +0 -0
  81. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/symbol-mapping.ipynb +0 -0
  82. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/test_notebooks.py +0 -0
  83. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/track-run-inputs.ipynb +0 -0
  84. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/validate-fields.ipynb +0 -0
  85. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq/visibility.ipynb +0 -0
  86. {lamindb-1.9.1 → lamindb-1.10.1}/docs/faq.md +0 -0
  87. {lamindb-1.9.1 → lamindb-1.10.1}/docs/guide.md +0 -0
  88. {lamindb-1.9.1 → lamindb-1.10.1}/docs/includes/installation.md +0 -0
  89. {lamindb-1.9.1 → lamindb-1.10.1}/docs/index.md +0 -0
  90. {lamindb-1.9.1 → lamindb-1.10.1}/docs/lamindb.md +0 -0
  91. {lamindb-1.9.1 → lamindb-1.10.1}/docs/query-search.md +0 -0
  92. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_anndata_flexible.py +0 -0
  93. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_dataframe_flexible.py +0 -0
  94. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_dataframe_minimal_errors.py +0 -0
  95. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_mudata.py +0 -0
  96. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_soma_experiment.py +0 -0
  97. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/curate_spatialdata.py +0 -0
  98. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/define_mini_immuno_features_labels.py +0 -0
  99. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
  100. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
  101. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/define_schema_spatialdata.py +0 -0
  102. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/define_valid_features.py +0 -0
  103. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/run_track_and_finish.py +0 -0
  104. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/run_track_with_params.py +0 -0
  105. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/run_workflow.py +0 -0
  106. /lamindb-1.9.1/docs/scripts/ingest_mini_immuno_datasets.py → /lamindb-1.10.1/docs/scripts/save_mini_immuno_datasets.py +0 -0
  107. {lamindb-1.9.1 → lamindb-1.10.1}/docs/scripts/synced_with_git.py +0 -0
  108. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/add-replace-cache.ipynb +0 -0
  109. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/anndata-accessor.ipynb +0 -0
  110. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  111. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/test-files/iris.csv +0 -0
  112. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/test-files/iris.data +0 -0
  113. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/test-files/new_iris.csv +0 -0
  114. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/test_notebooks.py +0 -0
  115. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  116. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage/upload.ipynb +0 -0
  117. {lamindb-1.9.1 → lamindb-1.10.1}/docs/storage.md +0 -0
  118. {lamindb-1.9.1 → lamindb-1.10.1}/docs/test_notebooks.py +0 -0
  119. {lamindb-1.9.1 → lamindb-1.10.1}/docs/track.ipynb +0 -0
  120. {lamindb-1.9.1 → lamindb-1.10.1}/docs/transfer.ipynb +0 -0
  121. {lamindb-1.9.1 → lamindb-1.10.1}/docs/wetlab.md +0 -0
  122. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/_finish.py +0 -0
  123. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/_tracked.py +0 -0
  124. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/_view.py +0 -0
  125. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/__init__.py +0 -0
  126. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/fields.py +0 -0
  127. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/ids.py +0 -0
  128. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/types.py +0 -0
  129. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/uids.py +0 -0
  130. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/base/users.py +0 -0
  131. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_compat.py +0 -0
  132. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_context.py +0 -0
  133. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_mapped_collection.py +0 -0
  134. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_settings.py +0 -0
  135. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_sync_git.py +0 -0
  136. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/_track_environment.py +0 -0
  137. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/exceptions.py +0 -0
  138. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/loaders.py +0 -0
  139. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_polars_lazy_df.py +0 -0
  140. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
  141. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_tiledbsoma.py +0 -0
  142. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_valid_suffixes.py +0 -0
  143. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/_zarr.py +0 -0
  144. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/objects.py +0 -0
  145. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/storage/paths.py +0 -0
  146. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/subsettings/__init__.py +0 -0
  147. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/subsettings/_annotation_settings.py +0 -0
  148. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
  149. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/core/types.py +0 -0
  150. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/curators/__init__.py +0 -0
  151. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/curators/_legacy.py +0 -0
  152. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/curators/core.py +0 -0
  153. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/errors.py +0 -0
  154. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/cellxgene/__init__.py +0 -0
  155. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/cellxgene/cxg_schema_versions.csv +0 -0
  156. {lamindb-1.9.1/lamindb/core → lamindb-1.10.1/lamindb/examples}/datasets/_fake.py +0 -0
  157. {lamindb-1.9.1/lamindb/core → lamindb-1.10.1/lamindb/examples}/datasets/_small.py +0 -0
  158. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/fixtures/__init__.py +0 -0
  159. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/fixtures/sheets.py +0 -0
  160. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/examples/schemas/__init__.py +0 -0
  161. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0069_squashed.py +0 -0
  162. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
  163. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
  164. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
  165. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
  166. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
  167. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
  168. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
  169. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
  170. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
  171. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
  172. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
  173. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
  174. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
  175. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  176. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
  177. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  178. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0086_various.py +0 -0
  179. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
  180. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0088_schema_components.py +0 -0
  181. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0089_subsequent_runs.py +0 -0
  182. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
  183. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
  184. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
  185. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
  186. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
  187. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
  188. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
  189. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
  190. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
  191. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
  192. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
  193. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
  194. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
  195. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
  196. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
  197. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0105_record_unique_name.py +0 -0
  198. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
  199. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
  200. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
  201. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
  202. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
  203. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
  204. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
  205. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
  206. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
  207. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/0115_alter_space_uid.py +0 -0
  208. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/migrations/__init__.py +0 -0
  209. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/__init__.py +0 -0
  210. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_from_values.py +0 -0
  211. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_is_versioned.py +0 -0
  212. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_label_manager.py +0 -0
  213. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/_relations.py +0 -0
  214. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/artifact_set.py +0 -0
  215. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/can_curate.py +0 -0
  216. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/feature.py +0 -0
  217. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/has_parents.py +0 -0
  218. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/query_manager.py +0 -0
  219. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/query_set.py +0 -0
  220. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/save.py +0 -0
  221. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/schema.py +0 -0
  222. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/storage.py +0 -0
  223. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/transform.py +0 -0
  224. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/models/ulabel.py +0 -0
  225. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/py.typed +0 -0
  226. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/setup/__init__.py +0 -0
  227. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/setup/_switch.py +0 -0
  228. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/setup/core/__init__.py +0 -0
  229. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/setup/errors/__init__.py +0 -0
  230. {lamindb-1.9.1 → lamindb-1.10.1}/lamindb/setup/types/__init__.py +0 -0
  231. {lamindb-1.9.1 → lamindb-1.10.1}/tests/conftest.py +0 -0
  232. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/conftest.py +0 -0
  233. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
  234. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
  235. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  236. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/no-title.ipynb +0 -0
  237. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  238. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  239. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  240. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  241. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  242. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
  243. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
  244. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  245. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/scripts/script-to-test-versioning.py +0 -0
  246. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_artifact_folders.py +0 -0
  247. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_can_curate.py +0 -0
  248. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_data.py +0 -0
  249. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_db.py +0 -0
  250. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_delete.py +0 -0
  251. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_dtype.py +0 -0
  252. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_from_values.py +0 -0
  253. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_has_parents.py +0 -0
  254. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_integrity.py +0 -0
  255. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_load.py +0 -0
  256. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_manager.py +0 -0
  257. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_models.py +0 -0
  258. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_notebooks.py +0 -0
  259. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_queryset.py +0 -0
  260. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_record.py +0 -0
  261. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_run.py +0 -0
  262. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_schema.py +0 -0
  263. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_search.py +0 -0
  264. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_settings.py +0 -0
  265. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_storage.py +0 -0
  266. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_track.py +0 -0
  267. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_transform.py +0 -0
  268. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_ulabel.py +0 -0
  269. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_versioning.py +0 -0
  270. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_view.py +0 -0
  271. {lamindb-1.9.1 → lamindb-1.10.1}/tests/core/test_visibility.py +0 -0
  272. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_cat_managers.py +0 -0
  273. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_curators_examples.py +0 -0
  274. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_curators_multivalue.py +0 -0
  275. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_cxg_curator.py +0 -0
  276. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
  277. {lamindb-1.9.1 → lamindb-1.10.1}/tests/curators/test_records.py +0 -0
  278. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/conftest.py +0 -0
  279. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/jwt_utils.py +0 -0
  280. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/scripts/check_lamin_dev.py +0 -0
  281. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
  282. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/scripts/setup_instance.py +0 -0
  283. {lamindb-1.9.1 → lamindb-1.10.1}/tests/permissions/test_permissions.py +0 -0
  284. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/conftest.py +0 -0
  285. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_artifact_storage.py +0 -0
  286. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_artifact_zarr.py +0 -0
  287. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_cache.py +0 -0
  288. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_storage_lifecycle.py +0 -0
  289. {lamindb-1.9.1 → lamindb-1.10.1}/tests/storage/test_transfer.py +0 -0
@@ -69,7 +69,7 @@ jobs:
69
69
  - uses: actions/setup-python@v5
70
70
  with:
71
71
  python-version: |
72
- ${{ github.ref == 'refs/heads/release' && '3.10' ||
72
+ ${{ github.ref == 'refs/heads/release' && '3.11' ||
73
73
  '3.13'
74
74
  }}
75
75
 
@@ -66,6 +66,7 @@ run-tests
66
66
  test-django-validation/
67
67
  curate.tiledbsoma
68
68
  small_dataset.tiledbsoma
69
+ registered_storage
69
70
 
70
71
  # General
71
72
  .DS_Store
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamindb
3
- Version: 1.9.1
3
+ Version: 1.10.1
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.10,<3.14
@@ -10,8 +10,8 @@ Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Requires-Dist: lamin_utils==0.15.0
13
- Requires-Dist: lamin_cli==1.6.0
14
- Requires-Dist: lamindb_setup[aws]==1.8.3
13
+ Requires-Dist: lamin_cli==1.6.1
14
+ Requires-Dist: lamindb_setup[aws]==1.9.1
15
15
  Requires-Dist: pyyaml
16
16
  Requires-Dist: pyarrow
17
17
  Requires-Dist: pandera>=0.24.0
@@ -19,7 +19,7 @@ Requires-Dist: typing_extensions!=4.6.0
19
19
  Requires-Dist: python-dateutil
20
20
  Requires-Dist: pandas>=2.0.0
21
21
  Requires-Dist: scipy<1.15.0
22
- Requires-Dist: anndata>=0.8.0,<=0.12.0
22
+ Requires-Dist: anndata>=0.8.0,<=0.12.1
23
23
  Requires-Dist: fsspec
24
24
  Requires-Dist: graphviz
25
25
  Requires-Dist: psycopg2-binary
@@ -106,34 +106,32 @@
106
106
  "cell_type": "markdown",
107
107
  "metadata": {},
108
108
  "source": [
109
- "Note that it is also possible to register Hugging Face paths. For this `huggingface_hub` package should be installed."
109
+ "## AnnData"
110
110
  ]
111
111
  },
112
112
  {
113
113
  "cell_type": "markdown",
114
114
  "metadata": {},
115
115
  "source": [
116
- "We register a folder of `parquet` files as a single artifact."
116
+ "An `h5ad` artifact stored on s3:"
117
117
  ]
118
118
  },
119
119
  {
120
120
  "cell_type": "code",
121
121
  "execution_count": null,
122
- "metadata": {
123
- "tags": [
124
- "hide-output"
125
- ]
126
- },
122
+ "metadata": {},
127
123
  "outputs": [],
128
124
  "source": [
129
- "ln.Artifact(\"hf://datasets/Koncopd/lamindb-test/sharded_parquet\").save()"
125
+ "artifact = ln.Artifact.get(key=\"pbmc68k.h5ad\")"
130
126
  ]
131
127
  },
132
128
  {
133
- "cell_type": "markdown",
129
+ "cell_type": "code",
130
+ "execution_count": null,
134
131
  "metadata": {},
132
+ "outputs": [],
135
133
  "source": [
136
- "We also register a collection of individual `parquet` files."
134
+ "artifact.path"
137
135
  ]
138
136
  },
139
137
  {
@@ -146,48 +144,54 @@
146
144
  },
147
145
  "outputs": [],
148
146
  "source": [
149
- "artifact_shard1 = ln.Artifact(\n",
150
- " \"hf://datasets/Koncopd/lamindb-test/sharded_parquet/louvain=0/947eee0b064440c9b9910ca2eb89e608-0.parquet\"\n",
151
- ").save()\n",
152
- "artifact_shard2 = ln.Artifact(\n",
153
- " \"hf://datasets/Koncopd/lamindb-test/sharded_parquet/louvain=1/947eee0b064440c9b9910ca2eb89e608-0.parquet\"\n",
154
- ").save()\n",
155
- "\n",
156
- "ln.Collection(\n",
157
- " [artifact_shard1, artifact_shard2], key=\"sharded_parquet_collection\"\n",
158
- ").save()"
147
+ "adata = artifact.open()"
159
148
  ]
160
149
  },
161
150
  {
162
151
  "cell_type": "markdown",
163
152
  "metadata": {},
164
153
  "source": [
165
- "## AnnData"
154
+ "This object is an `AnnDataAccessor` object, an `AnnData` object backed in the cloud:"
155
+ ]
156
+ },
157
+ {
158
+ "cell_type": "code",
159
+ "execution_count": null,
160
+ "metadata": {
161
+ "tags": [
162
+ "hide-output"
163
+ ]
164
+ },
165
+ "outputs": [],
166
+ "source": [
167
+ "adata"
166
168
  ]
167
169
  },
168
170
  {
169
171
  "cell_type": "markdown",
170
172
  "metadata": {},
171
173
  "source": [
172
- "An `h5ad` artifact stored on s3:"
174
+ "Without subsetting, the `AnnDataAccessor` object references underlying lazy `h5` or `zarr` arrays:"
173
175
  ]
174
176
  },
175
177
  {
176
178
  "cell_type": "code",
177
179
  "execution_count": null,
178
- "metadata": {},
180
+ "metadata": {
181
+ "tags": [
182
+ "hide-output"
183
+ ]
184
+ },
179
185
  "outputs": [],
180
186
  "source": [
181
- "artifact = ln.Artifact.get(key=\"pbmc68k.h5ad\")"
187
+ "adata.X"
182
188
  ]
183
189
  },
184
190
  {
185
- "cell_type": "code",
186
- "execution_count": null,
191
+ "cell_type": "markdown",
187
192
  "metadata": {},
188
- "outputs": [],
189
193
  "source": [
190
- "artifact.path"
194
+ "You can subset it like a normal `AnnData` object:"
191
195
  ]
192
196
  },
193
197
  {
@@ -200,14 +204,18 @@
200
204
  },
201
205
  "outputs": [],
202
206
  "source": [
203
- "adata = artifact.open()"
207
+ "obs_idx = adata.obs.cell_type.isin([\"Dendritic cells\", \"CD14+ Monocytes\"]) & (\n",
208
+ " adata.obs.percent_mito <= 0.05\n",
209
+ ")\n",
210
+ "adata_subset = adata[obs_idx]\n",
211
+ "adata_subset"
204
212
  ]
205
213
  },
206
214
  {
207
215
  "cell_type": "markdown",
208
216
  "metadata": {},
209
217
  "source": [
210
- "This object is an `AnnDataAccessor` object, an `AnnData` object backed in the cloud:"
218
+ "Subsets load arrays into memory upon direct access:"
211
219
  ]
212
220
  },
213
221
  {
@@ -220,14 +228,14 @@
220
228
  },
221
229
  "outputs": [],
222
230
  "source": [
223
- "adata"
231
+ "adata_subset.X"
224
232
  ]
225
233
  },
226
234
  {
227
235
  "cell_type": "markdown",
228
236
  "metadata": {},
229
237
  "source": [
230
- "Without subsetting, the `AnnDataAccessor` object references underlying lazy `h5` or `zarr` arrays:"
238
+ "To load the entire subset into memory as an actual `AnnData` object, use `to_memory()`:"
231
239
  ]
232
240
  },
233
241
  {
@@ -240,14 +248,34 @@
240
248
  },
241
249
  "outputs": [],
242
250
  "source": [
243
- "adata.X"
251
+ "adata_subset.to_memory()"
244
252
  ]
245
253
  },
246
254
  {
247
255
  "cell_type": "markdown",
248
256
  "metadata": {},
249
257
  "source": [
250
- "You can subset it like a normal `AnnData` object:"
258
+ "## SpatialData"
259
+ ]
260
+ },
261
+ {
262
+ "cell_type": "markdown",
263
+ "metadata": {},
264
+ "source": [
265
+ "It is also possible to access `AnnData` objects inside `SpatialData` `tables`:"
266
+ ]
267
+ },
268
+ {
269
+ "cell_type": "code",
270
+ "execution_count": null,
271
+ "metadata": {},
272
+ "outputs": [],
273
+ "source": [
274
+ "artifact = ln.Artifact.using(\"laminlabs/lamindata\").get(\n",
275
+ " key=\"visium_aligned_guide_min.zarr\"\n",
276
+ ")\n",
277
+ "\n",
278
+ "access = artifact.open()"
251
279
  ]
252
280
  },
253
281
  {
@@ -260,18 +288,27 @@
260
288
  },
261
289
  "outputs": [],
262
290
  "source": [
263
- "obs_idx = adata.obs.cell_type.isin([\"Dendritic cells\", \"CD14+ Monocytes\"]) & (\n",
264
- " adata.obs.percent_mito <= 0.05\n",
265
- ")\n",
266
- "adata_subset = adata[obs_idx]\n",
267
- "adata_subset"
291
+ "access"
292
+ ]
293
+ },
294
+ {
295
+ "cell_type": "code",
296
+ "execution_count": null,
297
+ "metadata": {
298
+ "tags": [
299
+ "hide-output"
300
+ ]
301
+ },
302
+ "outputs": [],
303
+ "source": [
304
+ "access.tables"
268
305
  ]
269
306
  },
270
307
  {
271
308
  "cell_type": "markdown",
272
309
  "metadata": {},
273
310
  "source": [
274
- "Subsets load arrays into memory upon direct access:"
311
+ "This gives you the same `AnnDataAccessor` object as for a normal `AnnData`."
275
312
  ]
276
313
  },
277
314
  {
@@ -284,14 +321,16 @@
284
321
  },
285
322
  "outputs": [],
286
323
  "source": [
287
- "adata_subset.X"
324
+ "table = access.tables[\"table\"]\n",
325
+ "\n",
326
+ "table"
288
327
  ]
289
328
  },
290
329
  {
291
330
  "cell_type": "markdown",
292
331
  "metadata": {},
293
332
  "source": [
294
- "To load the entire subset into memory as an actual `AnnData` object, use `to_memory()`:"
333
+ "You can subset it and read into memory as an actual `AnnData`:"
295
334
  ]
296
335
  },
297
336
  {
@@ -304,7 +343,18 @@
304
343
  },
305
344
  "outputs": [],
306
345
  "source": [
307
- "adata_subset.to_memory()"
346
+ "table_subset = table[table.obs[\"clone\"] == \"diploid\"]\n",
347
+ "\n",
348
+ "table_subset"
349
+ ]
350
+ },
351
+ {
352
+ "cell_type": "markdown",
353
+ "metadata": {},
354
+ "source": [
355
+ "```python\n",
356
+ "adata = table_subset.to_memory()\n",
357
+ "```"
308
358
  ]
309
359
  },
310
360
  {
@@ -389,13 +439,20 @@
389
439
  "A dataframe stored as sharded `parquet`."
390
440
  ]
391
441
  },
442
+ {
443
+ "cell_type": "markdown",
444
+ "metadata": {},
445
+ "source": [
446
+ "Note that it is also possible to register and access Hugging Face paths. For this `huggingface_hub` package should be installed."
447
+ ]
448
+ },
392
449
  {
393
450
  "cell_type": "code",
394
451
  "execution_count": null,
395
452
  "metadata": {},
396
453
  "outputs": [],
397
454
  "source": [
398
- "artifact = ln.Artifact.get(key=\"sharded_parquet\")"
455
+ "artifact = ln.Artifact.using(\"laminlabs/lamindata\").get(key=\"sharded_parquet\")"
399
456
  ]
400
457
  },
401
458
  {
@@ -466,13 +523,19 @@
466
523
  "metadata": {},
467
524
  "outputs": [],
468
525
  "source": [
469
- "collection = ln.Collection.get(key=\"sharded_parquet_collection\")"
526
+ "collection = ln.Collection.using(\"laminlabs/lamindata\").get(\n",
527
+ " key=\"sharded_parquet_collection\"\n",
528
+ ")"
470
529
  ]
471
530
  },
472
531
  {
473
532
  "cell_type": "code",
474
533
  "execution_count": null,
475
- "metadata": {},
534
+ "metadata": {
535
+ "tags": [
536
+ "hide-output"
537
+ ]
538
+ },
476
539
  "outputs": [],
477
540
  "source": [
478
541
  "backed = collection.open()"
@@ -557,7 +620,7 @@
557
620
  "outputs": [],
558
621
  "source": [
559
622
  "# clean up test instance\n",
560
- "!lamin delete --force test-arrays"
623
+ "ln.setup.delete(\"test-arrays\", force=True)"
561
624
  ]
562
625
  }
563
626
  ],