digitalhub 0.14.0b1__tar.gz → 0.14.0b2__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.14.0b1 → digitalhub-0.14.0b2}/PKG-INFO +1 -1
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/executable/entity.py +20 -12
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/material/entity.py +8 -4
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_processors/base.py +8 -8
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_processors/context.py +15 -15
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_processors/utils.py +2 -2
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/crud.py +23 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/crud.py +28 -9
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/entity.py +28 -1
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/utils.py +4 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/_base/entity.py +3 -3
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/crud.py +23 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/_base/entity.py +51 -9
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/crud.py +21 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/entity.py +121 -41
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/crud.py +20 -6
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/_base/entity.py +58 -15
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/crud.py +22 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/crud.py +21 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/entity.py +4 -4
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/crud.py +18 -6
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/crud.py +23 -7
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/_base/entity.py +3 -3
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/crud.py +23 -7
- digitalhub-0.14.0b2/digitalhub/factory/entity.py +283 -0
- digitalhub-0.14.0b2/digitalhub/factory/registry.py +221 -0
- digitalhub-0.14.0b2/digitalhub/factory/runtime.py +44 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/runtimes/_base.py +2 -2
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/client.py +6 -2
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/configurator.py +4 -5
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/s3/configurator.py +2 -2
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/pandas/reader.py +9 -3
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/pyproject.toml +7 -5
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/test_validate.py +2 -2
- digitalhub-0.14.0b1/digitalhub/factory/factory.py +0 -460
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/scripts/bump.sh +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/scripts/changelog.sh +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/scripts/cliff.toml +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/workflows/release.yml +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/workflows/run_local_test.yml +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.github/workflows/test_release.yml +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/.gitignore +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/AUTHORS +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/CONTRIBUTING +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/COPYRIGHT +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/LICENSE +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/README.md +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/context/api.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/context/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/context/context.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/_base/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/context/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/context/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/metadata.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/entity/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/executable/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/material/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/material/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/material/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/material/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/runtime_entity/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/unversioned/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/unversioned/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/unversioned/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/versioned/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/versioned/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_base/versioned/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_commons/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_commons/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_commons/metrics.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_commons/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/metadata.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/name.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_constructors/uuid.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/_processors/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/_base/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/artifact/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/artifact/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/artifact/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/artifact/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/artifact/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/artifact/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/builders.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/_base/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/dataitem/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/iceberg/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/models.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/dataitem/table/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/function/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/huggingface/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/huggingface/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/huggingface/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/huggingface/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/huggingface/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/models.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/mlflow/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/model/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/model/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/model/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/model/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/model/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/sklearn/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/sklearn/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/sklearn/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/sklearn/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/sklearn/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/model/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/models.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/project/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/run/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/_base/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/secret/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/models.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/task/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/_base/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/lifecycle/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/lifecycle/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/lifecycle/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/lifecycle/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/lifecycle/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/scheduler/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/scheduler/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/scheduler/entity.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/scheduler/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/trigger/scheduler/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/_base/spec.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/entities/workflow/_base/status.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/factory/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/factory/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/factory/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/runtimes/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/runtimes/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/runtimes/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/_base/api_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/_base/client.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/_base/key_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/_base/params_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/api.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/api_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/configurator.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/error_parser.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/key_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/params_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/dhcore/utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/api_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/client.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/key_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/client/local/params_builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/api.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/handler.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/ini_module.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/credentials/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/_base/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/api.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/local/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/local/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/remote/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/remote/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/s3/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/s3/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/sql/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/sql/configurator.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/data/sql/store.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/_base/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/_base/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/_base/reader.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/api.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/factory.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/pandas/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/data/pandas/builder.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/stores/readers/query/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/__init__.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/enums.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/exceptions.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/file_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/generic_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/git_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/io_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/logger.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/store_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/types.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/digitalhub/utils/uri_utils.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/README.md +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/local-copy/README.md +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/local-copy/local_copy.sh +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/DBT.dockerfile +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/KFP.dockerfile +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/PY10.dockerfile +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/PY11.dockerfile +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/PY9.dockerfile +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/README.md +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/quick-docker-copy/build_containers.sh +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/spec_exporter/README.md +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/scripts/spec_exporter/exporter.sh +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/CRUD/test_artifacts.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/CRUD/test_dataitems.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/CRUD/test_models.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/imports/test_imports.py +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/artifact/artifact-http.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/artifact/artifact-local.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/artifact/artifact-s3.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/artifact/artifact-sql.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/dataitem/dataitem-table.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/dataitem/dataitem.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/model/model-huggingface.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/model/model-mlflow.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/model/model-sklearn.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/model/model.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/project.json +0 -0
- {digitalhub-0.14.0b1 → digitalhub-0.14.0b2}/test/local/instances/entities/secret.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: digitalhub
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.0b2
|
|
4
4
|
Summary: Python SDK for Digitalhub
|
|
5
5
|
Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk
|
|
6
6
|
Author-email: Fondazione Bruno Kessler <digitalhub@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
|
|
@@ -13,7 +13,7 @@ from digitalhub.entities._processors.context import context_processor
|
|
|
13
13
|
from digitalhub.entities.run.crud import list_runs
|
|
14
14
|
from digitalhub.entities.task.crud import delete_task, list_tasks
|
|
15
15
|
from digitalhub.entities.trigger.crud import list_triggers
|
|
16
|
-
from digitalhub.factory.
|
|
16
|
+
from digitalhub.factory.entity import entity_factory
|
|
17
17
|
from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError
|
|
18
18
|
|
|
19
19
|
if typing.TYPE_CHECKING:
|
|
@@ -109,7 +109,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
109
109
|
# Create a new object from dictionary.
|
|
110
110
|
# the form in which tasks are stored in function
|
|
111
111
|
# status
|
|
112
|
-
task_obj: Task =
|
|
112
|
+
task_obj: Task = entity_factory.build_entity_from_dict(task)
|
|
113
113
|
|
|
114
114
|
# Try to save it in backend to been able to use
|
|
115
115
|
# it for launching runs. In fact, tasks must be
|
|
@@ -149,7 +149,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
149
149
|
kwargs["kind"] = kind
|
|
150
150
|
|
|
151
151
|
# Create object instance
|
|
152
|
-
task: Task =
|
|
152
|
+
task: Task = entity_factory.build_entity_from_params(**kwargs)
|
|
153
153
|
task.save()
|
|
154
154
|
|
|
155
155
|
self._tasks[kind] = task
|
|
@@ -225,7 +225,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
225
225
|
kwargs["uuid"] = self._tasks[kind].id
|
|
226
226
|
|
|
227
227
|
# Update task
|
|
228
|
-
task: Task =
|
|
228
|
+
task: Task = entity_factory.build_entity_from_params(**kwargs)
|
|
229
229
|
task.save(update=True)
|
|
230
230
|
self._tasks[kind] = task
|
|
231
231
|
return task
|
|
@@ -361,10 +361,14 @@ class ExecutableEntity(VersionedEntity):
|
|
|
361
361
|
Examples
|
|
362
362
|
--------
|
|
363
363
|
Using entity key:
|
|
364
|
-
>>> obj = executable.get_run(
|
|
364
|
+
>>> obj = executable.get_run(
|
|
365
|
+
... "store://my-secret-key"
|
|
366
|
+
... )
|
|
365
367
|
|
|
366
368
|
Using entity ID:
|
|
367
|
-
>>> obj = executable.get_run(
|
|
369
|
+
>>> obj = executable.get_run(
|
|
370
|
+
... "123"
|
|
371
|
+
... )
|
|
368
372
|
"""
|
|
369
373
|
entities = self.list_runs(**kwargs)
|
|
370
374
|
for entity in entities:
|
|
@@ -425,13 +429,13 @@ class ExecutableEntity(VersionedEntity):
|
|
|
425
429
|
Run instance.
|
|
426
430
|
"""
|
|
427
431
|
# Get task
|
|
428
|
-
task_kind =
|
|
432
|
+
task_kind = entity_factory.get_task_kind_from_action(self.kind, action)
|
|
429
433
|
task = self._get_or_create_task(task_kind)
|
|
430
434
|
task_string = task._get_task_string()
|
|
431
435
|
|
|
432
436
|
# Get run validator for building trigger template
|
|
433
|
-
run_kind =
|
|
434
|
-
run_validator: SpecValidator =
|
|
437
|
+
run_kind = entity_factory.get_run_kind_from_action(self.kind, action)
|
|
438
|
+
run_validator: SpecValidator = entity_factory.get_spec_validator(run_kind)
|
|
435
439
|
# Override kwargs
|
|
436
440
|
kwargs["project"] = self.project
|
|
437
441
|
kwargs["kind"] = trigger_kind
|
|
@@ -441,7 +445,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
441
445
|
kwargs["template"] = run_validator(**kwargs).to_dict()
|
|
442
446
|
|
|
443
447
|
# Create object instance
|
|
444
|
-
trigger: Trigger =
|
|
448
|
+
trigger: Trigger = entity_factory.build_entity_from_params(**kwargs)
|
|
445
449
|
trigger.save()
|
|
446
450
|
return trigger
|
|
447
451
|
|
|
@@ -468,10 +472,14 @@ class ExecutableEntity(VersionedEntity):
|
|
|
468
472
|
Examples
|
|
469
473
|
--------
|
|
470
474
|
Using entity key:
|
|
471
|
-
>>> obj = executable.get_trigger(
|
|
475
|
+
>>> obj = executable.get_trigger(
|
|
476
|
+
... "store://my-trigger-key"
|
|
477
|
+
... )
|
|
472
478
|
|
|
473
479
|
Using entity ID:
|
|
474
|
-
>>> obj = executable.get_trigger(
|
|
480
|
+
>>> obj = executable.get_trigger(
|
|
481
|
+
... "123"
|
|
482
|
+
... )
|
|
475
483
|
"""
|
|
476
484
|
entities = self.list_triggers(**kwargs)
|
|
477
485
|
for entity in entities:
|
|
@@ -150,12 +150,16 @@ class MaterialEntity(VersionedEntity):
|
|
|
150
150
|
--------
|
|
151
151
|
Upload a single file:
|
|
152
152
|
|
|
153
|
-
>>> entity.spec.path =
|
|
154
|
-
>>> entity.upload(
|
|
153
|
+
>>> entity.spec.path = "s3://bucket/data.csv"
|
|
154
|
+
>>> entity.upload(
|
|
155
|
+
... "./data.csv"
|
|
156
|
+
... )
|
|
155
157
|
|
|
156
158
|
Upload a folder:
|
|
157
|
-
>>> entity.spec.path =
|
|
158
|
-
>>> entity.upload(
|
|
159
|
+
>>> entity.spec.path = "s3://bucket/data/"
|
|
160
|
+
>>> entity.upload(
|
|
161
|
+
... "./data"
|
|
162
|
+
... )
|
|
159
163
|
"""
|
|
160
164
|
# Get store and upload object
|
|
161
165
|
store = get_store(self.spec.path)
|
|
@@ -9,7 +9,7 @@ from warnings import warn
|
|
|
9
9
|
|
|
10
10
|
from digitalhub.context.api import delete_context
|
|
11
11
|
from digitalhub.entities._commons.enums import ApiCategories, BackendOperations
|
|
12
|
-
from digitalhub.factory.
|
|
12
|
+
from digitalhub.factory.entity import entity_factory
|
|
13
13
|
from digitalhub.stores.client.api import get_client
|
|
14
14
|
from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError, EntityNotExistsError
|
|
15
15
|
from digitalhub.utils.io_utils import read_yaml
|
|
@@ -100,10 +100,10 @@ class BaseEntityOperationsProcessor:
|
|
|
100
100
|
obj = _entity
|
|
101
101
|
else:
|
|
102
102
|
client = get_client(kwargs.get("local"))
|
|
103
|
-
obj =
|
|
103
|
+
obj = entity_factory.build_entity_from_params(**kwargs)
|
|
104
104
|
ent = self._create_base_entity(client, obj.ENTITY_TYPE, obj.to_dict())
|
|
105
105
|
ent["local"] = client.is_local()
|
|
106
|
-
return
|
|
106
|
+
return entity_factory.build_entity_from_dict(ent)
|
|
107
107
|
|
|
108
108
|
def _read_base_entity(
|
|
109
109
|
self,
|
|
@@ -172,7 +172,7 @@ class BaseEntityOperationsProcessor:
|
|
|
172
172
|
client = get_client(kwargs.pop("local", False))
|
|
173
173
|
obj = self._read_base_entity(client, entity_type, entity_name, **kwargs)
|
|
174
174
|
obj["local"] = client.is_local()
|
|
175
|
-
return
|
|
175
|
+
return entity_factory.build_entity_from_dict(obj)
|
|
176
176
|
|
|
177
177
|
def import_project_entity(
|
|
178
178
|
self,
|
|
@@ -207,7 +207,7 @@ class BaseEntityOperationsProcessor:
|
|
|
207
207
|
obj: dict = read_yaml(file)
|
|
208
208
|
obj["status"] = {}
|
|
209
209
|
obj["local"] = client.is_local()
|
|
210
|
-
ent: Project =
|
|
210
|
+
ent: Project = entity_factory.build_entity_from_dict(obj)
|
|
211
211
|
reset_id = kwargs.pop("reset_id", False)
|
|
212
212
|
|
|
213
213
|
try:
|
|
@@ -253,7 +253,7 @@ class BaseEntityOperationsProcessor:
|
|
|
253
253
|
client = get_client(kwargs.pop("local", False))
|
|
254
254
|
obj: dict = read_yaml(file)
|
|
255
255
|
obj["local"] = client.is_local()
|
|
256
|
-
ent: Project =
|
|
256
|
+
ent: Project = entity_factory.build_entity_from_dict(obj)
|
|
257
257
|
|
|
258
258
|
try:
|
|
259
259
|
self._update_base_entity(ent._client, ent.ENTITY_TYPE, ent.name, ent.to_dict())
|
|
@@ -328,7 +328,7 @@ class BaseEntityOperationsProcessor:
|
|
|
328
328
|
entities = []
|
|
329
329
|
for obj in objs:
|
|
330
330
|
obj["local"] = client.is_local()
|
|
331
|
-
ent =
|
|
331
|
+
ent = entity_factory.build_entity_from_dict(obj)
|
|
332
332
|
entities.append(ent)
|
|
333
333
|
return entities
|
|
334
334
|
|
|
@@ -405,7 +405,7 @@ class BaseEntityOperationsProcessor:
|
|
|
405
405
|
client = get_client(kwargs.pop("local", False))
|
|
406
406
|
obj = self._update_base_entity(client, entity_type, entity_name, entity_dict, **kwargs)
|
|
407
407
|
obj["local"] = client.is_local()
|
|
408
|
-
return
|
|
408
|
+
return entity_factory.build_entity_from_dict(obj)
|
|
409
409
|
|
|
410
410
|
def _delete_base_entity(
|
|
411
411
|
self,
|
|
@@ -15,7 +15,7 @@ from digitalhub.entities._processors.utils import (
|
|
|
15
15
|
get_context_from_project,
|
|
16
16
|
parse_identifier,
|
|
17
17
|
)
|
|
18
|
-
from digitalhub.factory.
|
|
18
|
+
from digitalhub.factory.entity import entity_factory
|
|
19
19
|
from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError, EntityNotExistsError
|
|
20
20
|
from digitalhub.utils.io_utils import read_yaml
|
|
21
21
|
from digitalhub.utils.types import SourcesOrListOfSources
|
|
@@ -108,9 +108,9 @@ class ContextEntityOperationsProcessor:
|
|
|
108
108
|
obj = _entity
|
|
109
109
|
else:
|
|
110
110
|
context = get_context_from_project(kwargs["project"])
|
|
111
|
-
obj: ContextEntity =
|
|
111
|
+
obj: ContextEntity = entity_factory.build_entity_from_params(**kwargs)
|
|
112
112
|
new_obj = self._create_context_entity(context, obj.ENTITY_TYPE, obj.to_dict())
|
|
113
|
-
return
|
|
113
|
+
return entity_factory.build_entity_from_dict(new_obj)
|
|
114
114
|
|
|
115
115
|
def log_material_entity(
|
|
116
116
|
self,
|
|
@@ -143,12 +143,12 @@ class ContextEntityOperationsProcessor:
|
|
|
143
143
|
"""
|
|
144
144
|
source: SourcesOrListOfSources = kwargs.pop("source")
|
|
145
145
|
context = get_context_from_project(kwargs["project"])
|
|
146
|
-
obj =
|
|
146
|
+
obj = entity_factory.build_entity_from_params(**kwargs)
|
|
147
147
|
if context.is_running:
|
|
148
148
|
obj.add_relationship(Relationship.PRODUCEDBY.value, context.get_run_ctx())
|
|
149
149
|
|
|
150
150
|
new_obj: MaterialEntity = self._create_context_entity(context, obj.ENTITY_TYPE, obj.to_dict())
|
|
151
|
-
new_obj =
|
|
151
|
+
new_obj = entity_factory.build_entity_from_dict(new_obj)
|
|
152
152
|
|
|
153
153
|
new_obj.status.state = State.UPLOADING.value
|
|
154
154
|
new_obj = self._update_material_entity(new_obj)
|
|
@@ -285,7 +285,7 @@ class ContextEntityOperationsProcessor:
|
|
|
285
285
|
entity_id=entity_id,
|
|
286
286
|
**kwargs,
|
|
287
287
|
)
|
|
288
|
-
entity =
|
|
288
|
+
entity = entity_factory.build_entity_from_dict(obj)
|
|
289
289
|
return self._post_process_get(entity)
|
|
290
290
|
|
|
291
291
|
def read_unversioned_entity(
|
|
@@ -382,14 +382,14 @@ class ContextEntityOperationsProcessor:
|
|
|
382
382
|
context = dict_obj["project"]
|
|
383
383
|
|
|
384
384
|
ctx = get_context_from_project(context)
|
|
385
|
-
obj =
|
|
385
|
+
obj = entity_factory.build_entity_from_dict(dict_obj)
|
|
386
386
|
if reset_id:
|
|
387
387
|
new_id = build_uuid()
|
|
388
388
|
obj.id = new_id
|
|
389
389
|
obj.metadata.version = new_id
|
|
390
390
|
try:
|
|
391
391
|
bck_obj = self._create_context_entity(ctx, obj.ENTITY_TYPE, obj.to_dict())
|
|
392
|
-
new_obj: ContextEntity =
|
|
392
|
+
new_obj: ContextEntity = entity_factory.build_entity_from_dict(bck_obj)
|
|
393
393
|
except EntityAlreadyExistsError:
|
|
394
394
|
raise EntityError(f"Entity {obj.name} already exists. If you want to update it, use load instead.")
|
|
395
395
|
return new_obj
|
|
@@ -451,7 +451,7 @@ class ContextEntityOperationsProcessor:
|
|
|
451
451
|
context = exec_dict["project"]
|
|
452
452
|
|
|
453
453
|
ctx = get_context_from_project(context)
|
|
454
|
-
obj: ExecutableEntity =
|
|
454
|
+
obj: ExecutableEntity = entity_factory.build_entity_from_dict(exec_dict)
|
|
455
455
|
|
|
456
456
|
if reset_id:
|
|
457
457
|
new_id = build_uuid()
|
|
@@ -460,7 +460,7 @@ class ContextEntityOperationsProcessor:
|
|
|
460
460
|
|
|
461
461
|
try:
|
|
462
462
|
bck_obj = self._create_context_entity(ctx, obj.ENTITY_TYPE, obj.to_dict())
|
|
463
|
-
new_obj: ExecutableEntity =
|
|
463
|
+
new_obj: ExecutableEntity = entity_factory.build_entity_from_dict(bck_obj)
|
|
464
464
|
except EntityAlreadyExistsError:
|
|
465
465
|
raise EntityError(f"Entity {obj.name} already exists. If you want to update it, use load instead.")
|
|
466
466
|
|
|
@@ -491,7 +491,7 @@ class ContextEntityOperationsProcessor:
|
|
|
491
491
|
"""
|
|
492
492
|
dict_obj: dict = read_yaml(file)
|
|
493
493
|
context = get_context_from_project(dict_obj["project"])
|
|
494
|
-
obj: ContextEntity =
|
|
494
|
+
obj: ContextEntity = entity_factory.build_entity_from_dict(dict_obj)
|
|
495
495
|
try:
|
|
496
496
|
self._update_context_entity(context, obj.ENTITY_TYPE, obj.id, obj.to_dict())
|
|
497
497
|
except EntityNotExistsError:
|
|
@@ -529,7 +529,7 @@ class ContextEntityOperationsProcessor:
|
|
|
529
529
|
tsk_dicts = []
|
|
530
530
|
|
|
531
531
|
context = get_context_from_project(exec_dict["project"])
|
|
532
|
-
obj: ExecutableEntity =
|
|
532
|
+
obj: ExecutableEntity = entity_factory.build_entity_from_dict(exec_dict)
|
|
533
533
|
|
|
534
534
|
try:
|
|
535
535
|
self._update_context_entity(context, obj.ENTITY_TYPE, obj.id, obj.to_dict())
|
|
@@ -631,7 +631,7 @@ class ContextEntityOperationsProcessor:
|
|
|
631
631
|
)
|
|
632
632
|
objects = []
|
|
633
633
|
for o in objs:
|
|
634
|
-
entity: ContextEntity =
|
|
634
|
+
entity: ContextEntity = entity_factory.build_entity_from_dict(o)
|
|
635
635
|
entity = self._post_process_get(entity)
|
|
636
636
|
objects.append(entity)
|
|
637
637
|
return objects
|
|
@@ -704,7 +704,7 @@ class ContextEntityOperationsProcessor:
|
|
|
704
704
|
objs = self._list_context_entities(context, entity_type, **kwargs)
|
|
705
705
|
objects = []
|
|
706
706
|
for o in objs:
|
|
707
|
-
entity: ContextEntity =
|
|
707
|
+
entity: ContextEntity = entity_factory.build_entity_from_dict(o)
|
|
708
708
|
entity = self._post_process_get(entity)
|
|
709
709
|
objects.append(entity)
|
|
710
710
|
return objects
|
|
@@ -819,7 +819,7 @@ class ContextEntityOperationsProcessor:
|
|
|
819
819
|
entity_dict,
|
|
820
820
|
**kwargs,
|
|
821
821
|
)
|
|
822
|
-
return
|
|
822
|
+
return entity_factory.build_entity_from_dict(obj)
|
|
823
823
|
|
|
824
824
|
def _delete_context_entity(
|
|
825
825
|
self,
|
|
@@ -9,7 +9,7 @@ import typing
|
|
|
9
9
|
from digitalhub.context.api import get_context
|
|
10
10
|
from digitalhub.entities._commons.enums import ApiCategories, BackendOperations, EntityTypes
|
|
11
11
|
from digitalhub.entities._commons.utils import get_project_from_key, is_valid_key, parse_entity_key
|
|
12
|
-
from digitalhub.factory.
|
|
12
|
+
from digitalhub.factory.entity import entity_factory
|
|
13
13
|
from digitalhub.stores.client.api import get_client
|
|
14
14
|
from digitalhub.utils.exceptions import ContextError, EntityError, EntityNotExistsError
|
|
15
15
|
|
|
@@ -161,7 +161,7 @@ def get_context_from_remote(
|
|
|
161
161
|
try:
|
|
162
162
|
client = get_client()
|
|
163
163
|
obj = _read_base_entity(client, EntityTypes.PROJECT.value, project)
|
|
164
|
-
|
|
164
|
+
entity_factory.build_entity_from_dict(obj)
|
|
165
165
|
return get_context(project)
|
|
166
166
|
except EntityNotExistsError:
|
|
167
167
|
raise ContextError(f"Project '{project}' not found.")
|
|
@@ -156,7 +156,9 @@ def get_artifact(
|
|
|
156
156
|
Examples
|
|
157
157
|
--------
|
|
158
158
|
Using entity key:
|
|
159
|
-
>>> obj = get_artifact(
|
|
159
|
+
>>> obj = get_artifact(
|
|
160
|
+
... "store://my-artifact-key"
|
|
161
|
+
... )
|
|
160
162
|
|
|
161
163
|
Using entity name:
|
|
162
164
|
>>> obj = get_artifact("my-artifact-name"
|
|
@@ -197,7 +199,9 @@ def get_artifact_versions(
|
|
|
197
199
|
Examples
|
|
198
200
|
--------
|
|
199
201
|
Using entity key:
|
|
200
|
-
>>> obj = get_artifact_versions(
|
|
202
|
+
>>> obj = get_artifact_versions(
|
|
203
|
+
... "store://my-artifact-key"
|
|
204
|
+
... )
|
|
201
205
|
|
|
202
206
|
Using entity name:
|
|
203
207
|
>>> obj = get_artifact_versions("my-artifact-name"
|
|
@@ -229,7 +233,9 @@ def list_artifacts(project: str, **kwargs) -> list[Artifact]:
|
|
|
229
233
|
|
|
230
234
|
Examples
|
|
231
235
|
--------
|
|
232
|
-
>>> objs = list_artifacts(
|
|
236
|
+
>>> objs = list_artifacts(
|
|
237
|
+
... project="my-project"
|
|
238
|
+
... )
|
|
233
239
|
"""
|
|
234
240
|
return context_processor.list_context_entities(
|
|
235
241
|
project=project,
|
|
@@ -265,7 +271,9 @@ def import_artifact(
|
|
|
265
271
|
|
|
266
272
|
Examples
|
|
267
273
|
--------
|
|
268
|
-
>>> obj = import_artifact(
|
|
274
|
+
>>> obj = import_artifact(
|
|
275
|
+
... "my-artifact.yaml"
|
|
276
|
+
... )
|
|
269
277
|
"""
|
|
270
278
|
return context_processor.import_context_entity(
|
|
271
279
|
file,
|
|
@@ -291,7 +299,9 @@ def load_artifact(file: str) -> Artifact:
|
|
|
291
299
|
|
|
292
300
|
Examples
|
|
293
301
|
--------
|
|
294
|
-
>>> obj = load_artifact(
|
|
302
|
+
>>> obj = load_artifact(
|
|
303
|
+
... "my-artifact.yaml"
|
|
304
|
+
... )
|
|
295
305
|
"""
|
|
296
306
|
return context_processor.load_context_entity(file)
|
|
297
307
|
|
|
@@ -312,7 +322,11 @@ def update_artifact(entity: Artifact) -> Artifact:
|
|
|
312
322
|
|
|
313
323
|
Examples
|
|
314
324
|
--------
|
|
315
|
-
>>> obj =
|
|
325
|
+
>>> obj = (
|
|
326
|
+
... update_artifact(
|
|
327
|
+
... obj
|
|
328
|
+
... )
|
|
329
|
+
... )
|
|
316
330
|
"""
|
|
317
331
|
return context_processor.update_context_entity(
|
|
318
332
|
project=entity.project,
|
|
@@ -356,7 +370,9 @@ def delete_artifact(
|
|
|
356
370
|
Examples
|
|
357
371
|
--------
|
|
358
372
|
If delete_all_versions is False:
|
|
359
|
-
>>> delete_artifact(
|
|
373
|
+
>>> delete_artifact(
|
|
374
|
+
... "store://my-artifact-key"
|
|
375
|
+
... )
|
|
360
376
|
|
|
361
377
|
Otherwise:
|
|
362
378
|
>>> delete_artifact("my-artifact-name",
|
|
@@ -87,6 +87,7 @@ def log_dataitem(
|
|
|
87
87
|
data: Any | None = None,
|
|
88
88
|
path: str | None = None,
|
|
89
89
|
file_format: str | None = None,
|
|
90
|
+
read_df_params: dict | None = None,
|
|
90
91
|
engine: str | None = "pandas",
|
|
91
92
|
**kwargs,
|
|
92
93
|
) -> Dataitem:
|
|
@@ -108,7 +109,9 @@ def log_dataitem(
|
|
|
108
109
|
path : str
|
|
109
110
|
Destination path of the dataitem. If not provided, it's generated.
|
|
110
111
|
file_format : str
|
|
111
|
-
Extension of the file.
|
|
112
|
+
Extension of the file source (parquet, csv, json, xlsx, txt).
|
|
113
|
+
read_df_params : dict
|
|
114
|
+
Parameters to pass to the dataframe reader.
|
|
112
115
|
engine : str
|
|
113
116
|
Dataframe engine (pandas, polars, etc.).
|
|
114
117
|
**kwargs : dict
|
|
@@ -131,7 +134,7 @@ def log_dataitem(
|
|
|
131
134
|
cleanup = True
|
|
132
135
|
|
|
133
136
|
source = eval_source(source, data, kind, name, project)
|
|
134
|
-
data = eval_data(kind, source, data, file_format, engine)
|
|
137
|
+
data = eval_data(kind, source, data, file_format, read_df_params, engine)
|
|
135
138
|
kwargs = process_kwargs(
|
|
136
139
|
project,
|
|
137
140
|
name,
|
|
@@ -182,7 +185,9 @@ def get_dataitem(
|
|
|
182
185
|
Examples
|
|
183
186
|
--------
|
|
184
187
|
Using entity key:
|
|
185
|
-
>>> obj = get_dataitem(
|
|
188
|
+
>>> obj = get_dataitem(
|
|
189
|
+
... "store://my-dataitem-key"
|
|
190
|
+
... )
|
|
186
191
|
|
|
187
192
|
Using entity name:
|
|
188
193
|
>>> obj = get_dataitem("my-dataitem-name"
|
|
@@ -223,7 +228,9 @@ def get_dataitem_versions(
|
|
|
223
228
|
Examples
|
|
224
229
|
--------
|
|
225
230
|
Using entity key:
|
|
226
|
-
>>> objs = get_dataitem_versions(
|
|
231
|
+
>>> objs = get_dataitem_versions(
|
|
232
|
+
... "store://my-dataitem-key"
|
|
233
|
+
... )
|
|
227
234
|
|
|
228
235
|
Using entity name:
|
|
229
236
|
>>> objs = get_dataitem_versions("my-dataitem-name",
|
|
@@ -255,7 +262,9 @@ def list_dataitems(project: str, **kwargs) -> list[Dataitem]:
|
|
|
255
262
|
|
|
256
263
|
Examples
|
|
257
264
|
--------
|
|
258
|
-
>>> objs = list_dataitems(
|
|
265
|
+
>>> objs = list_dataitems(
|
|
266
|
+
... project="my-project"
|
|
267
|
+
... )
|
|
259
268
|
"""
|
|
260
269
|
return context_processor.list_context_entities(
|
|
261
270
|
project=project,
|
|
@@ -291,7 +300,9 @@ def import_dataitem(
|
|
|
291
300
|
|
|
292
301
|
Examples
|
|
293
302
|
--------
|
|
294
|
-
>>> obj = import_dataitem(
|
|
303
|
+
>>> obj = import_dataitem(
|
|
304
|
+
... "my-dataitem.yaml"
|
|
305
|
+
... )
|
|
295
306
|
"""
|
|
296
307
|
return context_processor.import_context_entity(
|
|
297
308
|
file,
|
|
@@ -317,7 +328,9 @@ def load_dataitem(file: str) -> Dataitem:
|
|
|
317
328
|
|
|
318
329
|
Examples
|
|
319
330
|
--------
|
|
320
|
-
>>> obj = load_dataitem(
|
|
331
|
+
>>> obj = load_dataitem(
|
|
332
|
+
... "my-dataitem.yaml"
|
|
333
|
+
... )
|
|
321
334
|
"""
|
|
322
335
|
return context_processor.load_context_entity(file)
|
|
323
336
|
|
|
@@ -338,7 +351,11 @@ def update_dataitem(entity: Dataitem) -> Dataitem:
|
|
|
338
351
|
|
|
339
352
|
Examples
|
|
340
353
|
--------
|
|
341
|
-
>>> obj =
|
|
354
|
+
>>> obj = (
|
|
355
|
+
... update_dataitem(
|
|
356
|
+
... obj
|
|
357
|
+
... )
|
|
358
|
+
... )
|
|
342
359
|
"""
|
|
343
360
|
return context_processor.update_context_entity(
|
|
344
361
|
project=entity.project,
|
|
@@ -382,7 +399,9 @@ def delete_dataitem(
|
|
|
382
399
|
Examples
|
|
383
400
|
--------
|
|
384
401
|
If delete_all_versions is False:
|
|
385
|
-
>>> obj = delete_dataitem(
|
|
402
|
+
>>> obj = delete_dataitem(
|
|
403
|
+
... "store://my-dataitem-key"
|
|
404
|
+
... )
|
|
386
405
|
|
|
387
406
|
Otherwise:
|
|
388
407
|
>>> obj = delete_dataitem("my-dataitem-name",
|
|
@@ -115,13 +115,17 @@ class DataitemTable(Dataitem):
|
|
|
115
115
|
Write DataFrame as parquet/csv/table into dataitem spec.path.
|
|
116
116
|
keyword arguments will be passed to the DataFrame reader function such as
|
|
117
117
|
pandas's to_csv or to_parquet.
|
|
118
|
+
Note that by default the index is dropped when writing the dataframe. To
|
|
119
|
+
keep the index, you can pass index=True as a keyword argument.
|
|
120
|
+
If the dataitem path is a SQL scheme, the dataframe will be written to the
|
|
121
|
+
table specified in the path (sql://<database_name>(/<schema_name>)/<table_name>).
|
|
118
122
|
|
|
119
123
|
Parameters
|
|
120
124
|
----------
|
|
121
125
|
df : Any
|
|
122
126
|
DataFrame to write.
|
|
123
127
|
extension : str
|
|
124
|
-
Extension of the file.
|
|
128
|
+
Extension of the file (supported parquet and csv).
|
|
125
129
|
**kwargs : dict
|
|
126
130
|
Keyword arguments passed to the write_df function.
|
|
127
131
|
|
|
@@ -129,6 +133,29 @@ class DataitemTable(Dataitem):
|
|
|
129
133
|
-------
|
|
130
134
|
str
|
|
131
135
|
Path to the written dataframe.
|
|
136
|
+
|
|
137
|
+
Examples
|
|
138
|
+
--------
|
|
139
|
+
>>> import digitalhub as dh
|
|
140
|
+
>>> import pandas as pd
|
|
141
|
+
>>>
|
|
142
|
+
>>> p = dh.get_project(
|
|
143
|
+
... "my_project"
|
|
144
|
+
... )
|
|
145
|
+
>>> df = pd.read_df(
|
|
146
|
+
... "data/my_data.csv"
|
|
147
|
+
... )
|
|
148
|
+
>>> di = p.new_dataitem(
|
|
149
|
+
... name="my_dataitem",
|
|
150
|
+
... kind="table",
|
|
151
|
+
... path="s3://my-bucket/my-data.parquet",
|
|
152
|
+
... )
|
|
153
|
+
>>> di.write_df(
|
|
154
|
+
... df,
|
|
155
|
+
... extension="parquet",
|
|
156
|
+
... index=True,
|
|
157
|
+
... )
|
|
158
|
+
's3://my-bucket/my-data.parquet'
|
|
132
159
|
"""
|
|
133
160
|
return get_store(self.spec.path).write_df(
|
|
134
161
|
df,
|
|
@@ -89,6 +89,7 @@ def eval_data(
|
|
|
89
89
|
source: SourcesOrListOfSources,
|
|
90
90
|
data: Any | None = None,
|
|
91
91
|
file_format: str | None = None,
|
|
92
|
+
read_df_params: dict | None = None,
|
|
92
93
|
engine: str | None = None,
|
|
93
94
|
) -> Any:
|
|
94
95
|
"""
|
|
@@ -121,10 +122,13 @@ def eval_data(
|
|
|
121
122
|
"""
|
|
122
123
|
if kind == EntityKinds.DATAITEM_TABLE.value:
|
|
123
124
|
if data is None:
|
|
125
|
+
if read_df_params is None:
|
|
126
|
+
read_df_params = {}
|
|
124
127
|
return get_store(source).read_df(
|
|
125
128
|
source,
|
|
126
129
|
file_format=file_format,
|
|
127
130
|
engine=engine,
|
|
131
|
+
**read_df_params,
|
|
128
132
|
)
|
|
129
133
|
return data
|
|
130
134
|
|
|
@@ -9,7 +9,7 @@ from concurrent.futures import ThreadPoolExecutor
|
|
|
9
9
|
|
|
10
10
|
from digitalhub.entities._base.executable.entity import ExecutableEntity
|
|
11
11
|
from digitalhub.entities._commons.enums import EntityTypes, Relationship
|
|
12
|
-
from digitalhub.factory.
|
|
12
|
+
from digitalhub.factory.entity import entity_factory
|
|
13
13
|
from digitalhub.utils.exceptions import BackendError
|
|
14
14
|
|
|
15
15
|
if typing.TYPE_CHECKING:
|
|
@@ -76,8 +76,8 @@ class Function(ExecutableEntity):
|
|
|
76
76
|
Run instance.
|
|
77
77
|
"""
|
|
78
78
|
# Get task and run kind
|
|
79
|
-
task_kind =
|
|
80
|
-
run_kind =
|
|
79
|
+
task_kind = entity_factory.get_task_kind_from_action(self.kind, action)
|
|
80
|
+
run_kind = entity_factory.get_run_kind_from_action(self.kind, action)
|
|
81
81
|
|
|
82
82
|
# Create or update new task
|
|
83
83
|
task = self._get_or_create_task(task_kind)
|