lamindb 0.76.11__tar.gz → 0.76.12__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.76.11 → lamindb-0.76.12}/PKG-INFO +5 -5
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/scripts/run-track-with-params.py +5 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/setup.ipynb +33 -19
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/prepare-transfer-local-to-cloud.ipynb +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/vitessce.ipynb +10 -32
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/track.ipynb +45 -4
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/tutorial.ipynb +3 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/__init__.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_artifact.py +4 -8
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_filter.py +0 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_finish.py +3 -3
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_query_set.py +2 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_record.py +4 -8
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_save.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_context.py +16 -10
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_feature_manager.py +39 -8
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_settings.py +5 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_sync_git.py +2 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_track_environment.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/exceptions.py +1 -1
- lamindb-0.76.12/lamindb/integrations/_vitessce.py +101 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/noxfile.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/pyproject.toml +5 -4
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/__init__.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_experimentalfactor.py +3 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/sources.yaml +3 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.github/workflows/build.yml +3 -3
- lamindb-0.76.12/sub/clinicore/README.md +8 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/models.py +65 -44
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/pyproject.toml +1 -1
- lamindb-0.76.12/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/__main__.py +3 -3
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_cache.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_load.py +4 -3
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/pyproject.toml +5 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +23 -47
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +3 -3
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- lamindb-0.76.12/sub/lamindb-setup/lamindb_setup/_cache.py +48 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check_setup.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +6 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_delete.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_django.py +0 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_setup_user.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +5 -66
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings.py +39 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +5 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +13 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +20 -9
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +2 -63
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +1 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/hashing.py +3 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/types.py +1 -3
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/pyproject.toml +1 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_edge_request.py +11 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +2 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_all.py +34 -58
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +2 -2
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
- lamindb-0.76.12/sub/lnschema-core/lnschema_core/migrations/0067_alter_featurevalue_unique_together_and_more.py +20 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/models.py +56 -42
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/pyproject.toml +0 -1
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_cache.py +6 -6
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature_manager.py +14 -1
- lamindb-0.76.11/lamindb/integrations/_vitessce.py +0 -107
- lamindb-0.76.11/sub/clinicore/README.md +0 -7
- lamindb-0.76.11/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- lamindb-0.76.11/sub/lamindb-setup/lamindb_setup/_cache.py +0 -34
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.gitmodules +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/CONTRIBUTING.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/api.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/arrays.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/bio-registries.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/bionty.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/changelog.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/clinicore.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate-any.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate-df.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/curate.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/keep-artifacts-local.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/key.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/faq.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/findrefs.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/guide.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/features-lamindb.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/features-laminhub.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/includes/installation.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/index.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/introduction.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/lamindb.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/laminr.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/query-search.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/registries.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/rest.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/schemas.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/scripts/synced-with-git.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/signup-login.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/add-replace-cache.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/storage.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/transfer.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/docs/wetlab.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_can_validate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_collection.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_curate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_feature.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_feature_set.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_from_values.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_is_versioned.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_parents.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_query_manager.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_run.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_transform.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_ulabel.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_utils.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/_view.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_data.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_django.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_label_manager.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/_mapped_collection.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/_core.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/datasets/_fake.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/fields.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/loaders.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/schema.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_anndata_accessor.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_anndata_sizes.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_backed_access.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_tiledbsoma.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_valid_suffixes.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/_zarr.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/objects.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/storage/paths.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/_creation_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/subsettings/_transform_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/types.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/core/versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/integrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/lamindb/setup/core/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.github/workflows/update_ontologies.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/_bionty.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_display_sources.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_ontology.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_public_ontology.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/_sync_sources.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_handle_sources.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_io.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/dev/_md5.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_bfxpipeline.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_biosample.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellline.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_cellmarker.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_celltype.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_developmentalstage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_disease.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_drug.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_ethnicity.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_gene.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_organism.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_pathway.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_phenotype.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_protein.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_shared_docstrings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/entities/_tissue.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/bfxpipelines_info/custom_pipelines.json +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/check_ontologies_reachable.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/determine_md5s.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/generate_bfxpipelines.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/update_new_ontologies.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/base/scripts/upload_new_ontologies.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_add_ontology.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_bionty.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/core/_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/ids.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0024_remove_cellline_collections_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0025_artifactcellline_alter_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0026_artifactcellline_cell_line_ref_is_name_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0027_remove_artifactcellline_created_at_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_artifactcellline_created_at_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0028_squashed.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0029_alter_cellline_previous_runs_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0030_rename_publicsource_source_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0031_alter_cellmarker_name_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0032_rename_source_name_source_description_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0033_alter_artifactcellline_artifact_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0034_alter_source_unique_together.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0035_alter_protein_gene_symbol.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0036_alter_source_artifacts_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0037_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0038_alter_artifactcellline_created_by_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/0039_alter_cellline_source_alter_cellmarker_source_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/migrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/bionty/models.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/concepts.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/config.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/extend.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/guide.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/index.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/docs/reference.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/lamin-project.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/pyproject.toml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/dev/test_handle_sources.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/dev/test_io.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_bfxpipeline.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_biosample.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellline.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_cellmarker.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_celltype.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_developmentalstage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_disease.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_drug.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_ethnicity.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_experimentalfactor.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_gene.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_organism.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_pathway.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_phenotype.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_protein.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/entities/test_tissue.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_bionty.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_lamindb.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_md5.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/bionty/tests/test_ontology.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0001_initial.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0002_biosample_patient_biosample_project.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0003_alter_project_uid.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0004_remove_biosample_project_clinicaltrial_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0005_alter_biosample_created_by_alter_biosample_run_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/0006_artifactbiosample_artifactclinicaltrial_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/clinicore/migrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/changelog.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/guide.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/index.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/quickstart.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/docs/reference.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/clinicore/tests/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/migrations/0001_initial.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/migrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/findrefs/models.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/pyproject.toml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/findrefs/tests/test_integrity.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_save.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/lamin_cli/_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/merely-import-lamindb.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish-sync-git.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-and-finish.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/scripts/run-track-with-params.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_load.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_multi_process.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_files.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/changelog.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/08-test-multi-session.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-init-load-local-anonymously.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_entry_points.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_schema_metadata.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_set_managed_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_credentials.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_private_django_api.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/django.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/lamindb_setup/core/upath.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-init-pass-user-no-writes.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/scripts/script-to-fail-managed-storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_fail_managed_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_init_pass_user_no_writes.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-local/test_update_schema_in_hub.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_global_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_entry_point.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lamindb-setup/tests/storage/test_to_url.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/CHANGELOG.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0044_run_replicated_outputs_transform_ulabels_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0045_rename_replicated_outputs_run_replicated_output_artifacts_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0046_storage_instance_uid.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0047_featurevalue_artifactfeaturevalue_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0048_alter_artifactulabel_feature_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0049_rename_type_feature_dtype_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0050_artifactfeatureset_feature_ref_is_semantic_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0051_remove_feature_feature_sets_featuresetfeature_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_rename_feature_value_artifactfeaturevalue_featurevalue_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0052_squashed.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0053_alter_featureset_hash_alter_paramvalue_created_by_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0054_alter_feature_previous_runs_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0055_artifact_type_artifactparamvalue_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0056_rename_ulabel_ref_is_name_artifactulabel_label_ref_is_name_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0057_link_models_latest_report_and_others.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0058_artifact__actions_collection__actions.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0059_alter_artifact__accessor_alter_artifact__hash_type_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0060_alter_artifact__actions.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0061_alter_collection_meta_artifact_alter_run_environment_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0062_add_is_latest_field.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0063_populate_latest_field.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0064_alter_artifact_version_alter_collection_version_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0065_remove_collection_feature_sets_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/0066_alter_artifact__feature_values_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_models.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/lnschema-core/tests/test_types.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.github/workflows/build.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.github/workflows/doc-changes.yml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.gitignore +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/.pre-commit-config.yaml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/README.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/changelog.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide/get-started.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide/modeling_perturbations.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/guide.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/index.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/docs/reference.md +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/noxfile.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/pyproject.toml +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/tests/test_integrity.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/tests/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0017_remove_biosample_artifacts.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0018_squashed.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0018_well_created_at_well_created_by_well_updated_at.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0019_alter_treatment_system.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0020_treatmenttarget_pathways_treatmenttarget_proteins_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0021_alter_compoundtreatment_duration_unit_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0022_remove_experiment_experiment_type_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0023_compoundtreatment_duration_and_more.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/0024_compound_chembl_id.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/migrations/__init__.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/sub/wetlab/wetlab/models.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/no-title.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/script-to-test-filename-change.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/scripts/script-to-test-versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_artifact.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_artifact_folders.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_can_validate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_collection.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_context.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_curate.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_data.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_db.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_delete.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_feature_set.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_from_values.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_label_manager.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_load.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_manager.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_notebooks.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_parents.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_queryset.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_record.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_run.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_save.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_search.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_settings.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_transform.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_uid.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_ulabel.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_versioning.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_view.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/core/test_visibility.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/conftest.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/test_storage.py +0 -0
- {lamindb-0.76.11 → lamindb-0.76.12}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.76.
|
3
|
+
Version: 0.76.12
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.9
|
@@ -8,10 +8,10 @@ Description-Content-Type: text/markdown
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.9
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
11
|
-
Requires-Dist: lnschema_core==0.
|
12
|
-
Requires-Dist: lamindb_setup==0.77.7
|
11
|
+
Requires-Dist: lnschema_core==0.75.0
|
13
12
|
Requires-Dist: lamin_utils==0.13.6
|
14
|
-
Requires-Dist: lamin_cli==0.
|
13
|
+
Requires-Dist: lamin_cli==0.18.0
|
14
|
+
Requires-Dist: lamindb_setup
|
15
15
|
Requires-Dist: rapidfuzz
|
16
16
|
Requires-Dist: pyarrow
|
17
17
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -23,7 +23,7 @@ Requires-Dist: pandas
|
|
23
23
|
Requires-Dist: graphviz
|
24
24
|
Requires-Dist: psycopg2-binary
|
25
25
|
Requires-Dist: lamindb_setup[aws] ; extra == "aws"
|
26
|
-
Requires-Dist: bionty==0.51.
|
26
|
+
Requires-Dist: bionty==0.51.2 ; extra == "bionty"
|
27
27
|
Requires-Dist: line_profiler ; extra == "dev"
|
28
28
|
Requires-Dist: pre-commit ; extra == "dev"
|
29
29
|
Requires-Dist: nox ; extra == "dev"
|
@@ -10,8 +10,11 @@ if __name__ == "__main__":
|
|
10
10
|
params = {
|
11
11
|
"input_dir": args.input_dir,
|
12
12
|
"learning_rate": args.learning_rate,
|
13
|
-
"
|
13
|
+
"preprocess_params": {
|
14
|
+
"downsample": args.downsample,
|
15
|
+
"normalization": "the_good_one",
|
16
|
+
},
|
14
17
|
}
|
15
|
-
ln.track("
|
18
|
+
ln.track("JjRF4mACd9m00001", params=params)
|
16
19
|
# your code
|
17
20
|
ln.finish()
|
@@ -254,25 +254,39 @@
|
|
254
254
|
"source": [
|
255
255
|
"`lamindb` mantains cache for cloud instances, i.e. instances having storage set to an AWS S3 bucket.\n",
|
256
256
|
"\n",
|
257
|
-
"Cache directory can be accessed via {class}`lamindb.settings
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
"
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
"
|
274
|
-
|
275
|
-
|
257
|
+
"Cache directory can be accessed via {class}`lamindb.settings`."
|
258
|
+
]
|
259
|
+
},
|
260
|
+
{
|
261
|
+
"cell_type": "code",
|
262
|
+
"execution_count": null,
|
263
|
+
"metadata": {},
|
264
|
+
"outputs": [],
|
265
|
+
"source": [
|
266
|
+
"ln.settings.cache_dir"
|
267
|
+
]
|
268
|
+
},
|
269
|
+
{
|
270
|
+
"cell_type": "markdown",
|
271
|
+
"metadata": {},
|
272
|
+
"source": [
|
273
|
+
"or print the cache directory path with CLI"
|
274
|
+
]
|
275
|
+
},
|
276
|
+
{
|
277
|
+
"cell_type": "code",
|
278
|
+
"execution_count": null,
|
279
|
+
"metadata": {},
|
280
|
+
"outputs": [],
|
281
|
+
"source": [
|
282
|
+
"!lamin cache get"
|
283
|
+
]
|
284
|
+
},
|
285
|
+
{
|
286
|
+
"cell_type": "markdown",
|
287
|
+
"metadata": {},
|
288
|
+
"source": [
|
289
|
+
"It can be also configured via \n",
|
276
290
|
"\n",
|
277
291
|
"```\n",
|
278
292
|
"lamin cache set some/path/to/cache\n",
|
@@ -34,7 +34,7 @@
|
|
34
34
|
"metadata": {},
|
35
35
|
"outputs": [],
|
36
36
|
"source": [
|
37
|
-
"ln.setup.init(storage=\"./test-transfer-to-cloud\", schema=\"bionty,wetlab\")\n",
|
37
|
+
"ln.setup.init(storage=\"./test-transfer-to-cloud\", schema=\"bionty,wetlab,findrefs\")\n",
|
38
38
|
"ln.setup.settings.auto_connect = False"
|
39
39
|
]
|
40
40
|
},
|
@@ -82,7 +82,7 @@
|
|
82
82
|
"vc = VitessceConfig(schema_version=\"1.0.15\")\n",
|
83
83
|
"vc.add_dataset(name=\"test1\").add_object(\n",
|
84
84
|
" AnnDataWrapper(\n",
|
85
|
-
"
|
85
|
+
" adata_artifact=dataset_artifact,\n",
|
86
86
|
" obs_embedding_paths=[\"obsm/X_umap\"],\n",
|
87
87
|
" ),\n",
|
88
88
|
")\n",
|
@@ -134,39 +134,17 @@
|
|
134
134
|
"metadata": {},
|
135
135
|
"outputs": [],
|
136
136
|
"source": [
|
137
|
-
"#
|
137
|
+
"# pass an artifact URL instead of the artifact object itself\n",
|
138
138
|
"vc = VitessceConfig(schema_version=\"1.0.15\")\n",
|
139
|
-
"
|
140
|
-
"
|
141
|
-
"
|
142
|
-
"
|
143
|
-
"
|
144
|
-
")
|
145
|
-
"
|
146
|
-
" ln.integrations.save_vitessce_config(vc)\n",
|
147
|
-
"print(error.exconly())\n",
|
148
|
-
"assert error.exconly().startswith(\"ValueError: Suffix should be '.zarr' or one of\")\n",
|
149
|
-
"assert error.exconly().endswith(\".random\")\n"
|
150
|
-
]
|
151
|
-
},
|
152
|
-
{
|
153
|
-
"cell_type": "code",
|
154
|
-
"execution_count": null,
|
155
|
-
"metadata": {},
|
156
|
-
"outputs": [],
|
157
|
-
"source": [
|
158
|
-
"# use a corrupted stem_uid\n",
|
159
|
-
"vc = VitessceConfig(schema_version=\"1.0.15\")\n",
|
160
|
-
"vc.add_dataset(name=\"test1\").add_object(\n",
|
161
|
-
" AnnDataWrapper(\n",
|
162
|
-
" adata_url=dataset_artifact.path.to_url().replace(dataset_artifact.stem_uid, \"not-a-valid-uid\"),\n",
|
163
|
-
" obs_embedding_paths=[\"obsm/X_umap\"],\n",
|
164
|
-
" ),\n",
|
165
|
-
")\n",
|
166
|
-
"with pytest.raises(ValueError) as error:\n",
|
167
|
-
" ln.integrations.save_vitessce_config(vc)\n",
|
139
|
+
"with pytest.raises(AttributeError) as error:\n",
|
140
|
+
" vc.add_dataset(name=\"test1\").add_object(\n",
|
141
|
+
" AnnDataWrapper(\n",
|
142
|
+
" adata_artifact=dataset_artifact.path.to_url(),\n",
|
143
|
+
" obs_embedding_paths=[\"obsm/X_umap\"],\n",
|
144
|
+
" ),\n",
|
145
|
+
" )\n",
|
168
146
|
"print(error.exconly())\n",
|
169
|
-
"assert error.exconly().startswith(\"
|
147
|
+
"assert error.exconly().startswith(\"AttributeError: 'str' object has no attribute 'path'\")\n"
|
170
148
|
]
|
171
149
|
},
|
172
150
|
{
|
@@ -141,6 +141,8 @@
|
|
141
141
|
"cell_type": "markdown",
|
142
142
|
"metadata": {},
|
143
143
|
"source": [
|
144
|
+
"(track-run-parameters)=\n",
|
145
|
+
"\n",
|
144
146
|
"## Track run parameters"
|
145
147
|
]
|
146
148
|
},
|
@@ -165,7 +167,7 @@
|
|
165
167
|
"\n",
|
166
168
|
"ln.Param(name=\"input_dir\", dtype=\"str\").save()\n",
|
167
169
|
"ln.Param(name=\"learning_rate\", dtype=\"float\").save()\n",
|
168
|
-
"ln.Param(name=\"
|
170
|
+
"ln.Param(name=\"preprocess_params\", dtype=\"dict\").save()"
|
169
171
|
]
|
170
172
|
},
|
171
173
|
{
|
@@ -223,14 +225,24 @@
|
|
223
225
|
},
|
224
226
|
"outputs": [],
|
225
227
|
"source": [
|
226
|
-
"ln.Run.params.filter(learning_rate=0.01, input_dir=\"./mydataset\").df()"
|
228
|
+
"ln.Run.params.filter(learning_rate=0.01, input_dir=\"./mydataset\", preprocess_params__downsample=True).df()"
|
227
229
|
]
|
228
230
|
},
|
229
231
|
{
|
230
232
|
"cell_type": "markdown",
|
231
233
|
"metadata": {},
|
232
234
|
"source": [
|
233
|
-
"
|
235
|
+
"Note that:\n",
|
236
|
+
"\n",
|
237
|
+
"* `preprocess_params__downsample=True` traverses the dictionary `preprocess_params` to find the key `\"downsample\"` and match it to `True`\n",
|
238
|
+
"* nested keys like `\"downsample\"` in a dictionary do not appear in `Param` and hence, do not get validated"
|
239
|
+
]
|
240
|
+
},
|
241
|
+
{
|
242
|
+
"cell_type": "markdown",
|
243
|
+
"metadata": {},
|
244
|
+
"source": [
|
245
|
+
"Below is how you get the parameter values that were used for a given run."
|
234
246
|
]
|
235
247
|
},
|
236
248
|
{
|
@@ -247,6 +259,35 @@
|
|
247
259
|
"run.params.get_values()"
|
248
260
|
]
|
249
261
|
},
|
262
|
+
{
|
263
|
+
"cell_type": "markdown",
|
264
|
+
"metadata": {},
|
265
|
+
"source": [
|
266
|
+
"Or [on the hub](https://lamin.ai/laminlabs/lamindata/transform/JjRF4mACd9m00001).\n",
|
267
|
+
"\n",
|
268
|
+
"<img width=\"500\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d8a5df37-d585-4940-b6f0-91f99b6c436c\">"
|
269
|
+
]
|
270
|
+
},
|
271
|
+
{
|
272
|
+
"cell_type": "markdown",
|
273
|
+
"metadata": {},
|
274
|
+
"source": [
|
275
|
+
"If you want to query all parameter values across all runs, use {class}`~lamindb.core.ParamValue`."
|
276
|
+
]
|
277
|
+
},
|
278
|
+
{
|
279
|
+
"cell_type": "code",
|
280
|
+
"execution_count": null,
|
281
|
+
"metadata": {
|
282
|
+
"tags": [
|
283
|
+
"hide-output"
|
284
|
+
]
|
285
|
+
},
|
286
|
+
"outputs": [],
|
287
|
+
"source": [
|
288
|
+
"ln.core.ParamValue.df(include=[\"param__name\", \"created_by__handle\"])"
|
289
|
+
]
|
290
|
+
},
|
250
291
|
{
|
251
292
|
"cell_type": "markdown",
|
252
293
|
"metadata": {},
|
@@ -297,7 +338,7 @@
|
|
297
338
|
},
|
298
339
|
"outputs": [],
|
299
340
|
"source": [
|
300
|
-
"assert run.params.get_values() == {'
|
341
|
+
"assert run.params.get_values() == {'input_dir': './mydataset', 'learning_rate': 0.01, 'preprocess_params': {'downsample': True, 'normalization': 'the_good_one'}}\n",
|
301
342
|
"\n",
|
302
343
|
"# clean up test instance\n",
|
303
344
|
"!rm -r ./test-track\n",
|
@@ -197,7 +197,8 @@
|
|
197
197
|
},
|
198
198
|
"outputs": [],
|
199
199
|
"source": [
|
200
|
-
"
|
200
|
+
"# we use anon=True here in case no aws credentials are configured\n",
|
201
|
+
"ln.UPath(\"s3://lamindata/iris_studies\", anon=True).view_tree()"
|
201
202
|
]
|
202
203
|
},
|
203
204
|
{
|
@@ -947,7 +948,7 @@
|
|
947
948
|
"name": "python",
|
948
949
|
"nbconvert_exporter": "python",
|
949
950
|
"pygments_lexer": "ipython3",
|
950
|
-
"version": "3.
|
951
|
+
"version": "3.9.17"
|
951
952
|
},
|
952
953
|
"vscode": {
|
953
954
|
"interpreter": {
|
@@ -10,7 +10,7 @@ import fsspec
|
|
10
10
|
import lamindb_setup as ln_setup
|
11
11
|
import pandas as pd
|
12
12
|
from anndata import AnnData
|
13
|
-
from django.db.models import Q
|
13
|
+
from django.db.models import Q
|
14
14
|
from lamin_utils import colors, logger
|
15
15
|
from lamindb_setup import settings as setup_settings
|
16
16
|
from lamindb_setup._init_instance import register_storage_in_instance
|
@@ -180,7 +180,7 @@ def process_data(
|
|
180
180
|
f" be '{suffix}'."
|
181
181
|
)
|
182
182
|
cache_name = f"{provisional_uid}{suffix}"
|
183
|
-
path = settings.
|
183
|
+
path = settings.cache_dir / cache_name
|
184
184
|
# Alex: I don't understand the line below
|
185
185
|
if path.suffixes == []:
|
186
186
|
path = path.with_suffix(suffix)
|
@@ -344,7 +344,7 @@ def get_artifact_kwargs_from_data(
|
|
344
344
|
|
345
345
|
if revises is not None: # update provisional_uid
|
346
346
|
provisional_uid, revises = create_uid(revises=revises, version=version)
|
347
|
-
if settings.
|
347
|
+
if settings.cache_dir in path.parents:
|
348
348
|
path = path.rename(path.with_name(f"{provisional_uid}{suffix}"))
|
349
349
|
|
350
350
|
check_path_in_storage = False
|
@@ -749,10 +749,6 @@ def from_dir(
|
|
749
749
|
run: Run | None = None,
|
750
750
|
) -> list[Artifact]:
|
751
751
|
"""{}""" # noqa: D415
|
752
|
-
logger.warning(
|
753
|
-
"this creates one artifact per file in the directory - consider"
|
754
|
-
" ln.Artifact(dir_path) to get one artifact for the entire directory"
|
755
|
-
)
|
756
752
|
folderpath: UPath = create_path(path) # returns Path for local
|
757
753
|
default_storage = settings.storage.record
|
758
754
|
using_key = settings._using_key
|
@@ -1125,7 +1121,7 @@ def save(self, upload: bool | None = None, **kwargs) -> Artifact:
|
|
1125
1121
|
raise RuntimeError(exception)
|
1126
1122
|
if local_path is not None and not state_was_adding:
|
1127
1123
|
# only move the local artifact to cache if it was not newly created
|
1128
|
-
local_path_cache = ln_setup.settings.
|
1124
|
+
local_path_cache = ln_setup.settings.cache_dir / local_path.name
|
1129
1125
|
# don't use Path.rename here because of cross-device link error
|
1130
1126
|
# https://laminlabs.slack.com/archives/C04A0RMA0SC/p1710259102686969
|
1131
1127
|
shutil.move(
|
@@ -130,12 +130,12 @@ def save_context_core(
|
|
130
130
|
if response != "y":
|
131
131
|
return "aborted-non-consecutive"
|
132
132
|
# write the report
|
133
|
-
report_path = ln_setup.settings.
|
133
|
+
report_path = ln_setup.settings.cache_dir / filepath.name.replace(
|
134
134
|
".ipynb", ".html"
|
135
135
|
)
|
136
136
|
notebook_to_report(filepath, report_path)
|
137
137
|
# write the source code
|
138
|
-
source_code_path = ln_setup.settings.
|
138
|
+
source_code_path = ln_setup.settings.cache_dir / filepath.name.replace(
|
139
139
|
".ipynb", ".py"
|
140
140
|
)
|
141
141
|
notebook_to_script(transform, filepath, source_code_path)
|
@@ -171,7 +171,7 @@ def save_context_core(
|
|
171
171
|
transform.hash = hash
|
172
172
|
|
173
173
|
# track environment
|
174
|
-
env_path = ln_setup.settings.
|
174
|
+
env_path = ln_setup.settings.cache_dir / f"run_env_pip_{run.uid}.txt"
|
175
175
|
if env_path.exists():
|
176
176
|
overwrite_env = True
|
177
177
|
if run.environment_id is not None and from_cli:
|
@@ -139,7 +139,7 @@ class QuerySet(models.QuerySet):
|
|
139
139
|
|
140
140
|
See Also:
|
141
141
|
|
142
|
-
`django QuerySet <https://docs.djangoproject.com/en/4.2/ref/models/querysets/>`__
|
142
|
+
`django QuerySet <https://docs.djangoproject.com/en/4.2/ref/models/querysets/>`__
|
143
143
|
|
144
144
|
Examples:
|
145
145
|
|
@@ -154,7 +154,7 @@ class QuerySet(models.QuerySet):
|
|
154
154
|
) -> pd.DataFrame:
|
155
155
|
"""{}""" # noqa: D415
|
156
156
|
# re-order the columns
|
157
|
-
exclude_field_names = ["
|
157
|
+
exclude_field_names = ["updated_at"]
|
158
158
|
field_names = [
|
159
159
|
field.name
|
160
160
|
for field in self.model._meta.fields
|
@@ -15,7 +15,7 @@ from lamindb_setup._connect_instance import (
|
|
15
15
|
update_db_using_local,
|
16
16
|
)
|
17
17
|
from lamindb_setup.core._docs import doc_args
|
18
|
-
from lamindb_setup.core._hub_core import
|
18
|
+
from lamindb_setup.core._hub_core import connect_instance_hub
|
19
19
|
from lamindb_setup.core._settings_store import instance_settings_file
|
20
20
|
from lnschema_core.models import IsVersioned, Record, Run, Transform
|
21
21
|
|
@@ -380,11 +380,9 @@ def using(
|
|
380
380
|
return QuerySet(model=cls, using=None)
|
381
381
|
owner, name = get_owner_name_from_identifier(instance)
|
382
382
|
settings_file = instance_settings_file(name, owner)
|
383
|
-
cache_filepath =
|
384
|
-
ln_setup.settings.storage.cache_dir / f"instance--{owner}--{name}--uid.txt"
|
385
|
-
)
|
383
|
+
cache_filepath = ln_setup.settings.cache_dir / f"instance--{owner}--{name}--uid.txt"
|
386
384
|
if not settings_file.exists():
|
387
|
-
result =
|
385
|
+
result = connect_instance_hub(owner=owner, name=name)
|
388
386
|
if isinstance(result, str):
|
389
387
|
raise RuntimeError(
|
390
388
|
f"Failed to load instance {instance}, please check your permissions!"
|
@@ -469,9 +467,7 @@ def get_transfer_run(record) -> Run:
|
|
469
467
|
|
470
468
|
slug = record._state.db
|
471
469
|
owner, name = get_owner_name_from_identifier(slug)
|
472
|
-
cache_filepath =
|
473
|
-
ln_setup.settings.storage.cache_dir / f"instance--{owner}--{name}--uid.txt"
|
474
|
-
)
|
470
|
+
cache_filepath = ln_setup.settings.cache_dir / f"instance--{owner}--{name}--uid.txt"
|
475
471
|
if not cache_filepath.exists():
|
476
472
|
raise SystemExit("Need to call .using() before")
|
477
473
|
instance_uid = cache_filepath.read_text()
|
@@ -168,7 +168,7 @@ def copy_or_move_to_cache(
|
|
168
168
|
|
169
169
|
local_path = local_path.resolve()
|
170
170
|
is_dir = local_path.is_dir()
|
171
|
-
cache_dir = settings.
|
171
|
+
cache_dir = settings.cache_dir
|
172
172
|
|
173
173
|
# just delete from the cache dir if storage_path is local
|
174
174
|
if cache_path is None:
|
@@ -562,26 +562,32 @@ class Context:
|
|
562
562
|
|
563
563
|
return "CMD + s" if platform.system() == "Darwin" else "CTRL + s"
|
564
564
|
|
565
|
-
if
|
565
|
+
if self.run is None:
|
566
566
|
raise TrackNotCalled("Please run `ln.track()` before `ln.finish()`")
|
567
|
-
if
|
568
|
-
if
|
567
|
+
if self._path is None:
|
568
|
+
if self.run.transform.type in {"script", "notebook"}:
|
569
569
|
raise ValueError(
|
570
|
-
|
570
|
+
"Transform type is not allowed to be 'script' or 'notebook' because `context._path` is `None`."
|
571
571
|
)
|
572
|
-
|
573
|
-
|
572
|
+
self.run.finished_at = datetime.now(timezone.utc)
|
573
|
+
self.run.save()
|
574
574
|
# nothing else to do
|
575
575
|
return None
|
576
576
|
if is_run_from_ipython: # notebooks
|
577
|
-
|
577
|
+
import nbproject
|
578
|
+
|
579
|
+
# it might be that the user modifies the title just before ln.finish()
|
580
|
+
if (nbproject_title := nbproject.meta.live.title) != self.transform.name:
|
581
|
+
self.transform.name = nbproject_title
|
582
|
+
self.transform.save()
|
583
|
+
if get_seconds_since_modified(self._path) > 2 and not ln_setup._TESTING:
|
578
584
|
raise NotebookNotSaved(
|
579
585
|
f"Please save the notebook in your editor (shortcut `{get_shortcut()}`) right before calling `ln.finish()`"
|
580
586
|
)
|
581
587
|
save_context_core(
|
582
|
-
run=
|
583
|
-
transform=
|
584
|
-
filepath=
|
588
|
+
run=self.run,
|
589
|
+
transform=self.run.transform,
|
590
|
+
filepath=self._path,
|
585
591
|
finished_at=True,
|
586
592
|
ignore_non_consecutive=ignore_non_consecutive,
|
587
593
|
)
|
@@ -40,7 +40,7 @@ from lamindb._record import (
|
|
40
40
|
transfer_to_default_db,
|
41
41
|
)
|
42
42
|
from lamindb._save import save
|
43
|
-
from lamindb.core.exceptions import ValidationError
|
43
|
+
from lamindb.core.exceptions import DoesNotExist, ValidationError
|
44
44
|
from lamindb.core.storage import LocalPathClasses
|
45
45
|
|
46
46
|
from ._django import get_artifact_with_related
|
@@ -509,18 +509,49 @@ def filter_base(cls, **expression):
|
|
509
509
|
expression = {feature_param: feature, f"value{comparator}": value}
|
510
510
|
feature_value = value_model.filter(**expression)
|
511
511
|
new_expression[f"_{feature_param}_values__in"] = feature_value
|
512
|
-
|
512
|
+
elif isinstance(value, (str, Record)):
|
513
|
+
# because SQL is sensitive to whether querying with __in or not
|
514
|
+
# and might return multiple equivalent records for the latter
|
515
|
+
# we distinguish cases in which we have multiple label matches vs. one
|
516
|
+
label = None
|
517
|
+
labels = None
|
513
518
|
if isinstance(value, str):
|
519
|
+
# we need the comparator here because users might query like so
|
520
|
+
# ln.Artifact.features.filter(experiment__contains="Experi")
|
514
521
|
expression = {f"name{comparator}": value}
|
515
|
-
|
516
|
-
|
522
|
+
labels = ULabel.filter(**expression).all()
|
523
|
+
if len(labels) == 0:
|
524
|
+
raise DoesNotExist(
|
525
|
+
f"Did not find a ULabel matching `name{comparator}={value}`"
|
526
|
+
)
|
527
|
+
elif len(labels) == 1:
|
528
|
+
label = labels[0]
|
529
|
+
elif isinstance(value, Record):
|
530
|
+
label = value
|
531
|
+
label_registry = (
|
532
|
+
label.__class__ if label is not None else labels[0].__class__
|
533
|
+
)
|
534
|
+
accessor_name = (
|
535
|
+
label_registry.artifacts.through.artifact.field._related_name
|
536
|
+
)
|
537
|
+
new_expression[f"{accessor_name}__feature"] = feature
|
538
|
+
if label is not None:
|
539
|
+
# simplified query if we have exactly one label
|
540
|
+
new_expression[
|
541
|
+
f"{accessor_name}__{label_registry.__name__.lower()}"
|
542
|
+
] = label
|
517
543
|
else:
|
518
|
-
|
544
|
+
new_expression[
|
545
|
+
f"{accessor_name}__{label_registry.__name__.lower()}__in"
|
546
|
+
] = labels
|
547
|
+
else:
|
548
|
+
# if passing a list of records, we want to
|
549
|
+
# find artifacts that are annotated by all of them at the same
|
550
|
+
# time; hence, we don't want the __in construct that we use to match strings
|
551
|
+
# https://laminlabs.slack.com/archives/C04FPE8V01W/p1688328084810609
|
552
|
+
raise NotImplementedError
|
519
553
|
if cls == FeatureManager or cls == ParamManagerArtifact:
|
520
554
|
return Artifact.filter(**new_expression)
|
521
|
-
# might renable something similar in the future
|
522
|
-
# elif cls == FeatureManagerCollection:
|
523
|
-
# return Collection.filter(**new_expression)
|
524
555
|
elif cls == ParamManagerRun:
|
525
556
|
return Run.filter(**new_expression)
|
526
557
|
|
@@ -143,6 +143,11 @@ class Settings:
|
|
143
143
|
path, kwargs = path_kwargs, {}
|
144
144
|
set_managed_storage(path, **kwargs)
|
145
145
|
|
146
|
+
@property
|
147
|
+
def cache_dir(self) -> UPath:
|
148
|
+
"""Cache root, a local directory to cache cloud files."""
|
149
|
+
return ln_setup.settings.cache_dir
|
150
|
+
|
146
151
|
@property
|
147
152
|
def storage_local(self) -> StorageSettings:
|
148
153
|
"""An additional local default storage (a path to its root).
|
@@ -16,7 +16,7 @@ class BlobHashNotFound(SystemExit):
|
|
16
16
|
|
17
17
|
def get_git_repo_from_remote() -> Path:
|
18
18
|
repo_url = settings.sync_git_repo
|
19
|
-
repo_dir = setup_settings.
|
19
|
+
repo_dir = setup_settings.cache_dir / repo_url.split("/")[-1]
|
20
20
|
if repo_dir.exists():
|
21
21
|
logger.warning(f"git repo {repo_dir} already exists locally")
|
22
22
|
return repo_dir
|
@@ -26,7 +26,7 @@ def get_git_repo_from_remote() -> Path:
|
|
26
26
|
result = subprocess.run(
|
27
27
|
["git", "clone", "--depth", "10", f"{repo_url}.git"],
|
28
28
|
capture_output=True,
|
29
|
-
cwd=setup_settings.
|
29
|
+
cwd=setup_settings.cache_dir,
|
30
30
|
)
|
31
31
|
if result.returncode != 0 or not repo_dir.exists():
|
32
32
|
raise RuntimeError(result.stderr.decode())
|
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
|
|
11
11
|
|
12
12
|
|
13
13
|
def track_environment(run: Run) -> None:
|
14
|
-
filepath = ln_setup.settings.
|
14
|
+
filepath = ln_setup.settings.cache_dir / f"run_env_pip_{run.uid}.txt"
|
15
15
|
# create a requirements.txt
|
16
16
|
# we don't create a conda environment.yml mostly for its slowness
|
17
17
|
try:
|