Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion stubs/docutils/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ docutils.nodes.NodeVisitor.visit_\w+ # Methods are discovered dynamically on co
docutils.nodes.Text.__new__
docutils.parsers.recommonmark_wrapper
docutils.parsers.rst.directives.admonitions.BaseAdmonition.node_class # must be overridden by base classes (pseudo-abstract)
docutils.parsers.rst.directives.misc.MetaBody.__getattr__
docutils.statemachine.State.nested_sm # is initialised in __init__
docutils.statemachine.State.nested_sm_kwargs # is initialised in __init__
docutils.statemachine.ViewList.__iter__ # doesn't exist at runtime, but the class is iterable due to __getitem__
Expand Down
2 changes: 1 addition & 1 deletion stubs/docutils/docutils/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class ApplicationError(Exception): ...
class DataError(ApplicationError): ...

class SettingsSpec:
settings_spec: ClassVar[tuple[Any, ...]]
settings_spec: ClassVar[tuple[Any, ...]] # Mixed tuple structure; uses Any for flexibility in nested option definitions
settings_defaults: ClassVar[dict[Any, Any] | None]
settings_default_overrides: ClassVar[dict[Any, Any] | None]
relative_path_settings: ClassVar[tuple[Any, ...]]
Expand Down
14 changes: 8 additions & 6 deletions stubs/docutils/docutils/parsers/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
from typing import Any, ClassVar
from typing import ClassVar, Final

from docutils import Component
from docutils.nodes import document as _document
from docutils.nodes import _Document

__docformat__: Final = "reStructuredText"

class Parser(Component):
component_type: ClassVar[str]
config_section: ClassVar[str]
inputstring: Any # defined after call to setup_parse()
document: Any # defined after call to setup_parse()
def parse(self, inputstring: str, document: _document) -> None: ...
def setup_parse(self, inputstring: str, document: _document) -> None: ...
inputstring: str # defined after call to setup_parse()
document: _Document # defined after call to setup_parse()
def parse(self, inputstring: str, document: _Document) -> None: ...
def setup_parse(self, inputstring: str, document: _Document) -> None: ...
def finish_parse(self) -> None: ...

_parser_aliases: dict[str, str]
Expand Down
1 change: 1 addition & 0 deletions stubs/docutils/docutils/parsers/null.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ from typing import ClassVar
from docutils import parsers

class Parser(parsers.Parser):
supported: ClassVar[tuple[str, ...]]
config_section_dependencies: ClassVar[tuple[str, ...]]
51 changes: 50 additions & 1 deletion stubs/docutils/docutils/parsers/recommonmark_wrapper.pyi
Original file line number Diff line number Diff line change
@@ -1 +1,50 @@
def __getattr__(name: str): ... # incomplete module
from types import ModuleType
from typing import ClassVar

from docutils import nodes
from docutils.transforms import Transform

class pending_xref(nodes.Inline, nodes.Element): ...

sphinx: ModuleType

def is_literal(node: nodes.Node) -> bool: ...

class _CommonMarkParser:
default_config: ClassVar[dict[str, None]]
def __init__(self) -> None: ...
def convert_ast(self, ast): ...
def default_visit(self, mdnode): ...
def default_depart(self, mdnode): ...
def visit_heading(self, mdnode): ...
def depart_heading(self, _): ...
def visit_text(self, mdnode): ...
def visit_softbreak(self, _): ...
def visit_linebreak(self, _): ...
def visit_paragraph(self, mdnode): ...
def visit_emph(self, _): ...
def visit_strong(self, _): ...
def visit_code(self, mdnode): ...
def visit_link(self, mdnode): ...
def depart_link(self, mdnode): ...
def visit_image(self, mdnode): ...
def visit_list(self, mdnode): ...
def visit_item(self, mdnode): ...
def visit_code_block(self, mdnode): ...
def visit_block_quote(self, mdnode): ...
def visit_html(self, mdnode): ...
def visit_html_inline(self, mdnode): ...
def visit_html_block(self, mdnode): ...
def visit_thematic_break(self, _): ...
def setup_sections(self): ...
def add_section(self, section, level): ...
def is_section_level(self, level, section): ...

class Parser(_CommonMarkParser):
supported: ClassVar[tuple[str, ...]]
config_section: ClassVar[str]
config_section_dependencies: ClassVar[tuple[str, ...]]
def get_transforms(self) -> list[type[Transform]]: ...
def parse(self, inputstring: str, document: nodes.document) -> None: ...
def visit_document(self, node) -> None: ...
def visit_text(self, mdnode) -> None: ...
14 changes: 9 additions & 5 deletions stubs/docutils/docutils/parsers/rst/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
from _typeshed import Incomplete
from collections.abc import Callable, Sequence
from typing import Any, ClassVar, Literal
from typing import Any, ClassVar, Final, Literal
from typing_extensions import TypeAlias

from docutils import nodes, parsers
from docutils.parsers.rst.states import Inliner, RSTState, RSTStateMachine
from docutils.statemachine import StringList
from docutils.transforms import Transform
from docutils.utils import Reporter

__docformat__: Final = "reStructuredText"

class Parser(parsers.Parser):
settings_spec: ClassVar[Incomplete]
config_section_dependencies: ClassVar[tuple[str, ...]]
initial_state: Literal["Body", "RFC2822Body"]
state_classes: Sequence[type[RSTState]]
inliner: Inliner | None
statemachine: RSTStateMachine
def __init__(self, rfc2822: bool = False, inliner: Inliner | None = None) -> None: ...
def get_transforms(self) -> list[type[Transform]]: ...
def parse(self, inputstring: str, document: nodes.document) -> None: ...
Expand All @@ -27,22 +30,23 @@ class Directive:
required_arguments: ClassVar[int]
optional_arguments: ClassVar[int]
final_argument_whitespace: ClassVar[bool]
option_spec: ClassVar[dict[str, Callable[[str], Any]] | None]
option_spec: ClassVar[dict[str, Callable[[str], Incomplete]] | None]
has_content: ClassVar[bool]
name: str
arguments: list[str]
options: dict[str, Any]
options: dict[str, Incomplete]
content: StringList
lineno: int
content_offset: int
block_text: str
state: RSTState
state_machine: RSTStateMachine = ...
reporter: Reporter
def __init__(
self,
name: str,
arguments: list[str],
options: dict[str, Any],
options: dict[str, Incomplete],
content: StringList,
lineno: int,
content_offset: int,
Expand Down
8 changes: 5 additions & 3 deletions stubs/docutils/docutils/parsers/rst/directives/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from collections.abc import Callable, Container, Iterable, Sequence
from re import Pattern
from typing import Literal
from typing import Final, Literal

from docutils.languages import _LanguageModule
from docutils.nodes import document, system_message
from docutils.parsers import Parser
from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

def register_directive(name: str, directive: type[Directive]) -> None: ...
def directive(
directive_name: str, language_module: _LanguageModule, document: document
Expand All @@ -19,14 +21,14 @@ def uri(argument: str) -> str: ...
def nonnegative_int(argument: str) -> int: ...
def percentage(argument: str) -> int: ...

length_units: list[str]
length_units: Final[list[str]]

def get_measure(argument: str, units: Iterable[str]) -> str: ...
def length_or_unitless(argument: str) -> str: ...
def length_or_percentage_or_unitless(argument: str, default: str = "") -> str: ...
def class_option(argument: str) -> list[str]: ...

unicode_pattern: Pattern[str]
unicode_pattern: Final[Pattern[str]]

def unicode_code(code: str) -> str: ...
def single_char_or_unicode(argument: str) -> str: ...
Expand Down
43 changes: 33 additions & 10 deletions stubs/docutils/docutils/parsers/rst/directives/admonitions.pyi
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
from typing import Final

from docutils import nodes
from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

class BaseAdmonition(Directive):
node_class: type[nodes.Admonition] # Subclasses must set this to the appropriate admonition node class.

class Admonition(BaseAdmonition): ...
class Attention(BaseAdmonition): ...
class Caution(BaseAdmonition): ...
class Danger(BaseAdmonition): ...
class Error(BaseAdmonition): ...
class Hint(BaseAdmonition): ...
class Important(BaseAdmonition): ...
class Note(BaseAdmonition): ...
class Tip(BaseAdmonition): ...
class Warning(BaseAdmonition): ...
class Admonition(BaseAdmonition):
node_class: type[nodes.admonition]

class Attention(BaseAdmonition):
node_class: type[nodes.attention]

class Caution(BaseAdmonition):
node_class: type[nodes.caution]

class Danger(BaseAdmonition):
node_class: type[nodes.danger]

class Error(BaseAdmonition):
node_class: type[nodes.error]

class Hint(BaseAdmonition):
node_class: type[nodes.hint]

class Important(BaseAdmonition):
node_class: type[nodes.important]

class Note(BaseAdmonition):
node_class: type[nodes.note]

class Tip(BaseAdmonition):
node_class: type[nodes.tip]

class Warning(BaseAdmonition):
node_class: type[nodes.warning]
65 changes: 64 additions & 1 deletion stubs/docutils/docutils/parsers/rst/directives/body.pyi
Original file line number Diff line number Diff line change
@@ -1 +1,64 @@
def __getattr__(name: str): ... # incomplete module
from collections.abc import Callable
from typing import ClassVar, Final
from typing_extensions import TypeAlias

from docutils import nodes
from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

_DirectiveFn: TypeAlias = Callable[[str], str | list[str]]

class BasePseudoSection(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
node_class: ClassVar[type[nodes.Node] | None]
def run(self): ...

class Topic(BasePseudoSection):
node_class: ClassVar[type[nodes.Node]]

class Sidebar(BasePseudoSection):
node_class: ClassVar[type[nodes.Node]]
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class LineBlock(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class ParsedLiteral(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class CodeBlock(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class MathBlock(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class Rubric(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class BlockQuote(Directive):
classes: ClassVar[list[str]]
def run(self): ...

class Epigraph(BlockQuote):
classes: ClassVar[list[str]]

class Highlights(BlockQuote):
classes: ClassVar[list[str]]

class PullQuote(BlockQuote):
classes: ClassVar[list[str]]

class Compound(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...

class Container(Directive):
option_spec: ClassVar[dict[str, _DirectiveFn]]
def run(self): ...
6 changes: 5 additions & 1 deletion stubs/docutils/docutils/parsers/rst/directives/html.pyi
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
def __getattr__(name: str): ... # incomplete module
from typing import Final

from docutils.parsers.rst.directives.misc import Meta as Meta, MetaBody as MetaBody

__docformat__: Final = "reStructuredText"
19 changes: 18 additions & 1 deletion stubs/docutils/docutils/parsers/rst/directives/images.pyi
Original file line number Diff line number Diff line change
@@ -1 +1,18 @@
def __getattr__(name: str): ... # incomplete module
from _typeshed import Incomplete
from typing import Final

from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

class Image(Directive):
align_h_values: Incomplete
align_v_values: Incomplete
align_values: Incomplete
loading_values: Incomplete
def align(argument): ...
def loading(argument): ...

class Figure(Image):
def align(argument): ...
def figwidth_value(argument): ...
15 changes: 8 additions & 7 deletions stubs/docutils/docutils/parsers/rst/directives/misc.pyi
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from _typeshed import Incomplete
from pathlib import Path
from re import Pattern
from typing import ClassVar
from re import Match, Pattern
from typing import ClassVar, Final

from docutils.parsers.rst import Directive
from docutils.parsers.rst.states import SpecializedBody

__docformat__: str
__docformat__: Final = "reStructuredText"

class Include(Directive):
standard_include_path: Path
Expand All @@ -25,9 +24,11 @@ class Role(Directive):
class DefaultRole(Directive): ...
class Title(Directive): ...

# SpecializedBody has not yet been stubbed
class MetaBody(SpecializedBody): # pyright: ignore[reportUntypedBaseClass]
def __getattr__(self, name: str) -> Incomplete: ...
class MetaBody(SpecializedBody):
def field_marker( # type: ignore[override]
self, match: Match[str], context: list[str], next_state: str | None
) -> tuple[list[str], str | None, list[str]]: ...
def parsemeta(self, match: Match[str]): ...

class Meta(Directive):
SMkwargs: ClassVar[dict[str, tuple[MetaBody]]]
Expand Down
4 changes: 4 additions & 0 deletions stubs/docutils/docutils/parsers/rst/directives/parts.pyi
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
from collections.abc import Sequence
from typing import Final

from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

class Contents(Directive):
backlinks_values: Sequence[str]
def backlinks(arg): ...

class Sectnum(Directive): ...
class Header(Directive): ...
Expand Down
4 changes: 4 additions & 0 deletions stubs/docutils/docutils/parsers/rst/directives/references.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
from typing import Final

from docutils.parsers.rst import Directive

__docformat__: Final = "reStructuredText"

class TargetNotes(Directive): ...
Loading