lamindb 0.71.2__tar.gz → 0.71.3__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.71.2 → lamindb-0.71.3}/.github/workflows/build.yml +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/PKG-INFO +7 -6
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/bio-registries.ipynb +108 -122
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/changelog.md +11 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/introduction.ipynb +2 -2
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/meta.ipynb +2 -12
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/signup-login.md +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/transfer.ipynb +1 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/tutorial.ipynb +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/__init__.py +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_artifact.py +19 -9
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_can_validate.py +9 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_collection.py +3 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_from_values.py +30 -8
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_registry.py +52 -94
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_save.py +28 -11
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_data.py +26 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_feature_manager.py +74 -51
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_label_manager.py +41 -29
- {lamindb-0.71.2 → lamindb-0.71.3}/pyproject.toml +6 -5
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/bionty/__init__.py +2 -2
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/pyproject.toml +1 -1
- lamindb-0.71.3/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/lamin_cli/_get.py +11 -6
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_get.py +11 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/changelog.md +6 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +22 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +78 -61
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_delete.py +6 -46
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_init_instance.py +18 -17
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +4 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +5 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +3 -12
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +10 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/hashing.py +23 -20
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-prod/conftest.py +2 -2
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/docs/changelog.md +4 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/__init__.py +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/models.py +32 -19
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/models.py +5 -19
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_from_values.py +14 -5
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_queryset.py +3 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_registry.py +5 -5
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_save.py +13 -0
- lamindb-0.71.3/tests/test_search.py +62 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_transfer.py +4 -4
- lamindb-0.71.2/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- {lamindb-0.71.2 → lamindb-0.71.3}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/.gitmodules +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/LICENSE +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/annotate-for-developers.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/annotate.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/bionty-base.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/bionty.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/can-validate.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/data.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/keep-artifacts-local.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/key.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/faq.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/features-lamindb.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/features-laminhub.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/guide.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/index.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/installation.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/lamin-utils.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/lamindb.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/nbproject.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/query-search.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/readfcs.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/reference.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/schemas.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/setup.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage/vitessce.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/storage.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/track.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/docs/wetlab.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_annotate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_feature.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_feature_set.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_filter.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_finish.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_is_versioned.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_parents.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_query_manager.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_query_set.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_run.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_storage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_transform.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_ulabel.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_utils.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/_view.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_mapped_collection.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_run_context.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_settings.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_sync_git.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_track_environment.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/_transform_settings.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/datasets/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/datasets/_core.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/datasets/_fake.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/exceptions.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/fields.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/_anndata_sizes.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/_backed_access.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/_valid_suffixes.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/_zarr.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/objects.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/storage/paths.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/types.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/core/versioning.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/integrations/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/integrations/_vitessce.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/lamindb/setup/core/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/noxfile.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/LICENSE +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/bionty/core/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/docs/changelog.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/docs/index.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/docs/reference.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/lamin-project.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/noxfile.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/bionty/tests/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/lamin_cli/_save.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_multi_process.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_save_files.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/noxfile.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/pyproject.toml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/LICENSE +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/docs/index.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/docs/reference.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lamin-project.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/noxfile.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/pyproject.toml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/CHANGELOG.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/sub/lnschema-core/tests/test_types.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/conftest.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_annotate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_artifact.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_artifact_folders.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_cache.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_can_validate.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_collection.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_data.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_db.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_delete.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_feature.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_feature_manager.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_feature_set.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_label_manager.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_load.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_manager.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_notebooks.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_parents.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_run.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_run_context.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_settings.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_storage.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_transform.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_uid.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_ulabel.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_versioning.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_view.py +0 -0
- {lamindb-0.71.2 → lamindb-0.71.3}/tests/test_visibility.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.71.
|
3
|
+
Version: 0.71.3
|
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.66.
|
13
|
-
Requires-Dist: lamindb_setup==0.71.
|
12
|
+
Requires-Dist: lnschema_core==0.66.5
|
13
|
+
Requires-Dist: lamindb_setup==0.71.4
|
14
14
|
Requires-Dist: lamin_utils==0.13.2
|
15
|
-
Requires-Dist: lamin_cli==0.13.
|
15
|
+
Requires-Dist: lamin_cli==0.13.2
|
16
16
|
Requires-Dist: rapidfuzz
|
17
17
|
Requires-Dist: pyarrow
|
18
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -23,8 +23,9 @@ Requires-Dist: fsspec
|
|
23
23
|
Requires-Dist: pandas
|
24
24
|
Requires-Dist: graphviz
|
25
25
|
Requires-Dist: psycopg2-binary
|
26
|
+
Requires-Dist: psutil
|
26
27
|
Requires-Dist: lamindb_setup[aws] ; extra == "aws"
|
27
|
-
Requires-Dist: bionty==0.42.
|
28
|
+
Requires-Dist: bionty==0.42.11 ; extra == "bionty"
|
28
29
|
Requires-Dist: pandas<2 ; extra == "dev"
|
29
30
|
Requires-Dist: pre-commit ; extra == "dev"
|
30
31
|
Requires-Dist: nox ; extra == "dev"
|
@@ -37,7 +38,7 @@ Requires-Dist: faker-biology ; extra == "dev"
|
|
37
38
|
Requires-Dist: django-schema-graph ; extra == "erdiagram"
|
38
39
|
Requires-Dist: readfcs>=1.1.8 ; extra == "fcs"
|
39
40
|
Requires-Dist: lamindb_setup[gcp] ; extra == "gcp"
|
40
|
-
Requires-Dist: nbproject==0.10.
|
41
|
+
Requires-Dist: nbproject==0.10.3 ; extra == "jupyter"
|
41
42
|
Requires-Dist: nbstripout==0.6.1 ; extra == "jupyter"
|
42
43
|
Requires-Dist: nbconvert ; extra == "jupyter"
|
43
44
|
Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
|
@@ -149,7 +149,11 @@
|
|
149
149
|
{
|
150
150
|
"cell_type": "code",
|
151
151
|
"execution_count": null,
|
152
|
-
"metadata": {
|
152
|
+
"metadata": {
|
153
|
+
"tags": [
|
154
|
+
"hide-output"
|
155
|
+
]
|
156
|
+
},
|
153
157
|
"outputs": [],
|
154
158
|
"source": [
|
155
159
|
"public.search(\"gamma delta T cell\").head(3)"
|
@@ -166,7 +170,11 @@
|
|
166
170
|
{
|
167
171
|
"cell_type": "code",
|
168
172
|
"execution_count": null,
|
169
|
-
"metadata": {
|
173
|
+
"metadata": {
|
174
|
+
"tags": [
|
175
|
+
"hide-output"
|
176
|
+
]
|
177
|
+
},
|
170
178
|
"outputs": [],
|
171
179
|
"source": [
|
172
180
|
"lookup = public.lookup()\n",
|
@@ -192,18 +200,14 @@
|
|
192
200
|
{
|
193
201
|
"cell_type": "code",
|
194
202
|
"execution_count": null,
|
195
|
-
"metadata": {
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
},
|
201
|
-
{
|
202
|
-
"cell_type": "code",
|
203
|
-
"execution_count": null,
|
204
|
-
"metadata": {},
|
203
|
+
"metadata": {
|
204
|
+
"tags": [
|
205
|
+
"hide-output"
|
206
|
+
]
|
207
|
+
},
|
205
208
|
"outputs": [],
|
206
209
|
"source": [
|
210
|
+
"gdt_cell = bt.CellType(lookup.gamma_delta_t_cell)\n",
|
207
211
|
"gdt_cell"
|
208
212
|
]
|
209
213
|
},
|
@@ -217,7 +221,11 @@
|
|
217
221
|
{
|
218
222
|
"cell_type": "code",
|
219
223
|
"execution_count": null,
|
220
|
-
"metadata": {
|
224
|
+
"metadata": {
|
225
|
+
"tags": [
|
226
|
+
"hide-output"
|
227
|
+
]
|
228
|
+
},
|
221
229
|
"outputs": [],
|
222
230
|
"source": [
|
223
231
|
"bt.CellType.from_public(ontology_id=\"CL:0000798\")"
|
@@ -284,7 +292,11 @@
|
|
284
292
|
{
|
285
293
|
"cell_type": "code",
|
286
294
|
"execution_count": null,
|
287
|
-
"metadata": {
|
295
|
+
"metadata": {
|
296
|
+
"tags": [
|
297
|
+
"hide-output"
|
298
|
+
]
|
299
|
+
},
|
288
300
|
"outputs": [],
|
289
301
|
"source": [
|
290
302
|
"gdt_cell.parents.df()"
|
@@ -339,7 +351,7 @@
|
|
339
351
|
"source": [
|
340
352
|
"When accessing data sources, one often encounters bulk references to entities that might be corrupted or standardized using different standardization schemes.\n",
|
341
353
|
"\n",
|
342
|
-
"Let's consider an example based on an `AnnData` object:"
|
354
|
+
"Let's consider an example based on an `AnnData` object, in the `cell_type` annotations of this `AnnData` object, we find 4 references to cell types:"
|
343
355
|
]
|
344
356
|
},
|
345
357
|
{
|
@@ -352,22 +364,7 @@
|
|
352
364
|
},
|
353
365
|
"outputs": [],
|
354
366
|
"source": [
|
355
|
-
"adata = ln.core.datasets.anndata_with_obs()"
|
356
|
-
]
|
357
|
-
},
|
358
|
-
{
|
359
|
-
"cell_type": "markdown",
|
360
|
-
"metadata": {},
|
361
|
-
"source": [
|
362
|
-
"In the `cell_type` annotations of this `AnnData` object, we find 4 references to cell types:"
|
363
|
-
]
|
364
|
-
},
|
365
|
-
{
|
366
|
-
"cell_type": "code",
|
367
|
-
"execution_count": null,
|
368
|
-
"metadata": {},
|
369
|
-
"outputs": [],
|
370
|
-
"source": [
|
367
|
+
"adata = ln.core.datasets.anndata_with_obs()\n",
|
371
368
|
"adata.obs.cell_type.value_counts()"
|
372
369
|
]
|
373
370
|
},
|
@@ -383,7 +380,11 @@
|
|
383
380
|
{
|
384
381
|
"cell_type": "code",
|
385
382
|
"execution_count": null,
|
386
|
-
"metadata": {
|
383
|
+
"metadata": {
|
384
|
+
"tags": [
|
385
|
+
"hide-output"
|
386
|
+
]
|
387
|
+
},
|
387
388
|
"outputs": [],
|
388
389
|
"source": [
|
389
390
|
"cell_types = bt.CellType.from_values(adata.obs.cell_type)\n",
|
@@ -444,7 +445,11 @@
|
|
444
445
|
{
|
445
446
|
"cell_type": "code",
|
446
447
|
"execution_count": null,
|
447
|
-
"metadata": {
|
448
|
+
"metadata": {
|
449
|
+
"tags": [
|
450
|
+
"hide-output"
|
451
|
+
]
|
452
|
+
},
|
448
453
|
"outputs": [],
|
449
454
|
"source": [
|
450
455
|
"adata.obs.cell_type_id.unique().tolist()"
|
@@ -453,7 +458,11 @@
|
|
453
458
|
{
|
454
459
|
"cell_type": "code",
|
455
460
|
"execution_count": null,
|
456
|
-
"metadata": {
|
461
|
+
"metadata": {
|
462
|
+
"tags": [
|
463
|
+
"hide-output"
|
464
|
+
]
|
465
|
+
},
|
457
466
|
"outputs": [],
|
458
467
|
"source": [
|
459
468
|
"bt.CellType.from_values(adata.obs.cell_type_id, field=bt.CellType.ontology_id)"
|
@@ -519,10 +528,14 @@
|
|
519
528
|
{
|
520
529
|
"cell_type": "code",
|
521
530
|
"execution_count": null,
|
522
|
-
"metadata": {
|
531
|
+
"metadata": {
|
532
|
+
"tags": [
|
533
|
+
"hide-output"
|
534
|
+
]
|
535
|
+
},
|
523
536
|
"outputs": [],
|
524
537
|
"source": [
|
525
|
-
"bt.CellType.search(\"gamma delta T cell\").head(2)"
|
538
|
+
"bt.CellType.search(\"gamma delta T cell\").df().head(2)"
|
526
539
|
]
|
527
540
|
},
|
528
541
|
{
|
@@ -535,7 +548,11 @@
|
|
535
548
|
{
|
536
549
|
"cell_type": "code",
|
537
550
|
"execution_count": null,
|
538
|
-
"metadata": {
|
551
|
+
"metadata": {
|
552
|
+
"tags": [
|
553
|
+
"hide-output"
|
554
|
+
]
|
555
|
+
},
|
539
556
|
"outputs": [],
|
540
557
|
"source": [
|
541
558
|
"cell_types = bt.CellType.lookup()\n",
|
@@ -562,7 +579,11 @@
|
|
562
579
|
{
|
563
580
|
"cell_type": "code",
|
564
581
|
"execution_count": null,
|
565
|
-
"metadata": {
|
582
|
+
"metadata": {
|
583
|
+
"tags": [
|
584
|
+
"hide-output"
|
585
|
+
]
|
586
|
+
},
|
566
587
|
"outputs": [],
|
567
588
|
"source": [
|
568
589
|
"bt.CellType.validate([\"HSC\", \"blood forming stem cell\"])"
|
@@ -580,7 +601,11 @@
|
|
580
601
|
{
|
581
602
|
"cell_type": "code",
|
582
603
|
"execution_count": null,
|
583
|
-
"metadata": {
|
604
|
+
"metadata": {
|
605
|
+
"tags": [
|
606
|
+
"hide-output"
|
607
|
+
]
|
608
|
+
},
|
584
609
|
"outputs": [],
|
585
610
|
"source": [
|
586
611
|
"bt.CellType.standardize([\"HSC\", \"blood forming stem cell\"])"
|
@@ -596,7 +621,11 @@
|
|
596
621
|
{
|
597
622
|
"cell_type": "code",
|
598
623
|
"execution_count": null,
|
599
|
-
"metadata": {
|
624
|
+
"metadata": {
|
625
|
+
"tags": [
|
626
|
+
"hide-output"
|
627
|
+
]
|
628
|
+
},
|
600
629
|
"outputs": [],
|
601
630
|
"source": [
|
602
631
|
"bt.CellType.from_values([\"HSC\", \"blood forming stem cell\"])"
|
@@ -630,7 +659,11 @@
|
|
630
659
|
{
|
631
660
|
"cell_type": "code",
|
632
661
|
"execution_count": null,
|
633
|
-
"metadata": {
|
662
|
+
"metadata": {
|
663
|
+
"tags": [
|
664
|
+
"hide-output"
|
665
|
+
]
|
666
|
+
},
|
634
667
|
"outputs": [],
|
635
668
|
"source": [
|
636
669
|
"bt.CellType.standardize([\"HSCs\"])"
|
@@ -662,7 +695,11 @@
|
|
662
695
|
{
|
663
696
|
"cell_type": "code",
|
664
697
|
"execution_count": null,
|
665
|
-
"metadata": {
|
698
|
+
"metadata": {
|
699
|
+
"tags": [
|
700
|
+
"hide-output"
|
701
|
+
]
|
702
|
+
},
|
666
703
|
"outputs": [],
|
667
704
|
"source": [
|
668
705
|
"cell_types = bt.CellType.lookup(\"abbr\")\n",
|
@@ -720,13 +757,6 @@
|
|
720
757
|
"bt.Gene.validate([\"TCF7\", \"ABC1\"], organism=\"human\")"
|
721
758
|
]
|
722
759
|
},
|
723
|
-
{
|
724
|
-
"cell_type": "markdown",
|
725
|
-
"metadata": {},
|
726
|
-
"source": [
|
727
|
-
"You can also pass organism for validating features upon registering data, e.g., in `ln.Artifact.from_anndata(..., field=bionty.Gene.ensembl_gene_id, organism=...)`."
|
728
|
-
]
|
729
|
-
},
|
730
760
|
{
|
731
761
|
"cell_type": "markdown",
|
732
762
|
"metadata": {},
|
@@ -792,7 +822,11 @@
|
|
792
822
|
{
|
793
823
|
"cell_type": "code",
|
794
824
|
"execution_count": null,
|
795
|
-
"metadata": {
|
825
|
+
"metadata": {
|
826
|
+
"tags": [
|
827
|
+
"hide-output"
|
828
|
+
]
|
829
|
+
},
|
796
830
|
"outputs": [],
|
797
831
|
"source": [
|
798
832
|
"hepatocyte = bt.CellType.filter(name=\"hepatocyte\").one()\n",
|
@@ -808,24 +842,6 @@
|
|
808
842
|
"By default, records are created from the `\"currently_used\"` public sources which are configured during the instance initialization, e.g.:"
|
809
843
|
]
|
810
844
|
},
|
811
|
-
{
|
812
|
-
"cell_type": "code",
|
813
|
-
"execution_count": null,
|
814
|
-
"metadata": {},
|
815
|
-
"outputs": [],
|
816
|
-
"source": [
|
817
|
-
"bt.Phenotype.public()"
|
818
|
-
]
|
819
|
-
},
|
820
|
-
{
|
821
|
-
"cell_type": "markdown",
|
822
|
-
"metadata": {},
|
823
|
-
"source": [
|
824
|
-
"Sometimes, the default source doesn't contain the ontology term you are looking for.\n",
|
825
|
-
"\n",
|
826
|
-
"You can then specify to create a record from a non-default source. For instance, instead of using untyped labels for iris organisms as {doc}`/tutorial2`, we can use the `ncbitaxon` ontology:"
|
827
|
-
]
|
828
|
-
},
|
829
845
|
{
|
830
846
|
"cell_type": "code",
|
831
847
|
"execution_count": null,
|
@@ -836,43 +852,7 @@
|
|
836
852
|
},
|
837
853
|
"outputs": [],
|
838
854
|
"source": [
|
839
|
-
"
|
840
|
-
"iris_setosa = bt.Organism.from_public(name=\"iris setosa\", public_source=public_source)\n",
|
841
|
-
"iris_setosa.save()"
|
842
|
-
]
|
843
|
-
},
|
844
|
-
{
|
845
|
-
"cell_type": "code",
|
846
|
-
"execution_count": null,
|
847
|
-
"metadata": {},
|
848
|
-
"outputs": [],
|
849
|
-
"source": [
|
850
|
-
"iris_setosa"
|
851
|
-
]
|
852
|
-
},
|
853
|
-
{
|
854
|
-
"cell_type": "code",
|
855
|
-
"execution_count": null,
|
856
|
-
"metadata": {},
|
857
|
-
"outputs": [],
|
858
|
-
"source": [
|
859
|
-
"iris_setosa.public_source"
|
860
|
-
]
|
861
|
-
},
|
862
|
-
{
|
863
|
-
"cell_type": "code",
|
864
|
-
"execution_count": null,
|
865
|
-
"metadata": {},
|
866
|
-
"outputs": [],
|
867
|
-
"source": [
|
868
|
-
"iris_setosa.parents.df()"
|
869
|
-
]
|
870
|
-
},
|
871
|
-
{
|
872
|
-
"cell_type": "markdown",
|
873
|
-
"metadata": {},
|
874
|
-
"source": [
|
875
|
-
"Analogously, you can pass `public_source` to bulk-create records from a non-default source:"
|
855
|
+
"bt.Phenotype.public()"
|
876
856
|
]
|
877
857
|
},
|
878
858
|
{
|
@@ -885,28 +865,34 @@
|
|
885
865
|
},
|
886
866
|
"outputs": [],
|
887
867
|
"source": [
|
888
|
-
"
|
889
|
-
" [\"iris setosa\", \"iris versicolor\", \"iris virginica\"], public_source=public_source\n",
|
890
|
-
")\n",
|
891
|
-
"ln.save(records)"
|
892
|
-
]
|
893
|
-
},
|
894
|
-
{
|
895
|
-
"cell_type": "code",
|
896
|
-
"execution_count": null,
|
897
|
-
"metadata": {},
|
898
|
-
"outputs": [],
|
899
|
-
"source": [
|
900
|
-
"records"
|
868
|
+
"bt.Phenotype.sources(currently_used=True).df()"
|
901
869
|
]
|
902
870
|
},
|
903
871
|
{
|
904
|
-
"cell_type": "
|
905
|
-
"execution_count": null,
|
872
|
+
"cell_type": "markdown",
|
906
873
|
"metadata": {},
|
907
|
-
"outputs": [],
|
908
874
|
"source": [
|
909
|
-
"
|
875
|
+
"Sometimes, the default source doesn't contain the ontology term you are looking for.\n",
|
876
|
+
"\n",
|
877
|
+
"You can then specify to create a record from a non-default source. For instance, instead of using untyped labels for iris organisms as {doc}`/tutorial2`, we can use the `ncbitaxon` ontology:\n",
|
878
|
+
"\n",
|
879
|
+
"```python\n",
|
880
|
+
"\n",
|
881
|
+
"public_source = bt.PublicSource.filter(entity=\"Organism\", source=\"ncbitaxon\").one()\n",
|
882
|
+
"iris_setosa = bt.Organism.from_public(name=\"iris setosa\", public_source=public_source)\n",
|
883
|
+
"iris_setosa.save()\n",
|
884
|
+
"```\n",
|
885
|
+
"\n",
|
886
|
+
"Analogously, you can pass `public_source` to bulk-create records from a non-default source:\n",
|
887
|
+
"\n",
|
888
|
+
"```python\n",
|
889
|
+
"\n",
|
890
|
+
"records = bt.Organism.from_values(\n",
|
891
|
+
" [\"iris setosa\", \"iris versicolor\", \"iris virginica\"], public_source=public_source\n",
|
892
|
+
")\n",
|
893
|
+
"ln.save(records)\n",
|
894
|
+
"iris_setosa.parents.get(name=\"iris\").view_parents(with_children=True)\n",
|
895
|
+
"```"
|
910
896
|
]
|
911
897
|
},
|
912
898
|
{
|
@@ -14,6 +14,17 @@ LaminDB implements "migration-based versioning". When upgrading your LaminDB ins
|
|
14
14
|
|
15
15
|
## 0.71
|
16
16
|
|
17
|
+
### 0.71.3 {small}`2024-05-14`
|
18
|
+
|
19
|
+
- 🎨 Enable transfer when schema don't match [PR](https://github.com/laminlabs/lamindb/pull/1654) [@sunnyosun](https://github.com/sunnyosun)
|
20
|
+
- ✨ Get artifacts through the CLI [PR](https://github.com/laminlabs/lamindb/pull/1642) [@falexwolf](https://github.com/falexwolf)
|
21
|
+
- ⚡️ Improve the speed of describe [PR](https://github.com/laminlabs/lamindb/pull/1645) [@sunnyosun](https://github.com/sunnyosun)
|
22
|
+
- ⚡️ Parallel hashing of directories [PR](https://github.com/laminlabs/lamindb/pull/1652) [@Koncopd](https://github.com/Koncopd)
|
23
|
+
- ⚡️ Speed-up file hash [PR](https://github.com/laminlabs/lamindb/pull/1651) [@Koncopd](https://github.com/Koncopd)
|
24
|
+
- ♻️ Refactor search [PR](https://github.com/laminlabs/lamindb/pull/1646) [@falexwolf](https://github.com/falexwolf)
|
25
|
+
- ✨ Introduce bulk update [PR](https://github.com/laminlabs/lamindb/pull/1640) [@falexwolf](https://github.com/falexwolf)
|
26
|
+
- 🚸 No need to pass organism if validating on ids [PR](https://github.com/laminlabs/lamindb/pull/1639) [@sunnyosun](https://github.com/sunnyosun)
|
27
|
+
|
17
28
|
### 0.71.2 {small}`2024-05-07`
|
18
29
|
|
19
30
|
- ✨ Enable passing parameters to `ln.track()` [PR](https://github.com/laminlabs/lamindb/pull/1637) [@falexwolf](https://github.com/falexwolf)
|
@@ -304,7 +304,7 @@
|
|
304
304
|
"outputs": [],
|
305
305
|
"source": [
|
306
306
|
"# search in a registry\n",
|
307
|
-
"ln.Transform.search(\"intro\")\n",
|
307
|
+
"ln.Transform.search(\"intro\").df()\n",
|
308
308
|
"\n",
|
309
309
|
"# look up records with auto-complete\n",
|
310
310
|
"labels = ln.ULabel.lookup()"
|
@@ -768,7 +768,7 @@
|
|
768
768
|
"source": [
|
769
769
|
"### Data lineage across entire projects\n",
|
770
770
|
"\n",
|
771
|
-
"View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [
|
771
|
+
"View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [a use case](inv:docs#project-flow), based on [Schmidt _et al._, 2022](https://pubmed.ncbi.nlm.nih.gov/35113687/)):\n",
|
772
772
|
"\n",
|
773
773
|
"```python\n",
|
774
774
|
"transform.view_parents()\n",
|
@@ -229,17 +229,7 @@
|
|
229
229
|
"metadata": {},
|
230
230
|
"outputs": [],
|
231
231
|
"source": [
|
232
|
-
"ln.Artifact.search(\"iris\")"
|
233
|
-
]
|
234
|
-
},
|
235
|
-
{
|
236
|
-
"cell_type": "code",
|
237
|
-
"execution_count": null,
|
238
|
-
"id": "2aa66c4e",
|
239
|
-
"metadata": {},
|
240
|
-
"outputs": [],
|
241
|
-
"source": [
|
242
|
-
"ln.Artifact.search(\"iris\", return_queryset=True).first()"
|
232
|
+
"ln.Artifact.search(\"iris\").df()"
|
243
233
|
]
|
244
234
|
},
|
245
235
|
{
|
@@ -282,7 +272,7 @@
|
|
282
272
|
"metadata": {},
|
283
273
|
"outputs": [],
|
284
274
|
"source": [
|
285
|
-
"ln.Transform.search(\"intestine\").head()"
|
275
|
+
"ln.Transform.search(\"intestine\").df().head()"
|
286
276
|
]
|
287
277
|
},
|
288
278
|
{
|
@@ -12,7 +12,7 @@ Lamin does _not_ store or see any of your data, but only _basic_ metadata about
|
|
12
12
|
|
13
13
|
If you register a LaminDB instance on LaminHub, Lamin only stores the storage location (AWS S3 or GCP bucket names, directory names).
|
14
14
|
|
15
|
-
For more, see
|
15
|
+
For more, see [doc](inv:docs#access), [the source code](https://github.com/laminlabs/lamindb-setup), or the [privacy policy](https://lamin.ai/legal/privacy-policy).
|
16
16
|
|
17
17
|
```
|
18
18
|
|
@@ -30,9 +30,7 @@
|
|
30
30
|
"outputs": [],
|
31
31
|
"source": [
|
32
32
|
"import lamindb as ln\n",
|
33
|
-
"import bionty as bt\n",
|
34
33
|
"\n",
|
35
|
-
"bt.settings.organism = \"human\"\n",
|
36
34
|
"ln.settings.transform.stem_uid = \"ITeOtm7bhtdq\"\n",
|
37
35
|
"ln.settings.transform.version = \"1\"\n",
|
38
36
|
"ln.track()"
|
@@ -42,7 +40,7 @@
|
|
42
40
|
"cell_type": "markdown",
|
43
41
|
"metadata": {},
|
44
42
|
"source": [
|
45
|
-
"All artifacts in the `laminlabs/cellxgene` clone of CZ CELLxGENE (for more info, see [
|
43
|
+
"All artifacts in the `laminlabs/cellxgene` clone of CZ CELLxGENE (for more info, see [cellxgene](inv:docs#cellxgene)):"
|
46
44
|
]
|
47
45
|
},
|
48
46
|
{
|
@@ -1,12 +1,14 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import shutil
|
4
|
+
from concurrent.futures import ThreadPoolExecutor
|
4
5
|
from pathlib import Path, PurePath, PurePosixPath
|
5
6
|
from typing import TYPE_CHECKING, Any, Mapping
|
6
7
|
|
7
8
|
import fsspec
|
8
9
|
import lamindb_setup as ln_setup
|
9
10
|
import pandas as pd
|
11
|
+
import psutil
|
10
12
|
from anndata import AnnData
|
11
13
|
from lamin_utils import colors, logger
|
12
14
|
from lamindb_setup import settings as setup_settings
|
@@ -204,15 +206,23 @@ def get_stat_or_artifact(
|
|
204
206
|
return size, hash, hash_type, n_objects
|
205
207
|
else:
|
206
208
|
if path.is_dir():
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
209
|
+
files = (subpath for subpath in path.rglob("*") if subpath.is_file())
|
210
|
+
|
211
|
+
def hash_size(file):
|
212
|
+
file_size = file.stat().st_size
|
213
|
+
return hash_file(file, file_size)[0], file_size
|
214
|
+
|
215
|
+
n_workers = len(psutil.Process().cpu_affinity())
|
216
|
+
if n_workers > 1:
|
217
|
+
with ThreadPoolExecutor(n_workers) as pool:
|
218
|
+
hashes_sizes = pool.map(hash_size, files)
|
219
|
+
else:
|
220
|
+
hashes_sizes = map(hash_size, files)
|
221
|
+
hashes, sizes = zip(*hashes_sizes)
|
222
|
+
|
223
|
+
hash, hash_type = hash_md5s_from_dir(hashes)
|
224
|
+
n_objects = len(hashes)
|
225
|
+
size = sum(sizes)
|
216
226
|
else:
|
217
227
|
hash, hash_type = hash_file(path)
|
218
228
|
size = stat.st_size
|
@@ -80,7 +80,9 @@ def _inspect(
|
|
80
80
|
|
81
81
|
# inspect in the DB
|
82
82
|
result_db = inspect(
|
83
|
-
df=_filter_query_based_on_organism(
|
83
|
+
df=_filter_query_based_on_organism(
|
84
|
+
queryset=queryset, field=field, organism=organism
|
85
|
+
),
|
84
86
|
identifiers=values,
|
85
87
|
field=field,
|
86
88
|
mute=mute,
|
@@ -161,6 +163,7 @@ def _validate(
|
|
161
163
|
field_values = pd.Series(
|
162
164
|
_filter_query_based_on_organism(
|
163
165
|
queryset=queryset,
|
166
|
+
field=field,
|
164
167
|
organism=organism,
|
165
168
|
values_list_field=field,
|
166
169
|
),
|
@@ -284,7 +287,9 @@ def _standardize(
|
|
284
287
|
|
285
288
|
try:
|
286
289
|
orm._meta.get_field(synonyms_field)
|
287
|
-
df = _filter_query_based_on_organism(
|
290
|
+
df = _filter_query_based_on_organism(
|
291
|
+
queryset=queryset, field=field, organism=organism
|
292
|
+
)
|
288
293
|
except FieldDoesNotExist:
|
289
294
|
df = pd.DataFrame()
|
290
295
|
|
@@ -439,6 +444,7 @@ def _check_synonyms_field_exist(record: Registry):
|
|
439
444
|
|
440
445
|
def _filter_query_based_on_organism(
|
441
446
|
queryset: QuerySet,
|
447
|
+
field: str,
|
442
448
|
organism: str | Registry | None = None,
|
443
449
|
values_list_field: str | None = None,
|
444
450
|
):
|
@@ -447,7 +453,7 @@ def _filter_query_based_on_organism(
|
|
447
453
|
|
448
454
|
orm = queryset.model
|
449
455
|
|
450
|
-
if _has_organism_field(orm):
|
456
|
+
if _has_organism_field(orm) and not field.endswith("id"):
|
451
457
|
# here, we can safely import lnschema_bionty
|
452
458
|
from lnschema_bionty._bionty import create_or_get_organism_record
|
453
459
|
|
@@ -103,9 +103,9 @@ def __init__(
|
|
103
103
|
if meta._state.adding:
|
104
104
|
raise ValueError("Save meta artifact before creating collection!")
|
105
105
|
if not feature_sets:
|
106
|
-
feature_sets = meta.features.
|
106
|
+
feature_sets = meta.features.feature_set_by_slot
|
107
107
|
else:
|
108
|
-
if len(meta.features.
|
108
|
+
if len(meta.features.feature_set_by_slot) > 0:
|
109
109
|
logger.info("overwriting feature sets linked to artifact")
|
110
110
|
# we ignore collections in trash containing the same hash
|
111
111
|
if hash is not None:
|
@@ -129,7 +129,7 @@ def __init__(
|
|
129
129
|
existing_collection.transform = run.transform
|
130
130
|
init_self_from_db(collection, existing_collection)
|
131
131
|
update_attributes(collection, {"description": description, "name": name})
|
132
|
-
for slot, feature_set in collection.features.
|
132
|
+
for slot, feature_set in collection.features.feature_set_by_slot.items():
|
133
133
|
if slot in feature_sets:
|
134
134
|
if not feature_sets[slot] == feature_set:
|
135
135
|
collection.feature_sets.remove(feature_set)
|