autodoc_pydantic API Docs

Source

 1from pydantic import BaseSettings, Field, validator
 2
 3
 4class ExampleSettings(BaseSettings):
 5    """Document your project settings very conveniently. Applies like wise
 6    to pydantic models.
 7
 8    """
 9
10    field_plain_with_validator: int = 100
11    """Show standard field with type annotation."""
12
13    field_plain = 100
14    """Show standard field without type annotation."""
15
16    field_with_validator_and_alias: str = Field("FooBar", alias="BarFoo", env="BarFoo")
17    """Shows corresponding validator with link/anchor."""
18
19    field_with_validator_and_alias_typeless = Field(
20        "FooBar", alias="BarFoo", env="BarFoo"
21    )
22    """Shows corresponding validator with link/anchor but without type annotation."""
23
24    field_with_constraints_and_description: int = Field(
25        default=5, ge=0, le=100, description="Shows constraints within doc string."
26    )
27
28    @validator("field_with_validator_and_alias", "field_plain_with_validator")
29    def check_max_length_ten(cls, v):
30        """Show corresponding field with link/anchor."""
31
32        if not len(v) < 10:
33            raise ValueError("No more than 10 characters allowed")
34
35    class Config:
36        env_prefix = "foo_"
37        allow_mutation = True
38
39    def method_without_sig(self) -> BaseSettings:
40        return BaseSettings()

Rendered

pydantic settings pydantic_example.ExampleSettings[source]

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": "BarFoo",
         "env_names": "{'barfoo'}",
         "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"
      },
      "field_plain": {
         "title": "Field Plain",
         "default": 100,
         "env_names": "{'foo_field_plain'}",
         "type": "integer"
      }
   },
   "additionalProperties": false
}

Config:
  • allow_mutation: bool = True

  • env_prefix: str = foo_

Fields:
Validators:
field field_plain_with_validator: int = 100

Show standard field with type annotation.

Validated by:
field field_plain = 100

Show standard field without type annotation.

field field_with_validator_and_alias: str = 'FooBar' (alias 'BarFoo')

Shows corresponding validator with link/anchor.

Validated by:
field field_with_validator_and_alias_typeless = 'FooBar' (alias 'BarFoo')

Shows corresponding validator with link/anchor but without type annotation.

field field_with_constraints_and_description: int = 5

Shows constraints within doc string.

Constraints:
  • minimum = 0

  • maximum = 100

validator check_max_length_ten  »  field_plain_with_validator, field_with_validator_and_alias[source]

Show corresponding field with link/anchor.

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) Model

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters:
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns:

new model instance

dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod from_orm(obj: Any) Model
json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod parse_file(path: Union[str, Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) Model
classmethod parse_obj(obj: Any) Model
classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) Model
classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny
classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode
classmethod update_forward_refs(**localns: Any) None

Try to update ForwardRefs on fields based on this Model, globalns and localns.

classmethod validate(value: Any) Model
method_without_sig() BaseSettings[source]