[v1.x] fix: catch PydanticUserError when generating output schema (pydantic 2.13 compat) (#2435)
This commit is contained in:
parent
6524782667
commit
8d4c2f5834
1 changed files with 10 additions and 2 deletions
|
|
@ -10,6 +10,7 @@ from pydantic import (
|
||||||
BaseModel,
|
BaseModel,
|
||||||
ConfigDict,
|
ConfigDict,
|
||||||
Field,
|
Field,
|
||||||
|
PydanticUserError,
|
||||||
RootModel,
|
RootModel,
|
||||||
WithJsonSchema,
|
WithJsonSchema,
|
||||||
create_model,
|
create_model,
|
||||||
|
|
@ -411,9 +412,16 @@ def _try_create_model_and_schema(
|
||||||
# Use StrictJsonSchema to raise exceptions instead of warnings
|
# Use StrictJsonSchema to raise exceptions instead of warnings
|
||||||
try:
|
try:
|
||||||
schema = model.model_json_schema(schema_generator=StrictJsonSchema)
|
schema = model.model_json_schema(schema_generator=StrictJsonSchema)
|
||||||
except (TypeError, ValueError, pydantic_core.SchemaError, pydantic_core.ValidationError) as e:
|
except (
|
||||||
|
PydanticUserError,
|
||||||
|
TypeError,
|
||||||
|
ValueError,
|
||||||
|
pydantic_core.SchemaError,
|
||||||
|
pydantic_core.ValidationError,
|
||||||
|
) as e:
|
||||||
# These are expected errors when a type can't be converted to a Pydantic schema
|
# These are expected errors when a type can't be converted to a Pydantic schema
|
||||||
# TypeError: When Pydantic can't handle the type
|
# PydanticUserError: When Pydantic can't handle the type (e.g. PydanticInvalidForJsonSchema);
|
||||||
|
# subclasses TypeError on pydantic <2.13 and RuntimeError on pydantic >=2.13
|
||||||
# ValueError: When there are issues with the type definition (including our custom warnings)
|
# ValueError: When there are issues with the type definition (including our custom warnings)
|
||||||
# SchemaError: When Pydantic can't build a schema
|
# SchemaError: When Pydantic can't build a schema
|
||||||
# ValidationError: When validation fails
|
# ValidationError: When validation fails
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue