digitalhub 0.9.0b3__tar.gz → 0.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of digitalhub might be problematic. Click here for more details.
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/LICENSE.txt +1 -1
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/PKG-INFO +3 -3
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/_base/client.py +56 -20
- digitalhub-0.9.1/digitalhub/client/_base/key_builder.py +52 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/client.py +4 -0
- digitalhub-0.9.1/digitalhub/client/dhcore/key_builder.py +58 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/local/client.py +2 -0
- digitalhub-0.9.1/digitalhub/client/local/key_builder.py +58 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/material/entity.py +1 -1
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/project/entity.py +1 -1
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/unversioned/entity.py +2 -1
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/versioned/entity.py +2 -1
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_operations/processor.py +123 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/_base/store.py +6 -2
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/local/store.py +6 -2
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/remote/store.py +6 -2
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/s3/store.py +100 -46
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/sql/store.py +10 -2
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/git_utils.py +3 -3
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/s3_utils.py +17 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/uri_utils.py +68 -32
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub.egg-info/PKG-INFO +3 -3
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub.egg-info/SOURCES.txt +3 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/pyproject.toml +2 -2
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/README.md +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/_base/api_builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/api.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/api_builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/enums.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/env.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/models.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/dhcore/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/local/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/client/local/api_builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/context/api.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/context/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/context/context.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/context/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/context/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/metadata.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/name.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/_constructors/uuid.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/metadata.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/entity/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/executable/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/executable/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/material/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/material/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/material/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/material/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/project/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/runtime_entity/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/unversioned/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/unversioned/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/versioned/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_base/versioned/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_commons/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_commons/enums.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_commons/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/_operations/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/artifact/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/artifact/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/artifact/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/artifact/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/artifact/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/artifact/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/builders.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/dataitem/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/iceberg/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/models.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/table/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/dataitem/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/function/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/huggingface/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/huggingface/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/huggingface/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/huggingface/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/huggingface/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/models.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/mlflow/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/model/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/model/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/model/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/model/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/model/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/sklearn/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/sklearn/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/sklearn/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/sklearn/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/sklearn/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/model/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/project/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/run/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/secret/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/models.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/_base/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/task/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/_base/entity.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/_base/spec.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/_base/status.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/entities/workflow/crud.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/factory/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/factory/api.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/factory/factory.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/factory/utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/_base/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/_base/reader.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/_commons/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/_commons/enums.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/api.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/factory.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/pandas/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/pandas/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/readers/pandas/reader.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/runtimes/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/runtimes/_base.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/runtimes/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/runtimes/enums.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/_base/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/api.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/builder.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/local/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/remote/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/s3/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/stores/sql/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/__init__.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/data_utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/exceptions.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/file_utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/generic_utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/io_utils.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub/utils/logger.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub.egg-info/dependency_links.txt +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub.egg-info/requires.txt +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/digitalhub.egg-info/top_level.txt +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/setup.cfg +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/local/CRUD/test_artifacts.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/local/CRUD/test_dataitems.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/local/CRUD/test_models.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/local/imports/test_imports.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/local/instances/test_validate.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/test_crud_functions.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/test_crud_runs.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/test_crud_tasks.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/testkfp.py +0 -0
- {digitalhub-0.9.0b3 → digitalhub-0.9.1}/test/testkfp_pipeline.py +0 -0
|
@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2024 DSLab, Fondazione Bruno Kessler
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: digitalhub
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Python SDK for Digitalhub
|
|
5
5
|
Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
|
|
6
6
|
License: Apache License
|
|
@@ -191,7 +191,7 @@ License: Apache License
|
|
|
191
191
|
same "printed page" as the copyright notice for easier
|
|
192
192
|
identification within third-party archives.
|
|
193
193
|
|
|
194
|
-
Copyright
|
|
194
|
+
Copyright 2024 DSLab, Fondazione Bruno Kessler
|
|
195
195
|
|
|
196
196
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
197
197
|
you may not use this file except in compliance with the License.
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import typing
|
|
3
4
|
from abc import abstractmethod
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
if typing.TYPE_CHECKING:
|
|
7
|
+
from digitalhub.client._base.api_builder import ClientApiBuilder
|
|
8
|
+
from digitalhub.client._base.key_builder import ClientKeyBuilder
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
class Client:
|
|
@@ -16,26 +19,11 @@ class Client:
|
|
|
16
19
|
|
|
17
20
|
def __init__(self) -> None:
|
|
18
21
|
self._api_builder: ClientApiBuilder = None
|
|
22
|
+
self._key_builder: ClientKeyBuilder = None
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Parameters
|
|
25
|
-
----------
|
|
26
|
-
category : str
|
|
27
|
-
API category.
|
|
28
|
-
operation : str
|
|
29
|
-
API operation.
|
|
30
|
-
**kwargs : dict
|
|
31
|
-
Additional parameters.
|
|
32
|
-
|
|
33
|
-
Returns
|
|
34
|
-
-------
|
|
35
|
-
str
|
|
36
|
-
API formatted.
|
|
37
|
-
"""
|
|
38
|
-
return self._api_builder.build_api(category, operation, **kwargs)
|
|
24
|
+
##############################
|
|
25
|
+
# CRUD methods
|
|
26
|
+
##############################
|
|
39
27
|
|
|
40
28
|
@abstractmethod
|
|
41
29
|
def create_object(self, api: str, obj: dict, **kwargs) -> dict:
|
|
@@ -79,6 +67,54 @@ class Client:
|
|
|
79
67
|
Search objects method.
|
|
80
68
|
"""
|
|
81
69
|
|
|
70
|
+
##############################
|
|
71
|
+
# Build methods
|
|
72
|
+
##############################
|
|
73
|
+
|
|
74
|
+
def build_api(self, category: str, operation: str, **kwargs) -> str:
|
|
75
|
+
"""
|
|
76
|
+
Build the API for the client.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
category : str
|
|
81
|
+
API category.
|
|
82
|
+
operation : str
|
|
83
|
+
API operation.
|
|
84
|
+
**kwargs : dict
|
|
85
|
+
Additional parameters.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
str
|
|
90
|
+
API formatted.
|
|
91
|
+
"""
|
|
92
|
+
return self._api_builder.build_api(category, operation, **kwargs)
|
|
93
|
+
|
|
94
|
+
def build_key(self, category: str, *args, **kwargs) -> str:
|
|
95
|
+
"""
|
|
96
|
+
Build the key for the client.
|
|
97
|
+
|
|
98
|
+
Parameters
|
|
99
|
+
----------
|
|
100
|
+
category : str
|
|
101
|
+
Key category.
|
|
102
|
+
*args : tuple
|
|
103
|
+
Additional arguments.
|
|
104
|
+
**kwargs : dict
|
|
105
|
+
Additional parameters.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
str
|
|
110
|
+
Key formatted.
|
|
111
|
+
"""
|
|
112
|
+
return self._key_builder.build_key(category, *args, **kwargs)
|
|
113
|
+
|
|
114
|
+
##############################
|
|
115
|
+
# Interface methods
|
|
116
|
+
##############################
|
|
117
|
+
|
|
82
118
|
@staticmethod
|
|
83
119
|
@abstractmethod
|
|
84
120
|
def is_local() -> bool:
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from abc import abstractmethod
|
|
4
|
+
|
|
5
|
+
from digitalhub.entities._commons.enums import ApiCategories
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ClientKeyBuilder:
|
|
9
|
+
"""
|
|
10
|
+
Class that build the key of entities.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def build_key(self, category: str, *args, **kwargs) -> str:
|
|
14
|
+
"""
|
|
15
|
+
Build key.
|
|
16
|
+
|
|
17
|
+
Parameters
|
|
18
|
+
----------
|
|
19
|
+
category : str
|
|
20
|
+
Key category.
|
|
21
|
+
*args : tuple
|
|
22
|
+
Positional arguments.
|
|
23
|
+
**kwargs : dict
|
|
24
|
+
Keyword arguments.
|
|
25
|
+
|
|
26
|
+
Returns
|
|
27
|
+
-------
|
|
28
|
+
str
|
|
29
|
+
Key.
|
|
30
|
+
"""
|
|
31
|
+
if category == ApiCategories.BASE.value:
|
|
32
|
+
return self.base_entity_key(*args, **kwargs)
|
|
33
|
+
return self.context_entity_key(*args, **kwargs)
|
|
34
|
+
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def base_entity_key(self, entity_id: str) -> str:
|
|
37
|
+
"""
|
|
38
|
+
Build for base entity key.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
def context_entity_key(
|
|
43
|
+
self,
|
|
44
|
+
project: str,
|
|
45
|
+
entity_type: str,
|
|
46
|
+
entity_kind: str,
|
|
47
|
+
entity_name: str,
|
|
48
|
+
entity_id: str | None = None,
|
|
49
|
+
) -> str:
|
|
50
|
+
"""
|
|
51
|
+
Build for context entity key.
|
|
52
|
+
"""
|
|
@@ -14,6 +14,7 @@ from digitalhub.client._base.client import Client
|
|
|
14
14
|
from digitalhub.client.dhcore.api_builder import ClientDHCoreApiBuilder
|
|
15
15
|
from digitalhub.client.dhcore.enums import AuthType, DhcoreEnvVar
|
|
16
16
|
from digitalhub.client.dhcore.env import ENV_FILE, FALLBACK_USER, LIB_VERSION, MAX_API_LEVEL, MIN_API_LEVEL
|
|
17
|
+
from digitalhub.client.dhcore.key_builder import ClientDHCoreKeyBuilder
|
|
17
18
|
from digitalhub.client.dhcore.models import BasicAuth, OAuth2TokenAuth
|
|
18
19
|
from digitalhub.utils.exceptions import (
|
|
19
20
|
BackendError,
|
|
@@ -52,6 +53,9 @@ class ClientDHCore(Client):
|
|
|
52
53
|
# API builder
|
|
53
54
|
self._api_builder = ClientDHCoreApiBuilder()
|
|
54
55
|
|
|
56
|
+
# Key builder
|
|
57
|
+
self._key_builder = ClientDHCoreKeyBuilder()
|
|
58
|
+
|
|
55
59
|
# Endpoints
|
|
56
60
|
self._endpoint_core: str | None = None
|
|
57
61
|
self._endpoint_issuer: str | None = None
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from digitalhub.client._base.key_builder import ClientKeyBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ClientDHCoreKeyBuilder(ClientKeyBuilder):
|
|
7
|
+
"""
|
|
8
|
+
Class that build the key of entities.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
def base_entity_key(self, entity_id: str) -> str:
|
|
12
|
+
"""
|
|
13
|
+
Build for base entity key.
|
|
14
|
+
|
|
15
|
+
Parameters
|
|
16
|
+
----------
|
|
17
|
+
entity_id : str
|
|
18
|
+
Entity id.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
str
|
|
23
|
+
Key.
|
|
24
|
+
"""
|
|
25
|
+
return f"store://{entity_id}"
|
|
26
|
+
|
|
27
|
+
def context_entity_key(
|
|
28
|
+
self,
|
|
29
|
+
project: str,
|
|
30
|
+
entity_type: str,
|
|
31
|
+
entity_kind: str,
|
|
32
|
+
entity_name: str,
|
|
33
|
+
entity_id: str | None = None,
|
|
34
|
+
) -> str:
|
|
35
|
+
"""
|
|
36
|
+
Build for context entity key.
|
|
37
|
+
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
project : str
|
|
41
|
+
Project name.
|
|
42
|
+
entity_type : str
|
|
43
|
+
Entity type.
|
|
44
|
+
entity_kind : str
|
|
45
|
+
Entity kind.
|
|
46
|
+
entity_name : str
|
|
47
|
+
Entity name.
|
|
48
|
+
entity_id : str
|
|
49
|
+
Entity ID.
|
|
50
|
+
|
|
51
|
+
Returns
|
|
52
|
+
-------
|
|
53
|
+
str
|
|
54
|
+
Key.
|
|
55
|
+
"""
|
|
56
|
+
if entity_id is None:
|
|
57
|
+
return f"store://{project}/{entity_type}/{entity_kind}/{entity_name}"
|
|
58
|
+
return f"store://{project}/{entity_type}/{entity_kind}/{entity_name}:{entity_id}"
|
|
@@ -5,6 +5,7 @@ from datetime import datetime, timezone
|
|
|
5
5
|
|
|
6
6
|
from digitalhub.client._base.client import Client
|
|
7
7
|
from digitalhub.client.local.api_builder import ClientLocalApiBuilder
|
|
8
|
+
from digitalhub.client.local.key_builder import ClientLocalKeyBuilder
|
|
8
9
|
from digitalhub.utils.exceptions import BackendError
|
|
9
10
|
|
|
10
11
|
|
|
@@ -24,6 +25,7 @@ class ClientLocal(Client):
|
|
|
24
25
|
def __init__(self) -> None:
|
|
25
26
|
super().__init__()
|
|
26
27
|
self._api_builder = ClientLocalApiBuilder()
|
|
28
|
+
self._key_builder = ClientLocalKeyBuilder()
|
|
27
29
|
self._db: dict[str, dict[str, dict]] = {}
|
|
28
30
|
|
|
29
31
|
##############################
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from digitalhub.client._base.key_builder import ClientKeyBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ClientLocalKeyBuilder(ClientKeyBuilder):
|
|
7
|
+
"""
|
|
8
|
+
Class that build the key of entities.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
def base_entity_key(self, entity_id: str) -> str:
|
|
12
|
+
"""
|
|
13
|
+
Build for base entity key.
|
|
14
|
+
|
|
15
|
+
Parameters
|
|
16
|
+
----------
|
|
17
|
+
entity_id : str
|
|
18
|
+
Entity id.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
str
|
|
23
|
+
Key.
|
|
24
|
+
"""
|
|
25
|
+
return f"store://{entity_id}"
|
|
26
|
+
|
|
27
|
+
def context_entity_key(
|
|
28
|
+
self,
|
|
29
|
+
project: str,
|
|
30
|
+
entity_type: str,
|
|
31
|
+
entity_kind: str,
|
|
32
|
+
entity_name: str,
|
|
33
|
+
entity_id: str | None = None,
|
|
34
|
+
) -> str:
|
|
35
|
+
"""
|
|
36
|
+
Build for context entity key.
|
|
37
|
+
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
project : str
|
|
41
|
+
Project name.
|
|
42
|
+
entity_type : str
|
|
43
|
+
Entity type.
|
|
44
|
+
entity_kind : str
|
|
45
|
+
Entity kind.
|
|
46
|
+
entity_name : str
|
|
47
|
+
Entity name.
|
|
48
|
+
entity_id : str
|
|
49
|
+
Entity ID.
|
|
50
|
+
|
|
51
|
+
Returns
|
|
52
|
+
-------
|
|
53
|
+
str
|
|
54
|
+
Key.
|
|
55
|
+
"""
|
|
56
|
+
if entity_id is None:
|
|
57
|
+
return f"store://{project}/{entity_type}/{entity_kind}/{entity_name}"
|
|
58
|
+
return f"store://{project}/{entity_type}/{entity_kind}/{entity_name}:{entity_id}"
|
|
@@ -168,7 +168,7 @@ class MaterialEntity(VersionedEntity):
|
|
|
168
168
|
paths = store.upload(source, self.spec.path)
|
|
169
169
|
|
|
170
170
|
# Update files info
|
|
171
|
-
files_info = store.get_file_info(paths)
|
|
171
|
+
files_info = store.get_file_info(self.spec.path, paths)
|
|
172
172
|
self._update_files_info(files_info)
|
|
173
173
|
|
|
174
174
|
##############################
|
|
@@ -40,7 +40,7 @@ class ProjectEntity(Entity):
|
|
|
40
40
|
super().__init__(kind, metadata, spec, status, user)
|
|
41
41
|
self.id = name
|
|
42
42
|
self.name = name
|
|
43
|
-
self.key =
|
|
43
|
+
self.key = processor.build_project_key(self.name, local=local)
|
|
44
44
|
|
|
45
45
|
self._obj_attr.extend(["id", "name"])
|
|
46
46
|
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from digitalhub.entities._base.context.entity import ContextEntity
|
|
6
|
+
from digitalhub.entities._operations.processor import processor
|
|
6
7
|
|
|
7
8
|
if typing.TYPE_CHECKING:
|
|
8
9
|
from digitalhub.entities._base.entity.metadata import Metadata
|
|
@@ -24,4 +25,4 @@ class UnversionedEntity(ContextEntity):
|
|
|
24
25
|
super().__init__(project, kind, metadata, spec, status, user)
|
|
25
26
|
self.id = uuid
|
|
26
27
|
self.name = uuid
|
|
27
|
-
self.key =
|
|
28
|
+
self.key = processor.build_context_entity_key(project, self.ENTITY_TYPE, kind, uuid)
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from digitalhub.entities._base.context.entity import ContextEntity
|
|
6
|
+
from digitalhub.entities._operations.processor import processor
|
|
6
7
|
|
|
7
8
|
if typing.TYPE_CHECKING:
|
|
8
9
|
from digitalhub.entities._base.entity.metadata import Metadata
|
|
@@ -25,4 +26,4 @@ class VersionedEntity(ContextEntity):
|
|
|
25
26
|
super().__init__(project, kind, metadata, spec, status, user)
|
|
26
27
|
self.name = name
|
|
27
28
|
self.id = uuid
|
|
28
|
-
self.key =
|
|
29
|
+
self.key = processor.build_context_entity_key(project, self.ENTITY_TYPE, kind, name, uuid)
|
|
@@ -427,6 +427,55 @@ class OperationsProcessor:
|
|
|
427
427
|
**kwargs,
|
|
428
428
|
)
|
|
429
429
|
|
|
430
|
+
##############################
|
|
431
|
+
# Base entity operations
|
|
432
|
+
##############################
|
|
433
|
+
|
|
434
|
+
def _build_base_entity_key(
|
|
435
|
+
self,
|
|
436
|
+
client: Client,
|
|
437
|
+
entity_id: str,
|
|
438
|
+
) -> str:
|
|
439
|
+
"""
|
|
440
|
+
Build object key.
|
|
441
|
+
|
|
442
|
+
Parameters
|
|
443
|
+
----------
|
|
444
|
+
client : Client
|
|
445
|
+
Client instance.
|
|
446
|
+
entity_id : str
|
|
447
|
+
Entity ID.
|
|
448
|
+
|
|
449
|
+
Returns
|
|
450
|
+
-------
|
|
451
|
+
str
|
|
452
|
+
Object key.
|
|
453
|
+
"""
|
|
454
|
+
return client.build_key(ApiCategories.BASE.value, entity_id)
|
|
455
|
+
|
|
456
|
+
def build_project_key(
|
|
457
|
+
self,
|
|
458
|
+
entity_id: str,
|
|
459
|
+
**kwargs,
|
|
460
|
+
) -> str:
|
|
461
|
+
"""
|
|
462
|
+
Build object key.
|
|
463
|
+
|
|
464
|
+
Parameters
|
|
465
|
+
----------
|
|
466
|
+
entity_id : str
|
|
467
|
+
Entity ID.
|
|
468
|
+
**kwargs : dict
|
|
469
|
+
Parameters to pass to entity builder.
|
|
470
|
+
|
|
471
|
+
Returns
|
|
472
|
+
-------
|
|
473
|
+
str
|
|
474
|
+
Object key.
|
|
475
|
+
"""
|
|
476
|
+
client = get_client(kwargs.pop("local", False))
|
|
477
|
+
return self._build_base_entity_key(client, entity_id)
|
|
478
|
+
|
|
430
479
|
def share_project_entity(
|
|
431
480
|
self,
|
|
432
481
|
entity_type: str,
|
|
@@ -736,6 +785,10 @@ class OperationsProcessor:
|
|
|
736
785
|
"""
|
|
737
786
|
if not identifier.startswith("store://"):
|
|
738
787
|
entity_id = identifier
|
|
788
|
+
else:
|
|
789
|
+
splt = identifier.split(":")
|
|
790
|
+
if len(splt) == 3:
|
|
791
|
+
identifier = f"{splt[0]}:{splt[1]}"
|
|
739
792
|
return self.read_context_entity(
|
|
740
793
|
identifier,
|
|
741
794
|
entity_type=entity_type,
|
|
@@ -1275,6 +1328,76 @@ class OperationsProcessor:
|
|
|
1275
1328
|
# Context entity operations
|
|
1276
1329
|
##############################
|
|
1277
1330
|
|
|
1331
|
+
def _build_context_entity_key(
|
|
1332
|
+
self,
|
|
1333
|
+
context: Context,
|
|
1334
|
+
entity_type: str,
|
|
1335
|
+
entity_kind: str,
|
|
1336
|
+
entity_name: str,
|
|
1337
|
+
entity_id: str | None = None,
|
|
1338
|
+
) -> str:
|
|
1339
|
+
"""
|
|
1340
|
+
Build object key.
|
|
1341
|
+
|
|
1342
|
+
Parameters
|
|
1343
|
+
----------
|
|
1344
|
+
context : Context
|
|
1345
|
+
Context instance.
|
|
1346
|
+
entity_type : str
|
|
1347
|
+
Entity type.
|
|
1348
|
+
entity_kind : str
|
|
1349
|
+
Entity kind.
|
|
1350
|
+
entity_name : str
|
|
1351
|
+
Entity name.
|
|
1352
|
+
entity_id : str
|
|
1353
|
+
Entity ID.
|
|
1354
|
+
|
|
1355
|
+
Returns
|
|
1356
|
+
-------
|
|
1357
|
+
str
|
|
1358
|
+
Object key.
|
|
1359
|
+
"""
|
|
1360
|
+
return context.client.build_key(
|
|
1361
|
+
ApiCategories.CONTEXT.value,
|
|
1362
|
+
project=context.name,
|
|
1363
|
+
entity_type=entity_type,
|
|
1364
|
+
entity_kind=entity_kind,
|
|
1365
|
+
entity_name=entity_name,
|
|
1366
|
+
entity_id=entity_id,
|
|
1367
|
+
)
|
|
1368
|
+
|
|
1369
|
+
def build_context_entity_key(
|
|
1370
|
+
self,
|
|
1371
|
+
project: str,
|
|
1372
|
+
entity_type: str,
|
|
1373
|
+
entity_kind: str,
|
|
1374
|
+
entity_name: str,
|
|
1375
|
+
entity_id: str | None = None,
|
|
1376
|
+
) -> str:
|
|
1377
|
+
"""
|
|
1378
|
+
Build object key.
|
|
1379
|
+
|
|
1380
|
+
Parameters
|
|
1381
|
+
----------
|
|
1382
|
+
project : str
|
|
1383
|
+
Project name.
|
|
1384
|
+
entity_type : str
|
|
1385
|
+
Entity type.
|
|
1386
|
+
entity_kind : str
|
|
1387
|
+
Entity kind.
|
|
1388
|
+
entity_name : str
|
|
1389
|
+
Entity name.
|
|
1390
|
+
entity_id : str
|
|
1391
|
+
Entity ID.
|
|
1392
|
+
|
|
1393
|
+
Returns
|
|
1394
|
+
-------
|
|
1395
|
+
str
|
|
1396
|
+
Object key.
|
|
1397
|
+
"""
|
|
1398
|
+
context = self._get_context(project)
|
|
1399
|
+
return self._build_context_entity_key(context, entity_type, entity_kind, entity_name, entity_id)
|
|
1400
|
+
|
|
1278
1401
|
def read_secret_data(
|
|
1279
1402
|
self,
|
|
1280
1403
|
project: str,
|
|
@@ -52,13 +52,17 @@ class Store:
|
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
54
|
@abstractmethod
|
|
55
|
-
def upload(self, src: str | list[str], dst: str
|
|
55
|
+
def upload(self, src: str | list[str], dst: str) -> list[tuple[str, str]]:
|
|
56
56
|
"""
|
|
57
57
|
Method to upload artifact to storage.
|
|
58
58
|
"""
|
|
59
59
|
|
|
60
60
|
@abstractmethod
|
|
61
|
-
def get_file_info(
|
|
61
|
+
def get_file_info(
|
|
62
|
+
self,
|
|
63
|
+
root: str,
|
|
64
|
+
paths: list[tuple[str, str]],
|
|
65
|
+
) -> list[dict]:
|
|
62
66
|
"""
|
|
63
67
|
Method to get file metadata.
|
|
64
68
|
"""
|
|
@@ -61,7 +61,7 @@ class LocalStore(Store):
|
|
|
61
61
|
"""
|
|
62
62
|
raise StoreError("Local store does not support download.")
|
|
63
63
|
|
|
64
|
-
def upload(self, src: str | list[str], dst: str
|
|
64
|
+
def upload(self, src: str | list[str], dst: str) -> list[tuple[str, str]]:
|
|
65
65
|
"""
|
|
66
66
|
Upload an artifact to storage.
|
|
67
67
|
|
|
@@ -72,7 +72,11 @@ class LocalStore(Store):
|
|
|
72
72
|
"""
|
|
73
73
|
raise StoreError("Local store does not support upload.")
|
|
74
74
|
|
|
75
|
-
def get_file_info(
|
|
75
|
+
def get_file_info(
|
|
76
|
+
self,
|
|
77
|
+
root: str,
|
|
78
|
+
paths: list[tuple[str, str]],
|
|
79
|
+
) -> list[dict]:
|
|
76
80
|
"""
|
|
77
81
|
Method to get file metadata.
|
|
78
82
|
|
|
@@ -69,7 +69,7 @@ class RemoteStore(Store):
|
|
|
69
69
|
|
|
70
70
|
return self._download_file(root, dst, overwrite)
|
|
71
71
|
|
|
72
|
-
def upload(self, src: str | list[str], dst: str
|
|
72
|
+
def upload(self, src: str | list[str], dst: str) -> list[tuple[str, str]]:
|
|
73
73
|
"""
|
|
74
74
|
Upload an artifact to storage.
|
|
75
75
|
|
|
@@ -80,7 +80,11 @@ class RemoteStore(Store):
|
|
|
80
80
|
"""
|
|
81
81
|
raise StoreError("Remote HTTP store does not support upload.")
|
|
82
82
|
|
|
83
|
-
def get_file_info(
|
|
83
|
+
def get_file_info(
|
|
84
|
+
self,
|
|
85
|
+
root: str,
|
|
86
|
+
paths: list[tuple[str, str]],
|
|
87
|
+
) -> list[dict]:
|
|
84
88
|
"""
|
|
85
89
|
Get file information from HTTP(s) storage.
|
|
86
90
|
|