summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEthan Smith <ethan@ethanhs.me>2020-04-10 04:25:53 (GMT)
committerGitHub <noreply@github.com>2020-04-10 04:25:53 (GMT)
commit7c4185d62d4aec486d82c3ad02acd878db2d3537 (patch)
treed74318ca0c3e092652e64b9fe174edc0bcef9586
parent2fa67df605e4b0803e7e3aac0b85d851b4b4e09a (diff)
downloadcpython-7c4185d62d4aec486d82c3ad02acd878db2d3537.zip
cpython-7c4185d62d4aec486d82c3ad02acd878db2d3537.tar.gz
cpython-7c4185d62d4aec486d82c3ad02acd878db2d3537.tar.bz2
bpo-39481: PEP 585 for enumerate, AsyncGeneratorType, mmap (GH-19421)
-rw-r--r--Lib/test/test_genericalias.py9
-rw-r--r--Modules/mmapmodule.c2
-rw-r--r--Objects/enumobject.c2
-rw-r--r--Objects/genobject.c2
4 files changed, 11 insertions, 4 deletions
diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 535c249..196b059 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 a5c0ae0..a1267bd 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 75703be..4a83bb4 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 6bb08ae..d3455f8 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 */
};