1from typing import IO, Any, Iterable, List, Optional, Tuple 2 3AS_IS: None 4_FontType = Tuple[str, bool, bool, bool] 5_StylesType = Tuple[Any, ...] 6 7class NullFormatter: 8 writer: Optional[NullWriter] 9 def __init__(self, writer: Optional[NullWriter] = ...) -> None: ... 10 def end_paragraph(self, blankline: int) -> None: ... 11 def add_line_break(self) -> None: ... 12 def add_hor_rule(self, *args: Any, **kw: Any) -> None: ... 13 def add_label_data(self, format: str, counter: int, blankline: Optional[int] = ...) -> None: ... 14 def add_flowing_data(self, data: str) -> None: ... 15 def add_literal_data(self, data: str) -> None: ... 16 def flush_softspace(self) -> None: ... 17 def push_alignment(self, align: Optional[str]) -> None: ... 18 def pop_alignment(self) -> None: ... 19 def push_font(self, x: _FontType) -> None: ... 20 def pop_font(self) -> None: ... 21 def push_margin(self, margin: int) -> None: ... 22 def pop_margin(self) -> None: ... 23 def set_spacing(self, spacing: Optional[str]) -> None: ... 24 def push_style(self, *styles: _StylesType) -> None: ... 25 def pop_style(self, n: int = ...) -> None: ... 26 def assert_line_data(self, flag: int = ...) -> None: ... 27 28class AbstractFormatter: 29 writer: NullWriter 30 align: Optional[str] 31 align_stack: List[Optional[str]] 32 font_stack: List[_FontType] 33 margin_stack: List[int] 34 spacing: Optional[str] 35 style_stack: Any 36 nospace: int 37 softspace: int 38 para_end: int 39 parskip: int 40 hard_break: int 41 have_label: int 42 def __init__(self, writer: NullWriter) -> None: ... 43 def end_paragraph(self, blankline: int) -> None: ... 44 def add_line_break(self) -> None: ... 45 def add_hor_rule(self, *args: Any, **kw: Any) -> None: ... 46 def add_label_data(self, format: str, counter: int, blankline: Optional[int] = ...) -> None: ... 47 def format_counter(self, format: Iterable[str], counter: int) -> str: ... 48 def format_letter(self, case: str, counter: int) -> str: ... 49 def format_roman(self, case: str, counter: int) -> str: ... 50 def add_flowing_data(self, data: str) -> None: ... 51 def add_literal_data(self, data: str) -> None: ... 52 def flush_softspace(self) -> None: ... 53 def push_alignment(self, align: Optional[str]) -> None: ... 54 def pop_alignment(self) -> None: ... 55 def push_font(self, font: _FontType) -> None: ... 56 def pop_font(self) -> None: ... 57 def push_margin(self, margin: int) -> None: ... 58 def pop_margin(self) -> None: ... 59 def set_spacing(self, spacing: Optional[str]) -> None: ... 60 def push_style(self, *styles: _StylesType) -> None: ... 61 def pop_style(self, n: int = ...) -> None: ... 62 def assert_line_data(self, flag: int = ...) -> None: ... 63 64class NullWriter: 65 def __init__(self) -> None: ... 66 def flush(self) -> None: ... 67 def new_alignment(self, align: Optional[str]) -> None: ... 68 def new_font(self, font: _FontType) -> None: ... 69 def new_margin(self, margin: int, level: int) -> None: ... 70 def new_spacing(self, spacing: Optional[str]) -> None: ... 71 def new_styles(self, styles: Tuple[Any, ...]) -> None: ... 72 def send_paragraph(self, blankline: int) -> None: ... 73 def send_line_break(self) -> None: ... 74 def send_hor_rule(self, *args: Any, **kw: Any) -> None: ... 75 def send_label_data(self, data: str) -> None: ... 76 def send_flowing_data(self, data: str) -> None: ... 77 def send_literal_data(self, data: str) -> None: ... 78 79class AbstractWriter(NullWriter): 80 def new_alignment(self, align: Optional[str]) -> None: ... 81 def new_font(self, font: _FontType) -> None: ... 82 def new_margin(self, margin: int, level: int) -> None: ... 83 def new_spacing(self, spacing: Optional[str]) -> None: ... 84 def new_styles(self, styles: Tuple[Any, ...]) -> None: ... 85 def send_paragraph(self, blankline: int) -> None: ... 86 def send_line_break(self) -> None: ... 87 def send_hor_rule(self, *args: Any, **kw: Any) -> None: ... 88 def send_label_data(self, data: str) -> None: ... 89 def send_flowing_data(self, data: str) -> None: ... 90 def send_literal_data(self, data: str) -> None: ... 91 92class DumbWriter(NullWriter): 93 file: IO[str] 94 maxcol: int 95 def __init__(self, file: Optional[IO[str]] = ..., maxcol: int = ...) -> None: ... 96 def reset(self) -> None: ... 97 def send_paragraph(self, blankline: int) -> None: ... 98 def send_line_break(self) -> None: ... 99 def send_hor_rule(self, *args: Any, **kw: Any) -> None: ... 100 def send_literal_data(self, data: str) -> None: ... 101 def send_flowing_data(self, data: str) -> None: ... 102 103def test(file: Optional[str] = ...) -> None: ... 104