◐ Shell
reader mode source ↗
Skip to content

bpo-46998: Allow subclassing Any at runtime#31841

Merged
JelleZijlstra merged 15 commits into
python:mainfrom
hauntsaninja:subclass-any
Apr 5, 2022
Merged

bpo-46998: Allow subclassing Any at runtime#31841
JelleZijlstra merged 15 commits into
python:mainfrom
hauntsaninja:subclass-any

Conversation

@hauntsaninja

@hauntsaninja hauntsaninja commented Mar 13, 2022

Copy link
Copy Markdown
Contributor

@hauntsaninja

hauntsaninja commented Mar 13, 2022

Copy link
Copy Markdown
Contributor Author

This PR also permits issubclass(X, Any). I don't actually have a use case for doing so, so happy to forbid it if people feel strongly.

The error in functools.singledispatch used to be TypeError: Invalid annotation for 'x'. typing.Any is not a class.. Since typing.Any is now a class, that isn't quite true. We could add a special case check in singledispatch against typing.Any if we think it's important to prevent its use. The dedicated tests for Any were added very recently, in #30050

@hauntsaninja hauntsaninja marked this pull request as ready for review March 13, 2022 08:54
@JelleZijlstra

Copy link
Copy Markdown
Member

Planning to merge in a few days unless there's more discussion.

@JelleZijlstra JelleZijlstra left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hide comment

Looking at it again, I realize we should document this. Probably fine to just add a note like .. versionchanged: 3.11: Any can now be used as a base class.

@bedevere-bot

Copy link
Copy Markdown

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

And if you don't make the requested changes, you will be poked with soft cushions!

34 hidden items Load more…
@hauntsaninja

Copy link
Copy Markdown
Contributor Author

a comment on this pull request containing the phrase I have made the requested changes; please review again

@bedevere-bot

Copy link
Copy Markdown

Thanks for making the requested changes!

@JelleZijlstra: please review the changes made to this pull request.

@JelleZijlstra JelleZijlstra merged commit 5a4973e into python:main Apr 5, 2022
@hauntsaninja hauntsaninja deleted the subclass-any branch April 26, 2022 03:09
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Oct 27, 2022
https://build.opensuse.org/request/show/1031001
by user mcepl + dimstar_suse
- Clean specfile from old cruft.
- Requires Python 3.7+
- Fix testsuite: Must test as module; don't need multibuild.
- Update Summary and Description
- Update to version 4.4.0
  * Add `typing_extensions.Any` a backport of python 3.11's Any class which is
    subclassable at runtime. (backport from python/cpython#31841, by Shantanu
    and Jelle Zijlstra). Patch by James Hilton-Balfe (@Gobot1234).
  * Add initial support for TypeVarLike `default` parameter, PEP 696.
    Patch by Marc Mueller (@cdce8p).
  * Runtime support for PEP 698, adding `typing_extensions.override`. Patch by
    Jelle Zijlstra.
  * Add the `infer_variance` parameter to `TypeVar`, as specified in PEP 695.
    Patch by Jelle Zijlstra.
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 2, 2022
https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

(From OE-Core rev: 0b8f212744f8de7e6b33ab02d042009eba462241)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 2, 2022
https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

(From OE-Core rev: 0b8f212744f8de7e6b33ab02d042009eba462241)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 2, 2022
https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

(From OE-Core rev: 34c8f1eac66ae770d64eaa854b1f263848210773)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 4, 2022
* Add SUMMARY, DESCRIPTION, BUGTRACKER and SECTION
* Update HOMEPAGE to agree with PyPi

https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

License-Update: update copyright years; align with CPython LICENSE

See python/typing_extensions#63

(From OE-Core rev: 6dc6c11b638c1d45f4dc9c7813f93a09229c33b3)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 4, 2022
* Add SUMMARY, DESCRIPTION, BUGTRACKER and SECTION
* Update HOMEPAGE to agree with PyPi

https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

License-Update: update copyright years; align with CPython LICENSE

See python/typing_extensions#63

(From OE-Core rev: 0cb15457edaa6cee3ac152a18d8b6ba4204dd958)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
kraj pushed a commit to YoeDistro/poky that referenced this pull request Nov 7, 2022
* Add SUMMARY, DESCRIPTION, BUGTRACKER and SECTION
* Update HOMEPAGE to agree with PyPi

https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

License-Update: update copyright years; align with CPython LICENSE

See python/typing_extensions#63

(From OE-Core rev: 0cb15457edaa6cee3ac152a18d8b6ba4204dd958)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
rpurdie pushed a commit to yoctoproject/poky that referenced this pull request Nov 7, 2022
* Add SUMMARY, DESCRIPTION, BUGTRACKER and SECTION
* Update HOMEPAGE to agree with PyPi

https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

License-Update: update copyright years; align with CPython LICENSE

See python/typing_extensions#63

(From OE-Core rev: 15ca091ae01ae298c013e8cf82ee6af382259ed8)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Nov 7, 2022
* Add SUMMARY, DESCRIPTION, BUGTRACKER and SECTION
* Update HOMEPAGE to agree with PyPi

https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#release-440-october-6-2022

Release 4.4.0 (October 6, 2022)

* Add typing_extensions.Any a backport of python 3.11's Any class
  which is subclassable at runtime. (backport from python/cpython#31841,
  by Shantanu and Jelle Zijlstra). Patch by James Hilton-Balfe
  (@Gobot1234).
* Add initial support for TypeVarLike default parameter, PEP 696.
  Patch by Marc Mueller (@cdce8p).
* Runtime support for PEP 698, adding typing_extensions.override.
  Patch by Jelle Zijlstra.
* Add the infer_variance parameter to TypeVar, as specified in PEP
  695. Patch by Jelle Zijlstra.

License-Update: update copyright years; align with CPython LICENSE

See python/typing_extensions#63

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.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.

7 participants