Frequently asked questions¶
Show inherited fields/validators¶
Pydantic models can be subclassed to inherit fields and validators from base
classes. Naturally, autodoc_pydantic should also show these members.
By default, sphinx autodoc does not include any member from base classes, though.
However, sphinx autodoc provides a directive option named :inherited-members:
which allows to include all members from all base classes except object
(see docs here).
Unfortunately, this will also include all members from pydantic.BaseModel
(e.g. copy()
, schema()
etc…) which is most likely not what one wants.
Luckily, :inherited-members:
takes a parameter which allows to exclude base classes.
Hence, when supplying BaseModel
as an argument for :inherited-members:
,
irrelevant members are ignored:
from pydantic import BaseModel
class MyBase(BaseModel):
"""MyBase"""
field_on_base: str
"""Base Field"""
class MySubclass(MyBase):
"""MySubClass"""
field_on_subclass: str
"""Subclass field"""
.. automodule:: target.faq.inherited_members
:inherited-members: BaseModel
-
pydantic model
target.faq.inherited_members.
MyBase
¶ MyBase
Show JSON schema
{ "title": "MyBase", "description": "MyBase", "type": "object", "properties": { "field_on_base": { "title": "Field On Base", "type": "string" } }, "required": [ "field_on_base" ] }
- Fields
-
field
field_on_base
: str [Required]¶ Base Field
-
pydantic model
target.faq.inherited_members.
MySubclass
¶ MySubClass
Show JSON schema
{ "title": "MySubclass", "description": "MySubClass", "type": "object", "properties": { "field_on_base": { "title": "Field On Base", "type": "string" }, "field_on_subclass": { "title": "Field On Subclass", "type": "string" } }, "required": [ "field_on_base", "field_on_subclass" ] }
-
field
field_on_base
: str [Required]¶ Base Field
-
field
field_on_subclass
: str [Required]¶ Subclass field
-
field