mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-06 20:24:30 +08:00
csv: re-export Dialect from _csv (#3613)
Resolves #3611 Tested with mypy on: ``` f = open("asdf.csv", "w") csv.writer(f) csv.writer(f, dialect=csv.excel) csv.writer(f, dialect=csv.excel()) csv.DictReader(f) csv.DictReader(f, dialect=csv.excel) csv.DictReader(f, dialect=csv.excel()) class CustomDialect(csv.Dialect): delimiter = "%" csv.writer(f, dialect=CustomDialect) csv.writer(f, dialect=CustomDialect()) ```
This commit is contained in:
@@ -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: ...
|
||||
|
||||
@@ -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: ...
|
||||
|
||||
Reference in New Issue
Block a user