From 36d70637b98441da9e7c7035dc5f35048bcd9e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Han?= Date: Thu, 26 Jun 2025 04:31:26 +0200 Subject: [PATCH] fix: finish conversion to StrEnum (#2514) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # What does this PR do? We still had a few enum declared to behave like string as well as enum. Let's use StrEnum for those. Signed-off-by: Sébastien Han --- llama_stack/apis/datasets/datasets.py | 4 ++-- llama_stack/apis/files/files.py | 4 ++-- llama_stack/apis/models/models.py | 4 ++-- llama_stack/distribution/access_control/datatypes.py | 4 ++-- llama_stack/distribution/datatypes.py | 6 +++--- llama_stack/models/llama/datatypes.py | 4 ++-- llama_stack/providers/datatypes.py | 4 ++-- .../providers/inline/telemetry/meta_reference/config.py | 4 ++-- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/llama_stack/apis/datasets/datasets.py b/llama_stack/apis/datasets/datasets.py index e3de3d5cb..8bf7a48d0 100644 --- a/llama_stack/apis/datasets/datasets.py +++ b/llama_stack/apis/datasets/datasets.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import Enum, StrEnum from typing import Annotated, Any, Literal, Protocol from pydantic import BaseModel, Field @@ -13,7 +13,7 @@ from llama_stack.apis.resource import Resource, ResourceType from llama_stack.schema_utils import json_schema_type, register_schema, webmethod -class DatasetPurpose(str, Enum): +class DatasetPurpose(StrEnum): """ Purpose of the dataset. Each purpose has a required input data schema. diff --git a/llama_stack/apis/files/files.py b/llama_stack/apis/files/files.py index 4dfeed448..a72dcd8d4 100644 --- a/llama_stack/apis/files/files.py +++ b/llama_stack/apis/files/files.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from typing import Annotated, Literal, Protocol, runtime_checkable from fastapi import File, Form, Response, UploadFile @@ -16,7 +16,7 @@ from llama_stack.schema_utils import json_schema_type, webmethod # OpenAI Files API Models -class OpenAIFilePurpose(str, Enum): +class OpenAIFilePurpose(StrEnum): """ Valid purpose values for OpenAI Files API. """ diff --git a/llama_stack/apis/models/models.py b/llama_stack/apis/models/models.py index 3d90a92a0..36da97e62 100644 --- a/llama_stack/apis/models/models.py +++ b/llama_stack/apis/models/models.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from typing import Any, Literal, Protocol, runtime_checkable from pydantic import BaseModel, ConfigDict, Field @@ -22,7 +22,7 @@ class CommonModelFields(BaseModel): @json_schema_type -class ModelType(str, Enum): +class ModelType(StrEnum): llm = "llm" embedding = "embedding" diff --git a/llama_stack/distribution/access_control/datatypes.py b/llama_stack/distribution/access_control/datatypes.py index bc5ed6645..c833ed51b 100644 --- a/llama_stack/distribution/access_control/datatypes.py +++ b/llama_stack/distribution/access_control/datatypes.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from typing import Self from pydantic import BaseModel, model_validator @@ -12,7 +12,7 @@ from pydantic import BaseModel, model_validator from .conditions import parse_conditions -class Action(str, Enum): +class Action(StrEnum): CREATE = "create" READ = "read" UPDATE = "update" diff --git a/llama_stack/distribution/datatypes.py b/llama_stack/distribution/datatypes.py index abc3f0065..5324e4c29 100644 --- a/llama_stack/distribution/datatypes.py +++ b/llama_stack/distribution/datatypes.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from pathlib import Path from typing import Annotated, Any @@ -159,7 +159,7 @@ class LoggingConfig(BaseModel): ) -class AuthProviderType(str, Enum): +class AuthProviderType(StrEnum): """Supported authentication provider types.""" OAUTH2_TOKEN = "oauth2_token" @@ -182,7 +182,7 @@ class AuthenticationRequiredError(Exception): pass -class QuotaPeriod(str, Enum): +class QuotaPeriod(StrEnum): DAY = "day" diff --git a/llama_stack/models/llama/datatypes.py b/llama_stack/models/llama/datatypes.py index f9f094c3d..7f1ebed55 100644 --- a/llama_stack/models/llama/datatypes.py +++ b/llama_stack/models/llama/datatypes.py @@ -5,7 +5,7 @@ # the root directory of this source tree. import base64 -from enum import Enum +from enum import Enum, StrEnum from io import BytesIO from typing import Annotated, Any, Literal @@ -171,7 +171,7 @@ class GenerationResult(BaseModel): ignore_token: bool -class QuantizationMode(str, Enum): +class QuantizationMode(StrEnum): none = "none" fp8_mixed = "fp8_mixed" int4_mixed = "int4_mixed" diff --git a/llama_stack/providers/datatypes.py b/llama_stack/providers/datatypes.py index 60b05545b..221ed9027 100644 --- a/llama_stack/providers/datatypes.py +++ b/llama_stack/providers/datatypes.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from typing import Any, Protocol from urllib.parse import urlparse @@ -225,7 +225,7 @@ def remote_provider_spec( ) -class HealthStatus(str, Enum): +class HealthStatus(StrEnum): OK = "OK" ERROR = "Error" NOT_IMPLEMENTED = "Not Implemented" diff --git a/llama_stack/providers/inline/telemetry/meta_reference/config.py b/llama_stack/providers/inline/telemetry/meta_reference/config.py index 93509040c..2baa204c9 100644 --- a/llama_stack/providers/inline/telemetry/meta_reference/config.py +++ b/llama_stack/providers/inline/telemetry/meta_reference/config.py @@ -4,7 +4,7 @@ # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. -from enum import Enum +from enum import StrEnum from typing import Any from pydantic import BaseModel, Field, field_validator @@ -12,7 +12,7 @@ from pydantic import BaseModel, Field, field_validator from llama_stack.distribution.utils.config_dirs import RUNTIME_BASE_DIR -class TelemetrySink(str, Enum): +class TelemetrySink(StrEnum): OTEL_TRACE = "otel_trace" OTEL_METRIC = "otel_metric" SQLITE = "sqlite"