This repository has been archived by the owner on Jan 14, 2025. It is now read-only.
chore(deps): update dependency attrs to v23 #118
Merged
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:
==21.4.0
->==23.2.0
Release Notes
python-attrs/attrs (attrs)
v23.2.0
Compare Source
Changes
attrs.resolve_types()
is now correct.#1141
typing.dataclass_transform
to decorate dataclass-like decorators, instead of the non-standard__dataclass_transform__
special form, which is only supported by Pyright.#1158
attrs.asdict/astuple()
withretain_collection_types=True
.#1165
attrs.AttrsInstance
is now atyping.Protocol
in both type hints and code.This allows you to subclass it along with another
Protocol
.#1172
__attrs_pre_init__
accepts more than justself
, it will call it with the same arguments as__init__
was called.This allows you to, for example, pass arguments to
super().__init__()
.#1187
functools.cached_property
decorated methods to support equivalent semantics.#1200
attrs.make_class()
to provide additional attributes for newly created classes.It is, for example, now possible to attach methods.
#1203
v23.1.0
Compare Source
Backwards-incompatible Changes
#993
Deprecations
The support for zope-interface via the
attrs.validators.provides
validator is now deprecated and will be removed in, or after, April 2024.The presence of a C-based package in our developement dependencies has caused headaches and we're not under the impression it's used a lot.
Let us know if you're using it and we might publish it as a separate package.
#1120
Changes
attrs.filters.exclude()
andattrs.filters.include()
now support the passing of attribute names as strings.#1068
attrs.has()
andattrs.fields()
now handle generic classes correctly.#1079
Fix frozen exception classes when raised within e.g.
contextlib.contextmanager
, which mutates their__traceback__
attributes.#1081
@frozen
now works with type checkers that implement PEP-681 (ex. pyright).#1084
Restored ability to unpickle instances pickled before 22.2.0.
#1085
attrs.asdict()
's andattrs.astuple()
's type stubs now accept theattrs.AttrsInstance
protocol.#1090
Fix slots class cellvar updating closure in CPython 3.8+ even when
__code__
introspection is unavailable.#1092
attrs.resolve_types()
can now passinclude_extras
totyping.get_type_hints()
on Python 3.9+, and does so by default.#1099
Added instructions for pull request workflow to
CONTRIBUTING.md
.#1105
Added type parameter to
attrs.field()
function for use withattrs.make_class()
.Please note that type checkers ignore type metadata passed into
make_class()
, but it can be useful if you're wrapping attrs.#1107
It is now possible for
attrs.evolve()
(andattr.evolve()
) to change fields namedinst
if the instance is passed as a positional argument.Passing the instance using the
inst
keyword argument is now deprecated and will be removed in, or after, April 2024.#1117
attrs.validators.optional()
now also accepts a tuple of validators (in addition to lists of validators).#1122
v22.2.0
Compare Source
Backwards-incompatible Changes
#988
Deprecations
#1017
Changes
attrs.field()
now supports an alias option for explicit__init__
argument names.Get
__init__
signatures matching any taste, peculiar or plain!The PEP 681 compatible alias option can be use to override private attribute name mangling, or add other arbitrary field argument name overrides.
#950
attrs.NOTHING
is now an enum value, making it possible to use with e.g.typing.Literal
.#983
Added missing re-import of
attr.AttrsInstance
to theattrs
namespace.#987
Fix slight performance regression in classes with custom
__setattr__
and speedup even more.#991
Class-creation performance improvements by switching performance-sensitive templating operations to f-strings.
You can expect an improvement of about 5% -- even for very simple classes.
#995
attrs.has()
is now aTypeGuard
forAttrsInstance
.That means that type checkers know a class is an instance of an
attrs
class if you check it usingattrs.has()
(orattr.has()
) first.#997
Made
attrs.AttrsInstance
stub available at runtime and fixed type errors related to the usage ofattrs.AttrsInstance
in Pyright.#999
On Python 3.10 and later, call
abc.update_abstractmethods()
on dict classes after creation.This improves the detection of abstractness.
#1001
attrs's pickling methods now use dicts instead of tuples.
That is safer and more robust across different versions of a class.
#1009
Added
attrs.validators.not_(wrapped_validator)
to logically invert wrapped_validator by accepting only values where wrapped_validator rejects the value with aValueError
orTypeError
(by default, exception types configurable).#1010
The type stubs for
attrs.cmp_using()
now have default values.#1027
To conform with PEP 681,
attr.s()
andattrs.define()
now accept unsafe_hash in addition to hash.#1065
v22.1.0
Compare Source
Backwards-incompatible Changes
Python 2.7 is not supported anymore.
Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.
We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues.
All version up to 21.4.0 from December 2021 remain fully functional, of course.
#936
The deprecated
cmp
attribute ofattrs.Attribute
has been removed.This does not affect the cmp argument to
attr.s
that can be used as a shortcut to set eq and order at the same time.#939
Changes
#898
eq
key is defined, it is also used before hashing the attribute.#909
attrs.validators.min_len()
.#916
attrs.validators.deep_iterable()
's member_validator argument now also accepts a list of validators and wraps them in anattrs.validators.and_()
.#925
attrs.converters
andattrs.filters
.#931
attr(s).cmp_using()
.#949
attrs.validators._in()
'sValueError
is not missing the attribute, expected options, and the value it got anymore.#951
#969
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 has been generated by Mend Renovate. View repository job log here.