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

[3.9] bpo-45678: Fix singledispatchmethod classmethod/staticmethod bug #29394

Merged
merged 3 commits into from Nov 4, 2021

Conversation

AlexWaygood
Copy link
Member

@AlexWaygood AlexWaygood commented Nov 3, 2021

This PR fixes a bug in the 3.9 branch where
functools.singledispatchmethod did not properly wrap attributes such as
__name__, __doc__ and __module__ of the target method. It also
backports tests already merged into the 3.11 and 3.10 branches in #29328 and
#29390.

https://bugs.python.org/issue45678

…od` bug

This PR fixes a bug in the 3.9 branch where
``functools.singledispatchmethod`` did not properly wrap attributes such as
``__name__``, ``__doc__`` and ``__module__`` of the target method. It also
backports tests already merged into the 3.11 and 3.10 branches in #python#29328 and
python#29390.
@AlexWaygood
Copy link
Member Author

To test this bugfix, I added some additional tests that were not included in #29328 and #29390 (the previous PRs to the 3.10 & 3.11 branches). I'd like to "forward-port" these tests to 3.10 & 3.11 after this PR is merged (if it is accepted), before the BPO issue is closed.

Lib/functools.py Outdated Show resolved Hide resolved
@ambv ambv merged commit effb72f into python:3.9 Nov 4, 2021
@ambv
Copy link
Contributor

ambv commented Nov 4, 2021

Go ahead and "forward-port" the new tests, @AlexWaygood!

@AlexWaygood AlexWaygood deleted the singledispatchmethod-wrapping-bug branch November 4, 2021 19:55
AlexWaygood added a commit to AlexWaygood/cpython that referenced this pull request Nov 4, 2021
In order to fix a bug in the 3.9 branch in python#29394, more tests were added to
``test_functools.py`` to ensure that ``singledispatchmethod`` still correctly
wrapped a target method, even if the target method had already been wrapped by
 multiple other decorators. This PR brings the new tests into the 3.11 and 3.10
branches as well.
@AlexWaygood
Copy link
Member Author

Go ahead and "forward-port" the new tests, @AlexWaygood!

Forward-port is here! #29412 😀

ambv pushed a commit that referenced this pull request Nov 5, 2021
In order to fix a bug in the 3.9 branch in #29394, more tests were added to
``test_functools.py`` to ensure that ``singledispatchmethod`` still correctly
wrapped a target method, even if the target method had already been wrapped by
 multiple other decorators. This PR brings the new tests into the 3.11 and 3.10
branches as well.
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Nov 5, 2021
In order to fix a bug in the 3.9 branch in pythonGH-29394, more tests were added to
``test_functools.py`` to ensure that ``singledispatchmethod`` still correctly
wrapped a target method, even if the target method had already been wrapped by
 multiple other decorators. This PR brings the new tests into the 3.11 and 3.10
branches as well.
(cherry picked from commit 32f55d1)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
ambv pushed a commit that referenced this pull request Nov 5, 2021
In order to fix a bug in the 3.9 branch in GH-29394, more tests were added to
``test_functools.py`` to ensure that ``singledispatchmethod`` still correctly
wrapped a target method, even if the target method had already been wrapped by
 multiple other decorators. This PR brings the new tests into the 3.11 and 3.10
branches as well.
(cherry picked from commit 32f55d1)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
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.

None yet

4 participants