Skip to content
You're viewing docs for v2.0. See the latest version →

pydantic.config

Configuration for Pydantic models.

BaseConfig

This class is only retained for backwards compatibility.

ConfigDict

Bases: TypedDict

A dictionary-like class for configuring Pydantic models.

Attributes

title

The title for the generated JSON schema. Defaults to None.

Type: str | None

str_to_lower

Whether to convert all characters to lowercase for str & bytes types. Defaults to False.

Type: bool

str_to_upper

Whether to convert all characters to uppercase for str & bytes types. Defaults to False.

Type: bool

str_strip_whitespace

Whether to strip leading and trailing whitespace for str & bytes types. Defaults to False.

Type: bool

str_min_length

The minimum length for str & bytes types. Defaults to None.

Type: int

str_max_length

The maximum length for str & bytes types. Defaults to None.

Type: int | None

extra

Whether to ignore, allow, or forbid extra attributes during model initialization. Accepts the string values of 'ignore', 'allow', or 'forbid'. Defaults to 'ignore'.

  • 'forbid' will cause validation to fail if extra attributes are included.
  • 'ignore' will silently ignore any extra attributes.
  • 'allow' will assign the attributes to the model.

See Extra Attributes for details.

Type: ExtraValues | None

frozen

Whether or not models are faux-immutable, i.e. whether __setattr__ is allowed, and also generates a __hash__() method for the model. This makes instances of the model potentially hashable if all the attributes are hashable. Defaults to False.

Type: bool

populate_by_name

Whether an aliased field may be populated by its name as given by the model attribute, as well as the alias. Defaults to False.

Type: bool

use_enum_values

Whether to populate models with the value property of enums, rather than the raw enum. This may be useful if you want to serialize model.model_dump() later. Defaults to False.

Type: bool

validate_assignment

Whether to perform validation on assignment to attributes. Defaults to False.

Type: bool

arbitrary_types_allowed

Whether to allow arbitrary user types for fields (they are validated simply by checking if the value is an instance of the type). If False, RuntimeError will be raised on model declaration. Defaults to False.

See Arbitrary Types Allowed for details.

Type: bool

from_attributes

Whether to allow model creation from object attributes. Defaults to False.

Type: bool

loc_by_alias

Whether to use the alias for error locs. Defaults to True.

Type: bool

alias_generator

a callable that takes a field name and returns an alias for it.

See Alias Generator for details.

Type: Callable[[str], str] | None

ignored_types

A tuple of types that may occur as values of class attributes without annotations. This is typically used for custom descriptors (classes that behave like property). If an attribute is set on a class without an annotation and has a type that is not in this tuple (or otherwise recognized by pydantic), an error will be raised. Defaults to ().

Type: tuple[type, …]

allow_inf_nan

Whether to allow infinity (+inf an -inf) and NaN values to float fields. Defaults to True.

Type: bool

json_schema_extra

A dict or callable to provide extra JSON schema properties. Defaults to None.

Type: dict[str, object] | JsonSchemaExtraCallable | None

strict

If True, strict validation is applied to all fields on the model. See Strict Mode for details.

Type: bool

revalidate_instances

When and how to revalidate models and dataclasses during validation. Accepts the string values of 'never', 'always' and 'subclass-instances'. Defaults to 'never'.

  • 'never' will not revalidate models and dataclasses during validation
  • 'always' will revalidate models and dataclasses during validation
  • 'subclass-instances' will revalidate models and dataclasses during validation if the instance is a subclass of the model or dataclass

See Revalidate Instances for details.

Type: Literal[‘always’, ‘never’, ‘subclass-instances’]

ser_json_timedelta

The format of JSON serialized timedeltas. Accepts the string values of 'iso8601' and 'float'. Defaults to 'iso8601'.

  • 'iso8601' will serialize timedeltas to ISO 8601 durations.
  • 'float' will serialize timedeltas to the total number of seconds.

Type: Literal[‘iso8601’, ‘float’]

ser_json_bytes

The encoding of JSON serialized bytes. Accepts the string values of 'utf8' and 'base64'. Defaults to 'utf8'.

  • 'utf8' will serialize bytes to UTF-8 strings.
  • 'base64' will serialize bytes to base64 strings.

Type: Literal[‘utf8’, ‘base64’]

validate_default

Whether to validate default values during validation. Defaults to False.

Type: bool

protected_namespaces

A tuple of strings that prevent model to have field which conflict with them. Defaults to ('model_', )).

See Protected Namespaces for details.

Type: tuple[str, …]

hide_input_in_errors

Whether to hide inputs when printing errors. Defaults to False.

See Hide Input in Errors.

Type: bool