Support dates all the way to 1BC by changhc · Pull Request #77 · pydantic/speedate (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation8 Commits7 Checks7 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
This is my attempt to fix pydantic/pydantic#8570. Tested this locally with pydantic-core and it worked.
The reason of that original error is underflow. I'm not very sure what is so special about year 1600 and why that was introduced. It seems that it was once year 1000 in c7f9257 but somehow it was revert back to 1600. Considering @davidhewitt's comment #55 (review), since the minimum time string allowed in RFC 3339 is 0000-01-01T00:00:00+00:00
(UTC since other timestamp constants are also in UTC,) I think it makes sense to replace that year 1600 constant with the minimum year 0000, which will help get rid of the underflow problem.
I added some test cases for the minimum timestamp and other existing test cases still work, but I'm not sure if I missed out anything, especially because I still don't know why 1600 was used in the first place.
Note that now watershed does not cover the entire range of acceptable negative timestamp values. I changed that value to cover the entire range at first, but then I reverted the change since that would probably affect existing users relying on that value.
changhc marked this pull request as ready for review
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for working on this, this seems correct to me!
I assume that this will fix #15; can we please add some additional test cases around leap years to check that this is indeed the case?
Comment on lines -151 to -154
let d = Date::from_timestamp(-11_676_096_000 + 1000, false).unwrap(); |
---|
assert_eq!(d.to_string(), "1600-01-01"); |
let d = Date::from_timestamp(-11_673_417_600, false).unwrap(); |
assert_eq!(d.to_string(), "1600-02-01"); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we restore these test cases? Not immediately clear to me why they were deleted.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed them because this test case is called date_from_timestamp_extremes
and 1600 is no longer "an extreme value" (and I added 0000-01-01 instead.) I'll create a new test case and add them back.
I've added 3 cases checking 1 BC, 1200 AD and 1600 AD. Is there anything else specific I should add? I think other cases are already covered.
It would be good to check February 29th of some leap years in that 0-1599 range to confirm we are handling them correctly.
From wikipedia
Every year that is exactly divisible by four is a leap year, except for years that are exactly divisible by 100, but these centurial years are leap years if they are exactly divisible by 400. For example, the years 1700, 1800, and 1900 are not leap years, but the year 2000 is.
So I guess February 29th should be valid on 1200, but not 1300, 1400, 1500.
Similarly we could check 1200 (yes), 1201 (no), 1202 (no), 1203 (yes).
I see. I've added some more test cases. Definitely not covering the entire range 0-1600 but I think these should be enough, unless we really want more of these tests.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect, this looks great to me! Thanks 🙏
davidhewitt changed the title
Replace UNIX 1600 with UNIX 0000 Support dates all the way to 1BC
renovate bot added a commit to spiraldb/ziggy-pydust that referenced this pull request
renovate bot added a commit to MartinBernstorff/Memium that referenced this pull request
kodiakhq bot added a commit to cloudquery/python-plugin-template that referenced this pull request
This PR contains the following updates:
Package | Type | Update | Change | Pending |
---|---|---|---|---|
pydantic (changelog) | dependencies | minor | 2.4.2 -> 2.10.2 |
2.10.3 |
Release Notes
pydantic/pydantic (pydantic)
v2.10.2
What's Changed
Fixes
- Only evaluate FieldInfo annotations if required during schema building by @Viicos in #10769
- Do not evaluate annotations for private fields by @Viicos in #10962
- Support serialization as any for
Secret
types andUrl
types by @sydney-runkle in #10947 - Fix type hint of
Field.default
to be compatible with Python 3.8 and 3.9 by @Viicos in #10972 - Add hashing support for URL types by @sydney-runkle in #10975
- Hide
BaseModel.__replace__
definition from type checkers by @Viicos in 10979
v2.10.1
What's Changed
Packaging
- Bump
pydantic-core
version tov2.27.1
by @sydney-runkle in #10938
Fixes
- Use the correct frame when instantiating a parametrized
TypeAdapter
by @Viicos in #10893 - Relax check for validated data in
default_factory
utils by @sydney-runkle in #10909 - Fix type checking issue with
model_fields
andmodel_computed_fields
by @sydney-runkle in #10911 - Use the parent configuration during schema generation for stdlib
dataclass
es by @sydney-runkle in #10928 - Use the
globals
of the function when evaluating the return type of serializers andcomputed_field
s by @Viicos in #10929 - Fix URL constraint application by @sydney-runkle in #10922
- Fix URL equality with different validation methods by @sydney-runkle in #10934
- Fix JSON schema title when specified as
''
by @sydney-runkle in #10936 - Fix
python
mode serialization forcomplex
inference by @sydney-runkle in pydantic-core#1549
New Contributors
v2.10.0
The code released in v2.10.0 is practically identical to that of v2.10.0b2.
See the v2.10 release blog post for the highlights!
What's Changed
Packaging
- Bump
pydantic-core
tov2.27.0
by @sydney-runkle in #10825 - Replaced pdm with uv by @frfahim in #10727
New Features
- Support
fractions.Fraction
by @sydney-runkle in #10318 - Support
Hashable
for json validation by @sydney-runkle in #10324 - Add a
SocketPath
type forlinux
systems by @theunkn0wn1 in #10378 - Allow arbitrary refs in JSON schema
examples
by @sydney-runkle in #10417 - Support
defer_build
for Pydantic dataclasses by @Viicos in #10313 - Adding v1 / v2 incompatibility warning for nested v1 model by @sydney-runkle in #10431
- Add support for unpacked
TypedDict
to type hint variadic keyword arguments with@validate_call
by @Viicos in #10416 - Support compiled patterns in
protected_namespaces
by @sydney-runkle in #10522 - Add support for
propertyNames
in JSON schema by @FlorianSW in #10478 - Adding
__replace__
protocol for Python 3.13+ support by @sydney-runkle in #10596 - Expose public
sort
method for JSON schema generation by @sydney-runkle in #10595 - Add runtime validation of
@validate_call
callable argument by @kc0506 in #10627 - Add
experimental_allow_partial
support by @samuelcolvin in #10748 - Support default factories taking validated data as an argument by @Viicos in #10678
- Allow subclassing
ValidationError
andPydanticCustomError
by @Youssefares in pydantic/pydantic-core#1413 - Add
trailing-strings
support toexperimental_allow_partial
by @sydney-runkle in #10825 - Add
rebuild()
method forTypeAdapter
and simplifydefer_build
patterns by @sydney-runkle in #10537 - Improve
TypeAdapter
instance repr by @sydney-runkle in #10872
Changes
- Don't allow customization of
SchemaGenerator
until interface is more stable by @sydney-runkle in #10303 - Cleanly
defer_build
onTypeAdapters
, removing experimental flag by @sydney-runkle in #10329 - Fix
mro
of generic subclass by @kc0506 in #10100 - Strip whitespaces on JSON Schema title generation by @sydney-runkle in #10404
- Use
b64decode
andb64encode
forBase64Bytes
type by @sydney-runkle in #10486 - Relax protected namespace config default by @sydney-runkle in #10441
- Revalidate parametrized generics if instance's origin is subclass of OG class by @sydney-runkle in #10666
- Warn if configuration is specified on the
@dataclass
decorator and with the__pydantic_config__
attribute by @sydney-runkle in #10406 - Recommend against using
Ellipsis
(...) withField
by @Viicos in #10661 - Migrate to subclassing instead of annotated approach for pydantic url types by @sydney-runkle in #10662
- Change JSON schema generation of
Literal
s andEnums
by @Viicos in #10692 - Simplify unions involving
Any
orNever
when replacing type variables by @Viicos in #10338 - Do not require padding when decoding
base64
bytes by @bschoenmaeckers in pydantic/pydantic-core#1448 - Support dates all the way to 1BC by @changhc in pydantic/speedate#77
Performance
- Schema cleaning: skip unnecessary copies during schema walking by @Viicos in #10286
- Refactor namespace logic for annotations evaluation by @Viicos in #10530
- Improve email regexp on edge cases by @AlekseyLobanov in #10601
CoreMetadata
refactor with an emphasis on documentation, schema build time performance, and reducing complexity by @sydney-runkle in #10675
Fixes
- Remove guarding check on
computed_field
withfield_serializer
by @nix010 in #10390 - Fix
Predicate
issue inv2.9.0
by @sydney-runkle in #10321 - Fixing
annotated-types
bound by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Use correct types namespace when building
namedtuple
core schemas by @Viicos in #10337 - Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix
IncEx
type alias definition by @Viicos in #10339 - Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Fix nested type statement by @kc0506 in #10369
- Improve typing of
ModelMetaclass.mro
by @Viicos in #10372 - Fix class access of deprecated
computed_field
s by @Viicos in #10391 - Make sure
inspect.iscoroutinefunction
works on coroutines decorated with@validate_call
by @MovisLi in #10374 - Fix
NameError
when usingvalidate_call
with PEP 695 on a class by @kc0506 in #10380 - Fix
ZoneInfo
with various invalid types by @sydney-runkle in #10408 - Fix
PydanticUserError
on emptymodel_config
with annotations by @cdwilson in #10412 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix schema generation error when serialization schema holds references by @Viicos in #10444
- Inline references if possible when generating schema for
json_schema_input_type
by @Viicos in #10439 - Fix recursive arguments in
Representation
by @Viicos in #10480 - Fix representation for builtin function types by @kschwab in #10479
- Add python validators for decimal constraints (
max_digits
anddecimal_places
) by @sydney-runkle in #10506 - Only fetch
__pydantic_core_schema__
from the current class during schema generation by @Viicos in #10518 - Fix
stacklevel
on deprecation warnings forBaseModel
by @sydney-runkle in #10520 - Fix warning
stacklevel
inBaseModel.__init__
by @Viicos in #10526 - Improve error handling for in-evaluable refs for discriminator application by @sydney-runkle in #10440
- Change the signature of
ConfigWrapper.core_config
to take the title directly by @Viicos in #10562 - Do not use the previous config from the stack for dataclasses without config by @Viicos in #10576
- Fix serialization for IP types with
mode='python'
by @sydney-runkle in #10594 - Support constraint application for
Base64Etc
types by @sydney-runkle in #10584 - Fix
validate_call
ignoringField
inAnnotated
by @kc0506 in #10610 - Raise an error when
Self
is invalid by @kc0506 in #10609 - Using
core_schema.InvalidSchema
instead of metadata injection + checks by @sydney-runkle in #10523 - Tweak type alias logic by @kc0506 in #10643
- Support usage of
type
withtyping.Self
and type aliases by @kc0506 in #10621 - Use overloads for
Field
andPrivateAttr
functions by @Viicos in #10651 - Clean up the
mypy
plugin implementation by @Viicos in #10669 - Properly check for
typing_extensions
variant ofTypeAliasType
by @Daraan in #10713 - Allow any mapping in
BaseModel.model_copy()
by @Viicos in #10751 - Fix
isinstance
behavior for urls by @sydney-runkle in #10766 - Ensure
cached_property
can be set on Pydantic models by @Viicos in #10774 - Fix equality checks for primitives in literals by @sydney-runkle in pydantic/pydantic-core#1459
- Properly enforce
host_required
for URLs by @Viicos in pydantic/pydantic-core#1488 - Fix when
coerce_numbers_to_str
enabled and string has invalid Unicode character by @andrey-berenda in pydantic/pydantic-core#1515 - Fix serializing
complex
values inEnum
s by @changhc in pydantic/pydantic-core#1524 - Refactor
_typing_extra
module by @Viicos in #10725 - Support intuitive equality for urls by @sydney-runkle in #10798
- Add
bytearray
toTypeAdapter.validate_json
signature by @samuelcolvin in #10802 - Ensure class access of method descriptors is performed when used as a default with
Field
by @Viicos in #10816 - Fix circular import with
validate_call
by @sydney-runkle in #10807 - Fix error when using type aliases referencing other type aliases by @Viicos in #10809
- Fix
IncEx
type alias to be compatible with mypy by @Viicos in #10813 - Make
__signature__
a lazy property, do not deepcopy defaults by @Viicos in #10818 - Make
__signature__
lazy for dataclasses, too by @sydney-runkle in #10832 - Subclass all single host url classes from
AnyUrl
to preserve behavior from v2.9 by @sydney-runkle in #10856
New Contributors
- @jakob-keller made their first contribution in #10331
- @MovisLi made their first contribution in #10374
- @joaopalmeiro made their first contribution in #10405
- @theunkn0wn1 made their first contribution in #10378
- @cdwilson made their first contribution in #10412
- @dlax made their first contribution in #10421
- @kschwab made their first contribution in #10479
- @santibreo made their first contribution in #10453
- @FlorianSW made their first contribution in #10478
- @tkasuz made their first contribution in #10555
- @AlekseyLobanov made their first contribution in #10601
- @NiclasvanEyk made their first contribution in #10667
- @mschoettle made their first contribution in #10677
- @Daraan made their first contribution in #10713
- @k4nar made their first contribution in #10736
- @UriyaHarpeness made their first contribution in #10740
- @frfahim made their first contribution in #10727
v2.9.2
What's Changed
Fixes
- Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Adding notes on designing sound
Callable
discriminators by @sydney-runkle in #10400 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix
Union
serialization warnings by @sydney-runkle in pydantic/pydantic-core#1449 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix
ZoneInfo
validation with various invalid types by @sydney-runkle in #10408
v2.9.1
What's Changed
Fixes
- Fix Predicate issue in v2.9.0 by @sydney-runkle in #10321
- Fixing
annotated-types
bound to>=0.6.0
by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Fix
IncExc
type alias definition by @Viicos in #10339 - Use correct types namespace when building namedtuple core schemas by @Viicos in #10337
- Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix tagged union serialization with alias generators by @sydney-runkle in pydantic/pydantic-core#1442
v2.9.0
The code released in v2.9.0 is practically identical to that of v2.9.0b2.
What's Changed
Packaging
- Bump
ruff
tov0.5.0
andpyright
tov1.1.369
by @sydney-runkle in #9801 - Bump
pydantic-extra-types
tov2.9.0
by @sydney-runkle in #9832 - Support compatibility with
pdm v2.18.1
by @Viicos in #10138 - Bump
v1
version stub tov1.10.18
by @sydney-runkle in #10214 - Bump
pydantic-core
tov2.23.2
by @sydney-runkle in #10311
New Features
- Add support for
ZoneInfo
by @Youssefares in #9896 - Add
Config.val_json_bytes
by @josh-newman in #9770 - Add DSN for Snowflake by @aditkumar72 in #10128
- Support
complex
number by @changhc in #9654 - Add support for
annotated_types.Not
by @aditkumar72 in #10210 - Allow
WithJsonSchema
to inject$ref
s w/http
orhttps
links by @dAIsySHEng1 in #9863 - Allow validators to customize validation JSON schema by @Viicos in #10094
- Support parametrized
PathLike
types by @nix010 in #9764 - Add tagged union serializer that attempts to use
str
orcallable
discriminators to select the correct serializer by @sydney-runkle in in pydantic/pydantic-core#1397
Changes
- Breaking Change: Merge
dict
typejson_schema_extra
by @sydney-runkle in #9792- For more info (how to replicate old behavior) on this change, see here
- Refactor annotation injection for known (often generic) types by @sydney-runkle in #9979
- Move annotation compatibility errors to validation phase by @sydney-runkle in #9999
- Improve runtime errors for string constraints like
pattern
for incompatible types by @sydney-runkle in #10158 - Remove
'allOf'
JSON schema workarounds by @dpeachey in #10029 - Remove
typed_dict_cls
data fromCoreMetadata
by @sydney-runkle in #10180 - Deprecate passing a dict to the
Examples
class by @Viicos in #10181 - Remove
initial_metadata
from internal metadata construct by @sydney-runkle in #10194 - Use
re.Pattern.search
instead ofre.Pattern.match
for consistency withrust
behavior by @tinez in pydantic/pydantic-core#1368 - Show value of wrongly typed data in
pydantic-core
serialization warning by @BoxyUwU in pydantic/pydantic-core#1377 - Breaking Change: in
pydantic-core
, changemetadata
type hint in core schemas fromAny
->Dict[str, Any] | None
by @sydney-runkle in pydantic/pydantic-core#1411 - Raise helpful warning when
self
isn't returned from model validator by @sydney-runkle in #10255
Performance
- Initial start at improving import times for modules, using caching primarily by @sydney-runkle in #10009
- Using cached internal import for
BaseModel
by @sydney-runkle in #10013 - Simplify internal generics logic - remove generator overhead by @sydney-runkle in #10059
- Remove default module globals from types namespace by @sydney-runkle in #10123
- Performance boost: skip caching parent namespaces in most cases by @sydney-runkle in #10113
- Update ns stack with already copied ns by @sydney-runkle in #10267
Minor Internal Improvements
- ⚡️ Speed up
multiple_of_validator()
by 31% inpydantic/_internal/_validators.py
by @misrasaurabh1 in #9839 - ⚡️ Speed up
ModelPrivateAttr.__set_name__()
by 18% inpydantic/fields.py
by @misrasaurabh1 in #9841 - ⚡️ Speed up
dataclass()
by 7% inpydantic/dataclasses.py
by @misrasaurabh1 in #9843 - ⚡️ Speed up function
_field_name_for_signature
by 37% inpydantic/_internal/_signature.py
by @misrasaurabh1 in #9951 - ⚡️ Speed up method
GenerateSchema._unpack_refs_defs
by 26% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9949 - ⚡️ Speed up function
apply_each_item_validators
by 100% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9950 - ⚡️ Speed up method
ConfigWrapper.core_config
by 28% inpydantic/_internal/_config.py
by @misrasaurabh1 in #9953
Fixes
- Respect
use_enum_values
onLiteral
types by @kwint in #9787 - Prevent type error for exotic
BaseModel/RootModel
inheritance by @dmontagu in #9913 - Fix typing issue with field_validator-decorated methods by @dmontagu in #9914
- Replace
str
type annotation withAny
in validator factories in documentation on validators by @maximilianfellhuber in #9885 - Fix
ComputedFieldInfo.wrapped_property
pointer when a property setter is assigned by @tlambert03 in #9892 - Fix recursive typing of
main.IncEnx
by @tlambert03 in #9924 - Allow usage of
type[Annotated[...]]
by @Viicos in #9932 mypy
plugin: handle frozen fields on a per-field basis by @dmontagu in #9935- Fix typo in
invalid-annotated-type
error code by @sydney-runkle in #9948 - Simplify schema generation for
uuid
,url
, andip
types by @sydney-runkle in #9975 - Move
date
schemas to_generate_schema.py
by @sydney-runkle in #9976 - Move
decimal.Decimal
validation to_generate_schema.py
by @sydney-runkle in #9977 - Simplify IP address schema in
_std_types_schema.py
by @sydney-runkle in #9959 - Fix type annotations for some potentially generic
GenerateSchema.match_type
options by @sydney-runkle in #9961 - Add class name to "has conflict" warnings by @msabramo in #9964
- Fix
dataclass
ignoringdefault_factory
passed in Annotated by @kc0506 in #9971 - Fix
Sequence
ignoringdiscriminator
by @kc0506 in #9980 - Fix typing for
IPvAnyAddress
andIPvAnyInterface
by @haoyun in #9990 - Fix false positives on v1 models in
mypy
plugin forfrom_orm
check requiring from_attributes=True config by @radekwlsk in #9938 - Apply
strict=True
to__init__
inmypy
plugin by @kc0506 in #9998 - Refactor application of
deque
annotations by @sydney-runkle in #10018 - Raise a better user error when failing to evaluate a forward reference by @Viicos in #10030
- Fix evaluation of
__pydantic_extra__
annotation in specific circumstances by @Viicos in #10070 - Fix
frozen
enforcement fordataclasses
by @sydney-runkle in #10066 - Remove logic to handle unused
__get_pydantic_core_schema__
signature by @Viicos in #10075 - Use
is_annotated
consistently by @Viicos in #10095 - Fix
PydanticDeprecatedSince26
typo by @kc0506 in #10101 - Improve
pyright
tests, refactor model decorators signatures by @Viicos in #10092 - Fix
ip
serialization logic by @sydney-runkle in #10112 - Warn when frozen defined twice for
dataclasses
by @mochi22 in #10082 - Do not compute JSON Schema default when plain serializers are used with
when_used
set to'json-unless-none'
and the default value isNone
by @Viicos in #10121 - Fix
ImportString
special cases by @sydney-runkle in #10137 - Blacklist default globals to support exotic user code with
__
prefixed annotations by @sydney-runkle in #10136 - Handle
nullable
schemas withserialization
schema available during JSON Schema generation by @Viicos in #10132 - Reorganize
BaseModel
annotations by @kc0506 in #10110 - Fix core schema simplification when serialization schemas are involved in specific scenarios by @Viicos in #10155
- Add support for stringified annotations when using
PrivateAttr
withAnnotated
by @Viicos in #10157 - Fix JSON Schema
number
type for literal and enum schemas by @Viicos in #10172 - Fix JSON Schema generation of fields with plain validators in serialization mode by @Viicos in #10167
- Fix invalid JSON Schemas being generated for functions in certain scenarios by @Viicos in #10188
- Make sure generated JSON Schemas are valid in tests by @Viicos in #10182
- Fix key error with custom serializer by @sydney-runkle in #10200
- Add 'wss' for allowed schemes in NatsDsn by @swelborn in #10224
- Fix
Mapping
andMutableMapping
annotations to use mapping schema instead of dict schema by @sydney-runkle in #10020 - Fix JSON Schema generation for constrained dates by @Viicos in #10185
- Fix discriminated union bug regression when using enums by @kfreezen in pydantic/pydantic-core#1286
- Fix
field_serializer
with computed field when using*
by @nix010 in pydantic/pydantic-core#1349 - Try each option in
Union
serializer before inference by @sydney-runkle in pydantic/pydantic-core#1398 - Fix
float
serialization behavior instrict
mode by @sydney-runkle in pydantic/pydantic-core#1400 - Introduce
exactness
into Decimal validation logic to improve union validation behavior by @sydney-runkle in in pydantic/pydantic-core#1405 - Fix new warnings assertions to use
pytest.warns()
by @mgorny in #10241 - Fix a crash when cleaning the namespace in
ModelMetaclass
by @Viicos in #10242 - Fix parent namespace issue with model rebuilds by @sydney-runkle in #10257
- Remove defaults filter for namespace by @sydney-runkle in #10261
- Use identity instead of equality after validating model in
__init__
by @Viicos in #10264 - Support
BigInt
serialization forint
subclasses by @kxx317 in pydantic/pydantic-core#1417 - Support signature for wrap validators without
info
by @sydney-runkle in #10277 - Ensure
__pydantic_complete__
is set when rebuildingdataclasses
by @Viicos in #10291 - Respect
schema_generator
config value inTypeAdapter
by @sydney-runkle in #10300
New Contributors
pydantic
- @kwint made their first contribution in #9787
- @seekinginfiniteloop made their first contribution in #9822
- @a-alexander made their first contribution in #9848
- @maximilianfellhuber made their first contribution in #9885
- @karmaBonfire made their first contribution in #9945
- @s-rigaud made their first contribution in #9958
- @msabramo made their first contribution in #9964
- @DimaCybr made their first contribution in #9972
- @kc0506 made their first contribution in #9971
- @haoyun made their first contribution in #9990
- @radekwlsk made their first contribution in #9938
- @dpeachey made their first contribution in #10029
- @BoxyUwU made their first contribution in #10085
- @mochi22 made their first contribution in #10082
- @aditkumar72 made their first contribution in #10128
- @changhc made their first contribution in #9654
- @insumanth made their first contribution in #10229
- @AdolfoVillalobos made their first contribution in #10240
- @bllchmbrs made their first contribution in #10270
pydantic-core
- @kfreezen made their first contribution in pydantic/pydantic-core#1286
- @tinez made their first contribution in pydantic/pydantic-core#1368
- @fft001 made their first contribution in pydantic/pydantic-core#1362
- @nix010 made their first contribution in pydantic/pydantic-core#1349
- @BoxyUwU made their first contribution in pydantic/pydantic-core#1379
- @candleindark made their first contribution in pydantic/pydantic-core#1404
- @changhc made their first contribution in pydantic/pydantic-core#1331
v2.8.2
What's Changed
Fixes
- Fix issue with assertion caused by pluggable schema validator by @dmontagu in #9838
v2.8.1
What's Changed
Packaging
- Bump
ruff
tov0.5.0
andpyright
tov1.1.369
by @sydney-runkle in #9801 - Bump
pydantic-core
tov2.20.1
,pydantic-extra-types
tov2.9.0
by @sydney-runkle in #9832
Fixes
- Fix breaking change in
to_snake
from v2.7 -> v2.8 by @sydney-runkle in #9812 - Fix list constraint json schema application by @sydney-runkle in #9818
- Support time duration more than 23 by @nix010 in pydantic/speedate#64
- Fix millisecond fraction being handled with the wrong scale by @davidhewitt in pydantic/speedate#65
- Handle negative fractional durations correctly by @sydney-runkle in pydantic/speedate#71
v2.8.0
The code released in v2.8.0 is functionally identical to that of v2.8.0b1.
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
to v2.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](https://togithub.com/am
Configuration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot.
pulumi-renovate bot added a commit to pulumi/examples that referenced this pull request
This PR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
pydantic | |||
(changelog) | |||
dependencies | major | <2 -> <3 |
[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
pydantic/pydantic (pydantic)
What's Changed
Fixes
- Fix JSON Schema reference collection with
'examples'
keys by @Viicos in #11325 - Fix url python serialization by @sydney-runkle in #11331
What's Changed
Fixes
- Remove custom MRO implementation of Pydantic models by @Viicos in #11184
- Fix URL serialization for unions by @sydney-runkle in #11233
What's Changed
Packaging
- Bump
pydantic-core
to v2.27.2 by @davidhewitt in #11138
Fixes
- Fix for comparison of
AnyUrl
objects by @alexprabhat99 in #11082 - Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by @Viicos in #11093
- Include JSON Schema input core schema in function schemas by @Viicos in #11085
- Add
len
to_BaseUrl
to avoid TypeError by @Kharianne in #11111 - Make sure the type reference is removed from the seen references by @Viicos in #11143
New Contributors
- @FyZzyss made their first contribution in #10789
- @tamird made their first contribution in #10948
- @felixxm made their first contribution in #11077
- @alexprabhat99 made their first contribution in #11082
- @Kharianne made their first contribution in #11111
What's Changed
Fixes
- Set fields when
defer_build
is set on Pydantic dataclasses by @Viicos in #10984 - Do not resolve the JSON Schema reference for
dict
core schema keys by @Viicos in #10989 - Use the globals of the function when evaluating the return type for
PlainSerializer
andWrapSerializer
functions by @Viicos in #11008 - Fix host required enforcement for urls to be compatible with v2.9 behavior by @sydney-runkle in #11027
- Add a
default_factory_takes_validated_data
property toFieldInfo
by @Viicos in #11034 - Fix url json schema in
serialization
mode by @sydney-runkle in #11035
What's Changed
Fixes
- Only evaluate FieldInfo annotations if required during schema building by @Viicos in #10769
- Do not evaluate annotations for private fields by @Viicos in #10962
- Support serialization as any for
Secret
types andUrl
types by @sydney-runkle in #10947 - Fix type hint of
Field.default
to be compatible with Python 3.8 and 3.9 by @Viicos in #10972 - Add hashing support for URL types by @sydney-runkle in #10975
- Hide
BaseModel.__replace__
definition from type checkers by @Viicos in #10979
What's Changed
Packaging
- Bump
pydantic-core
version tov2.27.1
by @sydney-runkle in #10938
Fixes
- Use the correct frame when instantiating a parametrized
TypeAdapter
by @Viicos in #10893 - Relax check for validated data in
default_factory
utils by @sydney-runkle in #10909 - Fix type checking issue with
model_fields
andmodel_computed_fields
by @sydney-runkle in #10911 - Use the parent configuration during schema generation for stdlib
dataclass
es by @sydney-runkle in #10928 - Use the
globals
of the function when evaluating the return type of serializers andcomputed_field
s by @Viicos in #10929 - Fix URL constraint application by @sydney-runkle in #10922
- Fix URL equality with different validation methods by @sydney-runkle in #10934
- Fix JSON schema title when specified as
''
by @sydney-runkle in #10936 - Fix
python
mode serialization forcomplex
inference by @sydney-runkle in pydantic-core#1549
New Contributors
The code released in v2.10.0 is practically identical to that of v2.10.0b2.
See the v2.10 release blog post for the highlights!
What's Changed
Packaging
- Bump
pydantic-core
tov2.27.0
by @sydney-runkle in #10825 - Replaced pdm with uv by @frfahim in #10727
New Features
- Support
fractions.Fraction
by @sydney-runkle in #10318 - Support
Hashable
for json validation by @sydney-runkle in #10324 - Add a
SocketPath
type forlinux
systems by @theunkn0wn1 in #10378 - Allow arbitrary refs in JSON schema
examples
by @sydney-runkle in #10417 - Support
defer_build
for Pydantic dataclasses by @Viicos in #10313 - Adding v1 / v2 incompatibility warning for nested v1 model by @sydney-runkle in #10431
- Add support for unpacked
TypedDict
to type hint variadic keyword arguments with@validate_call
by @Viicos in #10416 - Support compiled patterns in
protected_namespaces
by @sydney-runkle in #10522 - Add support for
propertyNames
in JSON schema by @FlorianSW in #10478 - Adding
__replace__
protocol for Python 3.13+ support by @sydney-runkle in #10596 - Expose public
sort
method for JSON schema generation by @sydney-runkle in #10595 - Add runtime validation of
@validate_call
callable argument by @kc0506 in #10627 - Add
experimental_allow_partial
support by @samuelcolvin in #10748 - Support default factories taking validated data as an argument by @Viicos in #10678
- Allow subclassing
ValidationError
andPydanticCustomError
by @Youssefares in pydantic/pydantic-core#1413 - Add
trailing-strings
support toexperimental_allow_partial
by @sydney-runkle in #10825 - Add
rebuild()
method forTypeAdapter
and simplifydefer_build
patterns by @sydney-runkle in #10537 - Improve
TypeAdapter
instance repr by @sydney-runkle in #10872
Changes
- Don't allow customization of
SchemaGenerator
until interface is more stable by @sydney-runkle in #10303 - Cleanly
defer_build
onTypeAdapters
, removing experimental flag by @sydney-runkle in #10329 - Fix
mro
of generic subclass by @kc0506 in #10100 - Strip whitespaces on JSON Schema title generation by @sydney-runkle in #10404
- Use
b64decode
andb64encode
forBase64Bytes
type by @sydney-runkle in #10486 - Relax protected namespace config default by @sydney-runkle in #10441
- Revalidate parametrized generics if instance's origin is subclass of OG class by @sydney-runkle in #10666
- Warn if configuration is specified on the
@dataclass
decorator and with the__pydantic_config__
attribute by @sydney-runkle in #10406 - Recommend against using
Ellipsis
(...) withField
by @Viicos in #10661 - Migrate to subclassing instead of annotated approach for pydantic url types by @sydney-runkle in #10662
- Change JSON schema generation of
Literal
s andEnums
by @Viicos in #10692 - Simplify unions involving
Any
orNever
when replacing type variables by @Viicos in #10338 - Do not require padding when decoding
base64
bytes by @bschoenmaeckers in pydantic/pydantic-core#1448 - Support dates all the way to 1BC by @changhc in pydantic/speedate#77
Performance
- Schema cleaning: skip unnecessary copies during schema walking by @Viicos in #10286
- Refactor namespace logic for annotations evaluation by @Viicos in #10530
- Improve email regexp on edge cases by @AlekseyLobanov in #10601
CoreMetadata
refactor with an emphasis on documentation, schema build time performance, and reducing complexity by @sydney-runkle in #10675
Fixes
- Remove guarding check on
computed_field
withfield_serializer
by @nix010 in #10390 - Fix
Predicate
issue inv2.9.0
by @sydney-runkle in #10321 - Fixing
annotated-types
bound by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Use correct types namespace when building
namedtuple
core schemas by @Viicos in #10337 - Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix
IncEx
type alias definition by @Viicos in #10339 - Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Fix nested type statement by @kc0506 in #10369
- Improve typing of
ModelMetaclass.mro
by @Viicos in #10372 - Fix class access of deprecated
computed_field
s by @Viicos in #10391 - Make sure
inspect.iscoroutinefunction
works on coroutines decorated with@validate_call
by @MovisLi in #10374 - Fix
NameError
when usingvalidate_call
with PEP 695 on a class by @kc0506 in #10380 - Fix
ZoneInfo
with various invalid types by @sydney-runkle in #10408 - Fix
PydanticUserError
on emptymodel_config
with annotations by @cdwilson in #10412 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix schema generation error when serialization schema holds references by @Viicos in #10444
- Inline references if possible when generating schema for
json_schema_input_type
by @Viicos in #10439 - Fix recursive arguments in
Representation
by @Viicos in #10480 - Fix representation for builtin function types by @kschwab in #10479
- Add python validators for decimal constraints (
max_digits
anddecimal_places
) by @sydney-runkle in #10506 - Only fetch
__pydantic_core_schema__
from the current class during schema generation by @Viicos in #10518 - Fix
stacklevel
on deprecation warnings forBaseModel
by @sydney-runkle in #10520 - Fix warning
stacklevel
inBaseModel.__init__
by @Viicos in #10526 - Improve error handling for in-evaluable refs for discriminator application by @sydney-runkle in #10440
- Change the signature of
ConfigWrapper.core_config
to take the title directly by @Viicos in #10562 - Do not use the previous config from the stack for dataclasses without config by @Viicos in #10576
- Fix serialization for IP types with
mode='python'
by @sydney-runkle in #10594 - Support constraint application for
Base64Etc
types by @sydney-runkle in #10584 - Fix
validate_call
ignoringField
inAnnotated
by @kc0506 in #10610 - Raise an error when
Self
is invalid by @kc0506 in #10609 - Using
core_schema.InvalidSchema
instead of metadata injection + checks by @sydney-runkle in #10523 - Tweak type alias logic by @kc0506 in #10643
- Support usage of
type
withtyping.Self
and type aliases by @kc0506 in #10621 - Use overloads for
Field
andPrivateAttr
functions by @Viicos in #10651 - Clean up the
mypy
plugin implementation by @Viicos in #10669 - Properly check for
typing_extensions
variant ofTypeAliasType
by @Daraan in #10713 - Allow any mapping in
BaseModel.model_copy()
by @Viicos in #10751 - Fix
isinstance
behavior for urls by @sydney-runkle in #10766 - Ensure
cached_property
can be set on Pydantic models by @Viicos in #10774 - Fix equality checks for primitives in literals by @sydney-runkle in pydantic/pydantic-core#1459
- Properly enforce
host_required
for URLs by @Viicos in pydantic/pydantic-core#1488 - Fix when
coerce_numbers_to_str
enabled and string has invalid Unicode character by @andrey-berenda in pydantic/pydantic-core#1515 - Fix serializing
complex
values inEnum
s by @changhc in pydantic/pydantic-core#1524 - Refactor
_typing_extra
module by @Viicos in #10725 - Support intuitive equality for urls by @sydney-runkle in #10798
- Add
bytearray
toTypeAdapter.validate_json
signature by @samuelcolvin in #10802 - Ensure class access of method descriptors is performed when used as a
default with
Field
by @Viicos in #10816 - Fix circular import with
validate_call
by @sydney-runkle in #10807 - Fix error when using type aliases referencing other type aliases by @Viicos in #10809
- Fix
IncEx
type alias to be compatible with mypy by @Viicos in #10813 - Make
__signature__
a lazy property, do not deepcopy defaults by @Viicos in #10818 - Make
__signature__
lazy for dataclasses, too by @sydney-runkle in #10832 - Subclass all single host url classes from
AnyUrl
to preserve behavior from v2.9 by @sydney-runkle in #10856
New Contributors
- @jakob-keller made their first contribution in #10331
- @MovisLi made their first contribution in #10374
- @joaopalmeiro made their first contribution in #10405
- @theunkn0wn1 made their first contribution in #10378
- @cdwilson made their first contribution in #10412
- @dlax made their first contribution in #10421
- @kschwab made their first contribution in #10479
- @santibreo made their first contribution in #10453
- @FlorianSW made their first contribution in #10478
- @tkasuz made their first contribution in #10555
- @AlekseyLobanov made their first contribution in #10601
- @NiclasvanEyk made their first contribution in #10667
- @mschoettle made their first contribution in #10677
- @Daraan made their first contribution in #10713
- @k4nar made their first contribution in #10736
- @UriyaHarpeness made their first contribution in #10740
- @frfahim made their first contribution in #10727
What's Changed
Fixes
- Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Adding notes on designing sound
Callable
discriminators by @sydney-runkle in #10400 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix
Union
serialization warnings by @sydney-runkle in pydantic/pydantic-core#1449 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix
ZoneInfo
validation with various invalid types by @sydney-runkle in #10408
What's Changed
Fixes
- Fix Predicate issue in v2.9.0 by @sydney-runkle in #10321
- Fixing
annotated-types
bound to>=0.6.0
by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Fix
IncExc
type alias definition by @Viicos in #10339 - Use correct types namespace when building namedtuple core schemas by @Viicos in #10337
- Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix tagged union serialization with alias generators by @sydney-runkle in pydantic/pydantic-core#1442
The code released in v2.9.0 is practically identical to that of v2.9.0b2.
What's Changed
Packaging
- Bump
ruff
tov0.5.0
andpyright
tov1.1.369
by @sydney-runkle in #9801 - Bump
pydantic-extra-types
tov2.9.0
by @sydney-runkle in #9832 - Support compatibility with
pdm v2.18.1
by @Viicos in #10138 - Bump
v1
version stub tov1.10.18
by @sydney-runkle in #10214 - Bump
pydantic-core
tov2.23.2
by @sydney-runkle in #10311
New Features
- Add support for
ZoneInfo
by @Youssefares in #9896 - Add
Config.val_json_bytes
by @josh-newman in #9770 - Add DSN for Snowflake by @aditkumar72 in #10128
- Support
complex
number by @changhc in #9654 - Add support for
annotated_types.Not
by @aditkumar72 in #10210 - Allow
WithJsonSchema
to inject$ref
s w/http
orhttps
links by @dAIsySHEng1 in #9863 - Allow validators to customize validation JSON schema by @Viicos in #10094
- Support parametrized
PathLike
types by @nix010 in #9764 - Add tagged union serializer that attempts to use
str
orcallable
discriminators to select the correct serializer by @sydney-runkle in in pydantic/pydantic-core#1397
Changes
- Breaking Change: Merge
dict
typejson_schema_extra
by @sydney-runkle in #9792 - For more info (how to replicate old behavior) on this change, see here
- Refactor annotation injection for known (often generic) types by @sydney-runkle in #9979
- Move annotation compatibility errors to validation phase by @sydney-runkle in #9999
- Improve runtime errors for string constraints like
pattern
for incompatible types by @sydney-runkle in #10158 - Remove
'allOf'
JSON schema workarounds by @dpeachey in #10029 - Remove
typed_dict_cls
data fromCoreMetadata
by @sydney-runkle in #10180 - Deprecate passing a dict to the
Examples
class by @Viicos in #10181 - Remove
initial_metadata
from internal metadata construct by @sydney-runkle in #10194 - Use
re.Pattern.search
instead ofre.Pattern.match
for consistency withrust
behavior by @tinez in pydantic/pydantic-core#1368 - Show value of wrongly typed data in
pydantic-core
serialization warning by @BoxyUwU in pydantic/pydantic-core#1377 - Breaking Change: in
pydantic-core
, changemetadata
type hint in core schemas fromAny
->Dict[str, Any] | None
by @sydney-runkle in pydantic/pydantic-core#1411 - Raise helpful warning when
self
isn't returned from model validator by @sydney-runkle in #10255
Performance
- Initial start at improving import times for modules, using caching primarily by @sydney-runkle in #10009
- Using cached internal import for
BaseModel
by @sydney-runkle in #10013 - Simplify internal generics logic - remove generator overhead by @sydney-runkle in #10059
- Remove default module globals from types namespace by @sydney-runkle in #10123
- Performance boost: skip caching parent namespaces in most cases by @sydney-runkle in #10113
- Update ns stack with already copied ns by @sydney-runkle in #10267
Minor Internal Improvements
- ⚡️ Speed up
multiple_of_validator()
by 31% inpydantic/_internal/_validators.py
by @misrasaurabh1 in #9839 - ⚡️ Speed up
ModelPrivateAttr.__set_name__()
by 18% inpydantic/fields.py
by @misrasaurabh1 in #9841 - ⚡️ Speed up
dataclass()
by 7% inpydantic/dataclasses.py
by @misrasaurabh1 in #9843 - ⚡️ Speed up function
_field_name_for_signature
by 37% inpydantic/_internal/_signature.py
by @misrasaurabh1 in #9951 - ⚡️ Speed up method
GenerateSchema._unpack_refs_defs
by 26% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9949 - ⚡️ Speed up function
apply_each_item_validators
by 100% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9950 - ⚡️ Speed up method
ConfigWrapper.core_config
by 28% inpydantic/_internal/_config.py
by @misrasaurabh1 in #9953
Fixes
- Respect
use_enum_values
onLiteral
types by @kwint in #9787 - Prevent type error for exotic
BaseModel/RootModel
inheritance by @dmontagu in #9913 - Fix typing issue with field_validator-decorated methods by @dmontagu in #9914
- Replace
str
type annotation withAny
in validator factories in documentation on validators by @maximilianfellhuber in #9885 - Fix
ComputedFieldInfo.wrapped_property
pointer when a property setter is assigned by @tlambert03 in #9892 - Fix recursive typing of
main.IncEnx
by @tlambert03 in #9924 - Allow usage of
type[Annotated[...]]
by @Viicos in #9932 mypy
plugin: handle frozen fields on a per-field basis by @dmontagu in #9935- Fix typo in
invalid-annotated-type
error code by @sydney-runkle in #9948 - Simplify schema generation for
uuid
,url
, andip
types by @sydney-runkle in #9975 - Move
date
schemas to_generate_schema.py
by @sydney-runkle in #9976 - Move
decimal.Decimal
validation to_generate_schema.py
by @sydney-runkle in #9977 - Simplify IP address schema in
_std_types_schema.py
by @sydney-runkle in #9959 - Fix type annotations for some potentially generic
GenerateSchema.match_type
options by @sydney-runkle in #9961 - Add class name to "has conflict" warnings by @msabramo in #9964
- Fix
dataclass
ignoringdefault_factory
passed in Annotated by @kc0506 in #9971 - Fix
Sequence
ignoringdiscriminator
by @kc0506 in #9980 - Fix typing for
IPvAnyAddress
andIPvAnyInterface
by @haoyun in #9990 - Fix false positives on v1 models in
mypy
plugin forfrom_orm
check requiring from_attributes=True config by @radekwlsk in #9938 - Apply
strict=True
to__init__
inmypy
plugin by @kc0506 in #9998 - Refactor application of
deque
annotations by @sydney-runkle in #10018 - Raise a better user error when failing to evaluate a forward reference by @Viicos in #10030
- Fix evaluation of
__pydantic_extra__
annotation in specific circumstances by @Viicos in #10070 - Fix
frozen
enforcement fordataclasses
by @sydney-runkle in #10066 - Remove logic to handle unused
__get_pydantic_core_schema__
signature by @Viicos in #10075 - Use
is_annotated
consistently by @Viicos in #10095 - Fix
PydanticDeprecatedSince26
typo by @kc0506 in #10101 - Improve
pyright
tests, refactor model decorators signatures by @Viicos in #10092 - Fix
ip
serialization logic by @sydney-runkle in #10112 - Warn when frozen defined twice for
dataclasses
by @mochi22 in #10082 - Do not compute JSON Schema default when plain serializers are used
with
when_used
set to'json-unless-none'
and the default value isNone
by @Viicos in #10121 - Fix
ImportString
special cases by @sydney-runkle in #10137 - Blacklist default globals to support exotic user code with
__
prefixed annotations by @sydney-runkle in #10136 - Handle
nullable
schemas withserialization
schema available during JSON Schema generation by @Viicos in #10132 - Reorganize
BaseModel
annotations by @kc0506 in #10110 - Fix core schema simplification when serialization schemas are involved in specific scenarios by @Viicos in #10155
- Add support for stringified annotations when using
PrivateAttr
withAnnotated
by @Viicos in #10157 - Fix JSON Schema
number
type for literal and enum schemas by @Viicos in #10172 - Fix JSON Schema generation of fields with plain validators in serialization mode by @Viicos in #10167
- Fix invalid JSON Schemas being generated for functions in certain scenarios by @Viicos in #10188
- Make sure generated JSON Schemas are valid in tests by @Viicos in #10182
- Fix key error with custom serializer by @sydney-runkle in #10200
- Add 'wss' for allowed schemes in NatsDsn by @swelborn in #10224
- Fix
Mapping
andMutableMapping
annotations to use mapping schema instead of dict schema by @sydney-runkle in #10020 - Fix JSON Schema generation for constrained dates by @Viicos in #10185
- Fix discriminated union bug regression when using enums by @kfreezen in pydantic/pydantic-core#1286
- Fix
field_serializer
with computed field when using*
by @nix010 in pydantic/pydantic-core#1349 - Try each option in
Union
serializer before inference by @sydney-runkle in pydantic/pydantic-core#1398 - Fix
float
serialization behavior instrict
mode by @sydney-runkle in pydantic/pydantic-core#1400 - Introduce
exactness
into Decimal validation logic to improve union validation behavior by @sydney-runkle in in pydantic/pydantic-core#1405 - Fix new warnings assertions to use
pytest.warns()
by @mgorny in #10241 - Fix a crash when cleaning the namespace in
ModelMetaclass
by @Viicos in #10242 - Fix parent namespace issue with model rebuilds by @sydney-runkle in #10257
- Remove defaults filter for namespace by @sydney-runkle in #10261
- Use identity instead of equality after validating model in
__init__
by @Viicos in #10264 - Support
BigInt
serialization forint
subclasses by @kxx317 in pydantic/pydantic-core#1417 - Support signature for wrap validators without
info
by @sydney-runkle in #10277 - Ensure
__pydantic_complete__
is set when rebuildingdataclasses
by @Viicos in #10291 - Respect
schema_generator
config value inTypeAdapter
by @sydney-runkle in #10300
New Contributors
pydantic
- @kwint made their first contribution in #9787
- @seekinginfiniteloop made their first contribution in #9822
- @a-alexander made their first contribution in #9848
- @maximilianfellhuber made their first contribution in #9885
- @karmaBonfire made their first contribution in #9945
- @s-rigaud made their first contribution in #9958
- @msabramo made their first contribution in #9964
- @DimaCybr made their first contribution in #9972
- @kc0506 made their first contribution in #9971
- @haoyun made their first contribution in #9990
- @radekwlsk made their first contribution in #9938
- @dpeachey made their first contribution in #10029
- @BoxyUwU made their first contribution in #10085
- @mochi22 made their first contribution in #10082
- @aditkumar72 made their first contribution in #10128
- @changhc made their first contribution in #9654
- @insumanth made their first contribution in #10229
- @AdolfoVillalobos made their first contribution in #10240
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "every weekday" (UTC).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot.
Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2 participants