Skip to content

Upgrading pydantic 0.32 to 1

Breaking0.32.2 → 1.10.27Breaking20Security4Platform5Deprecated3New170Changed148Fixed159Other87

Fetching 57 releases from GitHub…56 / 57
BreakingUpgrade verdict

19 breaking changes and 5 platform requirement changes and 4 security fixes.

  • Rename master to main.
  • Remove Any types from the dataclass decorator so it can be used with the disallow_any_expr mypy option.
  • Remove undefined behaviour when env_prefix had characters in common with env_nested_delimiter.
  • Drop support for python3.6, associated cleanup.
Top 5 of 31 that need code or config changes

Python requirement changed in 1.10.0a1: >=3.6 → >=3.7.

Adds typing-extensions >=4.2.0.

Installs 1 package in all (was 0).

Breaking19
Rename master to main.
mastermain
Remove Any types from the dataclass decorator so it can be used with the disallow_any_expr mypy option.
Anydataclassdisallow_any_expr
Remove undefined behaviour when env_prefix had characters in common with env_nested_delimiter.
env_prefixenv_nested_delimiter
Drop support for python3.6, associated cleanup.
Reverts the v1.9.1 default of deep copying model fields, restoring the v1.9.0 and earlier behavior.
copy_on_model_validation
Removes the typing-only __root__ attribute from BaseModel.
BaseModel__root__
Breaking Change, remove old deprecation aliases from v1.
SchemaFieldConfig.case_insensitiveConfig.case_sensitiveFalseConfig.allow_population_by_alias
Breaking Change: remove __field_defaults__, add default_factory support with BaseModel.construct.
__field_defaults__default_factoryBaseModel.construct.get_default()__fields__
Remove user_required = True from RedisDsn, neither user nor password are required.
RedisDsn
Remove typing_extensions dependency for python 3.8.
typing_extensions
Rename django-rest-framework benchmark in documentation.
Breaking change: Rename skip_defaults to exclude_unset, and add ability to exclude actual defaults.
skip_defaultsexclude_unset
Rename allow_population_by_alias to allow_population_by_field_name, remove unnecessary warning about it.
allow_population_by_aliasallow_population_by_field_name
Refactor the whole pydantic dataclass decorator to really act like its standard lib equivalent.
dataclass__eq____hash__frozendefault_factoryConfig.extracompiled
Breaking Change: always validate only first sublevel items with each_item.
each_item
Remove extra allOf from schema for fields with Union and custom Field.
allOfUnionField
Breaking Change: alias precedence logic changed so aliases on a field always take priority over an alias from alias_generator to avoid buggy/unexpected behaviour, see here for details.
alias_generator
Breaking Change: deprecate the Model.fields property, use Model.fields instead.
Model.fieldsModel.__fields__
Breaking Change: Change the precedence of aliases so child model aliases override parent aliases, including using alias_generator.
alias_generator
Security4
Backports a max length check to validate_email.
validate_email
Pydantic regular expression denial of service
Medium
Prevents long strings or bytes (length > 4_300) as input to int fields, addressing CVE-2020-10735.
Security fix: Fix date and datetime parsing so passing either 'infinity' or float('inf') (or their negative values) does not cause an infinite loop, see security advisory CVE-2021-29510.
datedatetime'infinity'float('inf')
Platform5
Adds minimal support for Python 3.14.
Adds proper support for Python 3.13, with Cythonized wheels published for this version.
Adds support for Python 3.11, including binaries for 3.11 on PyPI.
Mention Python >= 3.9.2 as an alternative to typing_extensions.TypedDict.
typing_extensions.TypedDict
Allow utils.lenient_issubclass to handle typing.GenericAlias objects like list[str] in python >= 3.9.
utils.lenient_issubclasstyping.GenericAliaslist[str]
Deprecated3
Adds a user warning when using Python 3.14, since Pydantic V1 will not work with Python 3.14 and greater.
Use FutureWarning instead of DeprecationWarning when alias instead of env is used for settings models.
FutureWarningDeprecationWarningaliasenv
deprecation warning for case_insensitive on BaseSettings config.
case_insensitiveBaseSettings

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • removed: export BaseModel
  • removed: export Schema
  • removed: export create_model
  • removed: export validate_model
  • added: export ConfigDict
  • added: export Field
  • added: export PrivateAttr
  • added: export create_model_from_namedtuple
  • added: export create_model_from_typeddict
  • added: export root_validator
  • added: export validate_arguments
  • added: function create_model_from_namedtuple(namedtuple_cls: Type[NamedTuple], **kwargs: Any) -> Type[BaseModel]
  • added: function create_model_from_typeddict(typeddict_cls: Type[TypedDict], **kwargs: Any) -> Type[BaseModel]
  • added: function is_legacy_typeddict(_: Any) -> Any
  • removed: function gather_validators(type_: ModelOrDc) -> Dict[str, classmethod]
  • changed: constructor Validator(func: AnyCallable, pre: bool, whole: bool, always: bool, check_fields: bool) → constructor Validator(func: AnyCallable, pre: bool=…, each_item: bool=…, always: bool=…, check_fields: bool=…, skip_on_failure: bool=…)
  • changed: function validator(*fields: str, pre: bool=…, whole: bool=…, always: bool=…, check_fields: bool=…) -> Callable[[AnyCallable], classmethod] → function validator(*fields: str, pre: bool=…, each_item: bool=…, always: bool=…, check_fields: bool=…, whole: Optional[bool]=…, allow_reuse: bool=…) -> Callable[[AnyCallable], AnyClassMethod]
  • added: function extract_root_validators(namespace: Dict[str, Any]) -> Tuple[List[AnyCallable], List[Tuple[bool, AnyCallable]]]
  • added: function gather_all_validators(type_: ModelOrDc) -> Dict[str, AnyClassMethod]
  • added: function prep_validators(v_funcs: Iterable[AnyCallable]) -> ValidatorsList
  • added: function root_validator(_func: AnyCallable) -> AnyClassMethod | (*, pre: bool=…, allow_reuse: bool=…, skip_on_failure: bool=…) -> Callable[[AnyCallable], AnyClassMethod]
  • added: variable ROOT_VALIDATOR_CONFIG_KEY
  • added: variable VALIDATOR_CONFIG_KEY
  • added: variable ValidatorsList
  • changed: class Color → class Color(Representation)
  • changed: function parse_hsl(h: str, h_units: str, s: str, l: str, alpha: Optional[float]=…) -> RGBA → function parse_hsl(h: str, h_units: str, sat: str, light: str, alpha: Optional[float]=…) -> RGBA
  • added: class BaseConfig
  • added: class ConfigDict(TypedDict)
  • added: class Extra(str, Enum)
  • added: field BaseConfig.alias_generator: Optional[Callable[[str], str]]
  • added: field BaseConfig.allow_inf_nan: bool
  • added: field BaseConfig.allow_mutation: bool
  • added: field BaseConfig.allow_population_by_field_name: bool
  • added: field BaseConfig.anystr_lower: bool
  • added: field BaseConfig.anystr_strip_whitespace: bool
  • added: field BaseConfig.anystr_upper: bool
  • added: field BaseConfig.arbitrary_types_allowed: bool
  • added: field BaseConfig.copy_on_model_validation: Literal['none', 'deep', 'shallow']
  • added: field BaseConfig.error_msg_templates: Dict[str, str]
  • added: field BaseConfig.extra: Extra
  • added: field BaseConfig.fields: Dict[str, Union[str, Dict[str, str]]]
  • added: field BaseConfig.frozen: bool
  • added: field BaseConfig.getter_dict: Type[GetterDict]
  • added: field BaseConfig.json_dumps: Callable[..., str]
  • added: field BaseConfig.json_encoders: Dict[Union[Type[Any], str, ForwardRef], AnyCallable]
  • added: field BaseConfig.json_loads: Callable[[str], Any]
  • added: field BaseConfig.keep_untouched: Tuple[type, ...]
  • added: field BaseConfig.max_anystr_length: Optional[int]
  • added: field BaseConfig.min_anystr_length: int
  • added: field BaseConfig.orm_mode: bool
  • added: field BaseConfig.post_init_call: Literal['before_validation', 'after_validation']
  • added: field BaseConfig.schema_extra: Union[Dict[str, Any], SchemaExtraCallable]
  • added: field BaseConfig.smart_union: bool
  • added: field BaseConfig.title: Optional[str]
  • added: field BaseConfig.underscore_attrs_are_private: bool
  • added: field BaseConfig.use_enum_values: bool
  • added: field BaseConfig.validate_all: bool
  • added: field BaseConfig.validate_assignment: bool
  • added: field ConfigDict.alias_generator: Optional[Callable[[str], str]]
  • added: field ConfigDict.allow_inf_nan: bool
  • added: field ConfigDict.allow_mutation: bool
  • added: field ConfigDict.allow_population_by_field_name: bool
  • added: field ConfigDict.anystr_lower: bool
  • added: field ConfigDict.anystr_strip_whitespace: bool
  • added: field ConfigDict.arbitrary_types_allowed: bool
  • added: field ConfigDict.copy_on_model_validation: Literal['none', 'deep', 'shallow']
  • added: field ConfigDict.error_msg_templates: Dict[str, str]
  • added: field ConfigDict.extra: Extra
  • added: field ConfigDict.fields: Dict[str, Union[str, Dict[str, str]]]
  • added: field ConfigDict.frozen: bool
  • added: field ConfigDict.getter_dict: Type[GetterDict]
  • added: field ConfigDict.json_dumps: AnyArgTCallable[str]
  • added: field ConfigDict.json_encoders: Dict[Type[object], AnyCallable]
  • added: field ConfigDict.json_loads: Callable[[str], object]
  • added: field ConfigDict.keep_untouched: Tuple[type, ...]
  • added: field ConfigDict.max_anystr_length: Optional[int]
  • added: field ConfigDict.min_anystr_length: int
  • added: field ConfigDict.orm_mode: bool
  • added: field ConfigDict.post_init_call: Literal['before_validation', 'after_validation']
  • added: field ConfigDict.schema_extra: Union[Dict[str, object], SchemaExtraCallable]
  • added: field ConfigDict.title: Optional[str]
  • added: field ConfigDict.underscore_attrs_are_private: bool
  • added: field ConfigDict.use_enum_values: bool
  • added: field ConfigDict.validate_all: bool
  • added: field ConfigDict.validate_assignment: bool
  • added: field Extra.allow
  • added: field Extra.forbid
  • added: field Extra.ignore
  • added: function get_config(config: Union[ConfigDict, Type[object], None]) -> Type[BaseConfig]
  • added: function inherit_config(self_config: ConfigType, parent_config: ConfigType, **namespace: Any) -> ConfigType
  • added: function prepare_config(config: Type[BaseConfig], cls_name: str) -> None
  • added: static method BaseConfig.get_field_info(name: str) -> Dict[str, Any]
  • added: static method BaseConfig.prepare_field(field: ModelField) -> None
  • added: variable ConfigDict
  • removed: class DataclassType
  • removed: constructor DataclassType(*args: Any, **kwargs: Any) -> None
  • removed: function setattr_validate_assignment(self: DataclassType, name: str, value: Any) -> None
  • changed: function dataclass(_cls: Optional[AnyType]=…, *, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen: bool=…, config: Type[BaseConfig]=…) -> Union[Callable[[AnyType], DataclassType], DataclassType] → function dataclass(*, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen: bool=…, config: Union[ConfigDict, Type[object], None]=…, validate_on_init: Optional[bool]=…, use_proxy: Optional[bool]=…, kw_only: bool=…) -> Callable[[Type[_T]], DataclassClassOrWrapper] | (_cls: Type[_T], *, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen:…
  • added: function create_pydantic_model_from_dataclass(dc_cls: Type[Dataclass], config: Type[Any]=…, dc_cls_doc: Optional[str]=…) -> Type[BaseModel]
  • added: function is_builtin_dataclass(_cls: Type[Any]) -> bool
  • added: function make_dataclass_validator(dc_cls: Type[Dataclass], config: Type[BaseConfig]) -> CallableGenerator
  • added: function set_validation(cls: Type[DataclassT], value: bool) -> Generator[Type[DataclassT], None, None]
  • removed: variable StrIntFloat
  • changed: function from_unix_seconds(seconds: float) -> datetime → function from_unix_seconds(seconds: Union[int, float]) -> datetime
  • changed: function get_numeric(value: StrIntFloat) -> Union[None, int, float] → function get_numeric(value: StrBytesIntFloat, native_expected_type: str) -> Union[None, int, float]
  • changed: function parse_date(value: Union[date, StrIntFloat]) -> date → function parse_date(value: Union[date, StrBytesIntFloat]) -> date
  • changed: function parse_datetime(value: Union[datetime, StrIntFloat]) -> datetime → function parse_datetime(value: Union[datetime, StrBytesIntFloat]) -> datetime
  • changed: function parse_duration(value: StrIntFloat) -> timedelta → function parse_duration(value: StrBytesIntFloat) -> timedelta
  • changed: function parse_time(value: Union[time, str]) -> time → function parse_time(value: Union[time, StrBytesIntFloat]) -> time
  • added: variable MAX_NUMBER
  • added: variable StrBytesIntFloat
  • added: variable date_expr
  • added: variable time_expr
  • added: function validate_arguments(func: None=…, *, config: ConfigType=…) -> Callable[[AnyCallableT], AnyCallableT] | (func: AnyCallableT) -> AnyCallableT
  • removed: field BaseSettings.Config.case_insensitive
  • changed: class BaseSettings.Config → class BaseSettings.Config(BaseConfig)
  • changed: constructor BaseSettings(**values: Any) -> None → constructor BaseSettings(_env_file: Optional[DotenvType]=…, _env_file_encoding: Optional[str]=…, _env_nested_delimiter: Optional[str]=…, _secrets_dir: Optional[StrPath]=…, **values: Any) -> None
  • changed: field BaseSettings.Config.arbitrary_types_allowed → field BaseSettings.Config.arbitrary_types_allowed: bool
  • changed: field BaseSettings.Config.env_prefix → field BaseSettings.Config.env_prefix: str
  • changed: field BaseSettings.Config.extra → field BaseSettings.Config.extra: Extra
  • changed: field BaseSettings.Config.validate_all → field BaseSettings.Config.validate_all: bool
  • added: class EnvSettingsSource
  • added: class InitSettingsSource
  • added: class SecretsSettingsSource
  • added: constructor EnvSettingsSource(env_file: Optional[DotenvType], env_file_encoding: Optional[str], env_nested_delimiter: Optional[str]=…, env_prefix_len: int=…)
  • added: constructor InitSettingsSource(init_kwargs: Dict[str, Any])
  • added: constructor SecretsSettingsSource(secrets_dir: Optional[StrPath])
  • added: field BaseSettings.Config.case_sensitive: bool
  • added: field BaseSettings.Config.env_file: Optional[DotenvType]
  • added: field BaseSettings.Config.env_file_encoding: Optional[str]
  • added: field BaseSettings.Config.env_nested_delimiter: Optional[str]
  • added: field BaseSettings.Config.secrets_dir: Optional[StrPath]
  • added: function find_case_path(dir_path: Path, file_name: str, case_sensitive: bool) -> Optional[Path]
  • added: function read_env_file(file_path: StrPath, *, encoding: str=…, case_sensitive: bool=…) -> Dict[str, Optional[str]]
  • added: method EnvSettingsSource.explode_env_vars(field: ModelField, env_vars: Mapping[str, Optional[str]]) -> Dict[str, Any]
  • added: method EnvSettingsSource.field_is_complex(field: ModelField) -> Tuple[bool, bool]
  • added: static method BaseSettings.Config.customise_sources(init_settings: SettingsSourceCallable, env_settings: SettingsSourceCallable, file_secret_settings: SettingsSourceCallable) -> Tuple[SettingsSourceCallable, ...]
  • added: static method BaseSettings.Config.parse_env_var(field_name: str, raw_val: str) -> Any
  • added: static method BaseSettings.Config.prepare_field(field: ModelField) -> None
  • added: variable DotenvType
  • added: variable SettingsSourceCallable
  • added: variable env_file_sentinel
  • removed: method ErrorWrapper.dict(*, loc_prefix: Optional[Tuple[str, ...]]=…) -> Dict[str, Any]
  • removed: property ErrorWrapper.ctx -> Dict[str, Any]
  • removed: property ErrorWrapper.msg -> str
  • changed: class ErrorWrapper → class ErrorWrapper(Representation)
  • changed: class ValidationError(ValueError) → class ValidationError(Representation, ValueError)
  • changed: constructor ErrorWrapper(exc: Exception, *, loc: Union[Tuple[str, ...], str], config: Optional[Type[BaseConfig]]=…) -> None → constructor ErrorWrapper(exc: Exception, loc: Union[str, Loc]) -> None
  • changed: constructor ValidationError(errors: Sequence[ErrorList], model: Type[Any]) -> None → constructor ValidationError(errors: Sequence[ErrorList], model: ModelOrDc) -> None
  • changed: method ValidationError.errors() -> List[Dict[str, Any]] → method ValidationError.errors() -> List[ErrorDict]
  • added: method ErrorWrapper.loc_tuple() -> Loc
  • removed: class DSNDriverIsEmptyError(PydanticValueError)
  • removed: class PydanticErrorMixin
  • removed: class UrlRegexError(PydanticValueError)
  • removed: constructor PydanticErrorMixin(**ctx: Any) -> None
  • removed: constructor UrlSchemeError(*, scheme: str) -> None
  • removed: field DSNDriverIsEmptyError.code
  • removed: field DSNDriverIsEmptyError.msg_template
  • removed: field PydanticErrorMixin.code: str
  • removed: field PydanticErrorMixin.msg_template: str
  • removed: field UrlRegexError.code
  • removed: field UrlRegexError.msg_template
  • changed: class DateError(PydanticTypeError) → class DateError(PydanticValueError)
  • changed: class DateTimeError(PydanticTypeError) → class DateTimeError(PydanticValueError)
  • changed: class DurationError(PydanticTypeError) → class DurationError(PydanticValueError)
  • changed: class TimeError(PydanticTypeError) → class TimeError(PydanticValueError)
  • changed: class UrlSchemeError(PydanticValueError) → class UrlSchemeError(UrlError)
  • changed: constructor ArbitraryTypeError(*, expected_arbitrary_type: AnyType) -> None → constructor ArbitraryTypeError(*, expected_arbitrary_type: Type[Any]) -> None
  • added: class BoolError(PydanticTypeError)
  • added: class ClassError(PydanticTypeError)
  • added: class DateNotInTheFutureError(PydanticValueError)
  • added: class DateNotInThePastError(PydanticValueError)
  • added: class EnumMemberError(PydanticTypeError)
  • added: class FrozenSetError(PydanticTypeError)
  • added: class FrozenSetMaxLengthError(PydanticValueError)
  • added: class FrozenSetMinLengthError(PydanticValueError)
  • added: class HashableError(PydanticTypeError)
  • added: class IntEnumError(PydanticTypeError)
  • added: class InvalidByteSize(PydanticValueError)
  • added: class InvalidByteSizeUnit(PydanticValueError)
  • added: class InvalidDiscriminator(PydanticValueError)
  • added: class InvalidLengthForBrand(PydanticValueError)
  • added: class ListUniqueItemsError(PydanticValueError)
  • added: class LuhnValidationError(PydanticValueError)
  • added: class MissingDiscriminator(PydanticValueError)
  • added: class NotDigitError(PydanticValueError)
  • added: class NotNoneError(PydanticTypeError)
  • added: class SetMaxLengthError(PydanticValueError)
  • added: class SetMinLengthError(PydanticValueError)
  • added: class SubclassError(PydanticTypeError)
  • added: class UrlError(PydanticValueError)
  • added: class UrlExtraError(UrlError)
  • added: class UrlHostError(UrlError)
  • added: class UrlHostTldError(UrlError)
  • added: class UrlPortError(UrlError)
  • added: class UrlSchemePermittedError(UrlError)
  • added: class UrlUserInfoError(UrlError)
  • added: constructor FrozenSetMaxLengthError(*, limit_value: int) -> None
  • added: constructor FrozenSetMinLengthError(*, limit_value: int) -> None
  • added: constructor InvalidDiscriminator(*, discriminator_key: str, discriminator_value: Any, allowed_values: Sequence[Any]) -> None
  • added: constructor SetMaxLengthError(*, limit_value: int) -> None
  • added: constructor SetMinLengthError(*, limit_value: int) -> None
  • added: constructor SubclassError(*, expected_class: Type[Any]) -> None
  • added: constructor UrlSchemePermittedError(allowed_schemes: Set[str])
  • added: field BoolError.msg_template
  • added: field ClassError.code
  • added: field ClassError.msg_template
  • added: field DateNotInTheFutureError.code
  • added: field DateNotInTheFutureError.msg_template
  • added: field DateNotInThePastError.code
  • added: field DateNotInThePastError.msg_template
  • added: field EnumError.code
  • added: field EnumError.msg_template
  • added: field EnumMemberError.code
  • added: field FrozenSetError.msg_template
  • added: field FrozenSetMaxLengthError.code
  • added: field FrozenSetMaxLengthError.msg_template
  • added: field FrozenSetMinLengthError.code
  • added: field FrozenSetMinLengthError.msg_template
  • added: field HashableError.msg_template
  • added: field IntEnumError.code
  • added: field IntEnumError.msg_template
  • added: field InvalidByteSize.msg_template
  • added: field InvalidByteSizeUnit.msg_template
  • added: field InvalidDiscriminator.code
  • added: field InvalidDiscriminator.msg_template
  • added: field InvalidLengthForBrand.code
  • added: field InvalidLengthForBrand.msg_template
  • added: field ListUniqueItemsError.code
  • added: field ListUniqueItemsError.msg_template
  • added: field LuhnValidationError.code
  • added: field LuhnValidationError.msg_template
  • added: field MissingDiscriminator.code
  • added: field MissingDiscriminator.msg_template
  • added: field NotDigitError.code
  • added: field NotDigitError.msg_template
  • added: field NotNoneError.code
  • added: field NotNoneError.msg_template
  • added: field SetMaxLengthError.code
  • added: field SetMaxLengthError.msg_template
  • added: field SetMinLengthError.code
  • added: field SetMinLengthError.msg_template
  • added: field SubclassError.code
  • added: field SubclassError.msg_template
  • added: field UrlError.code
  • added: field UrlExtraError.code
  • added: field UrlExtraError.msg_template
  • added: field UrlHostError.code
  • added: field UrlHostError.msg_template
  • added: field UrlHostTldError.code
  • added: field UrlHostTldError.msg_template
  • added: field UrlPortError.code
  • added: field UrlPortError.msg_template
  • added: field UrlSchemePermittedError.code
  • added: field UrlSchemePermittedError.msg_template
  • added: field UrlUserInfoError.code
  • added: field UrlUserInfoError.msg_template
  • removed: class Field
  • removed: class Shape(IntEnum)
  • removed: constructor Field(*, name: str, type_: AnyType, class_validators: Optional[Dict[str, Validator]], model_config: Type[BaseConfig], default: Any=…, required: bool=…, alias: str=…, schema: Optional[Schema]=…) -> None
  • removed: field Shape.LIST
  • removed: field Shape.MAPPING
  • removed: field Shape.SEQUENCE
  • removed: field Shape.SET
  • removed: field Shape.SINGLETON
  • removed: field Shape.TUPLE
  • removed: field Shape.TUPLE_ELLIPS
  • removed: method Field.include_in_schema() -> bool
  • removed: method Field.is_complex() -> bool
  • removed: method Field.prepare() -> None
  • removed: method Field.set_config(config: Type[BaseConfig]) -> None
  • removed: method Field.validate(v: Any, values: Dict[str, Any], *, loc: LocType, cls: Optional[ModelOrDc]=…) -> ValidateReturn
  • removed: property Field.alt_alias -> bool
  • removed: static method Field.infer(*, name: str, value: Any, annotation: Any, class_validators: Optional[Dict[str, Validator]], config: Type[BaseConfig]) -> Field
  • removed: variable Literal
  • removed: variable LocType
  • removed: variable ValidatorsList
  • added: class DeferredType
  • added: class FieldInfo(Representation)
  • added: class ModelField(Representation)
  • added: class ModelPrivateAttr(Representation)
  • added: class UndefinedType
  • added: constructor FieldInfo(default: Any=…, **kwargs: Any) -> None
  • added: constructor ModelField(*, name: str, type_: Type[Any], class_validators: Optional[Dict[str, Validator]], model_config: Type[BaseConfig], default: Any=…, default_factory: Optional[NoArgAnyCallable]=…, required: BoolUndefined=…, final: bool=…, alias: Optional[str]=…, field_info: Optional[FieldInfo]=…) -> None
  • added: constructor ModelPrivateAttr(default: Any=…, *, default_factory: Optional[NoArgAnyCallable]=…) -> None
  • added: function Field(default: Any=…, *, default_factory: Optional[NoArgAnyCallable]=…, alias: Optional[str]=…, title: Optional[str]=…, description: Optional[str]=…, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny, Any]]=…, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny, Any]]=…, const: Optional[bool]=…, gt: Optional[float]=…, ge: Optional[float]=…, lt: Optional[float]=…, le: Op…
  • added: function PrivateAttr(default: Any=…, *, default_factory: Optional[NoArgAnyCallable]=…) -> Any
  • added: function is_finalvar_with_default_val(type_: Type[Any], val: Any) -> bool
  • added: method FieldInfo.get_constraints() -> Set[str]
  • added: method FieldInfo.update_from_config(from_config: Dict[str, Any]) -> None
  • added: method ModelField.get_default() -> Any
  • added: method ModelField.is_complex() -> bool
  • added: method ModelField.populate_validators() -> None
  • added: method ModelField.prepare() -> None
  • added: method ModelField.prepare_discriminated_union_sub_fields() -> None
  • added: method ModelField.set_config(config: Type[BaseConfig]) -> None
  • added: method ModelField.validate(v: Any, values: Dict[str, Any], *, loc: LocStr, cls: Optional[ModelOrDc]=…) -> ValidateReturn
  • added: method ModelPrivateAttr.get_default() -> Any
  • added: property ModelField.alt_alias -> bool
  • added: static method ModelField.infer(*, name: str, value: Any, annotation: Any, class_validators: Optional[Dict[str, Validator]], config: Type[BaseConfig]) -> ModelField
  • added: variable BoolUndefined
  • added: variable LocStr
  • added: variable MAPPING_LIKE_SHAPES: Set[int]
  • added: variable SHAPE_COUNTER
  • added: variable SHAPE_DEFAULTDICT
  • added: variable SHAPE_DEQUE
  • added: variable SHAPE_DICT
  • added: variable SHAPE_FROZENSET
  • added: variable SHAPE_GENERIC
  • added: variable SHAPE_ITERABLE
  • added: variable SHAPE_LIST
  • added: variable SHAPE_MAPPING
  • added: variable SHAPE_NAME_LOOKUP
  • added: variable SHAPE_SEQUENCE
  • added: variable SHAPE_SET
  • added: variable SHAPE_SINGLETON
  • added: variable SHAPE_TUPLE
  • added: variable SHAPE_TUPLE_ELLIPSIS
  • added: variable T
  • added: variable Undefined
  • removed: function concrete_name(cls: Type[Any], params: Tuple[Type[Any], ...]) -> str
  • removed: function resolve_type_hint(type_: Any, typevars_map: Dict[Any, Any]) -> Type[Any]
  • added: function get_caller_frame_info() -> Tuple[Optional[str], bool]
  • added: function iter_contained_typevars(v: Any) -> Iterator[TypeVarType]
  • added: function replace_types(type_: Any, type_map: Mapping[Any, Any]) -> Any
  • added: variable AssignedParameters
  • added: variable CacheKey
  • added: variable DictValues: Type[Any]
  • added: variable GenericTypesCache
  • added: variable Parametrization
  • added: variable TypeVarType
  • removed: class BaseConfig
  • removed: class Extra(str, Enum)
  • removed: class MetaModel(ABCMeta)
  • removed: field BaseConfig.alias_generator: Optional[Callable[[str], str]]
  • removed: field BaseConfig.allow_mutation
  • removed: field BaseConfig.allow_population_by_alias
  • removed: field BaseConfig.anystr_strip_whitespace
  • removed: field BaseConfig.arbitrary_types_allowed
  • removed: field BaseConfig.error_msg_templates: Dict[str, str]
  • removed: field BaseConfig.extra
  • removed: field BaseConfig.fields: Dict[str, Union[str, Dict[str, str]]]
  • removed: field BaseConfig.json_encoders: Dict[AnyType, AnyCallable]
  • removed: field BaseConfig.keep_untouched: Tuple[type, ...]
  • removed: field BaseConfig.max_anystr_length
  • removed: field BaseConfig.min_anystr_length
  • removed: field BaseConfig.orm_mode: bool
  • removed: field BaseConfig.schema_extra: Dict[str, Any]
  • removed: field BaseConfig.title
  • removed: field BaseConfig.use_enum_values
  • removed: field BaseConfig.validate_all
  • removed: field BaseConfig.validate_assignment
  • removed: field Extra.allow
  • removed: field Extra.forbid
  • removed: field Extra.ignore
  • removed: function inherit_config(self_config: ConfigType, parent_config: ConfigType) -> ConfigType
  • removed: function is_valid_field(name: str) -> bool
  • removed: function set_extra(config: Type[BaseConfig], cls_name: str) -> None
  • removed: function validate_custom_root_type(fields: Dict[str, Field]) -> None
  • removed: method BaseModel.to_string(pretty: bool=…) -> str
  • removed: property BaseModel.fields -> Dict[str, Field]
  • removed: static method BaseConfig.get_field_schema(name: str) -> Dict[str, str]
  • removed: variable AnyGenerator
  • removed: variable ConfigType
  • removed: variable DictAny
  • removed: variable DictIntStrAny
  • removed: variable DictStrAny
  • removed: variable EXTRA_LINK
  • removed: variable IntStr
  • removed: variable ListStr
  • removed: variable Model
  • removed: variable SetIntStr
  • removed: variable SetStr
  • removed: variable TupleGenerator
  • removed: variable UNTOUCHED_TYPES
  • removed: variable compiled
  • removed: variable compiled: bool
  • changed: class BaseModel → class BaseModel(Representation)
  • changed: function create_model(model_name: str, *, __config__: Type[BaseConfig]=…, __base__: Type[BaseModel]=…, __module__: Optional[str]=…, __validators__: Dict[str, classmethod]=…, **field_definitions: Any) -> Type[BaseModel] → function create_model(__model_name: str, *, __config__: Optional[Type[BaseConfig]]=…, __base__: None=…, __module__: str=…, __validators__: Dict[str, AnyClassMethod]=…, __cls_kwargs__: Dict[str, Any]=…, **field_definitions: Any) -> Type[BaseModel] | (__model_name: str, *, __config__: Optional[Type[BaseConfig]]=…, __base__: Union[Type[Model], Tuple[Type[Model], ...]], __module__: str=…, __validator…
  • changed: function validate_model(model: Union[BaseModel, Type[BaseModel]], input_data: DictStrAny, raise_exc: bool=…, cls: ModelOrDc=…) -> Tuple[DictStrAny, SetStr, Optional[ValidationError]] → function validate_model(model: Type[BaseModel], input_data: DictStrAny, cls: ModelOrDc=…) -> Tuple[DictStrAny, SetStr, Optional[ValidationError]]
  • changed: method BaseModel.copy(*, include: Union[SetIntStr, DictIntStrAny]=…, exclude: Union[SetIntStr, DictIntStrAny]=…, update: DictStrAny=…, deep: bool=…) -> Model → method BaseModel.copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, update: Optional[DictStrAny]=…, deep: bool=…) -> Model
  • changed: method BaseModel.dict(*, include: Union[SetIntStr, DictIntStrAny]=…, exclude: Union[SetIntStr, DictIntStrAny]=…, by_alias: bool=…, skip_defaults: bool=…) -> DictStrAny → method BaseModel.dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, by_alias: bool=…, skip_defaults: Optional[bool]=…, exclude_unset: bool=…, exclude_defaults: bool=…, exclude_none: bool=…) -> DictStrAny
  • changed: method BaseModel.json(*, include: Union[SetIntStr, DictIntStrAny]=…, exclude: Union[SetIntStr, DictIntStrAny]=…, by_alias: bool=…, skip_defaults: bool=…, encoder: Optional[Callable[[Any], Any]]=…, **dumps_kwargs: Any) -> str → method BaseModel.json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]]=…, by_alias: bool=…, skip_defaults: Optional[bool]=…, exclude_unset: bool=…, exclude_defaults: bool=…, exclude_none: bool=…, encoder: Optional[Callable[[Any], Any]]=…, models_as_dict: bool=…, **dumps_kwargs: Any) -> str
  • changed: static method BaseModel.construct(values: DictAny, fields_set: SetStr) -> Model → static method BaseModel.construct(_fields_set: Optional[SetStr]=…, **values: Any) -> Model
  • changed: static method BaseModel.schema(by_alias: bool=…) -> DictStrAny → static method BaseModel.schema(by_alias: bool=…, ref_template: str=…) -> DictStrAny
  • changed: static method BaseModel.schema_json(*, by_alias: bool=…, **dumps_kwargs: Any) -> str → static method BaseModel.schema_json(*, by_alias: bool=…, ref_template: str=…, **dumps_kwargs: Any) -> str
  • added: class ModelConfigData
  • added: class PydanticModelField
  • added: class PydanticModelTransformer
  • added: class PydanticPlugin(Plugin)
  • added: class PydanticPluginConfig
  • added: constructor ModelConfigData(forbid_extra: Optional[bool]=…, allow_mutation: Optional[bool]=…, frozen: Optional[bool]=…, orm_mode: Optional[bool]=…, allow_population_by_field_name: Optional[bool]=…, has_alias_generator: Optional[bool]=…)
  • added: constructor PydanticModelField(name: str, is_required: bool, alias: Optional[str], has_dynamic_alias: bool, line: int, column: int)
  • added: constructor PydanticModelTransformer(ctx: ClassDefContext, plugin_config: PydanticPluginConfig) -> None
  • added: constructor PydanticPlugin(options: Options) -> None
  • added: constructor PydanticPluginConfig(options: Options) -> None
  • added: field PydanticModelTransformer.tracked_config_fields: Set[str]
  • added: field PydanticPluginConfig.debug_dataclass_transform: bool
  • added: field PydanticPluginConfig.init_forbid_extra: bool
  • added: field PydanticPluginConfig.init_typed: bool
  • added: field PydanticPluginConfig.warn_required_dynamic_aliases: bool
  • added: field PydanticPluginConfig.warn_untyped_fields: bool
  • added: function add_method(ctx: ClassDefContext, name: str, args: List[Argument], return_type: Type, self_type: Optional[Type]=…, tvar_def: Optional[TypeVarDef]=…, is_classmethod: bool=…, is_new: bool=…) -> None
  • added: function error_default_and_default_factory_specified(api: CheckerPluginInterface, context: Context) -> None
  • added: function error_from_orm(model_name: str, api: CheckerPluginInterface, context: Context) -> None
  • added: function error_invalid_config_value(name: str, api: SemanticAnalyzerPluginInterface, context: Context) -> None
  • added: function error_required_dynamic_aliases(api: SemanticAnalyzerPluginInterface, context: Context) -> None
  • added: function error_unexpected_behavior(detail: str, api: Union[CheckerPluginInterface, SemanticAnalyzerPluginInterface], context: Context) -> None
  • added: function error_untyped_fields(api: SemanticAnalyzerPluginInterface, context: Context) -> None
  • added: function from_orm_callback(ctx: MethodContext) -> Type
  • added: function get_fullname(x: Union[FuncBase, SymbolNode]) -> str
  • added: function get_name(x: Union[FuncBase, SymbolNode]) -> str
  • added: function parse_mypy_version(version: str) -> Tuple[int, ...]
  • added: function parse_toml(config_file: str) -> Optional[Dict[str, Any]]
  • added: function plugin(version: str) -> TypingType[Plugin]
  • added: method ModelConfigData.set_values_dict() -> Dict[str, Any]
  • added: method ModelConfigData.setdefault(key: str, value: Any) -> None
  • added: method ModelConfigData.update(config: Optional[ModelConfigData]) -> None
  • added: method PydanticModelField.serialize() -> JsonDict
  • added: method PydanticModelField.to_argument(info: TypeInfo, typed: bool, force_optional: bool, use_alias: bool) -> Argument
  • added: method PydanticModelField.to_var(info: TypeInfo, use_alias: bool) -> Var
  • added: method PydanticModelTransformer.add_construct_method(fields: List[PydanticModelField]) -> None
  • added: method PydanticModelTransformer.add_initializer(fields: List[PydanticModelField], config: ModelConfigData, is_settings: bool) -> None
  • added: method PydanticModelTransformer.adjust_validator_signatures() -> None
  • added: method PydanticModelTransformer.collect_config() -> ModelConfigData
  • added: method PydanticModelTransformer.collect_fields(model_config: ModelConfigData) -> List[PydanticModelField]
  • added: method PydanticModelTransformer.get_config_update(substmt: AssignmentStmt) -> Optional[ModelConfigData]
  • added: method PydanticModelTransformer.get_field_arguments(fields: List[PydanticModelField], typed: bool, force_all_optional: bool, use_alias: bool) -> List[Argument]
  • added: method PydanticModelTransformer.set_frozen(fields: List[PydanticModelField], frozen: bool) -> None
  • added: method PydanticModelTransformer.should_init_forbid_extra(fields: List[PydanticModelField], config: ModelConfigData) -> bool
  • added: method PydanticModelTransformer.transform() -> None
  • added: method PydanticPlugin.get_base_class_hook(fullname: str) -> Optional[Callable[[ClassDefContext], None]]
  • added: method PydanticPlugin.get_class_decorator_hook(fullname: str) -> Optional[Callable[[ClassDefContext], None]]
  • added: method PydanticPlugin.get_function_hook(fullname: str) -> Optional[Callable[[FunctionContext], Type]]
  • added: method PydanticPlugin.get_metaclass_hook(fullname: str) -> Optional[Callable[[ClassDefContext], None]]
  • added: method PydanticPlugin.get_method_hook(fullname: str) -> Optional[Callable[[MethodContext], Type]]
  • added: method PydanticPlugin.report_config_data(ctx: ReportConfigContext) -> Dict[str, Any]
  • added: method PydanticPluginConfig.to_data() -> Dict[str, Any]
  • added: static method PydanticModelField.deserialize(info: TypeInfo, data: JsonDict) -> PydanticModelField
  • added: static method PydanticModelTransformer.get_alias_info(stmt: AssignmentStmt) -> Tuple[Optional[str], bool]
  • added: static method PydanticModelTransformer.get_is_required(cls: ClassDef, stmt: AssignmentStmt, lhs: NameExpr) -> bool
  • added: static method PydanticModelTransformer.is_dynamic_alias_present(fields: List[PydanticModelField], has_alias_generator: bool) -> bool
  • added: static method PydanticModelTransformer.type_has_implicit_default(type_: Optional[ProperType]) -> bool
  • added: variable BASEMODEL_FULLNAME
  • added: variable BASESETTINGS_FULLNAME
  • added: variable BUILTINS_NAME
  • added: variable CONFIGFILE_KEY
  • added: variable DATACLASS_FULLNAME
  • added: variable ERROR_ALIAS
  • added: variable ERROR_CONFIG
  • added: variable ERROR_FIELD_DEFAULTS
  • added: variable ERROR_ORM
  • added: variable ERROR_UNEXPECTED
  • added: variable ERROR_UNTYPED
  • added: variable FIELD_FULLNAME
  • added: variable METADATA_KEY
  • added: variable MODEL_METACLASS_FULLNAME
  • added: variable MYPY_VERSION_TUPLE
  • added: class AmqpDsn(AnyUrl)
  • added: class AnyHttpUrl(AnyUrl)
  • added: class AnyUrl(str)
  • added: class CockroachDsn(AnyUrl)
  • added: class EmailStr(str)
  • added: class FileUrl(AnyUrl)
  • added: class HttpUrl(AnyHttpUrl)
  • added: class IPvAnyAddress(_BaseAddress)
  • added: class IPvAnyInterface(_BaseAddress)
  • added: class IPvAnyNetwork(_BaseNetwork)
  • added: class KafkaDsn(AnyUrl)
  • added: class MongoDsn(AnyUrl)
  • added: class NameEmail(Representation)
  • added: class PostgresDsn(MultiHostDsn)
  • added: class RedisDsn(AnyUrl)
  • added: constructor AnyUrl(url: str, *, scheme: str, user: Optional[str]=…, password: Optional[str]=…, host: Optional[str]=…, tld: Optional[str]=…, host_type: str=…, port: Optional[str]=…, path: Optional[str]=…, query: Optional[str]=…, fragment: Optional[str]=…) -> None
  • added: constructor NameEmail(name: str, email: str)
  • added: field AmqpDsn.allowed_schemes
  • added: field AmqpDsn.host_required
  • added: field AnyHttpUrl.allowed_schemes
  • added: field AnyUrl.allowed_schemes: Optional[Collection[str]]
  • added: field AnyUrl.hidden_parts: Set[str]
  • added: field AnyUrl.host_required: bool
  • added: field AnyUrl.max_length
  • added: field AnyUrl.min_length
  • added: field AnyUrl.strip_whitespace
  • added: field AnyUrl.tld_required: bool
  • added: field AnyUrl.user_required: bool
  • added: field CockroachDsn.allowed_schemes
  • added: field CockroachDsn.user_required
  • added: field FileUrl.allowed_schemes
  • added: field FileUrl.host_required
  • added: field HttpUrl.hidden_parts
  • added: field HttpUrl.max_length
  • added: field HttpUrl.tld_required
  • added: field KafkaDsn.allowed_schemes
  • added: field MongoDsn.allowed_schemes
  • added: field PostgresDsn.allowed_schemes
  • added: field PostgresDsn.user_required
  • added: field RedisDsn.allowed_schemes
  • added: field RedisDsn.host_required
  • added: function stricturl(*, strip_whitespace: bool=…, min_length: int=…, max_length: int=…, tld_required: bool=…, host_required: bool=…, allowed_schemes: Optional[Collection[str]]=…) -> Type[AnyUrl]
  • added: function validate_email(value: Union[str]) -> Tuple[str, str]
  • added: static method AnyUrl.apply_default_parts(parts: Parts) -> Parts
  • added: static method AnyUrl.build(*, scheme: str, user: Optional[str]=…, password: Optional[str]=…, host: str, port: Optional[str]=…, path: Optional[str]=…, query: Optional[str]=…, fragment: Optional[str]=…, **_kwargs: str) -> str
  • added: static method AnyUrl.get_default_parts(parts: Parts) -> Parts
  • added: static method AnyUrl.validate(value: Any, field: ModelField, config: BaseConfig) -> AnyUrl
  • added: static method AnyUrl.validate_host(parts: Parts) -> Tuple[str, Optional[str], str, bool]
  • added: static method AnyUrl.validate_parts(parts: Parts, validate_port: bool=…) -> Parts
  • added: static method EmailStr.validate(value: Union[str]) -> str
  • added: static method HttpUrl.get_default_parts(parts: Parts) -> Parts
  • added: static method IPvAnyAddress.validate(value: Union[str, bytes, int]) -> Union[IPv4Address, IPv6Address]
  • added: static method IPvAnyInterface.validate(value: NetworkType) -> Union[IPv4Interface, IPv6Interface]
  • added: static method IPvAnyNetwork.validate(value: NetworkType) -> Union[IPv4Network, IPv6Network]
  • added: static method KafkaDsn.get_default_parts(parts: Parts) -> Parts
  • added: static method MongoDsn.get_default_parts(parts: Parts) -> Parts
  • added: static method NameEmail.validate(value: Any) -> NameEmail
  • added: static method RedisDsn.get_default_parts(parts: Parts) -> Parts
  • changed: function load_file(path: Union[str, Path], *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…) -> Any → function load_file(path: Union[str, Path], *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…, json_loads: Callable[[str], Any]=…) -> Any
  • changed: function load_str_bytes(b: StrBytes, *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…) -> Any → function load_str_bytes(b: StrBytes, *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…, json_loads: Callable[[str], Any]=…) -> Any
  • removed: class Schema
  • removed: constructor Schema(default: Any, *, alias: str=…, title: str=…, description: str=…, const: bool=…, gt: float=…, ge: float=…, lt: float=…, le: float=…, multiple_of: float=…, min_items: int=…, max_items: int=…, min_length: int=…, max_length: int=…, regex: str=…, **extra: Any) -> None
  • removed: function get_annotation_from_schema(annotation: Any, schema: Schema) -> Type[Any]
  • changed: function field_schema(field: Field, *, by_alias: bool=…, model_name_map: Dict[Type[BaseModel], str], ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]=…) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function field_schema(field: ModelField, *, by_alias: bool=…, model_name_map: Dict[TypeModelOrEnum, str], ref_prefix: Optional[str]=…, ref_template: str=…, known_models: Optional[TypeModelSet]=…) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function field_singleton_schema(field: Field, *, by_alias: bool, model_name_map: Dict[Type[BaseModel], str], schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function field_singleton_schema(field: ModelField, *, by_alias: bool, model_name_map: Dict[TypeModelOrEnum, str], ref_template: str, schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: TypeModelSet) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function field_singleton_sub_fields_schema(sub_fields: Sequence[Field], *, by_alias: bool, model_name_map: Dict[Type[BaseModel], str], schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function field_singleton_sub_fields_schema(field: ModelField, *, by_alias: bool, model_name_map: Dict[TypeModelOrEnum, str], ref_template: str, schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: TypeModelSet) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function field_type_schema(field: Field, *, by_alias: bool, model_name_map: Dict[Type[BaseModel], str], schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function field_type_schema(field: ModelField, *, by_alias: bool, model_name_map: Dict[TypeModelOrEnum, str], ref_template: str, schema_overrides: bool=…, ref_prefix: Optional[str]=…, known_models: TypeModelSet) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function get_flat_models_from_field(field: Field, known_models: Set[Type[BaseModel]]) -> Set[Type[BaseModel]] → function get_flat_models_from_field(field: ModelField, known_models: TypeModelSet) -> TypeModelSet
  • changed: function get_flat_models_from_fields(fields: Sequence[Field], known_models: Set[Type[BaseModel]]) -> Set[Type[BaseModel]] → function get_flat_models_from_fields(fields: Sequence[ModelField], known_models: TypeModelSet) -> TypeModelSet
  • changed: function get_flat_models_from_model(model: Type[BaseModel], known_models: Set[Type[BaseModel]]=…) -> Set[Type[BaseModel]] → function get_flat_models_from_model(model: Type[BaseModel], known_models: Optional[TypeModelSet]=…) -> TypeModelSet
  • changed: function get_flat_models_from_models(models: Sequence[Type[BaseModel]]) -> Set[Type[BaseModel]] → function get_flat_models_from_models(models: Sequence[Type[BaseModel]]) -> TypeModelSet
  • changed: function get_long_model_name(model: Type[BaseModel]) -> str → function get_long_model_name(model: TypeModelOrEnum) -> str
  • changed: function get_model_name_map(unique_models: Set[Type[BaseModel]]) -> Dict[Type[BaseModel], str] → function get_model_name_map(unique_models: TypeModelSet) -> Dict[TypeModelOrEnum, str]
  • changed: function model_process_schema(model: Type[BaseModel], *, by_alias: bool=…, model_name_map: Dict[Type[BaseModel], str], ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]=…) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function model_process_schema(model: TypeModelOrEnum, *, by_alias: bool=…, model_name_map: Dict[TypeModelOrEnum, str], ref_prefix: Optional[str]=…, ref_template: str=…, known_models: Optional[TypeModelSet]=…, field: Optional[ModelField]=…) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function model_schema(model: Type[BaseModel], by_alias: bool=…, ref_prefix: Optional[str]=…) -> Dict[str, Any] → function model_schema(model: Union[Type[BaseModel], Type[Dataclass]], by_alias: bool=…, ref_prefix: Optional[str]=…, ref_template: str=…) -> Dict[str, Any]
  • changed: function model_type_schema(model: Type[BaseModel], *, by_alias: bool, model_name_map: Dict[Type[BaseModel], str], ref_prefix: Optional[str]=…, known_models: Set[Type[BaseModel]]) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]] → function model_type_schema(model: Type[BaseModel], *, by_alias: bool, model_name_map: Dict[TypeModelOrEnum, str], ref_template: str, ref_prefix: Optional[str]=…, known_models: TypeModelSet) -> Tuple[Dict[str, Any], Dict[str, Any], Set[str]]
  • changed: function schema(models: Sequence[Type[BaseModel]], *, by_alias: bool=…, title: Optional[str]=…, description: Optional[str]=…, ref_prefix: Optional[str]=…) -> Dict[str, Any] → function schema(models: Sequence[Union[Type[BaseModel], Type[Dataclass]]], *, by_alias: bool=…, title: Optional[str]=…, description: Optional[str]=…, ref_prefix: Optional[str]=…, ref_template: str=…) -> Dict[str, Any]
  • added: class SkipField(Exception)
  • added: constructor SkipField(message: str) -> None
  • added: function add_field_type_to_schema(field_type: Any, schema_: Dict[str, Any]) -> None
  • added: function encode_default(dft: Any) -> Any
  • added: function enum_process_schema(enum: Type[Enum], *, field: Optional[ModelField]=…) -> Dict[str, Any]
  • added: function get_annotation_from_field_info(annotation: Any, field_info: FieldInfo, field_name: str, validate_assignment: bool=…) -> Type[Any]
  • added: function get_annotation_with_constraints(annotation: Any, field_info: FieldInfo) -> Tuple[Type[Any], Set[str]]
  • added: function get_field_info_schema(field: ModelField, schema_overrides: bool=…) -> Tuple[Dict[str, Any], bool]
  • added: function get_field_schema_validations(field: ModelField) -> Dict[str, Any]
  • added: function get_schema_ref(name: str, ref_prefix: Optional[str], ref_template: str, schema_overrides: bool) -> Dict[str, Any]
  • added: function multitypes_literal_field_for_schema(values: Tuple[Any, ...], field: ModelField) -> ModelField
  • added: function normalize_name(name: str) -> str
  • added: variable TypeModelOrEnum
  • added: variable TypeModelSet
  • added: variable default_prefix
  • added: variable default_ref_template
  • added: variable field_class_to_schema: Tuple[Tuple[Any, Dict[str, Any]], ...]
  • added: variable json_scheme
  • added: variable numeric_types
  • added: function parse_file_as(type_: Type[T], path: Union[str, Path], *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…, json_loads: Callable[[str], Any]=…, type_name: Optional[NameFactory]=…) -> T
  • added: function parse_obj_as(type_: Type[T], obj: Any, *, type_name: Optional[NameFactory]=…) -> T
  • added: function parse_raw_as(type_: Type[T], b: StrBytes, *, content_type: str=…, encoding: str=…, proto: Protocol=…, allow_pickle: bool=…, json_loads: Callable[[str], Any]=…, type_name: Optional[NameFactory]=…) -> T
  • added: function schema_json_of(type_: Any, *, title: Optional[NameFactory]=…, **schema_json_kwargs: Any) -> str
  • added: function schema_of(type_: Any, *, title: Optional[NameFactory]=…, **schema_kwargs: Any) -> DictStrAny
  • removed: class DSN(str)
  • removed: class EmailStr(str)
  • removed: class IPvAnyAddress(_BaseAddress)
  • removed: class IPvAnyInterface(_BaseAddress)
  • removed: class IPvAnyNetwork(_BaseNetwork)
  • removed: class NameEmail
  • removed: class UrlStr(str)
  • removed: constructor NameEmail(name: str, email: str)
  • removed: field DSN.fields
  • removed: field DSN.prefix
  • removed: field DSN.validate_always
  • removed: field UrlStr.max_length
  • removed: field UrlStr.min_length
  • removed: field UrlStr.relative
  • removed: field UrlStr.require_tld
  • removed: field UrlStr.schemes: Optional[Set[str]]
  • removed: field UrlStr.strip_whitespace
  • removed: function urlstr(*, strip_whitespace: bool=…, min_length: int=…, max_length: int=…, relative: bool=…, require_tld: bool=…, schemes: Optional[Set[str]]=…) -> Type[str]
  • removed: static method DSN.validate(value: str, values: Dict[str, Any]) -> str
  • removed: static method EmailStr.validate(value: str) -> str
  • removed: static method IPvAnyAddress.validate(value: Union[str, bytes, int]) -> Union[IPv4Address, IPv6Address]
  • removed: static method IPvAnyInterface.validate(value: NetworkType) -> Union[IPv4Interface, IPv6Interface]
  • removed: static method IPvAnyNetwork.validate(value: NetworkType) -> Union[IPv4Network, IPv6Network]
  • removed: static method Json.validate(v: Any) -> Any
  • removed: static method NameEmail.validate(value: str) -> NameEmail
  • removed: static method StrictStr.validate(v: Any) -> str
  • removed: static method UrlStr.validate(value: str) -> str
  • changed: class SecretBytes → class SecretBytes(SecretField)
  • changed: class SecretStr → class SecretStr(SecretField)
  • changed: class StrictStr(str) → class StrictStr(ConstrainedStr)
  • changed: class UUID3(UUID) → class UUID3(UUID1)
  • changed: class UUID4(UUID) → class UUID4(UUID1)
  • changed: class UUID5(UUID) → class UUID5(UUID1)
  • changed: field ConstrainedStr.regex: Optional[Pattern[str]] → field ConstrainedStr.regex: Optional[Union[str, Pattern[str]]]
  • changed: function conbytes(*, strip_whitespace: bool=…, min_length: int=…, max_length: int=…) -> Type[bytes] → function conbytes(*, strip_whitespace: bool=…, to_upper: bool=…, to_lower: bool=…, min_length: Optional[int]=…, max_length: Optional[int]=…, strict: bool=…) -> Type[bytes]
  • changed: function condecimal(*, gt: Decimal=…, ge: Decimal=…, lt: Decimal=…, le: Decimal=…, max_digits: int=…, decimal_places: int=…, multiple_of: Decimal=…) -> Type[Decimal] → function condecimal(*, gt: Decimal=…, ge: Decimal=…, lt: Decimal=…, le: Decimal=…, max_digits: Optional[int]=…, decimal_places: Optional[int]=…, multiple_of: Decimal=…) -> Type[Decimal]
  • changed: function confloat(*, gt: float=…, ge: float=…, lt: float=…, le: float=…, multiple_of: float=…) -> Type[float] → function confloat(*, strict: bool=…, gt: float=…, ge: float=…, lt: float=…, le: float=…, multiple_of: float=…, allow_inf_nan: Optional[bool]=…) -> Type[float]
  • changed: function conint(*, gt: int=…, ge: int=…, lt: int=…, le: int=…, multiple_of: int=…) -> Type[int] → function conint(*, strict: bool=…, gt: Optional[int]=…, ge: Optional[int]=…, lt: Optional[int]=…, le: Optional[int]=…, multiple_of: Optional[int]=…) -> Type[int]
  • changed: function conlist(item_type: Type[T], *, min_items: int=…, max_items: int=…) -> Type[List[T]] → function conlist(item_type: Type[T], *, min_items: Optional[int]=…, max_items: Optional[int]=…, unique_items: bool=…) -> Type[List[T]]
  • changed: function constr(*, strip_whitespace: bool=…, min_length: int=…, max_length: int=…, curtail_length: int=…, regex: str=…) -> Type[str] → function constr(*, strip_whitespace: bool=…, to_upper: bool=…, to_lower: bool=…, strict: bool=…, min_length: Optional[int]=…, max_length: Optional[int]=…, curtail_length: Optional[int]=…, regex: Optional[str]=…) -> Type[str]
  • changed: static method ConstrainedList.list_length_validator(v: List[T], field: Field, config: BaseConfig) -> List[T] → static method ConstrainedList.list_length_validator(v: Optional[List[T]]) -> Optional[List[T]]
  • changed: static method ConstrainedStr.validate(value: str) -> str → static method ConstrainedStr.validate(value: Union[str]) -> Union[str]
  • changed: static method SecretBytes.validate(value: bytes) -> SecretBytes → static method SecretBytes.validate(value: Any) -> SecretBytes
  • changed: static method SecretStr.validate(value: str) -> SecretStr → static method SecretStr.validate(value: Any) -> SecretStr
  • added: class ByteSize(int)
  • added: class ConstrainedDate(date)
  • added: class ConstrainedFrozenSet(frozenset)
  • added: class ConstrainedSet(set)
  • added: class FiniteFloat(ConstrainedFloat)
  • added: class FutureDate(date)
  • added: class NonNegativeFloat(ConstrainedFloat)
  • added: class NonNegativeInt(ConstrainedInt)
  • added: class NonPositiveFloat(ConstrainedFloat)
  • added: class NonPositiveInt(ConstrainedInt)
  • added: class PastDate(date)
  • added: class PaymentCardNumber(str)
  • added: class SecretField(abc.ABC)
  • added: class StrictBytes(ConstrainedBytes)
  • added: class StrictFloat(ConstrainedFloat)
  • added: class StrictInt(ConstrainedInt)
  • added: constructor PaymentCardNumber(card_number: str)
  • added: field ConstrainedBytes.strict: bool
  • added: field ConstrainedBytes.to_lower
  • added: field ConstrainedBytes.to_upper
  • added: field ConstrainedDate.ge: OptionalDate
  • added: field ConstrainedDate.gt: OptionalDate
  • added: field ConstrainedDate.le: OptionalDate
  • added: field ConstrainedDate.lt: OptionalDate
  • added: field ConstrainedFloat.allow_inf_nan: Optional[bool]
  • added: field ConstrainedFloat.strict: bool
  • added: field ConstrainedFrozenSet.item_type: Type[T]
  • added: field ConstrainedFrozenSet.max_items: Optional[int]
  • added: field ConstrainedFrozenSet.min_items: Optional[int]
  • added: field ConstrainedInt.strict: bool
  • added: field ConstrainedList.unique_items: Optional[bool]
  • added: field ConstrainedSet.item_type: Type[T]
  • added: field ConstrainedSet.max_items: Optional[int]
  • added: field ConstrainedSet.min_items: Optional[int]
  • added: field ConstrainedStr.strict
  • added: field ConstrainedStr.to_lower
  • added: field ConstrainedStr.to_upper
  • added: field FiniteFloat.allow_inf_nan
  • added: field NonNegativeFloat.ge
  • added: field NonNegativeInt.ge
  • added: field NonPositiveFloat.le
  • added: field NonPositiveInt.le
  • added: field PaymentCardNumber.bin: str
  • added: field PaymentCardNumber.brand: PaymentCardBrand
  • added: field PaymentCardNumber.last4: str
  • added: field PaymentCardNumber.max_length: ClassVar[int]
  • added: field PaymentCardNumber.min_length: ClassVar[int]
  • added: field PaymentCardNumber.strip_whitespace: ClassVar[bool]
  • added: field SecretBytes.max_length: OptionalInt
  • added: field SecretBytes.min_length: OptionalInt
  • added: field SecretStr.max_length: OptionalInt
  • added: field SecretStr.min_length: OptionalInt
  • added: field StrictBytes.strict
  • added: field StrictFloat.strict
  • added: field StrictInt.strict
  • added: field StrictStr.strict
  • added: function condate(*, gt: date=…, ge: date=…, lt: date=…, le: date=…) -> Type[date]
  • added: function confrozenset(item_type: Type[T], *, min_items: Optional[int]=…, max_items: Optional[int]=…) -> Type[FrozenSet[T]]
  • added: function conset(item_type: Type[T], *, min_items: Optional[int]=…, max_items: Optional[int]=…) -> Type[Set[T]]
  • added: method ByteSize.human_readable(decimal: bool=…) -> str
  • added: method ByteSize.to(unit: str) -> float
  • added: method SecretField.get_secret_value() -> Any
  • added: property PaymentCardNumber.masked -> str
  • added: static method ByteSize.validate(v: StrIntFloat) -> ByteSize
  • added: static method ConstrainedFrozenSet.frozenset_length_validator(v: Optional[FrozenSet[T]]) -> Optional[FrozenSet[T]]
  • added: static method ConstrainedList.unique_items_validator(v: Optional[List[T]]) -> Optional[List[T]]
  • added: static method ConstrainedSet.set_length_validator(v: Optional[Set[T]]) -> Optional[Set[T]]
  • added: static method FutureDate.validate(value: date) -> date
  • added: static method PastDate.validate(value: date) -> date
  • added: static method PaymentCardNumber.validate_digits(card_number: str) -> str
  • added: static method PaymentCardNumber.validate_length_for_brand(card_number: PaymentCardNumber) -> PaymentCardNumber
  • added: static method PaymentCardNumber.validate_luhn_check_digit(card_number: str) -> str
  • added: variable DirectoryPath
  • added: variable FilePath
  • added: variable FiniteFloat
  • added: variable FutureDate
  • added: variable Json
  • added: variable NegativeFloat
  • added: variable NegativeInt
  • added: variable NonNegativeFloat
  • added: variable NonNegativeInt
  • added: variable NonPositiveFloat
  • added: variable NonPositiveInt
  • added: variable PastDate
  • added: variable PositiveFloat
  • added: variable PositiveInt
  • added: variable PyObject
  • added: variable StrictBool
  • added: variable StrictBytes
  • added: variable StrictFloat
  • added: variable StrictInt
  • added: variable StrictStr
  • added: variable UUID1
  • added: variable UUID3
  • added: variable UUID4
  • added: variable UUID5
  • added: export typing_base
  • added: function all_literal_values(type_: Type[Any]) -> Tuple[Any, ...]
  • added: function display_as_type(v: Type[Any]) -> str
  • added: function get_all_type_hints(obj: Any, globalns: Any=…, localns: Any=…) -> Any
  • added: function get_args(tp: Type[Any]) -> Tuple[Any, ...]
  • added: function get_origin(tp: Type[Any]) -> Optional[Type[Any]]
  • added: function get_sub_types(tp: Any) -> List[Any]
  • added: function is_callable_type(type_: Type[Any]) -> bool
  • added: function is_classvar(ann_type: Type[Any]) -> bool
  • added: function is_finalvar(ann_type: Type[Any]) -> bool
  • added: function is_literal_type(type_: Type[Any]) -> bool
  • added: function is_namedtuple(type_: Type[Any]) -> bool
  • added: function is_new_type(type_: Type[Any]) -> bool
  • added: function is_none_type(type_: Any) -> bool
  • added: function is_typeddict(type_: Type[Any]) -> bool
  • added: function is_typeddict_special(type_: Any) -> bool
  • added: function is_union(tp: Optional[Type[Any]]) -> bool
  • added: function new_type_supertype(type_: Type[Any]) -> Type[Any]
  • added: function resolve_annotations(raw_annotations: Dict[str, Type[Any]], module_name: Optional[str]) -> Dict[str, Type[Any]]
  • added: function update_field_forward_refs(field: ModelField, globalns: Any, localns: Any) -> None
  • added: function update_model_forward_refs(model: Type[Any], fields: Iterable[ModelField], json_encoders: Dict[Union[Type[Any], str, ForwardRef], AnyCallable], localns: DictStrAny, exc_to_suppress: Tuple[Type[BaseException], ...]=…) -> None
  • added: variable AbstractSetIntStr
  • added: variable AnyCallable
  • added: variable AnyClassMethod
  • added: variable CallableGenerator
  • added: variable DictAny
  • added: variable DictIntStrAny
  • added: variable DictStrAny
  • added: variable IntStr
  • added: variable ListStr
  • added: variable MappingIntStrAny
  • added: variable NoArgAnyCallable
  • added: variable NoneType
  • added: variable ReprArgs
  • added: variable SetStr
  • added: variable StrPath
  • added: variable TupleGenerator
  • added: variable WithArgsTypes
  • added: variable get_all_type_hints
  • removed: function change_exception(raise_exc: ExcType, *except_types: ExcType) -> Generator[None, None, None]
  • removed: function display_as_type(v: AnyType) -> str
  • removed: function evaluate_forwardref(type_, globalns, localns)
  • removed: function is_callable_type(type_: AnyType) -> bool
  • removed: function is_classvar(ann_type: AnyType) -> bool
  • removed: function is_literal_type(type_: AnyType) -> bool
  • removed: function is_new_type(type_: AnyType) -> bool
  • removed: function literal_values(type_: AnyType) -> Tuple[Any, ...]
  • removed: function make_dsn(*, driver: str, user: str=…, password: str=…, host: str=…, port: str=…, name: str=…, query: Dict[str, Any]=…) -> str
  • removed: function new_type_supertype(type_: AnyType) -> AnyType
  • removed: function resolve_annotations(raw_annotations: Dict[str, AnyType], module_name: Optional[str]) -> Dict[str, AnyType]
  • removed: function truncate(v: Union[str], *, max_len: int=…) -> str
  • removed: function update_field_forward_refs(field: Field, globalns: Any, localns: Any) -> None
  • removed: function url_regex_generator(*, relative: bool, require_tld: bool) -> Pattern[str]
  • removed: function validate_email(value: str) -> Tuple[str, str]
  • removed: variable AnyCallable
  • removed: variable AnyType
  • removed: variable ExcType
  • removed: variable Literal
  • removed: variable PRETTY_REGEX
  • removed: variable email_validator
  • removed: variable test_type
  • changed: class GetterDict → class GetterDict(Representation)
  • changed: class ValueItems → class ValueItems(Representation)
  • changed: constructor ValueItems(value: Any, items: Union[SetIntStr, DictIntStrAny]) -> None → constructor ValueItems(value: Any, items: Union[AbstractSetIntStr, MappingIntStrAny]) -> None
  • changed: function lenient_issubclass(cls: Any, class_or_tuple: Union[AnyType, Tuple[AnyType, ...]]) -> bool → function lenient_issubclass(cls: Any, class_or_tuple: Union[Type[Any], Tuple[Type[Any], ...], None]) -> bool
  • changed: function sequence_like(v: AnyType) -> bool → function sequence_like(v: Any) -> bool
  • changed: function validate_field_name(bases: List[Type[BaseModel]], field_name: str) -> None → function validate_field_name(bases: Iterable[Type[Any]], field_name: str) -> None
  • changed: method GetterDict.get(item: Any, default: Any) -> Any → method GetterDict.get(key: Any, default: Any=…) -> Any
  • changed: method GetterDict.keys() -> Set[Any] → method GetterDict.keys() -> List[Any]
  • changed: method ValueItems.for_element(e: IntStr) -> Optional[Union[SetIntStr, DictIntStrAny]] → method ValueItems.for_element(e: IntStr) -> Optional[Union[AbstractSetIntStr, MappingIntStrAny]]
  • added: class ClassAttribute
  • added: class PyObjectStr(str)
  • added: class Representation
  • added: constructor ClassAttribute(name: str, value: Any) -> None
  • added: export version_info
  • added: function deep_update(mapping: Dict[KeyType, Any], *updating_mappings: Dict[KeyType, Any]) -> Dict[KeyType, Any]
  • added: function get_discriminator_alias_and_values(tp: Any, discriminator_key: str) -> Tuple[str, Tuple[str, ...]]
  • added: function get_model(obj: Union[Type[BaseModel], Type[Dataclass]]) -> Type[BaseModel]
  • added: function get_unique_discriminator_alias(all_aliases: Collection[str], discriminator_key: str) -> str
  • added: function is_valid_field(name: str) -> bool
  • added: function is_valid_identifier(identifier: str) -> bool
  • added: function lenient_isinstance(o: Any, class_or_tuple: Union[Type[Any], Tuple[Type[Any], ...], None]) -> bool
  • added: function path_type(p: Path) -> str
  • added: function smart_deepcopy(obj: Obj) -> Obj
  • added: function to_camel(string: str) -> str
  • added: function to_lower_camel(string: str) -> str
  • added: function update_not_none(mapping: Dict[Any, Any], **update: Any) -> None
  • added: method GetterDict.extra_keys() -> Set[Any]
  • added: method GetterDict.items() -> Iterator[Tuple[str, Any]]
  • added: method GetterDict.values() -> List[Any]
  • added: static method ValueItems.is_true(v: Any) -> bool
  • added: static method ValueItems.merge(base: Any, override: Any, intersect: bool=…) -> Any
  • added: variable DUNDER_ATTRIBUTES
  • added: variable ROOT_KEY
  • added: export AnyCallable
  • added: export NoArgAnyCallable
  • added: export NoneType
  • added: export StrPath
  • added: export WithArgsTypes
  • added: export all_literal_values
  • added: export display_as_type
  • added: export get_all_type_hints
  • added: export get_args
  • added: export get_origin
  • added: export get_sub_types
  • added: export is_callable_type
  • added: export is_classvar
  • added: export is_finalvar
  • added: export is_literal_type
  • added: export is_namedtuple
  • added: export is_new_type
  • added: export is_none_type
  • added: export is_typeddict
  • added: export is_typeddict_special
  • added: export is_union
  • added: export new_type_supertype
  • added: export resolve_annotations
  • added: export typing_base
  • added: export update_field_forward_refs
  • added: export update_model_forward_refs
  • removed: function is_none_validator(v: Any) -> None
  • removed: function not_none_validator(v: Any) -> Any
  • removed: variable BOOL_STRINGS
  • removed: variable NoneType
  • removed: variable pattern_validators
  • changed: constructor IfConfig(validator: AnyCallable, *config_attr_names: str) -> None → constructor IfConfig(validator: AnyCallable, *config_attr_names: str, ignored_value: Any=…) -> None
  • changed: function anystr_length_validator(v: StrBytes, field: Field, config: BaseConfig) -> StrBytes → function anystr_length_validator(v: StrBytes, config: BaseConfig) -> StrBytes
  • changed: function anystr_strip_whitespace(v: StrBytes, field: Field, config: BaseConfig) -> StrBytes → function anystr_strip_whitespace(v: StrBytes) -> StrBytes
  • changed: function bytes_validator(v: Any) -> bytes → function bytes_validator(v: Any) -> Union[bytes]
  • changed: function constant_validator(v: Any, field: Field) -> Any → function constant_validator(v: Any, field: ModelField) -> Any
  • changed: function enum_validator(v: Any, field: Field, config: BaseConfig) -> Enum → function enum_validator(v: Any) -> Enum
  • changed: function find_validators(type_: AnyType, config: Type[BaseConfig]) -> Generator[AnyCallable, None, None] → function find_validators(type_: Type[Any], config: Type[BaseConfig]) -> Generator[AnyCallable, None, None]
  • changed: function number_multiple_validator(v: Number, field: Field) -> Number → function number_multiple_validator(v: Number, field: ModelField) -> Number
  • changed: function number_size_validator(v: Number, field: Field) -> Number → function number_size_validator(v: Number, field: ModelField) -> Number
  • changed: function str_validator(v: Any) -> Optional[str] → function str_validator(v: Any) -> Union[str]
  • changed: function uuid_validator(v: Any, field: Field) -> UUID → function uuid_validator(v: Any, field: ModelField) -> UUID
  • added: function any_class_validator(v: Any) -> Type[T]
  • added: function anystr_lower(v: StrBytes) -> StrBytes
  • added: function anystr_upper(v: StrBytes) -> StrBytes
  • added: function constr_length_validator(v: StrBytes, field: ModelField, config: BaseConfig) -> StrBytes
  • added: function constr_lower(v: StrBytes, field: ModelField, config: BaseConfig) -> StrBytes
  • added: function constr_strip_whitespace(v: StrBytes, field: ModelField, config: BaseConfig) -> StrBytes
  • added: function constr_upper(v: StrBytes, field: ModelField, config: BaseConfig) -> StrBytes
  • added: function deque_validator(v: Any) -> Deque[Any]
  • added: function enum_member_validator(v: Any, field: ModelField, config: BaseConfig) -> Enum
  • added: function float_finite_validator(v: Number, field: ModelField, config: BaseConfig) -> Number
  • added: function frozenset_validator(v: Any) -> FrozenSet[Any]
  • added: function hashable_validator(v: Any) -> Hashable
  • added: function int_enum_validator(v: Any) -> IntEnum
  • added: function make_class_validator(type_: Type[T]) -> Callable[[Any], Type[T]]
  • added: function make_namedtuple_validator(namedtuple_cls: Type[NamedTupleT], config: Type[BaseConfig]) -> Callable[[Tuple[Any, ...]], NamedTupleT]
  • added: function make_typeddict_validator(typeddict_cls: Type[TypedDict], config: Type[BaseConfig]) -> Callable[[Any], Dict[str, Any]]
  • added: function none_validator(v: Any) -> Literal[None]
  • added: function strict_bytes_validator(v: Any) -> Union[bytes]
  • added: function strict_float_validator(v: Any) -> float
  • added: function strict_int_validator(v: Any) -> int
  • added: function strict_str_validator(v: Any) -> Union[str]
  • added: function validate_json(v: Any, config: BaseConfig) -> Any
  • added: variable BOOL_FALSE
  • added: variable BOOL_TRUE
  • added: variable NamedTupleT
  • added: variable max_str_int
  • added: function version_info() -> str
  • added: variable compiled
  • added: variable compiled: bool