lamindb 0.67.0__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.67.0 → lamindb-0.67.1}/PKG-INFO +4 -4
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/changelog.md +8 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/__init__.py +15 -15
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_artifact.py +4 -3
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_collection.py +5 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_from_values.py +7 -7
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_query_manager.py +3 -6
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_query_set.py +17 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_run.py +23 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_transform.py +26 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_label_manager.py +1 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_run_context.py +2 -2
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/file.py +33 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/pyproject.toml +3 -3
- lamindb-0.67.1/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/lamin_cli/_transform.py +2 -2
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/docs/changelog.md +2 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/__init__.py +1 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +25 -25
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/models.py +13 -15
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/pyproject.toml +1 -1
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_artifact.py +61 -15
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_collection.py +2 -9
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_delete.py +1 -2
- lamindb-0.67.1/tests/test_load.py +39 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_transfer.py +13 -13
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_transform.py +53 -6
- lamindb-0.67.0/lamindb/_delete.py +0 -65
- lamindb-0.67.0/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- {lamindb-0.67.0 → lamindb-0.67.1}/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/.gitmodules +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/annotate.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/bio-registries.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/bionty.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/data.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/key.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/validator.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/faq.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/features-lamindb.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/features-laminhub.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/guide.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/installation.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/introduction.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/lamin-utils.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/lamindb.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/lnschema-bionty.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/meta.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/nbproject.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/query-search.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/readfcs.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/schemas.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/setup.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/signup-login.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/storage.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/track.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/transfer.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/tutorial.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/docs/validate.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_feature.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_feature_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_filter.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_ulabel.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_utils.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_validate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/_view.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_feature_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_mapped_collection.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_track_environment.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/_view_tree.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/datasets/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/datasets/_core.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/datasets/_fake.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/exceptions.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/fields.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/hashing.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/_backed_access.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/_zarr.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/storage/object.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/types.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/dev/versioning.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/lamindb/setup/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/scripts/not-initialized.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamin-cli/tests/test_scripts.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/changelog.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-cache-management.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-empty-init.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-import-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-invalid-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-load-anonymously.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-load-lock.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test-sqlite-sync.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-only/test_notebooks2.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/01-init-instance.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/02-load-instance.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/03-set-storage.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/04-test-bionty.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/test-multi-session.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/prod-staging/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_export.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_init_vault.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/cloud_sqlite_locker.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/test_django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-only/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_delete_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_init_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_load_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_login.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/prod-staging/test_set_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/test_storage_access.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lamindb-setup/tests/test_vault.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lamin-project.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/_bionty.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
- {lamindb-0.67.0 → 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.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/CHANGELOG.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.67.0 → 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.67.0 → 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.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
- {lamindb-0.67.0 → 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.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.67.0 → 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.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/models.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_cache.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_db.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_feature.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_feature_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_feature_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_from_values.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_hashing.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_label_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_queryset.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_run.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_run_context.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_uid.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_ulabel.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_validate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_versioning.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.1}/tests/test_view.py +0 -0
- {lamindb-0.67.0 → 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.67.
|
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
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Requires-Dist: lnschema_core==0.61.1
|
13
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"
|
@@ -7,6 +7,14 @@
|
|
7
7
|
|
8
8
|
## 0.67
|
9
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
|
+
|
10
18
|
### 0.67.0 {small}`2024-01-11`
|
11
19
|
|
12
20
|
- 🚚 Rename `.bionty` to `.public`, `.from_bionty` to `.from_public` [PR](https://github.com/laminlabs/lamindb/pull/1394) [@sunnyosun](https://github.com/sunnyosun)
|
@@ -54,7 +54,7 @@ Modules & settings:
|
|
54
54
|
|
55
55
|
"""
|
56
56
|
|
57
|
-
__version__ = "0.67.
|
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)
|
@@ -173,20 +173,20 @@ def create_records_from_public(
|
|
173
173
|
|
174
174
|
# create the corresponding bionty object from model
|
175
175
|
try:
|
176
|
-
|
176
|
+
public_ontology = model.public(
|
177
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
182
|
# add public_source record to the kwargs
|
183
|
-
kwargs.update({"public_source": get_public_source_record(
|
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
|
@@ -30,4 +30,27 @@ def __init__(run: Run, *args, **kwargs):
|
|
30
30
|
)
|
31
31
|
|
32
32
|
|
33
|
+
def delete_run_artifacts(run: Run) -> None:
|
34
|
+
environment = None
|
35
|
+
if run.environment is not None:
|
36
|
+
environment = run.environment
|
37
|
+
run.environment = None
|
38
|
+
report = None
|
39
|
+
if run.report is not None:
|
40
|
+
report = run.report
|
41
|
+
run.report = None
|
42
|
+
if environment is not None or report is not None:
|
43
|
+
run.save()
|
44
|
+
if environment is not None:
|
45
|
+
environment.delete(permanent=True)
|
46
|
+
if report is not None:
|
47
|
+
report.delete(permanent=True)
|
48
|
+
|
49
|
+
|
50
|
+
def delete(self) -> None:
|
51
|
+
delete_run_artifacts(self)
|
52
|
+
super(Run, self).delete()
|
53
|
+
|
54
|
+
|
33
55
|
Run.__init__ = __init__
|
56
|
+
Run.delete = delete
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from typing import TYPE_CHECKING, Optional
|
2
2
|
|
3
|
-
from lnschema_core.models import TRANSFORM_TYPE_DEFAULT, Transform
|
3
|
+
from lnschema_core.models import TRANSFORM_TYPE_DEFAULT, Artifact, Run, Transform
|
4
4
|
|
5
|
+
from ._run import delete_run_artifacts
|
5
6
|
from .dev.versioning import get_uid_from_old_version, init_uid
|
6
7
|
|
7
8
|
if TYPE_CHECKING:
|
@@ -63,4 +64,28 @@ def __init__(transform: Transform, *args, **kwargs):
|
|
63
64
|
)
|
64
65
|
|
65
66
|
|
67
|
+
def delete(self) -> None:
|
68
|
+
# set latest_report to None, it's tracked through the latest run
|
69
|
+
latest_report = None
|
70
|
+
if self.latest_report is not None:
|
71
|
+
latest_report = self.latest_report
|
72
|
+
self.latest_report = None
|
73
|
+
source_code = None
|
74
|
+
if self.source_code is not None:
|
75
|
+
source_code = self.source_code
|
76
|
+
self.source_code = None
|
77
|
+
if latest_report is not None or source_code is not None:
|
78
|
+
self.save()
|
79
|
+
if source_code is not None:
|
80
|
+
source_code.delete(permanent=True)
|
81
|
+
# query all runs and delete their artifacts
|
82
|
+
runs = Run.filter(transform=self)
|
83
|
+
for run in runs:
|
84
|
+
delete_run_artifacts(run)
|
85
|
+
# at this point, all artifacts have been taken care of
|
86
|
+
# we can now leverage CASCADE delete
|
87
|
+
super(Transform, self).delete()
|
88
|
+
|
89
|
+
|
66
90
|
Transform.__init__ = __init__
|
91
|
+
Transform.delete = delete
|
@@ -27,9 +27,9 @@ msg_path_failed = (
|
|
27
27
|
|
28
28
|
msg_manual_init = (
|
29
29
|
"\n(1) save your notebook!"
|
30
|
-
"\n(2)
|
30
|
+
"\n(2) add stem_uid & version to your notebook file by running the CLI:\n"
|
31
31
|
"lamin track {notebook_path}"
|
32
|
-
"\n(3) reload
|
32
|
+
"\n(3) reload your notebook from disk"
|
33
33
|
)
|
34
34
|
|
35
35
|
|
@@ -1,6 +1,8 @@
|
|
1
|
+
import builtins
|
2
|
+
import re
|
1
3
|
import shutil
|
2
4
|
from pathlib import Path
|
3
|
-
from typing import Union
|
5
|
+
from typing import Optional, Union
|
4
6
|
|
5
7
|
import anndata as ad
|
6
8
|
import pandas as pd
|
@@ -24,6 +26,7 @@ except ImportError:
|
|
24
26
|
|
25
27
|
|
26
28
|
AUTO_KEY_PREFIX = ".lamindb/"
|
29
|
+
is_run_from_ipython = getattr(builtins, "__IPYTHON__", False)
|
27
30
|
|
28
31
|
|
29
32
|
# add type annotations back asap when re-organizing the module
|
@@ -143,6 +146,33 @@ def read_tsv(path: Union[str, Path, UPath]) -> pd.DataFrame:
|
|
143
146
|
return pd.read_csv(path_sanitized, sep="\t")
|
144
147
|
|
145
148
|
|
149
|
+
def load_html(path: Union[str, Path, UPath]):
|
150
|
+
if is_run_from_ipython:
|
151
|
+
with open(path, encoding="utf-8") as f:
|
152
|
+
html_content = f.read()
|
153
|
+
# Extract the body content using regular expressions
|
154
|
+
body_content = re.findall(
|
155
|
+
r"<body(?:.*?)>(?:.*?)</body>", html_content, re.DOTALL
|
156
|
+
)
|
157
|
+
# Remove any empty body tags
|
158
|
+
if body_content:
|
159
|
+
body_content = body_content[0]
|
160
|
+
body_content = body_content.strip() # type: ignore
|
161
|
+
from IPython.display import HTML, display
|
162
|
+
|
163
|
+
display(HTML(data=body_content))
|
164
|
+
else:
|
165
|
+
return path
|
166
|
+
|
167
|
+
|
168
|
+
def load_json(path: Union[str, Path, UPath]):
|
169
|
+
import json
|
170
|
+
|
171
|
+
with open(path) as f:
|
172
|
+
data = json.load(f)
|
173
|
+
return data
|
174
|
+
|
175
|
+
|
146
176
|
def load_to_memory(filepath: Union[str, Path, UPath], stream: bool = False, **kwargs):
|
147
177
|
"""Load a file into memory.
|
148
178
|
|
@@ -170,6 +200,8 @@ def load_to_memory(filepath: Union[str, Path, UPath], stream: bool = False, **kw
|
|
170
200
|
".fcs": read_fcs,
|
171
201
|
".zarr": read_adata_zarr,
|
172
202
|
".zrad": read_adata_zarr,
|
203
|
+
".html": load_html,
|
204
|
+
".json": load_json,
|
173
205
|
}
|
174
206
|
|
175
207
|
reader = READER_FUNCS.get(filepath.suffix)
|
@@ -19,7 +19,7 @@ dependencies = [
|
|
19
19
|
"lnschema_core==0.61.1",
|
20
20
|
"lamindb_setup==0.64.2",
|
21
21
|
"lamin_utils==0.13.0",
|
22
|
-
"lamin_cli==0.6.
|
22
|
+
"lamin_cli==0.6.1",
|
23
23
|
# others
|
24
24
|
"rapidfuzz",
|
25
25
|
"pyarrow",
|
@@ -37,7 +37,7 @@ Home = "https://github.com/laminlabs/lamindb"
|
|
37
37
|
|
38
38
|
[project.optional-dependencies]
|
39
39
|
bionty = [
|
40
|
-
"lnschema_bionty==0.
|
40
|
+
"lnschema_bionty==0.39.0",
|
41
41
|
]
|
42
42
|
aws = [
|
43
43
|
"botocore==1.31.17", # for aiobotocore inside s3fs, to fix deps resolution
|
@@ -51,7 +51,7 @@ gcp = [
|
|
51
51
|
"fsspec[gs]==2023.9.0"
|
52
52
|
]
|
53
53
|
jupyter = [
|
54
|
-
"nbproject==0.
|
54
|
+
"nbproject==0.10.0", # keep pinning
|
55
55
|
"nbstripout",
|
56
56
|
"nbconvert",
|
57
57
|
]
|
@@ -13,7 +13,7 @@ def init_script_metadata(script_path: str):
|
|
13
13
|
from lnschema_core.ids import base62_12
|
14
14
|
|
15
15
|
stem_uid = base62_12()
|
16
|
-
version = "
|
16
|
+
version = "1"
|
17
17
|
|
18
18
|
with open(script_path) as f:
|
19
19
|
content = f.read()
|
@@ -331,7 +331,7 @@ def save(filepath: str) -> Optional[str]:
|
|
331
331
|
else:
|
332
332
|
report_file = ln.Artifact(
|
333
333
|
filepath_html,
|
334
|
-
description=f"Report of
|
334
|
+
description=f"Report of run {run.uid}",
|
335
335
|
is_new_version_of=initial_report,
|
336
336
|
visibility=0, # hidden file
|
337
337
|
)
|
@@ -3,6 +3,8 @@
|
|
3
3
|
<!-- prettier-ignore -->
|
4
4
|
Name | PR | Developer | Date | Version
|
5
5
|
--- | --- | --- | --- | ---
|
6
|
+
⬆️ Rename Bionty to PublicOntology | [214](https://github.com/laminlabs/lnschema-bionty/pull/214) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-12 | 0.39.0
|
7
|
+
✏️ Fix encoding | [213](https://github.com/laminlabs/lnschema-bionty/pull/213) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-12 | 0.38.4
|
6
8
|
🚑️ Re-encode PublicSource | [212](https://github.com/laminlabs/lnschema-bionty/pull/212) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-10 | 0.38.3
|
7
9
|
🔊 Remove logging | [211](https://github.com/laminlabs/lnschema-bionty/pull/211) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-10 | 0.38.2
|
8
10
|
⚡️ Speed up previous migration | [210](https://github.com/laminlabs/lnschema-bionty/pull/210) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-10 | 0.38.1
|
@@ -44,12 +44,12 @@ def create_or_get_organism_record(organism: Optional[Union[str, Registry]], orm:
|
|
44
44
|
return organism_record
|
45
45
|
|
46
46
|
|
47
|
-
def get_public_source_record(
|
47
|
+
def get_public_source_record(public_ontology: bt.PublicOntology):
|
48
48
|
kwargs = dict(
|
49
|
-
entity=
|
50
|
-
organism=
|
51
|
-
source=
|
52
|
-
version=
|
49
|
+
entity=public_ontology.__class__.__name__,
|
50
|
+
organism=public_ontology.organism,
|
51
|
+
source=public_ontology.source,
|
52
|
+
version=public_ontology.version,
|
53
53
|
)
|
54
54
|
from .models import PublicSource
|
55
55
|
|
@@ -66,36 +66,36 @@ def encode_uid(orm: Registry, kwargs: dict):
|
|
66
66
|
except AttributeError:
|
67
67
|
name = orm.__class__.__name__.lower()
|
68
68
|
ontology = False
|
69
|
-
str_to_encode =
|
69
|
+
str_to_encode = None
|
70
70
|
if name == "gene":
|
71
|
-
str_to_encode = kwargs.get("ensembl_gene_id"
|
72
|
-
if str_to_encode == "":
|
73
|
-
str_to_encode = kwargs.get("stable_id"
|
74
|
-
if str_to_encode == "":
|
75
|
-
str_to_encode = kwargs.get("symbol"
|
76
|
-
if str_to_encode == "":
|
71
|
+
str_to_encode = kwargs.get("ensembl_gene_id")
|
72
|
+
if str_to_encode is None or str_to_encode == "":
|
73
|
+
str_to_encode = kwargs.get("stable_id")
|
74
|
+
if str_to_encode is None or str_to_encode == "":
|
75
|
+
str_to_encode = kwargs.get("symbol")
|
76
|
+
if str_to_encode is None or str_to_encode == "":
|
77
77
|
raise AssertionError("must provide ensembl_gene_id, stable_id or symbol")
|
78
78
|
elif name == "protein":
|
79
|
-
str_to_encode = kwargs.get("uniprotkb_id"
|
80
|
-
if str_to_encode == "":
|
81
|
-
str_to_encode = kwargs.get("name"
|
82
|
-
if str_to_encode == "":
|
79
|
+
str_to_encode = kwargs.get("uniprotkb_id")
|
80
|
+
if str_to_encode is None or str_to_encode == "":
|
81
|
+
str_to_encode = kwargs.get("name")
|
82
|
+
if str_to_encode is None or str_to_encode == "":
|
83
83
|
raise AssertionError("must provide uniprotkb_id or name")
|
84
84
|
elif name == "cellmarker":
|
85
|
-
str_to_encode = kwargs.get("name"
|
86
|
-
if str_to_encode == "":
|
85
|
+
str_to_encode = kwargs.get("name")
|
86
|
+
if str_to_encode is None or str_to_encode == "":
|
87
87
|
raise AssertionError("must provide name")
|
88
88
|
elif name == "publicsource":
|
89
89
|
str_to_encode = f'{kwargs.get("entity", "")}{kwargs.get("source", "")}{kwargs.get("organism", "")}{kwargs.get("version", "")}' # noqa
|
90
90
|
else:
|
91
|
-
str_to_encode = kwargs.get("ontology_id"
|
92
|
-
if str_to_encode == "":
|
93
|
-
str_to_encode = kwargs.get("name"
|
94
|
-
if str_to_encode == "":
|
91
|
+
str_to_encode = kwargs.get("ontology_id")
|
92
|
+
if str_to_encode is None or str_to_encode == "":
|
93
|
+
str_to_encode = kwargs.get("name")
|
94
|
+
if str_to_encode is None or str_to_encode == "":
|
95
95
|
raise AssertionError("must provide ontology_id or name")
|
96
96
|
ontology = True
|
97
97
|
|
98
|
-
if len(str_to_encode) > 0:
|
98
|
+
if str_to_encode is not None and len(str_to_encode) > 0:
|
99
99
|
if ontology:
|
100
100
|
id_encoder = ids.ontology
|
101
101
|
else:
|
@@ -122,8 +122,8 @@ def lookup2kwargs(orm: Registry, *args, **kwargs) -> Dict:
|
|
122
122
|
organism_record = create_or_get_organism_record(orm=orm.__class__, organism=kwargs.get("organism"))
|
123
123
|
if organism_record is not None:
|
124
124
|
bionty_kwargs["organism"] = organism_record
|
125
|
-
|
126
|
-
bionty_kwargs["public_source"] = get_public_source_record(
|
125
|
+
public_ontology = getattr(bt, orm.__class__.__name__)(organism=organism_record.name if organism_record is not None else None)
|
126
|
+
bionty_kwargs["public_source"] = get_public_source_record(public_ontology)
|
127
127
|
|
128
128
|
model_field_names = {i.name for i in orm._meta.fields}
|
129
129
|
model_field_names.add("parents")
|
@@ -1,7 +1,8 @@
|
|
1
|
-
from typing import List, Optional, Tuple,
|
1
|
+
from typing import List, Optional, Tuple, Union, overload # noqa
|
2
2
|
|
3
3
|
import bionty as bt
|
4
4
|
import numpy as np
|
5
|
+
from bionty import PublicOntology
|
5
6
|
from django.db import models
|
6
7
|
from lamin_utils import logger
|
7
8
|
from lnschema_core.models import CanValidate, HasParents, Registry, User
|
@@ -10,8 +11,6 @@ from lnschema_core.users import current_user_id
|
|
10
11
|
from . import ids
|
11
12
|
from ._bionty import encode_uid, lookup2kwargs
|
12
13
|
|
13
|
-
PublicOntology: TypeAlias = bt.Bionty
|
14
|
-
|
15
14
|
|
16
15
|
class BioRegistry(Registry, HasParents, CanValidate):
|
17
16
|
"""Base Registry of lnschema_bionty.
|
@@ -88,28 +87,28 @@ class BioRegistry(Registry, HasParents, CanValidate):
|
|
88
87
|
public_source: Optional["PublicSource"] = None,
|
89
88
|
**kwargs,
|
90
89
|
) -> "PublicOntology":
|
91
|
-
"""The corresponding
|
90
|
+
"""The corresponding PublicOntology object.
|
92
91
|
|
93
|
-
e.g. lnschema_bionty.CellType.public() is equivalent to bionty.CellType().
|
94
92
|
Note that the public source is auto-configured and tracked via :meth:`lnschema_bionty.PublicSource`.
|
95
93
|
|
96
94
|
See Also:
|
97
|
-
`
|
95
|
+
`PublicOntology <https://lamin.ai/docs/public-ontologies>`__
|
98
96
|
|
99
97
|
Examples:
|
100
98
|
>>> celltype_pub = lb.CellType.public()
|
101
99
|
>>> celltype_pub
|
102
|
-
|
100
|
+
PublicOntology
|
101
|
+
Entity: CellType
|
103
102
|
Organism: all
|
104
103
|
Source: cl, 2023-04-20
|
105
104
|
#terms: 2698
|
106
105
|
...
|
107
|
-
📖
|
108
|
-
🔎
|
109
|
-
🎯
|
110
|
-
🧐
|
111
|
-
👽
|
112
|
-
🔗
|
106
|
+
📖 .df(): ontology reference table
|
107
|
+
🔎 .lookup(): autocompletion of terms
|
108
|
+
🎯 .search(): free text search of terms
|
109
|
+
🧐 .inspect(): check if identifiers are mappable
|
110
|
+
👽 .standardize(): map synonyms to standardized names
|
111
|
+
🔗 .to_pronto(): Pronto.Ontology object
|
113
112
|
"""
|
114
113
|
if cls.__module__.startswith("lnschema_bionty."):
|
115
114
|
# backward compat with renaming species to organism
|
@@ -129,9 +128,8 @@ class BioRegistry(Registry, HasParents, CanValidate):
|
|
129
128
|
organism = organism if lb.settings.organism is None else lb.settings.organism.name
|
130
129
|
source = None
|
131
130
|
version = None
|
132
|
-
bionty_object = getattr(bt, cls.__name__)(organism=organism, source=source, version=version)
|
133
131
|
|
134
|
-
return
|
132
|
+
return getattr(bt, cls.__name__)(organism=organism, source=source, version=version)
|
135
133
|
|
136
134
|
@classmethod
|
137
135
|
def from_public(cls, **kwargs) -> Optional[Union["BioRegistry", List["BioRegistry"]]]:
|