mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
shrink mypy whitelist for `sphinx.builders
` (#11396)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
This commit is contained in:
parent
edd9ea0a39
commit
d564a8ba11
@ -307,7 +307,6 @@ disallow_any_generics = true
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = [
|
||||
"sphinx.builders",
|
||||
"sphinx.builders.html",
|
||||
"sphinx.builders.latex",
|
||||
"sphinx.builders.linkcheck",
|
||||
|
@ -32,10 +32,6 @@ from sphinx.util.typing import NoneType
|
||||
# side effect: registers roles and directives
|
||||
from sphinx import directives # noqa: F401 isort:skip
|
||||
from sphinx import roles # noqa: F401 isort:skip
|
||||
try:
|
||||
import multiprocessing
|
||||
except ImportError:
|
||||
multiprocessing = None
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from sphinx.application import Sphinx
|
||||
@ -60,7 +56,7 @@ class Builder:
|
||||
|
||||
#: default translator class for the builder. This can be overridden by
|
||||
#: :py:meth:`~sphinx.application.Sphinx.set_translator`.
|
||||
default_translator_class: type[nodes.NodeVisitor] = None
|
||||
default_translator_class: type[nodes.NodeVisitor]
|
||||
# doctree versioning method
|
||||
versioning_method = 'none'
|
||||
versioning_compare = False
|
||||
@ -135,7 +131,7 @@ class Builder:
|
||||
from sphinx.jinja2glue import BuiltinTemplateLoader
|
||||
self.templates = BuiltinTemplateLoader()
|
||||
|
||||
def get_target_uri(self, docname: str, typ: str = None) -> str:
|
||||
def get_target_uri(self, docname: str, typ: str | None = None) -> str:
|
||||
"""Return the target URI for a document name.
|
||||
|
||||
*typ* can be used to qualify the link characteristic for individual
|
||||
@ -143,7 +139,7 @@ class Builder:
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def get_relative_uri(self, from_: str, to: str, typ: str = None) -> str:
|
||||
def get_relative_uri(self, from_: str, to: str, typ: str | None = None) -> str:
|
||||
"""Return a relative URI between two source filenames.
|
||||
|
||||
May raise environment.NoUri if there's no way to return a sensible URI.
|
||||
@ -296,7 +292,10 @@ class Builder:
|
||||
len(to_build))
|
||||
|
||||
def build(
|
||||
self, docnames: Iterable[str], summary: str | None = None, method: str = 'update',
|
||||
self,
|
||||
docnames: Iterable[str] | None,
|
||||
summary: str | None = None,
|
||||
method: str = 'update',
|
||||
) -> None:
|
||||
"""Main build method.
|
||||
|
||||
@ -509,15 +508,15 @@ class Builder:
|
||||
) -> None:
|
||||
"""Write the doctree to a file."""
|
||||
# make it picklable
|
||||
doctree.reporter = None
|
||||
doctree.transformer = None
|
||||
doctree.reporter = None # type: ignore[assignment]
|
||||
doctree.transformer = None # type: ignore[assignment]
|
||||
|
||||
# Create a copy of settings object before modification because it is
|
||||
# shared with other documents.
|
||||
doctree.settings = doctree.settings.copy()
|
||||
doctree.settings.warning_stream = None
|
||||
doctree.settings.env = None
|
||||
doctree.settings.record_dependencies = None
|
||||
doctree.settings.record_dependencies = None # type: ignore[assignment]
|
||||
|
||||
doctree_filename = path.join(self.doctreedir, docname + '.doctree')
|
||||
ensuredir(path.dirname(doctree_filename))
|
||||
@ -532,7 +531,7 @@ class Builder:
|
||||
|
||||
def write(
|
||||
self,
|
||||
build_docnames: Iterable[str],
|
||||
build_docnames: Iterable[str] | None,
|
||||
updated_docnames: Sequence[str],
|
||||
method: str = 'update',
|
||||
) -> None:
|
||||
|
@ -254,7 +254,10 @@ class MessageCatalogBuilder(I18nBuilder):
|
||||
raise ThemeError(f'{template}: {exc!r}') from exc
|
||||
|
||||
def build(
|
||||
self, docnames: Iterable[str], summary: str | None = None, method: str = 'update',
|
||||
self,
|
||||
docnames: Iterable[str] | None,
|
||||
summary: str | None = None,
|
||||
method: str = 'update',
|
||||
) -> None:
|
||||
self._extract_from_template()
|
||||
super().build(docnames, summary, method)
|
||||
|
@ -193,6 +193,7 @@ class StandaloneHTMLBuilder(Builder):
|
||||
format = 'html'
|
||||
epilog = __('The HTML pages are in %(outdir)s.')
|
||||
|
||||
default_translator_class = HTML5Translator
|
||||
copysource = True
|
||||
allow_parallel = True
|
||||
out_suffix = '.html'
|
||||
@ -372,10 +373,6 @@ class StandaloneHTMLBuilder(Builder):
|
||||
|
||||
self.script_files.append(JavaScript(filename, **kwargs))
|
||||
|
||||
@property
|
||||
def default_translator_class(self) -> type[nodes.NodeVisitor]: # type: ignore
|
||||
return HTML5Translator
|
||||
|
||||
@property
|
||||
def math_renderer_name(self) -> str:
|
||||
name = self.get_builder_config('math_renderer', 'html')
|
||||
|
@ -327,12 +327,16 @@ class SphinxComponentRegistry:
|
||||
) from exc
|
||||
|
||||
def get_translator_class(self, builder: Builder) -> type[nodes.NodeVisitor]:
|
||||
return self.translators.get(builder.name,
|
||||
builder.default_translator_class)
|
||||
try:
|
||||
return self.translators[builder.name]
|
||||
except KeyError:
|
||||
try:
|
||||
return builder.default_translator_class
|
||||
except AttributeError as err:
|
||||
raise AttributeError(f'translator not found for {builder.name}') from err
|
||||
|
||||
def create_translator(self, builder: Builder, *args: Any) -> nodes.NodeVisitor:
|
||||
translator_class = self.get_translator_class(builder)
|
||||
assert translator_class, "translator not found for %s" % builder.name
|
||||
translator = translator_class(*args)
|
||||
|
||||
# transplant handlers for custom nodes to translator instance
|
||||
|
@ -236,8 +236,9 @@ class SigElementFallbackTransform(SphinxPostTransform):
|
||||
def has_visitor(translator: type[nodes.NodeVisitor], node: type[Element]) -> bool:
|
||||
return hasattr(translator, "visit_%s" % node.__name__)
|
||||
|
||||
translator = self.app.builder.get_translator_class()
|
||||
if translator is None:
|
||||
try:
|
||||
translator = self.app.builder.get_translator_class()
|
||||
except AttributeError:
|
||||
# do nothing if no translator class is specified (e.g., on a dummy builder)
|
||||
return
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user