lamindb 0.67.0__tar.gz → 0.67.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lamindb-0.67.0 → lamindb-0.67.2}/PKG-INFO +4 -4
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/changelog.md +11 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/__init__.py +15 -15
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_artifact.py +4 -3
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_collection.py +5 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_from_values.py +7 -7
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_query_manager.py +3 -6
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_query_set.py +17 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_run.py +23 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_transform.py +26 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_label_manager.py +1 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_run_context.py +2 -2
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/file.py +33 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/noxfile.py +24 -20
- {lamindb-0.67.0 → lamindb-0.67.2}/pyproject.toml +3 -3
- lamindb-0.67.2/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/lamin_cli/__main__.py +10 -2
- lamindb-0.67.2/sub/lamin-cli/lamin_cli/_stage.py +29 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/lamin_cli/_transform.py +2 -2
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/scripts/initialized.py +1 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/test_scripts.py +13 -4
- lamindb-0.67.2/sub/lamin-cli/tests/test_stage.py +21 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/changelog.md +2 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/upath.py +3 -2
- lamindb-0.67.2/sub/lamindb-setup/tests/prod-only/test_upath.py +18 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_load_instance.py +5 -5
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/docs/changelog.md +2 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/__init__.py +1 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +25 -25
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/models.py +13 -15
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/pyproject.toml +1 -1
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_artifact.py +61 -15
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_collection.py +2 -9
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_delete.py +1 -2
- lamindb-0.67.2/tests/test_load.py +39 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_transfer.py +13 -13
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_transform.py +53 -6
- lamindb-0.67.0/lamindb/_delete.py +0 -65
- lamindb-0.67.0/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- {lamindb-0.67.0 → lamindb-0.67.2}/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/.gitmodules +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/annotate.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/bio-registries.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/bionty.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/data.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/key.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/validator.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/faq.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/features-lamindb.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/features-laminhub.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/guide.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/installation.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/introduction.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/lamin-utils.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/lamindb.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/lnschema-bionty.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/meta.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/nbproject.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/query-search.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/readfcs.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/schemas.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/setup.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/signup-login.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/storage.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/track.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/transfer.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/tutorial.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/docs/validate.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_feature.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_feature_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_filter.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_ulabel.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_utils.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_validate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/_view.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_feature_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_mapped_collection.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_track_environment.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/_view_tree.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/datasets/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/datasets/_core.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/datasets/_fake.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/exceptions.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/fields.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/hashing.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/_anndata_sizes.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/_backed_access.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/_zarr.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/storage/object.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/types.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/dev/versioning.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/lamindb/setup/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/scripts/not-initialized.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamin-cli/tests/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-cache-management.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-empty-init.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-import-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-invalid-schema.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-load-anonymously.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-load-lock.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test-sqlite-sync.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-only/test_notebooks2.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/01-init-instance.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/02-load-instance.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/03-set-storage.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/04-test-bionty.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/test-multi-session.ipynb +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/prod-staging/test_notebooks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_export.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_init_vault.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_load_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/cloud_sqlite_locker.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/lamindb_setup/dev/django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-only/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-only/test_django.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-only/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_delete_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_init_instance.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_login.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_migrate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/prod-staging/test_set_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/test_storage_access.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lamindb-setup/tests/test_vault.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/docs/index.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/docs/reference.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lamin-project.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/dev/_bionty.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/CHANGELOG.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/models.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/conftest.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_cache.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_data.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_db.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_feature.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_feature_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_feature_set.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_from_values.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_hashing.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_label_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_manager.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_parents.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_queryset.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_registry.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_run.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_run_context.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_save.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_settings.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_storage.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_uid.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_ulabel.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_validate.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_versioning.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_view.py +0 -0
- {lamindb-0.67.0 → lamindb-0.67.2}/tests/test_visibility.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.67.
|
3
|
+
Version: 0.67.2
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.8
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Requires-Dist: lnschema_core==0.61.1
|
13
13
|
Requires-Dist: lamindb_setup==0.64.2
|
14
14
|
Requires-Dist: lamin_utils==0.13.0
|
15
|
-
Requires-Dist: lamin_cli==0.
|
15
|
+
Requires-Dist: lamin_cli==0.7.0
|
16
16
|
Requires-Dist: rapidfuzz
|
17
17
|
Requires-Dist: pyarrow
|
18
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -28,7 +28,7 @@ Requires-Dist: boto3==1.28.17 ; extra == "aws"
|
|
28
28
|
Requires-Dist: aiobotocore==2.5.4 ; extra == "aws"
|
29
29
|
Requires-Dist: fsspec[s3]==2023.9.0 ; extra == "aws"
|
30
30
|
Requires-Dist: s3fs>=2023.9.0 ; extra == "aws"
|
31
|
-
Requires-Dist: lnschema_bionty==0.
|
31
|
+
Requires-Dist: lnschema_bionty==0.39.0 ; extra == "bionty"
|
32
32
|
Requires-Dist: pandas<2 ; extra == "dev"
|
33
33
|
Requires-Dist: pre-commit ; extra == "dev"
|
34
34
|
Requires-Dist: nox ; extra == "dev"
|
@@ -42,7 +42,7 @@ Requires-Dist: lamin_vault ; extra == "dev"
|
|
42
42
|
Requires-Dist: django-schema-graph ; extra == "erdiagram"
|
43
43
|
Requires-Dist: readfcs>=1.1.7 ; extra == "fcs"
|
44
44
|
Requires-Dist: fsspec[gs]==2023.9.0 ; extra == "gcp"
|
45
|
-
Requires-Dist: nbproject==0.
|
45
|
+
Requires-Dist: nbproject==0.10.0 ; extra == "jupyter"
|
46
46
|
Requires-Dist: nbstripout ; extra == "jupyter"
|
47
47
|
Requires-Dist: nbconvert ; extra == "jupyter"
|
48
48
|
Requires-Dist: zarr>=2.16.0 ; extra == "zarr"
|
@@ -7,6 +7,17 @@
|
|
7
7
|
|
8
8
|
## 0.67
|
9
9
|
|
10
|
+
### 0.67.2 {small}`2024-01-14`
|
11
|
+
|
12
|
+
- ✨ Enable staging notebooks & code using the CLI [PR](https://github.com/laminlabs/lamindb/pull/1403) [@falexwolf](https://github.com/falexwolf)
|
13
|
+
|
14
|
+
### 0.67.1 {small}`2024-01-12`
|
15
|
+
|
16
|
+
- 🐛 Fix idempotency of `collection.save()` [PR](https://github.com/laminlabs/lamindb/pull/1401) [@falexwolf](https://github.com/falexwolf)
|
17
|
+
- 🚸 Disallow bulk-delete for Artifact, Transform & Collection [PR](https://github.com/laminlabs/lamindb/pull/1398) [@falexwolf](https://github.com/falexwolf)
|
18
|
+
- 🚸 Init transform versions at 1 [PR](https://github.com/laminlabs/lamindb/pull/1397) [@falexwolf](https://github.com/falexwolf)
|
19
|
+
- ✨ Load json and html files [PR](https://github.com/laminlabs/lamindb/pull/1396) [@falexwolf](https://github.com/falexwolf)
|
20
|
+
|
10
21
|
### 0.67.0 {small}`2024-01-11`
|
11
22
|
|
12
23
|
- 🚚 Rename `.bionty` to `.public`, `.from_bionty` to `.from_public` [PR](https://github.com/laminlabs/lamindb/pull/1394) [@sunnyosun](https://github.com/sunnyosun)
|
@@ -54,7 +54,7 @@ Modules & settings:
|
|
54
54
|
|
55
55
|
"""
|
56
56
|
|
57
|
-
__version__ = "0.67.
|
57
|
+
__version__ = "0.67.2" # denote a release candidate for 0.1.0 with 0.1rc1
|
58
58
|
|
59
59
|
import os as _os
|
60
60
|
|
@@ -102,20 +102,20 @@ if _INSTANCE_SETUP:
|
|
102
102
|
User,
|
103
103
|
)
|
104
104
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
105
|
+
from . import (
|
106
|
+
_artifact,
|
107
|
+
_collection,
|
108
|
+
_feature,
|
109
|
+
_feature_set,
|
110
|
+
_parents,
|
111
|
+
_registry,
|
112
|
+
_run,
|
113
|
+
_storage,
|
114
|
+
_transform,
|
115
|
+
_ulabel,
|
116
|
+
_validate,
|
117
|
+
dev,
|
118
|
+
)
|
119
119
|
from ._save import save
|
120
120
|
from ._view import view
|
121
121
|
from .dev._run_context import run_context
|
@@ -911,13 +911,13 @@ def delete(
|
|
911
911
|
self, permanent: Optional[bool] = None, storage: Optional[bool] = None
|
912
912
|
) -> None:
|
913
913
|
# by default, we only move artifacts into the trash
|
914
|
-
if self.visibility >
|
914
|
+
if self.visibility > -1 and permanent is not True:
|
915
915
|
if storage is not None:
|
916
916
|
logger.warning("moving artifact to trash, storage arg is ignored")
|
917
917
|
# move to trash
|
918
|
-
self.visibility =
|
918
|
+
self.visibility = -1
|
919
919
|
self.save()
|
920
|
-
logger.warning("moved artifact to trash")
|
920
|
+
logger.warning("moved artifact to trash (visibility = -1)")
|
921
921
|
return
|
922
922
|
|
923
923
|
# if the artifact is already in the trash
|
@@ -929,6 +929,7 @@ def delete(
|
|
929
929
|
)
|
930
930
|
delete_record = response == "y"
|
931
931
|
else:
|
932
|
+
# this second option doesn't feel very intuitive
|
932
933
|
delete_record = permanent
|
933
934
|
|
934
935
|
if delete_record:
|
@@ -424,8 +424,12 @@ def save(self, *args, **kwargs) -> None:
|
|
424
424
|
self.artifact.save()
|
425
425
|
# we don't need to save feature sets again
|
426
426
|
save_feature_sets(self)
|
427
|
+
state_was_adding = self._state.adding
|
427
428
|
super(Collection, self).save()
|
428
|
-
|
429
|
+
# we don't allow updating the collection of artifacts
|
430
|
+
# if users want to update the set of artifacts, they
|
431
|
+
# have to create a new collection
|
432
|
+
if state_was_adding and hasattr(self, "_artifacts"):
|
429
433
|
if self._artifacts is not None and len(self._artifacts) > 0:
|
430
434
|
links = [
|
431
435
|
CollectionArtifact(collection_id=self.id, artifact_id=artifact.id)
|
@@ -173,20 +173,20 @@ def create_records_from_public(
|
|
173
173
|
|
174
174
|
# create the corresponding bionty object from model
|
175
175
|
try:
|
176
|
-
|
176
|
+
public_ontology = model.public(
|
177
177
|
organism=kwargs.get("organism"), public_source=kwargs.get("public_source")
|
178
178
|
)
|
179
179
|
except Exception:
|
180
180
|
# for custom records that are not created from bionty sources
|
181
181
|
return records, iterable_idx
|
182
182
|
# add public_source record to the kwargs
|
183
|
-
kwargs.update({"public_source": get_public_source_record(
|
183
|
+
kwargs.update({"public_source": get_public_source_record(public_ontology)})
|
184
184
|
|
185
185
|
# filter the columns in bionty df based on fields
|
186
|
-
bionty_df = _filter_bionty_df_columns(model=model,
|
186
|
+
bionty_df = _filter_bionty_df_columns(model=model, public_ontology=public_ontology)
|
187
187
|
|
188
188
|
# standardize in the bionty reference
|
189
|
-
result =
|
189
|
+
result = public_ontology.inspect(iterable_idx, field=field.field.name, mute=True)
|
190
190
|
syn_mapper = result.synonyms_mapper
|
191
191
|
|
192
192
|
msg_syn: str = ""
|
@@ -254,13 +254,13 @@ def _print_values(names: List, n: int = 20) -> str:
|
|
254
254
|
return print_values
|
255
255
|
|
256
256
|
|
257
|
-
def _filter_bionty_df_columns(model: Registry,
|
257
|
+
def _filter_bionty_df_columns(model: Registry, public_ontology: Any) -> pd.DataFrame:
|
258
258
|
bionty_df = pd.DataFrame()
|
259
|
-
if
|
259
|
+
if public_ontology is not None:
|
260
260
|
model_field_names = {i.name for i in model._meta.fields}
|
261
261
|
# parents needs to be added here as relationships aren't in fields
|
262
262
|
model_field_names.add("parents")
|
263
|
-
bionty_df =
|
263
|
+
bionty_df = public_ontology.df().reset_index()
|
264
264
|
if model.__name__ == "Gene":
|
265
265
|
# groupby ensembl_gene_id and concat ncbi_gene_ids
|
266
266
|
groupby_id_col = (
|
@@ -46,14 +46,11 @@ class QueryManager(models.Manager):
|
|
46
46
|
|
47
47
|
Examples:
|
48
48
|
>>> ln.save(ln.ULabel.from_values(["ULabel1", "ULabel2", "ULabel3"], field="name"))
|
49
|
-
>>> labels = ln.ULabel.filter(name__icontains
|
49
|
+
>>> labels = ln.ULabel.filter(name__icontains="label").all()
|
50
50
|
>>> ln.ULabel(name="ULabel1").save()
|
51
51
|
>>> label = ln.ULabel.filter(name="ULabel1").one()
|
52
52
|
>>> label.parents.set(labels)
|
53
53
|
>>> label.parents.list()
|
54
|
-
[ULabel(id=sFMcPepC, name=ULabel1, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse), # noqa
|
55
|
-
ULabel(id=2SscQvsM, name=ULabel2, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse), # noqa
|
56
|
-
ULabel(id=lecV87vi, name=ULabel3, updated_at=2023-07-19 19:45:17, created_by_id=DzTjkKse)] # noqa
|
57
54
|
>>> label.parents.list("name")
|
58
55
|
['ULabel1', 'ULabel2', 'ULabel3']
|
59
56
|
"""
|
@@ -76,7 +73,7 @@ class QueryManager(models.Manager):
|
|
76
73
|
For `**kwargs`, see :meth:`lamindb.dev.QuerySet.df`.
|
77
74
|
"""
|
78
75
|
self._track_run_input_manager()
|
79
|
-
return self.
|
76
|
+
return self._all_base_class()
|
80
77
|
|
81
78
|
@doc_args(Registry.search.__doc__)
|
82
79
|
def search(self, string: str, **kwargs):
|
@@ -115,5 +112,5 @@ models.Manager.__getitem__ = QueryManager.__getitem__
|
|
115
112
|
models.Manager._track_run_input_manager = QueryManager._track_run_input_manager
|
116
113
|
# the two lines below would be easy if we could actually inherit; like this,
|
117
114
|
# they're suboptimal
|
118
|
-
models.Manager.
|
115
|
+
models.Manager._all_base_class = models.Manager.all
|
119
116
|
models.Manager.all = QueryManager.all
|
@@ -4,7 +4,14 @@ from typing import Dict, Iterable, List, NamedTuple, Optional, Union
|
|
4
4
|
import pandas as pd
|
5
5
|
from django.db import models
|
6
6
|
from lamindb_setup.dev._docs import doc_args
|
7
|
-
from lnschema_core.models import
|
7
|
+
from lnschema_core.models import (
|
8
|
+
Artifact,
|
9
|
+
CanValidate,
|
10
|
+
Collection,
|
11
|
+
IsTree,
|
12
|
+
Registry,
|
13
|
+
Transform,
|
14
|
+
)
|
8
15
|
from lnschema_core.types import ListLike, StrField
|
9
16
|
|
10
17
|
|
@@ -147,6 +154,13 @@ class QuerySet(models.QuerySet, CanValidate, IsTree):
|
|
147
154
|
df.rename(columns={values_expression: expression}, inplace=True)
|
148
155
|
return df
|
149
156
|
|
157
|
+
def delete(self, *args, **kwargs):
|
158
|
+
if self.model in {Artifact, Collection, Transform}:
|
159
|
+
for record in self:
|
160
|
+
record.delete(*args, **kwargs)
|
161
|
+
else:
|
162
|
+
self._delete_base_class(*args, **kwargs)
|
163
|
+
|
150
164
|
def list(self, field: Optional[str] = None) -> List[Registry]:
|
151
165
|
"""Populate a list with the results.
|
152
166
|
|
@@ -282,3 +296,5 @@ models.QuerySet.lookup = QuerySet.lookup
|
|
282
296
|
models.QuerySet.validate = QuerySet.validate
|
283
297
|
models.QuerySet.inspect = QuerySet.inspect
|
284
298
|
models.QuerySet.standardize = QuerySet.standardize
|
299
|
+
models.QuerySet._delete_base_class = models.QuerySet.delete
|
300
|
+
models.QuerySet.delete = QuerySet.delete
|
@@ -30,4 +30,27 @@ def __init__(run: Run, *args, **kwargs):
|
|
30
30
|
)
|
31
31
|
|
32
32
|
|
33
|
+
def delete_run_artifacts(run: Run) -> None:
|
34
|
+
environment = None
|
35
|
+
if run.environment is not None:
|
36
|
+
environment = run.environment
|
37
|
+
run.environment = None
|
38
|
+
report = None
|
39
|
+
if run.report is not None:
|
40
|
+
report = run.report
|
41
|
+
run.report = None
|
42
|
+
if environment is not None or report is not None:
|
43
|
+
run.save()
|
44
|
+
if environment is not None:
|
45
|
+
environment.delete(permanent=True)
|
46
|
+
if report is not None:
|
47
|
+
report.delete(permanent=True)
|
48
|
+
|
49
|
+
|
50
|
+
def delete(self) -> None:
|
51
|
+
delete_run_artifacts(self)
|
52
|
+
super(Run, self).delete()
|
53
|
+
|
54
|
+
|
33
55
|
Run.__init__ = __init__
|
56
|
+
Run.delete = delete
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from typing import TYPE_CHECKING, Optional
|
2
2
|
|
3
|
-
from lnschema_core.models import TRANSFORM_TYPE_DEFAULT, Transform
|
3
|
+
from lnschema_core.models import TRANSFORM_TYPE_DEFAULT, Artifact, Run, Transform
|
4
4
|
|
5
|
+
from ._run import delete_run_artifacts
|
5
6
|
from .dev.versioning import get_uid_from_old_version, init_uid
|
6
7
|
|
7
8
|
if TYPE_CHECKING:
|
@@ -63,4 +64,28 @@ def __init__(transform: Transform, *args, **kwargs):
|
|
63
64
|
)
|
64
65
|
|
65
66
|
|
67
|
+
def delete(self) -> None:
|
68
|
+
# set latest_report to None, it's tracked through the latest run
|
69
|
+
latest_report = None
|
70
|
+
if self.latest_report is not None:
|
71
|
+
latest_report = self.latest_report
|
72
|
+
self.latest_report = None
|
73
|
+
source_code = None
|
74
|
+
if self.source_code is not None:
|
75
|
+
source_code = self.source_code
|
76
|
+
self.source_code = None
|
77
|
+
if latest_report is not None or source_code is not None:
|
78
|
+
self.save()
|
79
|
+
if source_code is not None:
|
80
|
+
source_code.delete(permanent=True)
|
81
|
+
# query all runs and delete their artifacts
|
82
|
+
runs = Run.filter(transform=self)
|
83
|
+
for run in runs:
|
84
|
+
delete_run_artifacts(run)
|
85
|
+
# at this point, all artifacts have been taken care of
|
86
|
+
# we can now leverage CASCADE delete
|
87
|
+
super(Transform, self).delete()
|
88
|
+
|
89
|
+
|
66
90
|
Transform.__init__ = __init__
|
91
|
+
Transform.delete = delete
|
@@ -27,9 +27,9 @@ msg_path_failed = (
|
|
27
27
|
|
28
28
|
msg_manual_init = (
|
29
29
|
"\n(1) save your notebook!"
|
30
|
-
"\n(2)
|
30
|
+
"\n(2) add stem_uid & version to your notebook file by running the CLI:\n"
|
31
31
|
"lamin track {notebook_path}"
|
32
|
-
"\n(3) reload
|
32
|
+
"\n(3) reload your notebook from disk"
|
33
33
|
)
|
34
34
|
|
35
35
|
|
@@ -1,6 +1,8 @@
|
|
1
|
+
import builtins
|
2
|
+
import re
|
1
3
|
import shutil
|
2
4
|
from pathlib import Path
|
3
|
-
from typing import Union
|
5
|
+
from typing import Optional, Union
|
4
6
|
|
5
7
|
import anndata as ad
|
6
8
|
import pandas as pd
|
@@ -24,6 +26,7 @@ except ImportError:
|
|
24
26
|
|
25
27
|
|
26
28
|
AUTO_KEY_PREFIX = ".lamindb/"
|
29
|
+
is_run_from_ipython = getattr(builtins, "__IPYTHON__", False)
|
27
30
|
|
28
31
|
|
29
32
|
# add type annotations back asap when re-organizing the module
|
@@ -143,6 +146,33 @@ def read_tsv(path: Union[str, Path, UPath]) -> pd.DataFrame:
|
|
143
146
|
return pd.read_csv(path_sanitized, sep="\t")
|
144
147
|
|
145
148
|
|
149
|
+
def load_html(path: Union[str, Path, UPath]):
|
150
|
+
if is_run_from_ipython:
|
151
|
+
with open(path, encoding="utf-8") as f:
|
152
|
+
html_content = f.read()
|
153
|
+
# Extract the body content using regular expressions
|
154
|
+
body_content = re.findall(
|
155
|
+
r"<body(?:.*?)>(?:.*?)</body>", html_content, re.DOTALL
|
156
|
+
)
|
157
|
+
# Remove any empty body tags
|
158
|
+
if body_content:
|
159
|
+
body_content = body_content[0]
|
160
|
+
body_content = body_content.strip() # type: ignore
|
161
|
+
from IPython.display import HTML, display
|
162
|
+
|
163
|
+
display(HTML(data=body_content))
|
164
|
+
else:
|
165
|
+
return path
|
166
|
+
|
167
|
+
|
168
|
+
def load_json(path: Union[str, Path, UPath]):
|
169
|
+
import json
|
170
|
+
|
171
|
+
with open(path) as f:
|
172
|
+
data = json.load(f)
|
173
|
+
return data
|
174
|
+
|
175
|
+
|
146
176
|
def load_to_memory(filepath: Union[str, Path, UPath], stream: bool = False, **kwargs):
|
147
177
|
"""Load a file into memory.
|
148
178
|
|
@@ -170,6 +200,8 @@ def load_to_memory(filepath: Union[str, Path, UPath], stream: bool = False, **kw
|
|
170
200
|
".fcs": read_fcs,
|
171
201
|
".zarr": read_adata_zarr,
|
172
202
|
".zrad": read_adata_zarr,
|
203
|
+
".html": load_html,
|
204
|
+
".json": load_json,
|
173
205
|
}
|
174
206
|
|
175
207
|
reader = READER_FUNCS.get(filepath.suffix)
|
@@ -130,37 +130,41 @@ def docs(session):
|
|
130
130
|
if group in {"tutorial", "guide", "biology"}:
|
131
131
|
for path in Path(f"./docs/{group}").glob("*"):
|
132
132
|
path.rename(f"./docs/{path.name}")
|
133
|
-
login_testuser1(session)
|
134
133
|
session.run(*"lamin init --storage ./docsbuild --schema bionty".split())
|
135
134
|
|
136
135
|
def generate_cli_docs(main_parser):
|
137
136
|
page = "# `lamin`\n\nFor a guide, see: {doc}`/setup`.\n\n"
|
138
|
-
|
139
|
-
"login",
|
140
|
-
"
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
"
|
150
|
-
|
137
|
+
command_groups = {
|
138
|
+
"General": ["login", "info"],
|
139
|
+
"Instances": [
|
140
|
+
"init",
|
141
|
+
"load",
|
142
|
+
"close",
|
143
|
+
"delete",
|
144
|
+
"migrate",
|
145
|
+
"set",
|
146
|
+
"schema",
|
147
|
+
],
|
148
|
+
"Transforms": ["track", "save", "stage"],
|
149
|
+
}
|
151
150
|
for action_group in main_parser._action_groups:
|
152
151
|
for group_action in action_group._group_actions:
|
153
152
|
if type(group_action).__name__ == "_SubParsersAction":
|
154
|
-
for
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
153
|
+
for command_group, commands in command_groups.items():
|
154
|
+
page += f"## {command_group}\n\n"
|
155
|
+
for command in commands:
|
156
|
+
subparser = group_action.choices[command]
|
157
|
+
# replace the "nox" command with the "lamin" command
|
158
|
+
help_string = subparser.format_help().replace(
|
159
|
+
"nox", "lamin"
|
160
|
+
)
|
161
|
+
page += (
|
162
|
+
f"### `lamin {command}`\n\n```\n{help_string}```\n\n"
|
163
|
+
)
|
159
164
|
Path("./docs/cli.md").write_text(page)
|
160
165
|
|
161
166
|
from lamin_cli import __main__
|
162
167
|
|
163
168
|
generate_cli_docs(__main__.parser)
|
164
|
-
|
165
169
|
build_docs(session, strip_prefix=True, strict=True)
|
166
170
|
upload_docs_artifact(aws=True)
|
@@ -19,7 +19,7 @@ dependencies = [
|
|
19
19
|
"lnschema_core==0.61.1",
|
20
20
|
"lamindb_setup==0.64.2",
|
21
21
|
"lamin_utils==0.13.0",
|
22
|
-
"lamin_cli==0.
|
22
|
+
"lamin_cli==0.7.0",
|
23
23
|
# others
|
24
24
|
"rapidfuzz",
|
25
25
|
"pyarrow",
|
@@ -37,7 +37,7 @@ Home = "https://github.com/laminlabs/lamindb"
|
|
37
37
|
|
38
38
|
[project.optional-dependencies]
|
39
39
|
bionty = [
|
40
|
-
"lnschema_bionty==0.
|
40
|
+
"lnschema_bionty==0.39.0",
|
41
41
|
]
|
42
42
|
aws = [
|
43
43
|
"botocore==1.31.17", # for aiobotocore inside s3fs, to fix deps resolution
|
@@ -51,7 +51,7 @@ gcp = [
|
|
51
51
|
"fsspec[gs]==2023.9.0"
|
52
52
|
]
|
53
53
|
jupyter = [
|
54
|
-
"nbproject==0.
|
54
|
+
"nbproject==0.10.0", # keep pinning
|
55
55
|
"nbstripout",
|
56
56
|
"nbconvert",
|
57
57
|
]
|
@@ -100,8 +100,12 @@ aa("--pypackage", type=str, metavar="pypackage", default=None, help=pypackage_he
|
|
100
100
|
# save
|
101
101
|
save_parser = subparsers.add_parser("save", help="save notebook or script")
|
102
102
|
aa = save_parser.add_argument
|
103
|
-
|
104
|
-
|
103
|
+
aa("filepath", type=str, metavar="filepath", help="filepath to notebook or script")
|
104
|
+
|
105
|
+
# stage
|
106
|
+
save_parser = subparsers.add_parser("stage", help="stage a notebook or script")
|
107
|
+
aa = save_parser.add_argument
|
108
|
+
aa("url", type=str, metavar="url", help="a lamin.ai url")
|
105
109
|
|
106
110
|
# login and logout user
|
107
111
|
login = subparsers.add_parser("login", help="log in")
|
@@ -219,6 +223,10 @@ def main():
|
|
219
223
|
from lamin_cli._transform import save
|
220
224
|
|
221
225
|
return save(args.filepath)
|
226
|
+
elif args.command == "stage":
|
227
|
+
from lamin_cli._stage import stage
|
228
|
+
|
229
|
+
return stage(args.url)
|
222
230
|
elif args.command == "cache":
|
223
231
|
from lamindb_setup._cache import clear_cache_dir, get_cache_dir, set_cache_dir
|
224
232
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
from typing import Tuple
|
2
|
+
from lamin_utils import logger
|
3
|
+
|
4
|
+
|
5
|
+
def decompose_url(url: str) -> Tuple[str, str, str]:
|
6
|
+
assert "Transform" in url
|
7
|
+
uid = url.split("uid=")[1]
|
8
|
+
instance_identifier = "/".join(url.replace("https://lamin.ai/", "").split("/")[:2])
|
9
|
+
return instance_identifier, "transform", uid
|
10
|
+
|
11
|
+
|
12
|
+
def stage(identifier: str):
|
13
|
+
import lamindb as ln
|
14
|
+
|
15
|
+
ln.settings.verbosity = "success"
|
16
|
+
if identifier.startswith("https://lamin.ai"):
|
17
|
+
instance_identifier, entity, uid = decompose_url(identifier)
|
18
|
+
else:
|
19
|
+
entity, uid = identifier.split()
|
20
|
+
instance_identifier = ln.setup.settings.instance.identifier
|
21
|
+
|
22
|
+
if entity == "transform":
|
23
|
+
transform = ln.Transform.using(instance_identifier).filter(uid=uid).one()
|
24
|
+
filepath_cache = transform.source_code.stage()
|
25
|
+
target_filename = f"{transform.short_name}.ipynb"
|
26
|
+
filepath_cache.rename(target_filename)
|
27
|
+
logger.success(f"staged source code of transform {uid} as {target_filename}")
|
28
|
+
else:
|
29
|
+
raise NotImplementedError
|
@@ -13,7 +13,7 @@ def init_script_metadata(script_path: str):
|
|
13
13
|
from lnschema_core.ids import base62_12
|
14
14
|
|
15
15
|
stem_uid = base62_12()
|
16
|
-
version = "
|
16
|
+
version = "1"
|
17
17
|
|
18
18
|
with open(script_path) as f:
|
19
19
|
content = f.read()
|
@@ -331,7 +331,7 @@ def save(filepath: str) -> Optional[str]:
|
|
331
331
|
else:
|
332
332
|
report_file = ln.Artifact(
|
333
333
|
filepath_html,
|
334
|
-
description=f"Report of
|
334
|
+
description=f"Report of run {run.uid}",
|
335
335
|
is_new_version_of=initial_report,
|
336
336
|
visibility=0, # hidden file
|
337
337
|
)
|
@@ -7,6 +7,7 @@ scripts_dir = Path(__file__).parent.resolve() / "scripts"
|
|
7
7
|
|
8
8
|
print(scripts_dir)
|
9
9
|
|
10
|
+
|
10
11
|
def test_initialize():
|
11
12
|
filepath = scripts_dir / "not-initialized.py"
|
12
13
|
print(scripts_dir)
|
@@ -19,16 +20,16 @@ def test_initialize():
|
|
19
20
|
|
20
21
|
with open(filepath) as f:
|
21
22
|
content = f.read()
|
22
|
-
prepend =
|
23
|
+
prepend = '__transform_stem_uid__ = "'
|
23
24
|
assert content.startswith(prepend)
|
24
25
|
|
25
26
|
|
26
|
-
def
|
27
|
+
def test_run_save_stage():
|
27
28
|
env = os.environ
|
28
29
|
env["LAMIN_TESTING"] = "true"
|
29
|
-
|
30
|
+
|
30
31
|
filepath = scripts_dir / "initialized.py"
|
31
|
-
# python sub/lamin-cli/tests/scripts/initialized.py
|
32
|
+
# python sub/lamin-cli/tests/scripts/initialized.py
|
32
33
|
result = subprocess.run(
|
33
34
|
f"python {str(filepath)}",
|
34
35
|
shell=True,
|
@@ -68,3 +69,11 @@ def test_run_and_save():
|
|
68
69
|
)
|
69
70
|
print(result)
|
70
71
|
assert result.returncode == 0
|
72
|
+
|
73
|
+
result = subprocess.run(
|
74
|
+
"lamin stage 'transform m5uCHTTpJnjQ5zKv'",
|
75
|
+
shell=True,
|
76
|
+
capture_output=True,
|
77
|
+
)
|
78
|
+
print(result)
|
79
|
+
assert result.returncode == 0
|
@@ -0,0 +1,21 @@
|
|
1
|
+
from lamin_cli._stage import decompose_url
|
2
|
+
import subprocess
|
3
|
+
|
4
|
+
|
5
|
+
def test_decompose_url():
|
6
|
+
url = "https://lamin.ai/laminlabs/arrayloader-benchmarks/record/core/Transform?uid=1GCKs8zLtkc85zKv" # noqa
|
7
|
+
instance_identifier, entity, uid = decompose_url(url)
|
8
|
+
assert instance_identifier == "laminlabs/arrayloader-benchmarks"
|
9
|
+
assert entity == "transform"
|
10
|
+
assert uid == "1GCKs8zLtkc85zKv"
|
11
|
+
|
12
|
+
|
13
|
+
def test_stage():
|
14
|
+
result = subprocess.run(
|
15
|
+
"lamin stage"
|
16
|
+
" 'https://lamin.ai/laminlabs/arrayloader-benchmarks/record/core/Transform?uid=1GCKs8zLtkc85zKv'", # noqa
|
17
|
+
shell=True,
|
18
|
+
capture_output=True,
|
19
|
+
)
|
20
|
+
print(result)
|
21
|
+
assert result.returncode == 0
|
@@ -3,6 +3,8 @@
|
|
3
3
|
<!-- prettier-ignore -->
|
4
4
|
Name | PR | Developer | Date | Version
|
5
5
|
--- | --- | --- | --- | ---
|
6
|
+
🐛 Fix option inheritance in create_path and add tests | [617](https://github.com/laminlabs/lamindb-setup/pull/617) | [Koncopd](https://github.com/Koncopd) | 2024-01-12 |
|
7
|
+
✅ Update tests relying on laminhub-rest | [616](https://github.com/laminlabs/lamindb-setup/pull/616) | [fredericenard](https://github.com/fredericenard) | 2024-01-12 |
|
6
8
|
🚚 Rename .bionty to .public | [615](https://github.com/laminlabs/lamindb-setup/pull/615) | [sunnyosun](https://github.com/sunnyosun) | 2024-01-10 | 0.64.2
|
7
9
|
🚸 Fix connection timeout | [611](https://github.com/laminlabs/lamindb-setup/pull/611) | [falexwolf](https://github.com/falexwolf) | 2024-01-08 | 0.64.1
|
8
10
|
🚸 Add anonymous access (now works without login) | [610](https://github.com/laminlabs/lamindb-setup/pull/610) | [falexwolf](https://github.com/falexwolf) | 2024-01-06 | 0.64.0
|