From 8f67726dccf96e434dbc4b49f7d28a8da61df9c6 Mon Sep 17 00:00:00 2001 From: Stephen Morton Date: Mon, 14 Oct 2024 15:30:30 -0700 Subject: [PATCH 1/2] csv.Dialect doesn't actually subclass _csv.Dialect It does a weird wrapping thing instead: https://github.com/python/cpython/blob/2a5cdb251674ce8d9a824c102f7cd846d944cfa4/Lib/csv.py#L114 --- stdlib/csv.pyi | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stdlib/csv.pyi b/stdlib/csv.pyi index a1656f217ec6..835446990b9d 100644 --- a/stdlib/csv.pyi +++ b/stdlib/csv.pyi @@ -4,7 +4,6 @@ from _csv import ( QUOTE_MINIMAL as QUOTE_MINIMAL, QUOTE_NONE as QUOTE_NONE, QUOTE_NONNUMERIC as QUOTE_NONNUMERIC, - Dialect as _Dialect, Error as Error, __version__ as __version__, _DialectLike, @@ -59,7 +58,15 @@ if sys.version_info < (3, 13): _T = TypeVar("_T") -class Dialect(_Dialect): +class Dialect: + delimiter: str + quotechar: str | None + escapechar: str | None + doublequote: bool + skipinitialspace: bool + lineterminator: str + quoting: _QuotingType + strict: bool def __init__(self) -> None: ... class excel(Dialect): ... From a8ba0cd18bede25b0d4748aa1d27380c5efbe08e Mon Sep 17 00:00:00 2001 From: Stephen Morton Date: Mon, 14 Oct 2024 16:06:50 -0700 Subject: [PATCH 2/2] add csv.Dialect to _DialectLike alias --- stdlib/_csv.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/_csv.pyi b/stdlib/_csv.pyi index 6d1893cf8c16..0e206a63b260 100644 --- a/stdlib/_csv.pyi +++ b/stdlib/_csv.pyi @@ -1,3 +1,4 @@ +import csv import sys from _typeshed import SupportsWrite from collections.abc import Iterable, Iterator @@ -20,7 +21,7 @@ _QuotingType: TypeAlias = int class Error(Exception): ... -_DialectLike: TypeAlias = str | Dialect | type[Dialect] +_DialectLike: TypeAlias = str | Dialect | csv.Dialect | type[Dialect | csv.Dialect] class Dialect: delimiter: str