Skip to content
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
merged 1 commit into from
Feb 16, 2024
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 12, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
attrs (changelog) ==21.4.0 -> ==23.2.0 age adoption passing confidence

Release Notes

python-attrs/attrs (attrs)

v23.2.0

Compare Source

Changes
  • The type annotation for attrs.resolve_types() is now correct.
    #​1141
  • Type stubs now use typing.dataclass_transform to decorate dataclass-like decorators, instead of the non-standard __dataclass_transform__ special form, which is only supported by Pyright.
    #​1158
  • Fixed serialization of namedtuple fields using attrs.asdict/astuple() with retain_collection_types=True.
    #​1165
  • attrs.AttrsInstance is now a typing.Protocol in both type hints and code.
    This allows you to subclass it along with another Protocol.
    #​1172
  • If attrs detects that __attrs_pre_init__ accepts more than just self, it will call it with the same arguments as __init__ was called.
    This allows you to, for example, pass arguments to super().__init__().
    #​1187
  • Slotted classes now transform functools.cached_property decorated methods to support equivalent semantics.
    #​1200
  • Added class_body argument to 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
  • Python 3.6 has been dropped and packaging switched to static package data using Hatch.
    #​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() and attrs.filters.include() now support the passing of attribute names as strings.
    #​1068

  • attrs.has() and attrs.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 and attrs.astuple()'s type stubs now accept the attrs.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 pass include_extras to typing.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 with attrs.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() (and attr.evolve()) to change fields named inst 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
  • Python 3.5 is not supported anymore.
    #​988
Deprecations
  • Python 3.6 is now deprecated and support will be removed in the next release.
    #​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 the attrs 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 a TypeGuard for AttrsInstance.
    That means that type checkers know a class is an instance of an attrs class if you check it using attrs.has() (or attr.has()) first.
    #​997

  • Made attrs.AttrsInstance stub available at runtime and fixed type errors related to the usage of attrs.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 a ValueError or TypeError (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() and attrs.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 of attrs.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
  • Instantiation of frozen slotted classes is now faster.
    #​898
  • If an eq key is defined, it is also used before hashing the attribute.
    #​909
  • Added attrs.validators.min_len().
    #​916
  • attrs.validators.deep_iterable()'s member_validator argument now also accepts a list of validators and wraps them in an attrs.validators.and_().
    #​925
  • Added missing type stub re-imports for attrs.converters and attrs.filters.
    #​931
  • Added missing stub for attr(s).cmp_using().
    #​949
  • attrs.validators._in()'s ValueError is not missing the attribute, expected options, and the value it got anymore.
    #​951
  • Python 3.11 is now officially supported.
    #​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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

Copy link

github-actions bot commented Jan 12, 2024

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ ACTION actionlint 5 0 0.05s
✅ BASH bash-exec 2 0 0.02s
✅ BASH shellcheck 2 0 0.02s
✅ BASH shfmt 2 0 0.0s
✅ DOCKERFILE hadolint 2 0 0.16s
✅ JSON eslint-plugin-jsonc 17 0 2.41s
✅ JSON jsonlint 17 0 0.37s
✅ JSON npm-package-json-lint yes no 0.63s
✅ JSON prettier 17 0 2.21s
✅ MARKDOWN markdownlint 3 0 0.64s
✅ PYTHON bandit 31 0 1.57s
✅ PYTHON black 31 0 1.82s
✅ PYTHON flake8 31 0 1.08s
✅ PYTHON isort 31 0 0.41s
✅ PYTHON mypy 31 0 9.03s
✅ PYTHON pyright 31 0 11.12s
✅ PYTHON ruff 31 0 0.06s
✅ REPOSITORY checkov yes no 13.97s
✅ REPOSITORY gitleaks yes no 0.12s
✅ REPOSITORY git_diff yes no 0.01s
✅ REPOSITORY grype yes no 15.38s
✅ REPOSITORY kics yes no 38.78s
✅ REPOSITORY secretlint yes no 1.11s
✅ REPOSITORY syft yes no 0.7s
✅ REPOSITORY trivy yes no 11.67s
✅ REPOSITORY trivy-sbom yes no 6.61s
✅ REPOSITORY trufflehog yes no 10.72s
✅ YAML prettier 15 0 1.23s
✅ YAML yamllint 15 0 0.54s

See detailed report in MegaLinter reports

You could have same capabilities but better runtime performances if you request a new MegaLinter flavor.

MegaLinter is graciously provided by OX Security

@renovate renovate bot force-pushed the renovate/attrs-23.x branch 5 times, most recently from c34e80e to 48ea2f0 Compare January 17, 2024 18:41
@renovate renovate bot force-pushed the renovate/attrs-23.x branch 2 times, most recently from b04aa46 to cf2ab0c Compare February 5, 2024 21:55
@renovate renovate bot force-pushed the renovate/attrs-23.x branch from cf2ab0c to f544680 Compare February 16, 2024 21:59
@chgl chgl merged commit 1b68997 into master Feb 16, 2024
13 checks passed
@chgl chgl deleted the renovate/attrs-23.x branch February 16, 2024 22:06
@miracum-bot
Copy link

🎉 This PR is included in version 3.1.3 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants