mirror of https://github.com/python/cpython
Add __class_getitem__ to csv.DictReader and csv.DictWriter (#92393)
This commit is contained in:
parent
3680ebed7f
commit
5ed5c56123
|
@ -4,6 +4,7 @@ csv.py - read/write/investigate CSV files
|
|||
"""
|
||||
|
||||
import re
|
||||
import types
|
||||
from _csv import Error, __version__, writer, reader, register_dialect, \
|
||||
unregister_dialect, get_dialect, list_dialects, \
|
||||
field_size_limit, \
|
||||
|
@ -126,6 +127,8 @@ class DictReader:
|
|||
d[key] = self.restval
|
||||
return d
|
||||
|
||||
__class_getitem__ = classmethod(types.GenericAlias)
|
||||
|
||||
|
||||
class DictWriter:
|
||||
def __init__(self, f, fieldnames, restval="", extrasaction="raise",
|
||||
|
@ -156,6 +159,8 @@ class DictWriter:
|
|||
def writerows(self, rowdicts):
|
||||
return self.writer.writerows(map(self._dict_to_list, rowdicts))
|
||||
|
||||
__class_getitem__ = classmethod(types.GenericAlias)
|
||||
|
||||
# Guard Sniffer's type checking against builds that exclude complex()
|
||||
try:
|
||||
complex
|
||||
|
|
|
@ -11,6 +11,7 @@ from concurrent.futures import Future
|
|||
from concurrent.futures.thread import _WorkItem
|
||||
from contextlib import AbstractContextManager, AbstractAsyncContextManager
|
||||
from contextvars import ContextVar, Token
|
||||
from csv import DictReader, DictWriter
|
||||
from dataclasses import Field
|
||||
from functools import partial, partialmethod, cached_property
|
||||
from graphlib import TopologicalSorter
|
||||
|
@ -122,7 +123,8 @@ class BaseTest(unittest.TestCase):
|
|||
WeakSet, ReferenceType, ref,
|
||||
ShareableList,
|
||||
Future, _WorkItem,
|
||||
Morsel]
|
||||
Morsel,
|
||||
DictReader, DictWriter]
|
||||
if ctypes is not None:
|
||||
generic_types.extend((ctypes.Array, ctypes.LibraryLoader))
|
||||
if ValueProxy is not None:
|
||||
|
|
|
@ -1228,6 +1228,7 @@ Alessandro Moura
|
|||
Pablo Mouzo
|
||||
Mher Movsisyan
|
||||
Ruslan Mstoi
|
||||
Marc Mueller
|
||||
Valentina Mukhamedzhanova
|
||||
Michael Mulich
|
||||
Sape Mullender
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Add :meth:`~object.__class_getitem__` to :class:`csv.DictReader` and
|
||||
:class:`csv.DictWriter`, allowing them to be parameterized at runtime.
|
||||
Patch by Marc Mueller.
|
Loading…
Reference in New Issue