diff --git a/stubs/docutils/@tests/stubtest_allowlist.txt b/stubs/docutils/@tests/stubtest_allowlist.txt index dc4c82d50003..04d9c98e1ece 100644 --- a/stubs/docutils/@tests/stubtest_allowlist.txt +++ b/stubs/docutils/@tests/stubtest_allowlist.txt @@ -17,4 +17,4 @@ docutils.statemachine.ViewList.__iter__ # doesn't exist at runtime, but the clas docutils.transforms.Transform.__getattr__ docutils.transforms.Transformer.__getattr__ docutils.TransformSpec.unknown_reference_resolvers -docutils.writers.manpage.Translator.__getattr__ +docutils.writers.odf_odt.pygmentsformatter # this file is missing at runtime diff --git a/stubs/docutils/docutils/writers/__init__.pyi b/stubs/docutils/docutils/writers/__init__.pyi index 58c40200aaf0..7934fd8b4190 100644 --- a/stubs/docutils/docutils/writers/__init__.pyi +++ b/stubs/docutils/docutils/writers/__init__.pyi @@ -1,4 +1,4 @@ -from typing import Any, Generic, TypedDict, TypeVar, type_check_only +from typing import Any, Final, Generic, TypedDict, TypeVar, type_check_only from typing_extensions import Required from docutils import Component, nodes @@ -7,6 +7,8 @@ from docutils.languages import LanguageImporter _S = TypeVar("_S") +__docformat__: Final = "reStructuredText" + # It would probably be better to specialize writers for subclasses, # but this gives us all possible Writer items w/o instance checks @type_check_only @@ -67,13 +69,13 @@ class _WriterParts(TypedDict, total=False): class Writer(Component, Generic[_S]): parts: _WriterParts language: LanguageImporter | None = None - def __init__(self) -> None: ... document: nodes.document | None = None destination: Output | None = None output: _S | None = None - def assemble_parts(self) -> None: ... - def translate(self) -> None: ... + def __init__(self) -> None: ... def write(self, document: nodes.document, destination: Output) -> str | bytes | None: ... + def translate(self) -> None: ... + def assemble_parts(self) -> None: ... class UnfilteredWriter(Writer[_S]): ... diff --git a/stubs/docutils/docutils/writers/_html_base.pyi b/stubs/docutils/docutils/writers/_html_base.pyi new file mode 100644 index 000000000000..247acb75e4f9 --- /dev/null +++ b/stubs/docutils/docutils/writers/_html_base.pyi @@ -0,0 +1,302 @@ +from _typeshed import Incomplete, StrPath +from collections.abc import Callable +from re import Pattern +from typing import ClassVar, NoReturn + +from docutils import nodes, writers +from docutils.frontend import Values +from docutils.languages import _LanguageModule + +class Writer(writers.Writer[str]): + settings_defaults: ClassVar[dict[str, str]] + relative_path_settings: ClassVar[tuple[str, ...]] + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str, ...]] + visitor_attributes: ClassVar[tuple[str, ...]] + visitor: nodes.NodeVisitor + def translate(self) -> None: ... + def apply_template(self) -> str: ... + def interpolation_dict(self) -> dict[str, str]: ... + def assemble_parts(self) -> None: ... + +class HTMLTranslator(nodes.NodeVisitor): + doctype: ClassVar[str] + doctype_mathml: ClassVar[str] + head_prefix_template: ClassVar[str] + content_type: ClassVar[str] + generator: ClassVar[str] + documenttag_args: ClassVar[dict[str, str]] + mathjax_script: ClassVar[str] + mathjax_url: ClassVar[str] + stylesheet_link: ClassVar[str] + embedded_stylesheet: ClassVar[str] + words_and_spaces: ClassVar[Pattern[str]] + in_word_wrap_point: ClassVar[Pattern[str]] + lang_attribute: ClassVar[str] + special_characters: ClassVar[dict[int, str]] + videotypes: ClassVar[tuple[str, ...]] + attribution_formats: ClassVar[dict[str, tuple[str, str]]] + settings: Values + language: _LanguageModule + initial_header_level: int + image_loading: str + body: list[str] + body_prefix: list[str] + body_pre_docinfo: list[Incomplete] + body_suffix: list[str] + docinfo: list[str] + footer: list[str] + fragment: list[Incomplete] + head: list[Incomplete] + head_prefix: list[Incomplete] + header: list[Incomplete] + html_body: list[Incomplete] + html_head: list[Incomplete] + html_prolog: list[Incomplete] + html_subtitle: list[Incomplete] + html_title: list[Incomplete] + meta: list[Incomplete] + stylesheet: list[Incomplete] + title: list[Incomplete] + subtitle: list[Incomplete] + context: list[Incomplete] + section_level: int + colspecs: list[Incomplete] + compact_p: bool + compact_simple: bool + compact_field_list: bool + in_docinfo: bool + in_sidebar: bool + in_document_title: int + in_mailto: bool + author_in_authors: bool + math_header: list[str] + messages: list[Incomplete] + def __init__(self, document: nodes.document) -> None: ... + def astext(self) -> str: ... + def attval(self, text: str, whitespace: Pattern[str] = ...) -> str: ... + def cloak_email(self, addr: str) -> str: ... + def cloak_mailto(self, uri: str) -> str: ... + def encode(self, text: object) -> str: ... + def image_size(self, node: nodes.image) -> str: ... + def prepare_svg(self, node: nodes.image, imagedata: bytes | bytearray, size_declaration: str | None) -> str: ... + def stylesheet_call(self, path: StrPath, adjust_path: bool | None = None) -> str: ... + def starttag(self, node: nodes.Element, tagname: str, suffix: str = "\n", empty: bool = False, **attributes) -> str: ... + def emptytag(self, node: nodes.Element, tagname: str, suffix: str = "\n", **attributes) -> str: ... + def report_messages(self, node: nodes.Node) -> None: ... + def set_class_on_child(self, node, class_, index: int = 0) -> None: ... + def uri2imagepath(self, uri: str) -> str: ... + def visit_Text(self, node: nodes.Text) -> None: ... + def depart_Text(self, node: nodes.Text) -> None: ... + def visit_abbreviation(self, node: nodes.abbreviation) -> None: ... + def depart_abbreviation(self, node: nodes.abbreviation) -> None: ... + def visit_acronym(self, node: nodes.acronym) -> None: ... + def depart_acronym(self, node: nodes.acronym) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def depart_address(self, node: nodes.address) -> None: ... + def visit_admonition(self, node: nodes.admonition) -> None: ... + def depart_admonition(self, node: nodes.admonition | None = None) -> None: ... + def visit_attribution(self, node: nodes.attribution) -> None: ... + def depart_attribution(self, node: nodes.attribution) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + def depart_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def depart_authors(self, node: nodes.authors) -> None: ... + def visit_block_quote(self, node: nodes.block_quote) -> None: ... + def depart_block_quote(self, node: nodes.block_quote) -> None: ... + def check_simple_list(self, node: nodes.Node) -> bool: ... + def is_compactable(self, node: nodes.Element) -> bool: ... + def visit_bullet_list(self, node: nodes.bullet_list) -> None: ... + def depart_bullet_list(self, node: nodes.bullet_list) -> None: ... + def visit_caption(self, node: nodes.caption) -> None: ... + def depart_caption(self, node: nodes.caption) -> None: ... + def visit_citation(self, node: nodes.citation) -> None: ... + def depart_citation(self, node: nodes.citation) -> None: ... + def visit_citation_reference(self, node: nodes.citation_reference) -> None: ... + def depart_citation_reference(self, node: nodes.citation_reference) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def depart_classifier(self, node: nodes.classifier) -> None: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def depart_colspec(self, node: nodes.colspec) -> None: ... + def visit_comment(self, node: nodes.comment, sub: Callable[[str, str], str] = ...) -> None: ... + def visit_compound(self, node: nodes.compound) -> None: ... + def depart_compound(self, node: nodes.compound) -> None: ... + def visit_container(self, node: nodes.container) -> None: ... + def depart_container(self, node: nodes.container) -> None: ... + def visit_contact(self, node: nodes.contact) -> None: ... + def depart_contact(self, node: nodes.contact) -> None: ... + def visit_copyright(self, node: nodes.copyright) -> None: ... + def depart_copyright(self, node: nodes.copyright) -> None: ... + def visit_date(self, node: nodes.date) -> None: ... + def depart_date(self, node: nodes.date) -> None: ... + def visit_decoration(self, node: nodes.decoration) -> None: ... + def depart_decoration(self, node: nodes.decoration) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def depart_definition(self, node: nodes.definition) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def depart_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_description(self, node: nodes.description) -> None: ... + def depart_description(self, node: nodes.description) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + def depart_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_docinfo_item(self, node, name: str, meta: bool = True) -> None: ... + def depart_docinfo_item(self) -> None: ... + def visit_doctest_block(self, node: nodes.doctest_block) -> None: ... + def depart_doctest_block(self, node: nodes.doctest_block) -> None: ... + def visit_document(self, node: nodes.document) -> None: ... + def depart_document(self, node: nodes.document) -> None: ... + def visit_emphasis(self, node: nodes.emphasis) -> None: ... + def depart_emphasis(self, node: nodes.emphasis) -> None: ... + def visit_entry(self, node: nodes.entry) -> None: ... + def depart_entry(self, node: nodes.entry) -> None: ... + def visit_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def depart_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def visit_field_list(self, node: nodes.field_list) -> None: ... + def depart_field_list(self, node: nodes.field_list) -> None: ... + def visit_field(self, node: nodes.field) -> None: ... + def depart_field(self, node: nodes.field) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def depart_field_name(self, node: nodes.field_name) -> None: ... + def visit_field_body(self, node: nodes.field_body) -> None: ... + def depart_field_body(self, node: nodes.field_body) -> None: ... + def visit_figure(self, node: nodes.figure) -> None: ... + def depart_figure(self, node: nodes.figure) -> None: ... + def visit_footer(self, node: nodes.footer) -> None: ... + def depart_footer(self, node: nodes.footer) -> None: ... + def visit_footnote(self, node: nodes.footnote) -> None: ... + def depart_footnote(self, node: nodes.footnote) -> None: ... + def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def visit_generated(self, node: nodes.generated) -> None: ... + def depart_generated(self, node: nodes.generated) -> None: ... + def visit_header(self, node: nodes.header) -> None: ... + def depart_header(self, node: nodes.header) -> None: ... + def visit_image(self, node: nodes.image) -> None: ... + def depart_image(self, node: nodes.image) -> None: ... + def visit_inline(self, node: nodes.inline) -> None: ... + def depart_inline(self, node: nodes.inline) -> None: ... + def visit_label(self, node: nodes.label) -> None: ... + def depart_label(self, node: nodes.label) -> None: ... + def visit_legend(self, node: nodes.legend) -> None: ... + def depart_legend(self, node: nodes.legend) -> None: ... + def visit_line(self, node: nodes.line) -> None: ... + def depart_line(self, node: nodes.line) -> None: ... + def visit_line_block(self, node: nodes.line_block) -> None: ... + def depart_line_block(self, node: nodes.line_block) -> None: ... + def visit_list_item(self, node: nodes.list_item) -> None: ... + def depart_list_item(self, node: nodes.list_item) -> None: ... + def visit_literal(self, node: nodes.literal) -> None: ... + def depart_literal(self, node: nodes.literal) -> None: ... + def visit_literal_block(self, node: nodes.literal_block) -> None: ... + def depart_literal_block(self, node: nodes.literal_block) -> None: ... + math_tags: dict[str, tuple[str, str, list[str]]] + math_output: str | Incomplete + def visit_math(self, node: nodes.math) -> None: ... + def depart_math(self, node: nodes.math) -> None: ... + def visit_math_block(self, node: nodes.math_block) -> None: ... + def depart_math_block(self, node: nodes.math_block) -> None: ... + def visit_meta(self, node: nodes.meta) -> None: ... + def depart_meta(self, node: nodes.meta) -> None: ... + def visit_option(self, node: nodes.option) -> None: ... + def depart_option(self, node: nodes.option) -> None: ... + def visit_option_argument(self, node: nodes.option_argument) -> None: ... + def depart_option_argument(self, node: nodes.option_argument) -> None: ... + def visit_option_group(self, node: nodes.option_group) -> None: ... + def depart_option_group(self, node: nodes.option_group) -> None: ... + def visit_option_list(self, node: nodes.option_list) -> None: ... + def depart_option_list(self, node: nodes.option_list) -> None: ... + def visit_option_list_item(self, node: nodes.option_list_item) -> None: ... + def depart_option_list_item(self, node: nodes.option_list_item) -> None: ... + def visit_option_string(self, node: nodes.option_string) -> None: ... + def depart_option_string(self, node: nodes.option_string) -> None: ... + def visit_organization(self, node: nodes.organization) -> None: ... + def depart_organization(self, node: nodes.organization) -> None: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def depart_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_problematic(self, node: nodes.problematic) -> None: ... + def depart_problematic(self, node: nodes.problematic) -> None: ... + def visit_raw(self, node: nodes.raw) -> None: ... + def visit_reference(self, node: nodes.reference) -> None: ... + def depart_reference(self, node: nodes.reference) -> None: ... + def visit_revision(self, node: nodes.revision) -> None: ... + def depart_revision(self, node: nodes.revision) -> None: ... + def visit_row(self, node: nodes.row) -> None: ... + def depart_row(self, node: nodes.row) -> None: ... + def visit_rubric(self, node: nodes.rubric) -> None: ... + def depart_rubric(self, node: nodes.rubric) -> None: ... + def visit_section(self, node: nodes.section) -> None: ... + def depart_section(self, node: nodes.section) -> None: ... + def visit_sidebar(self, node: nodes.sidebar) -> None: ... + def depart_sidebar(self, node: nodes.sidebar) -> None: ... + def visit_status(self, node: nodes.status) -> None: ... + def depart_status(self, node: nodes.status) -> None: ... + def visit_strong(self, node: nodes.strong) -> None: ... + def depart_strong(self, node: nodes.strong) -> None: ... + def visit_subscript(self, node: nodes.subscript) -> None: ... + def depart_subscript(self, node: nodes.subscript) -> None: ... + def visit_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def visit_substitution_reference(self, node: nodes.substitution_reference) -> None: ... + def visit_subtitle(self, node: nodes.subtitle) -> None: ... + def depart_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_superscript(self, node: nodes.superscript) -> None: ... + def depart_superscript(self, node: nodes.superscript) -> None: ... + def visit_system_message(self, node: nodes.system_message) -> None: ... + def depart_system_message(self, node: nodes.system_message) -> None: ... + def visit_table(self, node: nodes.table) -> None: ... + def depart_table(self, node: nodes.table) -> None: ... + def visit_target(self, node: nodes.target) -> None: ... + def depart_target(self, node: nodes.target) -> None: ... + def visit_tbody(self, node: nodes.tbody) -> None: ... + def depart_tbody(self, node: nodes.tbody) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def depart_term(self, node: nodes.term) -> None: ... + def visit_tgroup(self, node: nodes.tgroup) -> None: ... + def depart_tgroup(self, node: nodes.tgroup) -> None: ... + def visit_thead(self, node: nodes.thead) -> None: ... + def depart_thead(self, node: nodes.thead) -> None: ... + def section_title_tags(self, node: nodes.Element) -> tuple[str, str]: ... + def visit_title(self, node: nodes.title) -> None: ... + def depart_title(self, node: nodes.title) -> None: ... + def visit_title_reference(self, node: nodes.title_reference) -> None: ... + def depart_title_reference(self, node: nodes.title_reference) -> None: ... + def visit_topic(self, node: nodes.topic) -> None: ... + def depart_topic(self, node: nodes.topic) -> None: ... + def visit_transition(self, node: nodes.transition) -> None: ... + def depart_transition(self, node: nodes.transition) -> None: ... + def visit_version(self, node: nodes.version) -> None: ... + def depart_version(self, node: nodes.version) -> None: ... + def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... + +class SimpleListChecker(nodes.GenericNodeVisitor): + def visit_list_item(self, node: nodes.list_item) -> None: ... + def pass_node(self, node: nodes.Node) -> None: ... + def ignore_node(self, node: nodes.Node) -> None: ... + def visit_Text(self, node: nodes.Text) -> None: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_bullet_list(self, node: nodes.bullet_list) -> None: ... + def visit_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def visit_contact(self, node: nodes.contact) -> None: ... + def visit_copyright(self, node: nodes.copyright) -> None: ... + def visit_date(self, node: nodes.date) -> None: ... + def visit_organization(self, node: nodes.organization) -> None: ... + def visit_status(self, node: nodes.status) -> None: ... + def visit_version(self, node: nodes.version) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def visit_field_list(self, node: nodes.field_list) -> None: ... + def visit_field(self, node: nodes.field) -> None: ... + def visit_field_body(self, node: nodes.field_body) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def visit_comment(self, node: nodes.comment) -> None: ... + def visit_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def visit_target(self, node: nodes.target) -> None: ... + def visit_pending(self, node: nodes.pending) -> None: ... diff --git a/stubs/docutils/docutils/writers/docutils_xml.pyi b/stubs/docutils/docutils/writers/docutils_xml.pyi index 5b0f74feb261..dfd4096071d4 100644 --- a/stubs/docutils/docutils/writers/docutils_xml.pyi +++ b/stubs/docutils/docutils/writers/docutils_xml.pyi @@ -1 +1,45 @@ -def __getattr__(name: str): ... # incomplete module +from collections.abc import Callable +from typing import ClassVar, Final +from xml.sax.handler import ContentHandler +from xml.sax.xmlreader import Locator, XMLReader + +import docutils +from docutils import nodes, writers +from docutils.frontend import Values + +__docformat__: Final = "reStructuredText" + +class RawXmlError(docutils.ApplicationError): ... + +class Writer(writers.Writer[str]): + settings_defaults: ClassVar[dict[str, str]] + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str, ...]] + translator_class: type[XMLTranslator] + visitor: XMLTranslator + +class XMLTranslator(nodes.GenericNodeVisitor): + doctype: ClassVar[str] + generator: ClassVar[str] + xmlparser: ClassVar[XMLReader] + warn: Callable[..., nodes.system_message] + error: Callable[..., nodes.system_message] + settings: Values + indent: str + newline: str + level: int + in_simple: int + fixed_text: int + output: list[str] + the_handle: TestXml + def __init__(self, document: nodes.document) -> None: ... + simple_nodes: ClassVar[tuple[type[nodes.Element], ...]] + def default_visit(self, node: nodes.Element) -> None: ... # type: ignore[override] + def default_departure(self, node: nodes.Element) -> None: ... # type: ignore[override] + def visit_Text(self, node: nodes.Text) -> None: ... + def depart_Text(self, node: nodes.Text) -> None: ... + def visit_raw(self, node: nodes.raw) -> None: ... + +class TestXml(ContentHandler): + locator: Locator + def setDocumentLocator(self, locator: Locator) -> None: ... diff --git a/stubs/docutils/docutils/writers/html4css1.pyi b/stubs/docutils/docutils/writers/html4css1.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/html4css1.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/html4css1/__init__.pyi b/stubs/docutils/docutils/writers/html4css1/__init__.pyi new file mode 100644 index 000000000000..76da0b68d282 --- /dev/null +++ b/stubs/docutils/docutils/writers/html4css1/__init__.pyi @@ -0,0 +1,125 @@ +from _typeshed import Incomplete +from typing import ClassVar, Final + +from docutils import nodes +from docutils.writers import _html_base + +__docformat__: Final = "reStructuredText" + +class Writer(_html_base.Writer): + default_stylesheets: ClassVar[list[str]] + default_stylesheet_dirs: ClassVar[list[str]] + default_template: ClassVar[str] + config_section: ClassVar[str] + translator_class: type[HTMLTranslator] + +class HTMLTranslator(_html_base.HTMLTranslator): + content_type: ClassVar[str] + content_type_mathml: ClassVar[str] + object_image_types: ClassVar[dict[str, str]] + def set_first_last(self, node) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def depart_address(self, node: nodes.address) -> None: ... + def visit_admonition(self, node: nodes.admonition) -> None: ... + def depart_admonition(self, node: nodes.admonition | None = None) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + author_in_authors: bool + def depart_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def depart_authors(self, node: nodes.authors) -> None: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def depart_colspec(self, node: nodes.colspec) -> None: ... + def is_compactable(self, node: nodes.Element) -> bool: ... + def visit_citation(self, node: nodes.citation) -> None: ... + def depart_citation(self, node: nodes.citation) -> None: ... + def visit_citation_reference(self, node: nodes.citation_reference) -> None: ... + def depart_citation_reference(self, node: nodes.citation_reference) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def depart_classifier(self, node: nodes.classifier) -> None: ... + def visit_compound(self, node: nodes.compound) -> None: ... + def depart_compound(self, node: nodes.compound) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def depart_definition(self, node: nodes.definition) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def depart_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_description(self, node: nodes.description) -> None: ... + def depart_description(self, node: nodes.description) -> None: ... + in_docinfo: bool + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + docinfo: Incomplete + body: Incomplete + def depart_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_docinfo_item(self, node, name, meta: bool = True) -> None: ... + def depart_docinfo_item(self) -> None: ... + def visit_doctest_block(self, node) -> None: ... + def depart_doctest_block(self, node) -> None: ... + def visit_entry(self, node) -> None: ... + def depart_entry(self, node) -> None: ... + compact_p: Incomplete + compact_simple: Incomplete + def visit_enumerated_list(self, node) -> None: ... + def depart_enumerated_list(self, node) -> None: ... + def visit_field(self, node) -> None: ... + def depart_field(self, node) -> None: ... + def visit_field_body(self, node) -> None: ... + def depart_field_body(self, node) -> None: ... + compact_field_list: bool + def visit_field_list(self, node: nodes.field_list) -> None: ... + def depart_field_list(self, node: nodes.field_list) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def depart_field_name(self, node: nodes.field_name) -> None: ... + def visit_footnote(self, node: nodes.footnote) -> None: ... + def footnote_backrefs(self, node: nodes.footnote) -> None: ... + def depart_footnote(self, node: nodes.footnote) -> None: ... + def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def visit_generated(self, node: nodes.generated) -> None: ... + def visit_image(self, node: nodes.image) -> None: ... + def depart_image(self, node: nodes.image) -> None: ... + def visit_label(self, node: nodes.label) -> None: ... + def depart_label(self, node: nodes.label) -> None: ... + def visit_list_item(self, node: nodes.list_item) -> None: ... + def depart_list_item(self, node: nodes.list_item) -> None: ... + def visit_literal(self, node: nodes.literal) -> None: ... + def depart_literal(self, node: nodes.literal) -> None: ... + def visit_literal_block(self, node: nodes.literal_block) -> None: ... + def depart_literal_block(self, node: nodes.literal_block) -> None: ... + def visit_option_group(self, node: nodes.option_group) -> None: ... + def depart_option_group(self, node: nodes.option_group) -> None: ... + def visit_option_list(self, node: nodes.option_list) -> None: ... + def depart_option_list(self, node: nodes.option_list) -> None: ... + def visit_option_list_item(self, node: nodes.option_list_item) -> None: ... + def depart_option_list_item(self, node: nodes.option_list_item) -> None: ... + def should_be_compact_paragraph(self, node: nodes.Element) -> bool: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def depart_paragraph(self, node: nodes.paragraph) -> None: ... + in_sidebar: bool + def visit_sidebar(self, node: nodes.sidebar) -> None: ... + def depart_sidebar(self, node: nodes.sidebar) -> None: ... + def visit_subscript(self, node: nodes.subscript) -> None: ... + def depart_subscript(self, node: nodes.subscript) -> None: ... + in_document_title: int + def visit_subtitle(self, node: nodes.subtitle) -> None: ... + subtitle: list[Incomplete] + def depart_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_superscript(self, node: nodes.superscript) -> None: ... + def depart_superscript(self, node: nodes.superscript) -> None: ... + def visit_system_message(self, node: nodes.system_message) -> None: ... + def depart_system_message(self, node: nodes.system_message) -> None: ... + def visit_table(self, node: nodes.table) -> None: ... + def depart_table(self, node: nodes.table) -> None: ... + def visit_tbody(self, node: nodes.tbody) -> None: ... + def depart_tbody(self, node: nodes.tbody) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def depart_term(self, node: nodes.term) -> None: ... + def visit_thead(self, node: nodes.thead) -> None: ... + def depart_thead(self, node: nodes.thead) -> None: ... + def section_title_tags(self, node: nodes.Element) -> tuple[str, str]: ... + +class SimpleListChecker(_html_base.SimpleListChecker): + def visit_list_item(self, node: nodes.list_item) -> None: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... diff --git a/stubs/docutils/docutils/writers/html5_polyglot.pyi b/stubs/docutils/docutils/writers/html5_polyglot.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/html5_polyglot.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/html5_polyglot/__init__.pyi b/stubs/docutils/docutils/writers/html5_polyglot/__init__.pyi new file mode 100644 index 000000000000..dd59417aa099 --- /dev/null +++ b/stubs/docutils/docutils/writers/html5_polyglot/__init__.pyi @@ -0,0 +1,16 @@ +from pathlib import Path +from typing import ClassVar, Final + +from docutils.writers import _html_base + +__docformat__: Final = "reStructuredText" + +class Writer(_html_base.Writer): + default_stylesheets: ClassVar[list[str]] + default_stylesheet_dirs: ClassVar[list[str]] + default_template: ClassVar[Path] + translator_class: type[HTMLTranslator] + +class HTMLTranslator(_html_base.HTMLTranslator): + supported_block_tags: set[str] + supported_inline_tags: set[str] diff --git a/stubs/docutils/docutils/writers/latex2e.pyi b/stubs/docutils/docutils/writers/latex2e.pyi deleted file mode 100644 index 69f1fda5bc6f..000000000000 --- a/stubs/docutils/docutils/writers/latex2e.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from typing import ClassVar - -from docutils.utils import Reporter - -class Babel: - language_codes: ClassVar[dict[str, str]] - warn_msg: ClassVar[str] - active_chars: ClassVar[dict[str, str]] - - reporter: Reporter | None - language: str - otherlanguages: dict[str, str] - - def __init__(self, language_code: str, reporter: Reporter | None = None) -> None: ... - def __call__(self) -> str: ... - def language_name(self, language_code: str) -> str: ... - def get_language(self) -> str: ... - -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/latex2e/__init__.pyi b/stubs/docutils/docutils/writers/latex2e/__init__.pyi new file mode 100644 index 000000000000..4930f040660f --- /dev/null +++ b/stubs/docutils/docutils/writers/latex2e/__init__.pyi @@ -0,0 +1,379 @@ +import re +from _typeshed import Incomplete, StrPath, Unused +from collections.abc import Callable, Iterable +from pathlib import Path +from typing import ClassVar, Final, Literal, NoReturn, TypeVar +from typing_extensions import deprecated + +from docutils import nodes +from docutils.frontend import Values +from docutils.languages import _LanguageModule +from docutils.utils import Reporter +from docutils.writers import Writer as _Writer + +_K = TypeVar("_K") +_V = TypeVar("_V") + +LATEX_WRITER_DIR: Final[Path] + +class Writer(_Writer[str]): + default_template: ClassVar[str] + default_template_path: ClassVar[Path] + default_preamble: ClassVar[str] + table_style_values: ClassVar[list[str]] + relative_path_settings: ClassVar[tuple[str, ...]] + settings_defaults: ClassVar[dict[str, int]] + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str, ...]] + head_parts: ClassVar[tuple[str, ...]] + visitor_attributes: ClassVar[tuple[str, ...]] + translator_class: type[LaTeXTranslator] + +class Babel: + language_codes: ClassVar[dict[str, str]] + warn_msg: ClassVar[str] + active_chars: ClassVar[dict[str, str]] + + reporter: Reporter | None + language: str + otherlanguages: dict[str, str | bool] + setup: list[str] + + def __init__(self, language_code: str, reporter: Reporter | None = None) -> None: ... + def __call__(self) -> str: ... + def language_name(self, language_code: str) -> str: ... + def get_language(self) -> str: ... + +class SortableDict(dict[_K, _V]): + def sortedkeys(self) -> list[_K]: ... + def sortedvalues(self) -> list[_V]: ... + +class PreambleCmds: + color: ClassVar[str] + float: ClassVar[str] + linking: ClassVar[str] + minitoc: ClassVar[str] + table: ClassVar[str] + table_columnwidth: ClassVar[str] + textcomp: ClassVar[str] + abstract_legacy: ClassVar[str] + admonition_legacy: ClassVar[str] + error_legacy: ClassVar[str] + title_legacy: ClassVar[str] + toc_list: ClassVar[str] + ttem: ClassVar[str] + +class CharMaps: + alltt: ClassVar[dict[int, str]] + special: ClassVar[dict[int, str]] + unsupported_unicode: ClassVar[dict[int, str]] + utf8_supported_unicode: ClassVar[dict[int, str]] + textcomp: ClassVar[dict[int, str]] + pifont: ClassVar[dict[int, str]] + +class DocumentClass: + document_class: str + sections: list[str] + def __init__(self, document_class: str, with_part: bool = False) -> None: ... + def section(self, level: int) -> str: ... + def latex_section_depth(self, depth: int) -> int: ... + +class Table: + legacy_column_widths: bool + caption: list[str] + stubs: list[Incomplete] + colwidths_auto: bool + borders: str + def __init__(self, translator: LaTeXTranslator, latex_type: str) -> None: ... + def open(self) -> None: ... + def close(self) -> None: ... + def is_open(self) -> bool: ... + def set_table_style(self, node, settings) -> None: ... + def get_latex_type(self) -> str: ... + def set(self, attr, value) -> None: ... + def get(self, attr): ... + def get_vertical_bar(self) -> Literal["|", ""]: ... + def get_opening(self, width: str = r"\linewidth") -> str: ... + def get_closing(self) -> str: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def get_colspecs(self, node: nodes.Element) -> str: ... + def get_column_width(self) -> str: ... + def get_multicolumn_width(self, start: int, len_: int) -> str: ... + @deprecated("`writers.latex2e.Table.get_caption()` is obsolete and will be removed in Docutils 0.22.") + def get_caption(self) -> str: ... + def need_recurse(self) -> bool | Literal[0]: ... + def visit_thead(self) -> list[str]: ... + def depart_thead(self) -> list[str]: ... + def visit_row(self) -> None: ... + def depart_row(self) -> list[str]: ... + def set_rowspan(self, cell, value) -> None: ... + def get_rowspan(self, cell): ... + def get_entry_number(self) -> int: ... + def visit_entry(self) -> None: ... + def is_stub_column(self): ... + +class LaTeXTranslator(nodes.NodeVisitor): + is_xetex: ClassVar[bool] + compound_enumerators: ClassVar[bool] + section_prefix_for_enumerators: ClassVar[bool] + section_enumerator_separator: ClassVar[str] + has_latex_toc: ClassVar[bool] + section_level: ClassVar[int] + inside_citation_reference_label: ClassVar[bool] + verbatim: ClassVar[bool] + insert_non_breaking_blanks: ClassVar[bool] + insert_newline: ClassVar[bool] + literal: ClassVar[bool] + alltt: ClassVar[bool] + + warn: Callable[..., nodes.system_message] + error: Callable[..., nodes.system_message] + settings: Values + latex_encoding: str + use_latex_toc: Incomplete + use_latex_docinfo: Incomplete + use_latex_citations: Incomplete + reference_label: Incomplete + hyperlink_color: Incomplete + font_encoding: str + literal_block_env: str + literal_block_options: str + bibtex: Incomplete + language_module: _LanguageModule + babel: Babel + author_separator: str + documentoptions: str + d_class: DocumentClass + graphicx_package: str + docutils_footnotes: Incomplete + head_prefix: list[str] + requirements: SortableDict[str, str] | list[str] + latex_preamble: list[Incomplete] + fallbacks: SortableDict[str, str] | list[str] + pdfsetup: list[str] + title: list[Incomplete] + subtitle: list[Incomplete] + titledata: list[Incomplete] + body_pre_docinfo: list[Incomplete] + docinfo: list[Incomplete] + dedication: list[Incomplete] + abstract: list[Incomplete] + body: list[Incomplete] + context: list[Incomplete] + title_labels: list[Incomplete] + subtitle_labels: list[Incomplete] + author_stack: list[Incomplete] + date: list[Incomplete] + pdfauthor: list[Incomplete] + pdfinfo: list[Incomplete] + table_stack: list[Incomplete] + active_table: Table + out: list[Incomplete] + out_stack: list[Incomplete] + fallback_stylesheet: bool + stylesheet: list[str] + hyperref_options: str + + def __init__(self, document: nodes.document, babel_class: type = ...) -> None: ... + def stylesheet_call(self, path: StrPath) -> str: ... + def to_latex_encoding(self, docutils_encoding: str) -> str: ... + def language_label(self, docutil_label: str) -> str: ... + def encode(self, text: str) -> str: ... + def attval(self, text: str, whitespace: re.Pattern[str] = ...) -> str: ... + def is_inline(self, node: nodes.Node) -> bool: ... + def append_hypertargets(self, node: nodes.Element) -> None: ... + def set_align_from_classes(self, node) -> None: ... + def insert_align_declaration(self, node: nodes.Element, default: str | None = None) -> None: ... + def duclass_open(self, node) -> None: ... + def duclass_close(self, node) -> None: ... + def push_output_collector(self, new_out) -> None: ... + def pop_output_collector(self) -> None: ... + def term_postfix(self, node: nodes.Element) -> str: ... + def visit_Text(self, node: nodes.Text) -> None: ... + def depart_Text(self, node: nodes.Text) -> None: ... + def visit_abbreviation(self, node: nodes.abbreviation) -> None: ... + def depart_abbreviation(self, node: nodes.abbreviation) -> None: ... + def visit_acronym(self, node: nodes.acronym) -> None: ... + def depart_acronym(self, node: nodes.acronym) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def depart_address(self, node: nodes.address) -> None: ... + def visit_admonition(self, node: nodes.admonition) -> None: ... + def depart_admonition(self, node: nodes.admonition) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + def depart_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def depart_authors(self, node: nodes.authors) -> None: ... + def visit_block_quote(self, node: nodes.block_quote) -> None: ... + def depart_block_quote(self, node: nodes.block_quote) -> None: ... + def visit_bullet_list(self, node: nodes.bullet_list) -> None: ... + def depart_bullet_list(self, node: nodes.bullet_list) -> None: ... + def visit_superscript(self, node: nodes.superscript) -> None: ... + def depart_superscript(self, node: nodes.superscript) -> None: ... + def visit_subscript(self, node: nodes.subscript) -> None: ... + def depart_subscript(self, node: nodes.subscript) -> None: ... + def visit_caption(self, node: nodes.caption) -> None: ... + def depart_caption(self, node: nodes.caption) -> None: ... + def visit_title_reference(self, node: nodes.title_reference) -> None: ... + def depart_title_reference(self, node: nodes.title_reference) -> None: ... + def visit_citation(self, node: nodes.citation) -> None: ... + def depart_citation(self, node: nodes.citation) -> None: ... + def visit_citation_reference(self, node: nodes.citation_reference) -> None: ... + def depart_citation_reference(self, node: nodes.citation_reference) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def depart_classifier(self, node: nodes.classifier) -> None: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def depart_colspec(self, node: nodes.colspec) -> None: ... + def visit_comment(self, node: nodes.comment) -> None: ... + def depart_comment(self, node: nodes.comment) -> None: ... + def visit_compound(self, node: nodes.compound) -> None: ... + def depart_compound(self, node: nodes.compound) -> None: ... + def visit_contact(self, node: nodes.contact) -> None: ... + def depart_contact(self, node: nodes.contact) -> None: ... + def visit_container(self, node: nodes.container) -> None: ... + def depart_container(self, node: nodes.container) -> None: ... + def visit_copyright(self, node: nodes.copyright) -> None: ... + def depart_copyright(self, node: nodes.copyright) -> None: ... + def visit_date(self, node: nodes.date) -> None: ... + def depart_date(self, node: nodes.date) -> None: ... + def visit_decoration(self, node: nodes.decoration) -> None: ... + def depart_decoration(self, node: nodes.decoration) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def depart_definition(self, node: nodes.definition) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def depart_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_description(self, node: nodes.description) -> None: ... + def depart_description(self, node: nodes.description) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + def depart_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_docinfo_item(self, node, name: str) -> None: ... + def depart_docinfo_item(self, node) -> None: ... + def visit_doctest_block(self, node: nodes.doctest_block) -> None: ... + def depart_doctest_block(self, node: nodes.doctest_block) -> None: ... + def visit_document(self, node: nodes.document) -> None: ... + def depart_document(self, node: nodes.document) -> None: ... + def make_title(self) -> None: ... + def append_bibliogaphy(self) -> None: ... + def visit_emphasis(self, node: nodes.emphasis) -> None: ... + def depart_emphasis(self, node: nodes.emphasis) -> None: ... + def insert_additional_table_colum_delimiters(self) -> None: ... + def visit_entry(self, node: nodes.entry) -> None: ... + def depart_entry(self, node: nodes.entry) -> None: ... + def visit_row(self, node: nodes.row) -> None: ... + def depart_row(self, node: nodes.row) -> None: ... + def visit_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def depart_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def visit_field(self, node: nodes.field) -> None: ... + def depart_field(self, node: nodes.field) -> None: ... + def visit_field_body(self, node: nodes.field_body) -> None: ... + def depart_field_body(self, node: nodes.field_body) -> None: ... + def visit_field_list(self, node: nodes.field_list) -> None: ... + def depart_field_list(self, node: nodes.field_list) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def depart_field_name(self, node: nodes.field_name) -> None: ... + def visit_figure(self, node: nodes.figure) -> None: ... + def depart_figure(self, node: nodes.figure) -> None: ... + def visit_footer(self, node: nodes.footer) -> None: ... + def depart_footer(self, node: nodes.footer) -> None: ... + def visit_footnote(self, node: nodes.footnote) -> None: ... + def depart_footnote(self, node: nodes.footnote) -> None: ... + def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def label_delim(self, node, bracket, superscript) -> None: ... + def visit_label(self, node: nodes.label) -> None: ... + def depart_label(self, node: nodes.label) -> None: ... + def visit_generated(self, node: nodes.generated) -> None: ... + def depart_generated(self, node: nodes.generated) -> None: ... + def visit_header(self, node: nodes.header) -> None: ... + def depart_header(self, node: nodes.header) -> None: ... + def to_latex_length(self, length_str: str, pxunit: Unused = None) -> str: ... + def visit_image(self, node: nodes.image) -> None: ... + def depart_image(self, node: nodes.image) -> None: ... + def visit_inline(self, node: nodes.inline) -> None: ... + def depart_inline(self, node: nodes.inline) -> None: ... + def visit_legend(self, node: nodes.legend) -> None: ... + def depart_legend(self, node: nodes.legend) -> None: ... + def visit_line(self, node: nodes.line) -> None: ... + def depart_line(self, node: nodes.line) -> None: ... + def visit_line_block(self, node: nodes.line_block) -> None: ... + def depart_line_block(self, node: nodes.line_block) -> None: ... + def visit_list_item(self, node: nodes.list_item) -> None: ... + def depart_list_item(self, node: nodes.list_item) -> None: ... + def visit_literal(self, node: nodes.literal) -> None: ... + def depart_literal(self, node: nodes.literal) -> None: ... + def is_plaintext(self, node) -> bool: ... + def visit_literal_block(self, node: nodes.literal_block) -> None: ... + def depart_literal_block(self, node: nodes.literal_block) -> None: ... + def visit_meta(self, node: nodes.meta) -> None: ... + def depart_meta(self, node: nodes.meta) -> None: ... + def visit_math(self, node: nodes.math, math_env: str = "$") -> None: ... + def depart_math(self, node: nodes.math) -> None: ... + def visit_math_block(self, node: nodes.math_block) -> None: ... + def depart_math_block(self, node: nodes.math_block) -> None: ... + def visit_option(self, node: nodes.option) -> None: ... + def depart_option(self, node: nodes.option) -> None: ... + def visit_option_argument(self, node: nodes.option_argument) -> None: ... + def depart_option_argument(self, node: nodes.option_argument) -> None: ... + def visit_option_group(self, node: nodes.option_group) -> None: ... + def depart_option_group(self, node: nodes.option_group) -> None: ... + def visit_option_list(self, node: nodes.option_list) -> None: ... + def depart_option_list(self, node: nodes.option_list) -> None: ... + def visit_option_list_item(self, node: nodes.option_list_item) -> None: ... + def depart_option_list_item(self, node: nodes.option_list_item) -> None: ... + def visit_option_string(self, node: nodes.option_string) -> None: ... + def depart_option_string(self, node: nodes.option_string) -> None: ... + def visit_organization(self, node: nodes.organization) -> None: ... + def depart_organization(self, node: nodes.organization) -> None: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def depart_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_problematic(self, node: nodes.problematic) -> None: ... + def depart_problematic(self, node: nodes.problematic) -> None: ... + def visit_raw(self, node: nodes.raw) -> None: ... + def depart_raw(self, node: nodes.raw) -> None: ... + def has_unbalanced_braces(self, string: Iterable[str]) -> bool: ... + def visit_reference(self, node: nodes.reference) -> None: ... + def depart_reference(self, node: nodes.reference) -> None: ... + def visit_revision(self, node: nodes.revision) -> None: ... + def depart_revision(self, node: nodes.revision) -> None: ... + def visit_rubric(self, node: nodes.rubric) -> None: ... + def depart_rubric(self, node: nodes.rubric) -> None: ... + def visit_section(self, node: nodes.section) -> None: ... + def depart_section(self, node: nodes.section) -> None: ... + def visit_sidebar(self, node: nodes.sidebar) -> None: ... + def depart_sidebar(self, node: nodes.sidebar) -> None: ... + attribution_formats: dict[str, tuple[str, str]] + def visit_attribution(self, node: nodes.attribution) -> None: ... + def depart_attribution(self, node: nodes.attribution) -> None: ... + def visit_status(self, node: nodes.status) -> None: ... + def depart_status(self, node: nodes.status) -> None: ... + def visit_strong(self, node: nodes.strong) -> None: ... + def depart_strong(self, node: nodes.strong) -> None: ... + def visit_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def visit_substitution_reference(self, node: nodes.substitution_reference) -> None: ... + def visit_subtitle(self, node: nodes.subtitle) -> None: ... + def depart_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_system_message(self, node: nodes.system_message) -> None: ... + def depart_system_message(self, node: nodes.system_message) -> None: ... + def visit_table(self, node: nodes.table) -> None: ... + def depart_table(self, node: nodes.table) -> None: ... + def visit_target(self, node: nodes.target) -> None: ... + def depart_target(self, node: nodes.target) -> None: ... + def visit_tbody(self, node: nodes.tbody) -> None: ... + def depart_tbody(self, node: nodes.tbody) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def depart_term(self, node: nodes.term) -> None: ... + def visit_tgroup(self, node: nodes.tgroup) -> None: ... + def depart_tgroup(self, node: nodes.tgroup) -> None: ... + def thead_depth(self) -> int: ... + def visit_thead(self, node: nodes.thead) -> None: ... + def visit_title(self, node: nodes.title) -> None: ... + def depart_title(self, node: nodes.title) -> None: ... + def visit_contents(self, node) -> None: ... + def visit_topic(self, node: nodes.topic) -> None: ... + def depart_topic(self, node: nodes.topic) -> None: ... + def visit_transition(self, node: nodes.transition) -> None: ... + def depart_transition(self, node: nodes.transition) -> None: ... + def visit_version(self, node: nodes.version) -> None: ... + def depart_version(self, node: nodes.version) -> None: ... + def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... diff --git a/stubs/docutils/docutils/writers/manpage.pyi b/stubs/docutils/docutils/writers/manpage.pyi index c56336d488a7..192cfa43b93b 100644 --- a/stubs/docutils/docutils/writers/manpage.pyi +++ b/stubs/docutils/docutils/writers/manpage.pyi @@ -1,19 +1,247 @@ import re from _typeshed import Incomplete from collections.abc import Callable -from typing import Protocol, type_check_only -from typing_extensions import Never +from typing import ClassVar, Final, NoReturn, Protocol, type_check_only -from docutils import nodes +from docutils import nodes, writers +from docutils.frontend import Values +from docutils.languages import _LanguageModule @type_check_only class _RegexPatternSub(Protocol): # Matches the signature of the bound instance method `re.Pattern[str].sub` exactly def __call__(self, /, repl: str | Callable[[re.Match[str]], str], string: str, count: int = 0) -> str: ... +__docformat__: Final = "reStructuredText" +FIELD_LIST_INDENT: Final[int] +DEFINITION_LIST_INDENT: Final[int] +OPTION_LIST_INDENT: Final[int] +BLOCKQOUTE_INDENT: Final[float] +LITERAL_BLOCK_INDENT: Final[float] +MACRO_DEF: Final[str] + +class Writer(writers.Writer[str]): + translator_class: type[Translator] + +class Table: + def __init__(self) -> None: ... + def new_row(self) -> None: ... + def append_separator(self, separator) -> None: ... + def append_cell(self, cell_lines: list[str]) -> None: ... + def as_list(self) -> list[str]: ... + class Translator(nodes.NodeVisitor): + words_and_spaces: ClassVar[re.Pattern[str]] + possibly_a_roff_command: ClassVar[re.Pattern[str]] + document_start: ClassVar[str] + settings: Values + language: _LanguageModule + head: list[str] + body: list[str] + foot: list[str] + section_level: int + context: list[str | int] + topic_class: str + colspecs: list[nodes.colspec] + compact_p: int + compact_simple: Incomplete + header_written: int + authors: list[Incomplete] + defs: dict[str, tuple[str, ...]] + def comment_begin(self, text: str) -> str: ... + def comment(self, text: str) -> str: ... + def ensure_eol(self) -> None: ... + def astext(self) -> str: ... + def deunicode(self, text: str) -> str: ... + def visit_Text(self, node: nodes.Text) -> None: ... + def depart_Text(self, node: nodes.Text) -> None: ... + def list_start(self, node) -> None: ... + def list_end(self) -> None: ... + def header(self) -> str: ... + def append_header(self) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def depart_address(self, node: nodes.address) -> None: ... def visit_admonition(self, node: nodes.admonition, name: str | None = None) -> None: ... - def visit_comment(self, node: nodes.comment, sub: _RegexPatternSub = ...) -> Never: ... - def __getattr__(self, name: str, /) -> Incomplete: ... - -def __getattr__(name: str): ... # incomplete module + def depart_admonition(self, node: nodes.admonition) -> None: ... + def visit_attention(self, node: nodes.attention) -> None: ... + def depart_attention(self, node: nodes.attention) -> None: ... + def visit_docinfo_item(self, node: nodes.docinfo, name: str) -> None: ... + def depart_docinfo_item(self, node: nodes.docinfo) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + def depart_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def depart_authors(self, node: nodes.authors) -> None: ... + def visit_block_quote(self, node: nodes.block_quote) -> None: ... + def depart_block_quote(self, node: nodes.block_quote) -> None: ... + def visit_bullet_list(self, node: nodes.bullet_list) -> None: ... + def depart_bullet_list(self, node: nodes.bullet_list) -> None: ... + def visit_caption(self, node: nodes.caption) -> None: ... + def depart_caption(self, node: nodes.caption) -> None: ... + def visit_caution(self, node: nodes.caution) -> None: ... + def depart_caution(self, node: nodes.caution) -> None: ... + def visit_citation(self, node: nodes.citation) -> None: ... + def depart_citation(self, node: nodes.citation) -> None: ... + def visit_citation_reference(self, node: nodes.citation_reference) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def depart_classifier(self, node: nodes.classifier) -> None: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def depart_colspec(self, node: nodes.colspec) -> None: ... + def write_colspecs(self) -> None: ... + def visit_comment(self, node: nodes.comment, sub: _RegexPatternSub = ...) -> None: ... + def visit_contact(self, node: nodes.contact) -> None: ... + def depart_contact(self, node: nodes.contact) -> None: ... + def visit_container(self, node: nodes.container) -> None: ... + def depart_container(self, node: nodes.container) -> None: ... + def visit_compound(self, node: nodes.compound) -> None: ... + def depart_compound(self, node: nodes.compound) -> None: ... + def visit_copyright(self, node: nodes.copyright) -> None: ... + def visit_danger(self, node: nodes.danger) -> None: ... + def depart_danger(self, node: nodes.danger) -> None: ... + def visit_date(self, node: nodes.date) -> None: ... + def visit_decoration(self, node: nodes.decoration) -> None: ... + def depart_decoration(self, node: nodes.decoration) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def depart_definition(self, node: nodes.definition) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def depart_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_description(self, node: nodes.description) -> None: ... + def depart_description(self, node: nodes.description) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + def depart_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_doctest_block(self, node: nodes.doctest_block) -> None: ... + def depart_doctest_block(self, node: nodes.doctest_block) -> None: ... + def visit_document(self, node: nodes.document) -> None: ... + def depart_document(self, node: nodes.document) -> None: ... + def visit_emphasis(self, node: nodes.emphasis) -> None: ... + def depart_emphasis(self, node: nodes.emphasis) -> None: ... + def visit_entry(self, node: nodes.entry) -> None: ... + def depart_entry(self, node: nodes.entry) -> None: ... + def visit_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def depart_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def visit_error(self, node: nodes.error) -> None: ... + def depart_error(self, node: nodes.error) -> None: ... + def visit_field(self, node: nodes.field) -> None: ... + def depart_field(self, node: nodes.field) -> None: ... + def visit_field_body(self, node: nodes.field_body) -> None: ... + def depart_field_body(self, node: nodes.field_body) -> None: ... + def visit_field_list(self, node: nodes.field_list) -> None: ... + def depart_field_list(self, node: nodes.field_list) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def depart_field_name(self, node: nodes.field_name) -> None: ... + def visit_figure(self, node: nodes.figure) -> None: ... + def depart_figure(self, node: nodes.figure) -> None: ... + def visit_footer(self, node: nodes.footer) -> None: ... + def depart_footer(self, node: nodes.footer) -> None: ... + def visit_footnote(self, node: nodes.footnote) -> None: ... + def depart_footnote(self, node: nodes.footnote) -> None: ... + def footnote_backrefs(self, node) -> None: ... + def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def visit_generated(self, node: nodes.generated) -> None: ... + def depart_generated(self, node: nodes.generated) -> None: ... + def visit_header(self, node: nodes.header) -> None: ... + def depart_header(self, node: nodes.header) -> None: ... + def visit_hint(self, node: nodes.hint) -> None: ... + def depart_hint(self, node: nodes.hint) -> None: ... + def visit_subscript(self, node: nodes.subscript) -> None: ... + def depart_subscript(self, node: nodes.subscript) -> None: ... + def visit_superscript(self, node: nodes.superscript) -> None: ... + def depart_superscript(self, node: nodes.superscript) -> None: ... + def visit_attribution(self, node: nodes.attribution) -> None: ... + def depart_attribution(self, node: nodes.attribution) -> None: ... + def visit_image(self, node: nodes.image) -> None: ... + def visit_important(self, node: nodes.important) -> None: ... + def depart_important(self, node: nodes.important) -> None: ... + def visit_inline(self, node: nodes.inline) -> None: ... + def depart_inline(self, node: nodes.inline) -> None: ... + def visit_label(self, node: nodes.label) -> None: ... + def depart_label(self, node: nodes.label) -> None: ... + def visit_legend(self, node: nodes.legend) -> None: ... + def depart_legend(self, node: nodes.legend) -> None: ... + def visit_line_block(self, node: nodes.line_block) -> None: ... + def depart_line_block(self, node: nodes.line_block) -> None: ... + def visit_line(self, node: nodes.line) -> None: ... + def depart_line(self, node: nodes.line) -> None: ... + def visit_list_item(self, node: nodes.list_item) -> None: ... + def depart_list_item(self, node: nodes.list_item) -> None: ... + def visit_literal(self, node: nodes.literal) -> None: ... + def depart_literal(self, node: nodes.literal) -> None: ... + def visit_literal_block(self, node: nodes.literal_block) -> None: ... + def depart_literal_block(self, node: nodes.literal_block) -> None: ... + def visit_math(self, node: nodes.math) -> None: ... + def depart_math(self, node: nodes.math) -> None: ... + def visit_math_block(self, node: nodes.math_block) -> None: ... + def depart_math_block(self, node: nodes.math_block) -> None: ... + def visit_note(self, node: nodes.note) -> None: ... + def depart_note(self, node: nodes.note) -> None: ... + def indent(self, by: float = 0.5) -> None: ... + def dedent(self) -> None: ... + def visit_option_list(self, node: nodes.option_list) -> None: ... + def depart_option_list(self, node: nodes.option_list) -> None: ... + def visit_option_list_item(self, node: nodes.option_list_item) -> None: ... + def depart_option_list_item(self, node: nodes.option_list_item) -> None: ... + def visit_option_group(self, node: nodes.option_group) -> None: ... + def depart_option_group(self, node: nodes.option_group) -> None: ... + def visit_option(self, node: nodes.option) -> None: ... + def depart_option(self, node: nodes.option) -> None: ... + def visit_option_string(self, node: nodes.option_string) -> None: ... + def depart_option_string(self, node: nodes.option_string) -> None: ... + def visit_option_argument(self, node: nodes.option_argument) -> None: ... + def depart_option_argument(self, node: nodes.option_argument) -> None: ... + def visit_organization(self, node: nodes.organization) -> None: ... + def depart_organization(self, node: nodes.organization) -> None: ... + def first_child(self, node): ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def depart_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_problematic(self, node: nodes.problematic) -> None: ... + def depart_problematic(self, node: nodes.problematic) -> None: ... + def visit_raw(self, node: nodes.raw) -> None: ... + def visit_reference(self, node: nodes.reference) -> None: ... + def depart_reference(self, node: nodes.reference) -> None: ... + def visit_revision(self, node: nodes.revision) -> None: ... + def depart_revision(self, node: nodes.revision) -> None: ... + def visit_row(self, node: nodes.row) -> None: ... + def depart_row(self, node: nodes.row) -> None: ... + def visit_section(self, node: nodes.section) -> None: ... + def depart_section(self, node: nodes.section) -> None: ... + def visit_status(self, node: nodes.status) -> None: ... + def depart_status(self, node: nodes.status) -> None: ... + def visit_strong(self, node: nodes.strong) -> None: ... + def depart_strong(self, node: nodes.strong) -> None: ... + def visit_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def visit_substitution_reference(self, node: nodes.substitution_reference) -> None: ... + def visit_subtitle(self, node: nodes.subtitle) -> None: ... + def depart_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_system_message(self, node: nodes.system_message) -> None: ... + def depart_system_message(self, node: nodes.system_message) -> None: ... + def visit_table(self, node: nodes.table) -> None: ... + def depart_table(self, node: nodes.table) -> None: ... + def visit_target(self, node: nodes.target) -> None: ... + def visit_tbody(self, node: nodes.tbody) -> None: ... + def depart_tbody(self, node: nodes.tbody) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def depart_term(self, node: nodes.term) -> None: ... + def visit_tgroup(self, node: nodes.tgroup) -> None: ... + def depart_tgroup(self, node: nodes.tgroup) -> None: ... + def visit_thead(self, node: nodes.thead) -> None: ... + def depart_thead(self, node: nodes.thead) -> None: ... + def visit_tip(self, node: nodes.tip) -> None: ... + def depart_tip(self, node: nodes.tip) -> None: ... + def visit_title(self, node: nodes.title) -> None: ... + def depart_title(self, node: nodes.title) -> None: ... + def visit_title_reference(self, node: nodes.title_reference) -> None: ... + def depart_title_reference(self, node: nodes.title_reference) -> None: ... + def visit_topic(self, node: nodes.topic) -> None: ... + def depart_topic(self, node: nodes.topic) -> None: ... + def visit_sidebar(self, node: nodes.sidebar) -> None: ... + def depart_sidebar(self, node: nodes.sidebar) -> None: ... + def visit_rubric(self, node: nodes.rubric) -> None: ... + def depart_rubric(self, node: nodes.rubric) -> None: ... + def visit_transition(self, node: nodes.transition) -> None: ... + def depart_transition(self, node: nodes.transition) -> None: ... + def visit_version(self, node: nodes.version) -> None: ... + def visit_warning(self, node: nodes.warning) -> None: ... + def depart_warning(self, node: nodes.warning) -> None: ... + def unimplemented_visit(self, node: nodes.Node) -> NoReturn: ... diff --git a/stubs/docutils/docutils/writers/null.pyi b/stubs/docutils/docutils/writers/null.pyi index 5b0f74feb261..befd12f780ef 100644 --- a/stubs/docutils/docutils/writers/null.pyi +++ b/stubs/docutils/docutils/writers/null.pyi @@ -1 +1,9 @@ -def __getattr__(name: str): ... # incomplete module +from typing import ClassVar + +from docutils import writers + +class Writer(writers.UnfilteredWriter[str]): + supported: ClassVar[tuple[str, ...]] + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str]] + def translate(self) -> None: ... diff --git a/stubs/docutils/docutils/writers/odf_odt.pyi b/stubs/docutils/docutils/writers/odf_odt.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/odf_odt.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/odf_odt/__init__.pyi b/stubs/docutils/docutils/writers/odf_odt/__init__.pyi new file mode 100644 index 000000000000..7ed595051430 --- /dev/null +++ b/stubs/docutils/docutils/writers/odf_odt/__init__.pyi @@ -0,0 +1,425 @@ +import itertools +import re +import zipfile +from _typeshed import FileDescriptorOrPath, Incomplete, ReadableBuffer, SizedBuffer, Unused +from collections.abc import Generator +from typing import ClassVar, Final, Literal +from xml.etree import ElementTree + +from docutils import nodes, writers +from docutils.frontend import Values +from docutils.languages import _LanguageModule + +__docformat__: Final = "reStructuredText" +VERSION: Final[str] +IMAGE_NAME_COUNTER: Final[itertools.count[int]] + +class _ElementInterfaceWrapper(ElementTree.Element): + def __init__(self, tag: str, attrib: dict[str, str] | None = None) -> None: ... + def setparent(self, parent) -> None: ... + def getparent(self): ... + +SPACES_PATTERN: Final[re.Pattern[str]] +TABS_PATTERN: Final[re.Pattern[str]] +FILL_PAT1: Final[re.Pattern[str]] +FILL_PAT2: Final[re.Pattern[str]] +TABLESTYLEPREFIX: Final[str] +TABLENAMEDEFAULT: Final[str] +TABLEPROPERTYNAMES: Final[tuple[str, ...]] +GENERATOR_DESC: Final[str] +NAME_SPACE_1: Final[str] +CONTENT_NAMESPACE_DICT: Final[dict[str, str]] +CNSD: Final[dict[str, str]] +STYLES_NAMESPACE_DICT: Final[dict[str, str]] +SNSD: Final[dict[str, str]] +MANIFEST_NAMESPACE_DICT: Final[dict[str, str]] +MANNSD: Final[dict[str, str]] +META_NAMESPACE_DICT: Final[dict[str, str]] +METNSD: Final[dict[str, str]] +CONTENT_NAMESPACE_ATTRIB: Final[dict[str, str]] +STYLES_NAMESPACE_ATTRIB: Final[dict[str, str]] +MANIFEST_NAMESPACE_ATTRIB: Final[dict[str, str]] +META_NAMESPACE_ATTRIB: Final[dict[str, str]] + +def Element( + tag: str, attrib: dict[str, str] | None = None, nsmap: Unused = None, nsdict: Unused = ... +) -> _ElementInterfaceWrapper: ... +def SubElement( + parent: _ElementInterfaceWrapper, tag: str, attrib: dict[str, str] | None = None, nsmap: Unused = None, nsdict: Unused = ... +) -> _ElementInterfaceWrapper: ... +def fix_ns(tag: str, attrib: dict[str, str], nsdict: Unused) -> tuple[str, dict[str, str]]: ... +def add_ns(tag: str, nsdict: Unused = ...) -> str: ... +def ToString(et: ElementTree.ElementTree) -> str: ... +def escape_cdata(text: str) -> str: ... + +class TableStyle: + border: str | None + backgroundcolor: str | None + def __init__(self, border: str | None = None, backgroundcolor: str | None = None) -> None: ... + def get_border_(self): ... + def set_border_(self, border) -> None: ... + border_: Incomplete + def get_backgroundcolor_(self): ... + def set_backgroundcolor_(self, backgroundcolor) -> None: ... + backgroundcolor_: Incomplete + +BUILTIN_DEFAULT_TABLE_STYLE: TableStyle + +class ListLevel: + level: int + sibling_level: bool + nested_level: bool + def __init__(self, level: int, sibling_level: bool = True, nested_level: bool = True) -> None: ... + def get_sibling(self) -> bool: ... + def set_sibling(self, sibling_level: bool) -> None: ... + def get_nested(self) -> bool: ... + def set_nested(self, nested_level: bool) -> None: ... + def get_level(self) -> int: ... + def set_level(self, level: int) -> None: ... + +class Writer(writers.Writer[bytes]): + MIME_TYPE: ClassVar[str] + EXTENSION: ClassVar[str] + default_stylesheet: ClassVar[str] + default_stylesheet_path: ClassVar[str] + default_template: ClassVar[str] + default_template_path: ClassVar[str] + translator_class: type[ODFTranslator] + settings: Values + visitor: ODFTranslator + def assemble_my_parts(self) -> None: ... + def update_stylesheet(self, stylesheet_root, language_code: str | None, region_code: str | None): ... + def write_zip_str(self, zfile: zipfile.ZipFile, name: str, bytes: str | SizedBuffer, compress_type: int = 8) -> None: ... + def store_embedded_files(self, zfile: zipfile.ZipFile) -> None: ... + def get_settings(self) -> bytes: ... + def get_stylesheet(self) -> bytes: ... + def copy_from_stylesheet(self, outzipfile: zipfile.ZipFile) -> None: ... + def assemble_parts(self) -> None: ... + def create_manifest(self) -> str: ... + def create_meta(self) -> str: ... + +class ODFTranslator(nodes.GenericNodeVisitor): + used_styles: ClassVar[tuple[str, ...]] + settings: Values + language_code: str + language: _LanguageModule + format_map: dict[str, str] + section_level: int + section_count: int + content_tree: ElementTree.ElementTree + current_element: _ElementInterfaceWrapper + automatic_styles: _ElementInterfaceWrapper + body_text_element: _ElementInterfaceWrapper + paragraph_style_stack: list[str] + list_style_stack: list[str] + table_count: int + column_count: int + trace_level: int + optiontablestyles_generated: bool + field_name: Incomplete + field_element: Incomplete + title: str | None + image_count: int + image_style_count: int + image_dict: dict[str, tuple[str, str]] + embedded_file_list: list[Incomplete] + syntaxhighlighting: int + syntaxhighlight_lexer: str + header_content: list[Incomplete] + footer_content: list[Incomplete] + in_header: bool + in_footer: bool + blockstyle: str + in_table_of_contents: bool + table_of_content_index_body: _ElementInterfaceWrapper | None + list_level: int + def_list_level: int + footnote_ref_dict: dict[Incomplete, _ElementInterfaceWrapper] + footnote_list: list[tuple[Incomplete, Incomplete]] + footnote_chars_idx: int + footnote_level: int + pending_ids: Incomplete + in_paragraph: bool + found_doc_title: bool + bumped_list_level_stack: list[ListLevel] + meta_dict: dict[Incomplete, Incomplete] + line_block_level: int + line_indent_level: int + citation_id: Incomplete + style_index: int + str_stylesheet: str | bytes + str_stylesheetcontent: str | bytes | None + dom_stylesheet: ElementTree.Element | None + table_styles: dict[str, TableStyle] | None + in_citation: bool + inline_style_count_stack: list[int] + def get_str_stylesheet(self) -> str | bytes: ... + dom_stylesheetcontent: ElementTree.Element + def retrieve_styles(self, extension: str) -> None: ... + def extract_table_styles(self, styles_str: str | ReadableBuffer) -> dict[str, TableStyle]: ... + def get_property(self, stylenode: ElementTree.Element) -> str | None: ... + def add_doc_title(self) -> None: ... + def find_first_text_p(self, el: _ElementInterfaceWrapper) -> _ElementInterfaceWrapper | None: ... + def attach_page_style(self, el: _ElementInterfaceWrapper) -> None: ... + def rststyle(self, name: str, parameters: tuple[object, ...] = ()) -> str: ... + def generate_content_element(self, root: _ElementInterfaceWrapper) -> _ElementInterfaceWrapper: ... + def setup_page(self): ... + def get_dom_stylesheet(self) -> ElementTree.Element | None: ... + def setup_paper(self, root_el) -> None: ... + def add_header_footer(self, root_el) -> None: ... + code_none: int + code_field: int + code_text: int + field_pat: re.Pattern[str] + def create_custom_headfoot(self, parent: _ElementInterfaceWrapper, text: str, style_name, automatic_styles) -> None: ... + def make_field_element( + self, parent: _ElementInterfaceWrapper, text: str, style_name, automatic_styles + ) -> _ElementInterfaceWrapper | None: ... + def split_field_specifiers_iter(self, text: str) -> Generator[tuple[int, str]]: ... + def astext(self) -> str: ... + def content_astext(self) -> str: ... + def set_title(self, title: str) -> None: ... + def get_title(self) -> str | None: ... + def set_embedded_file_list(self, embedded_file_list) -> None: ... + def get_embedded_file_list(self): ... + def get_meta_dict(self): ... + def process_footnotes(self) -> None: ... + def append_child( + self, tag: str, attrib: dict[str, str] | None = None, parent: _ElementInterfaceWrapper | None = None + ) -> _ElementInterfaceWrapper: ... + def append_p(self, style: str, text: str | None = None) -> _ElementInterfaceWrapper: ... + def append_pending_ids(self, el: _ElementInterfaceWrapper) -> None: ... + def set_current_element(self, el: _ElementInterfaceWrapper) -> None: ... + def set_to_parent(self) -> None: ... + def generate_labeled_block(self, node: nodes.Node, label: str) -> _ElementInterfaceWrapper: ... + def generate_labeled_line(self, node: nodes.Node, label: str) -> _ElementInterfaceWrapper: ... + def encode(self, text: str) -> str: ... + def dispatch_visit(self, node: nodes.Element) -> None: ... # type: ignore[override] + def handle_basic_atts(self, node: nodes.Element) -> None: ... + def default_visit(self, node: nodes.Element) -> None: ... # type: ignore[override] + def default_departure(self, node: nodes.Element) -> None: ... # type: ignore[override] + def visit_Text(self, node: nodes.Text) -> None: ... + def depart_Text(self, node: nodes.Text) -> None: ... + def visit_address(self, node: nodes.address) -> None: ... + def depart_address(self, node: nodes.address) -> None: ... + def visit_author(self, node: nodes.author) -> None: ... + def depart_author(self, node: nodes.author) -> None: ... + def visit_authors(self, node: nodes.authors) -> None: ... + def depart_authors(self, node: nodes.authors) -> None: ... + def visit_contact(self, node: nodes.contact) -> None: ... + def depart_contact(self, node: nodes.contact) -> None: ... + def visit_copyright(self, node: nodes.copyright) -> None: ... + def depart_copyright(self, node: nodes.copyright) -> None: ... + def visit_date(self, node: nodes.date) -> None: ... + def depart_date(self, node: nodes.date) -> None: ... + def visit_organization(self, node: nodes.organization) -> None: ... + def depart_organization(self, node: nodes.organization) -> None: ... + def visit_status(self, node: nodes.status) -> None: ... + def depart_status(self, node: nodes.status) -> None: ... + def visit_revision(self, node: nodes.revision) -> None: ... + def depart_revision(self, node: nodes.revision) -> None: ... + def visit_version(self, node: nodes.version) -> None: ... + def depart_version(self, node: nodes.version) -> None: ... + def visit_attribution(self, node: nodes.attribution) -> None: ... + def depart_attribution(self, node: nodes.attribution) -> None: ... + def visit_block_quote(self, node: nodes.block_quote) -> None: ... + def depart_block_quote(self, node: nodes.block_quote) -> None: ... + def visit_bullet_list(self, node: nodes.bullet_list) -> None: ... + def depart_bullet_list(self, node: nodes.bullet_list) -> None: ... + def visit_caption(self, node: nodes.caption) -> None: ... + def depart_caption(self, node: nodes.caption) -> None: ... + def visit_comment(self, node: nodes.comment) -> None: ... + def depart_comment(self, node: nodes.comment) -> None: ... + def visit_compound(self, node: nodes.compound) -> None: ... + def depart_compound(self, node: nodes.compound) -> None: ... + def visit_container(self, node: nodes.container) -> None: ... + def depart_container(self, node: nodes.container) -> None: ... + def visit_decoration(self, node: nodes.decoration) -> None: ... + def depart_decoration(self, node: nodes.decoration) -> None: ... + def visit_definition_list(self, node: nodes.definition_list) -> None: ... + def depart_definition_list(self, node: nodes.definition_list) -> None: ... + def visit_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def depart_definition_list_item(self, node: nodes.definition_list_item) -> None: ... + def visit_term(self, node: nodes.term) -> None: ... + def depart_term(self, node: nodes.term) -> None: ... + def visit_definition(self, node: nodes.definition) -> None: ... + def depart_definition(self, node: nodes.definition) -> None: ... + def visit_classifier(self, node: nodes.classifier) -> None: ... + def depart_classifier(self, node: nodes.classifier) -> None: ... + def visit_document(self, node: nodes.document) -> None: ... + def depart_document(self, node: nodes.document) -> None: ... + def visit_docinfo(self, node: nodes.docinfo) -> None: ... + def depart_docinfo(self, node: nodes.docinfo) -> None: ... + def visit_emphasis(self, node: nodes.emphasis) -> None: ... + def depart_emphasis(self, node: nodes.emphasis) -> None: ... + def visit_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def depart_enumerated_list(self, node: nodes.enumerated_list) -> None: ... + def visit_list_item(self, node: nodes.list_item) -> None: ... + def depart_list_item(self, node: nodes.list_item) -> None: ... + def visit_header(self, node: nodes.header) -> None: ... + def depart_header(self, node: nodes.header) -> None: ... + def visit_footer(self, node: nodes.footer) -> None: ... + def depart_footer(self, node: nodes.footer) -> None: ... + def visit_field(self, node: nodes.field) -> None: ... + def depart_field(self, node: nodes.field) -> None: ... + def visit_field_list(self, node: nodes.field_list) -> None: ... + def depart_field_list(self, node: nodes.field_list) -> None: ... + def visit_field_name(self, node: nodes.field_name) -> None: ... + def depart_field_name(self, node: nodes.field_name) -> None: ... + def visit_field_body(self, node: nodes.field_body) -> None: ... + def depart_field_body(self, node: nodes.field_body) -> None: ... + def visit_figure(self, node: nodes.figure) -> None: ... + def depart_figure(self, node: nodes.figure) -> None: ... + save_footnote_current: _ElementInterfaceWrapper + def visit_footnote(self, node: nodes.footnote) -> None: ... + def depart_footnote(self, node: nodes.footnote) -> None: ... + footnote_chars: list[str] + def visit_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def depart_footnote_reference(self, node: nodes.footnote_reference) -> None: ... + def visit_citation(self, node: nodes.citation) -> None: ... + def depart_citation(self, node: nodes.citation) -> None: ... + def visit_citation_reference(self, node: nodes.citation_reference) -> None: ... + def depart_citation_reference(self, node: nodes.citation_reference) -> None: ... + def visit_label(self, node: nodes.label) -> None: ... + def depart_label(self, node: nodes.label) -> None: ... + def visit_generated(self, node: nodes.generated) -> None: ... + def depart_generated(self, node: nodes.generated) -> None: ... + def check_file_exists(self, path: FileDescriptorOrPath) -> Literal[1, 0]: ... + def visit_image(self, node: nodes.image) -> None: ... + def depart_image(self, node: nodes.image) -> None: ... + def get_image_width_height(self, node: nodes.image, attr: str) -> tuple[float | None, Literal["%", "cm"] | None]: ... + def convert_to_cm(self, size: str) -> tuple[float, Literal["cm"]]: ... + def get_image_scale(self, node: nodes.image) -> float: ... + def get_image_scaled_width_height(self, node: nodes.image, source) -> tuple[Incomplete, Incomplete]: ... + def get_page_width(self) -> float: ... + def generate_figure(self, node: nodes.image, source, destination, current_element): ... + def generate_image( + self, node: nodes.image, source, destination, current_element, frame_attrs: dict[str, str] | None = None + ): ... + def is_in_table(self, node: nodes.Node) -> bool: ... + def visit_legend(self, node: nodes.legend) -> None: ... + def depart_legend(self, node: nodes.legend) -> None: ... + def visit_line_block(self, node: nodes.line_block) -> None: ... + def depart_line_block(self, node: nodes.line_block) -> None: ... + def visit_line(self, node: nodes.line) -> None: ... + def depart_line(self, node: nodes.line) -> None: ... + def visit_literal(self, node: nodes.literal) -> None: ... + def depart_literal(self, node: nodes.literal) -> None: ... + def visit_inline(self, node: nodes.inline) -> None: ... + def depart_inline(self, node: nodes.inline) -> None: ... + def fill_line(self, line: str) -> str: ... + def fill_func1(self, matchobj: re.Match[str]) -> str: ... + def fill_func2(self, matchobj: re.Match[str]) -> str: ... + def visit_literal_block(self, node: nodes.literal_block) -> None: ... + def depart_literal_block(self, node: nodes.literal_block) -> None: ... + def visit_doctest_block(self, node: nodes.doctest_block) -> None: ... + def depart_doctest_block(self, node: nodes.doctest_block) -> None: ... + def visit_math(self, node: nodes.math) -> None: ... + def depart_math(self, node: nodes.math) -> None: ... + def visit_math_block(self, node: nodes.math_block) -> None: ... + def depart_math_block(self, node: nodes.math_block) -> None: ... + def visit_meta(self, node: nodes.meta) -> None: ... + def depart_meta(self, node: nodes.meta) -> None: ... + def visit_option_list(self, node: nodes.option_list) -> None: ... + def depart_option_list(self, node: nodes.option_list) -> None: ... + def visit_option_list_item(self, node: nodes.option_list_item) -> None: ... + def depart_option_list_item(self, node: nodes.option_list_item) -> None: ... + def visit_option_group(self, node: nodes.option_group) -> None: ... + def depart_option_group(self, node: nodes.option_group) -> None: ... + def visit_option(self, node: nodes.option) -> None: ... + def depart_option(self, node: nodes.option) -> None: ... + def visit_option_string(self, node: nodes.option_string) -> None: ... + def depart_option_string(self, node: nodes.option_string) -> None: ... + def visit_option_argument(self, node: nodes.option_argument) -> None: ... + def depart_option_argument(self, node: nodes.option_argument) -> None: ... + def visit_description(self, node: nodes.description) -> None: ... + def depart_description(self, node: nodes.description) -> None: ... + def visit_paragraph(self, node: nodes.paragraph) -> None: ... + def depart_paragraph(self, node: nodes.paragraph) -> None: ... + def visit_problematic(self, node: nodes.problematic) -> None: ... + def depart_problematic(self, node: nodes.problematic) -> None: ... + def visit_raw(self, node: nodes.raw) -> None: ... + def depart_raw(self, node: nodes.raw) -> None: ... + def visit_reference(self, node: nodes.reference) -> None: ... + def depart_reference(self, node: nodes.reference) -> None: ... + def visit_rubric(self, node: nodes.rubric) -> None: ... + def depart_rubric(self, node: nodes.rubric) -> None: ... + def visit_section(self, node: nodes.section, move_ids: int = 1) -> None: ... + def depart_section(self, node: nodes.section) -> None: ... + def visit_strong(self, node: nodes.strong) -> None: ... + def depart_strong(self, node: nodes.strong) -> None: ... + def visit_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def depart_substitution_definition(self, node: nodes.substitution_definition) -> None: ... + def visit_system_message(self, node: nodes.system_message) -> None: ... + def depart_system_message(self, node: nodes.system_message) -> None: ... + def get_table_style(self, node) -> TableStyle: ... + current_table_style: _ElementInterfaceWrapper + table_width: float + def visit_table(self, node: nodes.table) -> None: ... + def depart_table(self, node: nodes.table) -> None: ... + def visit_tgroup(self, node: nodes.tgroup) -> None: ... + def depart_tgroup(self, node: nodes.tgroup) -> None: ... + def visit_colspec(self, node: nodes.colspec) -> None: ... + def depart_colspec(self, node: nodes.colspec) -> None: ... + in_thead: bool + def visit_thead(self, node: nodes.thead) -> None: ... + def depart_thead(self, node: nodes.thead) -> None: ... + def visit_row(self, node: nodes.row) -> None: ... + def depart_row(self, node: nodes.row) -> None: ... + def visit_entry(self, node: nodes.entry) -> None: ... + def depart_entry(self, node: nodes.entry) -> None: ... + def visit_tbody(self, node: nodes.tbody) -> None: ... + def depart_tbody(self, node: nodes.tbody) -> None: ... + def visit_target(self, node: nodes.target) -> None: ... + def depart_target(self, node: nodes.target) -> None: ... + def visit_title(self, node: nodes.title, move_ids: int = 1, title_type: str = "title") -> None: ... + def depart_title(self, node: nodes.title) -> None: ... + def visit_subtitle(self, node: nodes.subtitle, move_ids: int = 1) -> None: ... + def depart_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_title_reference(self, node: nodes.title_reference) -> None: ... + def depart_title_reference(self, node: nodes.title_reference) -> None: ... + def generate_table_of_content_entry_template(self, el1) -> None: ... + def find_title_label(self, node, class_type, label_key): ... + save_current_element: Incomplete + def visit_topic(self, node: nodes.topic) -> None: ... + def depart_topic(self, node: nodes.topic) -> None: ... + def update_toc_page_numbers(self, el) -> None: ... + def update_toc_collect(self, el, level, collection) -> None: ... + def update_toc_add_numbers(self, collection) -> None: ... + def visit_transition(self, node: nodes.transition) -> None: ... + def depart_transition(self, node: nodes.transition) -> None: ... + def visit_warning(self, node: nodes.warning) -> None: ... + def depart_warning(self, node: nodes.warning) -> None: ... + def visit_attention(self, node: nodes.attention) -> None: ... + def depart_attention(self, node: nodes.attention) -> None: ... + def visit_caution(self, node: nodes.caution) -> None: ... + def depart_caution(self, node: nodes.caution) -> None: ... + def visit_danger(self, node: nodes.danger) -> None: ... + def depart_danger(self, node: nodes.danger) -> None: ... + def visit_error(self, node: nodes.error) -> None: ... + def depart_error(self, node: nodes.error) -> None: ... + def visit_hint(self, node: nodes.hint) -> None: ... + def depart_hint(self, node: nodes.hint) -> None: ... + def visit_important(self, node: nodes.important) -> None: ... + def depart_important(self, node: nodes.important) -> None: ... + def visit_note(self, node: nodes.note) -> None: ... + def depart_note(self, node: nodes.note) -> None: ... + def visit_tip(self, node: nodes.tip) -> None: ... + def depart_tip(self, node: nodes.tip) -> None: ... + def visit_admonition(self, node: nodes.admonition) -> None: ... + def depart_admonition(self, node: nodes.admonition) -> None: ... + def generate_admonition(self, node: nodes.Node, label: str, title: str | None = None) -> None: ... + def visit_subscript(self, node: nodes.subscript) -> None: ... + def depart_subscript(self, node: nodes.subscript) -> None: ... + def visit_superscript(self, node: nodes.superscript) -> None: ... + def depart_superscript(self, node: nodes.superscript) -> None: ... + def visit_abbreviation(self, node: nodes.abbreviation) -> None: ... + def depart_abbreviation(self, node: nodes.abbreviation) -> None: ... + def visit_acronym(self, node: nodes.acronym) -> None: ... + def depart_acronym(self, node: nodes.acronym) -> None: ... + def visit_sidebar(self, node: nodes.sidebar) -> None: ... + def depart_sidebar(self, node: nodes.sidebar) -> None: ... + +# TODO: readers is incomplete +# from docutils.readers import standalone +# class Reader(standalone.Reader): ... diff --git a/stubs/docutils/docutils/writers/odf_odt/prepstyles.pyi b/stubs/docutils/docutils/writers/odf_odt/prepstyles.pyi new file mode 100644 index 000000000000..d0fbc5009ca5 --- /dev/null +++ b/stubs/docutils/docutils/writers/odf_odt/prepstyles.pyi @@ -0,0 +1,7 @@ +from _typeshed import StrPath +from typing import IO + +NAMESPACES: dict[str, str] + +def prepstyle(filename: StrPath | IO[bytes]) -> None: ... +def main() -> None: ... diff --git a/stubs/docutils/docutils/writers/odf_odt/pygmentsformatter.pyi b/stubs/docutils/docutils/writers/odf_odt/pygmentsformatter.pyi new file mode 100644 index 000000000000..10293d3fb075 --- /dev/null +++ b/stubs/docutils/docutils/writers/odf_odt/pygmentsformatter.pyi @@ -0,0 +1,31 @@ +from _typeshed import Incomplete +from typing import Any + +# Formatter[str] from types-pygments +class _Formatter: + name: Any + aliases: Any + filenames: Any + unicodeoutput: bool + style: Any + full: Any + title: Any + encoding: Any + options: Any + def __init__(self, *, encoding: None = None, outencoding: None = None, **options) -> None: ... + def get_style_defs(self, arg: str = ""): ... + def format(self, tokensource, outfile): ... + +class OdtPygmentsFormatter(_Formatter): + rststyle_function: Incomplete + escape_function: Incomplete + def __init__(self, rststyle_function, escape_function) -> None: ... + def rststyle(self, name, parameters=()): ... + def get_style_defs(self, arg: str = ""): ... + def format(self, tokensource, outfile): ... + +class OdtPygmentsProgFormatter(OdtPygmentsFormatter): + def format(self, tokensource, outfile) -> None: ... + +class OdtPygmentsLaTeXFormatter(OdtPygmentsFormatter): + def format(self, tokensource, outfile) -> None: ... diff --git a/stubs/docutils/docutils/writers/pep_html.pyi b/stubs/docutils/docutils/writers/pep_html.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/pep_html.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/pep_html/__init__.pyi b/stubs/docutils/docutils/writers/pep_html/__init__.pyi new file mode 100644 index 000000000000..bdefd546ad4e --- /dev/null +++ b/stubs/docutils/docutils/writers/pep_html/__init__.pyi @@ -0,0 +1,20 @@ +from typing import ClassVar, Final + +from docutils.writers import html4css1 + +__docformat__: Final = "reStructuredText" + +class Writer(html4css1.Writer): + default_stylesheet: ClassVar[str] + default_stylesheet_path: ClassVar[str] + default_template_path: ClassVar[str] + settings_default_overrides: ClassVar[dict[str, str]] + relative_path_settings: ClassVar[tuple[str, ...]] + config_section_dependencies: ClassVar[tuple[str, ...]] + translator_class: type[HTMLTranslator] + pepnum: str + title: str + def interpolation_dict(self) -> dict[str, str | int]: ... # type: ignore[override] + +class HTMLTranslator(html4css1.HTMLTranslator): + def depart_field_list(self, node) -> None: ... diff --git a/stubs/docutils/docutils/writers/pseudoxml.pyi b/stubs/docutils/docutils/writers/pseudoxml.pyi index 5b0f74feb261..2372ffc0b509 100644 --- a/stubs/docutils/docutils/writers/pseudoxml.pyi +++ b/stubs/docutils/docutils/writers/pseudoxml.pyi @@ -1 +1,9 @@ -def __getattr__(name: str): ... # incomplete module +from typing import ClassVar, Final + +from docutils import writers + +__docformat__: Final = "reStructuredText" + +class Writer(writers.Writer[str]): + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str, ...]] diff --git a/stubs/docutils/docutils/writers/s5_html.pyi b/stubs/docutils/docutils/writers/s5_html.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/s5_html.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/s5_html/__init__.pyi b/stubs/docutils/docutils/writers/s5_html/__init__.pyi new file mode 100644 index 000000000000..fe0f36f15b47 --- /dev/null +++ b/stubs/docutils/docutils/writers/s5_html/__init__.pyi @@ -0,0 +1,42 @@ +import re +from _typeshed import StrPath +from typing import ClassVar, Final + +from docutils import nodes +from docutils.writers import html4css1 + +__docformat__: Final = "reStructuredText" +themes_dir_path: Final[str] + +def find_theme(name: StrPath) -> str: ... + +class Writer(html4css1.Writer): + settings_default_overrides: ClassVar[dict[str, int]] + config_section_dependencies: ClassVar[tuple[str, ...]] + translator_class: type[S5HTMLTranslator] + +class S5HTMLTranslator(html4css1.HTMLTranslator): + s5_stylesheet_template: ClassVar[str] + disable_current_slide: ClassVar[str] + layout_template: ClassVar[str] + default_theme: ClassVar[str] + base_theme_file: ClassVar[str] + direct_theme_files: ClassVar[tuple[str, ...]] + indirect_theme_files: ClassVar[tuple[str, ...]] + required_theme_files: ClassVar[tuple[str, ...]] + theme_file_path: str | None + s5_footer: list[str] + s5_header: list[str] + section_count: int + theme_files_copied: dict[str, bool] + def __init__(self, document: nodes.document, /) -> None: ... + def setup_theme(self) -> None: ... + def copy_theme(self) -> None: ... + files_to_skip_pattern: re.Pattern[str] + def copy_file(self, name, source_dir, dest_dir): ... + def depart_document(self, node: nodes.document) -> None: ... + def depart_footer(self, node: nodes.footer) -> None: ... + def depart_header(self, node: nodes.header) -> None: ... + def visit_section(self, node: nodes.section) -> None: ... + def visit_subtitle(self, node: nodes.subtitle) -> None: ... + def visit_title(self, node: nodes.title) -> None: ... diff --git a/stubs/docutils/docutils/writers/xetex.pyi b/stubs/docutils/docutils/writers/xetex.pyi deleted file mode 100644 index 5b0f74feb261..000000000000 --- a/stubs/docutils/docutils/writers/xetex.pyi +++ /dev/null @@ -1 +0,0 @@ -def __getattr__(name: str): ... # incomplete module diff --git a/stubs/docutils/docutils/writers/xetex/__init__.pyi b/stubs/docutils/docutils/writers/xetex/__init__.pyi new file mode 100644 index 000000000000..345b8183de88 --- /dev/null +++ b/stubs/docutils/docutils/writers/xetex/__init__.pyi @@ -0,0 +1,28 @@ +from typing import ClassVar, Final + +from docutils import nodes +from docutils.utils import Reporter +from docutils.writers import latex2e + +__docformat__: Final = "reStructuredText" + +class Writer(latex2e.Writer): + default_template: ClassVar[str] + default_preamble: ClassVar[str] + config_section: ClassVar[str] + config_section_dependencies: ClassVar[tuple[str, ...]] + translator_class: type[XeLaTeXTranslator] + +class Babel(latex2e.Babel): + language_code: str + reporter: Reporter + language: str + warn_msg: str # type: ignore[misc] + quote_index: int + quotes: tuple[str, ...] + literal_double_quote: str + def __init__(self, language_code: str, reporter: Reporter) -> None: ... + +class XeLaTeXTranslator(latex2e.LaTeXTranslator): + is_xetex: bool # type: ignore[misc] + def __init__(self, document: nodes.document) -> None: ...