https://github.com/python/cpython/commit/e7dafdc2240a8e4e45f53782c47120eb3fe37712
commit: e7dafdc2240a8e4e45f53782c47120eb3fe37712
branch: main
author: James Hilton-Balfe <gobot123...@gmail.com>
committer: JelleZijlstra <jelle.zijls...@gmail.com>
date: 2024-05-06T18:41:32-07:00
summary:

gh-110209: Add __class_getitem__ for generator and coroutine (#110212)

files:
A Misc/NEWS.d/next/Library/2023-10-02-10-35-58.gh-issue-110209.b5zfIz.rst
M Lib/test/test_genericalias.py
M Objects/genobject.c

diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 04cb810d9babbf..04122fbdd0ae80 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -49,7 +49,7 @@
     ShareableList = None
 from os import DirEntry
 from re import Pattern, Match
-from types import GenericAlias, MappingProxyType, AsyncGeneratorType
+from types import GenericAlias, MappingProxyType, AsyncGeneratorType, 
CoroutineType, GeneratorType
 from tempfile import TemporaryDirectory, SpooledTemporaryFile
 from urllib.parse import SplitResult, ParseResult
 from unittest.case import _AssertRaisesContext
@@ -120,6 +120,7 @@ class BaseTest(unittest.TestCase):
                      KeysView, ItemsView, ValuesView,
                      Sequence, MutableSequence,
                      MappingProxyType, AsyncGeneratorType,
+                     GeneratorType, CoroutineType,
                      DirEntry,
                      chain,
                      LoggerAdapter, StreamHandler,
diff --git 
a/Misc/NEWS.d/next/Library/2023-10-02-10-35-58.gh-issue-110209.b5zfIz.rst 
b/Misc/NEWS.d/next/Library/2023-10-02-10-35-58.gh-issue-110209.b5zfIz.rst
new file mode 100644
index 00000000000000..b88e80d038d9b1
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-10-02-10-35-58.gh-issue-110209.b5zfIz.rst
@@ -0,0 +1 @@
+Add :meth:`~object.__class_getitem__` to :class:`types.GeneratorType` and 
:class:`types.CoroutineType` for type hinting purposes. Patch by James 
Hilton-Balfe.
diff --git a/Objects/genobject.c b/Objects/genobject.c
index acdcf579a940ef..92cd8c61e7e9ca 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -799,6 +799,7 @@ static PyMethodDef gen_methods[] = {
     {"throw",_PyCFunction_CAST(gen_throw), METH_FASTCALL, throw_doc},
     {"close",(PyCFunction)gen_close, METH_NOARGS, close_doc},
     {"__sizeof__", (PyCFunction)gen_sizeof, METH_NOARGS, sizeof__doc__},
+    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See 
PEP 585")},
     {NULL, NULL}        /* Sentinel */
 };
 
@@ -1151,6 +1152,7 @@ static PyMethodDef coro_methods[] = {
     {"throw",_PyCFunction_CAST(gen_throw), METH_FASTCALL, coro_throw_doc},
     {"close",(PyCFunction)gen_close, METH_NOARGS, coro_close_doc},
     {"__sizeof__", (PyCFunction)gen_sizeof, METH_NOARGS, sizeof__doc__},
+    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See 
PEP 585")},
     {NULL, NULL}        /* Sentinel */
 };
 

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to