lamindb 0.49.3__tar.gz → 0.50.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.
- {lamindb-0.49.3 → lamindb-0.50.1}/.github/workflows/build.yml +2 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/.gitignore +1 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/.pre-commit-config.yaml +1 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/PKG-INFO +34 -36
- {lamindb-0.49.3 → lamindb-0.50.1}/README.md +27 -29
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/biology/00-registries.ipynb +2 -11
- lamindb-0.50.1/docs/biology/10-analyses.ipynb +573 -0
- {lamindb-0.49.3/docs → lamindb-0.50.1/docs/biology}/lnschema-bionty.ipynb +11 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/changelog.md +44 -25
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/acid.ipynb +2 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/idempotency.ipynb +2 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/ingest.ipynb +1 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/notebooks.ipynb +1 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/track-run-inputs.ipynb +1 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide/data-lineage.ipynb +15 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide/schemas.ipynb +3 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide/select.ipynb +1 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide/stream.ipynb +1 -3
- {lamindb-0.49.3/docs/biology → lamindb-0.50.1/docs/guide}/test_notebooks.py +6 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide.md +3 -5
- lamindb-0.50.1/docs/img/readme/neuron_view_parents_dist=2.svg +109 -0
- lamindb-0.50.1/docs/img/readme/view_lineage.svg +270 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/reference.md +2 -2
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/add-replace-stage.ipynb +1 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/upload.ipynb +1 -3
- {lamindb-0.49.3/docs/guide → lamindb-0.50.1/docs}/tutorial1.ipynb +487 -207
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/__init__.py +55 -15
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_context.py +25 -25
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_delete.py +8 -8
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_feature.py +15 -11
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_feature_set.py +70 -39
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_file.py +80 -56
- lamindb-0.50.1/lamindb/_filter.py +14 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_from_values.py +55 -92
- lamindb-0.49.3/lamindb/_manager.py → lamindb-0.50.1/lamindb/_query_manager.py +8 -5
- lamindb-0.49.3/lamindb/_queryset.py → lamindb-0.50.1/lamindb/_query_set.py +31 -28
- lamindb-0.49.3/lamindb/_orm.py → lamindb-0.50.1/lamindb/_registry.py +53 -294
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_save.py +14 -13
- lamindb-0.50.1/lamindb/_synonym.py +203 -0
- lamindb-0.50.1/lamindb/_validate.py +134 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_view.py +15 -9
- lamindb-0.50.1/lamindb/dev/__init__.py +32 -0
- lamindb-0.50.1/lamindb/dev/_data.py +195 -0
- lamindb-0.50.1/lamindb/dev/_feature_manager.py +102 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/_settings.py +10 -9
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/_view_parents.py +36 -17
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/datasets/__init__.py +5 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/datasets/_core.py +35 -17
- lamindb-0.50.1/lamindb/dev/exc.py +4 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/_backed_access.py +53 -17
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/file.py +44 -15
- {lamindb-0.49.3 → lamindb-0.50.1}/noxfile.py +2 -6
- {lamindb-0.49.3 → lamindb-0.50.1}/pyproject.toml +7 -7
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.github/workflows/build.yml +42 -33
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/changelog.md +7 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/test_notebooks.py +1 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +2 -2
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_close.py +5 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_delete.py +14 -12
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +11 -13
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +8 -10
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +3 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_notebook.py +5 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +4 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_set.py +3 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +5 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_cloud_sqlite_locker.py +6 -6
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_django.py +5 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +4 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +39 -11
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +11 -7
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +4 -4
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_schema.py +2 -2
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_storage.py +8 -1
- {lamindb-0.49.3/sub → lamindb-0.50.1/sub/lamindb-setup}/lnschema-core/CHANGELOG.md +11 -8
- {lamindb-0.49.3/sub → lamindb-0.50.1/sub/lamindb-setup}/lnschema-core/lnschema_core/__init__.py +2 -1
- lamindb-0.50.1/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +17 -0
- {lamindb-0.49.3/sub → lamindb-0.50.1/sub/lamindb-setup}/lnschema-core/lnschema_core/models.py +98 -90
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/noxfile.py +23 -11
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/pyproject.toml +1 -1
- lamindb-0.50.1/sub/lamindb-setup/tests/test_load_persistent_instance.py +8 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/.pre-commit-config.yaml +1 -1
- {lamindb-0.49.3/sub/lamindb-setup → lamindb-0.50.1/sub}/lnschema-core/CHANGELOG.md +27 -8
- {lamindb-0.49.3/sub/lamindb-setup → lamindb-0.50.1/sub}/lnschema-core/lnschema_core/__init__.py +7 -3
- lamindb-0.50.1/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +135 -0
- lamindb-0.50.1/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +77 -0
- lamindb-0.50.1/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +17 -0
- {lamindb-0.49.3/sub/lamindb-setup → lamindb-0.50.1/sub}/lnschema-core/lnschema_core/models.py +670 -336
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_cache.py +3 -5
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_dataset.py +8 -1
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_feature.py +12 -3
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_feature_manager.py +68 -32
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_feature_set.py +2 -2
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_file.py +35 -24
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_from_values.py +16 -7
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_queryset.py +6 -1
- lamindb-0.49.3/tests/test_orm.py → lamindb-0.50.1/tests/test_registry.py +6 -6
- lamindb-0.50.1/tests/test_storage.py +79 -0
- lamindb-0.49.3/docs/biology/10-scrna.ipynb +0 -593
- lamindb-0.49.3/docs/biology/11-scrna-1.ipynb +0 -340
- lamindb-0.49.3/docs/biology/20-flow.ipynb +0 -308
- lamindb-0.49.3/docs/biology/30-spatial.ipynb +0 -192
- lamindb-0.49.3/docs/biology/40-multimodal.ipynb +0 -320
- lamindb-0.49.3/docs/img/readme/neuron_view_parents_dist=2.svg +0 -109
- lamindb-0.49.3/docs/img/readme/view_lineage.svg +0 -255
- lamindb-0.49.3/docs/img/tutorial1/features.png +0 -0
- lamindb-0.49.3/lamindb/_feature_manager.py +0 -237
- lamindb-0.49.3/lamindb/_filter.py +0 -14
- lamindb-0.49.3/lamindb/dev/__init__.py +0 -25
- lamindb-0.49.3/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -81
- lamindb-0.49.3/tests/test-files/pbmc68k.h5ad +0 -0
- lamindb-0.49.3/tests/test_storage.py +0 -40
- {lamindb-0.49.3 → lamindb-0.50.1}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/.gitmodules +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/LICENSE +0 -0
- {lamindb-0.49.3/docs/guide → lamindb-0.50.1/docs/biology}/test_notebooks.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/bionty.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/faq.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/guide/setup.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/index.md +0 -0
- {lamindb-0.49.3/docs/ref → lamindb-0.50.1/docs}/lamin-utils.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/lamindb.md +0 -0
- {lamindb-0.49.3/docs/ref → lamindb-0.50.1/docs}/lnschema-bionty.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/nbproject.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/readfcs.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/docs/storage.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamin-project.yaml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_dataset.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_label.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_logger.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_storage.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/_transform.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/datasets/_fake.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/hashing.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/_zarr.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/storage/object.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/dev/utils.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/schema/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/schema/_core.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/setup/dev/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/lamindb/types.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.gitmodules +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/faq/edge-cases-login-init.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/faq/index.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/faq/multi-session.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/faq/switch-environment.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/faq/test-sqlite-sync.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/01-init-instance.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/02-load-instance.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/03-set-storage.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/04-schema-modules.ipynb +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/index.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/migrate.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/guide/setup-user.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamin-project.yaml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/__main__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_settings_load.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_settings_store.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/.gitignore +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/LICENSE +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/README.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.49.3/sub → lamindb-0.50.1/sub/lamindb-setup}/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
- {lamindb-0.49.3/sub → lamindb-0.50.1/sub/lamindb-setup}/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/noxfile.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/tests/hub/test_instance.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/tests/hub/test_signup_signin.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lamindb-setup/tests/hub/test_storage.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_bionty.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_init_instance.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_load_instance.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_login.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_migrate.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_set_storage.py +0 -0
- {lamindb-0.49.3/sub/lamindb-setup/tests → lamindb-0.50.1/sub/lamindb-setup/tests/unit}/test_signup.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/conftest.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_context.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_db.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_hashing.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_manager.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_settings.py +0 -0
- {lamindb-0.49.3 → lamindb-0.50.1}/tests/test_transform.py +0 -0
@@ -76,7 +76,8 @@ jobs:
|
|
76
76
|
with:
|
77
77
|
name: coverage--${{ matrix.group }}
|
78
78
|
path: .coverage
|
79
|
-
|
79
|
+
# manually move two notebooks
|
80
|
+
- run: mv ./docs/tutorial1.ipynb ./docs/guide/
|
80
81
|
- name: upload docs
|
81
82
|
if: ${{ matrix.group == 'guide' || matrix.group == 'biology' || matrix.group == 'faq' || matrix.group == 'storage' }}
|
82
83
|
uses: actions/upload-artifact@v2
|
@@ -73,4 +73,4 @@ repos:
|
|
73
73
|
- id: pydocstyle
|
74
74
|
exclude: lamindb/schema/dev/__init__.py
|
75
75
|
args: # google style + __init__, see http://www.pydocstyle.org/en/stable/error_codes.html
|
76
|
-
- --ignore=D100,D101,D102,D103,D105,D106,D107,D203,D204,D213,D215,D400,D401,D403,D404,D406,D407,D408,D409,D412,D413,D415,D418,D104,D417
|
76
|
+
- --ignore=D100,D101,D102,D103,D105,D106,D107,D203,D204,D213,D214,D215,D400,D401,D403,D404,D406,D407,D408,D409,D412,D413,D415,D418,D104,D417
|
@@ -1,16 +1,16 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.
|
4
|
-
Summary: Open-source data
|
3
|
+
Version: 0.50.1
|
4
|
+
Summary: Open-source data platform for biology.
|
5
5
|
Author-email: Lamin Labs <laminlabs@gmail.com>
|
6
6
|
Requires-Python: >=3.8
|
7
7
|
Description-Content-Type: text/markdown
|
8
8
|
Classifier: Programming Language :: Python :: 3.8
|
9
9
|
Classifier: Programming Language :: Python :: 3.9
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
11
|
-
Requires-Dist: lnschema_core==0.
|
12
|
-
Requires-Dist: lamindb_setup==0.49.
|
13
|
-
Requires-Dist: lamin_utils==0.9.
|
11
|
+
Requires-Dist: lnschema_core==0.44.3
|
12
|
+
Requires-Dist: lamindb_setup==0.49.6
|
13
|
+
Requires-Dist: lamin_utils==0.9.6
|
14
14
|
Requires-Dist: erdiagram>=0.1.2
|
15
15
|
Requires-Dist: rapidfuzz
|
16
16
|
Requires-Dist: pydantic[dotenv]
|
@@ -24,7 +24,7 @@ Requires-Dist: botocore==1.29.76 ; extra == "aws"
|
|
24
24
|
Requires-Dist: urllib3<2 ; extra == "aws"
|
25
25
|
Requires-Dist: boto3==1.26.76 ; extra == "aws"
|
26
26
|
Requires-Dist: fsspec[s3]==2023.5.0 ; extra == "aws"
|
27
|
-
Requires-Dist: lnschema_bionty==0.29.
|
27
|
+
Requires-Dist: lnschema_bionty==0.29.2 ; extra == "bionty"
|
28
28
|
Requires-Dist: pre-commit ; extra == "dev"
|
29
29
|
Requires-Dist: nox ; extra == "dev"
|
30
30
|
Requires-Dist: laminci>=0.3 ; extra == "dev"
|
@@ -39,7 +39,7 @@ Requires-Dist: fsspec[gs]==2023.5.0 ; extra == "gcp"
|
|
39
39
|
Requires-Dist: nbproject==0.9.0 ; extra == "jupyter"
|
40
40
|
Requires-Dist: nbproject==0.9.0 ; extra == "nbproject"
|
41
41
|
Requires-Dist: psycopg2-binary ; extra == "postgres"
|
42
|
-
Requires-Dist: zarr ; extra == "zarr"
|
42
|
+
Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
|
43
43
|
Project-URL: Home, https://github.com/laminlabs/lamindb
|
44
44
|
Provides-Extra: aws
|
45
45
|
Provides-Extra: bionty
|
@@ -58,27 +58,27 @@ Provides-Extra: zarr
|
|
58
58
|
|
59
59
|
# LaminDB
|
60
60
|
|
61
|
-
Open-source data
|
61
|
+
Open-source data platform for biology.
|
62
62
|
|
63
63
|
```{warning}
|
64
64
|
|
65
|
-
Public beta:
|
65
|
+
Public beta: Close to having converged a stable API, but some breaking changes might still occur.
|
66
66
|
|
67
|
-
Update 2023-06-14:
|
68
|
-
|
69
|
-
- We completed a major migration from SQLAlchemy/SQLModel to Django, available in 0.42.0.
|
70
|
-
- The last version before the migration is 0.41.2.
|
71
67
|
```
|
72
68
|
|
73
69
|
## Introduction
|
74
70
|
|
75
|
-
LaminDB is an open-source Python library to
|
71
|
+
LaminDB is an open-source Python library to manage files & datasets while
|
72
|
+
|
73
|
+
- tracking provenance across pipelines, notebooks & app uploads
|
74
|
+
- validating & linking data batches using biological registries & ontologies
|
75
|
+
|
76
|
+
You can
|
76
77
|
|
77
|
-
- Manage
|
78
|
-
- Manage biological registries, ontologies, features & schemas.
|
79
|
-
- Enhance integrity through built-in data validation and [idempotent](https://lamin.ai/docs/faq/idempotency), [ACID](https://lamin.ai/docs/faq/acid) operations.
|
78
|
+
- Manage features & labels schema-less or schema-full.
|
80
79
|
- Query, search, look up, save, load and stream with one API.
|
81
80
|
- Collaborate across a mesh of LaminDB instances.
|
81
|
+
- Enjoy [idempotent](https://lamin.ai/docs/faq/idempotency) & [ACID](https://lamin.ai/docs/faq/acid) operations.
|
82
82
|
|
83
83
|
LaminApp is a data management app built on LaminDB. If LaminDB ~ git, LaminApp ~ GitHub.
|
84
84
|
|
@@ -101,17 +101,22 @@ import lamindb as ln
|
|
101
101
|
# import lnschema_bionty as lb # optional, for bionty schema
|
102
102
|
```
|
103
103
|
|
104
|
-
### Manage data objects
|
104
|
+
### Manage files and data objects
|
105
105
|
|
106
106
|
```python
|
107
|
-
# Store a
|
107
|
+
# Store and register a file
|
108
|
+
ln.File("s3://my-bucket/images/image001.jpg").save() # or a local path
|
109
|
+
|
110
|
+
# Store and register a DataFrame object
|
108
111
|
df = pd.DataFrame({"feat1": [1, 2], "feat2": [3, 4]}) # AnnData works, too
|
109
112
|
ln.File(df, description="Data batch 1").save() # create a File object and save/upload it
|
110
113
|
|
111
114
|
# To find it, if you don't have specific metadata in mind, run a search
|
112
115
|
ln.File.search("batch 1")
|
113
|
-
# Or
|
116
|
+
# Or query (under-the-hood, you have the full power of SQL to query)
|
114
117
|
file = ln.File.filter(description="Data batch 1").one() # get exactly one result
|
118
|
+
# Query by `key` (the relative path within your storage)
|
119
|
+
ln.File.filter(key__startswith="images/").df() # get query results as a DataFrame
|
115
120
|
|
116
121
|
# Load a file back into memory
|
117
122
|
df = file.load()
|
@@ -119,27 +124,19 @@ df = file.load()
|
|
119
124
|
backed = file.backed() # currently works for AnnData, zarr, HDF5, not yet for DataFrame
|
120
125
|
```
|
121
126
|
|
122
|
-
### Manage files
|
123
|
-
|
124
|
-
```python
|
125
|
-
# Store a file
|
126
|
-
file = ln.File("s3://my-bucket/images/image001.jpg") # or a local path
|
127
|
-
file.save() # register the file
|
128
|
-
|
129
|
-
# Query by `key` (the relative path within your storage) and load into memory
|
130
|
-
file.filter(key__startswith="images/").df() # all files in folder "images/" in default storage
|
131
|
-
```
|
132
|
-
|
133
127
|
### Auto-complete categoricals and search
|
134
128
|
|
135
129
|
```python
|
136
|
-
# When you're unsure about spellings, use a lookup object
|
137
|
-
users = ln.User.lookup()
|
130
|
+
# When you're unsure about spellings, use a lookup object
|
131
|
+
users = ln.User.lookup() # by default uses handle field
|
138
132
|
ln.File.filter(created_by=users.lizlemon)
|
133
|
+
users = ln.User.lookup("name") # a lookup object of the name field
|
134
|
+
users.liz_lemon
|
139
135
|
|
140
136
|
# Or search
|
141
|
-
ln.User.search("liz lemon"
|
137
|
+
ln.User.search("liz lemon") # by default searches the handle field
|
142
138
|
user = ln.User.search("liz lemon", return_queryset=True).first() # grab the top search result as a record
|
139
|
+
ln.User.search("liz lemon", field=["name", "handle"]) # search against multiple fields
|
143
140
|
```
|
144
141
|
|
145
142
|
### Track & query data lineage
|
@@ -161,11 +158,12 @@ file.view_lineage()
|
|
161
158
|
Track a Jupyter Notebook:
|
162
159
|
|
163
160
|
```python
|
161
|
+
# my-analysis.ipynb
|
164
162
|
ln.track() # auto-detect & save notebook metadata
|
165
163
|
ln.File("my_artifact.parquet").save() # this file is now aware that it was saved in this notebook
|
166
164
|
```
|
167
165
|
|
168
|
-
When you query the file, later on, you'll know
|
166
|
+
When you query the file, later on, you'll know which notebook it came from:
|
169
167
|
|
170
168
|
```python
|
171
169
|
file = ln.File.filter(description="my_artifact.parquet").one() # query for a file
|
@@ -314,7 +312,7 @@ We do _not_ store any of your data, but only basic metadata about you (email add
|
|
314
312
|
|
315
313
|
LaminDB builds semantics of R&D and biology onto well-established tools:
|
316
314
|
|
317
|
-
- SQLite & Postgres for SQL databases using Django
|
315
|
+
- SQLite & Postgres for SQL databases using Django Registry (previously: SQLModel)
|
318
316
|
- S3, GCP & local storage for object storage using fsspec
|
319
317
|
- Configurable storage formats: pyarrow, anndata, zarr, etc.
|
320
318
|
- Biological knowledge sources & ontologies: see [Bionty](https://lamin.ai/docs/bionty)
|
@@ -5,27 +5,27 @@
|
|
5
5
|
|
6
6
|
# LaminDB
|
7
7
|
|
8
|
-
Open-source data
|
8
|
+
Open-source data platform for biology.
|
9
9
|
|
10
10
|
```{warning}
|
11
11
|
|
12
|
-
Public beta:
|
12
|
+
Public beta: Close to having converged a stable API, but some breaking changes might still occur.
|
13
13
|
|
14
|
-
Update 2023-06-14:
|
15
|
-
|
16
|
-
- We completed a major migration from SQLAlchemy/SQLModel to Django, available in 0.42.0.
|
17
|
-
- The last version before the migration is 0.41.2.
|
18
14
|
```
|
19
15
|
|
20
16
|
## Introduction
|
21
17
|
|
22
|
-
LaminDB is an open-source Python library to
|
18
|
+
LaminDB is an open-source Python library to manage files & datasets while
|
19
|
+
|
20
|
+
- tracking provenance across pipelines, notebooks & app uploads
|
21
|
+
- validating & linking data batches using biological registries & ontologies
|
22
|
+
|
23
|
+
You can
|
23
24
|
|
24
|
-
- Manage
|
25
|
-
- Manage biological registries, ontologies, features & schemas.
|
26
|
-
- Enhance integrity through built-in data validation and [idempotent](https://lamin.ai/docs/faq/idempotency), [ACID](https://lamin.ai/docs/faq/acid) operations.
|
25
|
+
- Manage features & labels schema-less or schema-full.
|
27
26
|
- Query, search, look up, save, load and stream with one API.
|
28
27
|
- Collaborate across a mesh of LaminDB instances.
|
28
|
+
- Enjoy [idempotent](https://lamin.ai/docs/faq/idempotency) & [ACID](https://lamin.ai/docs/faq/acid) operations.
|
29
29
|
|
30
30
|
LaminApp is a data management app built on LaminDB. If LaminDB ~ git, LaminApp ~ GitHub.
|
31
31
|
|
@@ -48,17 +48,22 @@ import lamindb as ln
|
|
48
48
|
# import lnschema_bionty as lb # optional, for bionty schema
|
49
49
|
```
|
50
50
|
|
51
|
-
### Manage data objects
|
51
|
+
### Manage files and data objects
|
52
52
|
|
53
53
|
```python
|
54
|
-
# Store a
|
54
|
+
# Store and register a file
|
55
|
+
ln.File("s3://my-bucket/images/image001.jpg").save() # or a local path
|
56
|
+
|
57
|
+
# Store and register a DataFrame object
|
55
58
|
df = pd.DataFrame({"feat1": [1, 2], "feat2": [3, 4]}) # AnnData works, too
|
56
59
|
ln.File(df, description="Data batch 1").save() # create a File object and save/upload it
|
57
60
|
|
58
61
|
# To find it, if you don't have specific metadata in mind, run a search
|
59
62
|
ln.File.search("batch 1")
|
60
|
-
# Or
|
63
|
+
# Or query (under-the-hood, you have the full power of SQL to query)
|
61
64
|
file = ln.File.filter(description="Data batch 1").one() # get exactly one result
|
65
|
+
# Query by `key` (the relative path within your storage)
|
66
|
+
ln.File.filter(key__startswith="images/").df() # get query results as a DataFrame
|
62
67
|
|
63
68
|
# Load a file back into memory
|
64
69
|
df = file.load()
|
@@ -66,27 +71,19 @@ df = file.load()
|
|
66
71
|
backed = file.backed() # currently works for AnnData, zarr, HDF5, not yet for DataFrame
|
67
72
|
```
|
68
73
|
|
69
|
-
### Manage files
|
70
|
-
|
71
|
-
```python
|
72
|
-
# Store a file
|
73
|
-
file = ln.File("s3://my-bucket/images/image001.jpg") # or a local path
|
74
|
-
file.save() # register the file
|
75
|
-
|
76
|
-
# Query by `key` (the relative path within your storage) and load into memory
|
77
|
-
file.filter(key__startswith="images/").df() # all files in folder "images/" in default storage
|
78
|
-
```
|
79
|
-
|
80
74
|
### Auto-complete categoricals and search
|
81
75
|
|
82
76
|
```python
|
83
|
-
# When you're unsure about spellings, use a lookup object
|
84
|
-
users = ln.User.lookup()
|
77
|
+
# When you're unsure about spellings, use a lookup object
|
78
|
+
users = ln.User.lookup() # by default uses handle field
|
85
79
|
ln.File.filter(created_by=users.lizlemon)
|
80
|
+
users = ln.User.lookup("name") # a lookup object of the name field
|
81
|
+
users.liz_lemon
|
86
82
|
|
87
83
|
# Or search
|
88
|
-
ln.User.search("liz lemon"
|
84
|
+
ln.User.search("liz lemon") # by default searches the handle field
|
89
85
|
user = ln.User.search("liz lemon", return_queryset=True).first() # grab the top search result as a record
|
86
|
+
ln.User.search("liz lemon", field=["name", "handle"]) # search against multiple fields
|
90
87
|
```
|
91
88
|
|
92
89
|
### Track & query data lineage
|
@@ -108,11 +105,12 @@ file.view_lineage()
|
|
108
105
|
Track a Jupyter Notebook:
|
109
106
|
|
110
107
|
```python
|
108
|
+
# my-analysis.ipynb
|
111
109
|
ln.track() # auto-detect & save notebook metadata
|
112
110
|
ln.File("my_artifact.parquet").save() # this file is now aware that it was saved in this notebook
|
113
111
|
```
|
114
112
|
|
115
|
-
When you query the file, later on, you'll know
|
113
|
+
When you query the file, later on, you'll know which notebook it came from:
|
116
114
|
|
117
115
|
```python
|
118
116
|
file = ln.File.filter(description="my_artifact.parquet").one() # query for a file
|
@@ -261,7 +259,7 @@ We do _not_ store any of your data, but only basic metadata about you (email add
|
|
261
259
|
|
262
260
|
LaminDB builds semantics of R&D and biology onto well-established tools:
|
263
261
|
|
264
|
-
- SQLite & Postgres for SQL databases using Django
|
262
|
+
- SQLite & Postgres for SQL databases using Django Registry (previously: SQLModel)
|
265
263
|
- S3, GCP & local storage for object storage using fsspec
|
266
264
|
- Configurable storage formats: pyarrow, anndata, zarr, etc.
|
267
265
|
- Biological knowledge sources & ontologies: see [Bionty](https://lamin.ai/docs/bionty)
|
@@ -21,13 +21,6 @@
|
|
21
21
|
"\n",
|
22
22
|
"Registries can anchor dry & wetlab work to help find, access & model data. No more ambiguity about model dimensions and labels!\n",
|
23
23
|
"\n",
|
24
|
-
"```\n",
|
25
|
-
"\n",
|
26
|
-
"```{toctree}\n",
|
27
|
-
":hidden:\n",
|
28
|
-
":maxdepth: 1\n",
|
29
|
-
"\n",
|
30
|
-
"../lnschema-bionty\n",
|
31
24
|
"```"
|
32
25
|
]
|
33
26
|
},
|
@@ -59,9 +52,7 @@
|
|
59
52
|
"outputs": [],
|
60
53
|
"source": [
|
61
54
|
"import lamindb as ln\n",
|
62
|
-
"import lnschema_bionty as lb
|
63
|
-
"\n",
|
64
|
-
"ln.settings.verbosity = 3 # show hints"
|
55
|
+
"import lnschema_bionty as lb"
|
65
56
|
]
|
66
57
|
},
|
67
58
|
{
|
@@ -330,7 +321,7 @@
|
|
330
321
|
"source": [
|
331
322
|
"You need to specify a field correspond to the values you are passing, for instance \"CellType.name\" or \"CellType.ontology_id\" in this case.\n",
|
332
323
|
"\n",
|
333
|
-
"`
|
324
|
+
"`Registry.from_values()` creates entries in the following steps:\n",
|
334
325
|
"\n",
|
335
326
|
"1. If existing DB records that match the input field values, return records without creating new\n",
|
336
327
|
"2. If input values matches synonyms associated with existing DB records, return records without creating new\n",
|