[Python-checkins] bpo-39481: PEP 585 for enumerate, AsyncGeneratorType, mmap (GH-19421)

Ethan Smith webhook-mailer at python.org
Fri Apr 10 00:26:01 EDT 2020


https://github.com/python/cpython/commit/7c4185d62d4aec486d82c3ad02acd878db2d3537
commit: 7c4185d62d4aec486d82c3ad02acd878db2d3537
branch: master
author: Ethan Smith <ethan at ethanhs.me>
committer: GitHub <noreply at github.com>
date: 2020-04-09T21:25:53-07:00
summary:

bpo-39481: PEP 585 for enumerate, AsyncGeneratorType, mmap (GH-19421)

files:
M Lib/test/test_genericalias.py
M Modules/mmapmodule.c
M Objects/enumobject.c
M Objects/genobject.c

diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 535c2492574b3..196b059dfa0dd 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -7,11 +7,12 @@
 )
 from collections.abc import *
 from contextlib import AbstractContextManager, AbstractAsyncContextManager
+from mmap import mmap
 from ipaddress import IPv4Network, IPv4Interface, IPv6Network, IPv6Interface
 from itertools import chain
 from os import DirEntry
 from re import Pattern, Match
-from types import GenericAlias, MappingProxyType
+from types import GenericAlias, MappingProxyType, AsyncGeneratorType
 import typing
 
 from typing import TypeVar
@@ -21,7 +22,8 @@ class BaseTest(unittest.TestCase):
     """Test basics."""
 
     def test_subscriptable(self):
-        for t in (type, tuple, list, dict, set, frozenset,
+        for t in (type, tuple, list, dict, set, frozenset, enumerate,
+                  mmap,
                   defaultdict, deque,
                   OrderedDict, Counter, UserDict, UserList,
                   Pattern, Match,
@@ -37,10 +39,9 @@ def test_subscriptable(self):
                   Mapping, MutableMapping, MappingView,
                   KeysView, ItemsView, ValuesView,
                   Sequence, MutableSequence,
-                  MappingProxyType,
+                  MappingProxyType, AsyncGeneratorType,
                   DirEntry,
                   IPv4Network, IPv4Interface, IPv6Network, IPv6Interface,
-                  MappingProxyType, DirEntry,
                   chain,
                   ):
             tname = t.__name__
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index a5c0ae0eaf065..a1267bdd549c1 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -816,6 +816,8 @@ static struct PyMethodDef mmap_object_methods[] = {
 #ifdef MS_WINDOWS
     {"__sizeof__",      (PyCFunction) mmap__sizeof__method,     METH_NOARGS},
 #endif
+    {"__class_getitem__",    (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
+     PyDoc_STR("See PEP 585")},
     {NULL,         NULL}       /* sentinel */
 };
 
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index 75703be5fcfc5..4a83bb45aa667 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -201,6 +201,8 @@ PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
 
 static PyMethodDef enum_methods[] = {
     {"__reduce__", (PyCFunction)enum_reduce, METH_NOARGS, reduce_doc},
+    {"__class_getitem__",    (PyCFunction)Py_GenericAlias,
+    METH_O|METH_CLASS,       PyDoc_STR("See PEP 585")},
     {NULL,              NULL}           /* sentinel */
 };
 
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 6bb08aeaff76b..d3455f8dcd792 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -1346,6 +1346,8 @@ static PyMethodDef async_gen_methods[] = {
     {"asend", (PyCFunction)async_gen_asend, METH_O, async_asend_doc},
     {"athrow",(PyCFunction)async_gen_athrow, METH_VARARGS, async_athrow_doc},
     {"aclose", (PyCFunction)async_gen_aclose, METH_NOARGS, async_aclose_doc},
+    {"__class_getitem__",    (PyCFunction)Py_GenericAlias,
+    METH_O|METH_CLASS,       PyDoc_STR("See PEP 585")},
     {NULL, NULL}        /* Sentinel */
 };
 



More information about the Python-checkins mailing list