From 4e946b74bf18dc932caf41d0257957d85bbabe91 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 7 May 2022 09:49:27 +0100 Subject: [PATCH] `csv.pyi`: minor cleanup (#7790) --- stdlib/csv.pyi | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/stdlib/csv.pyi b/stdlib/csv.pyi index be76740f5..3f2198ff8 100644 --- a/stdlib/csv.pyi +++ b/stdlib/csv.pyi @@ -1,4 +1,6 @@ import sys + +# actually csv.Dialect is a different class to _csv.Dialect at runtime, but for typing purposes, they're identical from _csv import ( QUOTE_ALL as QUOTE_ALL, QUOTE_MINIMAL as QUOTE_MINIMAL, @@ -19,9 +21,10 @@ from _csv import ( unregister_dialect as unregister_dialect, writer as writer, ) -from _typeshed import Self +from _typeshed import Self, SupportsWrite from collections.abc import Collection, Iterable, Iterator, Mapping, Sequence from typing import Any, Generic, TypeVar, overload +from typing_extensions import Literal if sys.version_info >= (3, 8): from builtins import dict as _DictReadMapping @@ -108,14 +111,14 @@ class DictReader(Generic[_T], Iterator[_DictReadMapping[_T, str]]): class DictWriter(Generic[_T]): fieldnames: Collection[_T] restval: Any | None - extrasaction: str + extrasaction: Literal["raise", "ignore"] writer: _writer def __init__( self, - f: Any, + f: SupportsWrite[str], fieldnames: Collection[_T], restval: Any | None = ..., - extrasaction: str = ..., + extrasaction: Literal["raise", "ignore"] = ..., dialect: _DialectLike = ..., *args: Any, **kwds: Any,