Skip to content

Commit d57b2fb

Browse files
authored
[docutils] Add missing stubs for writers dir (#14223)
1 parent 0822595 commit d57b2fb

23 files changed

+1680
-40
lines changed

stubs/docutils/@tests/stubtest_allowlist.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ docutils.statemachine.State.nested_sm_kwargs # is initialised in __init__
1212
docutils.statemachine.ViewList.__iter__ # doesn't exist at runtime, but the class is iterable due to __getitem__
1313
docutils.transforms.Transform.__getattr__
1414
docutils.TransformSpec.unknown_reference_resolvers
15-
docutils.writers.manpage.Translator.__getattr__
15+
docutils.writers.odf_odt.pygmentsformatter # this file is missing at runtime

stubs/docutils/docutils/writers/__init__.pyi

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Generic, TypedDict, TypeVar, type_check_only
1+
from typing import Any, Final, Generic, TypedDict, TypeVar, type_check_only
22
from typing_extensions import Required
33

44
from docutils import Component, nodes
@@ -7,6 +7,8 @@ from docutils.languages import LanguageImporter
77

88
_S = TypeVar("_S")
99

10+
__docformat__: Final = "reStructuredText"
11+
1012
# It would probably be better to specialize writers for subclasses,
1113
# but this gives us all possible Writer items w/o instance checks
1214
@type_check_only
@@ -67,13 +69,13 @@ class _WriterParts(TypedDict, total=False):
6769
class Writer(Component, Generic[_S]):
6870
parts: _WriterParts
6971
language: LanguageImporter | None = None
70-
def __init__(self) -> None: ...
7172
document: nodes.document | None = None
7273
destination: Output | None = None
7374
output: _S | None = None
74-
def assemble_parts(self) -> None: ...
75-
def translate(self) -> None: ...
75+
def __init__(self) -> None: ...
7676
def write(self, document: nodes.document, destination: Output) -> str | bytes | None: ...
77+
def translate(self) -> None: ...
78+
def assemble_parts(self) -> None: ...
7779

7880
class UnfilteredWriter(Writer[_S]): ...
7981

stubs/docutils/docutils/writers/_html_base.pyi

Lines changed: 302 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,45 @@
1-
def __getattr__(name: str): ... # incomplete module
1+
from collections.abc import Callable
2+
from typing import ClassVar, Final
3+
from xml.sax.handler import ContentHandler
4+
from xml.sax.xmlreader import Locator, XMLReader
5+
6+
import docutils
7+
from docutils import nodes, writers
8+
from docutils.frontend import Values
9+
10+
__docformat__: Final = "reStructuredText"
11+
12+
class RawXmlError(docutils.ApplicationError): ...
13+
14+
class Writer(writers.Writer[str]):
15+
settings_defaults: ClassVar[dict[str, str]]
16+
config_section: ClassVar[str]
17+
config_section_dependencies: ClassVar[tuple[str, ...]]
18+
translator_class: type[XMLTranslator]
19+
visitor: XMLTranslator
20+
21+
class XMLTranslator(nodes.GenericNodeVisitor):
22+
doctype: ClassVar[str]
23+
generator: ClassVar[str]
24+
xmlparser: ClassVar[XMLReader]
25+
warn: Callable[..., nodes.system_message]
26+
error: Callable[..., nodes.system_message]
27+
settings: Values
28+
indent: str
29+
newline: str
30+
level: int
31+
in_simple: int
32+
fixed_text: int
33+
output: list[str]
34+
the_handle: TestXml
35+
def __init__(self, document: nodes.document) -> None: ...
36+
simple_nodes: ClassVar[tuple[type[nodes.Element], ...]]
37+
def default_visit(self, node: nodes.Element) -> None: ... # type: ignore[override]
38+
def default_departure(self, node: nodes.Element) -> None: ... # type: ignore[override]
39+
def visit_Text(self, node: nodes.Text) -> None: ...
40+
def depart_Text(self, node: nodes.Text) -> None: ...
41+
def visit_raw(self, node: nodes.raw) -> None: ...
42+
43+
class TestXml(ContentHandler):
44+
locator: Locator
45+
def setDocumentLocator(self, locator: Locator) -> None: ...

stubs/docutils/docutils/writers/html4css1.pyi

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
from _typeshed import Incomplete
2+
from typing import ClassVar, Final
3+
4+
from docutils import nodes
5+
from docutils.writers import _html_base
6+
7+
__docformat__: Final = "reStructuredText"
8+
9+
class Writer(_html_base.Writer):
10+
default_stylesheets: ClassVar[list[str]]
11+
default_stylesheet_dirs: ClassVar[list[str]]
12+
default_template: ClassVar[str]
13+
config_section: ClassVar[str]
14+
translator_class: type[HTMLTranslator]
15+
16+
class HTMLTranslator(_html_base.HTMLTranslator):
17+
content_type: ClassVar[str]
18+
content_type_mathml: ClassVar[str]
19+
object_image_types: ClassVar[dict[str, str]]
20+
def set_first_last(self, node) -> None: ...
21+
def visit_address(self, node: nodes.address) -> None: ...
22+
def depart_address(self, node: nodes.address) -> None: ...
23+
def visit_admonition(self, node: nodes.admonition) -> None: ...
24+
def depart_admonition(self, node: nodes.admonition | None = None) -> None: ...
25+
def visit_author(self, node: nodes.author) -> None: ...
26+
author_in_authors: bool
27+
def depart_author(self, node: nodes.author) -> None: ...
28+
def visit_authors(self, node: nodes.authors) -> None: ...
29+
def depart_authors(self, node: nodes.authors) -> None: ...
30+
def visit_colspec(self, node: nodes.colspec) -> None: ...
31+
def depart_colspec(self, node: nodes.colspec) -> None: ...
32+
def is_compactable(self, node: nodes.Element) -> bool: ...
33+
def visit_citation(self, node: nodes.citation) -> None: ...
34+
def depart_citation(self, node: nodes.citation) -> None: ...
35+
def visit_citation_reference(self, node: nodes.citation_reference) -> None: ...
36+
def depart_citation_reference(self, node: nodes.citation_reference) -> None: ...
37+
def visit_classifier(self, node: nodes.classifier) -> None: ...
38+
def depart_classifier(self, node: nodes.classifier) -> None: ...
39+
def visit_compound(self, node: nodes.compound) -> None: ...
40+
def depart_compound(self, node: nodes.compound) -> None: ...
41+
def visit_definition(self, node: nodes.definition) -> None: ...
42+
def depart_definition(self, node: nodes.definition) -> None: ...
43+
def visit_definition_list(self, node: nodes.definition_list) -> None: ...
44+
def depart_definition_list(self, node: nodes.definition_list) -> None: ...
45+
def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ...
46+
def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ...
47+
def visit_description(self, node: nodes.description) -> None: ...
48+
def depart_description(self, node: nodes.description) -> None: ...
49+
in_docinfo: bool
50+
def visit_docinfo(self, node: nodes.docinfo) -> None: ...
51+
docinfo: Incomplete
52+
body: Incomplete
53+
def depart_docinfo(self, node: nodes.docinfo) -> None: ...
54+
def visit_docinfo_item(self, node, name, meta: bool = True) -> None: ...
55+
def depart_docinfo_item(self) -> None: ...
56+
def visit_doctest_block(self, node) -> None: ...
57+
def depart_doctest_block(self, node) -> None: ...
58+
def visit_entry(self, node) -> None: ...
59+
def depart_entry(self, node) -> None: ...
60+
compact_p: Incomplete
61+
compact_simple: Incomplete
62+
def visit_enumerated_list(self, node) -> None: ...
63+
def depart_enumerated_list(self, node) -> None: ...
64+
def visit_field(self, node) -> None: ...
65+
def depart_field(self, node) -> None: ...
66+
def visit_field_body(self, node) -> None: ...
67+
def depart_field_body(self, node) -> None: ...
68+
compact_field_list: bool
69+
def visit_field_list(self, node: nodes.field_list) -> None: ...
70+
def depart_field_list(self, node: nodes.field_list) -> None: ...
71+
def visit_field_name(self, node: nodes.field_name) -> None: ...
72+
def depart_field_name(self, node: nodes.field_name) -> None: ...
73+
def visit_footnote(self, node: nodes.footnote) -> None: ...
74+
def footnote_backrefs(self, node: nodes.footnote) -> None: ...
75+
def depart_footnote(self, node: nodes.footnote) -> None: ...
76+
def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ...
77+
def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ...
78+
def visit_generated(self, node: nodes.generated) -> None: ...
79+
def visit_image(self, node: nodes.image) -> None: ...
80+
def depart_image(self, node: nodes.image) -> None: ...
81+
def visit_label(self, node: nodes.label) -> None: ...
82+
def depart_label(self, node: nodes.label) -> None: ...
83+
def visit_list_item(self, node: nodes.list_item) -> None: ...
84+
def depart_list_item(self, node: nodes.list_item) -> None: ...
85+
def visit_literal(self, node: nodes.literal) -> None: ...
86+
def depart_literal(self, node: nodes.literal) -> None: ...
87+
def visit_literal_block(self, node: nodes.literal_block) -> None: ...
88+
def depart_literal_block(self, node: nodes.literal_block) -> None: ...
89+
def visit_option_group(self, node: nodes.option_group) -> None: ...
90+
def depart_option_group(self, node: nodes.option_group) -> None: ...
91+
def visit_option_list(self, node: nodes.option_list) -> None: ...
92+
def depart_option_list(self, node: nodes.option_list) -> None: ...
93+
def visit_option_list_item(self, node: nodes.option_list_item) -> None: ...
94+
def depart_option_list_item(self, node: nodes.option_list_item) -> None: ...
95+
def should_be_compact_paragraph(self, node: nodes.Element) -> bool: ...
96+
def visit_paragraph(self, node: nodes.paragraph) -> None: ...
97+
def depart_paragraph(self, node: nodes.paragraph) -> None: ...
98+
in_sidebar: bool
99+
def visit_sidebar(self, node: nodes.sidebar) -> None: ...
100+
def depart_sidebar(self, node: nodes.sidebar) -> None: ...
101+
def visit_subscript(self, node: nodes.subscript) -> None: ...
102+
def depart_subscript(self, node: nodes.subscript) -> None: ...
103+
in_document_title: int
104+
def visit_subtitle(self, node: nodes.subtitle) -> None: ...
105+
subtitle: list[Incomplete]
106+
def depart_subtitle(self, node: nodes.subtitle) -> None: ...
107+
def visit_superscript(self, node: nodes.superscript) -> None: ...
108+
def depart_superscript(self, node: nodes.superscript) -> None: ...
109+
def visit_system_message(self, node: nodes.system_message) -> None: ...
110+
def depart_system_message(self, node: nodes.system_message) -> None: ...
111+
def visit_table(self, node: nodes.table) -> None: ...
112+
def depart_table(self, node: nodes.table) -> None: ...
113+
def visit_tbody(self, node: nodes.tbody) -> None: ...
114+
def depart_tbody(self, node: nodes.tbody) -> None: ...
115+
def visit_term(self, node: nodes.term) -> None: ...
116+
def depart_term(self, node: nodes.term) -> None: ...
117+
def visit_thead(self, node: nodes.thead) -> None: ...
118+
def depart_thead(self, node: nodes.thead) -> None: ...
119+
def section_title_tags(self, node: nodes.Element) -> tuple[str, str]: ...
120+
121+
class SimpleListChecker(_html_base.SimpleListChecker):
122+
def visit_list_item(self, node: nodes.list_item) -> None: ...
123+
def visit_paragraph(self, node: nodes.paragraph) -> None: ...
124+
def visit_definition_list(self, node: nodes.definition_list) -> None: ...
125+
def visit_docinfo(self, node: nodes.docinfo) -> None: ...

stubs/docutils/docutils/writers/html5_polyglot.pyi

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from pathlib import Path
2+
from typing import ClassVar, Final
3+
4+
from docutils.writers import _html_base
5+
6+
__docformat__: Final = "reStructuredText"
7+
8+
class Writer(_html_base.Writer):
9+
default_stylesheets: ClassVar[list[str]]
10+
default_stylesheet_dirs: ClassVar[list[str]]
11+
default_template: ClassVar[Path]
12+
translator_class: type[HTMLTranslator]
13+
14+
class HTMLTranslator(_html_base.HTMLTranslator):
15+
supported_block_tags: set[str]
16+
supported_inline_tags: set[str]

stubs/docutils/docutils/writers/latex2e.pyi

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)