Skip to content
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

Switched from __dataclass_transform__() to typing.dataclass_transform() #1158

Merged
merged 7 commits into from
Jul 6, 2023

Conversation

superbobry
Copy link
Contributor

@superbobry superbobry commented Jun 26, 2023

Summary

This PR replaces the non-standard __dataclass_transform__() in type stubs with typing.dataclass_transform(), introduced in PEP-681.

The only difference between the two decorators is the naming of one parameter: field_descriptors= in __dataclass_transform__() is now field_specifiers=.

Pull Request Check List

  • Added tests for changed code.
    Our CI fails if coverage is not 100%.
  • New features have been added to our Hypothesis testing strategy.
  • Changes or additions to public APIs are reflected in our type stubs (files ending in .pyi).
    • ...and used in the stub test file tests/typing_example.py.
    • If they've been added to attr/__init__.pyi, they've also been re-imported in attrs/__init__.pyi.
  • Updated documentation for changed code.
    • New functions/classes have to be added to docs/api.rst by hand.
    • Changes to the signature of @attr.s() have to be added by hand too.
    • Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.
      The next version is the second number in the current release + 1.
      The first number represents the current year.
      So if the current version on PyPI is 22.2.0, the next version is gonna be 22.3.0.
      If the next version is the first in the new year, it'll be 23.1.0.
  • Documentation in .rst files is written using semantic newlines.
  • Changes (and possible deprecations) have news fragments in changelog.d.
  • Consider granting push permissions to the PR branch, so maintainers can fix minor issues themselves without pestering you.

@superbobry superbobry force-pushed the typing.dataclass_transform branch from 5312d68 to 401be1c Compare June 28, 2023 22:08
@superbobry superbobry marked this pull request as ready for review June 29, 2023 09:15
@superbobry superbobry force-pushed the typing.dataclass_transform branch from cad8039 to 5a69034 Compare June 29, 2023 09:19
@hynek hynek requested a review from Tinche June 29, 2023 10:33
@hynek
Copy link
Member

hynek commented Jun 29, 2023

I'll leave the review to our resident typing czar but please add a news fragment.

@superbobry superbobry force-pushed the typing.dataclass_transform branch from 5eb40bf to d9fa361 Compare June 29, 2023 11:29
@hynek
Copy link
Member

hynek commented Jul 6, 2023

Tiiin, it's greeeeeen!

@Tinche
Copy link
Member

Tinche commented Jul 6, 2023

I'll install this branch into a bunch of our codebases and see if it's gucci.

@Tinche
Copy link
Member

Tinche commented Jul 6, 2023

Seems to work!

@hynek hynek merged commit 36d4762 into python-attrs:main Jul 6, 2023
@superbobry superbobry deleted the typing.dataclass_transform branch July 6, 2023 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants