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, #1178 by @samuelcolvin
Change the default number of threads used when compiling with cython to one,
allow override via the CYTHON_NTHREADS environment variable, #1074 by @samuelcolvin
Run FastAPI tests during Pydantic's CI tests, #1075 by @tiangolo
My mypy strictness constraints, and associated tweaks to type annotations, #1077 by @samuelcolvin
Add __eq__ to SecretStr and SecretBytes to allow "value equals", #1079 by @sbv-trueenergy
Fix schema generation for nested None case, #1088 by @lutostag
Possible Breaking Change: Add support for required Optional with name: Optional[AnyType] = Field(...)
and refactor ModelField creation to preserve required parameter value, #1031 by @tiangolo;
see here for details
Breaking Change: deprecate the Model.fields property, use Model.__fields__ instead, #883 by @samuelcolvin
Breaking Change: Change the precedence of aliases so child model aliases override parent aliases,
including using alias_generator, #904 by @samuelcolvin
Breaking change: Rename skip_defaults to exclude_unset, and add ability to exclude actual defaults, #915 by @dmontagu
Add **kwargs to pydantic.main.ModelMetaclass.__new__ so __init_subclass__ can take custom parameters on extended
BaseModel classes, #867 by @retnikt
Fix field of a type that has a default value, #880 by @koxudaxi
Use FutureWarning instead of DeprecationWarning when alias instead of env is used for settings models, #881 by @samuelcolvin
Fix issue with BaseSettings inheritance and alias getting set to None, #882 by @samuelcolvin
Modify __repr__ and __str__ methods to be consistent across all public classes, add __pretty__ to support
python-devtools, #884 by @samuelcolvin
deprecation warning for case_insensitive on BaseSettings config, #885 by @samuelcolvin
For BaseSettings merge environment variables and in-code values recursively, as long as they create a valid object
when merged together, to allow splitting init arguments, #888 by @idmitrievsky
Change the signature of Model.construct() to be more user-friendly, document construct() usage, #898 by @samuelcolvin
Add example for the construct() method, #907 by @ashears
Improve use of Field constraints on complex types, raise an error if constraints are not enforceable,
also support tuples with an ellipsis Tuple[X, ...], Sequence and FrozenSet in schema, #909 by @samuelcolvin
update docs for bool missing valid value, #911 by @trim21
Breaking Change: rename Schema to Field, make it a function to placate mypy, #577 by @samuelcolvin
Breaking Change: modify parsing behavior for bool, #617 by @dmontagu
Breaking Change:get_validators is no longer recognised, use __get_validators__.
Config.ignore_extra and Config.allow_extra are no longer recognised, use Config.extra, #720 by @samuelcolvin
Breaking Change: modify default config settings for BaseSettings; case_insensitive renamed to case_sensitive,
default changed to case_sensitive = False, env_prefix default changed to '' - e.g. no prefix, #721 by @dmontagu
Breaking change: Implement root_validator and rename root errors from __obj__ to __root__, #729 by @samuelcolvin
Breaking Change: alter the behaviour of dict(model) so that sub-models are nolonger
converted to dictionaries, #733 by @samuelcolvin
Breaking change: Added initvars support to post_init_post_parse, #748 by @Raphael-C-Almeida
Breaking Change: Make BaseModel.json() only serialize the __root__ key for models with custom root, #752 by @dmontagu
Breaking Change: complete rewrite of URL parsing logic, #755 by @samuelcolvin
Breaking Change: preserve superclass annotations for field-determination when not provided in subclass, #757 by @dmontagu
Breaking Change:BaseSettings now uses the special env settings to define which environment variables to
read, not aliases, #847 by @samuelcolvin
add support for assert statements inside validators, #653 by @abdusco
Update documentation to specify the use of pydantic.dataclasses.dataclass and subclassing pydantic.BaseModel, #710 by @maddosaurus
Allow custom JSON decoding and encoding via json_loads and json_dumpsConfig properties, #714 by @samuelcolvin
make all annotated fields occur in the order declared, #715 by @dmontagu
use pytest to test mypy integration, #735 by @dmontagu
Added support for FrozenSet members in dataclasses, and a better error when attempting to use types from the typing module that are not supported by Pydantic, #745 by @djpetti
add documentation for Pycharm Plugin, #750 by @koxudaxi
moving typing related objects into pydantic.typing, #761 by @samuelcolvin
Minor performance improvements to ErrorWrapper, ValidationError and datetime parsing, #763 by @samuelcolvin
Improvements to datetime/date/time/timedelta types: more descriptive errors,
change errors to value_error not type_error, support bytes, #766 by @samuelcolvin
fix error messages for Literal types with multiple allowed values, #770 by @dmontagu
Improved auto-generated title field in JSON schema by converting underscore to space, #772 by @skewty
support mypy --no-implicit-reexport for dataclasses, also respect --no-implicit-reexport in pydantic itself, #783 by @samuelcolvin
Set additionalProperties to false in schema for models with extra fields disallowed, #796 by @Code0x58
EmailStr validation method now returns local part case-sensitive per RFC 5321, #798 by @henriklindgren
Added ability to validate strictness to ConstrainedFloat, ConstrainedInt and ConstrainedStr and added
StrictFloat and StrictInt classes, #799 by @DerRidda
Improve handling of None and Optional, replace whole with each_item (inverse meaning, default False)
on validators, #803 by @samuelcolvin
add model name to ValidationError error message, #676 by @dmontagu
breaking change: remove __getattr__ and rename __values__ to __dict__ on BaseModel,
deprecation warning on use __values__ attr, attributes access speed increased up to 14 times, #712 by @MrMrRobat
support ForwardRef (without self-referencing annotations) in Python 3.6, #706 by @koxudaxi
implement schema_extra in Config sub-class, #663 by @tiangolo
fix so nested classes which inherit and change __init__ are correctly processed while still allowing self as a
parameter, #644 by @lnaden and @dgasmith
Updated documentation to elucidate the usage of Union when defining multiple types under an attribute's
annotation and showcase how the type-order can affect marshalling of provided values, #594 by @somada141
fix to schema generation for IPvAnyAddress, IPvAnyInterface, IPvAnyNetwork#498 by @pilosus
fix variable length tuples support, #495 by @pilosus
fix return type hint for create_model, #526 by @dmontagu
Breaking Change: fix .dict(skip_keys=True) skipping values set via alias (this involves changing
validate_model() to always returns Tuple[Dict[str, Any], Set[str], Optional[ValidationError]]), #517 by @sommd
fix to schema generation for IPv4Address, IPv6Address, IPv4Interface,
IPv6Interface, IPv4Network, IPv6Network#532 by @euri10
breaking change (maybe): more sophisticated argument parsing for validators, any subset of
values, config and field is now permitted, eg. (cls, value, field),
however the variadic key word argument ("**kwargs") must be called kwargs, #388 by @samuelcolvin
breaking change: Adds skip_defaults argument to BaseModel.dict() to allow skipping of fields that
were not explicitly set, signature of Model.construct() changed, #389 by @dgasmith
add py.typed marker file for PEP-561 support, #391 by @je-l
Fix extra behaviour for multiple inheritance/mix-ins, #394 by @YaraslauZhylko
Fix schema for fields with validator decorator, fix #375 by @tiangolo
Add multiple_of constraint to ConstrainedDecimal, ConstrainedFloat, ConstrainedInt
and their related types condecimal, confloat, and conint#371, thanks @StephenBrown2
Deprecated ignore_extra and allow_extra Config fields in favor of extra, #352 by @liiight
Add type annotations to all functions, test fully with mypy, #373 by @samuelcolvin
fix for 'missing' error with validate_all or validate_always, #381 by @samuelcolvin
Change the second/millisecond watershed for date/datetime parsing to 2e10, #385 by @samuelcolvin
breaking change: don't call validators on keys of dictionaries, #254 by @samuelcolvin
Fix validators with always=True when the default is None or the type is optional, also prevent
whole validators being called for sub-fields, fix #132 by @samuelcolvin
improve documentation for settings priority and allow it to be easily changed, #343 by @samuelcolvin
fix ignore_extra=False and allow_population_by_alias=True, fix #257 by @samuelcolvin
breaking change: Set BaseConfig attributes min_anystr_length and max_anystr_length to
None by default, fix #349 in #350 by @tiangolo
fix schema generation for fields annotated as : dict, : list,
: tuple and : set, #330 & #335 by @nkonin
add support for constrained strings as dict keys in schema, #332 by @tiangolo
support for passing Config class in dataclasses decorator, #276 by @jarekkar
(breaking change: this supersedes the validate_assignment argument with config)