-
-
Notifications
You must be signed in to change notification settings - Fork 23
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
search the Vec
for small LazyIndexMap
s
#55
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #55 +/- ##
==========================================
+ Coverage 93.03% 95.12% +2.09%
==========================================
Files 8 8
Lines 1048 1067 +19
==========================================
+ Hits 975 1015 +40
+ Misses 73 52 -21
Continue to review full report in Codecov by Sentry.
|
CodSpeed Performance ReportMerging #55 will not alter performanceComparing Summary
Benchmarks breakdown
|
src/lazy_index_map.rs
Outdated
@@ -13,6 +13,7 @@ use smallvec::SmallVec; | |||
pub struct LazyIndexMap<K, V> { | |||
vec: SmallVec<[(K, V); 8]>, | |||
map: OnceLock<AHashMap<K, usize>>, | |||
last_find: Arc<Mutex<usize>>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@davidhewitt I'm interested if you think there's something faster than Arc<Mutex<...>>
we can use where while still satisfying the requirement of implementing Sync
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If last_find
is not a problem for correctness, could just use UnsafeCell
? E.g. if worst case is that the field isn't found from last_find
to the end, and then the start is searched, it's probably suitable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(using UnsafeCell
you'll need to wrap it like struct LastFind(UnsafeCell<usize>)
and unsafe impl Sync for LastFind
.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also AtomicUsize
is the safe option which will still be much faster than a mutex and on some platforms maybe no different to UnsafeCell
, might want the portable_atomic
crate as a dependency given the range of platforms this might be packaged on.
let index = i % vec_len; | ||
let (k, v) = &self.vec[index]; | ||
if k == key { | ||
self.last_find.store(index, Ordering::Relaxed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Staring at this, I sort of wonder if this last_find
logic should be moved into a function pub fn get_hint<Q: ?Sized>(&self, key: &Q, last_find: Option<usize>) -> Option<(&V, usize)>
which returns the hint for the next lookup.
That way the hint can be a local stack variable and not an atomic part of the datastructure. But it does push the complexity downstream.
Going further, maybe this is better abstracted into a a struct OrderedGetter { map: &LazyIndexMap, last_find: usize }
which looks in the map with a pub fn get<Q: ?Sized>(&mut self, key: &Q) -> Option<&V>
- i.e. &mut
- so by doing this is explicitly optimized for the order-preserving read.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We spoke about this offline; will keep this as-is for now but maybe can remove the atomic later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We decided on a call to stick with this to avoid churn in pydantic-core.
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `2.5.3` -> `2.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/fulcrum-so/ziggy-pydust). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `>=2.5.0,<2.6` -> `>=2.5.0,<2.7` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/libretime/libretime). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/allenporter/pyrainbird). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `>=2.5.0,<2.6` -> `>=2.5.0,<2.7` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/libretime/libretime). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.6.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.1`](https://github.com/pydantic/pydantic/releases/tag/v2.6.1): 2024-02-05 [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.0...v2.6.1) #### v2.6.1 (2024-02-05) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8717](https://github.com/pydantic/pydantic/pull/8717) ##### Fixes - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](https://github.com/pydantic/pydantic/pull/8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](https://github.com/pydantic/pydantic/pull/8681) - Fix inheriting `Field` annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](https://github.com/pydantic/pydantic/pull/8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](https://github.com/pydantic/pydantic/pull/8702) - Fix unsupported types bug with `PlainValidator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](https://github.com/pydantic/pydantic/pull/8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](https://github.com/pydantic/pydantic/pull/8718) - Fix warning for tuple of wrong size in `Union` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1174](https://github.com/pydantic/pydantic-core/pull/1174) - Fix `computed_field` JSON serializer `exclude_none` behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1187](https://github.com/pydantic/pydantic-core/pull/1187) Full Changelog: pydantic/pydantic@v2.6.0...v2.6.1/ ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/GoogleCloudPlatform/genai-databases-retrieval-app). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: Yuan <45984206+Yuan325@users.noreply.github.com> Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | dependencies | minor | `2.5.3` -> `2.6.1` | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.1`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v261-2024-02-05) [Compare Source](pydantic/pydantic@v2.6.0...v2.6.1) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.1) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8717](pydantic/pydantic#8717) ##### Fixes - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](pydantic/pydantic#8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](pydantic/pydantic#8681) - Fix inheriting `Field` annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](pydantic/pydantic#8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](pydantic/pydantic#8702) - Fix unsupported types bug with `PlainValidator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](pydantic/pydantic#8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](pydantic/pydantic#8718) - Fix warning for tuple of wrong size in `Union` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1174](pydantic/pydantic-core#1174) - Fix `computed_field` JSON serializer `exclude_none` behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1187](pydantic/pydantic-core#1187) ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](pydantic/pydantic@v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](pydantic/pydantic#6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](pydantic/pydantic#8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](pydantic/pydantic#8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](pydantic/pydantic#8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](pydantic/pydantic-core@v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](pydantic/pydantic#6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](pydantic/pydantic#8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](pydantic/pydantic#8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](pydantic/pydantic#8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](pydantic/pydantic#8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](pydantic/pydantic#8404) - Added bits conversions to the `ByteSize` class [#​8415](pydantic/pydantic#8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](pydantic/pydantic#8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](pydantic/pydantic#8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](pydantic/pydantic#8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](pydantic/pydantic#8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](pydantic/pydantic-core#1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](pydantic/pydantic-core#865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](pydantic/pydantic#7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](pydantic/pydantic-core#1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](pydantic/pydantic#8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](pydantic/pydantic#8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](pydantic/pydantic#8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](pydantic/pydantic#8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](pydantic/pydantic#8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](pydantic/pydantic-core#1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](pydantic/pydantic#8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](pydantic/pydantic-core#1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](pydantic/pydantic-core#1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](pydantic/pydantic-core#1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](pydantic/jiter#55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](pydantic/jiter#51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](pydantic/jiter#48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](pydantic/pydantic#7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](pydantic/pydantic#7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](pydantic/pydantic#7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](pydantic/pydantic#8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](pydantic/pydantic#7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](pydantic/pydantic#8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](pydantic/pydantic#8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](pydantic/pydantic#8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](pydantic/pydantic#8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](pydantic/pydantic#8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](pydantic/pydantic#8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](pydantic/pydantic#8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](pydantic/pydantic#8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](pydantic/pydantic#8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](pydantic/pydantic#8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](pydantic/pydantic#8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](pydantic/pydantic#8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](pydantic/pydantic#8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](pydantic/pydantic#8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](pydantic/pydantic#8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](pydantic/pydantic#8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](pydantic/pydantic#8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](pydantic/pydantic#8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](pydantic/pydantic#8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](pydantic/pydantic#8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](pydantic/pydantic#8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](pydantic/pydantic#8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](pydantic/pydantic#8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](pydantic/pydantic#8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](pydantic/pydantic#8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](pydantic/pydantic#8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](pydantic/pydantic-core#1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](pydantic/pydantic-core#1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](pydantic/pydantic#8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](pydantic/pydantic#6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](pydantic/pydantic#8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](pydantic/pydantic#8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](pydantic/pydantic#7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](pydantic/pydantic#8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](pydantic/pydantic#8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](pydantic/pydantic#8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](pydantic/pydantic#8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](pydantic/pydantic#8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](pydantic/pydantic#8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](pydantic/pydantic#8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](pydantic/pydantic#8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](pydantic/pydantic#8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](pydantic/pydantic#8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](pydantic/pydantic#8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](pydantic/pydantic#8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](pydantic/pydantic#8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](pydantic/pydantic#8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](pydantic/pydantic#8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](pydantic/pydantic#8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](pydantic/pydantic#8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](pydantic/pydantic#8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](pydantic/pydantic#8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](pydantic/pydantic#8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](pydantic/pydantic#8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](pydantic/pydantic#8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](pydantic/pydantic#8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](pydantic/pydantic#8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](pydantic/pydantic#8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](pydantic/pydantic#8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](pydantic/pydantic#8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](pydantic/pydantic-core#1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](pydantic/pydantic-core#1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](pydantic/pydantic-core#1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=--> Reviewed-on: https://git.apud.pl/jacek/adventofcode/pulls/57 Co-authored-by: Renovate <renovate@apud.pl> Co-committed-by: Renovate <renovate@apud.pl>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.6.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.1`](https://github.com/pydantic/pydantic/releases/tag/v2.6.1): 2024-02-05 [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.0...v2.6.1) #### v2.6.1 (2024-02-05) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8717](https://github.com/pydantic/pydantic/pull/8717) ##### Fixes - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](https://github.com/pydantic/pydantic/pull/8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](https://github.com/pydantic/pydantic/pull/8681) - Fix inheriting `Field` annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](https://github.com/pydantic/pydantic/pull/8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](https://github.com/pydantic/pydantic/pull/8702) - Fix unsupported types bug with `PlainValidator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](https://github.com/pydantic/pydantic/pull/8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](https://github.com/pydantic/pydantic/pull/8718) - Fix warning for tuple of wrong size in `Union` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1174](https://github.com/pydantic/pydantic-core/pull/1174) - Fix `computed_field` JSON serializer `exclude_none` behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1187](https://github.com/pydantic/pydantic-core/pull/1187) Full Changelog: pydantic/pydantic@v2.6.0...v2.6.1/ ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/GoogleCloudPlatform/genai-databases-retrieval-app). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: Yuan <45984206+Yuan325@users.noreply.github.com> Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.6.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.6.1`](https://github.com/pydantic/pydantic/releases/tag/v2.6.1): 2024-02-05 [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.0...v2.6.1) #### v2.6.1 (2024-02-05) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8717](https://github.com/pydantic/pydantic/pull/8717) ##### Fixes - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](https://github.com/pydantic/pydantic/pull/8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](https://github.com/pydantic/pydantic/pull/8681) - Fix inheriting `Field` annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](https://github.com/pydantic/pydantic/pull/8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](https://github.com/pydantic/pydantic/pull/8702) - Fix unsupported types bug with `PlainValidator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](https://github.com/pydantic/pydantic/pull/8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](https://github.com/pydantic/pydantic/pull/8718) - Fix warning for tuple of wrong size in `Union` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1174](https://github.com/pydantic/pydantic-core/pull/1174) - Fix `computed_field` JSON serializer `exclude_none` behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1187](https://github.com/pydantic/pydantic-core/pull/1187) Full Changelog: pydantic/pydantic@v2.6.0...v2.6.1/ ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/GoogleCloudPlatform/genai-databases-retrieval-app). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: Yuan <45984206+Yuan325@users.noreply.github.com> Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==2.5.3` -> `==2.7.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.5.3/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.5.3/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.7.1`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v271-2024-04-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.7.0...v2.7.1) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.1) ##### What's Changed ##### Packaging - Bump `pydantic-core` to `v2.18.2` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9307](https://github.com/pydantic/pydantic/pull/9307) ##### New Features - Ftp and Websocket connection strings support by [@​CherrySuryp](https://github.com/CherrySuryp) in [#​9205](https://github.com/pydantic/pydantic/pull/9205) ##### Changes - Use field description for RootModel schema description when there is `…` by [@​LouisGobert](https://github.com/LouisGobert) in [#​9214](https://github.com/pydantic/pydantic/pull/9214) ##### Fixes - Fix `validation_alias` behavior with `model_construct` for `AliasChoices` and `AliasPath` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9223](https://github.com/pydantic/pydantic/pull/9223) - Revert `typing.Literal` and import it outside the TYPE_CHECKING block by [@​frost-nzcr4](https://github.com/frost-nzcr4) in [#​9232](https://github.com/pydantic/pydantic/pull/9232) - Fix `Secret` serialization schema, applicable for unions by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9240](https://github.com/pydantic/pydantic/pull/9240) - Fix `strict` application to `function-after` with `use_enum_values` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9279](https://github.com/pydantic/pydantic/pull/9279) - Address case where `model_construct` on a class which defines `model_post_init` fails with `AttributeError` by [@​babygrimes](https://github.com/babygrimes) in [#​9168](https://github.com/pydantic/pydantic/pull/9168) - Fix `model_json_schema` with config types by [@​NeevCohen](https://github.com/NeevCohen) in [#​9287](https://github.com/pydantic/pydantic/pull/9287) - Support multiple zeros as an `int` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1269](https://github.com/pydantic/pydantic-core/pull/1269) - Fix validation of `int`s with leading unary plus by [@​cknv](https://github.com/cknv) in [pydantic/pydantic-core#1272](https://github.com/pydantic/pydantic-core/pull/1272) - Fix interaction between `extra != 'ignore'` and `from_attributes=True` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1276](https://github.com/pydantic/pydantic-core/pull/1276) - Handle error from `Enum`'s `missing` function as `ValidationError` by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1274](https://github.com/pydantic/pydantic-core/pull/1754) - Fix memory leak with `Iterable` validation by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1271](https://github.com/pydantic/pydantic-core/pull/1751) ##### New Contributors - [@​zzstoatzz](https://github.com/zzstoatzz) made their first contribution in [#​9219](https://github.com/pydantic/pydantic/pull/9219) - [@​frost-nzcr4](https://github.com/frost-nzcr4) made their first contribution in [#​9232](https://github.com/pydantic/pydantic/pull/9232) - [@​CherrySuryp](https://github.com/CherrySuryp) made their first contribution in [#​9205](https://github.com/pydantic/pydantic/pull/9205) - [@​vagenas](https://github.com/vagenas) made their first contribution in [#​9268](https://github.com/pydantic/pydantic/pull/9268) - [@​ollz272](https://github.com/ollz272) made their first contribution in [#​9262](https://github.com/pydantic/pydantic/pull/9262) - [@​babygrimes](https://github.com/babygrimes) made their first contribution in [#​9168](https://github.com/pydantic/pydantic/pull/9168) - [@​swelborn](https://github.com/swelborn) made their first contribution in [#​9296](https://github.com/pydantic/pydantic/pull/9296) - [@​kf-novi](https://github.com/kf-novi) made their first contribution in [#​9236](https://github.com/pydantic/pydantic/pull/9236) - [@​lgeiger](https://github.com/lgeiger) made their first contribution in [#​9288](https://github.com/pydantic/pydantic/pull/9288) ### [`v2.7.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v270-2024-04-11) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.4...v2.7.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.0) The code released in v2.7.0 is practically identical to that of v2.7.0b1. ##### What's Changed ##### Packaging - Reorganize `pyproject.toml` sections by [@​Viicos](https://github.com/Viicos) in [#​8899](https://github.com/pydantic/pydantic/pull/8899) - Bump `pydantic-core` to `v2.18.1` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9211](https://github.com/pydantic/pydantic/pull/9211) - Adopt `jiter` `v0.2.0` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1250](https://github.com/pydantic/pydantic-core/pull/1250) ##### New Features - Extract attribute docstrings from `FieldInfo.description` by [@​Viicos](https://github.com/Viicos) in [#​6563](https://github.com/pydantic/pydantic/pull/6563) - Add a `with_config` decorator to comply with typing spec by [@​Viicos](https://github.com/Viicos) in [#​8611](https://github.com/pydantic/pydantic/pull/8611) - Allow an optional separator splitting the value and unit of the result of `ByteSize.human_readable` by [@​jks15satoshi](https://github.com/jks15satoshi) in [#​8706](https://github.com/pydantic/pydantic/pull/8706) - Add generic `Secret` base type by [@​conradogarciaberrotaran](https://github.com/conradogarciaberrotaran) in [#​8519](https://github.com/pydantic/pydantic/pull/8519) - Make use of `Sphinx` inventories for cross references in docs by [@​Viicos](https://github.com/Viicos) in [#​8682](https://github.com/pydantic/pydantic/pull/8682) - Add environment variable to disable plugins by [@​geospackle](https://github.com/geospackle) in [#​8767](https://github.com/pydantic/pydantic/pull/8767) - Add support for `deprecated` fields by [@​Viicos](https://github.com/Viicos) in [#​8237](https://github.com/pydantic/pydantic/pull/8237) - Allow `field_serializer('*')` by [@​ornariece](https://github.com/ornariece) in [#​9001](https://github.com/pydantic/pydantic/pull/9001) - Handle a case when `model_config` is defined as a model property by [@​alexeyt101](https://github.com/alexeyt101) in [#​9004](https://github.com/pydantic/pydantic/pull/9004) - Update `create_model()` to support `typing.Annotated` as input by [@​wannieman98](https://github.com/wannieman98) in [#​8947](https://github.com/pydantic/pydantic/pull/8947) - Add `ClickhouseDsn` support by [@​solidguy7](https://github.com/solidguy7) in [#​9062](https://github.com/pydantic/pydantic/pull/9062) - Add support for `re.Pattern[str]` to `pattern` field by [@​jag-k](https://github.com/jag-k) in [#​9053](https://github.com/pydantic/pydantic/pull/9053) - Support for `serialize_as_any` runtime setting by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8830](https://github.com/pydantic/pydantic/pull/8830) - Add support for `typing.Self` by [@​Youssefares](https://github.com/Youssefares) in [#​9023](https://github.com/pydantic/pydantic/pull/9023) - Ability to pass `context` to serialization by [@​ornariece](https://github.com/ornariece) in [#​8965](https://github.com/pydantic/pydantic/pull/8965) - Add feedback widget to docs with flarelytics integration by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9129](https://github.com/pydantic/pydantic/pull/9129) - Support for parsing partial JSON strings in Python by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#66](https://github.com/pydantic/jiter/pull/66) **Finalized in v2.7.0, rather than v2.7.0b1:** - Add support for field level number to str coercion option by [@​NeevCohen](https://github.com/NeevCohen) in [#​9137](https://github.com/pydantic/pydantic/pull/9137) - Update `warnings` parameter for serialization utilities to allow raising a warning by [@​Lance-Drane](https://github.com/Lance-Drane) in [#​9166](https://github.com/pydantic/pydantic/pull/9166) ##### Changes - Correct docs, logic for `model_construct` behavior with `extra` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8807](https://github.com/pydantic/pydantic/pull/8807) - Improve error message for improper `RootModel` subclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8857](https://github.com/pydantic/pydantic/pull/8857) - Use `PEP570` syntax by [@​Viicos](https://github.com/Viicos) in [#​8940](https://github.com/pydantic/pydantic/pull/8940) - Add `enum` and `type` to the JSON schema for single item literals by [@​dmontagu](https://github.com/dmontagu) in [#​8944](https://github.com/pydantic/pydantic/pull/8944) - Deprecate `update_json_schema` internal function by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9125](https://github.com/pydantic/pydantic/pull/9125) - Serialize duration to hour minute second, instead of just seconds by [@​kakilangit](https://github.com/kakilangit) in [pydantic/speedate#50](https://github.com/pydantic/speedate/pull/50) - Trimming str before parsing to int and float by [@​hungtsetse](https://github.com/hungtsetse) in [pydantic/pydantic-core#1203](https://github.com/pydantic/pydantic-core/pull/1203) ##### Performance - `enum` validator improvements by [@​samuelcolvin](https://github.com/samuelcolvin) in [#​9045](https://github.com/pydantic/pydantic/pull/9045) - Move `enum` validation and serialization to Rust by [@​samuelcolvin](https://github.com/samuelcolvin) in [#​9064](https://github.com/pydantic/pydantic/pull/9064) - Improve schema generation for nested dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9114](https://github.com/pydantic/pydantic/pull/9114) - Fast path for ASCII python string creation in JSON by [@​samuelcolvin](https://github.com/samuelcolvin) in in [pydantic/jiter#72](https://github.com/pydantic/jiter/pull/72) - SIMD integer and string JSON parsing on `aarch64`(**Note:** SIMD on x86 will be implemented in a future release) by [@​samuelcolvin](https://github.com/samuelcolvin) in in [pydantic/jiter#65](https://github.com/pydantic/jiter/pull/65) - Support JSON `Cow<str>` from `jiter` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1231](https://github.com/pydantic/pydantic-core/pull/1231) - MAJOR performance improvement: update to PyO3 0.21 final by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1248](https://github.com/pydantic/pydantic-core/pull/1248) - cache Python strings by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1240](https://github.com/pydantic/pydantic-core/pull/1240) ##### Fixes - Fix strict parsing for some `Sequence`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8614](https://github.com/pydantic/pydantic/pull/8614) - Add a check on the existence of `__qualname__` by [@​anci3ntr0ck](https://github.com/anci3ntr0ck) in [#​8642](https://github.com/pydantic/pydantic/pull/8642) - Handle `__pydantic_extra__` annotation being a string or inherited by [@​alexmojaki](https://github.com/alexmojaki) in [#​8659](https://github.com/pydantic/pydantic/pull/8659) - Fix json validation for `NameEmail` by [@​Holi0317](https://github.com/Holi0317) in [#​8650](https://github.com/pydantic/pydantic/pull/8650) - Fix type-safety of attribute access in `BaseModel` by [@​bluenote10](https://github.com/bluenote10) in [#​8651](https://github.com/pydantic/pydantic/pull/8651) - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](https://github.com/pydantic/pydantic/pull/8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](https://github.com/pydantic/pydantic/pull/8681) - Fix inheriting annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](https://github.com/pydantic/pydantic/pull/8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](https://github.com/pydantic/pydantic/pull/8702) - Fix unsupported types bug with plain validator by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](https://github.com/pydantic/pydantic/pull/8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](https://github.com/pydantic/pydantic/pull/8718) - fixes `__pydantic_config__` ignored for TypeDict by [@​13sin](https://github.com/13sin) in [#​8734](https://github.com/pydantic/pydantic/pull/8734) - Fix test failures with `pytest v8.0.0` due to `pytest.warns()` starting to work inside `pytest.raises()` by [@​mgorny](https://github.com/mgorny) in [#​8678](https://github.com/pydantic/pydantic/pull/8678) - Use `is_valid_field` from 1.x for `mypy` plugin by [@​DanielNoord](https://github.com/DanielNoord) in [#​8738](https://github.com/pydantic/pydantic/pull/8738) - Better-support `mypy` strict equality flag by [@​dmontagu](https://github.com/dmontagu) in [#​8799](https://github.com/pydantic/pydantic/pull/8799) - model_json_schema export with Annotated types misses 'required' parameters by [@​LouisGobert](https://github.com/LouisGobert) in [#​8793](https://github.com/pydantic/pydantic/pull/8793) - Fix default inclusion in `FieldInfo.__repr_args__` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8801](https://github.com/pydantic/pydantic/pull/8801) - Fix resolution of forward refs in dataclass base classes that are not present in the subclass module namespace by [@​matsjoyce-refeyn](https://github.com/matsjoyce-refeyn) in [#​8751](https://github.com/pydantic/pydantic/pull/8751) - Fix `BaseModel` type annotations to be resolvable by `typing.get_type_hints` by [@​devmonkey22](https://github.com/devmonkey22) in [#​7680](https://github.com/pydantic/pydantic/pull/7680) - Fix: allow empty string aliases with `AliasGenerator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8810](https://github.com/pydantic/pydantic/pull/8810) - Fix test along with `date` -> `datetime` timezone assumption fix by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8823](https://github.com/pydantic/pydantic/pull/8823) - Fix deprecation warning with usage of `ast.Str` by [@​Viicos](https://github.com/Viicos) in [#​8837](https://github.com/pydantic/pydantic/pull/8837) - Add missing `deprecated` decorators by [@​Viicos](https://github.com/Viicos) in [#​8877](https://github.com/pydantic/pydantic/pull/8877) - Fix serialization of `NameEmail` if name includes an email address by [@​NeevCohen](https://github.com/NeevCohen) in [#​8860](https://github.com/pydantic/pydantic/pull/8860) - Add information about class in error message of schema generation by [@​Czaki](https://github.com/Czaki) in [#​8917](https://github.com/pydantic/pydantic/pull/8917) - Make `TypeAdapter`'s typing compatible with special forms by [@​adriangb](https://github.com/adriangb) in [#​8923](https://github.com/pydantic/pydantic/pull/8923) - Fix issue with config behavior being baked into the ref schema for `enum`s by [@​dmontagu](https://github.com/dmontagu) in [#​8920](https://github.com/pydantic/pydantic/pull/8920) - More helpful error re wrong `model_json_schema` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8928](https://github.com/pydantic/pydantic/pull/8928) - Fix nested discriminated union schema gen, pt 2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8932](https://github.com/pydantic/pydantic/pull/8932) - Fix schema build for nested dataclasses / TypedDicts with discriminators by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8950](https://github.com/pydantic/pydantic/pull/8950) - Remove unnecessary logic for definitions schema gen with discriminated unions by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8951](https://github.com/pydantic/pydantic/pull/8951) - Fix handling of optionals in `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​9008](https://github.com/pydantic/pydantic/pull/9008) - Fix `PlainSerializer` usage with std type constructor by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9031](https://github.com/pydantic/pydantic/pull/9031) - Remove unnecessary warning for config in plugin by [@​dmontagu](https://github.com/dmontagu) in [#​9039](https://github.com/pydantic/pydantic/pull/9039) - Fix default value serializing by [@​NeevCohen](https://github.com/NeevCohen) in [#​9066](https://github.com/pydantic/pydantic/pull/9066) - Fix extra fields check in `Model.__getattr__()` by [@​NeevCohen](https://github.com/NeevCohen) in [#​9082](https://github.com/pydantic/pydantic/pull/9082) - Fix `ClassVar` forward ref inherited from parent class by [@​alexmojaki](https://github.com/alexmojaki) in [#​9097](https://github.com/pydantic/pydantic/pull/9097) - fix sequence like validator with strict `True` by [@​andresliszt](https://github.com/andresliszt) in [#​8977](https://github.com/pydantic/pydantic/pull/8977) - Improve warning message when a field name shadows a field in a parent model by [@​chan-vince](https://github.com/chan-vince) in [#​9105](https://github.com/pydantic/pydantic/pull/9105) - Do not warn about shadowed fields if they are not redefined in a child class by [@​chan-vince](https://github.com/chan-vince) in [#​9111](https://github.com/pydantic/pydantic/pull/9111) - Fix discriminated union bug with unsubstituted type var by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9124](https://github.com/pydantic/pydantic/pull/9124) - Support serialization of `deque` when passed to `Sequence[blah blah blah]` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9128](https://github.com/pydantic/pydantic/pull/9128) - Init private attributes from super-types in `model_post_init` by [@​Viicos](https://github.com/Viicos) in [#​9134](https://github.com/pydantic/pydantic/pull/9134) - fix `model_construct` with `validation_alias` by [@​ornariece](https://github.com/ornariece) in [#​9144](https://github.com/pydantic/pydantic/pull/9144) - Ensure json-schema generator handles `Literal` `null` types by [@​bruno-f-cruz](https://github.com/bruno-f-cruz) in [#​9135](https://github.com/pydantic/pydantic/pull/9135) - **Fixed in v2.7.0**: Fix allow extra generic by [@​dmontagu](https://github.com/dmontagu) in [#​9193](https://github.com/pydantic/pydantic/pull/9193) ##### New Contributors - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) - [@​anci3ntr0ck](https://github.com/anci3ntr0ck) made their first contribution in [#​8642](https://github.com/pydantic/pydantic/pull/8642) - [@​Holi0317](https://github.com/Holi0317) made their first contribution in [#​8650](https://github.com/pydantic/pydantic/pull/8650) - [@​bluenote10](https://github.com/bluenote10) made their first contribution in [#​8651](https://github.com/pydantic/pydantic/pull/8651) - [@​ADSteele916](https://github.com/ADSteele916) made their first contribution in [#​8703](https://github.com/pydantic/pydantic/pull/8703) - [@​musicinmybrain](https://github.com/musicinmybrain) made their first contribution in [#​8731](https://github.com/pydantic/pydantic/pull/8731) - [@​jks15satoshi](https://github.com/jks15satoshi) made their first contribution in [#​8706](https://github.com/pydantic/pydantic/pull/8706) - [@​13sin](https://github.com/13sin) made their first contribution in [#​8734](https://github.com/pydantic/pydantic/pull/8734) - [@​DanielNoord](https://github.com/DanielNoord) made their first contribution in [#​8738](https://github.com/pydantic/pydantic/pull/8738) - [@​conradogarciaberrotaran](https://github.com/conradogarciaberrotaran) made their first contribution in [#​8519](https://github.com/pydantic/pydantic/pull/8519) - [@​chris-griffin](https://github.com/chris-griffin) made their first contribution in [#​8775](https://github.com/pydantic/pydantic/pull/8775) - [@​LouisGobert](https://github.com/LouisGobert) made their first contribution in [#​8793](https://github.com/pydantic/pydantic/pull/8793) - [@​matsjoyce-refeyn](https://github.com/matsjoyce-refeyn) made their first contribution in [#​8751](https://github.com/pydantic/pydantic/pull/8751) - [@​devmonkey22](https://github.com/devmonkey22) made their first contribution in [#​7680](https://github.com/pydantic/pydantic/pull/7680) - [@​adamency](https://github.com/adamency) made their first contribution in [#​8847](https://github.com/pydantic/pydantic/pull/8847) - [@​MamfTheKramf](https://github.com/MamfTheKramf) made their first contribution in [#​8851](https://github.com/pydantic/pydantic/pull/8851) - [@​ornariece](https://github.com/ornariece) made their first contribution in [#​9001](https://github.com/pydantic/pydantic/pull/9001) - [@​alexeyt101](https://github.com/alexeyt101) made their first contribution in [#​9004](https://github.com/pydantic/pydantic/pull/9004) - [@​wannieman98](https://github.com/wannieman98) made their first contribution in [#​8947](https://github.com/pydantic/pydantic/pull/8947) - [@​solidguy7](https://github.com/solidguy7) made their first contribution in [#​9062](https://github.com/pydantic/pydantic/pull/9062) - [@​kloczek](https://github.com/kloczek) made their first contribution in [#​9047](https://github.com/pydantic/pydantic/pull/9047) - [@​jag-k](https://github.com/jag-k) made their first contribution in [#​9053](https://github.com/pydantic/pydantic/pull/9053) - [@​priya-gitTest](https://github.com/priya-gitTest) made their first contribution in [#​9088](https://github.com/pydantic/pydantic/pull/9088) - [@​Youssefares](https://github.com/Youssefares) made their first contribution in [#​9023](https://github.com/pydantic/pydantic/pull/9023) - [@​chan-vince](https://github.com/chan-vince) made their first contribution in [#​9105](https://github.com/pydantic/pydantic/pull/9105) - [@​bruno-f-cruz](https://github.com/bruno-f-cruz) made their first contribution in [#​9135](https://github.com/pydantic/pydantic/pull/9135) - [@​Lance-Drane](https://github.com/Lance-Drane) made their first contribution in [#​9166](https://github.com/pydantic/pydantic/pull/9166) ### [`v2.6.4`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v264-2024-03-12) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.3...v2.6.4) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.4) ##### What's Changed ##### Fixes - Fix usage of `AliasGenerator` with `computed_field` decorator by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8806](https://github.com/pydantic/pydantic/pull/8806) - Fix nested discriminated union schema gen, pt 2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8932](https://github.com/pydantic/pydantic/pull/8932) - Fix bug with no_strict_optional=True caused by API deferral by [@​dmontagu](https://github.com/dmontagu) in [#​8826](https://github.com/pydantic/pydantic/pull/8826) ### [`v2.6.3`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v263-2024-02-27) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.2...v2.6.3) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.3) ##### What's Changed ##### Packaging - Update `pydantic-settings` version in the docs by [@​hramezani](https://github.com/hramezani) in [#​8906](https://github.com/pydantic/pydantic/pull/8906) ##### Fixes - Fix discriminated union schema gen bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8904](https://github.com/pydantic/pydantic/pull/8904) ### [`v2.6.2`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v262-2024-02-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.1...v2.6.2) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.2) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.3 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8879](https://github.com/pydantic/pydantic/pull/8879) ##### Fixes - 'YYYY-MM-DD' date string coerced to datetime shouldn't infer timezone by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1193](https://github.com/pydantic/pydantic-core/pull/1193) ### [`v2.6.1`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v261-2024-02-05) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.6.0...v2.6.1) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.1) ##### What's Changed ##### Packaging - Upgrade to `pydantic-core` 2.16.2 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8717](https://github.com/pydantic/pydantic/pull/8717) ##### Fixes - Fix bug with `mypy` plugin and `no_strict_optional = True` by [@​dmontagu](https://github.com/dmontagu) in [#​8666](https://github.com/pydantic/pydantic/pull/8666) - Fix `ByteSize` error `type` change by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8681](https://github.com/pydantic/pydantic/pull/8681) - Fix inheriting `Field` annotations in dataclasses by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8679](https://github.com/pydantic/pydantic/pull/8679) - Fix regression in core schema generation for indirect definition references by [@​dmontagu](https://github.com/dmontagu) in [#​8702](https://github.com/pydantic/pydantic/pull/8702) - Fix unsupported types bug with `PlainValidator` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8710](https://github.com/pydantic/pydantic/pull/8710) - Reverting problematic fix from 2.6 release, fixing schema building bug by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8718](https://github.com/pydantic/pydantic/pull/8718) - Fix warning for tuple of wrong size in `Union` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1174](https://github.com/pydantic/pydantic-core/pull/1174) - Fix `computed_field` JSON serializer `exclude_none` behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1187](https://github.com/pydantic/pydantic-core/pull/1187) ### [`v2.6.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v260-2024-01-23) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. ##### What's Changed ##### Packaging - Check for `email-validator` version >= 2.0 by [@​commonism](https://github.com/commonism) in [#​6033](https://github.com/pydantic/pydantic/pull/6033) - Upgrade \`ruff\`\` target version to Python 3.8 by [@​Elkiwa](https://github.com/Elkiwa) in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - Update to `pydantic-extra-types==2.4.1` by [@​yezz123](https://github.com/yezz123) in [#​8478](https://github.com/pydantic/pydantic/pull/8478) - Update to `pyright==1.1.345` by [@​Viicos](https://github.com/Viicos) in [#​8453](https://github.com/pydantic/pydantic/pull/8453) - Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) ##### New Features - Add `NatsDsn` by [@​ekeew](https://github.com/ekeew) in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - Add `ConfigDict.ser_json_inf_nan` by [@​davidhewitt](https://github.com/davidhewitt) in [#​8159](https://github.com/pydantic/pydantic/pull/8159) - Add `types.OnErrorOmit` by [@​adriangb](https://github.com/adriangb) in [#​8222](https://github.com/pydantic/pydantic/pull/8222) - Support `AliasGenerator` usage by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8282](https://github.com/pydantic/pydantic/pull/8282) - Add Pydantic People Page to docs by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8345](https://github.com/pydantic/pydantic/pull/8345) - Support `yyyy-MM-DD` datetime parsing by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8404](https://github.com/pydantic/pydantic/pull/8404) - Added bits conversions to the `ByteSize` class [#​8415](https://github.com/pydantic/pydantic/issues/8415) by [@​luca-matei](https://github.com/luca-matei) in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - Enable json schema creation with type `ByteSize` by [@​geospackle](https://github.com/geospackle) in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by [@​alexmojaki](https://github.com/alexmojaki) in [#​8209](https://github.com/pydantic/pydantic/pull/8209) - Add support for `dataclass` fields `init` by [@​dmontagu](https://github.com/dmontagu) in [#​8552](https://github.com/pydantic/pydantic/pull/8552) - Implement pickling for `ValidationError` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1119](https://github.com/pydantic/pydantic-core/pull/1119) - Add unified tuple validator that can handle "variadic" tuples via PEP-646 by [@​dmontagu](https://github.com/dmontagu) in [pydantic/pydantic-core#865](https://github.com/pydantic/pydantic-core/pull/865) ##### Changes - Drop Python3.7 support by [@​hramezani](https://github.com/hramezani) in [#​7188](https://github.com/pydantic/pydantic/pull/7188) - Drop Python 3.7, and PyPy 3.7 and 3.8 by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/pydantic-core#1129](https://github.com/pydantic/pydantic-core/pull/1129) - Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by [@​ariebovenberg](https://github.com/ariebovenberg) in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - Make `@validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by [@​alexmojaki](https://github.com/alexmojaki) in [#​8268](https://github.com/pydantic/pydantic/pull/8268) - Exclude `BaseModel` docstring from JSON schema description by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8352](https://github.com/pydantic/pydantic/pull/8352) - Introducing `classproperty` decorator for `model_computed_fields` by [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - Explicitly raise an error if field names clashes with types by [@​Viicos](https://github.com/Viicos) in [#​8243](https://github.com/pydantic/pydantic/pull/8243) - Use stricter serializer for unions of simple types by [@​alexdrydew](https://github.com/alexdrydew) [pydantic/pydantic-core#1132](https://github.com/pydantic/pydantic-core/pull/1132) ##### Performance - Add Codspeed profiling Actions workflow by [@​lambertsbennett](https://github.com/lambertsbennett) in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - Improve `int` extraction by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1155](https://github.com/pydantic/pydantic-core/pull/1155) - Improve performance of recursion guard by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1156](https://github.com/pydantic/pydantic-core/pull/1156) - `dataclass` serialization speedups by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/pydantic-core#1162](https://github.com/pydantic/pydantic-core/pull/1162) - Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by [@​samuelcolvin](https://github.com/samuelcolvin) in [pydantic/jiter#55](https://github.com/pydantic/jiter/pull/55) - use hashbrown to speedup python string caching by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#51](https://github.com/pydantic/jiter/pull/51) - Replace `Peak` with more efficient `Peek` by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic/jiter#48](https://github.com/pydantic/jiter/pull/48) ##### Fixes - Move `getattr` warning in deprecated `BaseConfig` by [@​tlambert03](https://github.com/tlambert03) in [#​7183](https://github.com/pydantic/pydantic/pull/7183) - Only hash `model_fields`, not whole `__dict__` by [@​alexmojaki](https://github.com/alexmojaki) in [#​7786](https://github.com/pydantic/pydantic/pull/7786) - Fix mishandling of unions while freezing types in the `mypy` plugin by [@​dmontagu](https://github.com/dmontagu) in [#​7411](https://github.com/pydantic/pydantic/pull/7411) - Fix `mypy` error on untyped `ClassVar` by [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - Update `strict` docstring in `model_validate` method. by [@​LukeTonin](https://github.com/LukeTonin) in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - Fix overload position of `computed_field` by [@​Viicos](https://github.com/Viicos) in [#​8227](https://github.com/pydantic/pydantic/pull/8227) - Fix custom type type casting used in multiple attributes by [@​ianhfc](https://github.com/ianhfc) in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by [@​jusexton](https://github.com/jusexton) in [#​8249](https://github.com/pydantic/pydantic/pull/8249) - Fix issue `unittest.mock` deprecation warnings by [@​ibleedicare](https://github.com/ibleedicare) in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - Added tests for the case `JsonValue` contains subclassed primitive values by [@​jusexton](https://github.com/jusexton) in [#​8286](https://github.com/pydantic/pydantic/pull/8286) - Fix `mypy` error on free before validator (classmethod) by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8285](https://github.com/pydantic/pydantic/pull/8285) - Fix `to_snake` conversion by [@​jevins09](https://github.com/jevins09) in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - Fix type annotation of `ModelMetaclass.__prepare__` by [@​slanzmich](https://github.com/slanzmich) in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8365](https://github.com/pydantic/pydantic/pull/8365) - Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by [@​dmontagu](https://github.com/dmontagu) in [#​8389](https://github.com/pydantic/pydantic/pull/8389) - Fix type annotation in pydantic people script by [@​shenxiangzhuang](https://github.com/shenxiangzhuang) in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - Add support for field `alias` in `dataclass` signature by [@​NeevCohen](https://github.com/NeevCohen) in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - Fix bug with schema generation with `Field(...)` in a forward ref by [@​dmontagu](https://github.com/dmontagu) in [#​8494](https://github.com/pydantic/pydantic/pull/8494) - Fix ordering of keys in `__dict__` with `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8500](https://github.com/pydantic/pydantic/pull/8500) - Fix module `path_type` creation when globals does not contain `__name__` by [@​hramezani](https://github.com/hramezani) in [#​8470](https://github.com/pydantic/pydantic/pull/8470) - Fix for namespace issue with dataclasses with `from __future__ import annotations` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8513](https://github.com/pydantic/pydantic/pull/8513) - Fix: make function validator types positional-only by [@​pmmmwh](https://github.com/pmmmwh) in [#​8479](https://github.com/pydantic/pydantic/pull/8479) - Fix usage of `@deprecated` by [@​Viicos](https://github.com/Viicos) in [#​8294](https://github.com/pydantic/pydantic/pull/8294) - Add more support for private attributes in `model_construct` call by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8525](https://github.com/pydantic/pydantic/pull/8525) - Use a stack for the types namespace by [@​dmontagu](https://github.com/dmontagu) in [#​8378](https://github.com/pydantic/pydantic/pull/8378) - Fix schema-building bug with `TypeAliasType` for types with refs by [@​dmontagu](https://github.com/dmontagu) in [#​8526](https://github.com/pydantic/pydantic/pull/8526) - Support `pydantic.Field(repr=False)` in dataclasses by [@​tigeryy2](https://github.com/tigeryy2) in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - Override `dataclass_transform` behavior for `RootModel` by [@​Viicos](https://github.com/Viicos) in [#​8163](https://github.com/pydantic/pydantic/pull/8163) - Refactor signature generation for simplicity by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​8572](https://github.com/pydantic/pydantic/pull/8572) - Fix ordering bug of PlainValidator annotation by [@​Anvil](https://github.com/Anvil) in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - Fix `exclude_none` for json serialization of `computed_field`s by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1098](https://github.com/pydantic/pydantic-core/pull/1098) - Support yyyy-MM-DD string for datetimes by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1124](https://github.com/pydantic/pydantic-core/pull/1124) - Tweak ordering of definitions in generated schemas by [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### New Contributors ##### `pydantic` - [@​ekeew](https://github.com/ekeew) made their first contribution in [#​6874](https://github.com/pydantic/pydantic/pull/6874) - [@​lambertsbennett](https://github.com/lambertsbennett) made their first contribution in [#​8054](https://github.com/pydantic/pydantic/pull/8054) - [@​vincent-hachin-wmx](https://github.com/vincent-hachin-wmx) made their first contribution in [#​8138](https://github.com/pydantic/pydantic/pull/8138) - [@​QuentinSoubeyranAqemia](https://github.com/QuentinSoubeyranAqemia) made their first contribution in [#​7825](https://github.com/pydantic/pydantic/pull/7825) - [@​ariebovenberg](https://github.com/ariebovenberg) made their first contribution in [#​8072](https://github.com/pydantic/pydantic/pull/8072) - [@​LukeTonin](https://github.com/LukeTonin) made their first contribution in [#​8223](https://github.com/pydantic/pydantic/pull/8223) - [@​denisart](https://github.com/denisart) made their first contribution in [#​8231](https://github.com/pydantic/pydantic/pull/8231) - [@​ianhfc](https://github.com/ianhfc) made their first contribution in [#​8066](https://github.com/pydantic/pydantic/pull/8066) - [@​eonu](https://github.com/eonu) made their first contribution in [#​8255](https://github.com/pydantic/pydantic/pull/8255) - [@​amandahla](https://github.com/amandahla) made their first contribution in [#​8263](https://github.com/pydantic/pydantic/pull/8263) - [@​ibleedicare](https://github.com/ibleedicare) made their first contribution in [#​8262](https://github.com/pydantic/pydantic/pull/8262) - [@​jevins09](https://github.com/jevins09) made their first contribution in [#​8316](https://github.com/pydantic/pydantic/pull/8316) - [@​cuu508](https://github.com/cuu508) made their first contribution in [#​8322](https://github.com/pydantic/pydantic/pull/8322) - [@​slanzmich](https://github.com/slanzmich) made their first contribution in [#​8305](https://github.com/pydantic/pydantic/pull/8305) - [@​jensenbox](https://github.com/jensenbox) made their first contribution in [#​8331](https://github.com/pydantic/pydantic/pull/8331) - [@​szepeviktor](https://github.com/szepeviktor) made their first contribution in [#​8356](https://github.com/pydantic/pydantic/pull/8356) - [@​Elkiwa](https://github.com/Elkiwa) made their first contribution in [#​8341](https://github.com/pydantic/pydantic/pull/8341) - [@​parhamfh](https://github.com/parhamfh) made their first contribution in [#​8395](https://github.com/pydantic/pydantic/pull/8395) - [@​shenxiangzhuang](https://github.com/shenxiangzhuang) made their first contribution in [#​8402](https://github.com/pydantic/pydantic/pull/8402) - [@​NeevCohen](https://github.com/NeevCohen) made their first contribution in [#​8387](https://github.com/pydantic/pydantic/pull/8387) - [@​zby](https://github.com/zby) made their first contribution in [#​8497](https://github.com/pydantic/pydantic/pull/8497) - [@​patelnets](https://github.com/patelnets) made their first contribution in [#​8491](https://github.com/pydantic/pydantic/pull/8491) - [@​edwardwli](https://github.com/edwardwli) made their first contribution in [#​8503](https://github.com/pydantic/pydantic/pull/8503) - [@​luca-matei](https://github.com/luca-matei) made their first contribution in [#​8507](https://github.com/pydantic/pydantic/pull/8507) - [@​Jocelyn-Gas](https://github.com/Jocelyn-Gas) made their first contribution in [#​8437](https://github.com/pydantic/pydantic/pull/8437) - [@​bL34cHig0](https://github.com/bL34cHig0) made their first contribution in [#​8501](https://github.com/pydantic/pydantic/pull/8501) - [@​tigeryy2](https://github.com/tigeryy2) made their first contribution in [#​8511](https://github.com/pydantic/pydantic/pull/8511) - [@​geospackle](https://github.com/geospackle) made their first contribution in [#​8537](https://github.com/pydantic/pydantic/pull/8537) - [@​Anvil](https://github.com/Anvil) made their first contribution in [#​8567](https://github.com/pydantic/pydantic/pull/8567) - [@​hungtsetse](https://github.com/hungtsetse) made their first contribution in [#​8546](https://github.com/pydantic/pydantic/pull/8546) - [@​StrawHatDrag0n](https://github.com/StrawHatDrag0n) made their first contribution in [#​8583](https://github.com/pydantic/pydantic/pull/8583) ##### `pydantic-core` - [@​mariuswinger](https://github.com/mariuswinger) made their first contribution in [pydantic/pydantic-core#1087](https://github.com/pydantic/pydantic-core/pull/1087) - [@​adamchainz](https://github.com/adamchainz) made their first contribution in [pydantic/pydantic-core#1090](https://github.com/pydantic/pydantic-core/pull/1090) - [@​akx](https://github.com/akx) made their first contribution in [pydantic/pydantic-core#1123](https://github.com/pydantic/pydantic-core/pull/1123) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/RobertCraigie/prisma-client-py). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Instead of creating a
HashMap
when there are very few elements in theLazyIndexMap
, just lookup the originalVec
. We store and start from the position of the last find to improve performance in the common case that the input JSON matches the order of the model being constructedthe threshold is set to
16
based on the following benchmarks:with hashmap
vec best
vec worst
vec random