-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Closed
Labels
bug V2Bug related to Pydantic V2Bug related to Pydantic V2help wantedPull Request welcomePull Request welcome
Description
Initial Checks
- I confirm that I'm using Pydantic V2
Description
It seems that using model_json_schema on type annotations combining typing.Annotated and pydantic.Field result in the Annotated not being marked as required.
Example Code
from typing import Annotated
from pydantic import Field, create_model
Model = create_model(
'test_model',
foo=(int, ...),
bar=(Annotated[int, Field(description="Bar description")], ...),
baz=(Annotated[int, Field(..., description="Baz description")], ...),
)
Model.model_json_schema()Results in:
{
"properties":{
"foo":{
"title":"Foo",
"type":"integer"
},
"bar":{
"description":"Bar description",
"title":"Bar",
"type":"integer"
},
"baz":{
"description":"Baz description",
"title":"Baz",
"type":"integer"
}
},
"required":[
"foo"
],
"title":"test_model",
"type":"object"
}I would have expected the JSON schema containing 'required': ['foo', 'bar', 'baz'] instead of 'required': ['foo'],
Python, Pydantic & OS Version
pydantic version: 2.6.1
pydantic-core version: 2.16.2
pydantic-core build: profile=release pgo=true
install path: /home/peter/mambaforge/envs/annotated_docs_env/lib/python3.11/site-packages/pydantic
python version: 3.11.7 | packaged by conda-forge | (main, Dec 23 2023, 14:43:09) [GCC 12.3.0]
platform: Linux-5.15.0-94-generic-x86_64-with-glibc2.31
related packages: mypy-1.8.0 typing_extensions-4.9.0
commit: unknown
sydney-runkle
Metadata
Metadata
Assignees
Labels
bug V2Bug related to Pydantic V2Bug related to Pydantic V2help wantedPull Request welcomePull Request welcome