Skip to content

Commit 1932376

Browse files
authored
Refactor: replace direct use of ExtendedEnumMeta with ExtendedEnum class (#1051)
2 parents c92d0f6 + 8d50f76 commit 1932376

File tree

35 files changed

+487
-491
lines changed

35 files changed

+487
-491
lines changed

ads/aqua/common/enums.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python
2-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
44

55
"""
@@ -8,23 +8,23 @@
88
This module contains the set of enums used in AQUA.
99
"""
1010

11-
from ads.common.extended_enum import ExtendedEnumMeta
11+
from ads.common.extended_enum import ExtendedEnum
1212

1313

14-
class DataScienceResource(str, metaclass=ExtendedEnumMeta):
14+
class DataScienceResource(ExtendedEnum):
1515
MODEL_DEPLOYMENT = "datasciencemodeldeployment"
1616
MODEL = "datasciencemodel"
1717

1818

19-
class Resource(str, metaclass=ExtendedEnumMeta):
19+
class Resource(ExtendedEnum):
2020
JOB = "jobs"
2121
JOBRUN = "jobruns"
2222
MODEL = "models"
2323
MODEL_DEPLOYMENT = "modeldeployments"
2424
MODEL_VERSION_SET = "model-version-sets"
2525

2626

27-
class Tags(str, metaclass=ExtendedEnumMeta):
27+
class Tags(ExtendedEnum):
2828
TASK = "task"
2929
LICENSE = "license"
3030
ORGANIZATION = "organization"
@@ -42,41 +42,41 @@ class Tags(str, metaclass=ExtendedEnumMeta):
4242
MODEL_ARTIFACT_FILE = "model_file"
4343

4444

45-
class InferenceContainerType(str, metaclass=ExtendedEnumMeta):
45+
class InferenceContainerType(ExtendedEnum):
4646
CONTAINER_TYPE_VLLM = "vllm"
4747
CONTAINER_TYPE_TGI = "tgi"
4848
CONTAINER_TYPE_LLAMA_CPP = "llama-cpp"
4949

5050

51-
class InferenceContainerTypeFamily(str, metaclass=ExtendedEnumMeta):
51+
class InferenceContainerTypeFamily(ExtendedEnum):
5252
AQUA_VLLM_CONTAINER_FAMILY = "odsc-vllm-serving"
5353
AQUA_TGI_CONTAINER_FAMILY = "odsc-tgi-serving"
5454
AQUA_LLAMA_CPP_CONTAINER_FAMILY = "odsc-llama-cpp-serving"
5555

5656

57-
class CustomInferenceContainerTypeFamily(str, metaclass=ExtendedEnumMeta):
57+
class CustomInferenceContainerTypeFamily(ExtendedEnum):
5858
AQUA_TEI_CONTAINER_FAMILY = "odsc-tei-serving"
5959

6060

61-
class InferenceContainerParamType(str, metaclass=ExtendedEnumMeta):
61+
class InferenceContainerParamType(ExtendedEnum):
6262
PARAM_TYPE_VLLM = "VLLM_PARAMS"
6363
PARAM_TYPE_TGI = "TGI_PARAMS"
6464
PARAM_TYPE_LLAMA_CPP = "LLAMA_CPP_PARAMS"
6565

6666

67-
class EvaluationContainerTypeFamily(str, metaclass=ExtendedEnumMeta):
67+
class EvaluationContainerTypeFamily(ExtendedEnum):
6868
AQUA_EVALUATION_CONTAINER_FAMILY = "odsc-llm-evaluate"
6969

7070

71-
class FineTuningContainerTypeFamily(str, metaclass=ExtendedEnumMeta):
71+
class FineTuningContainerTypeFamily(ExtendedEnum):
7272
AQUA_FINETUNING_CONTAINER_FAMILY = "odsc-llm-fine-tuning"
7373

7474

75-
class HuggingFaceTags(str, metaclass=ExtendedEnumMeta):
75+
class HuggingFaceTags(ExtendedEnum):
7676
TEXT_GENERATION_INFERENCE = "text-generation-inference"
7777

7878

79-
class RqsAdditionalDetails(str, metaclass=ExtendedEnumMeta):
79+
class RqsAdditionalDetails(ExtendedEnum):
8080
METADATA = "metadata"
8181
CREATED_BY = "createdBy"
8282
DESCRIPTION = "description"
@@ -86,7 +86,7 @@ class RqsAdditionalDetails(str, metaclass=ExtendedEnumMeta):
8686
VERSION_LABEL = "versionLabel"
8787

8888

89-
class TextEmbeddingInferenceContainerParams(str, metaclass=ExtendedEnumMeta):
89+
class TextEmbeddingInferenceContainerParams(ExtendedEnum):
9090
"""Contains a subset of params that are required for enabling model deployment in OCI Data Science. More options
9191
are available at https://huggingface.co/docs/text-embeddings-inference/en/cli_arguments"""
9292

ads/aqua/common/errors.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
43
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
54

65
"""
@@ -10,10 +9,10 @@
109
This module contains the set of Aqua exceptions.
1110
"""
1211

13-
from ads.common.extended_enum import ExtendedEnumMeta
12+
from ads.common.extended_enum import ExtendedEnum
1413

1514

16-
class ExitCode(str, metaclass=ExtendedEnumMeta):
15+
class ExitCode(ExtendedEnum):
1716
SUCCESS = 0
1817
COMMON_ERROR = 1
1918
INVALID_CONFIG = 10

ads/aqua/common/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
from ads.aqua.data import AquaResourceIdentifier
6666
from ads.common.auth import AuthState, default_signer
6767
from ads.common.decorator.threaded import threaded
68-
from ads.common.extended_enum import ExtendedEnumMeta
68+
from ads.common.extended_enum import ExtendedEnum
6969
from ads.common.object_storage_details import ObjectStorageDetails
7070
from ads.common.oci_resource import SEARCH_TYPE, OCIResource
7171
from ads.common.utils import copy_file, get_console_link, upload_to_os
@@ -80,7 +80,7 @@
8080
logger = logging.getLogger("ads.aqua")
8181

8282

83-
class LifecycleStatus(str, metaclass=ExtendedEnumMeta):
83+
class LifecycleStatus(ExtendedEnum):
8484
UNKNOWN = ""
8585

8686
@property

ads/aqua/evaluation/constants.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
43
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
54

65
"""
@@ -9,17 +8,18 @@
98
109
This module contains constants/enums used in Aqua Evaluation.
1110
"""
11+
1212
from oci.data_science.models import JobRun
1313

14-
from ads.common.extended_enum import ExtendedEnumMeta
14+
from ads.common.extended_enum import ExtendedEnum
1515

1616
EVAL_TERMINATION_STATE = [
1717
JobRun.LIFECYCLE_STATE_SUCCEEDED,
1818
JobRun.LIFECYCLE_STATE_FAILED,
1919
]
2020

2121

22-
class EvaluationCustomMetadata(str, metaclass=ExtendedEnumMeta):
22+
class EvaluationCustomMetadata(ExtendedEnum):
2323
EVALUATION_SOURCE = "evaluation_source"
2424
EVALUATION_JOB_ID = "evaluation_job_id"
2525
EVALUATION_JOB_RUN_ID = "evaluation_job_run_id"
@@ -28,11 +28,11 @@ class EvaluationCustomMetadata(str, metaclass=ExtendedEnumMeta):
2828
EVALUATION_ERROR = "aqua_evaluate_error"
2929

3030

31-
class EvaluationConfig(str, metaclass=ExtendedEnumMeta):
31+
class EvaluationConfig(ExtendedEnum):
3232
PARAMS = "model_params"
3333

3434

35-
class EvaluationReportJson(str, metaclass=ExtendedEnumMeta):
35+
class EvaluationReportJson(ExtendedEnum):
3636
"""Contains evaluation report.json fields name."""
3737

3838
METRIC_SUMMARY_RESULT = "metric_summary_result"
@@ -43,7 +43,7 @@ class EvaluationReportJson(str, metaclass=ExtendedEnumMeta):
4343
DATASET = "dataset"
4444

4545

46-
class EvaluationMetricResult(str, metaclass=ExtendedEnumMeta):
46+
class EvaluationMetricResult(ExtendedEnum):
4747
"""Contains metric result's fields name in report.json."""
4848

4949
SHORT_NAME = "key"

ads/aqua/evaluation/errors.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
43
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
54
"""
65
aqua.evaluation.errors
@@ -9,10 +8,10 @@
98
This module contains errors in Aqua Evaluation.
109
"""
1110

12-
from ads.common.extended_enum import ExtendedEnumMeta
11+
from ads.common.extended_enum import ExtendedEnum
1312

1413

15-
class EvaluationJobExitCode(str, metaclass=ExtendedEnumMeta):
14+
class EvaluationJobExitCode(ExtendedEnum):
1615
SUCCESS = 0
1716
COMMON_ERROR = 1
1817

ads/aqua/extension/models/ws_models.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*--
32

4-
# Copyright (c) 2024 Oracle and/or its affiliates.
3+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
54
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
65

76
from dataclasses import dataclass
87
from typing import List, Optional
98

10-
from ads.aqua.evaluation.entities import AquaEvaluationSummary, AquaEvaluationDetail
11-
from ads.aqua.model.entities import AquaModelSummary, AquaModel
9+
from ads.aqua.evaluation.entities import AquaEvaluationDetail, AquaEvaluationSummary
10+
from ads.aqua.model.entities import AquaModel, AquaModelSummary
1211
from ads.aqua.modeldeployment.entities import AquaDeployment, AquaDeploymentDetail
13-
from ads.common.extended_enum import ExtendedEnumMeta
12+
from ads.common.extended_enum import ExtendedEnum
1413
from ads.common.serializer import DataClassSerializable
1514

1615

17-
class RequestResponseType(str, metaclass=ExtendedEnumMeta):
16+
class RequestResponseType(ExtendedEnum):
1817
ListEvaluations = "ListEvaluations"
1918
EvaluationDetails = "EvaluationDetails"
2019
ListDeployments = "ListDeployments"

ads/aqua/finetuning/constants.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
44

5-
from ads.common.extended_enum import ExtendedEnumMeta
5+
from ads.common.extended_enum import ExtendedEnum
66

77

8-
class FineTuneCustomMetadata(str, metaclass=ExtendedEnumMeta):
8+
class FineTuneCustomMetadata(ExtendedEnum):
99
FINE_TUNE_SOURCE = "fine_tune_source"
1010
FINE_TUNE_SOURCE_NAME = "fine_tune_source_name"
1111
FINE_TUNE_OUTPUT_PATH = "fine_tune_output_path"
@@ -16,7 +16,7 @@ class FineTuneCustomMetadata(str, metaclass=ExtendedEnumMeta):
1616
SERVICE_MODEL_FINE_TUNE_CONTAINER = "finetune-container"
1717

1818

19-
class FineTuningRestrictedParams(str, metaclass=ExtendedEnumMeta):
19+
class FineTuningRestrictedParams(ExtendedEnum):
2020
OPTIMIZER = "optimizer"
2121

2222

ads/aqua/model/constants.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python
2-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
44

55
"""
@@ -9,35 +9,35 @@
99
This module contains constants/enums used in Aqua Model.
1010
"""
1111

12-
from ads.common.extended_enum import ExtendedEnumMeta
12+
from ads.common.extended_enum import ExtendedEnum
1313

1414

15-
class ModelCustomMetadataFields(str, metaclass=ExtendedEnumMeta):
15+
class ModelCustomMetadataFields(ExtendedEnum):
1616
ARTIFACT_LOCATION = "artifact_location"
1717
DEPLOYMENT_CONTAINER = "deployment-container"
1818
EVALUATION_CONTAINER = "evaluation-container"
1919
FINETUNE_CONTAINER = "finetune-container"
2020
DEPLOYMENT_CONTAINER_URI = "deployment-container-uri"
2121

2222

23-
class ModelTask(str, metaclass=ExtendedEnumMeta):
23+
class ModelTask(ExtendedEnum):
2424
TEXT_GENERATION = "text-generation"
2525
IMAGE_TEXT_TO_TEXT = "image-text-to-text"
2626
IMAGE_TO_TEXT = "image-to-text"
2727

2828

29-
class FineTuningMetricCategories(str, metaclass=ExtendedEnumMeta):
29+
class FineTuningMetricCategories(ExtendedEnum):
3030
VALIDATION = "validation"
3131
TRAINING = "training"
3232

3333

34-
class ModelType(str, metaclass=ExtendedEnumMeta):
34+
class ModelType(ExtendedEnum):
3535
FT = "FT" # Fine Tuned Model
3636
BASE = "BASE" # Base model
3737

3838

3939
# TODO: merge metadata key used in create FT
40-
class FineTuningCustomMetadata(str, metaclass=ExtendedEnumMeta):
40+
class FineTuningCustomMetadata(ExtendedEnum):
4141
FT_SOURCE = "fine_tune_source"
4242
FT_SOURCE_NAME = "fine_tune_source_name"
4343
FT_OUTPUT_PATH = "fine_tune_output_path"

ads/aqua/model/enums.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
43
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
5-
from ads.common.extended_enum import ExtendedEnumMeta
4+
from ads.common.extended_enum import ExtendedEnum
65

76

8-
class FineTuningDefinedMetadata(str, metaclass=ExtendedEnumMeta):
7+
class FineTuningDefinedMetadata(ExtendedEnum):
98
"""Represents the defined metadata keys used in Fine Tuning."""
109

1110
VAL_SET_SIZE = "val_set_size"
1211
TRAINING_DATA = "training_data"
1312

1413

15-
class FineTuningCustomMetadata(str, metaclass=ExtendedEnumMeta):
14+
class FineTuningCustomMetadata(ExtendedEnum):
1615
"""Represents the custom metadata keys used in Fine Tuning."""
1716

1817
FT_SOURCE = "fine_tune_source"

0 commit comments

Comments
 (0)