lamindb 1.11.3__tar.gz → 1.12.0__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 (315) hide show
  1. {lamindb-1.11.3 → lamindb-1.12.0}/.gitignore +3 -0
  2. {lamindb-1.11.3 → lamindb-1.12.0}/PKG-INFO +18 -21
  3. {lamindb-1.11.3 → lamindb-1.12.0}/README.md +11 -12
  4. {lamindb-1.11.3 → lamindb-1.12.0}/docs/arrays.ipynb +4 -25
  5. {lamindb-1.11.3 → lamindb-1.12.0}/docs/curate.ipynb +75 -65
  6. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/acid.ipynb +2 -2
  7. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/curate-any.ipynb +9 -9
  8. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/idempotency.ipynb +7 -7
  9. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/keep-artifacts-local.ipynb +4 -4
  10. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/pydantic-pandera.ipynb +6 -6
  11. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/reference-field.ipynb +2 -2
  12. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/search.ipynb +3 -3
  13. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/track-run-inputs.ipynb +2 -2
  14. {lamindb-1.11.3 → lamindb-1.12.0}/docs/guide.md +1 -1
  15. lamindb-1.11.3/docs/bio-registries.ipynb → lamindb-1.12.0/docs/manage-ontologies.ipynb +23 -38
  16. {lamindb-1.11.3 → lamindb-1.12.0}/docs/registries.ipynb +17 -15
  17. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_anndata_flexible.py +2 -2
  18. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_anndata_uns.py +2 -2
  19. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_dataframe_external_features.py +1 -1
  20. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_dataframe_flexible.py +2 -2
  21. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_dataframe_minimal_errors.py +2 -2
  22. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_mudata.py +10 -10
  23. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_soma_experiment.py +1 -1
  24. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_spatialdata.py +1 -1
  25. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_mini_immuno_features_labels.py +3 -3
  26. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/run_workflow.py +1 -1
  27. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/save_mini_immuno_datasets.py +6 -6
  28. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/add-replace-cache.ipynb +101 -18
  29. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/upload.ipynb +1 -1
  30. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/vitessce.ipynb +1 -1
  31. {lamindb-1.11.3 → lamindb-1.12.0}/docs/track.ipynb +34 -3
  32. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/__init__.py +8 -14
  33. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/_tracked.py +2 -0
  34. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/types.py +1 -3
  35. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_context.py +16 -31
  36. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_mapped_collection.py +2 -2
  37. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/paths.py +5 -3
  38. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/curators/core.py +15 -4
  39. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/__init__.py +3 -1
  40. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/croissant/__init__.py +3 -1
  41. lamindb-1.12.0/lamindb/examples/mlflow/__init__.py +38 -0
  42. lamindb-1.12.0/lamindb/examples/wandb/__init__.py +40 -0
  43. lamindb-1.12.0/lamindb/integrations/__init__.py +40 -0
  44. lamindb-1.12.0/lamindb/integrations/lightning.py +87 -0
  45. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0120_add_record_fk_constraint.py +1 -1
  46. lamindb-1.12.0/lamindb/migrations/0122_remove_personproject_person_and_more.py +219 -0
  47. lamindb-1.12.0/lamindb/migrations/0123_alter_artifact_description_alter_branch_description_and_more.py +82 -0
  48. lamindb-1.12.0/lamindb/migrations/0124_page_artifact_page_collection_page_feature_page_and_more.py +15 -0
  49. lamindb-1.12.0/lamindb/migrations/0125_artifact_is_locked_collection_is_locked_and_more.py +79 -0
  50. lamindb-1.12.0/lamindb/migrations/0126_alter_artifact_is_locked_alter_collection_is_locked_and_more.py +105 -0
  51. lamindb-1.12.0/lamindb/migrations/0127_alter_run_status_code_feature_dtype.py +31 -0
  52. lamindb-1.12.0/lamindb/migrations/0128_artifact__real_key.py +21 -0
  53. lamindb-1.12.0/lamindb/migrations/0129_remove_feature_page_remove_project_page_and_more.py +779 -0
  54. lamindb-1.12.0/lamindb/migrations/0130_branch_space_alter_artifactblock_artifact_and_more.py +170 -0
  55. lamindb-1.12.0/lamindb/migrations/0131_record_unique_name_type_space.py +18 -0
  56. lamindb-1.12.0/lamindb/migrations/0132_record_parents_record_reference_and_more.py +61 -0
  57. lamindb-1.12.0/lamindb/migrations/0133_artifactuser_artifact_users.py +108 -0
  58. lamindb-1.11.3/lamindb/migrations/0119_squashed.py → lamindb-1.12.0/lamindb/migrations/0133_squashed.py +1211 -322
  59. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/__init__.py +14 -4
  60. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_django.py +1 -2
  61. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_feature_manager.py +1 -0
  62. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_is_versioned.py +14 -16
  63. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_relations.py +7 -0
  64. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/artifact.py +99 -56
  65. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/artifact_set.py +20 -3
  66. lamindb-1.12.0/lamindb/models/block.py +174 -0
  67. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/can_curate.py +7 -9
  68. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/collection.py +9 -9
  69. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/feature.py +38 -38
  70. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/has_parents.py +15 -6
  71. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/project.py +44 -99
  72. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/query_manager.py +1 -1
  73. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/query_set.py +36 -8
  74. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/record.py +169 -46
  75. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/run.py +44 -10
  76. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/save.py +7 -7
  77. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/schema.py +9 -2
  78. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/sqlrecord.py +87 -35
  79. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/storage.py +13 -3
  80. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/transform.py +7 -2
  81. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/ulabel.py +6 -23
  82. {lamindb-1.11.3 → lamindb-1.12.0}/noxfile.py +4 -9
  83. {lamindb-1.11.3 → lamindb-1.12.0}/pyproject.toml +11 -17
  84. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/no-title.ipynb +2 -7
  85. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_artifact.py +30 -11
  86. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_artifact_folders.py +4 -10
  87. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_collection.py +5 -2
  88. lamindb-1.12.0/tests/core/test_delete.py +37 -0
  89. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_describe_and_df_calls.py +7 -7
  90. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_dtype.py +35 -35
  91. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_feature.py +41 -25
  92. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_feature_label_manager.py +55 -56
  93. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_from_values.py +3 -3
  94. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_has_parents.py +9 -9
  95. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_manager.py +4 -4
  96. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_models.py +14 -9
  97. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_queryset.py +50 -22
  98. lamindb-1.11.3/tests/core/test_ulabel.py → lamindb-1.12.0/tests/core/test_record.py +7 -7
  99. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_run.py +1 -0
  100. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_save.py +9 -9
  101. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_schema.py +2 -2
  102. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_sqlrecord.py +38 -26
  103. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_track.py +3 -3
  104. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_tracked.py +1 -0
  105. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_transform.py +1 -1
  106. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_versioning.py +64 -26
  107. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_cat_managers.py +0 -178
  108. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_curators_examples.py +3 -33
  109. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_curators_general.py +2 -2
  110. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_cxg_curator.py +2 -0
  111. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_records.py +28 -2
  112. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/scripts/check_lamin_dev.py +5 -19
  113. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_artifact_storage.py +9 -1
  114. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_transfer.py +2 -2
  115. lamindb-1.11.3/docs/clinicore.md +0 -5
  116. lamindb-1.11.3/lamindb/integrations/__init__.py +0 -14
  117. lamindb-1.11.3/tests/core/test_delete.py +0 -18
  118. {lamindb-1.11.3 → lamindb-1.12.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  119. {lamindb-1.11.3 → lamindb-1.12.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  120. {lamindb-1.11.3 → lamindb-1.12.0}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  121. {lamindb-1.11.3 → lamindb-1.12.0}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  122. {lamindb-1.11.3 → lamindb-1.12.0}/.github/workflows/build.yml +0 -0
  123. {lamindb-1.11.3 → lamindb-1.12.0}/.github/workflows/doc-changes.yml +0 -0
  124. {lamindb-1.11.3 → lamindb-1.12.0}/.gitmodules +0 -0
  125. {lamindb-1.11.3 → lamindb-1.12.0}/.pre-commit-config.yaml +0 -0
  126. {lamindb-1.11.3 → lamindb-1.12.0}/CONTRIBUTING.md +0 -0
  127. {lamindb-1.11.3 → lamindb-1.12.0}/LICENSE +0 -0
  128. {lamindb-1.11.3 → lamindb-1.12.0}/docs/api.md +0 -0
  129. {lamindb-1.11.3 → lamindb-1.12.0}/docs/bionty.md +0 -0
  130. {lamindb-1.11.3 → lamindb-1.12.0}/docs/changelog.md +0 -0
  131. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/delete.ipynb +0 -0
  132. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/import-modules.ipynb +0 -0
  133. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/setup.ipynb +0 -0
  134. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/symbol-mapping.ipynb +0 -0
  135. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/test_notebooks.py +0 -0
  136. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/validate-fields.ipynb +0 -0
  137. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq/visibility.ipynb +0 -0
  138. {lamindb-1.11.3 → lamindb-1.12.0}/docs/faq.md +0 -0
  139. {lamindb-1.11.3 → lamindb-1.12.0}/docs/includes/installation.md +0 -0
  140. {lamindb-1.11.3 → lamindb-1.12.0}/docs/index.md +0 -0
  141. {lamindb-1.11.3 → lamindb-1.12.0}/docs/lamindb.md +0 -0
  142. {lamindb-1.11.3 → lamindb-1.12.0}/docs/query-search.md +0 -0
  143. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/curate_dataframe_attrs.py +0 -0
  144. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
  145. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
  146. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_schema_anndata_uns.py +0 -0
  147. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_schema_df_metadata.py +0 -0
  148. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_schema_spatialdata.py +0 -0
  149. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/define_valid_features.py +0 -0
  150. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/run_track_and_finish.py +0 -0
  151. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/run_track_with_params.py +0 -0
  152. {lamindb-1.11.3 → lamindb-1.12.0}/docs/scripts/synced_with_git.py +0 -0
  153. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/anndata-accessor.ipynb +0 -0
  154. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  155. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/test-files/iris.csv +0 -0
  156. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/test-files/iris.data +0 -0
  157. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/test-files/new_iris.csv +0 -0
  158. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/test_notebooks.py +0 -0
  159. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  160. {lamindb-1.11.3 → lamindb-1.12.0}/docs/storage.md +0 -0
  161. {lamindb-1.11.3 → lamindb-1.12.0}/docs/test_notebooks.py +0 -0
  162. {lamindb-1.11.3 → lamindb-1.12.0}/docs/transfer.ipynb +0 -0
  163. {lamindb-1.11.3 → lamindb-1.12.0}/docs/wetlab.md +0 -0
  164. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/_finish.py +0 -0
  165. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/_view.py +0 -0
  166. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/__init__.py +0 -0
  167. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/dtypes.py +0 -0
  168. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/fields.py +0 -0
  169. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/ids.py +0 -0
  170. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/uids.py +0 -0
  171. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/base/users.py +0 -0
  172. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/__init__.py +0 -0
  173. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_compat.py +0 -0
  174. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_settings.py +0 -0
  175. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_sync_git.py +0 -0
  176. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/_track_environment.py +0 -0
  177. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/exceptions.py +0 -0
  178. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/loaders.py +0 -0
  179. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/__init__.py +0 -0
  180. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_anndata_accessor.py +0 -0
  181. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_backed_access.py +0 -0
  182. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_polars_lazy_df.py +0 -0
  183. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
  184. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_spatialdata_accessor.py +0 -0
  185. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_tiledbsoma.py +0 -0
  186. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_valid_suffixes.py +0 -0
  187. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/_zarr.py +0 -0
  188. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/storage/objects.py +0 -0
  189. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/subsettings/__init__.py +0 -0
  190. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/subsettings/_annotation_settings.py +0 -0
  191. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/subsettings/_creation_settings.py +0 -0
  192. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/core/types.py +0 -0
  193. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/curators/__init__.py +0 -0
  194. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/curators/_legacy.py +0 -0
  195. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/errors.py +0 -0
  196. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/cellxgene/__init__.py +0 -0
  197. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/cellxgene/_cellxgene.py +0 -0
  198. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/cellxgene/cellxgene_schema_versions.csv +0 -0
  199. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/croissant/mini_immuno.anndata.zarr_metadata.json +0 -0
  200. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/datasets/__init__.py +0 -0
  201. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/datasets/_core.py +0 -0
  202. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/datasets/_fake.py +0 -0
  203. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/datasets/_small.py +0 -0
  204. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/datasets/mini_immuno.py +0 -0
  205. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/fixtures/__init__.py +0 -0
  206. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/fixtures/sheets.py +0 -0
  207. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/schemas/__init__.py +0 -0
  208. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/schemas/_anndata.py +0 -0
  209. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/examples/schemas/_simple.py +0 -0
  210. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/integrations/_croissant.py +0 -0
  211. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/integrations/_vitessce.py +0 -0
  212. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0069_squashed.py +0 -0
  213. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
  214. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
  215. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
  216. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
  217. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
  218. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
  219. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
  220. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
  221. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
  222. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
  223. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
  224. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
  225. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
  226. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  227. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
  228. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  229. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0086_various.py +0 -0
  230. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
  231. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0088_schema_components.py +0 -0
  232. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0089_subsequent_runs.py +0 -0
  233. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
  234. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
  235. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
  236. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
  237. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
  238. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
  239. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
  240. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
  241. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
  242. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
  243. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
  244. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
  245. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
  246. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
  247. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
  248. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0105_record_unique_name.py +0 -0
  249. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
  250. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
  251. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
  252. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
  253. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
  254. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
  255. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
  256. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
  257. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
  258. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0115_alter_space_uid.py +0 -0
  259. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0116_remove_artifact_unique_artifact_storage_key_hash_and_more.py +0 -0
  260. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0117_fix_artifact_storage_hash_unique_constraints.py +0 -0
  261. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0118_alter_recordproject_value_projectrecord.py +0 -0
  262. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0119_rename_records_project_linked_in_records.py +0 -0
  263. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/0121_recorduser.py +0 -0
  264. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/migrations/__init__.py +0 -0
  265. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_describe.py +0 -0
  266. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_from_values.py +0 -0
  267. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/models/_label_manager.py +0 -0
  268. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/py.typed +0 -0
  269. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/setup/__init__.py +0 -0
  270. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/setup/_switch.py +0 -0
  271. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/setup/core/__init__.py +0 -0
  272. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/setup/errors/__init__.py +0 -0
  273. {lamindb-1.11.3 → lamindb-1.12.0}/lamindb/setup/types/__init__.py +0 -0
  274. {lamindb-1.11.3 → lamindb-1.12.0}/tests/conftest.py +0 -0
  275. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/_dataset_fixtures.py +0 -0
  276. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/conftest.py +0 -0
  277. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
  278. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
  279. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  280. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  281. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  282. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  283. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  284. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  285. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
  286. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
  287. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  288. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/scripts/script-to-test-versioning.py +0 -0
  289. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_can_curate.py +0 -0
  290. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_data.py +0 -0
  291. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_db.py +0 -0
  292. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_integrity.py +0 -0
  293. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_load.py +0 -0
  294. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_notebooks.py +0 -0
  295. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_search.py +0 -0
  296. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_settings.py +0 -0
  297. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_storage.py +0 -0
  298. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_view.py +0 -0
  299. {lamindb-1.11.3 → lamindb-1.12.0}/tests/core/test_visibility.py +0 -0
  300. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/conftest.py +0 -0
  301. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_curate_from_croissant.py +0 -0
  302. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_curators_multivalue.py +0 -0
  303. {lamindb-1.11.3 → lamindb-1.12.0}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
  304. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/conftest.py +0 -0
  305. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/jwt_utils.py +0 -0
  306. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
  307. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/scripts/setup_access.py +0 -0
  308. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/scripts/setup_instance.py +0 -0
  309. {lamindb-1.11.3 → lamindb-1.12.0}/tests/permissions/test_permissions.py +0 -0
  310. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/conftest.py +0 -0
  311. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_artifact_zarr.py +0 -0
  312. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_cache.py +0 -0
  313. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_connect_reconnect.py +0 -0
  314. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_storage_lifecycle.py +0 -0
  315. {lamindb-1.11.3 → lamindb-1.12.0}/tests/storage/test_streaming.py +0 -0
@@ -200,6 +200,9 @@ venv.bak/
200
200
  .dmypy.json
201
201
  dmypy.json
202
202
 
203
+ # ruff
204
+ .ruff_cache
205
+
203
206
  # Pyre type checker
204
207
  .pyre/
205
208
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamindb
3
- Version: 1.11.3
4
- Summary: A data framework for biology.
3
+ Version: 1.12.0
4
+ Summary: A data lakehouse for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.10,<3.14
7
7
  Description-Content-Type: text/markdown
@@ -10,22 +10,20 @@ 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.7.2
14
- Requires-Dist: lamindb_setup[aws]==1.10.2
15
- Requires-Dist: bionty>=1.7a1
16
- Requires-Dist: wetlab>=1.5a1
13
+ Requires-Dist: lamin_cli==1.8.0
14
+ Requires-Dist: lamindb_setup[aws]==1.11.0
15
+ Requires-Dist: bionty==1.8.1
16
+ Requires-Dist: wetlab==1.6.1
17
17
  Requires-Dist: nbproject==0.11.1
18
18
  Requires-Dist: jupytext
19
19
  Requires-Dist: nbconvert>=7.2.1
20
- Requires-Dist: mistune!=3.1.0
21
20
  Requires-Dist: pyyaml
22
21
  Requires-Dist: pyarrow
23
22
  Requires-Dist: pandera>=0.24.0
24
23
  Requires-Dist: typing_extensions!=4.6.0
25
24
  Requires-Dist: python-dateutil
26
25
  Requires-Dist: pandas>=2.0.0
27
- Requires-Dist: scipy<1.15.0
28
- Requires-Dist: anndata>=0.8.0,<=0.12.1
26
+ Requires-Dist: anndata>=0.8.0,<=0.12.2
29
27
  Requires-Dist: fsspec
30
28
  Requires-Dist: graphviz
31
29
  Requires-Dist: psycopg2-binary
@@ -60,8 +58,7 @@ Provides-Extra: zarr
60
58
 
61
59
  # LaminDB - A data lakehouse for biology
62
60
 
63
- LaminDB is an open-source data lakehouse to enable learning at scale in biology.
64
- It organizes datasets through validation & annotation and provides data lineage, queryability, and reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
61
+ LaminDB organizes datasets through validation & annotation and provides data lineage, queryability & reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
65
62
 
66
63
  <details>
67
64
  <summary>Why?</summary>
@@ -80,17 +77,17 @@ Moreover, it provides context through data lineage -- tracing data and code, sci
80
77
  **Highlights.**
81
78
 
82
79
  - **data lineage:** track inputs & outputs of notebooks, scripts, functions & pipelines with a single line of code
83
- - **unified infrastructure:** access diverse storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
84
- - **lakehouse capabilities**: manage, monitor & validate features, labels & dataset schemas; perform distributed queries and batch loading
85
- - **biological data formats:** validate & annotate formats like `DataFrame`, `AnnData`, `MuData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, DuckDB, ...
86
- - **biological entities**: organize experimental metadata & extensible ontologies in registries based on the Django ORM
80
+ - **unified access:** storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
81
+ - **lakehouse**: manage, monitor & validate features, labels & dataset schemas; distributed queries and batch loading
82
+ - **biological formats:** validate & annotate `DataFrame`, `AnnData`, `SpatialData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, ...
83
+ - **biological entities**: manage experimental metadata & ontologies based on the Django ORM
87
84
  - **reproducible & auditable:** auto-version & timestamp execution reports, source code & compute environments, attribute records to users
88
85
  - **zero lock-in & scalable:** runs in your infrastructure; is _not_ a client for a rate-limited REST API
89
86
  - **extendable:** create custom plug-ins for your own applications based on the Django ecosystem
90
87
  - **integrations:** visualization tools like [vitessce](https://docs.lamin.ai/vitessce), workflow managers like [nextflow](https://docs.lamin.ai/nextflow) & [redun](https://docs.lamin.ai/redun), and [other tools](https://docs.lamin.ai/integrations)
91
88
  - **production-ready:** used in BigPharma, BioTech, hospitals & top labs
92
89
 
93
- LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai)
90
+ LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai).
94
91
 
95
92
  ## Docs
96
93
 
@@ -155,26 +152,26 @@ artifact.describe()
155
152
 
156
153
  <img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/BOTCBgHDAvwglN3U0002.png" width="550">
157
154
 
158
- You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g).
155
+ You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g):
159
156
 
160
157
  <img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/6sofuDVvTANB0f480002.png" width="850">
161
158
 
162
159
  To annotate an artifact with a label, use:
163
160
 
164
161
  ```python
165
- my_experiment = ln.ULabel(name="My experiment").save() # create a label in the universal label ontology
166
- artifact.ulabels.add(my_experiment) # annotate the artifact with the label
162
+ my_experiment = ln.Record(name="My experiment").save() # create a label in the universal label ontology
163
+ artifact.records.add(my_experiment) # annotate the artifact with the label
167
164
  ```
168
165
 
169
166
  To query for a set of artifacts, use the `filter()` statement.
170
167
 
171
168
  ```python
172
- ln.Artifact.filter(ulabels=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
169
+ ln.Artifact.filter(records=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
173
170
  ln.Artifact.filter(transform__key="create-fasta.py").to_dataframe() # query by the name of the script we just ran
174
171
  ```
175
172
 
176
173
  If you have a structured dataset like a `DataFrame`, an `AnnData`, or another array, you can validate the content of the dataset (and parse annotations).
177
- Here is an example for a dataframe: [docs.lamin.ai/introduction#validate-an-artifact](https://docs.lamin.ai/introduction#validate-an-artifact).
174
+ Here is [an example for a dataframe](https://docs.lamin.ai/tutorial#validate-an-artifact).
178
175
 
179
176
  With a large body of validated datasets, you can then access data through distributed queries & batch streaming, see here: [docs.lamin.ai/arrays](https://docs.lamin.ai/arrays).
180
177
 
@@ -7,8 +7,7 @@
7
7
 
8
8
  # LaminDB - A data lakehouse for biology
9
9
 
10
- LaminDB is an open-source data lakehouse to enable learning at scale in biology.
11
- It organizes datasets through validation & annotation and provides data lineage, queryability, and reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
10
+ LaminDB organizes datasets through validation & annotation and provides data lineage, queryability & reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
12
11
 
13
12
  <details>
14
13
  <summary>Why?</summary>
@@ -27,17 +26,17 @@ Moreover, it provides context through data lineage -- tracing data and code, sci
27
26
  **Highlights.**
28
27
 
29
28
  - **data lineage:** track inputs & outputs of notebooks, scripts, functions & pipelines with a single line of code
30
- - **unified infrastructure:** access diverse storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
31
- - **lakehouse capabilities**: manage, monitor & validate features, labels & dataset schemas; perform distributed queries and batch loading
32
- - **biological data formats:** validate & annotate formats like `DataFrame`, `AnnData`, `MuData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, DuckDB, ...
33
- - **biological entities**: organize experimental metadata & extensible ontologies in registries based on the Django ORM
29
+ - **unified access:** storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
30
+ - **lakehouse**: manage, monitor & validate features, labels & dataset schemas; distributed queries and batch loading
31
+ - **biological formats:** validate & annotate `DataFrame`, `AnnData`, `SpatialData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, ...
32
+ - **biological entities**: manage experimental metadata & ontologies based on the Django ORM
34
33
  - **reproducible & auditable:** auto-version & timestamp execution reports, source code & compute environments, attribute records to users
35
34
  - **zero lock-in & scalable:** runs in your infrastructure; is _not_ a client for a rate-limited REST API
36
35
  - **extendable:** create custom plug-ins for your own applications based on the Django ecosystem
37
36
  - **integrations:** visualization tools like [vitessce](https://docs.lamin.ai/vitessce), workflow managers like [nextflow](https://docs.lamin.ai/nextflow) & [redun](https://docs.lamin.ai/redun), and [other tools](https://docs.lamin.ai/integrations)
38
37
  - **production-ready:** used in BigPharma, BioTech, hospitals & top labs
39
38
 
40
- LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai)
39
+ LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai).
41
40
 
42
41
  ## Docs
43
42
 
@@ -102,25 +101,25 @@ artifact.describe()
102
101
 
103
102
  <img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/BOTCBgHDAvwglN3U0002.png" width="550">
104
103
 
105
- You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g).
104
+ You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g):
106
105
 
107
106
  <img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/6sofuDVvTANB0f480002.png" width="850">
108
107
 
109
108
  To annotate an artifact with a label, use:
110
109
 
111
110
  ```python
112
- my_experiment = ln.ULabel(name="My experiment").save() # create a label in the universal label ontology
113
- artifact.ulabels.add(my_experiment) # annotate the artifact with the label
111
+ my_experiment = ln.Record(name="My experiment").save() # create a label in the universal label ontology
112
+ artifact.records.add(my_experiment) # annotate the artifact with the label
114
113
  ```
115
114
 
116
115
  To query for a set of artifacts, use the `filter()` statement.
117
116
 
118
117
  ```python
119
- ln.Artifact.filter(ulabels=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
118
+ ln.Artifact.filter(records=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
120
119
  ln.Artifact.filter(transform__key="create-fasta.py").to_dataframe() # query by the name of the script we just ran
121
120
  ```
122
121
 
123
122
  If you have a structured dataset like a `DataFrame`, an `AnnData`, or another array, you can validate the content of the dataset (and parse annotations).
124
- Here is an example for a dataframe: [docs.lamin.ai/introduction#validate-an-artifact](https://docs.lamin.ai/introduction#validate-an-artifact).
123
+ Here is [an example for a dataframe](https://docs.lamin.ai/tutorial#validate-an-artifact).
125
124
 
126
125
  With a large body of validated datasets, you can then access data through distributed queries & batch streaming, see here: [docs.lamin.ai/arrays](https://docs.lamin.ai/arrays).
@@ -18,31 +18,9 @@
18
18
  "cell_type": "markdown",
19
19
  "metadata": {},
20
20
  "source": [
21
- "We saw how LaminDB allows to query & search across artifacts & collections using registries: {doc}`registries`.\n",
21
+ "We saw how LaminDB allows to query & search across artifacts using registries: {doc}`registries`.\n",
22
22
  "\n",
23
- "Let us now look at the following case:\n",
24
- "\n",
25
- "```\n",
26
- "# get a lookup for labels\n",
27
- "ulabels = ln.ULabel.lookup()\n",
28
- "# query a parquet file matching an \"setosa\"\n",
29
- "df = ln.Artifact.filter(ulabels=ulabels.setosa, suffix=\".suffix\").first().load()\n",
30
- "# query all observations in the DataFrame matching \"setosa\"\n",
31
- "df_setosa = df.loc[:, df.iris_organism_name == ulabels.setosa.name] \n",
32
- "```\n",
33
- "\n",
34
- "Because the artifact was validated, querying the `DataFrame` is guaranteed to succeed!\n",
35
- "\n",
36
- "Such within-collection queries are also possible for cloud-backed collections using [DuckDB](https://duckdb.org),\n",
37
- "[TileDB](https://tiledb.com), [zarr](https://zarr.readthedocs.io/en/stable), [HDF5](https://docs.h5py.org/en/stable),\n",
38
- "[parquet](https://parquet.apache.org), and other storage backends.\n",
39
- "\n",
40
- "- For a use case with TileDB, see: {doc}`docs:cellxgene`\n",
41
- "- For a use case with DuckDB, see: {doc}`docs:rxrx`\n",
42
- "\n",
43
- "In this notebook, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud.\n",
44
- "\n",
45
- "Let us create a remote instance for testing."
23
+ "Let us now query the datasets in storage themselves. Here, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud."
46
24
  ]
47
25
  },
48
26
  {
@@ -55,6 +33,7 @@
55
33
  },
56
34
  "outputs": [],
57
35
  "source": [
36
+ "# replace with your username and S3 bucket\n",
58
37
  "!lamin login testuser1\n",
59
38
  "!lamin init --storage s3://lamindb-ci/test-arrays"
60
39
  ]
@@ -80,7 +59,7 @@
80
59
  "import numpy as np\n",
81
60
  "import zarr\n",
82
61
  "\n",
83
- "ln.track(\"hsRyWJggf2Ca\")"
62
+ "ln.track()"
84
63
  ]
85
64
  },
86
65
  {