From 7c4185d62d4aec486d82c3ad02acd878db2d3537 Mon Sep 17 00:00:00 2001 From: Ethan Smith Date: Thu, 9 Apr 2020 21:25:53 -0700 Subject: [PATCH] bpo-39481: PEP 585 for enumerate, AsyncGeneratorType, mmap (GH-19421) --- Lib/test/test_genericalias.py | 9 +++++---- Modules/mmapmodule.c | 2 ++ Objects/enumobject.c | 2 ++ Objects/genobject.c | 2 ++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py index 535c2492574..196b059dfa0 100644 --- a/Lib/test/test_genericalias.py +++ b/Lib/test/test_genericalias.py @@ -7,11 +7,12 @@ from collections import ( ) 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 @@ class BaseTest(unittest.TestCase): 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 a5c0ae0eaf0..a1267bdd549 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 75703be5fcf..4a83bb45aa6 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 6bb08aeaff7..d3455f8dcd7 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 */ };