Config
Configuration for Pydantic models.
ConfigDict ¶
Bases: TypedDict
Usage Documentation
A TypedDict for configuring Pydantic behaviour.
title
instance-attribute
¶
title: str | None
The title for the generated JSON schema, defaults to the model's name
str_to_lower
instance-attribute
¶
str_to_lower: bool
Whether to convert all characters to lowercase for str types. Defaults to False
.
str_to_upper
instance-attribute
¶
str_to_upper: bool
Whether to convert all characters to uppercase for str types. Defaults to False
.
str_strip_whitespace
instance-attribute
¶
str_strip_whitespace: bool
Whether to strip leading and trailing whitespace for str types.
str_min_length
instance-attribute
¶
str_min_length: int
The minimum length for str types. Defaults to None
.
str_max_length
instance-attribute
¶
str_max_length: int | None
The maximum length for str types. Defaults to None
.
extra
instance-attribute
¶
extra: ExtraValues | None
Whether to ignore, allow, or forbid extra attributes during model initialization.
The value must be a ExtraValues
string. Defaults to 'ignore'
.
See Extra Attributes for details.
frozen
instance-attribute
¶
frozen: bool
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
.
Note
On V1, this setting was called allow_mutation
, and was True
by default.
populate_by_name
instance-attribute
¶
populate_by_name: bool
Whether an aliased field may be populated by its name as given by the model
attribute, as well as the alias. Defaults to False
.
Note
The name of this configuration setting was changed in v2.0 from
allow_population_by_alias
to populate_by_name
.
use_enum_values
instance-attribute
¶
use_enum_values: bool
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
.
from_attributes
instance-attribute
¶
from_attributes: bool
Whether to build models and look up discriminators of tagged unions using python object attributes.
loc_by_alias
instance-attribute
¶
loc_by_alias: bool
Whether to use the alias for error loc
s rather than the field's name. Defaults to True
.
alias_generator
instance-attribute
¶
alias_generator: Callable[[str], str] | None
A callable that takes a field name and returns an alias for it.
See Alias Generator for details.
ignored_types
instance-attribute
¶
ignored_types: tuple[type, ...]
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 ()
.
allow_inf_nan
instance-attribute
¶
allow_inf_nan: bool
Whether to allow infinity (+inf
an -inf
) and NaN values to float fields. Defaults to True
.
json_schema_extra
instance-attribute
¶
json_schema_extra: dict[
str, object
] | JsonSchemaExtraCallable | None
A dict or callable to provide extra JSON schema properties. Defaults to None
.
json_encoders
instance-attribute
¶
json_encoders: dict[type[object], JsonEncoder] | None
A dict
of custom JSON encoders for specific types. Defaults to None
.
Deprecated
This config option is a carryover from v1. We originally planned to remove it in v2 but didn't have a 1:1 replacement so we are keeping it for now. It is still deprecated and will likely be removed in the future.
strict
instance-attribute
¶
strict: bool
(new in V2) If True
, strict validation is applied to all fields on the model.
See Strict Mode for details.
revalidate_instances
instance-attribute
¶
revalidate_instances: Literal[
"always", "never", "subclass-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.
ser_json_timedelta
instance-attribute
¶
ser_json_timedelta: Literal['iso8601', 'float']
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.
ser_json_bytes
instance-attribute
¶
ser_json_bytes: Literal['utf8', 'base64']
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 URL safe base64 strings.
validate_default
instance-attribute
¶
validate_default: bool
Whether to validate default values during validation. Defaults to False
.
validate_return
instance-attribute
¶
validate_return: bool
whether to validate the return value from call validators.
protected_namespaces
instance-attribute
¶
protected_namespaces: tuple[str, ...]
A tuple
of strings that prevent model to have field which conflict with them.
Defaults to ('model_', )
).
See Protected Namespaces for details.
hide_input_in_errors
instance-attribute
¶
hide_input_in_errors: bool
Whether to hide inputs when printing errors. Defaults to False
.
See Hide Input in Errors.
defer_build
instance-attribute
¶
defer_build: bool
Whether to defer model validator and serializer construction until the first model validation.
This can be useful to avoid the overhead of building models which are only
used nested within other models, or when you want to manually define type namespace via
Model.model_rebuild(_types_namespace=...)
. Defaults to False.
schema_generator
instance-attribute
¶
schema_generator: type[_GenerateSchema] | None
A custom core schema generator class to use when generating JSON schemas. Useful if you want to change the way types are validated across an entire model/schema.
The GenerateSchema
interface is subject to change, currently only the string_schema
method is public.
See #6737 for details.
Defaults to None
.
BaseConfig ¶
This class is only retained for backwards compatibility.
Deprecated
BaseConfig is deprecated. Use the pydantic.ConfigDict
instead.
pydantic.alias_generators ¶
Alias generators for converting between different capitalization conventions.
to_pascal ¶
to_pascal(snake)
Convert a snake_case string to PascalCase.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
snake |
str
|
The string to convert. |
required |
Returns:
Type | Description |
---|---|
str
|
The PascalCase string. |
Source code in pydantic/alias_generators.py
7 8 9 10 11 12 13 14 15 16 17 |
|
to_camel ¶
to_camel(snake)
Convert a snake_case string to camelCase.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
snake |
str
|
The string to convert. |
required |
Returns:
Type | Description |
---|---|
str
|
The converted camelCase string. |
Source code in pydantic/alias_generators.py
20 21 22 23 24 25 26 27 28 29 30 |
|
to_snake ¶
to_snake(camel)
Convert a PascalCase or camelCase string to snake_case.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
camel |
str
|
The string to convert. |
required |
Returns:
Type | Description |
---|---|
str
|
The converted string in snake_case. |
Source code in pydantic/alias_generators.py
33 34 35 36 37 38 39 40 41 42 43 44 |
|