Skip to content

Bump types-docutils from 0.21.0.20250514 to 0.21.0.20250525 #13564

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ lint = [
"sphinx-lint>=0.9",
"types-colorama==0.4.15.20240311",
"types-defusedxml==0.7.0.20250516",
"types-docutils==0.21.0.20250514",
"types-docutils==0.21.0.20250525",
"types-Pillow==10.2.0.20240822",
"types-Pygments==2.19.0.20250516",
"types-requests==2.32.0.20250515", # align with requests
Expand Down Expand Up @@ -166,7 +166,7 @@ type-stubs = [
# align with versions used elsewhere
"types-colorama==0.4.15.20240311",
"types-defusedxml==0.7.0.20250516",
"types-docutils==0.21.0.20250514",
"types-docutils==0.21.0.20250525",
"types-Pillow==10.2.0.20240822",
"types-Pygments==2.19.0.20250516",
"types-requests==2.32.0.20250515",
Expand Down
4 changes: 2 additions & 2 deletions sphinx/builders/_epub_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ class NavPoint(NamedTuple):

def sphinx_smarty_pants(t: str, language: str = 'en') -> str:
t = t.replace('"', '"')
t = smartquotes.educateDashesOldSchool(t) # type: ignore[no-untyped-call]
t = smartquotes.educateQuotes(t, language) # type: ignore[no-untyped-call]
t = smartquotes.educateDashesOldSchool(t)
t = smartquotes.educateQuotes(t, language)
t = t.replace('"', '"')
return t

Expand Down
4 changes: 2 additions & 2 deletions sphinx/util/rst.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from unicodedata import east_asian_width

from docutils.parsers.rst import roles
from docutils.parsers.rst.languages import en as english # type: ignore[attr-defined]
from docutils.parsers.rst.languages import en as english
from docutils.parsers.rst.states import Body
from docutils.utils import Reporter
from jinja2 import pass_environment
Expand Down Expand Up @@ -66,7 +66,7 @@ def heading(env: Environment, text: str, level: int = 1) -> str:
def default_role(docname: str, name: str) -> Iterator[None]:
if name:
dummy_reporter = Reporter('', 4, 4)
role_fn, _ = roles.role(name, english, 0, dummy_reporter)
role_fn, _ = roles.role(name, english, 0, dummy_reporter) # type: ignore[arg-type]
if role_fn:
docutils.register_role('', role_fn) # type: ignore[arg-type]
else:
Expand Down
59 changes: 37 additions & 22 deletions sphinx/writers/html5.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,22 @@
from sphinx.util.images import get_image_size

if TYPE_CHECKING:
from docutils.nodes import Element, Node, Text
from docutils.nodes import (
Element,
Node,
Text,
bullet_list,
caption,
emphasis,
field_list,
figure,
image,
literal_block,
reference,
strong,
table,
title,
)

from sphinx.builders import Builder
from sphinx.builders.html import StandaloneHTMLBuilder
Expand Down Expand Up @@ -357,7 +372,7 @@ def visit_reference(self, node: Element) -> None:
def visit_number_reference(self, node: Element) -> None:
self.visit_reference(node)

def depart_number_reference(self, node: Element) -> None:
def depart_number_reference(self, node: reference) -> None:
self.depart_reference(node)

# overwritten -- we don't want source comments to show up in the HTML
Expand Down Expand Up @@ -451,7 +466,7 @@ def add_permalink_ref(self, node: Element, title: str) -> None:
)

# overwritten
def visit_bullet_list(self, node: Element) -> None:
def visit_bullet_list(self, node: bullet_list) -> None:
if len(node) == 1 and isinstance(node[0], addnodes.toctree):
# avoid emitting empty <ul></ul>
raise nodes.SkipNode
Expand Down Expand Up @@ -498,7 +513,7 @@ def depart_term(self, node: Element) -> None:
self.body.append('</dt>')

# overwritten
def visit_title(self, node: Element) -> None:
def visit_title(self, node: title) -> None:
if (
isinstance(node.parent, addnodes.compact_paragraph)
and node.parent.get('toctree')
Expand Down Expand Up @@ -535,7 +550,7 @@ def visit_title(self, node: Element) -> None:
self.body.pop()
self.context[-1] = '</p>\n'

def depart_title(self, node: Element) -> None:
def depart_title(self, node: title) -> None:
close_tag = self.context[-1]
if (
self.config.html_permalinks
Expand Down Expand Up @@ -586,7 +601,7 @@ def depart_rubric(self, node: nodes.rubric) -> None:
super().depart_rubric(node)

# overwritten
def visit_literal_block(self, node: Element) -> None:
def visit_literal_block(self, node: literal_block) -> None:
if node.rawsource != node.astext():
# most probably a parsed-literal block -- don't highlight
return super().visit_literal_block(node)
Expand Down Expand Up @@ -614,7 +629,7 @@ def visit_literal_block(self, node: Element) -> None:
self.body.append(starttag + highlighted + '</div>\n')
raise nodes.SkipNode

def visit_caption(self, node: Element) -> None:
def visit_caption(self, node: caption) -> None:
if (
isinstance(node.parent, nodes.container)
and node.parent.get('literal_block')
Expand All @@ -625,7 +640,7 @@ def visit_caption(self, node: Element) -> None:
self.add_fignumber(node.parent)
self.body.append(self.starttag(node, 'span', '', CLASS='caption-text'))

def depart_caption(self, node: Element) -> None:
def depart_caption(self, node: caption) -> None:
self.body.append('</span>')

# append permalink if available
Expand All @@ -648,7 +663,7 @@ def depart_caption(self, node: Element) -> None:
super().depart_caption(node)

def visit_doctest_block(self, node: Element) -> None:
self.visit_literal_block(node)
self.visit_literal_block(node) # type: ignore[arg-type]

# overwritten to add the <div> (for XHTML compliance)
def visit_block_quote(self, node: Element) -> None:
Expand Down Expand Up @@ -740,14 +755,14 @@ def depart_download_reference(self, node: Element) -> None:
self.body.append(self.context.pop())

# overwritten
def visit_figure(self, node: Element) -> None:
def visit_figure(self, node: figure) -> None:
# set align=default if align not specified to give a default style
node.setdefault('align', 'default')

return super().visit_figure(node)

# overwritten
def visit_image(self, node: Element) -> None:
def visit_image(self, node: image) -> None:
olduri = node['uri']
# rewrite the URI if the environment knows about it
if olduri in self.builder.images:
Expand Down Expand Up @@ -775,7 +790,7 @@ def visit_image(self, node: Element) -> None:
super().visit_image(node)

# overwritten
def depart_image(self, node: Element) -> None:
def depart_image(self, node: image) -> None:
if node['uri'].lower().endswith(('svg', 'svgz')):
pass
else:
Expand Down Expand Up @@ -892,16 +907,16 @@ def visit_tip(self, node: Element) -> None:
def depart_tip(self, node: Element) -> None:
self.depart_admonition(node)

def visit_literal_emphasis(self, node: Element) -> None:
def visit_literal_emphasis(self, node: emphasis) -> None:
return self.visit_emphasis(node)

def depart_literal_emphasis(self, node: Element) -> None:
def depart_literal_emphasis(self, node: emphasis) -> None:
return self.depart_emphasis(node)

def visit_literal_strong(self, node: Element) -> None:
def visit_literal_strong(self, node: strong) -> None:
return self.visit_strong(node)

def depart_literal_strong(self, node: Element) -> None:
def depart_literal_strong(self, node: strong) -> None:
return self.depart_strong(node)

def visit_abbreviation(self, node: Element) -> None:
Expand All @@ -913,15 +928,15 @@ def visit_abbreviation(self, node: Element) -> None:
def depart_abbreviation(self, node: Element) -> None:
self.body.append('</abbr>')

def visit_manpage(self, node: Element) -> None:
def visit_manpage(self, node: emphasis) -> None:
self.visit_literal_emphasis(node)

def depart_manpage(self, node: Element) -> None:
def depart_manpage(self, node: emphasis) -> None:
self.depart_literal_emphasis(node)

# overwritten to add even/odd classes

def visit_table(self, node: Element) -> None:
def visit_table(self, node: table) -> None:
self._table_row_indices.append(0)

atts = {}
Expand All @@ -936,7 +951,7 @@ def visit_table(self, node: Element) -> None:
tag = self.starttag(node, 'table', CLASS=' '.join(classes), **atts)
self.body.append(tag)

def depart_table(self, node: Element) -> None:
def depart_table(self, node: table) -> None:
self._table_row_indices.pop()
super().depart_table(node)

Expand All @@ -949,11 +964,11 @@ def visit_row(self, node: Element) -> None:
self.body.append(self.starttag(node, 'tr', ''))
node.column = 0 # type: ignore[attr-defined]

def visit_field_list(self, node: Element) -> None:
def visit_field_list(self, node: field_list) -> None:
self._fieldlist_row_indices.append(0)
return super().visit_field_list(node)

def depart_field_list(self, node: Element) -> None:
def depart_field_list(self, node: field_list) -> None:
self._fieldlist_row_indices.pop()
return super().depart_field_list(node)

Expand Down
Loading
Loading