diff --git a/stdlib/2and3/_csv.pyi b/stdlib/2and3/_csv.pyi index e74464976a81..4f722891b69f 100644 --- a/stdlib/2and3/_csv.pyi +++ b/stdlib/2and3/_csv.pyi @@ -1,6 +1,6 @@ import sys -from typing import Any, Iterable, Iterator, List, Optional, Protocol, Sequence, Text, Union +from typing import Any, Iterable, Iterator, List, Optional, Protocol, Sequence, Text, Type, Union QUOTE_ALL: int QUOTE_MINIMAL: int @@ -20,6 +20,8 @@ class Dialect: strict: int def __init__(self) -> None: ... +_DialectLike = Union[str, Dialect, Type[Dialect]] + class _reader(Iterator[List[str]]): dialect: Dialect line_num: int @@ -41,8 +43,8 @@ class _writer: class _Writer(Protocol): def write(self, s: str) -> Any: ... -def writer(csvfile: _Writer, dialect: Union[Dialect, str] = ..., **fmtparams: Any) -> _writer: ... -def reader(csvfile: Iterable[Text], dialect: Union[Dialect, str] = ..., **fmtparams: Any) -> _reader: ... +def writer(csvfile: _Writer, dialect: _DialectLike = ..., **fmtparams: Any) -> _writer: ... +def reader(csvfile: Iterable[Text], dialect: _DialectLike = ..., **fmtparams: Any) -> _reader: ... def register_dialect(name: str, dialect: Any = ..., **fmtparams: Any) -> None: ... def unregister_dialect(name: str) -> None: ... def get_dialect(name: str) -> Dialect: ... diff --git a/stdlib/2and3/csv.pyi b/stdlib/2and3/csv.pyi index e4307857385e..47d9f5b41ff8 100644 --- a/stdlib/2and3/csv.pyi +++ b/stdlib/2and3/csv.pyi @@ -4,7 +4,9 @@ from _csv import ( QUOTE_MINIMAL as QUOTE_MINIMAL, QUOTE_NONE as QUOTE_NONE, QUOTE_NONNUMERIC as QUOTE_NONNUMERIC, + Dialect as Dialect, Error as Error, + _DialectLike, _reader, _writer, field_size_limit as field_size_limit, @@ -18,19 +20,8 @@ from _csv import ( from collections import OrderedDict from typing import Any, Dict, Iterable, Iterator, List, Mapping, Optional, Sequence, Text, Type, Union -_Dialect = Union[str, Dialect, Type[Dialect]] _DictRow = Mapping[str, Any] -class Dialect(object): - delimiter: str - quotechar: Optional[str] - escapechar: Optional[str] - doublequote: bool - skipinitialspace: bool - lineterminator: str - quoting: int - def __init__(self) -> None: ... - class excel(Dialect): delimiter: str quotechar: str @@ -62,7 +53,7 @@ class DictReader(Iterator[_DRMapping]): restkey: Optional[str] restval: Optional[str] reader: _reader - dialect: _Dialect + dialect: _DialectLike line_num: int fieldnames: Sequence[str] def __init__( @@ -71,7 +62,7 @@ class DictReader(Iterator[_DRMapping]): fieldnames: Optional[Sequence[str]] = ..., restkey: Optional[str] = ..., restval: Optional[str] = ..., - dialect: _Dialect = ..., + dialect: _DialectLike = ..., *args: Any, **kwds: Any, ) -> None: ... @@ -92,7 +83,7 @@ class DictWriter(object): fieldnames: Iterable[str], restval: Optional[Any] = ..., extrasaction: str = ..., - dialect: _Dialect = ..., + dialect: _DialectLike = ..., *args: Any, **kwds: Any, ) -> None: ...