From 6ac8a3e298c227a8dce6cae6ffb1153777173c92 Mon Sep 17 00:00:00 2001 From: lrg913427-dot Date: Sun, 3 May 2026 07:24:27 +0800 Subject: [PATCH] feat: expose to_strict_json_schema as public API (#2093) Expose the internal to_strict_json_schema function as a public API so users can generate strict JSON schemas from Pydantic models without relying on private module paths. Changes: - Add to_strict_json_schema export to openai.lib.__init__ - Add to_strict_json_schema export to openai.__init__ - Add test for public API accessibility Closes #2093 --- src/openai/__init__.py | 2 +- src/openai/lib/__init__.py | 1 + tests/lib/test_pydantic.py | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/openai/__init__.py b/src/openai/__init__.py index fc9675a8b5..dd796a59ce 100644 --- a/src/openai/__init__.py +++ b/src/openai/__init__.py @@ -96,7 +96,7 @@ if not _t.TYPE_CHECKING: from ._utils._resources_proxy import resources as resources -from .lib import azure as _azure, pydantic_function_tool as pydantic_function_tool +from .lib import azure as _azure, pydantic_function_tool as pydantic_function_tool, to_strict_json_schema as to_strict_json_schema from .version import VERSION as VERSION from .lib.azure import AzureOpenAI as AzureOpenAI, AsyncAzureOpenAI as AsyncAzureOpenAI from .lib._old_api import * diff --git a/src/openai/lib/__init__.py b/src/openai/lib/__init__.py index 5c6cb782c0..a5ce7692da 100644 --- a/src/openai/lib/__init__.py +++ b/src/openai/lib/__init__.py @@ -1,2 +1,3 @@ from ._tools import pydantic_function_tool as pydantic_function_tool +from ._pydantic import to_strict_json_schema as to_strict_json_schema from ._parsing import ResponseFormatT as ResponseFormatT diff --git a/tests/lib/test_pydantic.py b/tests/lib/test_pydantic.py index 754a15151c..d6dba7dcc3 100644 --- a/tests/lib/test_pydantic.py +++ b/tests/lib/test_pydantic.py @@ -12,6 +12,11 @@ from .schema_types.query import Query +def test_to_strict_json_schema_public_api() -> None: + """Test that to_strict_json_schema is accessible as a public API via openai.to_strict_json_schema.""" + assert openai.to_strict_json_schema is to_strict_json_schema + + def test_most_types() -> None: if not PYDANTIC_V1: assert openai.pydantic_function_tool(Query)["function"] == snapshot(