Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
gh-103763: Implement PEP 695#103764
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
gh-103763: Implement PEP 695#103764
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…This commit includes:1. Parser updates2. AST updates3. typing.py updates4. Unit testsIt does not include the following:5. Symtable updates6. Compiler updates7. C implementations of TypeVar, TypeVarTuple, ParamSpec, Generic
This fixes compilation for me locally.
This isn't fully functional, but it should be enough to unblock workon the runtime. I'll update this PR as I implement more.
bedevere-bot commentedMay 15, 2023
🤖 New build scheduled with the buildbot fleet by@JelleZijlstra for commit08d931c 🤖 If you want to schedule another build, you need to add the🔨 test-with-refleak-buildbots label again. |
I think the refleaks are unrelated, probably#104510. |
Yeah, you're right. |
🎉 |
* main:pythonGH-104510: Fix refleaks in `_io` base types (python#104516)pythongh-104539: Fix indentation error in logging.config.rst (python#104545)pythongh-104050: Don't star-import 'types' in Argument Clinic (python#104543)pythongh-104050: Add basic typing to CConverter in clinic.py (python#104538)pythongh-64595: Fix write file logic in Argument Clinic (python#104507)pythongh-104523: Inline minimal PGO rules (python#104524)pythongh-103861: Fix Zip64 extensions not being properly applied in some cases (python#103863)pythongh-69152: add method get_proxy_response_headers to HTTPConnection class (python#104248)pythongh-103763: Implement PEP 695 (python#103764)pythongh-104461: Run tkinter test_configure_screen on X11 only (pythonGH-104462)pythongh-104469: Convert _testcapi/watchers.c to use Argument Clinic (python#104503)pythongh-104482: Fix error handling bugs in ast.c (python#104483)pythongh-104341: Adjust tstate_must_exit() to Respect Interpreter Finalization (pythongh-104437)pythonGH-102613: Fix recursion error from `pathlib.Path.glob()` (pythonGH-104373)
Congrats! Really excellent work on a tight timeframe. |
zen-xu commentedMay 23, 2023
Awesome! But will python support fromtypingimportProtocolclassDance(Protocol):defdance(self): ...classSing(Protocol):defsing(self): ...defperform[P:Dance+Sing](person:P):person.dance()person.sing() |
sunmy2019 commentedMay 23, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
It will not, at least not soon. Changes like this often need a PEP. If you are interested in it, new ideas are welcomed athttps://discuss.python.org/c/ideas/6. As for this specific question, I think you are asking for a https://discuss.python.org/t/type-intersection-and-negation-in-type-annotations/23879 |
Adding the feature like a I hope that the adoption of PEP695 will lead to more discussion on this as well and improve the representation of type hints. |
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
A C-accelerator was introduced for the typing module inPython 3.12 (seepython/cpython#103764).Because a pure python source is no longer available, now we stubout the missing classes and provide some __class_getitem__methods to allow subscripting like Type[int].This may mean when 3.12 is the minimum, we can remove olderbrain features like infer_typing_alias().
@python/organization-owners, please block@johnnyjeannatasha as a spammer — see the review on this PR and the comment ata390ec2#commitcomment-124994466 |
Uh oh!
There was an error while loading.Please reload this page.
I will update this message as the status of the PR changes.
This is a complete implementation. It incorporates the changes inpython/peps#3122, which were approved by the SC.
I wrote a detailed account of the changes in this PR athttps://jellezijlstra.github.io/pep695
Reviews are welcome on any aspect of the implementation.