gh-101561: Add typing.override decorator#101564
Conversation
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
AlexWaygood
left a comment
There was a problem hiding this comment.
Thanks! Haven't looked in depth yet at all, but we'll also need:
- A news entry, as @bedevere-bot says
- An entry in
Doc/whatsnew/3.12.rst - (optionally) you can add your name to
Misc/ACKS
Misc/NEWS.d/next/Library/2023-02-04-16-35-46.gh-issue-101561.Xo6pIZ.rst
Outdated
Show resolved
Hide resolved
|
The implementation for override LGTM. |
Summary: THe `typing_extensions.override` was added a few months ago, we should support it. The `typing.override` decorator isn't landed yet, but that's okay - we should support it in override checks; it will still raise a "no such name" method when Pyre is being run against a typeshed that doens't have it yet. The PR to add `typing.override` to CPython is out for review now: https://github.com/python/cpython/pull/101564` Reviewed By: grievejia Differential Revision: D43055550 fbshipit-source-id: 3f51f643063afea75bf54ef38ae3a48681b99bd9
Testing: First set up the repo, following instructions at https://devguide.python.org/ by running: ``` ./configure --with-pydebug && make -j ``` Then run the typing tests: ``` ./python -m test test_typing -v ``` I ran the full test suite with ``` ./python -m test -j3 ``` and it came back clean except for a `test_grp` failure which I seem to get on trunk as well - likely something in my build is misconfigured but I'm pretty sure it is unrelated to the changes here.
Correct `s/final/override` (from reusing a similar block of documentation on the `@final` decorator) Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
…o6pIZ.rst Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
4a04527 to
090d9d2
Compare
|
(Rebase on main) @gvanrossum I think this is waiting on review from you |
JelleZijlstra
left a comment
There was a problem hiding this comment.
Sorry for dropping this; I have a few nits but I'm happy to merge the PR. I'll leave it open for a few days in case Guido does want to take a look himself.
Misc/NEWS.d/next/Library/2023-02-04-16-35-46.gh-issue-101561.Xo6pIZ.rst
Outdated
Show resolved
Hide resolved
|
I defer to @JelleZijlstra if that's okay. |
Thanks, looks good Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
|
Sorry for being late with a review, I've opened a follow-up for this: #102324 Thanks a lot for adding this decorator! Great work, it would be very useful! 👍 |
* main: (67 commits) pythongh-99108: Add missing md5/sha1 defines to Modules/Setup (python#102308) pythongh-100227: Move _str_replace_inf to PyInterpreterState (pythongh-102333) pythongh-100227: Move the dtoa State to PyInterpreterState (pythongh-102331) pythonGH-102305: Expand some macros in generated_cases.c.h (python#102309) Migrate to new PSF mailgun account (python#102284) pythongh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (in Python/) (python#102193) pythonGH-90744: Fix erroneous doc links in the sys module (python#101319) pythongh-87092: Make jump target label equal to the offset of the target in the instructions sequence (python#102093) pythongh-101101: Unstable C API tier (PEP 689) (pythonGH-101102) IDLE: Simplify DynOptionsMenu __init__code (python#101371) pythongh-101561: Add typing.override decorator (python#101564) pythongh-101825: Clarify that as_integer_ratio() output is always normalized (python#101843) pythongh-101773: Optimize creation of Fractions in private methods (python#101780) pythongh-102251: Updates to test_imp Toward Fixing Some Refleaks (pythongh-102254) pythongh-102296 Document that inspect.Parameter kinds support ordering (pythonGH-102297) pythongh-102250: Fix double-decref in COMPARE_AND_BRANCH error case (pythonGH-102287) pythongh-101100: Fix sphinx warnings in `types` module (python#102274) pythongh-91038: Change default argument value to `False` instead of `0` (python#31621) pythongh-101765: unicodeobject: use Py_XDECREF correctly (python#102283) [doc] Improve grammar/fix missing word (pythonGH-102060) ...
The code is pulled almost unchanged from
typing_extensions:Question that came up was where to put the type variable and what to name it:
typing_extensionsthe type variables use underscore prefixes to indicate that they are not public, buttypingdoesn't appear to use that convention so I named the type variableF.Callablewhich is defined below. If this is a problem I could correct it using a forward reference, or we could try to rearrange the module to put special forms above type variables.Testing the code:
First set up the repo, following instructions
at https://devguide.python.org/ by running:
Then run the typing tests:
I ran the full test suite with
and it came back clean except for a
test_grpfailure which I seem to get on trunk as well - likely something in my build is misconfigured but I'm pretty sure it is unrelated to the changes here.Make sure the docs build: