1# Stub for tabulate: https://github.com/astanin/python-tabulate
2from typing import Any, Callable, Container, Iterable, List, Mapping, NamedTuple, Optional, Sequence, Union
3
4PRESERVE_WHITESPACE: bool
5WIDE_CHARS_MODE: bool
6tabulate_formats: List[str]
7
8class Line(NamedTuple):
9    begin: str
10    hline: str
11    sep: str
12    end: str
13
14class DataRow(NamedTuple):
15    begin: str
16    sep: str
17    end: str
18
19_TableFormatLine = Union[None, Line, Callable[[List[int], List[str]], str]]
20_TableFormatRow = Union[None, DataRow, Callable[[List[Any], List[int], List[str]], str]]
21
22class TableFormat(NamedTuple):
23    lineabove: _TableFormatLine
24    linebelowheader: _TableFormatLine
25    linebetweenrows: _TableFormatLine
26    linebelow: _TableFormatLine
27    headerrow: _TableFormatRow
28    datarow: _TableFormatRow
29    padding: int
30    with_header_hide: Optional[Container[str]]
31
32def simple_separated_format(separator: str) -> TableFormat: ...
33def tabulate(
34    tabular_data: Union[Mapping[str, Iterable[Any]], Iterable[Iterable[Any]]],
35    headers: Union[str, Sequence[str]] = ...,
36    tablefmt: Union[str, TableFormat] = ...,
37    floatfmt: Union[str, Iterable[str]] = ...,
38    numalign: Optional[str] = ...,
39    stralign: Optional[str] = ...,
40    missingval: Union[str, Iterable[str]] = ...,
41    showindex: Union[str, bool, Iterable[Any]] = ...,
42    disable_numparse: Union[bool, Iterable[int]] = ...,
43    colalign: Optional[Iterable[Optional[str]]] = ...,
44) -> str: ...
45