v2.8.0b1
版本发布时间: 2024-06-27 22:22:29
pydantic/pydantic最新发布版本:v2.9.2(2024-09-17 22:59:21)
What's Changed
Packaging
- Update citation version automatically with new releases by @sydney-runkle in #9673
- Bump pyright to
v1.1.367
and add type checking tests for pipeline API by @adriangb in #9674 - Update
pydantic.v1
stub tov1.10.17
by @sydney-runkle in #9707 - General package updates to prep for
v2.8.0b1
by @sydney-runkle in #9741 - Bump
pydantic-core
tov2.20.0
by @sydney-runkle in #9745 - Add support for Python 3.13 by @sydney-runkle in #9743
- Update
pdm
version used forpdm.lock
tov2.16.1
by @sydney-runkle in #9761 - Update to
ruff
v0.4.8
by @Viicos in #9585
New Features
- Experimental: support
defer_build
forTypeAdapter
by @MarkusSintonen in #8939 - Implement
deprecated
field in json schema by @NeevCohen in #9298 - Experimental: Add pipeline API by @adriangb in #9459
- Add support for programmatic title generation by @NeevCohen in #9183
- Implement
fail_fast
feature by @uriyyo in #9708 - Add
ser_json_inf_nan='strings'
mode to produce valid JSON by @josh-newman in pydantic/pydantic-core#1307
Changes
- Add warning when "alias" is set in ignored
Annotated
field by @nix010 in #9170 - Support serialization of some serializable defaults in JSON schema by @sydney-runkle in #9624
- Relax type specification for
__validators__
values increate_model
by @sydney-runkle in #9697 -
Breaking Change: Improve
smart
union matching logic by @sydney-runkle in pydantic/pydantic-core#1322 You can read more about oursmart
union matching logic here. In some cases, if the old behavior is desired, you can switch toleft-to-right
mode and change the order of yourUnion
members.
Performance
Internal Improvements
- ⚡️ Speed up
_display_error_loc()
by 25% inpydantic/v1/error_wrappers.py
by @misrasaurabh1 in #9653 - ⚡️ Speed up
_get_all_json_refs()
by 34% inpydantic/json_schema.py
by @misrasaurabh1 in #9650 - ⚡️ Speed up
is_pydantic_dataclass()
by 41% inpydantic/dataclasses.py
by @misrasaurabh1 in #9652 - ⚡️ Speed up
to_snake()
by 27% inpydantic/alias_generators.py
by @misrasaurabh1 in #9747 - ⚡️ Speed up
unwrap_wrapped_function()
by 93% inpydantic/_internal/_decorators.py
by @misrasaurabh1 in #9727
Fixes
- Replace
__spec__.parent
with__package__
by @hramezani in #9331 - Fix Outputted Model JSON Schema for
Sequence
type by @anesmemisevic in #9303 - Fix typing of
_frame_depth
by @Viicos in #9353 - Make
ImportString
json schema compatible by @amitschang in #9344 - Hide private attributes (
PrivateAttr
) from__init__
signature in type checkers by @idan22moral in #9293 - Make detection of
TypeVar
defaults robust to the CPythonPEP-696
implementation by @AlexWaygood in #9426 - Fix usage of
PlainSerializer
with builtin types by @Viicos in #9450 - Add more robust custom validation examples by @ChrisPappalardo in #9468
- Fix ignored
strict
specification forStringConstraint(strict=False)
by @vbmendes in #9476 - Use
Self
where possible by @Viicos in #9479 - Do not alter
RootModel.model_construct
signature in themypy
plugin by @Viicos in #9480 - Fixed type hint of
validation_context
by @OhioDschungel6 in #9508 - Support context being passed to TypeAdapter's
dump_json
/dump_python
by @alexcouper in #9495 - Updates type signature for
Field()
constructor by @bjmc in #9484 - Improve builtin alias generators by @sydney-runkle in #9561
- Fix typing of
TypeAdapter
by @Viicos in #9570 - Add fallback default value for private fields in
__setstate__
of BaseModel by @anhpham1509 in #9584 - Support
PEP 746
by @adriangb in #9587 - Allow validator and serializer functions to have default values by @Viicos in #9478
- Fix bug with mypy plugin's handling of covariant
TypeVar
fields by @dmontagu in #9606 - Fix multiple annotation / constraint application logic by @sydney-runkle in #9623
- Respect
regex
flags in validation and json schema by @sydney-runkle in #9591 - Fix type hint on
IpvAnyAddress
by @sydney-runkle in #9640 - Allow a field specifier on
__pydantic_extra__
by @dmontagu in #9659 - Use normalized case for file path comparison by @sydney-runkle in #9737
- Modify constraint application logic to allow field constraints on
Optional[Decimal]
by @lazyhope in #9754 -
validate_call
type params fix by @sydney-runkle in #9760 - Check all warnings returned by
pytest.warns()
by @s-t-e-v-e-n-k in #9702 - Reuse
re.Pattern
object in regex patterns to allow for regex flags by @sydney-runkle in pydantic/pydantic-core#1318
New Contributors
- @idan22moral made their first contribution in #9294
- @anesmemisevic made their first contribution in #9303
- @max-muoto made their first contribution in #9338
- @amitschang made their first contribution in #9344
- @paulmartin91 made their first contribution in #9410
- @OhioDschungel6 made their first contribution in #9405
- @AlexWaygood made their first contribution in #9426
- @kinuax made their first contribution in #9433
- @antoni-jamiolkowski made their first contribution in #9431
- @candleindark made their first contribution in #9448
- @nix010 made their first contribution in #9170
- @tomy0000000 made their first contribution in #9457
- @vbmendes made their first contribution in #9470
- @micheleAlberto made their first contribution in #9471
- @ChrisPappalardo made their first contribution in #9468
- @blueTurtz made their first contribution in #9475
- @WinterBlue16 made their first contribution in #9477
- @bittner made their first contribution in #9500
- @alexcouper made their first contribution in #9495
- @bjmc made their first contribution in #9484
- @pjvv made their first contribution in #9529
- @nedbat made their first contribution in #9530
- @gunnellEvan made their first contribution in #9469
- @jaymbans made their first contribution in #9531
- @MarcBresson made their first contribution in #9534
- @anhpham1509 made their first contribution in #9584
- @K-dash made their first contribution in #9595
- @s-t-e-v-e-n-k made their first contribution in #9527
- @airwoodix made their first contribution in #9506
- @misrasaurabh1 made their first contribution in #9653
- @AlessandroMiola made their first contribution in #9740
- @mylapallilavanyaa made their first contribution in #9746
- @lazyhope made their first contribution in #9754
- @YassinNouh21 made their first contribution in #9759
Full Changelog: https://github.com/pydantic/pydantic/compare/v2.7.4...v2.8.0b1/