{"ecosystem":"pypi","package":"pydantic","from_version":null,"to_version":null,"changes":[{"from_version":"2.9.0","to_version":"2.9.0","change_type":"behavior","description":"Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by @tinez in [pydantic/pydantic-core#1368](https://github.com/pydantic/pydantic-core/pull/1368)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"behavior","description":"For more info (how to replicate old behavior) on this change, see [here](https://docs.pydantic.dev/dev/concepts/json_schema/#merging-json_schema_extra)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Add `Config.val_json_bytes` by @josh-newman in [#9770](https://github.com/pydantic/pydantic/pull/9770)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Raise helpful warning when `self` isn't returned from model validator by @sydney-runkle in [#10255](https://github.com/pydantic/pydantic/pull/10255)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Breaking Change: in `pydantic-core`, change `metadata` type hint in core schemas from `Any` -> `Dict[str, Any] | None` by @sydney-runkle in [pydantic/pydantic-core#1411](https://github.com/pydantic/pydantic-core/pull/1411)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Show value of wrongly typed data in `pydantic-core` serialization warning by @BoxyUwU in [pydantic/pydantic-core#1377](https://github.com/pydantic/pydantic-core/pull/1377)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Improve runtime errors for string constraints like `pattern` for incompatible types by @sydney-runkle in [#10158](https://github.com/pydantic/pydantic/pull/10158)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Move annotation compatibility errors to validation phase by @sydney-runkle in [#9999](https://github.com/pydantic/pydantic/pull/9999)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Refactor annotation injection for known (often generic) types by @sydney-runkle in [#9979](https://github.com/pydantic/pydantic/pull/9979)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Breaking Change: Merge `dict` type `json_schema_extra` by @sydney-runkle in [#9792](https://github.com/pydantic/pydantic/pull/9792)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Add tagged union serializer that attempts to use `str` or `callable` discriminators to select the correct serializer by @sydney-runkle in in [pydantic/pydantic-core#1397](https://github.com/pydantic/pydantic-core/pull/1397)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Support parametrized `PathLike` types by @nix010 in [#9764](https://github.com/pydantic/pydantic/pull/9764)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Allow validators to customize validation JSON schema by @Viicos in [#10094](https://github.com/pydantic/pydantic/pull/10094)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by @dAIsySHEng1 in [#9863](https://github.com/pydantic/pydantic/pull/9863)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Add support for `annotated_types.Not` by @aditkumar72 in [#10210](https://github.com/pydantic/pydantic/pull/10210)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Support `complex` number by @changhc in [#9654](https://github.com/pydantic/pydantic/pull/9654)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Add DSN for Snowflake by @aditkumar72 in [#10128](https://github.com/pydantic/pydantic/pull/10128)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Add support for `ZoneInfo` by @Youssefares in [#9896](https://github.com/pydantic/pydantic/pull/9896)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Using cached internal import for `BaseModel` by @sydney-runkle in [#10013](https://github.com/pydantic/pydantic/pull/10013)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"breaking","description":"Initial start at improving import times for modules, using caching primarily by @sydney-runkle in [#10009](https://github.com/pydantic/pydantic/pull/10009)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"deprecated","description":"Deprecate passing a dict to the `Examples` class by @Viicos in [#10181](https://github.com/pydantic/pydantic/pull/10181)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"removed","description":"Remove `'allOf'` JSON schema workarounds by @dpeachey in [#10029](https://github.com/pydantic/pydantic/pull/10029)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"removed","description":"Simplify internal generics logic - remove generator overhead by @sydney-runkle in [#10059](https://github.com/pydantic/pydantic/pull/10059)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"removed","description":"Remove `initial_metadata` from internal metadata construct by @sydney-runkle in [#10194](https://github.com/pydantic/pydantic/pull/10194)","migration_hint":null},{"from_version":"2.9.0","to_version":"2.9.0","change_type":"removed","description":"Remove `typed_dict_cls` data from `CoreMetadata` by @sydney-runkle in [#10180](https://github.com/pydantic/pydantic/pull/10180)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Fix breaking change in `to_snake` from v2.7 -> v2.8 by @sydney-runkle in [#9812](https://github.com/pydantic/pydantic/pull/9812)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0` by @sydney-runkle in [#9832](https://github.com/pydantic/pydantic/pull/9832)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by @sydney-runkle in [#9801](https://github.com/pydantic/pydantic/pull/9801)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Handle negative fractional durations correctly by @sydney-runkle in [pydantic/speedate#71](https://github.com/pydantic/speedate/pull/71)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Fix millisecond fraction being handled with the wrong scale by @davidhewitt in [pydantic/speedate#65](https://github.com/pydantic/speedate/pull/65)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Support time duration more than 23 by @nix010 in [pydantic/speedate#64](https://github.com/pydantic/speedate/pull/64)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.1","change_type":"breaking","description":"Fix list constraint json schema application by @sydney-runkle in [#9818](https://github.com/pydantic/pydantic/pull/9818)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"api","description":"Experimental: Add pipeline API by @adriangb in [#9459](https://github.com/pydantic/pydantic/pull/9459)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"api","description":"Bump pyright to `v1.1.367` and add type checking tests for pipeline API by @adriangb in [#9674](https://github.com/pydantic/pydantic/pull/9674)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"behavior","description":"Support serialization of some serializable defaults in JSON schema by @sydney-runkle in [#9624](https://github.com/pydantic/pydantic/pull/9624)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Update citation version automatically with new releases by @sydney-runkle in [#9673](https://github.com/pydantic/pydantic/pull/9673)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Update `pydantic.v1` stub to `v1.10.17` by @sydney-runkle in [#9707](https://github.com/pydantic/pydantic/pull/9707)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"General package updates to prep for `v2.8.0b1` by @sydney-runkle in [#9741](https://github.com/pydantic/pydantic/pull/9741)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Bump `pydantic-core` to `v2.20.0` by @sydney-runkle in [#9745](https://github.com/pydantic/pydantic/pull/9745)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Add support for Python 3.13 by @sydney-runkle in [#9743](https://github.com/pydantic/pydantic/pull/9743)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Update `pdm` version used for `pdm.lock` to v2.16.1 by @sydney-runkle in [#9761](https://github.com/pydantic/pydantic/pull/9761)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Update to `ruff` `v0.4.8` by @Viicos in [#9585](https://github.com/pydantic/pydantic/pull/9585)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Experimental: support `defer_build` for `TypeAdapter` by @MarkusSintonen in [#8939](https://github.com/pydantic/pydantic/pull/8939)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Add support for programmatic title generation by @NeevCohen in [#9183](https://github.com/pydantic/pydantic/pull/9183)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Implement `fail_fast` feature by @uriyyo in [#9708](https://github.com/pydantic/pydantic/pull/9708)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Add `ser_json_inf_nan='strings'` mode to produce valid JSON by @josh-newman in [pydantic/pydantic-core#1307](https://github.com/pydantic/pydantic-core/pull/1307)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Add warning when \"alias\" is set in ignored `Annotated` field by @nix010 in [#9170](https://github.com/pydantic/pydantic/pull/9170)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Relax type specification for `__validators__` values in `create_model` by @sydney-runkle in [#9697](https://github.com/pydantic/pydantic/pull/9697)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"**Breaking Change:** Improve `smart` union matching logic by @sydney-runkle in [pydantic/pydantic-core#1322](https://github.com/pydantic/pydantic-core/pull/1322)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"⚡️ Speed up `_display_error_loc()` by 25% in `pydantic/v1/error_wrappers.py` by @misrasaurabh1 in [#9653](https://github.com/pydantic/pydantic/pull/9653)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by @misrasaurabh1 in [#9650](https://github.com/pydantic/pydantic/pull/9650)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by @misrasaurabh1 in [#9652](https://github.com/pydantic/pydantic/pull/9652)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by @misrasaurabh1 in [#9747](https://github.com/pydantic/pydantic/pull/9747)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by @misrasaurabh1 in [#9727](https://github.com/pydantic/pydantic/pull/9727)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Replace `__spec__.parent` with `__package__` by @hramezani in [#9331](https://github.com/pydantic/pydantic/pull/9331)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"breaking","description":"Fix Outputted Model JSON Schema for `Sequence` type by @anesmemisevic in [#9303](https://github.com/pydantic/pydantic/pull/9303)","migration_hint":null},{"from_version":"2.8.0","to_version":"2.8.0","change_type":"deprecated","description":"Implement `deprecated` field in json schema by @NeevCohen in [#9298](https://github.com/pydantic/pydantic/pull/9298)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"api","description":"Update `warnings` parameter for serialization utilities to allow raising a warning by @Lance-Drane in [#9166](https://github.com/pydantic/pydantic/pull/9166)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"behavior","description":"Correct docs, logic for `model_construct` behavior with `extra` by @sydney-runkle in [#8807](https://github.com/pydantic/pydantic/pull/8807)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Improve error message for improper `RootModel` subclasses by @sydney-runkle in [#8857](https://github.com/pydantic/pydantic/pull/8857)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add support for field level number to str coercion option by @NeevCohen in [#9137](https://github.com/pydantic/pydantic/pull/9137)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add generic `Secret` base type by @conradogarciaberrotaran in [#8519](https://github.com/pydantic/pydantic/pull/8519)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"**Breaking Change:** Use `PEP570` syntax by @Viicos in [#8940](https://github.com/pydantic/pydantic/pull/8940)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Support for parsing partial JSON strings in Python by @samuelcolvin in [pydantic/jiter#66](https://github.com/pydantic/jiter/pull/66)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add environment variable to disable plugins by @geospackle in [#8767](https://github.com/pydantic/pydantic/pull/8767)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Make use of `Sphinx` inventories for cross references in docs by @Viicos in [#8682](https://github.com/pydantic/pydantic/pull/8682)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Adopt `jiter` `v0.2.0` by @samuelcolvin in [pydantic/pydantic-core#1250](https://github.com/pydantic/pydantic-core/pull/1250)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Reorganize `pyproject.toml` sections by @Viicos in [#8899](https://github.com/pydantic/pydantic/pull/8899)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add a `with_config` decorator to comply with typing spec by @Viicos in [#8611](https://github.com/pydantic/pydantic/pull/8611)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Bump `pydantic-core` to `v2.18.1` by @sydney-runkle in [#9211](https://github.com/pydantic/pydantic/pull/9211)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Extract attribute docstrings from `FieldInfo.description` by @Viicos in [#6563](https://github.com/pydantic/pydantic/pull/6563)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Allow an optional separator splitting the value and unit of the result of `ByteSize.human_readable` by @jks15satoshi in [#8706](https://github.com/pydantic/pydantic/pull/8706)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add feedback widget to docs with flarelytics integration by @sydney-runkle in [#9129](https://github.com/pydantic/pydantic/pull/9129)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Ability to pass `context` to serialization by @ornariece in [#8965](https://github.com/pydantic/pydantic/pull/8965)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add support for `typing.Self` by @Youssefares in [#9023](https://github.com/pydantic/pydantic/pull/9023)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Support for `serialize_as_any` runtime setting by @sydney-runkle in [#8830](https://github.com/pydantic/pydantic/pull/8830)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add support for `re.Pattern[str]` to `pattern` field by @jag-k in [#9053](https://github.com/pydantic/pydantic/pull/9053)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Add `ClickhouseDsn` support by @solidguy7 in [#9062](https://github.com/pydantic/pydantic/pull/9062)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Update `create_model()` to support `typing.Annotated` as input by @wannieman98 in [#8947](https://github.com/pydantic/pydantic/pull/8947)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Handle a case when `model_config` is defined as a model property by @alexeyt101 in [#9004](https://github.com/pydantic/pydantic/pull/9004)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"breaking","description":"Allow `field_serializer('*')` by @ornariece in [#9001](https://github.com/pydantic/pydantic/pull/9001)","migration_hint":null},{"from_version":"2.7.0","to_version":"2.7.0","change_type":"deprecated","description":"Add support for `deprecated` fields by @Viicos in [#8237](https://github.com/pydantic/pydantic/pull/8237)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"api","description":"Change type of `Any` when synthesizing `_build_sources` for  `BaseSettings.__init__()` signature in the mypy plugin by @Viicos in [#13049](https://github.com/pydantic/pydantic/pull/13049)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"behavior","description":"Allow default factories of private attributes to take validated model data by @Viicos in [#13013](https://github.com/pydantic/pydantic/pull/13013)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"breaking","description":"Update jiter to v0.14.0 to fix a segmentation fault on musl Linux by @Viicos in [#13064](https://github.com/pydantic/pydantic/pull/13064)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"breaking","description":"Warn when serializing fixed length tuples with too few items by @arvindsaripalli in [#13016](https://github.com/pydantic/pydantic/pull/13016)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"breaking","description":"Fix model equality when using runtime `extra` configuration by @Viicos in [#13062](https://github.com/pydantic/pydantic/pull/13062)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"breaking","description":"Add zizmor for GitHub Actions workflow linting by @Viicos in [#13039](https://github.com/pydantic/pydantic/pull/13039)","migration_hint":null},{"from_version":"2.13.0","to_version":"2.13.0","change_type":"breaking","description":"@arvindsaripalli made their first contribution in [#13016](https://github.com/pydantic/pydantic/pull/13016)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"api","description":"Use `Any` as context annotation in plugin API by @Viicos in [#12341](https://github.com/pydantic/pydantic/pull/12341)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"api","description":"Add `__qualname__` parameter for `create_model` by @Atry in [#12001](https://github.com/pydantic/pydantic/pull/12001)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"api","description":"Add `union_format` parameter to JSON Schema generation by @Viicos in [#12147](https://github.com/pydantic/pydantic/pull/12147)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"api","description":"Do not try to infer name from lambda definitions in pipelines API by @Viicos in [#12289](https://github.com/pydantic/pydantic/pull/12289)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"api","description":"Add `extra` parameter to the validate functions by @anvilpete in [#12233](https://github.com/pydantic/pydantic/pull/12233)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"@inducer made their first contribution in [#12279](https://github.com/pydantic/pydantic/pull/12279)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Expose `FieldInfo` in `pydantic.fields.__all__` by @Viicos in [#12339](https://github.com/pydantic/pydantic/pull/12339)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Use proper `stacklevel` in warnings when possible by @Viicos in [#12342](https://github.com/pydantic/pydantic/pull/12342)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Update V1 copy to v1.10.24 by @Viicos in [#12338](https://github.com/pydantic/pydantic/pull/12338)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"@anvilpete made their first contribution in [#12233](https://github.com/pydantic/pydantic/pull/12233)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"@JonathanWindell made their first contribution in [#12327](https://github.com/pydantic/pydantic/pull/12327)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Add `preverse_empty_path` URL options by @Viicos in [#12336](https://github.com/pydantic/pydantic/pull/12336)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"@Atry made their first contribution in [#12001](https://github.com/pydantic/pydantic/pull/12001)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Use proper namespace for functions in `TypeAdapter` by @Viicos in [#12324](https://github.com/pydantic/pydantic/pull/12324)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Use `Any` for context type annotation in `TypeAdapter` by @inducer in [#12279](https://github.com/pydantic/pydantic/pull/12279)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Respect `validation_alias` in `@validate_call` by @Viicos in [#12340](https://github.com/pydantic/pydantic/pull/12340)","migration_hint":null},{"from_version":"2.12.0","to_version":"2.12.0","change_type":"breaking","description":"Add `exclude_computed_fields` serialization option by @Viicos in [#12334](https://github.com/pydantic/pydantic/pull/12334)","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"api","description":"Improve alias configuration APIs by @sydney-runkle in https://github.com/pydantic/pydantic/pull/11468","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"behavior","description":"Add a `default_factory_takes_validated_data` property to `FieldInfo` by @Viicos in https://github.com/pydantic/pydantic/pull/11034","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"behavior","description":"Infer final fields with a default value as class variables in the mypy plugin by @Viicos in https://github.com/pydantic/pydantic/pull/11121","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"behavior","description":"Properly support type variable defaults by @Viicos in https://github.com/pydantic/pydantic/pull/11332","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"behavior","description":"Support unsubstituted type variables with both a default and a bound or constraints by @FyZzyss in https://github.com/pydantic/pydantic/pull/10789","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Use the correct frame when instantiating a parametrized `TypeAdapter` by @Viicos in https://github.com/pydantic/pydantic/pull/10893","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Optimize calls to `get_type_ref` by @Viicos in https://github.com/pydantic/pydantic/pull/10863","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Raise a better error when a generic alias is used inside `type[]` by @Viicos in https://github.com/pydantic/pydantic/pull/11088","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Properly support PEP 695 generics syntax by @Viicos in https://github.com/pydantic/pydantic/pull/11189","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Add support for validating v6, v7, v8 UUIDs by @astei in https://github.com/pydantic/pydantic/pull/11436","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Rework `create_model` field definitions format by @Viicos in https://github.com/pydantic/pydantic/pull/11032","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"**Breaking Change:** Move core schema generation logic for path types inside the `GenerateSchema` class by @sydney-runkle in https://github.com/pydantic/pydantic/pull/10846","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Disable `pydantic-core` core schema validation by @sydney-runkle in https://github.com/pydantic/pydantic/pull/11271","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Only evaluate `FieldInfo` annotations if required during schema building by @Viicos in https://github.com/pydantic/pydantic/pull/10769","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Improve `__setattr__` performance of Pydantic models by caching setter functions by @MarkusSintonen in https://github.com/pydantic/pydantic/pull/10868","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Improve annotation application performance by @Viicos in https://github.com/pydantic/pydantic/pull/11186","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Improve performance of `_typing_extra` module by @Viicos in https://github.com/pydantic/pydantic/pull/11255","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Refactor and optimize schema cleaning logic by @Viicos in https://github.com/pydantic/pydantic/pull/11244","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Create a single dictionary when creating a `CoreConfig` instance by @sydney-runkle in https://github.com/pydantic/pydantic/pull/11384","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Bump `pydantic-core` and thus use `SchemaValidator` and `SchemaSerializer` caching by @sydney-runkle in https://github.com/pydantic/pydantic/pull/11402","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Reuse cached core schemas for parametrized generic Pydantic models by @MarkusSintonen in https://github.com/pydantic/pydantic/pull/11434","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"breaking","description":"Improve `TypeAdapter` instance repr by @sydney-runkle in https://github.com/pydantic/pydantic/pull/10872","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"deprecated","description":"Raise a deprecation warning when a field is annotated as final with a default value by @Viicos in https://github.com/pydantic/pydantic/pull/11168","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"deprecated","description":"Deprecate accessing `model_fields` and `model_computed_fields` on instances by @Viicos in https://github.com/pydantic/pydantic/pull/11169","migration_hint":null},{"from_version":"2.11.0","to_version":"2.11.0","change_type":"removed","description":"Remove Python 3.8 Support by @sydney-runkle in https://github.com/pydantic/pydantic/pull/11258","migration_hint":null},{"from_version":"1","to_version":"2","change_type":"api","description":"Core rewritten in Rust (pydantic-core). Up to 100x faster. Many API methods renamed.","migration_hint":"`obj.dict()` -> `obj.model_dump()`; `obj.json()` -> `obj.model_dump_json()`; `parse_obj` -> `model_validate`; `parse_raw` -> `model_validate_json`."},{"from_version":"1","to_version":"2","change_type":"api","description":"`@validator` -> `@field_validator` (and must be classmethod). `@root_validator` -> `@model_validator`.","migration_hint":"Use `bump-pydantic` migration tool: `pip install bump-pydantic && bump-pydantic <path>`."},{"from_version":"1","to_version":"2","change_type":"config","description":"`class Config:` replaced by `model_config: ConfigDict = ConfigDict(...)`.","migration_hint":"`class Config: extra = 'forbid'` becomes `model_config = ConfigDict(extra='forbid')`."},{"from_version":"1.9.1","to_version":"1.9.2","change_type":"breaking","description":"Allow for shallow copies of model fields, `Config.copy_on_model_validation` is now a str which must be","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"api","description":"Limit the size of `generics._generic_types_cache` and `generics._assigned_parameters`","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Add support for autocomplete in VS Code via `__dataclass_transform__` when using `pydantic.dataclasses.dataclass`, [#4006](https://github.com/pydantic/pydantic/pull/4006) by @giuliano-oliveira","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Fix in-place modification of `FieldInfo` that caused problems with PEP 593 type aliases, [#4067](https://github.com/pydantic/pydantic/pull/4067) by @adriangb","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Speedup `__isinstancecheck__` on pydantic models when the type is not a model, may also avoid memory \"leaks\", [#4081](https://github.com/pydantic/pydantic/pull/4081) by @samuelcolvin","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Add Jupyverse and FPS as Jupyter projects using pydantic, [#4082](https://github.com/pydantic/pydantic/pull/4082) by @davidbrochart","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Fix JSON Schema generation for Discriminated Unions within lists, [#3608](https://github.com/pydantic/pydantic/pull/3608) by @samuelcolvin","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Add `read_text(encoding='utf-8')` for `setup.py`, [#3625](https://github.com/pydantic/pydantic/pull/3625) by @hswong3i","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"fix: clarify that discriminated unions do not support singletons, [#3636](https://github.com/pydantic/pydantic/pull/3636) by @tommilligan","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"`Config.copy_on_model_validation` does a deep copy and not a shallow one, [#3641](https://github.com/pydantic/pydantic/pull/3641) by @PrettyWood","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Include non-standard port numbers in rendered URLs, [#3652](https://github.com/pydantic/pydantic/pull/3652) by @dolfinus","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"**Breaking Change, see [#4106](https://github.com/pydantic/pydantic/pull/4106)**: Fix issue with self-referencing dataclass, [#3675](https://github.com/pydantic/pydantic/pull/3675) by @uriyyo","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Allow self referencing `ClassVar`s in models, [#3679](https://github.com/pydantic/pydantic/pull/3679) by @samuelcolvin","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Fixed \"error checking inheritance of\" when using PEP585 and PEP604 type hints, [#3681](https://github.com/pydantic/pydantic/pull/3681) by @aleksul","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Prevent subclasses of bytes being converted to bytes, [#3706](https://github.com/pydantic/pydantic/pull/3706) by @samuelcolvin","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Update documentation about lazy evaluation of sources for Settings, [#3806](https://github.com/pydantic/pydantic/pull/3806) by @garyd203","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Fix nested Python dataclass schema regression, [#3819](https://github.com/pydantic/pydantic/pull/3819) by @himbeles","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"breaking","description":"Typing checking with pyright in CI, improve docs on vscode/pylance/pyright, [#3972](https://github.com/pydantic/pydantic/pull/3972) by @samuelcolvin","migration_hint":null},{"from_version":"1.9.0","to_version":"1.9.1","change_type":"removed","description":"Remove benchmarks from codebase and docs, [#3973](https://github.com/pydantic/pydantic/pull/3973) by @samuelcolvin","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"api","description":"fix `validate_arguments` issue with `Config.validate_all`, [#3135](https://github.com/pydantic/pydantic/pull/3135) by @PrettyWood","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"api","description":"`validate_arguments` now supports `extra` customization (used to always be `Extra.forbid`), [#3161](https://github.com/pydantic/pydantic/pull/3161) by @PrettyWood","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"api","description":"When generating field schema, pass optional `field` argument (of type","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"behavior","description":"Always use `Enum` value as default in generated JSON schema, [#3190](https://github.com/pydantic/pydantic/pull/3190) by @joaommartins","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"behavior","description":"Fix support for using a subclass of an annotation as a default, [#3018](https://github.com/pydantic/pydantic/pull/3018) by @JacobHayes","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"make `create_model_from_typeddict` mypy compliant, [#3008](https://github.com/pydantic/pydantic/pull/3008) by @PrettyWood","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Add support for `Decimal`-specific validation configurations in `Field()`, additionally to using `condecimal()`,","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Add `arm64` binaries suitable for MacOS with an M1 CPU to PyPI, [#3498](https://github.com/pydantic/pydantic/pull/3498) by @samuelcolvin","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Fix issue where `None` was considered invalid when using a `Union` type containing `Any` or `object`, [#3444](https://github.com/pydantic/pydantic/pull/3444) by @tharradine","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Fix issue when pydantic fail to parse `typing.ClassVar` string type annotation, [#3401](https://github.com/pydantic/pydantic/pull/3401) by @uriyyo","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Mention Python >= 3.9.2 as an alternative to `typing_extensions.TypedDict`, [#3374](https://github.com/pydantic/pydantic/pull/3374) by @BvB93","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Changed the validator method name in the [Custom Errors example](https://docs.pydantic.dev/usage/models/#custom-errors)","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Add `AmqpDsn` class, [#3254](https://github.com/pydantic/pydantic/pull/3254) by @kludex","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Add support for Mypy 0.920, [#3175](https://github.com/pydantic/pydantic/pull/3175) by @christianbundy","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Complex types can be set by nested environment variables, [#3159](https://github.com/pydantic/pydantic/pull/3159) by @Air-Mark","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Fix mypy plugin to collect fields based on `pydantic.utils.is_valid_field` so that it ignores untyped private variables, [#3146](https://github.com/pydantic/pydantic/pull/3146) by @hi-ogawa","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"avoid dict coercion when using dict subclasses as field type, [#3122](https://github.com/pydantic/pydantic/pull/3122) by @PrettyWood","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"add support for `object` type, [#3062](https://github.com/pydantic/pydantic/pull/3062) by @PrettyWood","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Updates pydantic dataclasses to keep `_special` properties on parent classes, [#3043](https://github.com/pydantic/pydantic/pull/3043) by @zulrang","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Add a `TypedDict` class for error objects, [#3038](https://github.com/pydantic/pydantic/pull/3038) by @matthewhughes934","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Make multiple inheritance work when using `PrivateAttr`, [#2989](https://github.com/pydantic/pydantic/pull/2989) by @hmvp","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Parse environment variables as JSON, if they have a `Union` type with a complex subfield, [#2936](https://github.com/pydantic/pydantic/pull/2936) by @cbartz","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Prevent `StrictStr` permitting `Enum` values where the enum inherits from `str`, [#2929](https://github.com/pydantic/pydantic/pull/2929) by @samuelcolvin","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"Make `SecretsSettingsSource` parse values being assigned to fields of complex types when sourced from a secrets file,","migration_hint":null},{"from_version":"1.8.2","to_version":"1.9.0","change_type":"breaking","description":"add a dark mode to *pydantic* documentation, [#2913](https://github.com/pydantic/pydantic/pull/2913) by @gbdlin","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"api","description":"[`frozen` parameter on `Config`](https://docs.pydantic.dev/usage/model_config/) to allow models to be hashed, [#1880](https://github.com/pydantic/pydantic/pull/1880) by @rhuille","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Update docs extensions to fix local syntax highlighting, [#2400](https://github.com/pydantic/pydantic/pull/2400) by @daviskirk","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"fix: allow `utils.lenient_issubclass` to handle `typing.GenericAlias` objects like `list[str]` in Python >= 3.9, [#2399](https://github.com/pydantic/pydantic/pull/2399) by @daviskirk","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Improve field declaration for *pydantic* `dataclass` by allowing the usage of *pydantic* `Field` or `'metadata'` kwarg of `dataclasses.field`, [#2384](https://github.com/pydantic/pydantic/pull/2384) by @PrettyWood","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Making `typing-extensions` a required dependency, [#2368](https://github.com/pydantic/pydantic/pull/2368) by @samuelcolvin","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Make `resolve_annotations` more lenient, allowing for missing modules, [#2363](https://github.com/pydantic/pydantic/pull/2363) by @samuelcolvin","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Allow configuring models through class kwargs, [#2356](https://github.com/pydantic/pydantic/pull/2356) by @Bobronium","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Prevent `Mapping` subclasses from always being coerced to `dict`, [#2325](https://github.com/pydantic/pydantic/pull/2325) by @ofek","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Support empty tuple type, [#2318](https://github.com/pydantic/pydantic/pull/2318) by @PrettyWood","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Support [`Annotated` hints on model fields](https://docs.pydantic.dev/usage/schema/#typingannotated-fields), [#2147](https://github.com/pydantic/pydantic/pull/2147) by @JacobHayes","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"Properly encode `Decimal` with, or without any decimal places, [#2293](https://github.com/pydantic/pydantic/pull/2293) by @hultner","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"fix: update `__fields_set__` in `BaseModel.copy(update=…)`, [#2290](https://github.com/pydantic/pydantic/pull/2290) by @PrettyWood","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"fix: `python_requires` metadata to require >=3.6.1, [#2306](https://github.com/pydantic/pydantic/pull/2306) by @hukkinj1","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"fix: allow `None` for type `Optional[conset / conlist]`, [#2320](https://github.com/pydantic/pydantic/pull/2320) by @PrettyWood","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"[Hypothesis plugin](https://docs.pydantic.dev/hypothesis_plugin/) for testing, [#2097](https://github.com/pydantic/pydantic/pull/2097) by @Zac-HD","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"**Breaking Change:** always validate only first sublevel items with `each_item`.","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"breaking","description":"support for [`NamedTuple` and `TypedDict`](https://docs.pydantic.dev/usage/types/#annotated-types), [#2216](https://github.com/pydantic/pydantic/pull/2216) by @PrettyWood","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `model.fields` which was replaced by `model.__fields__`","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"**Breaking Change**, remove old deprecation aliases from v1, [#2415](https://github.com/pydantic/pydantic/pull/2415) by @samuelcolvin:","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove notes on migrating to v1 in docs","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `Schema` which was replaced by `Field`","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `Config.case_insensitive` which was replaced by `Config.case_sensitive` (default `False`)","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `Config.allow_population_by_alias` which was replaced by `Config.allow_population_by_field_name`","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `model.to_string()` which was replaced by `str(model)`","migration_hint":null},{"from_version":"1.7.4","to_version":"1.8","change_type":"removed","description":"remove `model.__values__` which was replaced by `model.__dict__`","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"api","description":"Call validator with the correct `values` parameter type in `BaseModel.__setattr__`,","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"api","description":"Allows subclasses of generic models to make some, or all, of the superclass's type parameters concrete, while","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"api","description":"Clarify documentation for `parse_file` to show that the argument","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"behavior","description":"Support custom title, description and default in schema of enums, [#1748](https://github.com/pydantic/pydantic/pull/1748) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Support home directory relative paths for `dotenv` files (e.g. `~/.env`), [#1803](https://github.com/pydantic/pydantic/pull/1803) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Python 3.9 support, thanks @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"[Private model attributes](https://docs.pydantic.dev/usage/models/#private-model-attributes), thanks @Bobronium","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"[\"secrets files\" support in `BaseSettings`](https://docs.pydantic.dev/usage/settings/#secret-support), thanks @mdgilene","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"[convert stdlib dataclasses to pydantic dataclasses and use stdlib dataclasses in models](https://docs.pydantic.dev/usage/dataclasses/#stdlib-dataclasses-and-pydantic-dataclasses), thanks @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Rearrange CI to run linting as a separate job, split install recipes for different tasks, [#2020](https://github.com/pydantic/pydantic/pull/2020) by @samuelcolvin","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Force `fields.Undefined` to be a singleton object, fixing inherited generic model schemas, [#1981](https://github.com/pydantic/pydantic/pull/1981) by @daviskirk","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Include tests in source distributions, [#1976](https://github.com/pydantic/pydantic/pull/1976) by @sbraz","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Add ability to use `min_length/max_length` constraints with secret types, [#1974](https://github.com/pydantic/pydantic/pull/1974) by @uriyyo","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Also check `root_validators` when `validate_assignment` is on, [#1971](https://github.com/pydantic/pydantic/pull/1971) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Fix const validators not running when custom validators are present, [#1957](https://github.com/pydantic/pydantic/pull/1957) by @hmvp","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"add `deque` to field types, [#1935](https://github.com/pydantic/pydantic/pull/1935) by @wozniakty","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"add basic support for Python 3.9, [#1832](https://github.com/pydantic/pydantic/pull/1832) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Fix typo in the anchor of exporting_models.md#modelcopy and incorrect description, [#1821](https://github.com/pydantic/pydantic/pull/1821) by @KimMachineGun","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Added ability for `BaseSettings` to read \"secret files\", [#1820](https://github.com/pydantic/pydantic/pull/1820) by @mdgilene","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"add `parse_raw_as` utility function, [#1812](https://github.com/pydantic/pydantic/pull/1812) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Fix false positive from mypy plugin when a class nested within a `BaseModel` is named `Model`, [#1770](https://github.com/pydantic/pydantic/pull/1770) by @selimb","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"add basic support of Pattern type in schema generation, [#1767](https://github.com/pydantic/pydantic/pull/1767) by @PrettyWood","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Properly represent `Literal` Enums when `use_enum_values` is True, [#1747](https://github.com/pydantic/pydantic/pull/1747) by @noelevans","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"breaking","description":"Allows timezone information to be added to strings to be formatted as time objects. Permitted formats are `Z` for UTC","migration_hint":null},{"from_version":"1.6.2","to_version":"1.7","change_type":"removed","description":"**Breaking Change:** remove `__field_defaults__`, add `default_factory` support with `BaseModel.construct`.","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"api","description":"Fix `cls` argument in validators during assignment, [#1172](https://github.com/pydantic/pydantic/pull/1172) by @samuelcolvin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Fix regex for username and password in URLs, [#1115](https://github.com/pydantic/pydantic/pull/1115) by @samuelcolvin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Add support for nested generic models, [#1104](https://github.com/pydantic/pydantic/pull/1104) by @dmontagu","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"add `__all__` to `__init__.py` to prevent \"implicit reexport\" errors from mypy, [#1072](https://github.com/pydantic/pydantic/pull/1072) by @samuelcolvin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Add support for using \"dotenv\" files with `BaseSettings`, [#1011](https://github.com/pydantic/pydantic/pull/1011) by @acnebs","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Fix `EmailStr` and `NameEmail` to accept instances of themselves in cython, [#1126](https://github.com/pydantic/pydantic/pull/1126) by @koxudaxi","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Pass model class to the `Config.schema_extra` callable, [#1125](https://github.com/pydantic/pydantic/pull/1125) by @therefromhere","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"**Breaking Change:** alias precedence logic changed so aliases on a field always take priority over","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Add support for unicode and punycode in TLDs, [#1182](https://github.com/pydantic/pydantic/pull/1182) by @jamescurtin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"completing Luhn algorithm for `PaymentCardNumber`, [#1166](https://github.com/pydantic/pydantic/pull/1166) by @cuencandres","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"add support for generics that implement `__get_validators__` like a custom data type, [#1159](https://github.com/pydantic/pydantic/pull/1159) by @tiangolo","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"add support for infinite generators with `Iterable`, [#1152](https://github.com/pydantic/pydantic/pull/1152) by @tiangolo","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"fix `url_regex` to accept schemas with `+`, `-` and `.` after the first character, [#1142](https://github.com/pydantic/pydantic/pull/1142) by @samuelcolvin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"move `version_info()` to `version.py`, suggest its use in issues, [#1138](https://github.com/pydantic/pydantic/pull/1138) by @samuelcolvin","migration_hint":null},{"from_version":"1.3","to_version":"1.4","change_type":"breaking","description":"Improve pydantic import time by roughly 50% by deferring some module loading and regex compilation, [#1127](https://github.com/pydantic/pydantic/pull/1127) by @samuelcolvin","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"api","description":"Add `allow_reuse` argument to validators, thus allowing validator reuse, [#940](https://github.com/pydantic/pydantic/pull/940) by @dmontagu","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"behavior","description":"Add support for dataclasses default factory, [#968](https://github.com/pydantic/pydantic/pull/968) by @ahirner","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Adds ByteSize conversion to another unit, [#995](https://github.com/pydantic/pydantic/pull/995) by @dgasmith","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Fix `__str__` and `__repr__` inheritance for models, [#1022](https://github.com/pydantic/pydantic/pull/1022) by @samuelcolvin","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add support for `typing.Literal` for Python 3.8, [#1026](https://github.com/pydantic/pydantic/pull/1026) by @dmontagu","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"add testimonials section to docs, [#1025](https://github.com/pydantic/pydantic/pull/1025) by @sullivancolin","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add benchmarks for `cattrs`, [#513](https://github.com/pydantic/pydantic/pull/513) by @sebastianmika","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Fix mypy complaint about `@root_validator(pre=True)`, [#984](https://github.com/pydantic/pydantic/pull/984) by @samuelcolvin","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add manylinux binaries for Python 3.8 to pypi, also support manylinux2010, [#994](https://github.com/pydantic/pydantic/pull/994) by @samuelcolvin","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add support for mapping types for custom root models, [#958](https://github.com/pydantic/pydantic/pull/958) by @dmontagu","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Mypy plugin support for dataclasses, [#966](https://github.com/pydantic/pydantic/pull/966) by @koxudaxi","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add a `ByteSize` type for converting byte string (`1GB`) to plain bytes, [#977](https://github.com/pydantic/pydantic/pull/977) by @dgasmith","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"**Possible Breaking Change:** Add support for required `Optional` with `name: Optional[AnyType] = Field(...)`","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add `exclude_none` option to `dict()` and friends, [#587](https://github.com/pydantic/pydantic/pull/587) by @niknetniko","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add benchmarks for `valideer`, [#670](https://github.com/pydantic/pydantic/pull/670) by @gsakkis","migration_hint":null},{"from_version":"1.1.1","to_version":"1.2","change_type":"breaking","description":"Add `parse_obj_as` and `parse_file_as` functions for ad-hoc parsing of data into arbitrary pydantic-compatible types, [#934](https://github.com/pydantic/pydantic/pull/934) by @dmontagu","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"api","description":"Now that `Config.extra` is supported, `dataclass` ignores by default extra arguments (like `BaseModel`)","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"api","description":"Discriminated union models now use `oneOf` instead of `anyOf` when generating OpenAPI schema definitions, [#4335](https://github.com/pydantic/pydantic/pull/4335) by @MaxwellPayne","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"api","description":"Fix `__post_init_post_parse__` is incorrectly passed keyword arguments when no `__post_init__` is defined, [#4361](https://github.com/pydantic/pydantic/pull/4361) by @hramezani","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Allow empty string aliases by using a `alias is not None` check, rather than `bool(alias)`, [#4253](https://github.com/pydantic/pydantic/pull/4253) by @sergeytsaplin","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Make `SecretStr` and `SecretBytes` hashable, [#4387](https://github.com/pydantic/pydantic/pull/4387) by @chbndrhnns","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Fix `StrictBytes` does not raise `ValidationError` when `max_length` is present in `Field`, [#4380](https://github.com/pydantic/pydantic/pull/4380) by @JeanArhancet","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Add support for bare `type`, [#4375](https://github.com/pydantic/pydantic/pull/4375) by @hramezani","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Support Python 3.11, including binaries for 3.11 in PyPI, [#4374](https://github.com/pydantic/pydantic/pull/4374) by @samuelcolvin","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Allow for custom parsing of environment variables via `parse_env_var` in `Config`, [#4406](https://github.com/pydantic/pydantic/pull/4406) by @acmiyaguchi","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Fix PEP487 `__set_name__` protocol in `BaseModel` for PrivateAttrs, [#4407](https://github.com/pydantic/pydantic/pull/4407) by @tlambert03","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Add support for `re.Pattern`, [#4366](https://github.com/pydantic/pydantic/pull/4366) by @hramezani","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Fix implicitly importing `ForwardRef` and `Callable` from `pydantic.typing` instead of `typing` and also expose `MappingIntStrAny`, [#4358](https://github.com/pydantic/pydantic/pull/4358) by @aminalaee","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"moved repo to `pydantic/pydantic`, [#4348](https://github.com/pydantic/pydantic/pull/4348) by @yezz123","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"fix \"extra fields not permitted\" error when dataclass with `Extra.forbid` is validated multiple times, [#4343](https://github.com/pydantic/pydantic/pull/4343) by @detachhead","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Add Python 3.9 and 3.10 examples to docs, [#4339](https://github.com/pydantic/pydantic/pull/4339) by @Bobronium","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Allow type checkers to infer inner type of `Json` type. `Json[list[str]]` will be now inferred as `list[str]`,","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Fix `StrictStr` does not raise `ValidationError` when `max_length` is present in `Field`, [#4388](https://github.com/pydantic/pydantic/pull/4388) by @hramezani","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"The `compiled` boolean (whether *pydantic* is compiled with cython) has been moved from `main.py` to `version.py`","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Update `ForwardRef`s in `Field.outer_type_`, [#4249](https://github.com/pydantic/pydantic/pull/4249) by @JacobHayes","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"The use of `__dataclass_transform__` has been replaced by `typing_extensions.dataclass_transform`, which is the preferred way to mark pydantic models as a dataclass under [PEP 681](https://peps.python.org/pep-0681/), [#4241](https://github.com/pydantic/pydantic/pull/4241) by @multimeric","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Refactor the whole *pydantic* `dataclass` decorator to really act like its standard lib equivalent.","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Use parent model's `Config` when validating nested `NamedTuple` fields, [#4219](https://github.com/pydantic/pydantic/pull/4219) by @synek","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"breaking","description":"Update `BaseModel.construct` to work with aliased Fields, [#4192](https://github.com/pydantic/pydantic/pull/4192) by @kylebamos","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"removed","description":"remove `Any` types from the `dataclass` decorator so it can be used with the `disallow_any_expr` mypy option, [#4356](https://github.com/pydantic/pydantic/pull/4356) by @DetachHead","migration_hint":null},{"from_version":"1.10.0","to_version":"1.10.0","change_type":"renamed","description":"Rename `master` to `main`, [#4405](https://github.com/pydantic/pydantic/pull/4405) by @hramezani","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"api","description":"Allow abstracts sets (eg. dict keys) in the `include` and `exclude` arguments of `dict()`, [#921](https://github.com/pydantic/pydantic/pull/921) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"api","description":"Change the signature of `Model.construct()` to be more user-friendly, document `construct()` usage, [#898](https://github.com/pydantic/pydantic/pull/898) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"api","description":"Fix `ConstrainedList`, update schema generation to reflect `min_items` and `max_items` `Field()` arguments, [#917](https://github.com/pydantic/pydantic/pull/917) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"api","description":"Add `**kwargs` to `pydantic.main.ModelMetaclass.__new__` so `__init_subclass__` can take custom parameters on extended","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"behavior","description":"Fix field of a type that has a default value, [#880](https://github.com/pydantic/pydantic/pull/880) by @koxudaxi","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"change secret types example, [#890](https://github.com/pydantic/pydantic/pull/890) by @ashears","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** Change the precedence of aliases so child model aliases override parent aliases,","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Fix issue with `BaseSettings` inheritance and `alias` getting set to `None`, [#882](https://github.com/pydantic/pydantic/pull/882) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Modify `__repr__` and `__str__` methods to be consistent across all public classes, add `__pretty__` to support","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"For `BaseSettings` merge environment variables and in-code values recursively, as long as they create a valid object","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Add example for the `construct()` method, [#907](https://github.com/pydantic/pydantic/pull/907) by @ashears","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Improve use of `Field` constraints on complex types, raise an error if constraints are not enforceable,","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"update docs for bool missing valid value, [#911](https://github.com/pydantic/pydantic/pull/911) by @trim21","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Better `str`/`repr` logic for `ModelField`, [#912](https://github.com/pydantic/pydantic/pull/912) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"breaking","description":"Fix JSON serialization errors on `ValidationError.json()` by using `pydantic_encoder`, [#922](https://github.com/pydantic/pydantic/pull/922) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"deprecated","description":"Use `FutureWarning` instead of `DeprecationWarning` when `alias` instead of `env` is used for settings models, [#881](https://github.com/pydantic/pydantic/pull/881) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"deprecated","description":"deprecation warning for `case_insensitive` on `BaseSettings` config, [#885](https://github.com/pydantic/pydantic/pull/885) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"deprecated","description":"**Breaking Change:** deprecate the `Model.fields` property, use `Model.__fields__` instead, [#883](https://github.com/pydantic/pydantic/pull/883) by @samuelcolvin","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"removed","description":"Clarify usage of `remove_untouched`, improve error message for types with no validators, [#926](https://github.com/pydantic/pydantic/pull/926) by @retnikt","migration_hint":null},{"from_version":"1.0","to_version":"1.0","change_type":"renamed","description":"**Breaking change:** Rename `skip_defaults` to `exclude_unset`, and add ability to exclude actual defaults, [#915](https://github.com/pydantic/pydantic/pull/915) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"behavior","description":"**Breaking Change:** alter the behaviour of `dict(model)` so that sub-models are no longer","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"behavior","description":"**Breaking Change:** modify parsing behavior for `bool`, [#617](https://github.com/pydantic/pydantic/pull/617) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking change:** Added `initvars` support to `post_init_post_parse`, [#748](https://github.com/pydantic/pydantic/pull/748) by @Raphael-C-Almeida","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** `get_validators` is no longer recognised, use `__get_validators__`.","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** Make `BaseModel.json()` only serialize the `__root__` key for models with custom root, [#752](https://github.com/pydantic/pydantic/pull/752) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** complete rewrite of `URL` parsing logic, [#755](https://github.com/pydantic/pydantic/pull/755) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** preserve superclass annotations for field-determination when not provided in subclass, [#757](https://github.com/pydantic/pydantic/pull/757) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"**Breaking Change:** `BaseSettings` now uses the special `env` settings to define which environment variables to","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"add support for `assert` statements inside validators, [#653](https://github.com/pydantic/pydantic/pull/653) by @abdusco","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"Update documentation to specify the use of `pydantic.dataclasses.dataclass` and subclassing `pydantic.BaseModel`, [#710](https://github.com/pydantic/pydantic/pull/710) by @maddosaurus","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"Allow custom JSON decoding and encoding via `json_loads` and `json_dumps` `Config` properties, [#714](https://github.com/pydantic/pydantic/pull/714) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"make all annotated fields occur in the order declared, [#715](https://github.com/pydantic/pydantic/pull/715) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"use pytest to test `mypy` integration, [#735](https://github.com/pydantic/pydantic/pull/735) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"add `__repr__` method to `ErrorWrapper`, [#738](https://github.com/pydantic/pydantic/pull/738) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"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](https://github.com/pydantic/pydantic/pull/745) by @djpetti","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"add documentation for Pycharm Plugin, [#750](https://github.com/pydantic/pydantic/pull/750) by @koxudaxi","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"fix broken examples in the docs, [#753](https://github.com/pydantic/pydantic/pull/753) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"moving typing related objects into `pydantic.typing`, [#761](https://github.com/pydantic/pydantic/pull/761) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"Minor performance improvements to `ErrorWrapper`, `ValidationError` and datetime parsing, [#763](https://github.com/pydantic/pydantic/pull/763) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"Improvements to `datetime`/`date`/`time`/`timedelta` types: more descriptive errors,","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"fix error messages for `Literal` types with multiple allowed values, [#770](https://github.com/pydantic/pydantic/pull/770) by @dmontagu","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"breaking","description":"Improved auto-generated `title` field in JSON schema by converting underscore to space, [#772](https://github.com/pydantic/pydantic/pull/772) by @skewty","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"renamed","description":"**Breaking Change:** modify default config settings for `BaseSettings`; `case_insensitive` renamed to `case_sensitive`,","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"renamed","description":"**Breaking change:** Implement `root_validator` and rename root errors from `__obj__` to `__root__`, [#729](https://github.com/pydantic/pydantic/pull/729) by @samuelcolvin","migration_hint":null},{"from_version":"0.32.2","to_version":"1.0","change_type":"renamed","description":"**Breaking Change:** rename `Schema` to `Field`, make it a function to placate mypy, [#577](https://github.com/pydantic/pydantic/pull/577) by @samuelcolvin","migration_hint":null},{"from_version":"0.7.1","to_version":"0.8.0","change_type":"breaking","description":"fix type annotation for `inherit_config` [#139](https://github.com/pydantic/pydantic/pull/139)","migration_hint":null},{"from_version":"0.7.1","to_version":"0.8.0","change_type":"breaking","description":"validate attributes of parent models [#141](https://github.com/pydantic/pydantic/pull/141)","migration_hint":null},{"from_version":"0.7.1","to_version":"0.8.0","change_type":"breaking","description":"**breaking change**: email validation now uses","migration_hint":null},{"from_version":"0.7.1","to_version":"0.8.0","change_type":"breaking","description":"**breaking change**: check for invalid field names in validators [#140](https://github.com/pydantic/pydantic/pull/140)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"breaking","description":"added compatibility with abstract base classes (ABCs) [#123](https://github.com/pydantic/pydantic/pull/123)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"breaking","description":"add wildcard validators of the form `@validate('*')` [#128](https://github.com/pydantic/pydantic/pull/128)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"breaking","description":"add `Config.use_enum_values` [#127](https://github.com/pydantic/pydantic/pull/127)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"breaking","description":"add `create_model` method [#113](https://github.com/pydantic/pydantic/pull/113) [#125](https://github.com/pydantic/pydantic/pull/125)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"removed","description":"remove use of `OrderedDict` and use simple dict [#126](https://github.com/pydantic/pydantic/pull/126)","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"removed","description":"**breaking change**: remove deprecated `.values()` on a model, use `.dict()` instead","migration_hint":null},{"from_version":"0.6.4","to_version":"0.7.0","change_type":"renamed","description":"**breaking change**: rename `.config` to `.__config__` on a model","migration_hint":null},{"from_version":"0.31.1","to_version":"0.32","change_type":"breaking","description":"add model name to `ValidationError` error message, [#676](https://github.com/pydantic/pydantic/pull/676) by @dmontagu","migration_hint":null},{"from_version":"0.31.1","to_version":"0.32","change_type":"breaking","description":"support `ForwardRef` (without self-referencing annotations) in Python 3.6, [#706](https://github.com/pydantic/pydantic/pull/706) by @koxudaxi","migration_hint":null},{"from_version":"0.31.1","to_version":"0.32","change_type":"breaking","description":"implement `schema_extra` in `Config` sub-class, [#663](https://github.com/pydantic/pydantic/pull/663) by @tiangolo","migration_hint":null},{"from_version":"0.31.1","to_version":"0.32","change_type":"removed","description":"**breaking change**: remove `__getattr__` and rename `__values__` to `__dict__` on `BaseModel`,","migration_hint":null},{"from_version":"0.27.0","to_version":"0.27","change_type":"api","description":"fix handling of generic types without specified parameters, [#550](https://github.com/pydantic/pydantic/pull/550) by @dmontagu","migration_hint":null},{"from_version":"0.27.0","to_version":"0.27","change_type":"breaking","description":"**breaking change** (maybe): this is the first release compiled with **cython**, see the docs and please","migration_hint":null},{"from_version":"0.27.0","to_version":"0.27","change_type":"breaking","description":"**breaking change**  `_pydantic_post_init` to execute dataclass' original `__post_init__` before","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"fix variable length tuples support, [#495](https://github.com/pydantic/pydantic/pull/495) by @pilosus","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"add `Color` type, [#504](https://github.com/pydantic/pydantic/pull/504) by @pilosus and @samuelcolvin","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"fix to schema generation for `IPvAnyAddress`, `IPvAnyInterface`, `IPvAnyNetwork` [#498](https://github.com/pydantic/pydantic/pull/498) by @pilosus","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"fix to schema generation for `IPv4Address`, `IPv6Address`, `IPv4Interface`,","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"**Breaking Change:** fix `.dict(skip_keys=True)` skipping values set via alias (this involves changing","migration_hint":null},{"from_version":"0.25","to_version":"0.26","change_type":"breaking","description":"fix return type hint for `create_model`, [#526](https://github.com/pydantic/pydantic/pull/526) by @dmontagu","migration_hint":null},{"from_version":"0.19.0","to_version":"0.20.0","change_type":"api","description":"**breaking change** (maybe): more sophisticated argument parsing for validators, any subset of","migration_hint":null},{"from_version":"0.19.0","to_version":"0.20.0","change_type":"api","description":"**breaking change**: Adds `skip_defaults` argument to `BaseModel.dict()` to allow skipping of fields that","migration_hint":null},{"from_version":"0.19.0","to_version":"0.20.0","change_type":"behavior","description":"Fix `extra` behaviour for multiple inheritance/mix-ins, [#394](https://github.com/pydantic/pydantic/pull/394) by @YaraslauZhylko","migration_hint":null},{"from_version":"0.19.0","to_version":"0.20.0","change_type":"breaking","description":"add `py.typed` marker file for PEP-561 support, [#391](https://github.com/pydantic/pydantic/pull/391) by @je-l","migration_hint":null},{"from_version":"0.1.0","to_version":"0.2.0","change_type":"breaking","description":"**breaking change**: `values()` on a model is now a method not a property,","migration_hint":null},{"from_version":"0.1.0","to_version":"0.2.0","change_type":"breaking","description":"allow annotation only fields to support mypy","migration_hint":null},{"from_version":"0.1.0","to_version":"0.2.0","change_type":"breaking","description":"add pretty `to_string(pretty=True)` method for models","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"behavior","description":"Fix validators with `always=True` when the default is `None` or the type is optional, also prevent","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"breaking","description":"fix `ignore_extra=False` and `allow_population_by_alias=True`, fix [#257](https://github.com/pydantic/pydantic/pull/257) by @samuelcolvin","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"breaking","description":"add support for postponed annotations, [#348](https://github.com/pydantic/pydantic/pull/348) by @samuelcolvin","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"breaking","description":"**breaking change**: don't call validators on keys of dictionaries, [#254](https://github.com/pydantic/pydantic/pull/254) by @samuelcolvin","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"breaking","description":"improve documentation for settings priority and allow it to be easily changed, [#343](https://github.com/pydantic/pydantic/pull/343) by @samuelcolvin","migration_hint":null},{"from_version":"0.17.0","to_version":"0.18.0","change_type":"breaking","description":"**breaking change**: Set `BaseConfig` attributes `min_anystr_length` and `max_anystr_length` to","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"support for passing Config class in dataclasses decorator, [#276](https://github.com/pydantic/pydantic/pull/276) by @jarekkar","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"add \"Using Pydantic\" section to docs, [#323](https://github.com/pydantic/pydantic/pull/323) by @tiangolo & [#326](https://github.com/pydantic/pydantic/pull/326) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"support for nested dataclasses, [#334](https://github.com/pydantic/pydantic/pull/334) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"better errors when getting an `ImportError` with `PyObject`, [#309](https://github.com/pydantic/pydantic/pull/309) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"support `ClassVar` by excluding such attributes from fields, [#184](https://github.com/pydantic/pydantic/pull/184) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"fix schema generation for fields annotated as `: dict`, `: list`,","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"add support for constrained strings as dict keys in schema, [#332](https://github.com/pydantic/pydantic/pull/332) by @tiangolo","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"prevent duplicate validator check in ipython, fix [#312](https://github.com/pydantic/pydantic/pull/312) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"prevent validators being called repeatedly after inheritance, [#327](https://github.com/pydantic/pydantic/pull/327) by @samuelcolvin","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"breaking","description":"fix schema for `timedelta` as number, [#325](https://github.com/pydantic/pydantic/pull/325) by @tiangolo","migration_hint":null},{"from_version":"0.16.1","to_version":"0.17.0","change_type":"renamed","description":"rename `get_validators` to `__get_validators__`, deprecation warning on use of old name, [#338](https://github.com/pydantic/pydantic/pull/338) by @samuelcolvin","migration_hint":null},{"from_version":"0.15.0","to_version":"0.16.0","change_type":"api","description":"**breaking change**: refactor schema generation to be compatible with JSON Schema and OpenAPI specs, [#308](https://github.com/pydantic/pydantic/pull/308) by @tiangolo","migration_hint":null},{"from_version":"0.15.0","to_version":"0.16.0","change_type":"breaking","description":"add `case_insensitive` option to `BaseSettings` `Config`, [#277](https://github.com/pydantic/pydantic/pull/277) by @jasonkuhrt","migration_hint":null},{"from_version":"0.15.0","to_version":"0.16.0","change_type":"breaking","description":"add `schema` to `schema` module to generate top-level schemas from base models, [#308](https://github.com/pydantic/pydantic/pull/308) by @tiangolo","migration_hint":null},{"from_version":"0.15.0","to_version":"0.16.0","change_type":"breaking","description":"add additional fields to `Schema` class to declare validation for `str` and numeric values, [#311](https://github.com/pydantic/pydantic/pull/311) by @tiangolo","migration_hint":null},{"from_version":"0.15.0","to_version":"0.16.0","change_type":"renamed","description":"rename `_schema` to `schema` on fields, [#318](https://github.com/pydantic/pydantic/pull/318) by @samuelcolvin","migration_hint":null},{"from_version":"0.10.0","to_version":"0.11.0","change_type":"breaking","description":"JSON serialization of models and schemas [#133](https://github.com/pydantic/pydantic/pull/133)","migration_hint":null},{"from_version":"0.10.0","to_version":"0.11.0","change_type":"breaking","description":"model schema generation [#190](https://github.com/pydantic/pydantic/pull/190)","migration_hint":null},{"from_version":"0.10.0","to_version":"0.11.0","change_type":"breaking","description":"make `list`, `tuple` and `set` types stricter [#86](https://github.com/pydantic/pydantic/pull/86)","migration_hint":null},{"from_version":"0.10.0","to_version":"0.11.0","change_type":"breaking","description":"add `FilePath` and `DirectoryPath` types [#10](https://github.com/pydantic/pydantic/pull/10)","migration_hint":null},{"from_version":"0.10.0","to_version":"0.11.0","change_type":"removed","description":"**breaking change**: remove msgpack parsing [#201](https://github.com/pydantic/pydantic/pull/201)","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"api","description":"**breaking change**: correct behaviour of `lt` and `gt` arguments to `conint` etc. [#188](https://github.com/pydantic/pydantic/pull/188)","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"behavior","description":"copy defaults to model values, so different models don't share objects [#154](https://github.com/pydantic/pydantic/pull/154)","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"breaking","description":"fix typo in validator exception [#150](https://github.com/pydantic/pydantic/pull/150)","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"breaking","description":"add `Config.allow_population_by_alias` [#160](https://github.com/pydantic/pydantic/pull/160), thanks @bendemaree","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"breaking","description":"**breaking change**: new errors format [#179](https://github.com/pydantic/pydantic/pull/179), thanks @Gr1N","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"breaking","description":"added error context and ability to redefine error message templates using `Config.error_msg_templates` [#183](https://github.com/pydantic/pydantic/pull/183),","migration_hint":null},{"from_version":"0.9.1","to_version":"0.10.0","change_type":"removed","description":"**breaking change**: removed `Config.min_number_size` and `Config.max_number_size` [#183](https://github.com/pydantic/pydantic/pull/183), thanks @Gr1N","migration_hint":null}],"total":394,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}