From a482367a61f703a16b25d64a6032ef549ae5ed0f Mon Sep 17 00:00:00 2001 From: "daniel.eades" Date: Sun, 7 Dec 2025 20:11:35 +0000 Subject: [PATCH] address some more type errors --- stubs/docutils/docutils/io.pyi | 7 +++++-- stubs/docutils/docutils/parsers/rst/roles.pyi | 4 ++-- stubs/docutils/docutils/transforms/universal.pyi | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/stubs/docutils/docutils/io.pyi b/stubs/docutils/docutils/io.pyi index 34fad7790bb4..fec7eb89234a 100644 --- a/stubs/docutils/docutils/io.pyi +++ b/stubs/docutils/docutils/io.pyi @@ -8,7 +8,7 @@ from _typeshed import ( Unused, ) from re import Pattern -from typing import IO, Any, ClassVar, Final, Generic, Literal, TextIO, TypeVar +from typing import IO, Any, ClassVar, Final, Generic, Literal, TextIO, TypeVar, overload from typing_extensions import deprecated from docutils import TransformSpec, nodes @@ -108,7 +108,10 @@ class FileOutput(Output): mode=None, ) -> None: ... def open(self) -> None: ... - def write(self, data): ... + @overload + def write(self, data: str) -> str | bytes: ... + @overload + def write(self, data: bytes) -> bytes: ... def close(self) -> None: ... @deprecated("The `BinaryFileOutput` is deprecated by `FileOutput` and will be removed in Docutils 0.24.") diff --git a/stubs/docutils/docutils/parsers/rst/roles.pyi b/stubs/docutils/docutils/parsers/rst/roles.pyi index eb238c6f4905..ae88189404a6 100644 --- a/stubs/docutils/docutils/parsers/rst/roles.pyi +++ b/stubs/docutils/docutils/parsers/rst/roles.pyi @@ -4,8 +4,8 @@ from typing_extensions import TypeAlias, deprecated import docutils.parsers.rst.states from docutils import nodes -from docutils.languages import _LanguageModule from docutils.nodes import Node, system_message +from docutils.parsers.rst.languages import _RstLanguageModule from docutils.parsers.rst.states import Inliner from docutils.utils import Reporter @@ -20,7 +20,7 @@ _RoleFn: TypeAlias = Callable[ def register_canonical_role(name: str, role_fn: _RoleFn) -> None: ... def register_local_role(name: str, role_fn: _RoleFn) -> None: ... def role( - role_name: str, language_module: _LanguageModule, lineno: int, reporter: Reporter + role_name: str, language_module: _RstLanguageModule, lineno: int, reporter: Reporter ) -> tuple[_RoleFn | None, list[system_message]]: ... def set_implicit_options(role_fn: _RoleFn) -> None: ... def register_generic_role(canonical_name: str, node_class: type[Node]) -> None: ... diff --git a/stubs/docutils/docutils/transforms/universal.pyi b/stubs/docutils/docutils/transforms/universal.pyi index 5d54735bbca8..64226e4b8b5d 100644 --- a/stubs/docutils/docutils/transforms/universal.pyi +++ b/stubs/docutils/docutils/transforms/universal.pyi @@ -45,7 +45,7 @@ class SmartQuotes(Transform): default_priority: ClassVar[int] nodes_to_skip: ClassVar[tuple[type[nodes.Node | nodes.Special], ...]] literal_nodes: ClassVar[tuple[type[nodes.Node | nodes.Body], ...]] - smartquotes_action: ClassVar[str] + smartquotes_action: str unsupported_languages: set[str] def __init__(self, document: nodes.document, startnode: nodes.Node | None) -> None: ... def get_tokens(self, txtnodes: Iterable[nodes.Node]) -> Generator[tuple[Literal["literal", "plain"], str]]: ...