Fix CSV dialect class type support

This commit is contained in:
Rami Abdelrazzaq 2026-09-14 07:04:12 -05:00
commit fb53549500
2 changed files with 14 additions and 2 deletions

View file

@ -1,7 +1,7 @@
import csv
from typing import Any, Sequence, TextIO, Union
from typing import Any, Sequence, TextIO, Type, Union
CsvDialect = Union[str, csv.Dialect]
CsvDialect = Union[str, csv.Dialect, Type[csv.Dialect]]
def rows_to_csv_file(

View file

@ -1,3 +1,4 @@
import csv
import io
import sqlite3
@ -40,6 +41,17 @@ def test_rows_to_csv_file_tsv():
db.close()
def test_rows_to_csv_file_accepts_dialect_class():
class PipeDialect(csv.excel):
delimiter = "|"
db, cursor = _cursor()
output = io.StringIO(newline="")
rows_to_csv_file(cursor, output, dialect=PipeDialect, lineterminator="\n")
assert output.getvalue() == "id|name\n1|Cleo\n2|Cardi, Jr.\n"
db.close()
@pytest.mark.parametrize("header", (True, False))
def test_rows_to_csv_file_requires_result_columns(header):
db = sqlite3.connect(":memory:")