digitalhub 0.8.0b15__tar.gz → 0.9.0__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.0b15 → digitalhub-0.9.0}/LICENSE.txt +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/PKG-INFO +3 -3
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/__init__.py +19 -2
- digitalhub-0.9.0/digitalhub/client/_base/api_builder.py +16 -0
- digitalhub-0.9.0/digitalhub/client/_base/client.py +123 -0
- digitalhub-0.9.0/digitalhub/client/_base/key_builder.py +52 -0
- digitalhub-0.9.0/digitalhub/client/api.py +27 -0
- digitalhub-0.9.0/digitalhub/client/dhcore/api_builder.py +100 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/dhcore/client.py +100 -48
- digitalhub-0.9.0/digitalhub/client/dhcore/enums.py +27 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/dhcore/env.py +4 -2
- digitalhub-0.9.0/digitalhub/client/dhcore/key_builder.py +58 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/dhcore/utils.py +17 -17
- digitalhub-0.9.0/digitalhub/client/local/api_builder.py +100 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/local/client.py +22 -0
- digitalhub-0.9.0/digitalhub/client/local/key_builder.py +58 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/context/api.py +3 -38
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/context/builder.py +10 -23
- digitalhub-0.9.0/digitalhub/context/context.py +64 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/context/entity.py +30 -22
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/_constructors/metadata.py +12 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/_constructors/name.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/_constructors/spec.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/_constructors/status.py +3 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/_constructors/uuid.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/builder.py +6 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/entity.py +32 -10
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/metadata.py +22 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/spec.py +7 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/executable/entity.py +8 -8
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/material/entity.py +49 -17
- digitalhub-0.9.0/digitalhub/entities/_base/material/status.py +18 -0
- digitalhub-0.9.0/digitalhub/entities/_base/material/utils.py +106 -0
- digitalhub-0.9.0/digitalhub/entities/_base/project/entity.py +341 -0
- digitalhub-0.9.0/digitalhub/entities/_base/unversioned/entity.py +28 -0
- digitalhub-0.9.0/digitalhub/entities/_base/versioned/entity.py +29 -0
- digitalhub-0.9.0/digitalhub/entities/_commons/enums.py +103 -0
- digitalhub-0.9.0/digitalhub/entities/_commons/utils.py +83 -0
- digitalhub-0.9.0/digitalhub/entities/_operations/processor.py +1873 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/_base/builder.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/_base/entity.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/artifact/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/crud.py +46 -29
- digitalhub-0.9.0/digitalhub/entities/artifact/utils.py +62 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/_base/builder.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/_base/entity.py +6 -6
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/crud.py +50 -66
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/dataitem/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/iceberg/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/table/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/table/entity.py +5 -10
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/table/models.py +4 -5
- digitalhub-0.9.0/digitalhub/entities/dataitem/utils.py +137 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/function/_base/builder.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/function/_base/entity.py +6 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/function/crud.py +36 -17
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/_base/builder.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/_base/entity.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/crud.py +46 -29
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/huggingface/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/huggingface/spec.py +4 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/mlflow/builder.py +2 -1
- digitalhub-0.9.0/digitalhub/entities/model/mlflow/models.py +34 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/mlflow/spec.py +6 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/mlflow/utils.py +4 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/model/builder.py +2 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/sklearn/builder.py +2 -1
- digitalhub-0.9.0/digitalhub/entities/model/utils.py +62 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/project/_base/builder.py +2 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/project/_base/entity.py +82 -272
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/project/crud.py +110 -89
- digitalhub-0.9.0/digitalhub/entities/project/utils.py +35 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/run/_base/builder.py +3 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/run/_base/entity.py +52 -54
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/run/_base/spec.py +15 -7
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/run/crud.py +35 -17
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/secret/_base/builder.py +2 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/secret/_base/entity.py +4 -10
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/secret/crud.py +36 -21
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/task/_base/builder.py +14 -14
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/task/_base/entity.py +21 -14
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/task/_base/models.py +35 -6
- digitalhub-0.9.0/digitalhub/entities/task/_base/spec.py +90 -0
- digitalhub-0.9.0/digitalhub/entities/task/_base/utils.py +18 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/task/crud.py +35 -15
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/workflow/_base/builder.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/workflow/_base/entity.py +22 -6
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/workflow/crud.py +36 -17
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/factory/utils.py +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/_base/reader.py +2 -2
- digitalhub-0.9.0/digitalhub/readers/_commons/enums.py +13 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/api.py +3 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/factory.py +12 -6
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/pandas/reader.py +20 -8
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/runtimes/_base.py +0 -7
- digitalhub-0.9.0/digitalhub/runtimes/enums.py +12 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/_base/store.py +59 -11
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/builder.py +5 -5
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/local/store.py +43 -4
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/remote/store.py +31 -5
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/s3/store.py +136 -57
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/sql/store.py +122 -47
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/exceptions.py +6 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/file_utils.py +60 -2
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/generic_utils.py +45 -4
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/io_utils.py +18 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/s3_utils.py +17 -0
- digitalhub-0.9.0/digitalhub/utils/uri_utils.py +194 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub.egg-info/PKG-INFO +3 -3
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub.egg-info/SOURCES.txt +25 -23
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub.egg-info/requires.txt +1 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub.egg-info/top_level.txt +0 -1
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/pyproject.toml +3 -3
- digitalhub-0.9.0/test/local/instances/test_validate.py +55 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/testkfp.py +4 -1
- digitalhub-0.8.0b15/digitalhub/client/_base/client.py +0 -56
- digitalhub-0.8.0b15/digitalhub/client/api.py +0 -63
- digitalhub-0.8.0b15/digitalhub/context/context.py +0 -136
- digitalhub-0.8.0b15/digitalhub/datastores/_base/datastore.py +0 -85
- digitalhub-0.8.0b15/digitalhub/datastores/api.py +0 -37
- digitalhub-0.8.0b15/digitalhub/datastores/builder.py +0 -110
- digitalhub-0.8.0b15/digitalhub/datastores/local/datastore.py +0 -50
- digitalhub-0.8.0b15/digitalhub/datastores/remote/datastore.py +0 -31
- digitalhub-0.8.0b15/digitalhub/datastores/s3/datastore.py +0 -46
- digitalhub-0.8.0b15/digitalhub/datastores/sql/datastore.py +0 -68
- digitalhub-0.8.0b15/digitalhub/entities/_base/api_utils.py +0 -620
- digitalhub-0.8.0b15/digitalhub/entities/_base/crud.py +0 -468
- digitalhub-0.8.0b15/digitalhub/entities/_base/material/status.py +0 -49
- digitalhub-0.8.0b15/digitalhub/entities/_base/unversioned/entity.py +0 -49
- digitalhub-0.8.0b15/digitalhub/entities/_base/versioned/entity.py +0 -53
- digitalhub-0.8.0b15/digitalhub/entities/function/_base/models.py +0 -118
- digitalhub-0.8.0b15/digitalhub/entities/model/mlflow/models.py +0 -26
- digitalhub-0.8.0b15/digitalhub/entities/task/_base/spec.py +0 -53
- digitalhub-0.8.0b15/digitalhub/entities/utils/api.py +0 -346
- digitalhub-0.8.0b15/digitalhub/entities/utils/entity_types.py +0 -19
- digitalhub-0.8.0b15/digitalhub/entities/utils/state.py +0 -31
- digitalhub-0.8.0b15/digitalhub/entities/utils/utils.py +0 -202
- digitalhub-0.8.0b15/digitalhub/stores/remote/__init__.py +0 -0
- digitalhub-0.8.0b15/digitalhub/stores/s3/__init__.py +0 -0
- digitalhub-0.8.0b15/digitalhub/stores/sql/__init__.py +0 -0
- digitalhub-0.8.0b15/digitalhub/utils/__init__.py +0 -0
- digitalhub-0.8.0b15/digitalhub/utils/uri_utils.py +0 -56
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/README.md +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/builder.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/dhcore/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/dhcore/models.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/client/local/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/context → digitalhub-0.9.0/digitalhub/entities}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores → digitalhub-0.9.0/digitalhub/entities/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores → digitalhub-0.9.0/digitalhub/entities/_base}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/_base/entity.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores/local → digitalhub-0.9.0/digitalhub/entities/_base/context}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores/remote → digitalhub-0.9.0/digitalhub/entities/_base/entity}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores/s3 → digitalhub-0.9.0/digitalhub/entities/_base/entity/_constructors}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/entity/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/datastores/sql → digitalhub-0.9.0/digitalhub/entities/_base/executable}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities → digitalhub-0.9.0/digitalhub/entities/_base/material}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/material/spec.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base → digitalhub-0.9.0/digitalhub/entities/_base/project}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/_base → digitalhub-0.9.0/digitalhub/entities/_base/runtime_entity}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/runtime_entity/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/context → digitalhub-0.9.0/digitalhub/entities/_base/unversioned}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/unversioned/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/entity → digitalhub-0.9.0/digitalhub/entities/_base/versioned}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/_base/versioned/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/entity/_constructors → digitalhub-0.9.0/digitalhub/entities/_commons}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/executable → digitalhub-0.9.0/digitalhub/entities/_operations}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/material → digitalhub-0.9.0/digitalhub/entities/artifact}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/runtime_entity → digitalhub-0.9.0/digitalhub/entities/artifact/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/unversioned → digitalhub-0.9.0/digitalhub/entities/artifact/artifact}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/artifact/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/artifact/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/artifact/artifact/status.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/builders.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/_base/versioned → digitalhub-0.9.0/digitalhub/entities/dataitem}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/artifact → digitalhub-0.9.0/digitalhub/entities/dataitem/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/artifact/_base → digitalhub-0.9.0/digitalhub/entities/dataitem/dataitem}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/artifact/artifact → digitalhub-0.9.0/digitalhub/entities/dataitem/iceberg}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/dataitem → digitalhub-0.9.0/digitalhub/entities/dataitem/table}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/table/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/dataitem/table/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/dataitem/_base → digitalhub-0.9.0/digitalhub/entities/function}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/dataitem/dataitem → digitalhub-0.9.0/digitalhub/entities/function/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/function/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/function/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/dataitem/iceberg → digitalhub-0.9.0/digitalhub/entities/model}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/dataitem/table → digitalhub-0.9.0/digitalhub/entities/model/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/function → digitalhub-0.9.0/digitalhub/entities/model/huggingface}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/huggingface/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/huggingface/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/function/_base → digitalhub-0.9.0/digitalhub/entities/model/mlflow}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/mlflow/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/mlflow/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities → digitalhub-0.9.0/digitalhub/entities/model}/model/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/model/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/model/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/model/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/model/_base → digitalhub-0.9.0/digitalhub/entities/model/sklearn}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/sklearn/entity.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/sklearn/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/model/sklearn/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/model/huggingface → digitalhub-0.9.0/digitalhub/entities/project}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/model/mlflow → digitalhub-0.9.0/digitalhub/entities/project/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/project/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/project/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/model/model → digitalhub-0.9.0/digitalhub/entities/run}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/model/sklearn → digitalhub-0.9.0/digitalhub/entities/run/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/run/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/project → digitalhub-0.9.0/digitalhub/entities/secret}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/project → digitalhub-0.9.0/digitalhub/entities/secret}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/secret/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/secret/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/run → digitalhub-0.9.0/digitalhub/entities/task}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/run → digitalhub-0.9.0/digitalhub/entities/task}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/task/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/secret → digitalhub-0.9.0/digitalhub/entities/workflow}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/secret → digitalhub-0.9.0/digitalhub/entities/workflow}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/workflow/_base/spec.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/entities/workflow/_base/status.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/task → digitalhub-0.9.0/digitalhub/factory}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/factory/api.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/factory/factory.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/task/_base → digitalhub-0.9.0/digitalhub/readers}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/utils → digitalhub-0.9.0/digitalhub/readers/_base}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/_base/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/workflow → digitalhub-0.9.0/digitalhub/readers/_commons}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/entities/workflow/_base → digitalhub-0.9.0/digitalhub/readers/pandas}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/readers/pandas/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/factory → digitalhub-0.9.0/digitalhub/runtimes}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/runtimes/builder.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/readers → digitalhub-0.9.0/digitalhub/stores}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/readers → digitalhub-0.9.0/digitalhub/stores}/_base/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/stores/api.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/readers/pandas → digitalhub-0.9.0/digitalhub/stores/local}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/runtimes → digitalhub-0.9.0/digitalhub/stores/remote}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/stores → digitalhub-0.9.0/digitalhub/stores/s3}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/stores/_base → digitalhub-0.9.0/digitalhub/stores/sql}/__init__.py +0 -0
- {digitalhub-0.8.0b15/digitalhub/stores/local → digitalhub-0.9.0/digitalhub/utils}/__init__.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/data_utils.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/git_utils.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub/utils/logger.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/digitalhub.egg-info/dependency_links.txt +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/setup.cfg +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/local/CRUD/test_artifacts.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/local/CRUD/test_dataitems.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/local/CRUD/test_models.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/local/imports/test_imports.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/test_crud_functions.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/test_crud_runs.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/test_crud_tasks.py +0 -0
- {digitalhub-0.8.0b15 → digitalhub-0.9.0}/test/testkfp_pipeline.py +0 -0
|
@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2024 DSLab, Fondazione Bruno Kessler
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: digitalhub
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Python SDK for Digitalhub
|
|
5
5
|
Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
|
|
6
6
|
License: Apache License
|
|
@@ -191,7 +191,7 @@ License: Apache License
|
|
|
191
191
|
same "printed page" as the copyright notice for easier
|
|
192
192
|
identification within third-party archives.
|
|
193
193
|
|
|
194
|
-
Copyright
|
|
194
|
+
Copyright 2024 DSLab, Fondazione Bruno Kessler
|
|
195
195
|
|
|
196
196
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
197
197
|
you may not use this file except in compliance with the License.
|
|
@@ -230,7 +230,7 @@ Requires-Python: >=3.9
|
|
|
230
230
|
Description-Content-Type: text/markdown
|
|
231
231
|
License-File: LICENSE.txt
|
|
232
232
|
Requires-Dist: boto3
|
|
233
|
-
Requires-Dist: pydantic
|
|
233
|
+
Requires-Dist: pydantic
|
|
234
234
|
Requires-Dist: sqlalchemy<2
|
|
235
235
|
Requires-Dist: pyarrow
|
|
236
236
|
Requires-Dist: numpy<2
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
__version__ = "0.9.0b0"
|
|
1
2
|
from digitalhub.entities.artifact.crud import (
|
|
2
3
|
delete_artifact,
|
|
3
4
|
get_artifact,
|
|
4
5
|
get_artifact_versions,
|
|
5
6
|
import_artifact,
|
|
6
7
|
list_artifacts,
|
|
8
|
+
load_artifact,
|
|
7
9
|
log_artifact,
|
|
8
10
|
new_artifact,
|
|
9
11
|
update_artifact,
|
|
@@ -14,6 +16,7 @@ from digitalhub.entities.dataitem.crud import (
|
|
|
14
16
|
get_dataitem_versions,
|
|
15
17
|
import_dataitem,
|
|
16
18
|
list_dataitems,
|
|
19
|
+
load_dataitem,
|
|
17
20
|
log_dataitem,
|
|
18
21
|
new_dataitem,
|
|
19
22
|
update_dataitem,
|
|
@@ -24,6 +27,7 @@ from digitalhub.entities.function.crud import (
|
|
|
24
27
|
get_function_versions,
|
|
25
28
|
import_function,
|
|
26
29
|
list_functions,
|
|
30
|
+
load_function,
|
|
27
31
|
new_function,
|
|
28
32
|
update_function,
|
|
29
33
|
)
|
|
@@ -33,6 +37,7 @@ from digitalhub.entities.model.crud import (
|
|
|
33
37
|
get_model_versions,
|
|
34
38
|
import_model,
|
|
35
39
|
list_models,
|
|
40
|
+
load_model,
|
|
36
41
|
log_model,
|
|
37
42
|
new_model,
|
|
38
43
|
update_model,
|
|
@@ -42,27 +47,39 @@ from digitalhub.entities.project.crud import (
|
|
|
42
47
|
get_or_create_project,
|
|
43
48
|
get_project,
|
|
44
49
|
import_project,
|
|
50
|
+
list_projects,
|
|
45
51
|
load_project,
|
|
46
52
|
new_project,
|
|
53
|
+
search_entity,
|
|
47
54
|
update_project,
|
|
48
55
|
)
|
|
49
|
-
from digitalhub.entities.run.crud import delete_run, get_run, import_run, list_runs, new_run, update_run
|
|
56
|
+
from digitalhub.entities.run.crud import delete_run, get_run, import_run, list_runs, load_run, new_run, update_run
|
|
50
57
|
from digitalhub.entities.secret.crud import (
|
|
51
58
|
delete_secret,
|
|
52
59
|
get_secret,
|
|
53
60
|
get_secret_versions,
|
|
54
61
|
import_secret,
|
|
55
62
|
list_secrets,
|
|
63
|
+
load_secret,
|
|
56
64
|
new_secret,
|
|
57
65
|
update_secret,
|
|
58
66
|
)
|
|
59
|
-
from digitalhub.entities.task.crud import
|
|
67
|
+
from digitalhub.entities.task.crud import (
|
|
68
|
+
delete_task,
|
|
69
|
+
get_task,
|
|
70
|
+
import_task,
|
|
71
|
+
list_tasks,
|
|
72
|
+
load_task,
|
|
73
|
+
new_task,
|
|
74
|
+
update_task,
|
|
75
|
+
)
|
|
60
76
|
from digitalhub.entities.workflow.crud import (
|
|
61
77
|
delete_workflow,
|
|
62
78
|
get_workflow,
|
|
63
79
|
get_workflow_versions,
|
|
64
80
|
import_workflow,
|
|
65
81
|
list_workflows,
|
|
82
|
+
load_workflow,
|
|
66
83
|
new_workflow,
|
|
67
84
|
update_workflow,
|
|
68
85
|
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from abc import abstractmethod
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ClientApiBuilder:
|
|
7
|
+
"""
|
|
8
|
+
This class is used to build the API for the client.
|
|
9
|
+
Depending on the client, the API is built differently.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
@abstractmethod
|
|
13
|
+
def build_api(self) -> str:
|
|
14
|
+
"""
|
|
15
|
+
Build the API for the client.
|
|
16
|
+
"""
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from abc import abstractmethod
|
|
5
|
+
|
|
6
|
+
if typing.TYPE_CHECKING:
|
|
7
|
+
from digitalhub.client._base.api_builder import ClientApiBuilder
|
|
8
|
+
from digitalhub.client._base.key_builder import ClientKeyBuilder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Client:
|
|
12
|
+
"""
|
|
13
|
+
Base Client class interface.
|
|
14
|
+
|
|
15
|
+
The client is an interface that handles the CRUD of an object during
|
|
16
|
+
a session. It manages the creation, reading, updating, deleting and
|
|
17
|
+
listing of objects and comes into two subclasses: Local and DHCore.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def __init__(self) -> None:
|
|
21
|
+
self._api_builder: ClientApiBuilder = None
|
|
22
|
+
self._key_builder: ClientKeyBuilder = None
|
|
23
|
+
|
|
24
|
+
##############################
|
|
25
|
+
# CRUD methods
|
|
26
|
+
##############################
|
|
27
|
+
|
|
28
|
+
@abstractmethod
|
|
29
|
+
def create_object(self, api: str, obj: dict, **kwargs) -> dict:
|
|
30
|
+
"""
|
|
31
|
+
Create object method.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
@abstractmethod
|
|
35
|
+
def read_object(self, api: str, **kwargs) -> dict:
|
|
36
|
+
"""
|
|
37
|
+
Read object method.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
@abstractmethod
|
|
41
|
+
def update_object(self, api: str, obj: dict, **kwargs) -> dict:
|
|
42
|
+
"""
|
|
43
|
+
Update object method.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
@abstractmethod
|
|
47
|
+
def delete_object(self, api: str, **kwargs) -> dict:
|
|
48
|
+
"""
|
|
49
|
+
Delete object method.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
@abstractmethod
|
|
53
|
+
def list_objects(self, api: str, **kwargs) -> dict:
|
|
54
|
+
"""
|
|
55
|
+
List objects method.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
@abstractmethod
|
|
59
|
+
def list_first_object(self, api: str, **kwargs) -> dict:
|
|
60
|
+
"""
|
|
61
|
+
Read first object method.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
@abstractmethod
|
|
65
|
+
def search_objects(self, api: str, **kwargs) -> dict:
|
|
66
|
+
"""
|
|
67
|
+
Search objects method.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
##############################
|
|
71
|
+
# Build methods
|
|
72
|
+
##############################
|
|
73
|
+
|
|
74
|
+
def build_api(self, category: str, operation: str, **kwargs) -> str:
|
|
75
|
+
"""
|
|
76
|
+
Build the API for the client.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
category : str
|
|
81
|
+
API category.
|
|
82
|
+
operation : str
|
|
83
|
+
API operation.
|
|
84
|
+
**kwargs : dict
|
|
85
|
+
Additional parameters.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
str
|
|
90
|
+
API formatted.
|
|
91
|
+
"""
|
|
92
|
+
return self._api_builder.build_api(category, operation, **kwargs)
|
|
93
|
+
|
|
94
|
+
def build_key(self, category: str, *args, **kwargs) -> str:
|
|
95
|
+
"""
|
|
96
|
+
Build the key for the client.
|
|
97
|
+
|
|
98
|
+
Parameters
|
|
99
|
+
----------
|
|
100
|
+
category : str
|
|
101
|
+
Key category.
|
|
102
|
+
*args : tuple
|
|
103
|
+
Additional arguments.
|
|
104
|
+
**kwargs : dict
|
|
105
|
+
Additional parameters.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
str
|
|
110
|
+
Key formatted.
|
|
111
|
+
"""
|
|
112
|
+
return self._key_builder.build_key(category, *args, **kwargs)
|
|
113
|
+
|
|
114
|
+
##############################
|
|
115
|
+
# Interface methods
|
|
116
|
+
##############################
|
|
117
|
+
|
|
118
|
+
@staticmethod
|
|
119
|
+
@abstractmethod
|
|
120
|
+
def is_local() -> bool:
|
|
121
|
+
"""
|
|
122
|
+
Flag to check if client is local.
|
|
123
|
+
"""
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from abc import abstractmethod
|
|
4
|
+
|
|
5
|
+
from digitalhub.entities._commons.enums import ApiCategories
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ClientKeyBuilder:
|
|
9
|
+
"""
|
|
10
|
+
Class that build the key of entities.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def build_key(self, category: str, *args, **kwargs) -> str:
|
|
14
|
+
"""
|
|
15
|
+
Build key.
|
|
16
|
+
|
|
17
|
+
Parameters
|
|
18
|
+
----------
|
|
19
|
+
category : str
|
|
20
|
+
Key category.
|
|
21
|
+
*args : tuple
|
|
22
|
+
Positional arguments.
|
|
23
|
+
**kwargs : dict
|
|
24
|
+
Keyword arguments.
|
|
25
|
+
|
|
26
|
+
Returns
|
|
27
|
+
-------
|
|
28
|
+
str
|
|
29
|
+
Key.
|
|
30
|
+
"""
|
|
31
|
+
if category == ApiCategories.BASE.value:
|
|
32
|
+
return self.base_entity_key(*args, **kwargs)
|
|
33
|
+
return self.context_entity_key(*args, **kwargs)
|
|
34
|
+
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def base_entity_key(self, entity_id: str) -> str:
|
|
37
|
+
"""
|
|
38
|
+
Build for base entity key.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
def context_entity_key(
|
|
43
|
+
self,
|
|
44
|
+
project: str,
|
|
45
|
+
entity_type: str,
|
|
46
|
+
entity_kind: str,
|
|
47
|
+
entity_name: str,
|
|
48
|
+
entity_id: str | None = None,
|
|
49
|
+
) -> str:
|
|
50
|
+
"""
|
|
51
|
+
Build for context entity key.
|
|
52
|
+
"""
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from digitalhub.client.builder import client_builder
|
|
6
|
+
|
|
7
|
+
if typing.TYPE_CHECKING:
|
|
8
|
+
from digitalhub.client._base.client import Client
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def get_client(local: bool = False, config: dict | None = None) -> Client:
|
|
12
|
+
"""
|
|
13
|
+
Wrapper around ClientBuilder.build.
|
|
14
|
+
|
|
15
|
+
Parameters
|
|
16
|
+
----------
|
|
17
|
+
local : bool
|
|
18
|
+
Whether to create a local client or not.
|
|
19
|
+
config : dict
|
|
20
|
+
DHCore environment configuration.
|
|
21
|
+
|
|
22
|
+
Returns
|
|
23
|
+
-------
|
|
24
|
+
Client
|
|
25
|
+
The client instance.
|
|
26
|
+
"""
|
|
27
|
+
return client_builder.build(local, config)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from digitalhub.client._base.api_builder import ClientApiBuilder
|
|
4
|
+
from digitalhub.entities._commons.enums import ApiCategories, BackendOperations
|
|
5
|
+
from digitalhub.utils.exceptions import BackendError
|
|
6
|
+
|
|
7
|
+
API_BASE = "/api/v1"
|
|
8
|
+
API_CONTEXT = f"{API_BASE}/-"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ClientDHCoreApiBuilder(ClientApiBuilder):
|
|
12
|
+
"""
|
|
13
|
+
This class is used to build the API for the DHCore client.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def build_api(self, category: str, operation: str, **kwargs) -> str:
|
|
17
|
+
"""
|
|
18
|
+
Build the API for the client.
|
|
19
|
+
|
|
20
|
+
Parameters
|
|
21
|
+
----------
|
|
22
|
+
category : str
|
|
23
|
+
API category.
|
|
24
|
+
operation : str
|
|
25
|
+
API operation.
|
|
26
|
+
**kwargs : dict
|
|
27
|
+
Additional parameters.
|
|
28
|
+
|
|
29
|
+
Returns
|
|
30
|
+
-------
|
|
31
|
+
str
|
|
32
|
+
API formatted.
|
|
33
|
+
"""
|
|
34
|
+
if category == ApiCategories.BASE.value:
|
|
35
|
+
return self.build_api_base(operation, **kwargs)
|
|
36
|
+
return self.build_api_context(operation, **kwargs)
|
|
37
|
+
|
|
38
|
+
def build_api_base(self, operation: str, **kwargs) -> str:
|
|
39
|
+
"""
|
|
40
|
+
Build the base API for the client.
|
|
41
|
+
|
|
42
|
+
Parameters
|
|
43
|
+
----------
|
|
44
|
+
operation : str
|
|
45
|
+
API operation.
|
|
46
|
+
**kwargs : dict
|
|
47
|
+
Additional parameters.
|
|
48
|
+
|
|
49
|
+
Returns
|
|
50
|
+
-------
|
|
51
|
+
str
|
|
52
|
+
API formatted.
|
|
53
|
+
"""
|
|
54
|
+
entity_type = kwargs["entity_type"] + "s"
|
|
55
|
+
if operation in (
|
|
56
|
+
BackendOperations.CREATE.value,
|
|
57
|
+
BackendOperations.LIST.value,
|
|
58
|
+
):
|
|
59
|
+
return f"{API_BASE}/{entity_type}"
|
|
60
|
+
elif operation in (
|
|
61
|
+
BackendOperations.READ.value,
|
|
62
|
+
BackendOperations.UPDATE.value,
|
|
63
|
+
BackendOperations.DELETE.value,
|
|
64
|
+
):
|
|
65
|
+
return f"{API_BASE}/{entity_type}/{kwargs['entity_name']}"
|
|
66
|
+
elif operation == BackendOperations.SHARE.value:
|
|
67
|
+
return f"{API_BASE}/{entity_type}/{kwargs['entity_name']}/share"
|
|
68
|
+
raise BackendError(f"Invalid operation '{operation}' for entity type '{entity_type}' in DHCore.")
|
|
69
|
+
|
|
70
|
+
def build_api_context(self, operation: str, **kwargs) -> str:
|
|
71
|
+
"""
|
|
72
|
+
Build the context API for the client.
|
|
73
|
+
"""
|
|
74
|
+
entity_type = kwargs["entity_type"] + "s"
|
|
75
|
+
project = kwargs["project"]
|
|
76
|
+
if operation in (
|
|
77
|
+
BackendOperations.CREATE.value,
|
|
78
|
+
BackendOperations.LIST.value,
|
|
79
|
+
):
|
|
80
|
+
return f"{API_CONTEXT}/{project}/{entity_type}"
|
|
81
|
+
elif operation in (
|
|
82
|
+
BackendOperations.READ.value,
|
|
83
|
+
BackendOperations.UPDATE.value,
|
|
84
|
+
BackendOperations.DELETE.value,
|
|
85
|
+
):
|
|
86
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}"
|
|
87
|
+
elif operation == BackendOperations.LOGS.value:
|
|
88
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}/logs"
|
|
89
|
+
elif operation == BackendOperations.STOP.value:
|
|
90
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}/stop"
|
|
91
|
+
elif operation == BackendOperations.RESUME.value:
|
|
92
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}/resume"
|
|
93
|
+
elif operation == BackendOperations.DATA.value:
|
|
94
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}/data"
|
|
95
|
+
elif operation == BackendOperations.FILES.value:
|
|
96
|
+
return f"{API_CONTEXT}/{project}/{entity_type}/{kwargs['entity_id']}/files/info"
|
|
97
|
+
elif operation == BackendOperations.SEARCH.value:
|
|
98
|
+
return f"{API_CONTEXT}/{project}/solr/search/item"
|
|
99
|
+
|
|
100
|
+
raise BackendError(f"Invalid operation '{operation}' for entity type '{entity_type}' in DHCore.")
|