digitalhub 0.8.0b1__tar.gz → 0.8.0b3__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.8.0b1 → digitalhub-0.8.0b3}/PKG-INFO +3 -2
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/README.md +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/__init__.py +2 -2
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/client/builder.py +3 -3
- digitalhub-0.8.0b1/digitalhub/client/objects/dhcore.py → digitalhub-0.8.0b3/digitalhub/client/dhcore/client.py +3 -48
- digitalhub-0.8.0b3/digitalhub/client/dhcore/env.py +21 -0
- digitalhub-0.8.0b3/digitalhub/client/dhcore/models.py +46 -0
- digitalhub-0.8.0b1/digitalhub/utils/env_utils.py → digitalhub-0.8.0b3/digitalhub/client/dhcore/utils.py +1 -13
- digitalhub-0.8.0b1/digitalhub/client/objects/local.py → digitalhub-0.8.0b3/digitalhub/client/local/client.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/context/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/context/context.py +1 -1
- digitalhub-0.8.0b1/digitalhub/datastores/objects/base.py → digitalhub-0.8.0b3/digitalhub/datastores/_base/datastore.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/datastores/builder.py +6 -6
- digitalhub-0.8.0b1/digitalhub/datastores/objects/local.py → digitalhub-0.8.0b3/digitalhub/datastores/local/datastore.py +1 -1
- digitalhub-0.8.0b1/digitalhub/datastores/objects/remote.py → digitalhub-0.8.0b3/digitalhub/datastores/remote/datastore.py +1 -1
- digitalhub-0.8.0b1/digitalhub/datastores/objects/s3.py → digitalhub-0.8.0b3/digitalhub/datastores/s3/datastore.py +1 -1
- digitalhub-0.8.0b1/digitalhub/datastores/objects/sql.py → digitalhub-0.8.0b3/digitalhub/datastores/sql/datastore.py +1 -1
- digitalhub-0.8.0b1/digitalhub/entities/_base/base.py → digitalhub-0.8.0b3/digitalhub/entities/_base/_base/entity.py +1 -1
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/context.py → digitalhub-0.8.0b3/digitalhub/entities/_base/context/entity.py +4 -4
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_base/crud.py +3 -3
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/base.py → digitalhub-0.8.0b3/digitalhub/entities/_base/entity/entity.py +6 -6
- {digitalhub-0.8.0b1/digitalhub/entities/_base → digitalhub-0.8.0b3/digitalhub/entities/_base/entity}/metadata.py +2 -2
- digitalhub-0.8.0b1/digitalhub/entities/_base/spec/base.py → digitalhub-0.8.0b3/digitalhub/entities/_base/entity/spec.py +11 -11
- digitalhub-0.8.0b1/digitalhub/entities/_base/status/base.py → digitalhub-0.8.0b3/digitalhub/entities/_base/entity/status.py +2 -2
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/executable.py → digitalhub-0.8.0b3/digitalhub/entities/_base/executable/entity.py +55 -31
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/material.py → digitalhub-0.8.0b3/digitalhub/entities/_base/material/entity.py +4 -4
- digitalhub-0.8.0b1/digitalhub/entities/_base/spec/material.py → digitalhub-0.8.0b3/digitalhub/entities/_base/material/spec.py +3 -3
- digitalhub-0.8.0b1/digitalhub/entities/_base/status/material.py → digitalhub-0.8.0b3/digitalhub/entities/_base/material/status.py +1 -1
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/unversioned.py → digitalhub-0.8.0b3/digitalhub/entities/_base/unversioned/entity.py +4 -4
- digitalhub-0.8.0b1/digitalhub/entities/_base/entity/versioned.py → digitalhub-0.8.0b3/digitalhub/entities/_base/versioned/entity.py +4 -4
- digitalhub-0.8.0b3/digitalhub/entities/_builders/entity.py +148 -0
- digitalhub-0.8.0b3/digitalhub/entities/_builders/factory.py +44 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_builders/metadata.py +2 -11
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_builders/spec.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_builders/status.py +2 -2
- digitalhub-0.8.0b1/digitalhub/entities/artifact/entity/_base.py → digitalhub-0.8.0b3/digitalhub/entities/artifact/_base/entity.py +5 -5
- digitalhub-0.8.0b3/digitalhub/entities/artifact/_base/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/artifact/_base/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/artifact/artifact/entity.py +32 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/artifact}/artifact/spec.py +4 -16
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/artifact}/artifact/status.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/artifact/builder.py +2 -2
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/artifact/crud.py +3 -3
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/entity/_base.py → digitalhub-0.8.0b3/digitalhub/entities/dataitem/_base/entity.py +5 -5
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/_base/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/_base/status.py +20 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/dataitem/builder.py +4 -4
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/dataitem/crud.py +7 -4
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/dataitem/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/dataitem/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/dataitem/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/iceberg/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/iceberg/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/iceberg/status.py +9 -0
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/entity/table.py → digitalhub-0.8.0b3/digitalhub/entities/dataitem/table/entity.py +24 -3
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/table/spec.py +25 -0
- digitalhub-0.8.0b3/digitalhub/entities/dataitem/table/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/function/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/function → digitalhub-0.8.0b3/digitalhub/entities/function/_base}/entity.py +6 -6
- {digitalhub-0.8.0b1/digitalhub/entities/function → digitalhub-0.8.0b3/digitalhub/entities/function/_base}/models.py +1 -1
- digitalhub-0.8.0b3/digitalhub/entities/function/_base/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/function/_base/status.py +9 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/function/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/function/crud.py +2 -2
- digitalhub-0.8.0b3/digitalhub/entities/model/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/_base/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/entities/model/entity/_base.py → digitalhub-0.8.0b3/digitalhub/entities/model/_base/entity.py +5 -5
- digitalhub-0.8.0b3/digitalhub/entities/model/_base/spec.py +49 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/_base/status.py +9 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/model/builder.py +5 -5
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/model/crud.py +3 -3
- digitalhub-0.8.0b3/digitalhub/entities/model/huggingface/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/huggingface/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/huggingface/spec.py +36 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/huggingface/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/mlflow/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/mlflow/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/mlflow/spec.py +44 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/mlflow/status.py +9 -0
- digitalhub-0.8.0b1/digitalhub/entities/model/entity/mlflow.py → digitalhub-0.8.0b3/digitalhub/entities/model/mlflow/utils.py +1 -10
- digitalhub-0.8.0b3/digitalhub/entities/model/model/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/model/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/model/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/model/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/sklearn/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/sklearn/entity.py +32 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/sklearn/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/model/sklearn/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/project/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/project/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/project/crud.py +2 -2
- digitalhub-0.8.0b3/digitalhub/entities/project/project/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/project}/project/entity.py +12 -12
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/project}/project/spec.py +4 -4
- digitalhub-0.8.0b3/digitalhub/entities/project/project/status.py +9 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/registries.py +6 -6
- digitalhub-0.8.0b3/digitalhub/entities/run/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/run/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/run → digitalhub-0.8.0b3/digitalhub/entities/run/_base}/entity.py +7 -7
- {digitalhub-0.8.0b1/digitalhub/entities/run → digitalhub-0.8.0b3/digitalhub/entities/run/_base}/spec.py +8 -8
- {digitalhub-0.8.0b1/digitalhub/entities/run → digitalhub-0.8.0b3/digitalhub/entities/run/_base}/status.py +9 -9
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/run/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/run/crud.py +2 -2
- digitalhub-0.8.0b3/digitalhub/entities/secret/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/secret/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/secret/crud.py +11 -3
- digitalhub-0.8.0b3/digitalhub/entities/secret/secret/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/secret}/secret/entity.py +7 -6
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/secret}/secret/spec.py +4 -4
- digitalhub-0.8.0b3/digitalhub/entities/secret/secret/status.py +9 -0
- digitalhub-0.8.0b3/digitalhub/entities/task/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/task/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/task → digitalhub-0.8.0b3/digitalhub/entities/task/_base}/entity.py +6 -6
- {digitalhub-0.8.0b1/digitalhub/entities/task → digitalhub-0.8.0b3/digitalhub/entities/task/_base}/models.py +9 -0
- {digitalhub-0.8.0b1/digitalhub/entities/task → digitalhub-0.8.0b3/digitalhub/entities/task/_base}/spec.py +9 -7
- digitalhub-0.8.0b3/digitalhub/entities/task/_base/status.py +9 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/task/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/task/crud.py +2 -2
- digitalhub-0.8.0b3/digitalhub/entities/utils/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/utils}/utils.py +2 -2
- digitalhub-0.8.0b3/digitalhub/entities/workflow/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/entities/workflow/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/workflow → digitalhub-0.8.0b3/digitalhub/entities/workflow/_base}/entity.py +6 -6
- digitalhub-0.8.0b3/digitalhub/entities/workflow/_base/spec.py +15 -0
- digitalhub-0.8.0b3/digitalhub/entities/workflow/_base/status.py +9 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/workflow/builder.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/workflow/crud.py +2 -2
- digitalhub-0.8.0b3/digitalhub/readers/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/readers/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/readers/builder.py +1 -1
- digitalhub-0.8.0b3/digitalhub/readers/pandas/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/readers/objects/pandas.py → digitalhub-0.8.0b3/digitalhub/readers/pandas/readers.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/readers/registry.py +1 -1
- digitalhub-0.8.0b3/digitalhub/registry/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/registry/utils.py +5 -4
- digitalhub-0.8.0b3/digitalhub/runtimes/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/stores/__init__.py +0 -0
- digitalhub-0.8.0b3/digitalhub/stores/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/stores/builder.py +6 -6
- digitalhub-0.8.0b3/digitalhub/stores/local/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/stores/objects/local.py → digitalhub-0.8.0b3/digitalhub/stores/local/store.py +1 -1
- digitalhub-0.8.0b3/digitalhub/stores/remote/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/stores/objects/remote.py → digitalhub-0.8.0b3/digitalhub/stores/remote/store.py +1 -1
- digitalhub-0.8.0b3/digitalhub/stores/s3/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/stores/objects/s3.py → digitalhub-0.8.0b3/digitalhub/stores/s3/store.py +1 -1
- digitalhub-0.8.0b3/digitalhub/stores/sql/__init__.py +0 -0
- digitalhub-0.8.0b1/digitalhub/stores/objects/sql.py → digitalhub-0.8.0b3/digitalhub/stores/sql/store.py +1 -1
- digitalhub-0.8.0b3/digitalhub/utils/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/generic_utils.py +18 -42
- digitalhub-0.8.0b3/digitalhub/utils/s3_utils.py +58 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub.egg-info/PKG-INFO +3 -2
- digitalhub-0.8.0b3/digitalhub.egg-info/SOURCES.txt +217 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub.egg-info/requires.txt +1 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub.egg-info/top_level.txt +1 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/pyproject.toml +3 -2
- digitalhub-0.8.0b3/test/local/CRUD/test_artifacts.py +96 -0
- digitalhub-0.8.0b3/test/local/CRUD/test_dataitems.py +96 -0
- digitalhub-0.8.0b3/test/local/CRUD/test_models.py +95 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/test/test_crud_functions.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/test/test_crud_runs.py +1 -1
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/test/test_crud_tasks.py +1 -1
- digitalhub-0.8.0b1/digitalhub/entities/artifact/entity/artifact.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/entity/dataitem.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/entity/iceberg.py +0 -7
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/spec.py +0 -61
- digitalhub-0.8.0b1/digitalhub/entities/dataitem/status.py +0 -38
- digitalhub-0.8.0b1/digitalhub/entities/function/spec.py +0 -81
- digitalhub-0.8.0b1/digitalhub/entities/function/status.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/model/entity/huggingface.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/model/entity/model.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/model/entity/sklearn.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/model/spec.py +0 -146
- digitalhub-0.8.0b1/digitalhub/entities/model/status.py +0 -33
- digitalhub-0.8.0b1/digitalhub/entities/project/status.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/secret/status.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/task/status.py +0 -9
- digitalhub-0.8.0b1/digitalhub/entities/workflow/spec.py +0 -15
- digitalhub-0.8.0b1/digitalhub/entities/workflow/status.py +0 -9
- digitalhub-0.8.0b1/digitalhub.egg-info/SOURCES.txt +0 -164
- digitalhub-0.8.0b1/test/test_crud_artifacts.py +0 -96
- digitalhub-0.8.0b1/test/test_crud_dataitems.py +0 -96
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/LICENSE.txt +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/client/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/client/objects → digitalhub-0.8.0b3/digitalhub/client/_base}/__init__.py +0 -0
- /digitalhub-0.8.0b1/digitalhub/client/objects/base.py → /digitalhub-0.8.0b3/digitalhub/client/_base/client.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/context → digitalhub-0.8.0b3/digitalhub/client/dhcore}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/datastores → digitalhub-0.8.0b3/digitalhub/client/local}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/datastores/objects → digitalhub-0.8.0b3/digitalhub/context}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/datastores}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/datastores}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_base/entity → digitalhub-0.8.0b3/digitalhub/datastores/local}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_base/spec → digitalhub-0.8.0b3/digitalhub/datastores/remote}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_base/status → digitalhub-0.8.0b3/digitalhub/datastores/s3}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_builders → digitalhub-0.8.0b3/digitalhub/datastores/sql}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/artifact → digitalhub-0.8.0b3/digitalhub/entities}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/artifact/entity → digitalhub-0.8.0b3/digitalhub/entities/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/dataitem → digitalhub-0.8.0b3/digitalhub/entities/_base/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/dataitem/entity → digitalhub-0.8.0b3/digitalhub/entities/_base/context}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/function → digitalhub-0.8.0b3/digitalhub/entities/_base/entity}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/model → digitalhub-0.8.0b3/digitalhub/entities/_base/executable}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/model/entity → digitalhub-0.8.0b3/digitalhub/entities/_base/material}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/project → digitalhub-0.8.0b3/digitalhub/entities/_base/unversioned}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/run → digitalhub-0.8.0b3/digitalhub/entities/_base/versioned}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/secret → digitalhub-0.8.0b3/digitalhub/entities/_builders}/__init__.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_builders/name.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/entities/_builders/uuid.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/task → digitalhub-0.8.0b3/digitalhub/entities/artifact}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/workflow → digitalhub-0.8.0b3/digitalhub/entities/artifact/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/readers → digitalhub-0.8.0b3/digitalhub/entities/artifact/artifact}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/readers/objects → digitalhub-0.8.0b3/digitalhub/entities/dataitem}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/registry → digitalhub-0.8.0b3/digitalhub/entities/dataitem/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/runtimes → digitalhub-0.8.0b3/digitalhub/entities/dataitem/dataitem}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/stores → digitalhub-0.8.0b3/digitalhub/entities/dataitem/iceberg}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/stores/objects → digitalhub-0.8.0b3/digitalhub/entities/dataitem/table}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/dataitem → digitalhub-0.8.0b3/digitalhub/entities/dataitem/table}/models.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/utils → digitalhub-0.8.0b3/digitalhub/entities/function}/__init__.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/model → digitalhub-0.8.0b3/digitalhub/entities/model/mlflow}/models.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_base → digitalhub-0.8.0b3/digitalhub/entities/utils}/api.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities → digitalhub-0.8.0b3/digitalhub/entities/utils}/entity_types.py +0 -0
- {digitalhub-0.8.0b1/digitalhub/entities/_base → digitalhub-0.8.0b3/digitalhub/entities/utils}/state.py +0 -0
- /digitalhub-0.8.0b1/digitalhub/readers/objects/base.py → /digitalhub-0.8.0b3/digitalhub/readers/_base/readers.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/registry/models.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/registry/registry.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/runtimes/base.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/runtimes/builder.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/runtimes/kind_registry.py +0 -0
- /digitalhub-0.8.0b1/digitalhub/stores/objects/base.py → /digitalhub-0.8.0b3/digitalhub/stores/_base/store.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/data_utils.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/exceptions.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/file_utils.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/git_utils.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/io_utils.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/logger.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub/utils/uri_utils.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/digitalhub.egg-info/dependency_links.txt +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/setup.cfg +0 -0
- {digitalhub-0.8.0b1/test → digitalhub-0.8.0b3/test/local/imports}/test_imports.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/test/testkfp.py +0 -0
- {digitalhub-0.8.0b1 → digitalhub-0.8.0b3}/test/testkfp_pipeline.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: digitalhub
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.0b3
|
|
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
|
|
@@ -239,6 +239,7 @@ Requires-Dist: PyYAML
|
|
|
239
239
|
Requires-Dist: python-dotenv
|
|
240
240
|
Requires-Dist: GitPython>=3
|
|
241
241
|
Requires-Dist: psycopg2-binary
|
|
242
|
+
Requires-Dist: python-slugify
|
|
242
243
|
Provides-Extra: full
|
|
243
244
|
Requires-Dist: pandas<2.2,>=1.2; extra == "full"
|
|
244
245
|
Requires-Dist: mlflow; extra == "full"
|
|
@@ -262,4 +263,4 @@ Requires-Dist: numpydoc>=1.6; extra == "docs"
|
|
|
262
263
|
The Digitalhub SDK library is used to manage entities and executions in Digitalhub from Python.
|
|
263
264
|
It comes with a suite of tools to help you manage your projects and executions. It exposes CRUD methods to create, read, update and delete entities, and objects methods to excute functions or workflows, collect or store execution results and data.
|
|
264
265
|
|
|
265
|
-
A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/docs/)
|
|
266
|
+
A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/sdk-docs/).
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
The Digitalhub SDK library is used to manage entities and executions in Digitalhub from Python.
|
|
4
4
|
It comes with a suite of tools to help you manage your projects and executions. It exposes CRUD methods to create, read, update and delete entities, and objects methods to excute functions or workflows, collect or store execution results and data.
|
|
5
5
|
|
|
6
|
-
A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/docs/)
|
|
6
|
+
A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/sdk-docs/).
|
|
@@ -68,13 +68,13 @@ from digitalhub.entities.workflow.crud import (
|
|
|
68
68
|
)
|
|
69
69
|
|
|
70
70
|
try:
|
|
71
|
-
from digitalhub.entities.model.
|
|
71
|
+
from digitalhub.entities.model.mlflow.utils import from_mlflow_run
|
|
72
72
|
except ImportError:
|
|
73
73
|
...
|
|
74
74
|
|
|
75
|
+
from digitalhub.client.dhcore.utils import refresh_token, set_dhcore_env
|
|
75
76
|
from digitalhub.registry.utils import register_entities, register_runtimes_entities
|
|
76
77
|
from digitalhub.stores.builder import set_store
|
|
77
|
-
from digitalhub.utils.env_utils import refresh_token, set_dhcore_env
|
|
78
78
|
|
|
79
79
|
# Register entities into registry
|
|
80
80
|
register_entities()
|
|
@@ -2,11 +2,11 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
|
-
from digitalhub.client.
|
|
6
|
-
from digitalhub.client.
|
|
5
|
+
from digitalhub.client.dhcore.client import ClientDHCore
|
|
6
|
+
from digitalhub.client.local.client import ClientLocal
|
|
7
7
|
|
|
8
8
|
if typing.TYPE_CHECKING:
|
|
9
|
-
from digitalhub.client.
|
|
9
|
+
from digitalhub.client._base.client import Client
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class ClientBuilder:
|
|
@@ -5,11 +5,12 @@ import typing
|
|
|
5
5
|
from urllib.parse import urlparse
|
|
6
6
|
|
|
7
7
|
from dotenv import load_dotenv, set_key
|
|
8
|
-
from pydantic import BaseModel
|
|
9
8
|
from requests import request
|
|
10
9
|
from requests.exceptions import HTTPError, JSONDecodeError, RequestException
|
|
11
10
|
|
|
12
|
-
from digitalhub.client.
|
|
11
|
+
from digitalhub.client._base.client import Client
|
|
12
|
+
from digitalhub.client.dhcore.env import ENV_FILE, FALLBACK_USER, MAX_API_LEVEL, MIN_API_LEVEL
|
|
13
|
+
from digitalhub.client.dhcore.models import BasicAuth, OAuth2TokenAuth
|
|
13
14
|
from digitalhub.utils.exceptions import (
|
|
14
15
|
BackendError,
|
|
15
16
|
BadRequestError,
|
|
@@ -24,52 +25,6 @@ if typing.TYPE_CHECKING:
|
|
|
24
25
|
from requests import Response
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
# Use env user as fallback in the API calls
|
|
28
|
-
try:
|
|
29
|
-
FALLBACK_USER = os.getlogin()
|
|
30
|
-
except Exception:
|
|
31
|
-
FALLBACK_USER = None
|
|
32
|
-
|
|
33
|
-
# File where to write DHCORE_ACCESS_TOKEN and DHCORE_REFRESH_TOKEN
|
|
34
|
-
# It's used because we inject the variables in jupyter env,
|
|
35
|
-
# but refresh token is only available once. Is it's used, we cannot
|
|
36
|
-
# overwrite it with coder, so we need to store the new one in a file,
|
|
37
|
-
# preserved for jupyter restart
|
|
38
|
-
ENV_FILE = ".dhcore"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
# API levels that are supported
|
|
42
|
-
MAX_API_LEVEL = 20
|
|
43
|
-
MIN_API_LEVEL = 8
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class AuthConfig(BaseModel):
|
|
47
|
-
"""Client configuration model."""
|
|
48
|
-
|
|
49
|
-
user: str = FALLBACK_USER
|
|
50
|
-
"""Username."""
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
class OAuth2TokenAuth(AuthConfig):
|
|
54
|
-
"""OAuth2 token authentication model."""
|
|
55
|
-
|
|
56
|
-
access_token: str
|
|
57
|
-
"""OAuth2 token."""
|
|
58
|
-
|
|
59
|
-
refresh_token: str = None
|
|
60
|
-
"""OAuth2 refresh token."""
|
|
61
|
-
|
|
62
|
-
client_id: str = None
|
|
63
|
-
"""OAuth2 client id."""
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
class BasicAuth(AuthConfig):
|
|
67
|
-
"""Basic authentication model."""
|
|
68
|
-
|
|
69
|
-
password: str
|
|
70
|
-
"""Basic authentication password."""
|
|
71
|
-
|
|
72
|
-
|
|
73
28
|
class ClientDHCore(Client):
|
|
74
29
|
"""
|
|
75
30
|
DHCore client.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
# Use env user as fallback in the API calls
|
|
6
|
+
try:
|
|
7
|
+
FALLBACK_USER = os.getlogin()
|
|
8
|
+
except Exception:
|
|
9
|
+
FALLBACK_USER = None
|
|
10
|
+
|
|
11
|
+
# File where to write DHCORE_ACCESS_TOKEN and DHCORE_REFRESH_TOKEN
|
|
12
|
+
# It's used because we inject the variables in jupyter env,
|
|
13
|
+
# but refresh token is only available once. Is it's used, we cannot
|
|
14
|
+
# overwrite it with coder, so we need to store the new one in a file,
|
|
15
|
+
# preserved for jupyter restart
|
|
16
|
+
ENV_FILE = ".dhcore"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# API levels that are supported
|
|
20
|
+
MAX_API_LEVEL = 20
|
|
21
|
+
MIN_API_LEVEL = 8
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
from digitalhub.client.dhcore.env import FALLBACK_USER
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AuthConfig(BaseModel):
|
|
9
|
+
"""Client configuration model."""
|
|
10
|
+
|
|
11
|
+
user: str = FALLBACK_USER
|
|
12
|
+
"""Username."""
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class BasicAuth(AuthConfig):
|
|
16
|
+
"""Basic authentication model."""
|
|
17
|
+
|
|
18
|
+
password: str
|
|
19
|
+
"""Basic authentication password."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ClientParams(AuthConfig):
|
|
23
|
+
"""Client id authentication model."""
|
|
24
|
+
|
|
25
|
+
client_id: str = None
|
|
26
|
+
"""OAuth2 client id."""
|
|
27
|
+
|
|
28
|
+
client_scecret: str = None
|
|
29
|
+
"""OAuth2 client secret."""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class OAuth2TokenAuth(ClientParams):
|
|
33
|
+
"""OAuth2 token authentication model."""
|
|
34
|
+
|
|
35
|
+
access_token: str
|
|
36
|
+
"""OAuth2 token."""
|
|
37
|
+
|
|
38
|
+
refresh_token: str = None
|
|
39
|
+
"""OAuth2 refresh token."""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class TokenExchangeAuth(ClientParams):
|
|
43
|
+
"""Token exchange authentication model."""
|
|
44
|
+
|
|
45
|
+
exchange_token: str
|
|
46
|
+
"""Exchange token."""
|
|
@@ -6,7 +6,7 @@ import typing
|
|
|
6
6
|
from digitalhub.client.builder import check_client_exists, get_client
|
|
7
7
|
|
|
8
8
|
if typing.TYPE_CHECKING:
|
|
9
|
-
from digitalhub.client.
|
|
9
|
+
from digitalhub.client.dhcore.client import ClientDHCore
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def set_dhcore_env(
|
|
@@ -109,15 +109,3 @@ def refresh_token() -> None:
|
|
|
109
109
|
"""
|
|
110
110
|
client: ClientDHCore = get_client(local=False)
|
|
111
111
|
client._get_new_access_token()
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def get_s3_bucket() -> str | None:
|
|
115
|
-
"""
|
|
116
|
-
Function to get S3 bucket name.
|
|
117
|
-
|
|
118
|
-
Returns
|
|
119
|
-
-------
|
|
120
|
-
str
|
|
121
|
-
The S3 bucket name.
|
|
122
|
-
"""
|
|
123
|
-
return os.getenv("S3_BUCKET_NAME", "datalake")
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from copy import deepcopy
|
|
4
4
|
from datetime import datetime, timezone
|
|
5
5
|
|
|
6
|
-
from digitalhub.client.
|
|
6
|
+
from digitalhub.client._base.client import Client
|
|
7
7
|
from digitalhub.utils.exceptions import BackendError
|
|
8
8
|
|
|
9
9
|
|
|
@@ -2,16 +2,16 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
|
-
from digitalhub.datastores.
|
|
6
|
-
from digitalhub.datastores.
|
|
7
|
-
from digitalhub.datastores.
|
|
8
|
-
from digitalhub.datastores.
|
|
5
|
+
from digitalhub.datastores.local.datastore import LocalDatastore
|
|
6
|
+
from digitalhub.datastores.remote.datastore import RemoteDatastore
|
|
7
|
+
from digitalhub.datastores.s3.datastore import S3Datastore
|
|
8
|
+
from digitalhub.datastores.sql.datastore import SqlDatastore
|
|
9
9
|
from digitalhub.stores.builder import get_default_store, get_store
|
|
10
10
|
from digitalhub.utils.uri_utils import map_uri_scheme
|
|
11
11
|
|
|
12
12
|
if typing.TYPE_CHECKING:
|
|
13
|
-
from digitalhub.datastores.
|
|
14
|
-
from digitalhub.stores.
|
|
13
|
+
from digitalhub.datastores._base.datastore import Datastore
|
|
14
|
+
from digitalhub.stores._base.store import Store
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
REGISTRY_DATASTORES = {"local": LocalDatastore, "remote": RemoteDatastore, "s3": S3Datastore, "sql": SqlDatastore}
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
from digitalhub.datastores.
|
|
6
|
+
from digitalhub.datastores._base.datastore import Datastore
|
|
7
7
|
from digitalhub.readers.builder import get_reader_by_object
|
|
8
8
|
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from io import BytesIO
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
from digitalhub.datastores.
|
|
6
|
+
from digitalhub.datastores._base.datastore import Datastore
|
|
7
7
|
from digitalhub.readers.builder import get_reader_by_object
|
|
8
8
|
|
|
9
9
|
|
|
@@ -4,14 +4,14 @@ import typing
|
|
|
4
4
|
|
|
5
5
|
from digitalhub.context.builder import get_context
|
|
6
6
|
from digitalhub.entities._base.crud import create_entity_api_ctx, read_entity_api_ctx, update_entity_api_ctx
|
|
7
|
-
from digitalhub.entities._base.entity.
|
|
7
|
+
from digitalhub.entities._base.entity.entity import Entity
|
|
8
8
|
from digitalhub.utils.generic_utils import get_timestamp
|
|
9
9
|
|
|
10
10
|
if typing.TYPE_CHECKING:
|
|
11
11
|
from digitalhub.context.context import Context
|
|
12
|
-
from digitalhub.entities._base.metadata import Metadata
|
|
13
|
-
from digitalhub.entities._base.spec
|
|
14
|
-
from digitalhub.entities._base.status
|
|
12
|
+
from digitalhub.entities._base.entity.metadata import Metadata
|
|
13
|
+
from digitalhub.entities._base.entity.spec import Spec
|
|
14
|
+
from digitalhub.entities._base.entity.status import Status
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class ContextEntity(Entity):
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from digitalhub.context.builder import get_context
|
|
6
|
-
from digitalhub.entities.
|
|
6
|
+
from digitalhub.entities.utils.api import (
|
|
7
7
|
api_base_create,
|
|
8
8
|
api_base_delete,
|
|
9
9
|
api_base_list,
|
|
@@ -20,10 +20,10 @@ from digitalhub.entities._base.api import (
|
|
|
20
20
|
api_ctx_stop,
|
|
21
21
|
api_ctx_update,
|
|
22
22
|
)
|
|
23
|
-
from digitalhub.entities.utils import parse_entity_key
|
|
23
|
+
from digitalhub.entities.utils.utils import parse_entity_key
|
|
24
24
|
|
|
25
25
|
if typing.TYPE_CHECKING:
|
|
26
|
-
from digitalhub.client.
|
|
26
|
+
from digitalhub.client._base.client import Client
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def create_entity_api_base(
|
|
@@ -3,19 +3,19 @@ from __future__ import annotations
|
|
|
3
3
|
import typing
|
|
4
4
|
from abc import ABCMeta, abstractmethod
|
|
5
5
|
|
|
6
|
-
from digitalhub.entities._base.
|
|
6
|
+
from digitalhub.entities._base._base.entity import Base
|
|
7
7
|
|
|
8
8
|
if typing.TYPE_CHECKING:
|
|
9
|
-
from digitalhub.entities._base.metadata import Metadata
|
|
10
|
-
from digitalhub.entities._base.spec
|
|
11
|
-
from digitalhub.entities._base.status
|
|
9
|
+
from digitalhub.entities._base.entity.metadata import Metadata
|
|
10
|
+
from digitalhub.entities._base.entity.spec import Spec
|
|
11
|
+
from digitalhub.entities._base.entity.status import Status
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
class Entity(
|
|
14
|
+
class Entity(Base, metaclass=ABCMeta):
|
|
15
15
|
"""
|
|
16
16
|
Abstract class for entities.
|
|
17
17
|
|
|
18
|
-
An entity is a collection of metadata,
|
|
18
|
+
An entity is a collection of metadata, specifications.and status
|
|
19
19
|
representing a variety of objects handled by Digitalhub.
|
|
20
20
|
"""
|
|
21
21
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from digitalhub.entities._base.
|
|
3
|
+
from digitalhub.entities._base._base.entity import Base
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class Metadata(
|
|
6
|
+
class Metadata(Base):
|
|
7
7
|
"""
|
|
8
8
|
A class representing the metadata of an entity.
|
|
9
9
|
Metadata is a collection of information about an entity thought
|
|
@@ -2,46 +2,46 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from pydantic import BaseModel
|
|
4
4
|
|
|
5
|
-
from digitalhub.entities._base.
|
|
5
|
+
from digitalhub.entities._base._base.entity import Base
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
class Spec(
|
|
8
|
+
class Spec(Base):
|
|
9
9
|
"""
|
|
10
|
-
A class representing the
|
|
11
|
-
|
|
10
|
+
A class representing the specifications.of an entity.
|
|
11
|
+
specifications.is a collection of information about an entity
|
|
12
12
|
thought to be immutable by the user.
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
15
|
@classmethod
|
|
16
16
|
def from_dict(cls, obj: dict) -> Spec:
|
|
17
17
|
"""
|
|
18
|
-
Return entity
|
|
18
|
+
Return entity specifications.object from dictionary.
|
|
19
19
|
|
|
20
20
|
Parameters
|
|
21
21
|
----------
|
|
22
22
|
obj : dict
|
|
23
|
-
A dictionary containing the attributes of the entity
|
|
23
|
+
A dictionary containing the attributes of the entity specifications.
|
|
24
24
|
|
|
25
25
|
Returns
|
|
26
26
|
-------
|
|
27
27
|
EntitySpec
|
|
28
|
-
An entity
|
|
28
|
+
An entity specifications.object.
|
|
29
29
|
"""
|
|
30
30
|
return cls(**obj)
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
class
|
|
33
|
+
class SpecValidator(BaseModel, extra="ignore"):
|
|
34
34
|
"""
|
|
35
35
|
A class representing the parameters of an entity.
|
|
36
36
|
This base class is used to define the parameters of an entity
|
|
37
|
-
|
|
37
|
+
specifications.and is used to validate the parameters passed
|
|
38
38
|
to the constructor.
|
|
39
39
|
"""
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class MaterialSpec(Spec):
|
|
43
43
|
"""
|
|
44
|
-
Material
|
|
44
|
+
Material specifications.class.
|
|
45
45
|
"""
|
|
46
46
|
|
|
47
47
|
def __init__(self, path: str, **kwargs) -> None:
|
|
@@ -49,7 +49,7 @@ class MaterialSpec(Spec):
|
|
|
49
49
|
self.path = path
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
class
|
|
52
|
+
class MaterialValidator(SpecValidator):
|
|
53
53
|
"""
|
|
54
54
|
Material parameters class.
|
|
55
55
|
"""
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from digitalhub.entities._base.
|
|
3
|
+
from digitalhub.entities._base._base.entity import Base
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class Status(
|
|
6
|
+
class Status(Base):
|
|
7
7
|
"""
|
|
8
8
|
Base Status class.
|
|
9
9
|
The status class contains information about the state of an entity,
|
|
@@ -3,18 +3,18 @@ from __future__ import annotations
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from digitalhub.entities._base.crud import list_entity_api_ctx
|
|
6
|
-
from digitalhub.entities._base.entity
|
|
7
|
-
from digitalhub.entities.entity_types import EntityTypes
|
|
6
|
+
from digitalhub.entities._base.versioned.entity import VersionedEntity
|
|
8
7
|
from digitalhub.entities.run.crud import delete_run, get_run, list_runs
|
|
9
8
|
from digitalhub.entities.task.crud import delete_task, task_from_dict, task_from_parameters
|
|
9
|
+
from digitalhub.entities.utils.entity_types import EntityTypes
|
|
10
10
|
from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError
|
|
11
11
|
|
|
12
12
|
if typing.TYPE_CHECKING:
|
|
13
|
-
from digitalhub.entities._base.metadata import Metadata
|
|
14
|
-
from digitalhub.entities._base.spec
|
|
15
|
-
from digitalhub.entities._base.status
|
|
16
|
-
from digitalhub.entities.run.entity import Run
|
|
17
|
-
from digitalhub.entities.task.entity import Task
|
|
13
|
+
from digitalhub.entities._base.entity.metadata import Metadata
|
|
14
|
+
from digitalhub.entities._base.entity.spec import Spec
|
|
15
|
+
from digitalhub.entities._base.entity.status import Status
|
|
16
|
+
from digitalhub.entities.run._base.entity import Run
|
|
17
|
+
from digitalhub.entities.task._base.entity import Task
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class ExecutableEntity(VersionedEntity):
|
|
@@ -57,7 +57,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
57
57
|
# Tasks
|
|
58
58
|
##############################
|
|
59
59
|
|
|
60
|
-
def _get_or_create_task(self, kind: str
|
|
60
|
+
def _get_or_create_task(self, kind: str) -> Task:
|
|
61
61
|
"""
|
|
62
62
|
Get or create task.
|
|
63
63
|
|
|
@@ -72,7 +72,10 @@ class ExecutableEntity(VersionedEntity):
|
|
|
72
72
|
Task.
|
|
73
73
|
"""
|
|
74
74
|
if self._tasks.get(kind) is None:
|
|
75
|
-
|
|
75
|
+
try:
|
|
76
|
+
self._tasks[kind] = self.get_task(kind)
|
|
77
|
+
except EntityError:
|
|
78
|
+
self._tasks[kind] = self.new_task(kind)
|
|
76
79
|
return self._tasks[kind]
|
|
77
80
|
|
|
78
81
|
def import_tasks(self, tasks: list[dict]) -> None:
|
|
@@ -147,6 +150,34 @@ class ExecutableEntity(VersionedEntity):
|
|
|
147
150
|
self._tasks[task_kind] = task
|
|
148
151
|
return task
|
|
149
152
|
|
|
153
|
+
def get_task(self, kind: str) -> Task:
|
|
154
|
+
"""
|
|
155
|
+
Get task.
|
|
156
|
+
|
|
157
|
+
Parameters
|
|
158
|
+
----------
|
|
159
|
+
kind : str
|
|
160
|
+
Kind the object.
|
|
161
|
+
|
|
162
|
+
Returns
|
|
163
|
+
-------
|
|
164
|
+
Task
|
|
165
|
+
Task.
|
|
166
|
+
|
|
167
|
+
Raises
|
|
168
|
+
------
|
|
169
|
+
EntityError
|
|
170
|
+
If task is not created.
|
|
171
|
+
"""
|
|
172
|
+
try:
|
|
173
|
+
return self._tasks[kind]
|
|
174
|
+
except KeyError:
|
|
175
|
+
resp = self._get_task_from_backend(kind)
|
|
176
|
+
if not resp:
|
|
177
|
+
raise EntityError(f"Task {kind} is not created")
|
|
178
|
+
self._tasks[kind] = task_from_dict(resp[0])
|
|
179
|
+
return self._tasks[kind]
|
|
180
|
+
|
|
150
181
|
def update_task(self, kind: str, **kwargs) -> Task:
|
|
151
182
|
"""
|
|
152
183
|
Update task.
|
|
@@ -180,47 +211,42 @@ class ExecutableEntity(VersionedEntity):
|
|
|
180
211
|
self._tasks[kind] = task
|
|
181
212
|
return task
|
|
182
213
|
|
|
183
|
-
def
|
|
214
|
+
def delete_task(self, kind: str, cascade: bool = True) -> dict:
|
|
184
215
|
"""
|
|
185
|
-
|
|
216
|
+
Delete task.
|
|
186
217
|
|
|
187
218
|
Parameters
|
|
188
219
|
----------
|
|
189
220
|
kind : str
|
|
190
221
|
Kind the object.
|
|
222
|
+
cascade : bool
|
|
223
|
+
Flag to determine if cascade deletion must be performed.
|
|
191
224
|
|
|
192
225
|
Returns
|
|
193
226
|
-------
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
Raises
|
|
198
|
-
------
|
|
199
|
-
EntityError
|
|
200
|
-
If task is not created.
|
|
227
|
+
dict
|
|
228
|
+
Response from backend.
|
|
201
229
|
"""
|
|
202
|
-
self.
|
|
203
|
-
|
|
230
|
+
resp = delete_task(self._tasks[kind].key, cascade=cascade)
|
|
231
|
+
self._tasks.pop(kind, None)
|
|
232
|
+
return resp
|
|
204
233
|
|
|
205
|
-
def
|
|
234
|
+
def _get_task_from_backend(self, kind: str) -> list:
|
|
206
235
|
"""
|
|
207
|
-
|
|
236
|
+
List tasks from backend filtered by function and kind.
|
|
208
237
|
|
|
209
238
|
Parameters
|
|
210
239
|
----------
|
|
211
240
|
kind : str
|
|
212
241
|
Kind the object.
|
|
213
|
-
cascade : bool
|
|
214
|
-
Flag to determine if cascade deletion must be performed.
|
|
215
242
|
|
|
216
243
|
Returns
|
|
217
244
|
-------
|
|
218
|
-
|
|
245
|
+
list
|
|
219
246
|
Response from backend.
|
|
220
247
|
"""
|
|
221
|
-
|
|
222
|
-
self.
|
|
223
|
-
return resp
|
|
248
|
+
params = {"function": self._get_executable_string(), "kind": kind}
|
|
249
|
+
return list_entity_api_ctx(self.project, EntityTypes.TASK.value, params=params)
|
|
224
250
|
|
|
225
251
|
def _check_task_in_backend(self, kind: str) -> bool:
|
|
226
252
|
"""
|
|
@@ -236,9 +262,7 @@ class ExecutableEntity(VersionedEntity):
|
|
|
236
262
|
bool
|
|
237
263
|
Flag to determine if task exists in backend.
|
|
238
264
|
"""
|
|
239
|
-
|
|
240
|
-
params = {"function": self._get_executable_string(), "kind": kind}
|
|
241
|
-
resp = list_entity_api_ctx(self.project, EntityTypes.TASK.value, params=params)
|
|
265
|
+
resp = self._get_task_from_backend(kind)
|
|
242
266
|
if not resp:
|
|
243
267
|
return False
|
|
244
268
|
return True
|