-
Notifications
You must be signed in to change notification settings - Fork 252
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
fix memory leak with iterable validation #1271
Conversation
Speaking with @samuelcolvin it seems like revisiting the e.g.
Probably the functionality we have here is useful to some people, so we should keep it but move it to be something deliberate. For most people it's likely needless complexity. |
CodSpeed Performance ReportMerging #1271 will not alter performanceComparing Summary
|
I think the from collections.abc import Iterable
from pydantic import BaseModel, ConfigDict
class Trace(BaseModel):
model_config = ConfigDict(frozen=True)
elements: Iterable[int]
t = Trace(elements=[1, 2, 3])
print(list(t.elements)) # outputs [1, 2, 3]
print(list(t.elements)) # outputs [] So validating an immutable object results in a mutable one, which seems wrong to me. What it should have done was to keep being an This would also solve the problem of storing a huge stateful object in the model, as only a thin wrapper around the original
For me eager validation would not work at all. My use case for Also, if it would be done eagerly, how it would be different from |
All great questions. Let's move the redesign question to pydantic/pydantic#9266 (and we have no concrete date for V3 yet, so this would just be collecting thoughts for now). I'll consider whether I can come up with a test case here later. |
Does |
Yes (and this PR hasn't changed that) |
I just wanted to point out that the behavior seems reasonable to me in that case. The main thing I would complain about is that I would want it to eagerly validate any finite inputs. So if I give it a list it eagerly evaluates it. If I give it a generator I'd be either okay with or maybe even prefer that it be lazy (maybe an annotation option would be good); perhaps a beartype like solution where it eagerly validates the first N would be good? (this is all a side note, not suggesting any changes for this PR) |
[![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.7.0` -> `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.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.7.0/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) </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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> 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.7.0` -> `==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.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.7.0/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) </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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
are you able to identify in which version this bug was introduced ? |
[![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>
I think this probably existed since 2.0. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`18.2.79` -> `18.3.1`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.79/18.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.79/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.79/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom)) | [`18.2.25` -> `18.3.0`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.2.25/18.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/18.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-dom/18.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-dom/18.2.25/18.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/18.2.25/18.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ai](https://sdk.vercel.ai/docs) ([source](https://github.com/vercel/ai)) | [`3.0.24` -> `3.0.35`](https://renovatebot.com/diffs/npm/ai/3.0.24/3.0.35) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ai/3.0.35?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/3.0.35?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/3.0.24/3.0.35?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/3.0.24/3.0.35?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [eslint-config-next](https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-config) ([source](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`14.2.2` -> `14.2.3`](https://renovatebot.com/diffs/npm/eslint-config-next/14.2.2/14.2.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-next/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-next/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-next/14.2.2/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-next/14.2.2/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [mypy](https://www.mypy-lang.org/) ([source](https://github.com/python/mypy), [changelog](https://mypy-lang.blogspot.com/)) | `1.9.0` -> `1.10.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/mypy/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mypy/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mypy/1.9.0/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mypy/1.9.0/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [next](https://nextjs.org) ([source](https://github.com/vercel/next.js)) | [`14.2.2` -> `14.2.3`](https://renovatebot.com/diffs/npm/next/14.2.2/14.2.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/next/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/next/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/next/14.2.2/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/next/14.2.2/14.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [openai](https://github.com/openai/openai-python) | `1.23.2` -> `1.23.6` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/openai/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/openai/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/openai/1.23.2/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/openai/1.23.2/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [openai](https://github.com/openai/openai-node) | [`4.38.2` -> `4.38.5`](https://renovatebot.com/diffs/npm/openai/4.38.2/4.38.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.38.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.38.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.38.2/4.38.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.38.2/4.38.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `2.7.0` -> `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.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react](https://reactjs.org/) ([source](https://github.com/facebook/react/tree/HEAD/packages/react)) | [`18.2.0` -> `18.3.1`](https://renovatebot.com/diffs/npm/react/18.2.0/18.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [react-dom](https://reactjs.org/) ([source](https://github.com/facebook/react/tree/HEAD/packages/react-dom)) | [`18.2.0` -> `18.3.1`](https://renovatebot.com/diffs/npm/react-dom/18.2.0/18.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-dom/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-dom/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-dom/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-dom/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [tsx](https://github.com/privatenumber/tsx) | [`4.7.2` -> `4.7.3`](https://renovatebot.com/diffs/npm/tsx/4.7.2/4.7.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsx/4.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsx/4.7.2/4.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.7.2/4.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [zod](https://zod.dev) ([source](https://github.com/colinhacks/zod)) | [`3.23.0` -> `3.23.4`](https://renovatebot.com/diffs/npm/zod/3.23.0/3.23.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod/3.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod/3.23.0/3.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.23.0/3.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vercel/ai (ai)</summary> ### [`v3.0.35`](https://github.com/vercel/ai/releases/tag/ai%403.0.35) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.34...ai@3.0.35) ##### Patch Changes - [`41d5736`](https://github.com/vercel/ai/commit/41d5736): ai/core: re-expose language model types. - [`b4c68ec`](https://github.com/vercel/ai/commit/b4c68ec): ai/rsc: ReadableStream as provider for createStreamableValue; add .append() method - Updated dependencies \[[`41d5736`](https://github.com/vercel/ai/commit/41d5736)] - [@​ai-sdk/provider](https://github.com/ai-sdk/provider)[@​0](https://github.com/0).0.3 - [@​ai-sdk/provider-utils](https://github.com/ai-sdk/provider-utils)[@​0](https://github.com/0).0.5 ### [`v3.0.34`](https://github.com/vercel/ai/releases/tag/ai%403.0.34) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.33...ai@3.0.34) ##### Patch Changes - [`b9a831e`](https://github.com/vercel/ai/commit/b9a831e): ai/rsc: add experimental_streamUI() ### [`v3.0.33`](https://github.com/vercel/ai/releases/tag/ai%403.0.33) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.32...ai@3.0.33) ##### Patch Changes - [`56ef84a`](https://github.com/vercel/ai/commit/56ef84a): ai/core: fix abort handling in transformation stream - Updated dependencies \[[`56ef84a`](https://github.com/vercel/ai/commit/56ef84a)] - [@​ai-sdk/provider-utils](https://github.com/ai-sdk/provider-utils)[@​0](https://github.com/0).0.4 ### [`v3.0.32`](https://github.com/vercel/ai/releases/tag/ai%403.0.32) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.31...ai@3.0.32) ##### Patch Changes - [`0e0d2af`](https://github.com/vercel/ai/commit/0e0d2af): ai/core: add pipeTextStreamToResponse helper to streamText. ### [`v3.0.31`](https://github.com/vercel/ai/releases/tag/ai%403.0.31) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.30...ai@3.0.31) ##### Patch Changes - [`74c63b1`](https://github.com/vercel/ai/commit/74c63b1): ai/core: add toAIStreamResponse() helper to streamText. ### [`v3.0.30`](https://github.com/vercel/ai/releases/tag/ai%403.0.30) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.29...ai@3.0.30) ##### Patch Changes - [`e7e5898`](https://github.com/vercel/ai/commit/e7e5898): use-assistant: fix missing message content ### [`v3.0.29`](https://github.com/vercel/ai/releases/tag/ai%403.0.29) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.28...ai@3.0.29) ##### Patch Changes - [`22a737e`](https://github.com/vercel/ai/commit/22a737e): Fix: mark useAssistant as in progress for append/submitMessage. ### [`v3.0.28`](https://github.com/vercel/ai/releases/tag/ai%403.0.28) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.27...ai@3.0.28) ##### Patch Changes - [`d6431ae`](https://github.com/vercel/ai/commit/d6431ae): ai/core: add logprobs support (thanks [@​SamStenner](https://github.com/SamStenner) for the contribution) - [`25f3350`](https://github.com/vercel/ai/commit/25f3350): ai/core: add support for getting raw response headers. - Updated dependencies \[[`d6431ae`](https://github.com/vercel/ai/commit/d6431ae)] - Updated dependencies \[[`25f3350`](https://github.com/vercel/ai/commit/25f3350)] - [@​ai-sdk/provider](https://github.com/ai-sdk/provider)[@​0](https://github.com/0).0.2 - [@​ai-sdk/provider-utils](https://github.com/ai-sdk/provider-utils)[@​0](https://github.com/0).0.3 ### [`v3.0.27`](https://github.com/vercel/ai/releases/tag/ai%403.0.27) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.26...ai@3.0.27) ##### Patch Changes - [`eb150a6`](https://github.com/vercel/ai/commit/eb150a6): ai/core: remove scaling of setting values (breaking change). If you were using the temperature, frequency penalty, or presence penalty settings, you need to update the providers and adjust the setting values. - Updated dependencies \[[`eb150a6`](https://github.com/vercel/ai/commit/eb150a6)] - [@​ai-sdk/provider-utils](https://github.com/ai-sdk/provider-utils)[@​0](https://github.com/0).0.2 - [@​ai-sdk/provider](https://github.com/ai-sdk/provider)[@​0](https://github.com/0).0.1 ### [`v3.0.26`](https://github.com/vercel/ai/releases/tag/ai%403.0.26) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.25...ai@3.0.26) ##### Patch Changes - [`f90f6a1`](https://github.com/vercel/ai/commit/f90f6a1): ai/core: add pipeAIStreamToResponse() to streamText result. ### [`v3.0.25`](https://github.com/vercel/ai/releases/tag/ai%403.0.25) [Compare Source](https://github.com/vercel/ai/compare/ai@3.0.24...ai@3.0.25) ##### Patch Changes - [`1e84d6d`](https://github.com/vercel/ai/commit/1e84d6d): Fix: remove mistral lib type dependency. - [`9c2a049`](https://github.com/vercel/ai/commit/9c2a049): Add append() helper to useAssistant. </details> <details> <summary>vercel/next.js (eslint-config-next)</summary> ### [`v14.2.3`](https://github.com/vercel/next.js/compare/v14.2.2...v14.2.3) [Compare Source](https://github.com/vercel/next.js/compare/v14.2.2...v14.2.3) </details> <details> <summary>python/mypy (mypy)</summary> ### [`v1.10.0`](https://github.com/python/mypy/compare/1.9.0...v1.10.0) [Compare Source](https://github.com/python/mypy/compare/1.9.0...v1.10.0) </details> <details> <summary>vercel/next.js (next)</summary> ### [`v14.2.3`](https://github.com/vercel/next.js/compare/v14.2.2...v14.2.3) [Compare Source](https://github.com/vercel/next.js/compare/v14.2.2...v14.2.3) </details> <details> <summary>openai/openai-python (openai)</summary> ### [`v1.23.6`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1236-2024-04-25) [Compare Source](https://github.com/openai/openai-python/compare/v1.23.5...v1.23.6) Full Changelog: [v1.23.5...v1.23.6](https://github.com/openai/openai-python/compare/v1.23.5...v1.23.6) ##### Chores - **internal:** update test helper function ([#​1371](https://github.com/openai/openai-python/issues/1371)) ([6607c4a](https://github.com/openai/openai-python/commit/6607c4a491fd1912f9222d6fe464ccef6e865eac)) ### [`v1.23.5`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1235-2024-04-24) [Compare Source](https://github.com/openai/openai-python/compare/v1.23.4...v1.23.5) Full Changelog: [v1.23.4...v1.23.5](https://github.com/openai/openai-python/compare/v1.23.4...v1.23.5) ##### Chores - **internal:** use actions/checkout@v4 for codeflow ([#​1368](https://github.com/openai/openai-python/issues/1368)) ([d1edf8b](https://github.com/openai/openai-python/commit/d1edf8beb806ebaefdcc2cb6e39f99e1811a2668)) ### [`v1.23.4`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1234-2024-04-24) [Compare Source](https://github.com/openai/openai-python/compare/v1.23.3...v1.23.4) Full Changelog: [v1.23.3...v1.23.4](https://github.com/openai/openai-python/compare/v1.23.3...v1.23.4) ##### Bug Fixes - **api:** change timestamps to unix integers ([#​1367](https://github.com/openai/openai-python/issues/1367)) ([fbc0e15](https://github.com/openai/openai-python/commit/fbc0e15f422971bd15499d4ea5f42a1c885c7004)) - **docs:** doc improvements ([#​1364](https://github.com/openai/openai-python/issues/1364)) ([8c3a005](https://github.com/openai/openai-python/commit/8c3a005247ea045b9a95e7459eba2a90067daf71)) ##### Chores - **tests:** rename test file ([#​1366](https://github.com/openai/openai-python/issues/1366)) ([4204e63](https://github.com/openai/openai-python/commit/4204e63e27584c68ad27825261225603d7a87008)) ### [`v1.23.3`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1233-2024-04-23) [Compare Source](https://github.com/openai/openai-python/compare/v1.23.2...v1.23.3) Full Changelog: [v1.23.2...v1.23.3](https://github.com/openai/openai-python/compare/v1.23.2...v1.23.3) ##### Chores - **internal:** restructure imports ([#​1359](https://github.com/openai/openai-python/issues/1359)) ([4e5eb37](https://github.com/openai/openai-python/commit/4e5eb374ea0545a6117db657bb05f6417bc62d18)) </details> <details> <summary>openai/openai-node (openai)</summary> ### [`v4.38.5`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4385-2024-04-24) [Compare Source](https://github.com/openai/openai-node/compare/v4.38.4...v4.38.5) Full Changelog: [v4.38.4...v4.38.5](https://github.com/openai/openai-node/compare/v4.38.4...v4.38.5) ##### Chores - **internal:** use actions/checkout@v4 for codeflow ([#​799](https://github.com/openai/openai-node/issues/799)) ([5ab7780](https://github.com/openai/openai-node/commit/5ab7780ea8889818f403a9a89ab19585a7e8972e)) ### [`v4.38.4`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4384-2024-04-24) [Compare Source](https://github.com/openai/openai-node/compare/v4.38.3...v4.38.4) Full Changelog: [v4.38.3...v4.38.4](https://github.com/openai/openai-node/compare/v4.38.3...v4.38.4) ##### Bug Fixes - **api:** change timestamps to unix integers ([#​798](https://github.com/openai/openai-node/issues/798)) ([7271a6c](https://github.com/openai/openai-node/commit/7271a6cdc7d37151d2cae18fdd20b87d97624a84)) - **docs:** doc improvements ([#​796](https://github.com/openai/openai-node/issues/796)) ([49fcc86](https://github.com/openai/openai-node/commit/49fcc86b44958795a6f5e0901f369653dfbcc637)) ### [`v4.38.3`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4383-2024-04-22) [Compare Source](https://github.com/openai/openai-node/compare/v4.38.2...v4.38.3) Full Changelog: [v4.38.2...v4.38.3](https://github.com/openai/openai-node/compare/v4.38.2...v4.38.3) ##### Chores - **internal:** use [@​swc/jest](https://github.com/swc/jest) for running tests ([#​793](https://github.com/openai/openai-node/issues/793)) ([8947f19](https://github.com/openai/openai-node/commit/8947f195b2dfab7ceebe1e0bb5c886e229cd541f)) </details> <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) </details> <details> <summary>facebook/react (react)</summary> ### [`v18.3.1`](https://github.com/facebook/react/compare/a87edf62d7d69705ddbcec9a24f0780b3db7535f...a87edf62d7d69705ddbcec9a24f0780b3db7535f) [Compare Source](https://github.com/facebook/react/compare/v18.3.0...v18.3.1) ### [`v18.3.0`](https://github.com/facebook/react/compare/v18.2.0...a87edf62d7d69705ddbcec9a24f0780b3db7535f) [Compare Source](https://github.com/facebook/react/compare/v18.2.0...v18.3.0) </details> <details> <summary>facebook/react (react-dom)</summary> ### [`v18.3.1`](https://github.com/facebook/react/compare/a87edf62d7d69705ddbcec9a24f0780b3db7535f...a87edf62d7d69705ddbcec9a24f0780b3db7535f) [Compare Source](https://github.com/facebook/react/compare/v18.3.0...v18.3.1) ### [`v18.3.0`](https://github.com/facebook/react/compare/v18.2.0...a87edf62d7d69705ddbcec9a24f0780b3db7535f) [Compare Source](https://github.com/facebook/react/compare/v18.2.0...v18.3.0) </details> <details> <summary>privatenumber/tsx (tsx)</summary> ### [`v4.7.3`](https://github.com/privatenumber/tsx/releases/tag/v4.7.3) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.7.2...v4.7.3) ##### Bug Fixes - support TS resolution in JS files when `allowJs` is set ([#​535](https://github.com/privatenumber/tsx/issues/535)) ([081853e](https://github.com/privatenumber/tsx/commit/081853ec56c9cf96f0430e6d889fc77b8b0cf9d8)) *** This release is also available on: - [npm package (@​latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.7.3) </details> <details> <summary>colinhacks/zod (zod)</summary> ### [`v3.23.4`](https://github.com/colinhacks/zod/releases/tag/v3.23.4) [Compare Source](https://github.com/colinhacks/zod/compare/v3.23.3...v3.23.4) #### Commits: - [`157b18d`](https://github.com/colinhacks/zod/commit/157b18d742c86d85b26a8421af46ad6d6d6b6ea7) Add 3.23 announcement - [`aedf93f`](https://github.com/colinhacks/zod/commit/aedf93f1435a29463d915c3be45b4dcbeefa8cc1) Revert change to default Input - [`45107f7`](https://github.com/colinhacks/zod/commit/45107f7a7230fe48ee24dc37e621422c9dc64ec4) v3.23.4 ### [`v3.23.3`](https://github.com/colinhacks/zod/compare/v3.23.2...103d2436f85872ca0e0e6247652989cc93d46a39) [Compare Source](https://github.com/colinhacks/zod/compare/v3.23.2...v3.23.3) ### [`v3.23.2`](https://github.com/colinhacks/zod/releases/tag/v3.23.2) [Compare Source](https://github.com/colinhacks/zod/compare/v3.23.1...v3.23.2) #### Commits: - [`c340558`](https://github.com/colinhacks/zod/commit/c340558d14f5222a2ca177e0591463c06cc5edc3) Update protocol - [`ef588d0`](https://github.com/colinhacks/zod/commit/ef588d036f3e98b832796e9a681dbaf097631ea0) Fix t3env - [`9df70dd`](https://github.com/colinhacks/zod/commit/9df70dd71195df951c43f180fbe5e64ea1f835df) 3.23.2 ### [`v3.23.1`](https://github.com/colinhacks/zod/compare/v3.23.0...2ff5ceb428634de0ea4501495039c05a8e95b60a) [Compare Source](https://github.com/colinhacks/zod/compare/v3.23.0...v3.23.1) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Chicago, 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. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- 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/autoblocksai/autoblocks-examples). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> 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 | |---|---|---|---|---|---| | [boto3](https://github.com/boto/boto3) | `1.34.87` -> `1.34.93` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/boto3/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/boto3/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/boto3/1.34.87/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/boto3/1.34.87/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [botocore](https://github.com/boto/botocore) | `1.34.87` -> `1.34.93` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/botocore/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/botocore/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/botocore/1.34.87/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/botocore/1.34.87/1.34.93?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [coverage](https://github.com/nedbat/coveragepy) | `7.4.4` -> `7.5.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.4.4/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.4.4/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [mypy](https://www.mypy-lang.org/) ([source](https://github.com/python/mypy), [changelog](https://mypy-lang.blogspot.com/)) | `1.9.0` -> `1.10.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/mypy/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mypy/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mypy/1.9.0/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mypy/1.9.0/1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `2.7.0` -> `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.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.7.0/2.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ruff](https://docs.astral.sh/ruff) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | `^0.3.5` -> `^0.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.3.7/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.3.7/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>boto/boto3 (boto3)</summary> ### [`v1.34.93`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13493) [Compare Source](https://github.com/boto/boto3/compare/1.34.92...1.34.93) \======= - api-change:`codepipeline`: \[`botocore`] Add ability to manually and automatically roll back a pipeline stage to a previously successful execution. - api-change:`cognito-idp`: \[`botocore`] Add LimitExceededException to SignUp errors - api-change:`connectcampaigns`: \[`botocore`] This release adds support for specifying if Answering Machine should wait for prompt sound. - api-change:`marketplace-entitlement`: \[`botocore`] Releasing minor endpoint updates. - api-change:`oam`: \[`botocore`] This release introduces support for Source Accounts to define which Metrics and Logs to share with the Monitoring Account - api-change:`rds`: \[`botocore`] SupportsLimitlessDatabase field added to describe-db-engine-versions to indicate whether the DB engine version supports Aurora Limitless Database. - api-change:`support`: \[`botocore`] Releasing minor endpoint updates. ### [`v1.34.92`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13492) [Compare Source](https://github.com/boto/boto3/compare/1.34.91...1.34.92) \======= - api-change:`appsync`: \[`botocore`] UpdateGraphQLAPI documentation update and datasource introspection secret arn update - api-change:`fms`: \[`botocore`] AWS Firewall Manager adds support for network ACL policies to manage Amazon Virtual Private Cloud (VPC) network access control lists (ACLs) for accounts in your organization. - api-change:`ivs`: \[`botocore`] Bug Fix: IVS does not support arns with the `svs` prefix - api-change:`ivs-realtime`: \[`botocore`] Bug Fix: IVS Real Time does not support ARNs using the `svs` prefix. - api-change:`rds`: \[`botocore`] Updates Amazon RDS documentation for setting local time zones for RDS for Db2 DB instances. - api-change:`stepfunctions`: \[`botocore`] Add new ValidateStateMachineDefinition operation, which performs syntax checking on the definition of a Amazon States Language (ASL) state machine. ### [`v1.34.91`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13491) [Compare Source](https://github.com/boto/boto3/compare/1.34.90...1.34.91) \======= - api-change:`datasync`: \[`botocore`] This change allows users to disable and enable the schedules associated with their tasks. - api-change:`ec2`: \[`botocore`] Launching capability for customers to enable or disable automatic assignment of public IPv4 addresses to their network interface - api-change:`emr-containers`: \[`botocore`] EMRonEKS Service support for SecurityConfiguration enforcement for Spark Jobs. - api-change:`entityresolution`: \[`botocore`] Support Batch Unique IDs Deletion. - api-change:`gamelift`: \[`botocore`] Amazon GameLift releases container fleets support for public preview. Deploy Linux-based containerized game server software for hosting on Amazon GameLift. - api-change:`ssm`: \[`botocore`] Add SSM DescribeInstanceProperties API to public AWS SDK. ### [`v1.34.90`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13490) [Compare Source](https://github.com/boto/boto3/compare/1.34.89...1.34.90) \======= - api-change:`bedrock`: \[`botocore`] This release introduces Model Evaluation and Guardrails for Amazon Bedrock. - api-change:`bedrock-agent`: \[`botocore`] Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data. - api-change:`bedrock-agent-runtime`: \[`botocore`] This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base. - api-change:`bedrock-runtime`: \[`botocore`] This release introduces Guardrails for Amazon Bedrock. - api-change:`ce`: \[`botocore`] Added additional metadata that might be applicable to your reservation recommendations. - api-change:`ec2`: \[`botocore`] This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API. - api-change:`pi`: \[`botocore`] Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API. - api-change:`rds`: \[`botocore`] Fix the example ARN for ModifyActivityStreamRequest - api-change:`workspaces-web`: \[`botocore`] Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings) ### [`v1.34.89`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13489) [Compare Source](https://github.com/boto/boto3/compare/1.34.88...1.34.89) \======= - api-change:`bedrock-agent`: \[`botocore`] Releasing the support for simplified configuration and return of control - api-change:`bedrock-agent-runtime`: \[`botocore`] Releasing the support for simplified configuration and return of control - api-change:`payment-cryptography`: \[`botocore`] Adding support to TR-31/TR-34 exports for optional headers, allowing customers to add additional metadata (such as key version and KSN) when exporting keys from the service. - api-change:`redshift-serverless`: \[`botocore`] Updates description of schedule field for scheduled actions. - api-change:`route53profiles`: \[`botocore`] Route 53 Profiles allows you to apply a central DNS configuration across many VPCs regardless of account. - api-change:`sagemaker`: \[`botocore`] This release adds support for Real-Time Collaboration and Shared Space for JupyterLab App on SageMaker Studio. - api-change:`servicediscovery`: \[`botocore`] This release adds examples to several Cloud Map actions. - api-change:`transfer`: \[`botocore`] Adding new API to support remote directory listing using SFTP connector ### [`v1.34.88`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#13488) [Compare Source](https://github.com/boto/boto3/compare/1.34.87...1.34.88) \======= - api-change:`glue`: \[`botocore`] Adding RowFilter in the response for GetUnfilteredTableMetadata API - api-change:`internetmonitor`: \[`botocore`] This update introduces the GetInternetEvent and ListInternetEvents APIs, which provide access to internet events displayed on the Amazon CloudWatch Internet Weather Map. - api-change:`personalize`: \[`botocore`] This releases auto training capability while creating a solution and automatically syncing latest solution versions when creating/updating a campaign </details> <details> <summary>boto/botocore (botocore)</summary> ### [`v1.34.93`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13493) [Compare Source](https://github.com/boto/botocore/compare/1.34.92...1.34.93) \======= - api-change:`codepipeline`: Add ability to manually and automatically roll back a pipeline stage to a previously successful execution. - api-change:`cognito-idp`: Add LimitExceededException to SignUp errors - api-change:`connectcampaigns`: This release adds support for specifying if Answering Machine should wait for prompt sound. - api-change:`marketplace-entitlement`: Releasing minor endpoint updates. - api-change:`oam`: This release introduces support for Source Accounts to define which Metrics and Logs to share with the Monitoring Account - api-change:`rds`: SupportsLimitlessDatabase field added to describe-db-engine-versions to indicate whether the DB engine version supports Aurora Limitless Database. - api-change:`support`: Releasing minor endpoint updates. ### [`v1.34.92`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13492) [Compare Source](https://github.com/boto/botocore/compare/1.34.91...1.34.92) \======= - api-change:`appsync`: UpdateGraphQLAPI documentation update and datasource introspection secret arn update - api-change:`fms`: AWS Firewall Manager adds support for network ACL policies to manage Amazon Virtual Private Cloud (VPC) network access control lists (ACLs) for accounts in your organization. - api-change:`ivs`: Bug Fix: IVS does not support arns with the `svs` prefix - api-change:`ivs-realtime`: Bug Fix: IVS Real Time does not support ARNs using the `svs` prefix. - api-change:`rds`: Updates Amazon RDS documentation for setting local time zones for RDS for Db2 DB instances. - api-change:`stepfunctions`: Add new ValidateStateMachineDefinition operation, which performs syntax checking on the definition of a Amazon States Language (ASL) state machine. ### [`v1.34.91`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13491) [Compare Source](https://github.com/boto/botocore/compare/1.34.90...1.34.91) \======= - api-change:`datasync`: This change allows users to disable and enable the schedules associated with their tasks. - api-change:`ec2`: Launching capability for customers to enable or disable automatic assignment of public IPv4 addresses to their network interface - api-change:`emr-containers`: EMRonEKS Service support for SecurityConfiguration enforcement for Spark Jobs. - api-change:`entityresolution`: Support Batch Unique IDs Deletion. - api-change:`gamelift`: Amazon GameLift releases container fleets support for public preview. Deploy Linux-based containerized game server software for hosting on Amazon GameLift. - api-change:`ssm`: Add SSM DescribeInstanceProperties API to public AWS SDK. ### [`v1.34.90`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13490) [Compare Source](https://github.com/boto/botocore/compare/1.34.89...1.34.90) \======= - api-change:`bedrock`: This release introduces Model Evaluation and Guardrails for Amazon Bedrock. - api-change:`bedrock-agent`: Introducing the ability to create multiple data sources per knowledge base, specify S3 buckets as data sources from external accounts, and exposing levers to define the deletion behavior of the underlying vector store data. - api-change:`bedrock-agent-runtime`: This release introduces zero-setup file upload support for the RetrieveAndGenerate API. This allows you to chat with your data without setting up a Knowledge Base. - api-change:`bedrock-runtime`: This release introduces Guardrails for Amazon Bedrock. - api-change:`ce`: Added additional metadata that might be applicable to your reservation recommendations. - api-change:`ec2`: This release introduces EC2 AMI Deregistration Protection, a new AMI property that can be enabled by customers to protect an AMI against an unintended deregistration. This release also enables the AMI owners to view the AMI 'LastLaunchedTime' in DescribeImages API. - api-change:`pi`: Clarifies how aggregation works for GetResourceMetrics in the Performance Insights API. - api-change:`rds`: Fix the example ARN for ModifyActivityStreamRequest - api-change:`workspaces-web`: Added InstanceType and MaxConcurrentSessions parameters on CreatePortal and UpdatePortal Operations as well as the ability to read Customer Managed Key & Additional Encryption Context parameters on supported resources (Portal, BrowserSettings, UserSettings, IPAccessSettings) ### [`v1.34.89`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13489) [Compare Source](https://github.com/boto/botocore/compare/1.34.88...1.34.89) \======= - api-change:`bedrock-agent`: Releasing the support for simplified configuration and return of control - api-change:`bedrock-agent-runtime`: Releasing the support for simplified configuration and return of control - api-change:`payment-cryptography`: Adding support to TR-31/TR-34 exports for optional headers, allowing customers to add additional metadata (such as key version and KSN) when exporting keys from the service. - api-change:`redshift-serverless`: Updates description of schedule field for scheduled actions. - api-change:`route53profiles`: Route 53 Profiles allows you to apply a central DNS configuration across many VPCs regardless of account. - api-change:`sagemaker`: This release adds support for Real-Time Collaboration and Shared Space for JupyterLab App on SageMaker Studio. - api-change:`servicediscovery`: This release adds examples to several Cloud Map actions. - api-change:`transfer`: Adding new API to support remote directory listing using SFTP connector ### [`v1.34.88`](https://github.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13488) [Compare Source](https://github.com/boto/botocore/compare/1.34.87...1.34.88) \======= - api-change:`glue`: Adding RowFilter in the response for GetUnfilteredTableMetadata API - api-change:`internetmonitor`: This update introduces the GetInternetEvent and ListInternetEvents APIs, which provide access to internet events displayed on the Amazon CloudWatch Internet Weather Map. - api-change:`personalize`: This releases auto training capability while creating a solution and automatically syncing latest solution versions when creating/updating a campaign </details> <details> <summary>nedbat/coveragepy (coverage)</summary> ### [`v7.5.0`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-750--2024-04-23) [Compare Source](https://github.com/nedbat/coveragepy/compare/7.4.4...7.5.0) - Added initial support for function and class reporting in the HTML report. There are now three index pages which link to each other: files, functions, and classes. Other reports don't yet have this information, but it will be added in the future where it makes sense. Feedback gladly accepted! - Other HTML report improvements: - There is now a "hide covered" checkbox to filter out 100% files, finishing `issue 1384`\_. - The index page is always sorted by one of its columns, with clearer indications of the sorting. - The "previous file" shortcut key didn't work on the index page, but now it does, fixing `issue 1765`\_. - The debug output showing which configuration files were tried now shows absolute paths to help diagnose problems where settings aren't taking effect, and is renamed from "attempted_config_files" to the more logical "config_files_attempted." - Python 3.13.0a6 is supported. .. \_issue 1384:[https://github.com/nedbat/coveragepy/issues/1384](https://github.com/nedbat/coveragepy/issues/1384)4 .. \_issue 1765[https://github.com/nedbat/coveragepy/issues/1765](https://github.com/nedbat/coveragepy/issues/1765)65 .. \_changes\_7-4-4: </details> <details> <summary>python/mypy (mypy)</summary> ### [`v1.10.0`](https://github.com/python/mypy/compare/1.9.0...v1.10.0) [Compare Source](https://github.com/python/mypy/compare/1.9.0...v1.10.0) </details> <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) </details> <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.4.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#042) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.4.1...v0.4.2) ##### Rule changes - \[`flake8-pyi`] Allow for overloaded `__exit__` and `__aexit__` definitions (`PYI036`) ([#​11057](https://github.com/astral-sh/ruff/pull/11057)) - \[`pyupgrade`] Catch usages of `"%s" % var` and provide an unsafe fix (`UP031`) ([#​11019](https://github.com/astral-sh/ruff/pull/11019)) - \[`refurb`] Implement new rule that suggests min/max over `sorted()` (`FURB192`) ([#​10868](https://github.com/astral-sh/ruff/pull/10868)) ##### Server - Fix an issue with missing diagnostics for Neovim and Helix ([#​11092](https://github.com/astral-sh/ruff/pull/11092)) - Implement hover documentation for `noqa` codes ([#​11096](https://github.com/astral-sh/ruff/pull/11096)) - Introduce common Ruff configuration options with new server settings ([#​11062](https://github.com/astral-sh/ruff/pull/11062)) ##### Bug fixes - Use `macos-12` for building release wheels to enable macOS 11 compatibility ([#​11146](https://github.com/astral-sh/ruff/pull/11146)) - \[`flake8-blind-expect`] Allow raise from in `BLE001` ([#​11131](https://github.com/astral-sh/ruff/pull/11131)) - \[`flake8-pyi`] Allow simple assignments to `None` in enum class scopes (`PYI026`) ([#​11128](https://github.com/astral-sh/ruff/pull/11128)) - \[`flake8-simplify`] Avoid raising `SIM911` for non-`zip` attribute calls ([#​11126](https://github.com/astral-sh/ruff/pull/11126)) - \[`refurb`] Avoid `operator.itemgetter` suggestion for single-item tuple ([#​11095](https://github.com/astral-sh/ruff/pull/11095)) - \[`ruff`] Respect per-file-ignores for `RUF100` with no other diagnostics ([#​11058](https://github.com/astral-sh/ruff/pull/11058)) - \[`ruff`] Fix async comprehension false positive (`RUF029`) ([#​11070](https://github.com/astral-sh/ruff/pull/11070)) ##### Documentation - \[`flake8-bugbear`] Document explicitly disabling strict zip (`B905`) ([#​11040](https://github.com/astral-sh/ruff/pull/11040)) - \[`flake8-type-checking`] Mention `lint.typing-modules` in `TCH001`, `TCH002`, and `TCH003` ([#​11144](https://github.com/astral-sh/ruff/pull/11144)) - \[`isort`] Improve documentation around custom `isort` sections ([#​11050](https://github.com/astral-sh/ruff/pull/11050)) - \[`pylint`] Fix documentation oversight for `invalid-X-returns` ([#​11094](https://github.com/astral-sh/ruff/pull/11094)) ##### Performance - Use `matchit` to resolve per-file settings ([#​11111](https://github.com/astral-sh/ruff/pull/11111)) ### [`v0.4.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#041) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.4.0...v0.4.1) ##### Preview features - \[`pylint`] Implement `invalid-hash-returned` (`PLE0309`) ([#​10961](https://github.com/astral-sh/ruff/pull/10961)) - \[`pylint`] Implement `invalid-index-returned` (`PLE0305`) ([#​10962](https://github.com/astral-sh/ruff/pull/10962)) ##### Bug fixes - \[`pylint`] Allow `NoReturn`-like functions for `__str__`, `__len__`, etc. (`PLE0307`) ([#​11017](https://github.com/astral-sh/ruff/pull/11017)) - Parser: Use empty range when there's "gap" in token source ([#​11032](https://github.com/astral-sh/ruff/pull/11032)) - \[`ruff`] Ignore stub functions in `unused-async` (`RUF029`) ([#​11026](https://github.com/astral-sh/ruff/pull/11026)) - Parser: Expect indented case block instead of match stmt ([#​11033](https://github.com/astral-sh/ruff/pull/11033)) ### [`v0.4.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#040) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.3.7...v0.4.0) ##### A new, hand-written parser Ruff's new parser is **>2x faster**, which translates to a **20-40% speedup** for all linting and formatting invocations. There's a lot to say about this exciting change, so check out the [blog post](https://astral.sh/blog/ruff-v0.4.0) for more details! See [#​10036](https://github.com/astral-sh/ruff/pull/10036) for implementation details. ##### A new language server in Rust With this release, we also want to highlight our new language server. `ruff server` is a Rust-powered language server that comes built-in with Ruff. It can be used with any editor that supports the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP). It uses a multi-threaded, lock-free architecture inspired by `rust-analyzer` and it will open the door for a lot of exciting features. It’s also faster than our previous [Python-based language server](https://github.com/astral-sh/ruff-lsp) \-- but you probably guessed that already. `ruff server` is only in alpha, but it has a lot of features that you can try out today: - Lints Python files automatically and shows quick-fixes when available - Formats Python files, with support for range formatting - Comes with commands for quickly performing actions: `ruff.applyAutofix`, `ruff.applyFormat`, and `ruff.applyOrganizeImports` - Supports `source.fixAll` and `source.organizeImports` source actions - Automatically reloads your project configuration when you change it To setup `ruff server` with your editor, refer to the [README.md](https://github.com/astral-sh/ruff/blob/main/crates/ruff_server/README.md). ##### Preview features - \[`pycodestyle`] Do not trigger `E3` rules on `def`s following a function/method with a dummy body ([#​10704](https://github.com/astral-sh/ruff/pull/10704)) - \[`pylint`] Implement `invalid-bytes-returned` (`E0308`) ([#​10959](https://github.com/astral-sh/ruff/pull/10959)) - \[`pylint`] Implement `invalid-length-returned` (`E0303`) ([#​10963](https://github.com/astral-sh/ruff/pull/10963)) - \[`pylint`] Implement `self-cls-assignment` (`W0642`) ([#​9267](https://github.com/astral-sh/ruff/pull/9267)) - \[`pylint`] Omit stubs from `invalid-bool` and `invalid-str-return-type` ([#​11008](https://github.com/astral-sh/ruff/pull/11008)) - \[`ruff`] New rule `unused-async` (`RUF029`) to detect unneeded `async` keywords on functions ([#​9966](https://github.com/astral-sh/ruff/pull/9966)) ##### Rule changes - \[`flake8-bandit`] Allow `urllib.request.urlopen` calls with static `Request` argument (`S310`) ([#​10964](https://github.com/astral-sh/ruff/pull/10964)) - \[`flake8-bugbear`] Treat `raise NotImplemented`-only bodies as stub functions (`B006`) ([#​10990](https://github.com/astral-sh/ruff/pull/10990)) - \[`flake8-slots`] Respect same-file `Enum` subclasses (`SLOT000`) ([#​11006](https://github.com/astral-sh/ruff/pull/11006)) - \[`pylint`] Support inverted comparisons (`PLR1730`) ([#​10920](https://github.com/astral-sh/ruff/pull/10920)) ##### Linter - Improve handling of builtin symbols in linter rules ([#​10919](https://github.com/astral-sh/ruff/pull/10919)) - Improve display of rules in `--show-settings` ([#​11003](https://github.com/astral-sh/ruff/pull/11003)) - Improve inference capabilities of the `BuiltinTypeChecker` ([#​10976](https://github.com/astral-sh/ruff/pull/10976)) - Resolve classes and functions relative to script name ([#​10965](https://github.com/astral-sh/ruff/pull/10965)) - Improve performance of `RuleTable::any_enabled` ([#​10971](https://github.com/astral-sh/ruff/pull/10971)) ##### Server *This section is devoted to updates for our new language server, written in Rust.* - Enable ruff-specific source actions ([#​10916](https://github.com/astral-sh/ruff/pull/10916)) - Refreshes diagnostics for open files when file configuration is changed ([#​10988](https://github.com/astral-sh/ruff/pull/10988)) - Important errors are now shown as popups ([#​10951](https://github.com/astral-sh/ruff/pull/10951)) - Introduce settings for directly configuring the linter and formatter ([#​10984](https://github.com/astral-sh/ruff/pull/10984)) - Resolve configuration for each document individually ([#​10950](https://github.com/astral-sh/ruff/pull/10950)) - Write a setup guide for Neovim ([#​10987](https://github.com/astral-sh/ruff/pull/10987)) ##### Configuration - Add `RUFF_OUTPUT_FILE` environment variable support ([#​10992](https://github.com/astral-sh/ruff/pull/10992)) ##### Bug fixes - Avoid `non-augmented-assignment` for reversed, non-commutative operators (`PLR6104`) ([#​10909](https://github.com/astral-sh/ruff/pull/10909)) - Limit commutative non-augmented-assignments to primitive data types (`PLR6104`) ([#​10912](https://github.com/astral-sh/ruff/pull/10912)) - Respect `per-file-ignores` for `RUF100` on blanket `# noqa` ([#​10908](https://github.com/astral-sh/ruff/pull/10908)) - Consider `if` expression for parenthesized with items parsing ([#​11010](https://github.com/astral-sh/ruff/pull/11010)) - Consider binary expr for parenthesized with items parsing ([#​11012](https://github.com/astral-sh/ruff/pull/11012)) - Reset `FOR_TARGET` context for all kinds of parentheses ([#​11009](https://github.com/astral-sh/ruff/pull/11009)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on the 2nd and 4th day instance on sunday after 9pm" in timezone America/New_York, 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. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- 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/HHS/simpler-grants-gov). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@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/)) | project.dependencies | minor | `==2.6.4` -> `==2.7.1` | --- ### 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) </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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjM1MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Change Summary
Fixes a memory leak when validating an iterable. I'll try to work out a test before this merges.
The general problem was that the
Iterable
field gets populated with aValidatorIterable
, which is a huge stateful object which itself contained model's__dict__
, which eventually includes theValidatorIterable
itself. This created a cycle which was opaque to the garbage collector.Implementing the
__traverse__
for theValidatorIterable
object fixes the problem, but to be honest, it feels like a big design wart that we have such a big stateful iterable here. Arguably, it's a massive footgun.For example, the following doesn't work, because the
elements
stored is the list iterator wrapped up in theValidatorIterable
.Related issue number
Fixes pydantic/pydantic#9243
Checklist
pydantic-core
(except for expected changes)