diff --git a/odoo-stubs/tools/pycompat.pyi b/odoo-stubs/tools/pycompat.pyi index 9483c03..7379288 100644 --- a/odoo-stubs/tools/pycompat.pyi +++ b/odoo-stubs/tools/pycompat.pyi @@ -1,8 +1,26 @@ -from typing import Any +from codecs import StreamReader, StreamWriter +from csv import Dialect +from typing import BinaryIO, Iterable, Iterator, Protocol -_reader: Any -_writer: Any +class _StreamReader(Protocol): + def __call__(self, stream: BinaryIO, errors: str = ...) -> StreamReader: ... -def csv_reader(stream, **params): ... -def csv_writer(stream, **params): ... -def to_text(source): ... +class _StreamWriter(Protocol): + def __call__(self, stream: BinaryIO, errors: str = ...) -> StreamWriter: ... + +class _CsvReader(Iterator[list[str]]): + dialect: Dialect + line_num: int + def __next__(self) -> list[str]: ... + +class _CsvWriter: + dialect: Dialect + def writerow(self, row: Iterable): ... + def writerows(self, rows: Iterable[Iterable]) -> None: ... + +_reader: _StreamReader +_writer: _StreamWriter + +def csv_reader(stream: BinaryIO, **params) -> _CsvReader: ... +def csv_writer(stream: BinaryIO, **params) -> _CsvWriter: ... +def to_text(source) -> str: ...