Pydantic

Latest version: v2.7.3

Safety actively analyzes 636221 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 23

2.4.0

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.4.0)

What's Changed

Packaging

* Update pydantic-core to 2.10.0 by samuelcolvin in [7542](https://github.com/pydantic/pydantic/pull/7542)

New Features

* Add `Base64Url` types by dmontagu in [7286](https://github.com/pydantic/pydantic/pull/7286)
* Implement optional `number` to `str` coercion by lig in [7508](https://github.com/pydantic/pydantic/pull/7508)
* Allow access to `field_name` and `data` in all validators if there is data and a field name by samuelcolvin in [7542](https://github.com/pydantic/pydantic/pull/7542)
* Add `BaseModel.model_validate_strings` and `TypeAdapter.validate_strings` by hramezani in [7552](https://github.com/pydantic/pydantic/pull/7552)
* Add Pydantic `plugins` experimental implementation by lig samuelcolvin and Kludex in [6820](https://github.com/pydantic/pydantic/pull/6820)

Changes

* Do not override `model_post_init` in subclass with private attrs by Viicos in [7302](https://github.com/pydantic/pydantic/pull/7302)
* Make fields with defaults not required in the serialization schema by default by dmontagu in [7275](https://github.com/pydantic/pydantic/pull/7275)
* Mark `Extra` as deprecated by disrupted in [7299](https://github.com/pydantic/pydantic/pull/7299)
* Make `EncodedStr` a dataclass by Kludex in [7396](https://github.com/pydantic/pydantic/pull/7396)
* Move `annotated_handlers` to be public by samuelcolvin in [7569](https://github.com/pydantic/pydantic/pull/7569)

Performance

* Simplify flattening and inlining of `CoreSchema` by adriangb in [7523](https://github.com/pydantic/pydantic/pull/7523)
* Remove unused copies in `CoreSchema` walking by adriangb in [7528](https://github.com/pydantic/pydantic/pull/7528)
* Add caches for collecting definitions and invalid schemas from a CoreSchema by adriangb in [7527](https://github.com/pydantic/pydantic/pull/7527)
* Eagerly resolve discriminated unions and cache cases where we can't by adriangb in [7529](https://github.com/pydantic/pydantic/pull/7529)
* Replace `dict.get` and `dict.setdefault` with more verbose versions in `CoreSchema` building hot paths by adriangb in [7536](https://github.com/pydantic/pydantic/pull/7536)
* Cache invalid `CoreSchema` discovery by adriangb in [7535](https://github.com/pydantic/pydantic/pull/7535)
* Allow disabling `CoreSchema` validation for faster startup times by adriangb in [7565](https://github.com/pydantic/pydantic/pull/7565)

Fixes

* Fix config detection for `TypedDict` from grandparent classes by dmontagu in [7272](https://github.com/pydantic/pydantic/pull/7272)
* Fix hash function generation for frozen models with unusual MRO by dmontagu in [7274](https://github.com/pydantic/pydantic/pull/7274)
* Make `strict` config overridable in field for Path by hramezani in [7281](https://github.com/pydantic/pydantic/pull/7281)
* Use `ser_json_<timedelta|bytes>` on default in `GenerateJsonSchema` by Kludex in [7269](https://github.com/pydantic/pydantic/pull/7269)
* Adding a check that alias is validated as an identifier for Python by andree0 in [7319](https://github.com/pydantic/pydantic/pull/7319)
* Raise an error when computed field overrides field by sydney-runkle in [7346](https://github.com/pydantic/pydantic/pull/7346)
* Fix applying `SkipValidation` to referenced schemas by adriangb in [7381](https://github.com/pydantic/pydantic/pull/7381)
* Enforce behavior of private attributes having double leading underscore by lig in [7265](https://github.com/pydantic/pydantic/pull/7265)
* Standardize `__get_pydantic_core_schema__` signature by hramezani in [7415](https://github.com/pydantic/pydantic/pull/7415)
* Fix generic dataclass fields mutation bug (when using `TypeAdapter`) by sydney-runkle in [7435](https://github.com/pydantic/pydantic/pull/7435)
* Fix `TypeError` on `model_validator` in `wrap` mode by pmmmwh in [7496](https://github.com/pydantic/pydantic/pull/7496)
* Improve enum error message by hramezani in [7506](https://github.com/pydantic/pydantic/pull/7506)
* Make `repr` work for instances that failed initialization when handling `ValidationError`s by dmontagu in [7439](https://github.com/pydantic/pydantic/pull/7439)
* Fixed a regular expression denial of service issue by limiting whitespaces by prodigysml in [7360](https://github.com/pydantic/pydantic/pull/7360)
* Fix handling of `UUID` values having `UUID.version=None` by lig in [7566](https://github.com/pydantic/pydantic/pull/7566)
* Fix `__iter__` returning private `cached_property` info by sydney-runkle in [7570](https://github.com/pydantic/pydantic/pull/7570)
* Improvements to version info message by samuelcolvin in [7594](https://github.com/pydantic/pydantic/pull/7594)

New Contributors
* 15498th made their first contribution in [7238](https://github.com/pydantic/pydantic/pull/7238)
* GabrielCappelli made their first contribution in [7213](https://github.com/pydantic/pydantic/pull/7213)
* tobni made their first contribution in [7184](https://github.com/pydantic/pydantic/pull/7184)
* redruin1 made their first contribution in [7282](https://github.com/pydantic/pydantic/pull/7282)
* FacerAin made their first contribution in [7288](https://github.com/pydantic/pydantic/pull/7288)
* acdha made their first contribution in [7297](https://github.com/pydantic/pydantic/pull/7297)
* andree0 made their first contribution in [7319](https://github.com/pydantic/pydantic/pull/7319)
* gordonhart made their first contribution in [7375](https://github.com/pydantic/pydantic/pull/7375)
* pmmmwh made their first contribution in [7496](https://github.com/pydantic/pydantic/pull/7496)
* disrupted made their first contribution in [7299](https://github.com/pydantic/pydantic/pull/7299)
* prodigysml made their first contribution in [7360](https://github.com/pydantic/pydantic/pull/7360)

2.3.0

Not secure
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.3.0)

* 🔥 Remove orphaned changes file from repo by lig in [7168](https://github.com/pydantic/pydantic/pull/7168)
* Add copy button on documentation by Kludex in [7190](https://github.com/pydantic/pydantic/pull/7190)
* Fix docs on JSON type by Kludex in [7189](https://github.com/pydantic/pydantic/pull/7189)
* Update mypy 1.5.0 to 1.5.1 in CI by hramezani in [7191](https://github.com/pydantic/pydantic/pull/7191)
* fix download links badge by samuelcolvin in [7200](https://github.com/pydantic/pydantic/pull/7200)
* add 2.2.1 to changelog by samuelcolvin in [7212](https://github.com/pydantic/pydantic/pull/7212)
* Make ModelWrapValidator protocols generic by dmontagu in [7154](https://github.com/pydantic/pydantic/pull/7154)
* Correct `Field(..., exclude: bool)` docs by samuelcolvin in [7214](https://github.com/pydantic/pydantic/pull/7214)
* Make shadowing attributes a warning instead of an error by adriangb in [7193](https://github.com/pydantic/pydantic/pull/7193)
* Document `Base64Str` and `Base64Bytes` by Kludex in [7192](https://github.com/pydantic/pydantic/pull/7192)
* Fix `config.defer_build` for serialization first cases by samuelcolvin in [7024](https://github.com/pydantic/pydantic/pull/7024)
* clean Model docstrings in JSON Schema by samuelcolvin in [7210](https://github.com/pydantic/pydantic/pull/7210)
* fix [7228](https://github.com/pydantic/pydantic/pull/7228) (typo): docs in `validators.md` to correct `validate_default` kwarg by lmmx in [#7229](https://github.com/pydantic/pydantic/pull/7229)
* ✅ Implement `tzinfo.fromutc` method for `TzInfo` in `pydantic-core` by lig in [7019](https://github.com/pydantic/pydantic/pull/7019)
* Support `__get_validators__` by hramezani in [7197](https://github.com/pydantic/pydantic/pull/7197)

2.2.1

Not secure
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.2.1)

* Make `xfail`ing test for root model extra stop `xfail`ing by dmontagu in [6937](https://github.com/pydantic/pydantic/pull/6937)
* Optimize recursion detection by stopping on the second visit for the same object by mciucu in [7160](https://github.com/pydantic/pydantic/pull/7160)
* fix link in docs by tlambert03 in [7166](https://github.com/pydantic/pydantic/pull/7166)
* Replace MiMalloc w/ default allocator by adriangb in [pydantic/pydantic-core900](https://github.com/pydantic/pydantic-core/pull/900)
* Bump pydantic-core to 2.6.1 and prepare 2.2.1 release by adriangb in [7176](https://github.com/pydantic/pydantic/pull/7176)

2.2.0

Not secure
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.2.0)

* Split "pipx install" setup command into two commands on the documentation site by nomadmtb in [6869](https://github.com/pydantic/pydantic/pull/6869)
* Deprecate `Field.include` by hramezani in [6852](https://github.com/pydantic/pydantic/pull/6852)
* Fix typo in default factory error msg by hramezani in [6880](https://github.com/pydantic/pydantic/pull/6880)
* Simplify handling of typing.Annotated in GenerateSchema by dmontagu in [6887](https://github.com/pydantic/pydantic/pull/6887)
* Re-enable fastapi tests in CI by dmontagu in [6883](https://github.com/pydantic/pydantic/pull/6883)
* Make it harder to hit collisions with json schema defrefs by dmontagu in [6566](https://github.com/pydantic/pydantic/pull/6566)
* Cleaner error for invalid input to `Path` fields by samuelcolvin in [6903](https://github.com/pydantic/pydantic/pull/6903)
* :memo: support Coordinate Type by yezz123 in [6906](https://github.com/pydantic/pydantic/pull/6906)
* Fix `ForwardRef` wrapper for py 3.10.0 (shim until bpo-45166) by randomir in [6919](https://github.com/pydantic/pydantic/pull/6919)
* Fix misbehavior related to copying of RootModel by dmontagu in [6918](https://github.com/pydantic/pydantic/pull/6918)
* Fix issue with recursion error caused by ParamSpec by dmontagu in [6923](https://github.com/pydantic/pydantic/pull/6923)
* Add section about Constrained classes to the Migration Guide by Kludex in [6924](https://github.com/pydantic/pydantic/pull/6924)
* Use `main` branch for badge links by Viicos in [6925](https://github.com/pydantic/pydantic/pull/6925)
* Add test for v1/v2 Annotated discrepancy by carlbordum in [6926](https://github.com/pydantic/pydantic/pull/6926)
* Make the v1 mypy plugin work with both v1 and v2 by dmontagu in [6921](https://github.com/pydantic/pydantic/pull/6921)
* Fix issue where generic models couldn't be parametrized with BaseModel by dmontagu in [6933](https://github.com/pydantic/pydantic/pull/6933)
* Remove xfail for discriminated union with alias by dmontagu in [6938](https://github.com/pydantic/pydantic/pull/6938)
* add field_serializer to computed_field by andresliszt in [6965](https://github.com/pydantic/pydantic/pull/6965)
* Use union_schema with Type[Union[...]] by JeanArhancet in [6952](https://github.com/pydantic/pydantic/pull/6952)
* Fix inherited typeddict attributes / config by adriangb in [6981](https://github.com/pydantic/pydantic/pull/6981)
* fix dataclass annotated before validator called twice by davidhewitt in [6998](https://github.com/pydantic/pydantic/pull/6998)
* Update test-fastapi deselected tests by hramezani in [7014](https://github.com/pydantic/pydantic/pull/7014)
* Fix validator doc format by hramezani in [7015](https://github.com/pydantic/pydantic/pull/7015)
* Fix typo in docstring of model_json_schema by AdamVinch-Federated in [7032](https://github.com/pydantic/pydantic/pull/7032)
* remove unused "type ignores" with pyright by samuelcolvin in [7026](https://github.com/pydantic/pydantic/pull/7026)
* Add benchmark representing FastAPI startup time by adriangb in [7030](https://github.com/pydantic/pydantic/pull/7030)
* Fix json_encoders for Enum subclasses by adriangb in [7029](https://github.com/pydantic/pydantic/pull/7029)
* Update docstring of `ser_json_bytes` regarding base64 encoding by Viicos in [7052](https://github.com/pydantic/pydantic/pull/7052)
* Allow `validate_call` to work on async methods by adriangb in [7046](https://github.com/pydantic/pydantic/pull/7046)
* Fix: mypy error with `Settings` and `SettingsConfigDict` by JeanArhancet in [7002](https://github.com/pydantic/pydantic/pull/7002)
* Fix some typos (repeated words and it's/its) by eumiro in [7063](https://github.com/pydantic/pydantic/pull/7063)
* Fix the typo in docstring by harunyasar in [7062](https://github.com/pydantic/pydantic/pull/7062)
* Docs: Fix broken URL in the pydantic-settings package recommendation by swetjen in [6995](https://github.com/pydantic/pydantic/pull/6995)
* Handle constraints being applied to schemas that don't accept it by adriangb in [6951](https://github.com/pydantic/pydantic/pull/6951)
* Replace almost_equal_floats with math.isclose by eumiro in [7082](https://github.com/pydantic/pydantic/pull/7082)
* bump pydantic-core to 2.5.0 by davidhewitt in [7077](https://github.com/pydantic/pydantic/pull/7077)
* Add `short_version` and use it in links by hramezani in [7115](https://github.com/pydantic/pydantic/pull/7115)
* 📝 Add usage link to `RootModel` by Kludex in [7113](https://github.com/pydantic/pydantic/pull/7113)
* Revert "Fix default port for mongosrv DSNs (6827)" by Kludex in [7116](https://github.com/pydantic/pydantic/pull/7116)
* Clarify validate_default and _Unset handling in usage docs and migration guide by benbenbang in [6950](https://github.com/pydantic/pydantic/pull/6950)
* Tweak documentation of `Field.exclude` by Viicos in [7086](https://github.com/pydantic/pydantic/pull/7086)
* Do not require `validate_assignment` to use `Field.frozen` by Viicos in [7103](https://github.com/pydantic/pydantic/pull/7103)
* tweaks to `_core_utils` by samuelcolvin in [7040](https://github.com/pydantic/pydantic/pull/7040)
* Make DefaultDict working with set by hramezani in [7126](https://github.com/pydantic/pydantic/pull/7126)
* Don't always require typing.Generic as a base for partially parametrized models by dmontagu in [7119](https://github.com/pydantic/pydantic/pull/7119)
* Fix issue with JSON schema incorrectly using parent class core schema by dmontagu in [7020](https://github.com/pydantic/pydantic/pull/7020)
* Fix xfailed test related to TypedDict and alias_generator by dmontagu in [6940](https://github.com/pydantic/pydantic/pull/6940)
* Improve error message for NameEmail by dmontagu in [6939](https://github.com/pydantic/pydantic/pull/6939)
* Fix generic computed fields by dmontagu in [6988](https://github.com/pydantic/pydantic/pull/6988)
* Reflect namedtuple default values during validation by dmontagu in [7144](https://github.com/pydantic/pydantic/pull/7144)
* Update dependencies, fix pydantic-core usage, fix CI issues by dmontagu in [7150](https://github.com/pydantic/pydantic/pull/7150)
* Add mypy 1.5.0 by hramezani in [7118](https://github.com/pydantic/pydantic/pull/7118)
* Handle non-json native enum values by adriangb in [7056](https://github.com/pydantic/pydantic/pull/7056)
* document `round_trip` in Json type documentation by jc-louis in [7137](https://github.com/pydantic/pydantic/pull/7137)
* Relax signature checks to better support builtins and C extension functions as validators by adriangb in [7101](https://github.com/pydantic/pydantic/pull/7101)
* add union_mode='left_to_right' by davidhewitt in [7151](https://github.com/pydantic/pydantic/pull/7151)
* Include an error message hint for inherited ordering by yvalencia91 in [7124](https://github.com/pydantic/pydantic/pull/7124)
* Fix one docs link and resolve some warnings for two others by dmontagu in [7153](https://github.com/pydantic/pydantic/pull/7153)
* Include Field extra keys name in warning by hramezani in [7136](https://github.com/pydantic/pydantic/pull/7136)

2.1.1

Not secure
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.1.1)

* Skip FieldInfo merging when unnecessary by dmontagu in [6862](https://github.com/pydantic/pydantic/pull/6862)

2.1.0

Not secure
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.1.0)

* Add `StringConstraints` for use as Annotated metadata by adriangb in [6605](https://github.com/pydantic/pydantic/pull/6605)
* Try to fix intermittently failing CI by adriangb in [6683](https://github.com/pydantic/pydantic/pull/6683)
* Remove redundant example of optional vs default. by ehiggs-deliverect in [6676](https://github.com/pydantic/pydantic/pull/6676)
* Docs update by samuelcolvin in [6692](https://github.com/pydantic/pydantic/pull/6692)
* Remove the Validate always section in validator docs by adriangb in [6679](https://github.com/pydantic/pydantic/pull/6679)
* Fix recursion error in json schema generation by adriangb in [6720](https://github.com/pydantic/pydantic/pull/6720)
* Fix incorrect subclass check for secretstr by AlexVndnblcke in [6730](https://github.com/pydantic/pydantic/pull/6730)
* update pdm / pdm lockfile to 2.8.0 by davidhewitt in [6714](https://github.com/pydantic/pydantic/pull/6714)
* unpin pdm on more CI jobs by davidhewitt in [6755](https://github.com/pydantic/pydantic/pull/6755)
* improve source locations for auxiliary packages in docs by davidhewitt in [6749](https://github.com/pydantic/pydantic/pull/6749)
* Assume builtins don't accept an info argument by adriangb in [6754](https://github.com/pydantic/pydantic/pull/6754)
* Fix bug where calling `help(BaseModelSubclass)` raises errors by hramezani in [6758](https://github.com/pydantic/pydantic/pull/6758)
* Fix mypy plugin handling of `model_validator(mode="after")` by ljodal in [6753](https://github.com/pydantic/pydantic/pull/6753)
* update pydantic-core to 2.3.1 by davidhewitt in [6756](https://github.com/pydantic/pydantic/pull/6756)
* Mypy plugin for settings by hramezani in [6760](https://github.com/pydantic/pydantic/pull/6760)
* Use `contentSchema` keyword for JSON schema by dmontagu in [6715](https://github.com/pydantic/pydantic/pull/6715)
* fast-path checking finite decimals by davidhewitt in [6769](https://github.com/pydantic/pydantic/pull/6769)
* Docs update by samuelcolvin in [6771](https://github.com/pydantic/pydantic/pull/6771)
* Improve json schema doc by hramezani in [6772](https://github.com/pydantic/pydantic/pull/6772)
* Update validator docs by adriangb in [6695](https://github.com/pydantic/pydantic/pull/6695)
* Fix typehint for wrap validator by dmontagu in [6788](https://github.com/pydantic/pydantic/pull/6788)
* 🐛 Fix validation warning for unions of Literal and other type by lig in [6628](https://github.com/pydantic/pydantic/pull/6628)
* Update documentation for generics support in V2 by tpdorsey in [6685](https://github.com/pydantic/pydantic/pull/6685)
* add pydantic-core build info to `version_info()` by samuelcolvin in [6785](https://github.com/pydantic/pydantic/pull/6785)
* Fix pydantic dataclasses that use slots with default values by dmontagu in [6796](https://github.com/pydantic/pydantic/pull/6796)
* Fix inheritance of hash function for frozen models by dmontagu in [6789](https://github.com/pydantic/pydantic/pull/6789)
* ✨ Add `SkipJsonSchema` annotation by Kludex in [6653](https://github.com/pydantic/pydantic/pull/6653)
* Error if an invalid field name is used with Field by dmontagu in [6797](https://github.com/pydantic/pydantic/pull/6797)
* Add `GenericModel` to `MOVED_IN_V2` by adriangb in [6776](https://github.com/pydantic/pydantic/pull/6776)
* Remove unused code from `docs/usage/types/custom.md` by hramezani in [6803](https://github.com/pydantic/pydantic/pull/6803)
* Fix `float` -> `Decimal` coercion precision loss by adriangb in [6810](https://github.com/pydantic/pydantic/pull/6810)
* remove email validation from the north star benchmark by davidhewitt in [6816](https://github.com/pydantic/pydantic/pull/6816)
* Fix link to mypy by progsmile in [6824](https://github.com/pydantic/pydantic/pull/6824)
* Improve initialization hooks example by hramezani in [6822](https://github.com/pydantic/pydantic/pull/6822)
* Fix default port for mongosrv DSNs by dmontagu in [6827](https://github.com/pydantic/pydantic/pull/6827)
* Improve API documentation, in particular more links between usage and API docs by samuelcolvin in [6780](https://github.com/pydantic/pydantic/pull/6780)
* update pydantic-core to 2.4.0 by davidhewitt in [6831](https://github.com/pydantic/pydantic/pull/6831)
* Fix `annotated_types.MaxLen` validator for custom sequence types by ImogenBits in [6809](https://github.com/pydantic/pydantic/pull/6809)
* Update V1 by hramezani in [6833](https://github.com/pydantic/pydantic/pull/6833)
* Make it so callable JSON schema extra works by dmontagu in [6798](https://github.com/pydantic/pydantic/pull/6798)
* Fix serialization issue with `InstanceOf` by dmontagu in [6829](https://github.com/pydantic/pydantic/pull/6829)
* Add back support for `json_encoders` by adriangb in [6811](https://github.com/pydantic/pydantic/pull/6811)
* Update field annotations when building the schema by dmontagu in [6838](https://github.com/pydantic/pydantic/pull/6838)
* Use `WeakValueDictionary` to fix generic memory leak by dmontagu in [6681](https://github.com/pydantic/pydantic/pull/6681)
* Add `config.defer_build` to optionally make model building lazy by samuelcolvin in [6823](https://github.com/pydantic/pydantic/pull/6823)
* delegate `UUID` serialization to pydantic-core by davidhewitt in [6850](https://github.com/pydantic/pydantic/pull/6850)
* Update `json_encoders` docs by adriangb in [6848](https://github.com/pydantic/pydantic/pull/6848)
* Fix error message for `staticmethod`/`classmethod` order with validate_call by dmontagu in [6686](https://github.com/pydantic/pydantic/pull/6686)
* Improve documentation for `Config` by samuelcolvin in [6847](https://github.com/pydantic/pydantic/pull/6847)
* Update serialization doc to mention `Field.exclude` takes priority over call-time `include/exclude` by hramezani in [6851](https://github.com/pydantic/pydantic/pull/6851)
* Allow customizing core schema generation by making `GenerateSchema` public by adriangb in [6737](https://github.com/pydantic/pydantic/pull/6737)

Page 4 of 23

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.