lamindb 0.66.1__tar.gz → 0.67.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.66.1 → lamindb-0.67.1}/PKG-INFO +6 -6
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/annotate.ipynb +2 -2
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/bio-registries.ipynb +38 -31
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/changelog.md +14 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/introduction.ipynb +4 -4
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/transfer.ipynb +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/validate.ipynb +3 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/__init__.py +15 -15
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_artifact.py +4 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_collection.py +5 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_from_values.py +17 -17
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_query_manager.py +3 -6
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_query_set.py +17 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_registry.py +3 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_run.py +23 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_transform.py +26 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_validate.py +6 -6
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_label_manager.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_run_context.py +2 -2
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/datasets/_core.py +9 -9
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/file.py +33 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/pyproject.toml +5 -5
- lamindb-0.67.1/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/lamin_cli/_transform.py +2 -2
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/changelog.md +1 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/04-test-bionty.ipynb +3 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_export.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +8 -8
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/docs/changelog.md +7 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/__init__.py +7 -6
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +40 -26
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +4 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/_bionty.py +8 -8
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +2 -2
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/ids.py +8 -13
- lamindb-0.67.1/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +138 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/models.py +89 -88
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/pyproject.toml +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/CHANGELOG.md +2 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/models.py +8 -8
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_artifact.py +61 -15
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_collection.py +2 -9
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_delete.py +1 -2
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_feature_manager.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_from_values.py +11 -11
- lamindb-0.67.1/tests/test_load.py +39 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_queryset.py +1 -1
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_transfer.py +13 -13
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_transform.py +53 -6
- lamindb-0.67.1/tests/test_uid.py +23 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_validate.py +9 -9
- lamindb-0.66.1/lamindb/_delete.py +0 -65
- lamindb-0.66.1/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- {lamindb-0.66.1 → lamindb-0.67.1}/.github/workflows/build.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/.gitignore +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/.gitmodules +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/.pre-commit-config.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/LICENSE +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/README.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/bionty.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/data.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/key.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/validator.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/faq.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/features-lamindb.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/features-laminhub.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/guide.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/index.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/installation.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/lamin-utils.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/lamindb.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/lnschema-bionty.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/meta.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/nbproject.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/query-search.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/readfcs.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/reference.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/schemas.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/setup.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/signup-login.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/storage.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/test_notebooks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/track.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/tutorial.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_feature.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_feature_set.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_filter.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_parents.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_save.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_storage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_ulabel.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_utils.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/_view.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_feature_manager.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_mapped_collection.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_settings.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_track_environment.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/_view_tree.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/datasets/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/datasets/_fake.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/exceptions.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/fields.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/hashing.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/_backed_access.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/_zarr.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/storage/object.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/types.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/dev/versioning.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/lamindb/setup/dev/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/noxfile.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/scripts/not-initialized.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/test_notebooks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamin-cli/tests/test_scripts.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-cache-management.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-empty-init.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-import-schema.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-invalid-schema.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-load-anonymously.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-load-lock.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-sqlite-sync.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test_notebooks2.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/01-init-instance.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/02-load-instance.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/03-set-storage.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/test-multi-session.ipynb +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/test_notebooks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_init_vault.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_storage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/cloud_sqlite_locker.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/django.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/noxfile.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/pyproject.toml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/conftest.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/test_django.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_delete_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_init_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_load_instance.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_login.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_migrate.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_set_storage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/test_storage_access.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lamindb-setup/tests/test_vault.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/.gitignore +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/LICENSE +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/README.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/docs/index.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/docs/reference.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lamin-project.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/noxfile.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/conftest.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_cache.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_data.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_db.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_feature.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_feature_set.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_hashing.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_label_manager.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_manager.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_parents.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_registry.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_run.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_run_context.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_save.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_settings.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_storage.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_ulabel.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_versioning.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_view.py +0 -0
- {lamindb-0.66.1 → lamindb-0.67.1}/tests/test_visibility.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.67.1
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.8
|
@@ -9,10 +9,10 @@ Classifier: Programming Language :: Python :: 3.8
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.9
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
12
|
-
Requires-Dist: lnschema_core==0.61.
|
13
|
-
Requires-Dist: lamindb_setup==0.64.
|
12
|
+
Requires-Dist: lnschema_core==0.61.1
|
13
|
+
Requires-Dist: lamindb_setup==0.64.2
|
14
14
|
Requires-Dist: lamin_utils==0.13.0
|
15
|
-
Requires-Dist: lamin_cli==0.6.
|
15
|
+
Requires-Dist: lamin_cli==0.6.1
|
16
16
|
Requires-Dist: rapidfuzz
|
17
17
|
Requires-Dist: pyarrow
|
18
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -28,7 +28,7 @@ Requires-Dist: boto3==1.28.17 ; extra == "aws"
|
|
28
28
|
Requires-Dist: aiobotocore==2.5.4 ; extra == "aws"
|
29
29
|
Requires-Dist: fsspec[s3]==2023.9.0 ; extra == "aws"
|
30
30
|
Requires-Dist: s3fs>=2023.9.0 ; extra == "aws"
|
31
|
-
Requires-Dist: lnschema_bionty==0.
|
31
|
+
Requires-Dist: lnschema_bionty==0.39.0 ; extra == "bionty"
|
32
32
|
Requires-Dist: pandas<2 ; extra == "dev"
|
33
33
|
Requires-Dist: pre-commit ; extra == "dev"
|
34
34
|
Requires-Dist: nox ; extra == "dev"
|
@@ -42,7 +42,7 @@ Requires-Dist: lamin_vault ; extra == "dev"
|
|
42
42
|
Requires-Dist: django-schema-graph ; extra == "erdiagram"
|
43
43
|
Requires-Dist: readfcs>=1.1.7 ; extra == "fcs"
|
44
44
|
Requires-Dist: fsspec[gs]==2023.9.0 ; extra == "gcp"
|
45
|
-
Requires-Dist: nbproject==0.
|
45
|
+
Requires-Dist: nbproject==0.10.0 ; extra == "jupyter"
|
46
46
|
Requires-Dist: nbstripout ; extra == "jupyter"
|
47
47
|
Requires-Dist: nbconvert ; extra == "jupyter"
|
48
48
|
Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
|
@@ -311,7 +311,7 @@
|
|
311
311
|
"metadata": {},
|
312
312
|
"outputs": [],
|
313
313
|
"source": [
|
314
|
-
"organism = lb.Organism.
|
314
|
+
"organism = lb.Organism.from_public(name=external_meta[\"organism\"])\n",
|
315
315
|
"organism.save()\n",
|
316
316
|
"organism"
|
317
317
|
]
|
@@ -322,7 +322,7 @@
|
|
322
322
|
"metadata": {},
|
323
323
|
"outputs": [],
|
324
324
|
"source": [
|
325
|
-
"assay = lb.ExperimentalFactor.
|
325
|
+
"assay = lb.ExperimentalFactor.from_public(name=external_meta[\"assay\"])\n",
|
326
326
|
"assay.save()\n",
|
327
327
|
"assay"
|
328
328
|
]
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"\n",
|
25
25
|
"In LaminDB, registries are standard SQL tables, equipped with [mechanisms that avoid typos & duplicated data](/faq/idempotency).\n",
|
26
26
|
"\n",
|
27
|
-
"In addition, LaminDB makes it easy to import records from public ontologies, based on plug-in {mod}`lnschema_bionty`.\n",
|
27
|
+
"In addition, LaminDB makes it easy to import records from public biological ontologies, based on plug-in {mod}`lnschema_bionty`.\n",
|
28
28
|
"\n",
|
29
29
|
"In this notebook, you'll see how to manage an in-house ontology anchored in public knowledge.\n",
|
30
30
|
"\n",
|
@@ -43,7 +43,7 @@
|
|
43
43
|
"cell_type": "markdown",
|
44
44
|
"metadata": {},
|
45
45
|
"source": [
|
46
|
-
"Let us create an instance that has {mod}`lnschema_bionty` mounted:"
|
46
|
+
"Let us create an instance that has {mod}`lnschema_bionty` mounted, which extends to include biological registries:"
|
47
47
|
]
|
48
48
|
},
|
49
49
|
{
|
@@ -95,8 +95,8 @@
|
|
95
95
|
},
|
96
96
|
"outputs": [],
|
97
97
|
"source": [
|
98
|
-
"lb.Organism.
|
99
|
-
"lb.CellType.
|
98
|
+
"lb.Organism.from_public(name=\"human\").save()\n",
|
99
|
+
"lb.CellType.from_public(name=\"T cell\").save()\n",
|
100
100
|
"lb.CellType(name=\"my T cell subtype\").save()"
|
101
101
|
]
|
102
102
|
},
|
@@ -115,13 +115,11 @@
|
|
115
115
|
"source": [
|
116
116
|
"We start with a public ontology for cell types.\n",
|
117
117
|
"\n",
|
118
|
-
"
|
118
|
+
"`.public()` gives you access to the `ReferenceTable`, a class for accessing public ontologies.\n",
|
119
119
|
"\n",
|
120
|
-
"
|
120
|
+
"`ReferenceTable` provides simple access to curated public ontologies that Lamin hosts for reliable and performant access. For most `ReferenceTable` objects, you can access the underlying ontology through [Pronto](https://github.com/althonos/pronto).\n",
|
121
121
|
"\n",
|
122
|
-
"
|
123
|
-
"\n",
|
124
|
-
"Let's create a `Bionty` object:"
|
122
|
+
"Let's create a `ReferenceTable` object:"
|
125
123
|
]
|
126
124
|
},
|
127
125
|
{
|
@@ -134,7 +132,7 @@
|
|
134
132
|
},
|
135
133
|
"outputs": [],
|
136
134
|
"source": [
|
137
|
-
"
|
135
|
+
"public = lb.CellType.public()"
|
138
136
|
]
|
139
137
|
},
|
140
138
|
{
|
@@ -143,7 +141,7 @@
|
|
143
141
|
"metadata": {},
|
144
142
|
"outputs": [],
|
145
143
|
"source": [
|
146
|
-
"
|
144
|
+
"public"
|
147
145
|
]
|
148
146
|
},
|
149
147
|
{
|
@@ -160,7 +158,7 @@
|
|
160
158
|
"metadata": {},
|
161
159
|
"outputs": [],
|
162
160
|
"source": [
|
163
|
-
"
|
161
|
+
"public.search(\"gamma delta T cell\").head(3)"
|
164
162
|
]
|
165
163
|
},
|
166
164
|
{
|
@@ -177,7 +175,7 @@
|
|
177
175
|
"metadata": {},
|
178
176
|
"outputs": [],
|
179
177
|
"source": [
|
180
|
-
"lookup =
|
178
|
+
"lookup = public.lookup()\n",
|
181
179
|
"lookup.gamma_delta_t_cell"
|
182
180
|
]
|
183
181
|
},
|
@@ -206,11 +204,20 @@
|
|
206
204
|
"gdt_cell = lb.CellType(lookup.gamma_delta_t_cell)"
|
207
205
|
]
|
208
206
|
},
|
207
|
+
{
|
208
|
+
"cell_type": "code",
|
209
|
+
"execution_count": null,
|
210
|
+
"metadata": {},
|
211
|
+
"outputs": [],
|
212
|
+
"source": [
|
213
|
+
"gdt_cell"
|
214
|
+
]
|
215
|
+
},
|
209
216
|
{
|
210
217
|
"cell_type": "markdown",
|
211
218
|
"metadata": {},
|
212
219
|
"source": [
|
213
|
-
"(Alternatively, we could construct the gamma delta T cell via {meth}`~lnschema_bionty.dev.BioRegistry.
|
220
|
+
"(Alternatively, we could construct the gamma delta T cell via {meth}`~lnschema_bionty.dev.BioRegistry.from_public`, which is synonyms-aware.)"
|
214
221
|
]
|
215
222
|
},
|
216
223
|
{
|
@@ -219,7 +226,7 @@
|
|
219
226
|
"metadata": {},
|
220
227
|
"outputs": [],
|
221
228
|
"source": [
|
222
|
-
"
|
229
|
+
"lb.CellType.from_public(ontology_id=\"CL:0000798\")"
|
223
230
|
]
|
224
231
|
},
|
225
232
|
{
|
@@ -405,7 +412,7 @@
|
|
405
412
|
"\n",
|
406
413
|
"1. If registry records match the values, load these records\n",
|
407
414
|
"2. If values match synonyms of registry records, load these records\n",
|
408
|
-
"3. (`lnschema_bionty`-only) If no record in the registry matches, attempt to load records from a public reference
|
415
|
+
"3. (`lnschema_bionty`-only) If no record in the registry matches, attempt to load records from a public reference\n",
|
409
416
|
"4. (`lnschema_bionty`-only) Same as 3. but based on synonyms\n",
|
410
417
|
"\n",
|
411
418
|
"No records will be returned if input field values aren't mappable.\n",
|
@@ -416,9 +423,9 @@
|
|
416
423
|
"celltype_names = [\n",
|
417
424
|
" \"gamma-delta T cell\", # existing record with the same name\n",
|
418
425
|
" \"T lymphocyte\", # existing record with synonym\n",
|
419
|
-
" \"hepatocyte\", #
|
420
|
-
" \"HSC\", #
|
421
|
-
" \"my new cell type\", # Not exist in
|
426
|
+
" \"hepatocyte\", # public record with the same name\n",
|
427
|
+
" \"HSC\", # public record with synonym\n",
|
428
|
+
" \"my new cell type\", # Not exist in in-house registry, not exist in public reference\n",
|
422
429
|
"]\n",
|
423
430
|
"lb.CellType.from_values(celltype_names)\n",
|
424
431
|
"```\n",
|
@@ -699,7 +706,7 @@
|
|
699
706
|
"metadata": {},
|
700
707
|
"outputs": [],
|
701
708
|
"source": [
|
702
|
-
"lb.Gene.
|
709
|
+
"lb.Gene.from_public(symbol=\"TCF7\", organism=\"human\")"
|
703
710
|
]
|
704
711
|
},
|
705
712
|
{
|
@@ -751,7 +758,7 @@
|
|
751
758
|
"metadata": {},
|
752
759
|
"outputs": [],
|
753
760
|
"source": [
|
754
|
-
"lb.Gene.
|
761
|
+
"lb.Gene.from_public(symbol=\"Ap5b1\")"
|
755
762
|
]
|
756
763
|
},
|
757
764
|
{
|
@@ -780,7 +787,7 @@
|
|
780
787
|
},
|
781
788
|
"outputs": [],
|
782
789
|
"source": [
|
783
|
-
"lb.
|
790
|
+
"lb.PublicSource.filter(currently_used=True).df()"
|
784
791
|
]
|
785
792
|
},
|
786
793
|
{
|
@@ -788,7 +795,7 @@
|
|
788
795
|
"cell_type": "markdown",
|
789
796
|
"metadata": {},
|
790
797
|
"source": [
|
791
|
-
"Each record is linked to a versioned
|
798
|
+
"Each record is linked to a versioned public source (if it was created from public):"
|
792
799
|
]
|
793
800
|
},
|
794
801
|
{
|
@@ -798,7 +805,7 @@
|
|
798
805
|
"outputs": [],
|
799
806
|
"source": [
|
800
807
|
"hepatocyte = lb.CellType.filter(name=\"hepatocyte\").one()\n",
|
801
|
-
"hepatocyte.
|
808
|
+
"hepatocyte.public_source"
|
802
809
|
]
|
803
810
|
},
|
804
811
|
{
|
@@ -807,7 +814,7 @@
|
|
807
814
|
"source": [
|
808
815
|
"## Create records from specific public ontologies\n",
|
809
816
|
"\n",
|
810
|
-
"By default, records are created from the `\"currently_used\"`
|
817
|
+
"By default, records are created from the `\"currently_used\"` public sources which are configured during the instance initialization, e.g.:"
|
811
818
|
]
|
812
819
|
},
|
813
820
|
{
|
@@ -816,7 +823,7 @@
|
|
816
823
|
"metadata": {},
|
817
824
|
"outputs": [],
|
818
825
|
"source": [
|
819
|
-
"lb.Phenotype.
|
826
|
+
"lb.Phenotype.public()"
|
820
827
|
]
|
821
828
|
},
|
822
829
|
{
|
@@ -838,8 +845,8 @@
|
|
838
845
|
},
|
839
846
|
"outputs": [],
|
840
847
|
"source": [
|
841
|
-
"
|
842
|
-
"iris_setosa = lb.Organism.
|
848
|
+
"public_source = lb.PublicSource.filter(entity=\"Organism\", source=\"ncbitaxon\").one()\n",
|
849
|
+
"iris_setosa = lb.Organism.from_public(name=\"iris setosa\", public_source=public_source)\n",
|
843
850
|
"iris_setosa.save()"
|
844
851
|
]
|
845
852
|
},
|
@@ -858,7 +865,7 @@
|
|
858
865
|
"metadata": {},
|
859
866
|
"outputs": [],
|
860
867
|
"source": [
|
861
|
-
"iris_setosa.
|
868
|
+
"iris_setosa.public_source"
|
862
869
|
]
|
863
870
|
},
|
864
871
|
{
|
@@ -874,7 +881,7 @@
|
|
874
881
|
"cell_type": "markdown",
|
875
882
|
"metadata": {},
|
876
883
|
"source": [
|
877
|
-
"Analogously, you can pass `
|
884
|
+
"Analogously, you can pass `public_source` to bulk-create records from a non-default source:"
|
878
885
|
]
|
879
886
|
},
|
880
887
|
{
|
@@ -888,7 +895,7 @@
|
|
888
895
|
"outputs": [],
|
889
896
|
"source": [
|
890
897
|
"records = lb.Organism.from_values(\n",
|
891
|
-
" [\"iris setosa\", \"iris versicolor\", \"iris virginica\"],
|
898
|
+
" [\"iris setosa\", \"iris versicolor\", \"iris virginica\"], public_source=public_source\n",
|
892
899
|
")\n",
|
893
900
|
"ln.save(records)"
|
894
901
|
]
|
@@ -5,6 +5,20 @@
|
|
5
5
|
.. role:: small
|
6
6
|
```
|
7
7
|
|
8
|
+
## 0.67
|
9
|
+
|
10
|
+
### 0.67.1 {small}`2024-01-12`
|
11
|
+
|
12
|
+
- 🐛 Fix idempotency of `collection.save()` [PR](https://github.com/laminlabs/lamindb/pull/1401) [@falexwolf](https://github.com/falexwolf)
|
13
|
+
- 🩹 Also amend run [PR](https://github.com/laminlabs/lamindb/pull/1399) [@falexwolf](https://github.com/falexwolf)
|
14
|
+
- 🚸 Disallow bulk-delete for Artifact, Transform & Collection [PR](https://github.com/laminlabs/lamindb/pull/1398) [@falexwolf](https://github.com/falexwolf)
|
15
|
+
- 🚸 Init transform versions at 1 [PR](https://github.com/laminlabs/lamindb/pull/1397) [@falexwolf](https://github.com/falexwolf)
|
16
|
+
- ✨ Load json and html files [PR](https://github.com/laminlabs/lamindb/pull/1396) [@falexwolf](https://github.com/falexwolf)
|
17
|
+
|
18
|
+
### 0.67.0 {small}`2024-01-11`
|
19
|
+
|
20
|
+
- 🚚 Rename `.bionty` to `.public`, `.from_bionty` to `.from_public` [PR](https://github.com/laminlabs/lamindb/pull/1394) [@sunnyosun](https://github.com/sunnyosun)
|
21
|
+
|
8
22
|
## 0.66
|
9
23
|
|
10
24
|
### 0.66.1 {small}`2024-01-09`
|
@@ -751,7 +751,7 @@
|
|
751
751
|
"metadata": {},
|
752
752
|
"outputs": [],
|
753
753
|
"source": [
|
754
|
-
"lb.Tissue.
|
754
|
+
"lb.Tissue.public().search(\"umbilical blood\").head(2)"
|
755
755
|
]
|
756
756
|
},
|
757
757
|
{
|
@@ -769,7 +769,7 @@
|
|
769
769
|
},
|
770
770
|
"outputs": [],
|
771
771
|
"source": [
|
772
|
-
"tissue = lb.Tissue.
|
772
|
+
"tissue = lb.Tissue.from_public(name=\"umbilical cord blood\")\n",
|
773
773
|
"tissue.save()\n",
|
774
774
|
"tissue.view_parents(distance=2)"
|
775
775
|
]
|
@@ -897,7 +897,7 @@
|
|
897
897
|
"metadata": {},
|
898
898
|
"outputs": [],
|
899
899
|
"source": [
|
900
|
-
"lb.Gene.
|
900
|
+
"lb.Gene.from_public(symbol=\"CD38\", organism=\"human\").save()\n",
|
901
901
|
"artifact2 = ln.Artifact.from_anndata(\n",
|
902
902
|
" adata, description=\"my RNA-seq batch 2\", field=lb.Gene.symbol, organism=\"human\"\n",
|
903
903
|
")\n",
|
@@ -1038,7 +1038,7 @@
|
|
1038
1038
|
"import lnschema_bionty as lb\n",
|
1039
1039
|
"\n",
|
1040
1040
|
"# create an ontology-coupled cell type record and save it\n",
|
1041
|
-
"lb.CellType.
|
1041
|
+
"lb.CellType.from_public(name=\"neuron\").save()\n",
|
1042
1042
|
"\n",
|
1043
1043
|
"# create a record to track a new cell state\n",
|
1044
1044
|
"new_cell_state = lb.CellType(name=\"my neuron cell state\", description=\"explains X\")\n",
|
@@ -167,11 +167,11 @@
|
|
167
167
|
"name": "python3"
|
168
168
|
},
|
169
169
|
"language_info": {
|
170
|
-
"artifact_extension": ".py",
|
171
170
|
"codemirror_mode": {
|
172
171
|
"name": "ipython",
|
173
172
|
"version": 3
|
174
173
|
},
|
174
|
+
"file_extension": ".py",
|
175
175
|
"mimetype": "text/x-python",
|
176
176
|
"name": "python",
|
177
177
|
"nbconvert_exporter": "python",
|
@@ -38,7 +38,7 @@
|
|
38
38
|
"\n",
|
39
39
|
"{class}`~lamindb.dev.CanValidate` methods validate against the registries in your LaminDB instance.\n",
|
40
40
|
"\n",
|
41
|
-
"In {doc}`./bio-registries`, you'll see how to extend standard validation to validation against _public references_ using a
|
41
|
+
"In {doc}`./bio-registries`, you'll see how to extend standard validation to validation against _public references_ using a `ReferenceTable` ontology object: `public = Registry.public()`.\n",
|
42
42
|
"\n",
|
43
43
|
"By default, {meth}`~lamindb.dev.Registry.from_values` considers a match in a public reference a validated value for any {mod}`lnschema_bionty` entity.\n",
|
44
44
|
"\n",
|
@@ -114,7 +114,7 @@
|
|
114
114
|
"ln.Artifact(df, description=\"test data\").save()\n",
|
115
115
|
"ln.ULabel(name=\"Project A\").save()\n",
|
116
116
|
"ln.ULabel(name=\"Project B\").save()\n",
|
117
|
-
"lb.Disease.
|
117
|
+
"lb.Disease.from_public(ontology_id=\"MONDO:0004975\").save()"
|
118
118
|
]
|
119
119
|
},
|
120
120
|
{
|
@@ -153,7 +153,7 @@
|
|
153
153
|
"source": [
|
154
154
|
"Bulk creating records using {meth}`~lamindb.dev.Registry.from_values` only returns validated records:\n",
|
155
155
|
"\n",
|
156
|
-
"Note:
|
156
|
+
"Note: Terms validated with public reference are also created with `.from_values`, see {doc}`/bio-registries` for details."
|
157
157
|
]
|
158
158
|
},
|
159
159
|
{
|
@@ -54,7 +54,7 @@ Modules & settings:
|
|
54
54
|
|
55
55
|
"""
|
56
56
|
|
57
|
-
__version__ = "0.
|
57
|
+
__version__ = "0.67.1" # denote a release candidate for 0.1.0 with 0.1rc1
|
58
58
|
|
59
59
|
import os as _os
|
60
60
|
|
@@ -102,20 +102,20 @@ if _INSTANCE_SETUP:
|
|
102
102
|
User,
|
103
103
|
)
|
104
104
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
105
|
+
from . import (
|
106
|
+
_artifact,
|
107
|
+
_collection,
|
108
|
+
_feature,
|
109
|
+
_feature_set,
|
110
|
+
_parents,
|
111
|
+
_registry,
|
112
|
+
_run,
|
113
|
+
_storage,
|
114
|
+
_transform,
|
115
|
+
_ulabel,
|
116
|
+
_validate,
|
117
|
+
dev,
|
118
|
+
)
|
119
119
|
from ._save import save
|
120
120
|
from ._view import view
|
121
121
|
from .dev._run_context import run_context
|
@@ -911,13 +911,13 @@ def delete(
|
|
911
911
|
self, permanent: Optional[bool] = None, storage: Optional[bool] = None
|
912
912
|
) -> None:
|
913
913
|
# by default, we only move artifacts into the trash
|
914
|
-
if self.visibility >
|
914
|
+
if self.visibility > -1 and permanent is not True:
|
915
915
|
if storage is not None:
|
916
916
|
logger.warning("moving artifact to trash, storage arg is ignored")
|
917
917
|
# move to trash
|
918
|
-
self.visibility =
|
918
|
+
self.visibility = -1
|
919
919
|
self.save()
|
920
|
-
logger.warning("moved artifact to trash")
|
920
|
+
logger.warning("moved artifact to trash (visibility = -1)")
|
921
921
|
return
|
922
922
|
|
923
923
|
# if the artifact is already in the trash
|
@@ -929,6 +929,7 @@ def delete(
|
|
929
929
|
)
|
930
930
|
delete_record = response == "y"
|
931
931
|
else:
|
932
|
+
# this second option doesn't feel very intuitive
|
932
933
|
delete_record = permanent
|
933
934
|
|
934
935
|
if delete_record:
|
@@ -424,8 +424,12 @@ def save(self, *args, **kwargs) -> None:
|
|
424
424
|
self.artifact.save()
|
425
425
|
# we don't need to save feature sets again
|
426
426
|
save_feature_sets(self)
|
427
|
+
state_was_adding = self._state.adding
|
427
428
|
super(Collection, self).save()
|
428
|
-
|
429
|
+
# we don't allow updating the collection of artifacts
|
430
|
+
# if users want to update the set of artifacts, they
|
431
|
+
# have to create a new collection
|
432
|
+
if state_was_adding and hasattr(self, "_artifacts"):
|
429
433
|
if self._artifacts is not None and len(self._artifacts) > 0:
|
430
434
|
links = [
|
431
435
|
CollectionArtifact(collection_id=self.id, artifact_id=artifact.id)
|
@@ -14,7 +14,7 @@ def get_or_create_records(
|
|
14
14
|
iterable: ListLike,
|
15
15
|
field: StrField,
|
16
16
|
*,
|
17
|
-
|
17
|
+
from_public: bool = False,
|
18
18
|
**kwargs,
|
19
19
|
) -> List[Registry]:
|
20
20
|
"""Get or create records from iterables."""
|
@@ -32,14 +32,14 @@ def get_or_create_records(
|
|
32
32
|
|
33
33
|
# new records to be created based on new values
|
34
34
|
if len(nonexist_values) > 0:
|
35
|
-
if
|
36
|
-
records_bionty, unmapped_values =
|
35
|
+
if from_public:
|
36
|
+
records_bionty, unmapped_values = create_records_from_public(
|
37
37
|
iterable_idx=nonexist_values, field=field, msg=msg, **kwargs
|
38
38
|
)
|
39
39
|
if len(records_bionty) > 0:
|
40
40
|
msg = ""
|
41
41
|
for record in records_bionty:
|
42
|
-
record.
|
42
|
+
record._from_public = True
|
43
43
|
records += records_bionty
|
44
44
|
else:
|
45
45
|
unmapped_values = nonexist_values
|
@@ -81,8 +81,8 @@ def get_existing_records(
|
|
81
81
|
model = field.field.model
|
82
82
|
condition: Dict = {} if len(kwargs) == 0 else kwargs.copy()
|
83
83
|
# existing records matching is agnostic to the bionty source
|
84
|
-
if "
|
85
|
-
condition.pop("
|
84
|
+
if "public_source" in condition:
|
85
|
+
condition.pop("public_source")
|
86
86
|
|
87
87
|
if _has_organism_field(model):
|
88
88
|
from lnschema_bionty._bionty import create_or_get_organism_record
|
@@ -160,7 +160,7 @@ def get_existing_records(
|
|
160
160
|
return records, nonexist_values, msg
|
161
161
|
|
162
162
|
|
163
|
-
def
|
163
|
+
def create_records_from_public(
|
164
164
|
iterable_idx: pd.Index,
|
165
165
|
field: StrField,
|
166
166
|
msg: str = "",
|
@@ -169,24 +169,24 @@ def create_records_from_bionty(
|
|
169
169
|
model = field.field.model
|
170
170
|
records: List = []
|
171
171
|
# populate additional fields from bionty
|
172
|
-
from lnschema_bionty._bionty import
|
172
|
+
from lnschema_bionty._bionty import get_public_source_record
|
173
173
|
|
174
174
|
# create the corresponding bionty object from model
|
175
175
|
try:
|
176
|
-
|
177
|
-
organism=kwargs.get("organism"),
|
176
|
+
public_ontology = model.public(
|
177
|
+
organism=kwargs.get("organism"), public_source=kwargs.get("public_source")
|
178
178
|
)
|
179
179
|
except Exception:
|
180
180
|
# for custom records that are not created from bionty sources
|
181
181
|
return records, iterable_idx
|
182
|
-
# add
|
183
|
-
kwargs.update({"
|
182
|
+
# add public_source record to the kwargs
|
183
|
+
kwargs.update({"public_source": get_public_source_record(public_ontology)})
|
184
184
|
|
185
185
|
# filter the columns in bionty df based on fields
|
186
|
-
bionty_df = _filter_bionty_df_columns(model=model,
|
186
|
+
bionty_df = _filter_bionty_df_columns(model=model, public_ontology=public_ontology)
|
187
187
|
|
188
188
|
# standardize in the bionty reference
|
189
|
-
result =
|
189
|
+
result = public_ontology.inspect(iterable_idx, field=field.field.name, mute=True)
|
190
190
|
syn_mapper = result.synonyms_mapper
|
191
191
|
|
192
192
|
msg_syn: str = ""
|
@@ -254,13 +254,13 @@ def _print_values(names: List, n: int = 20) -> str:
|
|
254
254
|
return print_values
|
255
255
|
|
256
256
|
|
257
|
-
def _filter_bionty_df_columns(model: Registry,
|
257
|
+
def _filter_bionty_df_columns(model: Registry, public_ontology: Any) -> pd.DataFrame:
|
258
258
|
bionty_df = pd.DataFrame()
|
259
|
-
if
|
259
|
+
if public_ontology is not None:
|
260
260
|
model_field_names = {i.name for i in model._meta.fields}
|
261
261
|
# parents needs to be added here as relationships aren't in fields
|
262
262
|
model_field_names.add("parents")
|
263
|
-
bionty_df =
|
263
|
+
bionty_df = public_ontology.df().reset_index()
|
264
264
|
if model.__name__ == "Gene":
|
265
265
|
# groupby ensembl_gene_id and concat ncbi_gene_ids
|
266
266
|
groupby_id_col = (
|
@@ -46,14 +46,11 @@ class QueryManager(models.Manager):
|
|
46
46
|
|
47
47
|
Examples:
|
48
48
|
>>> ln.save(ln.ULabel.from_values(["ULabel1", "ULabel2", "ULabel3"], field="name"))
|
49
|
-
>>> labels = ln.ULabel.filter(name__icontains
|
49
|
+
>>> labels = ln.ULabel.filter(name__icontains="label").all()
|
50
50
|
>>> ln.ULabel(name="ULabel1").save()
|
51
51
|
>>> label = ln.ULabel.filter(name="ULabel1").one()
|
52
52
|
>>> label.parents.set(labels)
|
53
53
|
>>> label.parents.list()
|
54
|
-
[ULabel(id=sFMcPepC, name=ULabel1, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse), # noqa
|
55
|
-
ULabel(id=2SscQvsM, name=ULabel2, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse), # noqa
|
56
|
-
ULabel(id=lecV87vi, name=ULabel3, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse)] # noqa
|
57
54
|
>>> label.parents.list("name")
|
58
55
|
['ULabel1', 'ULabel2', 'ULabel3']
|
59
56
|
"""
|
@@ -76,7 +73,7 @@ class QueryManager(models.Manager):
|
|
76
73
|
For `**kwargs`, see :meth:`lamindb.dev.QuerySet.df`.
|
77
74
|
"""
|
78
75
|
self._track_run_input_manager()
|
79
|
-
return self.
|
76
|
+
return self._all_base_class()
|
80
77
|
|
81
78
|
@doc_args(Registry.search.__doc__)
|
82
79
|
def search(self, string: str, **kwargs):
|
@@ -115,5 +112,5 @@ models.Manager.__getitem__ = QueryManager.__getitem__
|
|
115
112
|
models.Manager._track_run_input_manager = QueryManager._track_run_input_manager
|
116
113
|
# the two lines below would be easy if we could actually inherit; like this,
|
117
114
|
# they're suboptimal
|
118
|
-
models.Manager.
|
115
|
+
models.Manager._all_base_class = models.Manager.all
|
119
116
|
models.Manager.all = QueryManager.all
|
@@ -4,7 +4,14 @@ from typing import Dict, Iterable, List, NamedTuple, Optional, Union
|
|
4
4
|
import pandas as pd
|
5
5
|
from django.db import models
|
6
6
|
from lamindb_setup.dev._docs import doc_args
|
7
|
-
from lnschema_core.models import
|
7
|
+
from lnschema_core.models import (
|
8
|
+
Artifact,
|
9
|
+
CanValidate,
|
10
|
+
Collection,
|
11
|
+
IsTree,
|
12
|
+
Registry,
|
13
|
+
Transform,
|
14
|
+
)
|
8
15
|
from lnschema_core.types import ListLike, StrField
|
9
16
|
|
10
17
|
|
@@ -147,6 +154,13 @@ class QuerySet(models.QuerySet, CanValidate, IsTree):
|
|
147
154
|
df.rename(columns={values_expression: expression}, inplace=True)
|
148
155
|
return df
|
149
156
|
|
157
|
+
def delete(self, *args, **kwargs):
|
158
|
+
if self.model in {Artifact, Collection, Transform}:
|
159
|
+
for record in self:
|
160
|
+
record.delete(*args, **kwargs)
|
161
|
+
else:
|
162
|
+
self._delete_base_class(*args, **kwargs)
|
163
|
+
|
150
164
|
def list(self, field: Optional[str] = None) -> List[Registry]:
|
151
165
|
"""Populate a list with the results.
|
152
166
|
|
@@ -282,3 +296,5 @@ models.QuerySet.lookup = QuerySet.lookup
|
|
282
296
|
models.QuerySet.validate = QuerySet.validate
|
283
297
|
models.QuerySet.inspect = QuerySet.inspect
|
284
298
|
models.QuerySet.standardize = QuerySet.standardize
|
299
|
+
models.QuerySet._delete_base_class = models.QuerySet.delete
|
300
|
+
models.QuerySet.delete = QuerySet.delete
|
@@ -129,12 +129,12 @@ def from_values(
|
|
129
129
|
cls, values: ListLike, field: Optional[StrField] = None, **kwargs
|
130
130
|
) -> List["Registry"]:
|
131
131
|
"""{}."""
|
132
|
-
|
132
|
+
from_public = True if cls.__module__.startswith("lnschema_bionty.") else False
|
133
133
|
field_str = get_default_str_field(cls, field=field)
|
134
134
|
return get_or_create_records(
|
135
135
|
iterable=values,
|
136
136
|
field=getattr(cls, field_str),
|
137
|
-
|
137
|
+
from_public=from_public,
|
138
138
|
**kwargs,
|
139
139
|
)
|
140
140
|
|
@@ -412,7 +412,7 @@ def update_fk_to_default_db(
|
|
412
412
|
def transfer_fk_to_default_db_bulk(records: Union[List, QuerySet]):
|
413
413
|
for fk in [
|
414
414
|
"organism",
|
415
|
-
"
|
415
|
+
"public_source",
|
416
416
|
"initial_version",
|
417
417
|
"latest_report", # Transform
|
418
418
|
"source_code", # Transform
|