# What changed in pydantic

> 31 changes in pydantic 2 from its official release notes, upgrade guides and advisories: 8 breaking, 5 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/pydantic/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## pydantic 2

### Breaking changes

- Rejects out-of-range int inputs for timedelta. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- Enum constructors are called in both validation modes. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Fraction validation rejects large exponents. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- JSON Schema defaults are encoded with a consistent configuration. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- multiple_of constraints must be positive. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- NameEmail validation rejects newlines. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Python 3.9 is no longer supported. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Serialization inference no longer applies ser_json_timedelta to all datetime types. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)

### New APIs and options

- Supports `closed` and `extra_items` via inheritance in TypedDict. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- A counter core schema is added. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- create_model() accepts a __namespace__ parameter. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- The multiple_of constraint is supported in fraction and timedelta core schemas. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- An ordered-dict core schema is added. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)

### Performance

- Avoids Python tuple allocation during model fields validation. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- Avoids an unnecessary extra dict allocation in model validation. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)

### Behavior and default changes

- Supports named tuples in Sequence validation. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)

### Fixes and other changes

- Fixes the arguments-v3 schema when variadic keywords are present. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- The Python Decimal validator now enforces the max_digits whole-digits limit. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- Fixes a TypeError involving ForwardRef on Python 3.10.0. (2.14.1) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.1)
- OverflowError is caught during ByteSize validation. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Exceptions are handled during Decimal validation. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- init and kw_only=False are propagated from Field() to stdlib dataclass fields. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Config propagation for stdlib dataclasses and TypedDicts in JSON Schema is fixed. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Propagated extra config is respected in the JSON Schema of stdlib dataclasses. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- The model_config attribute is no longer mutated. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- URL prefixes are no longer validated multiple times in multi host URLs. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Python 3.15 is now supported. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Incomplete types are rebuilt during serialization inference. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- OS errors are handled during ZoneInfo validation. (2.14.0) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.14.0)
- Validated model fields are counted once in smart unions. (2.13.5) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.13.5)
- Validators can now be reused when plugins are set. (2.13.5) — [release notes](https://github.com/pydantic/pydantic/releases/tag/v2.13.5)
