From dd17d4faa5baec95efd0ce2b6a8077eca77ae65f Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:41:25 +0100 Subject: [PATCH] Bump types-docutils to 0.21.0.20241004 (#12960) --- pyproject.toml | 2 +- sphinx/directives/other.py | 2 +- sphinx/ext/todo.py | 2 +- sphinx/io.py | 2 +- sphinx/writers/latex.py | 7 ++++--- sphinx/writers/texinfo.py | 9 +++++---- sphinx/writers/text.py | 7 ++++--- tests/test_markup/test_markup.py | 3 ++- 8 files changed, 19 insertions(+), 15 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aa650803a..804f81290 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,7 +86,7 @@ lint = [ "sphinx-lint>=0.9", "types-colorama==0.4.15.20240311", "types-defusedxml==0.7.0.20240218", - "types-docutils==0.21.0.20240724", + "types-docutils==0.21.0.20241004", "types-Pillow==10.2.0.20240822", "types-Pygments==2.18.0.20240506", "types-requests==2.32.0.20240914", # align with requests diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py index d0947470f..e297ceb4b 100644 --- a/sphinx/directives/other.py +++ b/sphinx/directives/other.py @@ -217,7 +217,7 @@ class Author(SphinxDirective): return ret -class SeeAlso(BaseAdmonition): # type: ignore[misc] +class SeeAlso(BaseAdmonition): """ An admonition mentioning things to look at as reference. """ diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py index 094573170..836dc8b86 100644 --- a/sphinx/ext/todo.py +++ b/sphinx/ext/todo.py @@ -45,7 +45,7 @@ class todolist(nodes.General, nodes.Element): pass -class Todo(BaseAdmonition, SphinxDirective): # type: ignore[misc] +class Todo(BaseAdmonition, SphinxDirective): """ A todo entry, displayed (if configured) in the form of an admonition. """ diff --git a/sphinx/io.py b/sphinx/io.py index 31d64ca6d..7da15e1ca 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -143,7 +143,7 @@ class SphinxI18nReader(SphinxBaseReader): self.transforms.remove(transform) -class SphinxDummyWriter(UnfilteredWriter): # type: ignore[misc] +class SphinxDummyWriter(UnfilteredWriter): # type: ignore[type-arg] """Dummy writer module used for generating doctree.""" supported = ('html',) # needed to keep "meta" nodes diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 44c139820..e8f4560a2 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -10,7 +10,7 @@ import re from collections import defaultdict from collections.abc import Iterable from os import path -from typing import TYPE_CHECKING, Any, cast +from typing import TYPE_CHECKING, Any, ClassVar, cast from docutils import nodes, writers @@ -65,7 +65,7 @@ class UnsupportedError(SphinxError): category = 'Markup is unsupported in LaTeX' -class LaTeXWriter(writers.Writer): # type: ignore[misc] +class LaTeXWriter(writers.Writer): # type: ignore[type-arg] supported = ('sphinxlatex',) @@ -74,7 +74,7 @@ class LaTeXWriter(writers.Writer): # type: ignore[misc] ('Document class', ['--docclass'], {'default': 'manual'}), ('Author', ['--author'], {'default': ''}), )) - settings_defaults: dict[str, Any] = {} + settings_defaults: ClassVar[dict[str, Any]] = {} theme: Theme @@ -83,6 +83,7 @@ class LaTeXWriter(writers.Writer): # type: ignore[misc] self.builder = builder def translate(self) -> None: + assert isinstance(self.document, nodes.document) visitor = self.builder.create_translator(self.document, self.builder, self.theme) self.document.walkabout(visitor) self.output = cast(LaTeXTranslator, visitor).astext() diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index d9c1c8977..2f0b6aff2 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -6,7 +6,7 @@ import re import textwrap from collections.abc import Iterable, Iterator from os import path -from typing import TYPE_CHECKING, Any, cast +from typing import TYPE_CHECKING, Any, ClassVar, cast from docutils import nodes, writers @@ -104,12 +104,12 @@ def smart_capwords(s: str, sep: str | None = None) -> str: return (sep or ' ').join(words) -class TexinfoWriter(writers.Writer): # type: ignore[misc] +class TexinfoWriter(writers.Writer): # type: ignore[type-arg] """Texinfo writer for generating Texinfo documents.""" supported = ('texinfo', 'texi') - settings_spec: tuple[str, Any, tuple[tuple[str, list[str], dict[str, str]], ...]] = ( + settings_spec = ( 'Texinfo Specific Options', None, ( ("Name of the Info file", ['--texinfo-filename'], {'default': ''}), ('Dir entry', ['--texinfo-dir-entry'], {'default': ''}), @@ -117,7 +117,7 @@ class TexinfoWriter(writers.Writer): # type: ignore[misc] ('Category', ['--texinfo-dir-category'], {'default': 'Miscellaneous'}))) - settings_defaults: dict[str, Any] = {} + settings_defaults: ClassVar[dict[str, Any]] = {} output: str @@ -128,6 +128,7 @@ class TexinfoWriter(writers.Writer): # type: ignore[misc] self.builder = builder def translate(self) -> None: + assert isinstance(self.document, nodes.document) visitor = self.builder.create_translator(self.document, self.builder) self.visitor = cast(TexinfoTranslator, visitor) self.document.walkabout(visitor) diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py index 67eca45f1..c44a837e5 100644 --- a/sphinx/writers/text.py +++ b/sphinx/writers/text.py @@ -7,7 +7,7 @@ import re import textwrap from collections.abc import Iterable, Iterator, Sequence from itertools import chain, groupby, pairwise -from typing import TYPE_CHECKING, Any, cast +from typing import TYPE_CHECKING, Any, ClassVar, cast from docutils import nodes, writers from docutils.utils import column_width @@ -356,10 +356,10 @@ def my_wrap(text: str, width: int = MAXWIDTH, **kwargs: Any) -> list[str]: return w.wrap(text) -class TextWriter(writers.Writer): # type: ignore[misc] +class TextWriter(writers.Writer): # type: ignore[type-arg] supported = ('text',) settings_spec = ('No options here.', '', ()) - settings_defaults: dict[str, Any] = {} + settings_defaults: ClassVar[dict[str, Any]] = {} output: str @@ -368,6 +368,7 @@ class TextWriter(writers.Writer): # type: ignore[misc] self.builder = builder def translate(self) -> None: + assert isinstance(self.document, nodes.document) visitor = self.builder.create_translator(self.document, self.builder) self.document.walkabout(visitor) self.output = cast(TextTranslator, visitor).body diff --git a/tests/test_markup/test_markup.py b/tests/test_markup/test_markup.py index a8307e108..dc37051b8 100644 --- a/tests/test_markup/test_markup.py +++ b/tests/test_markup/test_markup.py @@ -30,7 +30,8 @@ def settings(app): # DeprecationWarning: The frontend.OptionParser class will be replaced # by a subclass of argparse.ArgumentParser in Docutils 0.21 or later. optparser = frontend.OptionParser( - components=(RstParser, HTMLWriter, LaTeXWriter), defaults=default_settings + components=(RstParser, HTMLWriter, LaTeXWriter), # type: ignore[arg-type] + defaults=default_settings, ) settings = optparser.get_default_values() settings.smart_quotes = True