Update dependency attrs to v25.4.0 #50
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==25.3.0->==25.4.0Release Notes
python-attrs/attrs (attrs)
v25.4.0Compare Source
Backwards-incompatible Changes
Class-level
kw_only=Truebehavior is now consistent withdataclasses.Previously, a class that sets
kw_only=Truemakes all attributes keyword-only, including those from base classes.If an attribute sets
kw_only=False, that setting is ignored, and it is still made keyword-only.Now, only the attributes defined in that class that doesn't explicitly set
kw_only=Falseare made keyword-only.This shouldn't be a problem for most users, unless you have a pattern like this:
Here, we have a
kw_only=Trueattrs class (Base) with an attribute that setskw_only=Falseand has a default (Base.b), and then create a subclass (Subclass) with required arguments (Subclass.c).Previously this would work, since it would make
Base.bkeyword-only, but now this fails sinceBase.bis positional, and we have a required positional argument (Subclass.c) following another argument with defaults.#1457
Changes
Values passed to the
__init__()method ofattrsclasses are now correctly passed to__attrs_pre_init__()instead of their default values (in cases where kw_only was not specified).#1427
Added support for Python 3.14 and PEP 749.
#1446,
#1451
attrs.validators.deep_mapping()now allows to leave out either key_validator xor value_validator.#1448
attrs.validators.deep_iterator()andattrs.validators.deep_mapping()now accept lists and tuples for all validators and wrap them into aattrs.validators.and_().#1449
Added a new experimental way to inspect classes:
attrs.inspect(cls)returns the effective class-wide parameters that were used by attrs to construct the class.The returned class is the same data structure that attrs uses internally to decide how to construct the final class.
#1454
Fixed annotations for
attrs.field(converter=...).Previously, a
tupleof converters was only accepted if it had exactly one element.#1461
The performance of
attrs.asdict()has been improved by 45–260%.#1463
The performance of
attrs.astuple()has been improved by 49–270%.#1469
The type annotation for
attrs.validators.or_()now allows for different types of validators.This was only an issue on Pyright.
#1474
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.
This PR was generated by Mend Renovate. View the repository job log.