Examples¶
While the Configuration documentation contains all available options in detail, this page shows them in cooperation to provide different examples on how to display pydantic models and settings.
Default configuration¶
This example shows the default out-of-the-box configuration of autodoc_pydantic. In contrast, it also shows how standard sphinx autodoc displays the same code.
-
pydantic settings
target.example_setting.
ExampleSettings
¶ Document your project settings very conveniently. Applies like wise to pydantic models.
Show JSON schema
{ "title": "ExampleSettings", "description": "Document your project settings very conveniently. Applies like wise\nto pydantic models.", "type": "object", "properties": { "field_plain_with_validator": { "title": "Field Plain With Validator", "default": 100, "env_names": [ "foo_field_plain_with_validator" ], "type": "integer" }, "BarFoo": { "title": "Barfoo", "default": "FooBar", "env_names": [ "foo_field_with_validator_and_alias" ], "type": "string" }, "field_with_constraints_and_description": { "title": "Field With Constraints And Description", "description": "Shows constraints within doc string.", "default": 5, "minimum": 0, "maximum": 100, "env_names": [ "foo_field_with_constraints_and_description" ], "type": "integer" } }, "additionalProperties": false }
- Config
allow_mutation: bool = True
env_prefix: str = foo_
- Validators
-
field
field_plain_with_validator
: int = 100¶ Show standard field with type annotation.
- Validated by
-
field
field_with_constraints_and_description
: int = 5¶ Shows constraints within doc string.
- Constraints
minimum = 0
maximum = 100
-
field
field_with_validator_and_alias
: str = 'FooBar' (alias 'BarFoo')¶ Shows corresponding validator with link/anchor.
- Validated by
-
validator
check_max_length_ten
» field_with_validator_and_alias, field_plain_with_validator¶ Show corresponding field with link/anchor.
-
class
target.example_setting.
ExampleSettings
(_env_file: Optional[Union[pathlib.Path, str]] = '<object object>', _env_file_encoding: Optional[str] = None, _secrets_dir: Optional[Union[pathlib.Path, str]] = None, *, field_plain_with_validator: int = 100, BarFoo: str = 'FooBar', field_with_constraints_and_description: target.example_setting.ConstrainedIntValue = 5) Document your project settings very conveniently. Applies like wise to pydantic models.
-
classmethod
check_max_length_ten
(v) Show corresponding field with link/anchor.
-
attribute
field_plain_with_validator
: int Show standard field with type annotation.
-
attribute
field_with_constraints_and_description
: int
-
attribute
field_with_validator_and_alias
: str Shows corresponding validator with link/anchor.
-
classmethod
from pydantic import BaseSettings, validator, Field
class ExampleSettings(BaseSettings):
"""Document your project settings very conveniently. Applies like wise
to pydantic models.
"""
field_plain_with_validator: int = 100
"""Show standard field with type annotation."""
field_with_validator_and_alias: str = Field("FooBar", alias="BarFoo")
"""Shows corresponding validator with link/anchor."""
field_with_constraints_and_description: int = Field(
default=5,
ge=0,
le=100,
description="Shows constraints within doc string."
)
@validator("field_with_validator_and_alias", "field_plain_with_validator")
def check_max_length_ten(cls, v):
"""Show corresponding field with link/anchor.
"""
if not len(v) < 10:
raise ValueError("No more than 10 characters allowed")
class Config:
env_prefix = "foo_"
allow_mutation = True