From bcf572266f5df6681b6fdb5b02b04c83d58f5d6f Mon Sep 17 00:00:00 2001 From: Hiren Date: Thu, 26 Feb 2026 21:56:34 -0500 Subject: [PATCH] feat(types): add ImageDetail as a public type alias Add ImageDetail type alias following the same pattern as ReasoningEffort. This allows users to import and use the type directly: from openai.types import ImageDetail cast(ImageDetail, image_quality.value if image_quality else 'high') Previously users had to repeat the inline literal: cast(Literal["low", "high", "auto"], image_quality.value) Fixes #2889 --- src/openai/types/__init__.py | 1 + src/openai/types/shared/__init__.py | 1 + src/openai/types/shared/image_detail.py | 8 ++++++++ 3 files changed, 10 insertions(+) create mode 100644 src/openai/types/shared/image_detail.py diff --git a/src/openai/types/__init__.py b/src/openai/types/__init__.py index 9190bc146c..8e30ce863b 100644 --- a/src/openai/types/__init__.py +++ b/src/openai/types/__init__.py @@ -16,6 +16,7 @@ CompoundFilter as CompoundFilter, ResponsesModel as ResponsesModel, ReasoningEffort as ReasoningEffort, + ImageDetail as ImageDetail, ComparisonFilter as ComparisonFilter, FunctionDefinition as FunctionDefinition, FunctionParameters as FunctionParameters, diff --git a/src/openai/types/shared/__init__.py b/src/openai/types/shared/__init__.py index 2930b9ae3b..3ee814db50 100644 --- a/src/openai/types/shared/__init__.py +++ b/src/openai/types/shared/__init__.py @@ -17,3 +17,4 @@ from .response_format_json_schema import ResponseFormatJSONSchema as ResponseFormatJSONSchema from .response_format_text_python import ResponseFormatTextPython as ResponseFormatTextPython from .response_format_text_grammar import ResponseFormatTextGrammar as ResponseFormatTextGrammar +from .image_detail import ImageDetail as ImageDetail diff --git a/src/openai/types/shared/image_detail.py b/src/openai/types/shared/image_detail.py new file mode 100644 index 0000000000..bb0030dc8d --- /dev/null +++ b/src/openai/types/shared/image_detail.py @@ -0,0 +1,8 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal, TypeAlias + +__all__ = ["ImageDetail"] + +ImageDetail: TypeAlias = Optional[Literal["low", "high", "auto"]]