fix(deps): update dependency attrs to v25.4.0 #381
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/attrs-25.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
==25.3.0
->==25.4.0
Release Notes
python-attrs/attrs (attrs)
v25.4.0
Compare Source
Backwards-incompatible Changes
Class-level
kw_only=True
behavior is now consistent withdataclasses
.Previously, a class that sets
kw_only=True
makes 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=False
are 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=True
attrs class (Base
) with an attribute that setskw_only=False
and 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.b
keyword-only, but now this fails sinceBase.b
is positional, and we have a required positional argument (Subclass.c
) following another argument with defaults.#1457
Changes
Values passed to the
__init__()
method ofattrs
classes 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
tuple
of 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 is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.
Decision: Accept
Change Score: 10/10
This is a straightforward dependency update for the
attrs
package. The changes inpyproject.toml
anduv.lock
are consistent and reflect the updated version. The hashes and sizes inuv.lock
also appear to be valid, based on a spot-check. No problems detected.