summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2018-11-23 21:23:36 +0900
committerGitHub <noreply@github.com>2018-11-23 21:23:36 +0900
commite326017f743a2e2757e9611a0385623a2cb85b6d (patch)
treef430e9c18689ae7ee0795daea9663eb320891e5f
parentc0f0091e6e553b56cb63d662ebab97ed2196aee6 (diff)
parent24564892699384ee37f283850ae224c5a90c988b (diff)
downloadsphinx-git-e326017f743a2e2757e9611a0385623a2cb85b6d.tar.gz
Merge pull request #5661 from tk0miya/fix_typehints_for_transforms
Adjust type annotations for transforms to docutils'
-rw-r--r--sphinx/builders/latex/transforms.py32
-rw-r--r--sphinx/transforms/__init__.py58
-rw-r--r--sphinx/transforms/compact_bullet_list.py6
-rw-r--r--sphinx/transforms/i18n.py12
-rw-r--r--sphinx/transforms/post_transforms/__init__.py8
-rw-r--r--sphinx/transforms/post_transforms/code.py6
-rw-r--r--sphinx/transforms/post_transforms/compat.py4
-rw-r--r--sphinx/transforms/post_transforms/images.py4
-rw-r--r--sphinx/transforms/references.py12
-rw-r--r--sphinx/util/compat.py3
-rw-r--r--sphinx/versioning.py4
-rw-r--r--sphinx/writers/manpage.py4
12 files changed, 81 insertions, 72 deletions
diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py
index dff64ada5..c95886e7e 100644
--- a/sphinx/builders/latex/transforms.py
+++ b/sphinx/builders/latex/transforms.py
@@ -20,7 +20,7 @@ from sphinx.util.nodes import NodeMatcher
if False:
# For type annotation
- from typing import Dict, List, Set, Tuple, Union # NOQA
+ from typing import Any, Dict, List, Set, Tuple, Union # NOQA
URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:')
@@ -30,7 +30,8 @@ class FootnoteDocnameUpdater(SphinxTransform):
default_priority = 700
TARGET_NODES = (nodes.footnote, nodes.footnote_reference)
- def apply(self):
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(NodeMatcher(*self.TARGET_NODES)):
node['docname'] = self.env.docname
@@ -47,8 +48,8 @@ class ShowUrlsTransform(SphinxTransform):
# references are expanded to footnotes (or not)
expanded = False
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
try:
# replace id_prefix temporarily
id_prefix = self.document.settings.id_prefix
@@ -342,7 +343,8 @@ class LaTeXFootnoteTransform(SphinxTransform):
default_priority = 600
- def apply(self):
+ def apply(self, **kwargs):
+ # type: (Any) -> None
footnotes = list(self.document.traverse(nodes.footnote))
for node in footnotes:
node.parent.remove(node)
@@ -513,8 +515,8 @@ class BibliographyTransform(SphinxTransform):
"""
default_priority = 750
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
citations = thebibliography()
for node in self.document.traverse(nodes.citation):
node.parent.remove(node)
@@ -532,8 +534,8 @@ class CitationReferenceTransform(SphinxTransform):
"""
default_priority = 5 # before ReferencesResolver
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if self.app.builder.name != 'latex':
return
@@ -555,8 +557,8 @@ class MathReferenceTransform(SphinxTransform):
"""
default_priority = 5 # before ReferencesResolver
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if self.app.builder.name != 'latex':
return
@@ -573,8 +575,8 @@ class LiteralBlockTransform(SphinxTransform):
"""Replace container nodes for literal_block by captioned_literal_block."""
default_priority = 400
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if self.app.builder.name != 'latex':
return
@@ -588,8 +590,8 @@ class DocumentTargetTransform(SphinxTransform):
"""Add :doc label to the first section of each document."""
default_priority = 400
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if self.app.builder.name != 'latex':
return
diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py
index ab69f981a..a0549569e 100644
--- a/sphinx/transforms/__init__.py
+++ b/sphinx/transforms/__init__.py
@@ -27,7 +27,7 @@ from sphinx.util.nodes import apply_source_workaround, is_smartquotable
if False:
# For type annotation
- from typing import Generator, List # NOQA
+ from typing import Any, Generator, List # NOQA
from sphinx.application import Sphinx # NOQA
from sphinx.config import Config # NOQA
from sphinx.domain.std import StandardDomain # NOQA
@@ -108,8 +108,8 @@ class DefaultSubstitutions(SphinxTransform):
# run before the default Substitutions
default_priority = 210
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
# only handle those not otherwise defined in the document
to_handle = default_substitutions - set(self.document.substitution_defs)
for ref in self.document.traverse(nodes.substitution_reference):
@@ -132,8 +132,8 @@ class MoveModuleTargets(SphinxTransform):
"""
default_priority = 210
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(nodes.target):
if not node['ids']:
continue
@@ -151,8 +151,8 @@ class HandleCodeBlocks(SphinxTransform):
"""
default_priority = 210
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
# move doctest blocks out of blockquotes
for node in self.document.traverse(nodes.block_quote):
if all(isinstance(child, nodes.doctest_block) for child
@@ -176,8 +176,8 @@ class AutoNumbering(SphinxTransform):
"""
default_priority = 210
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
domain = self.env.get_domain('std') # type: StandardDomain
for node in self.document.traverse(nodes.Element):
@@ -191,8 +191,8 @@ class SortIds(SphinxTransform):
"""
default_priority = 261
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(nodes.section):
if len(node['ids']) > 1 and node['ids'][0].startswith('id'):
node['ids'] = node['ids'][1:] + [node['ids'][0]]
@@ -205,8 +205,8 @@ class CitationReferences(SphinxTransform):
"""
default_priority = 619
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
# mark citation labels as not smartquoted
for citnode in self.document.traverse(nodes.citation):
citnode[0]['support_smartquotes'] = False
@@ -238,8 +238,8 @@ class ApplySourceWorkaround(SphinxTransform):
"""
default_priority = 10
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for n in self.document.traverse():
if isinstance(n, (nodes.TextElement, nodes.image)):
apply_source_workaround(n)
@@ -251,8 +251,8 @@ class AutoIndexUpgrader(SphinxTransform):
"""
default_priority = 210
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(addnodes.index):
if 'entries' in node and any(len(entry) == 4 for entry in node['entries']):
msg = __('4 column based index found. '
@@ -269,8 +269,8 @@ class ExtraTranslatableNodes(SphinxTransform):
"""
default_priority = 10
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
targets = self.config.gettext_additional_targets
target_nodes = [v for k, v in TRANSLATABLE_NODES.items() if k in targets]
if not target_nodes:
@@ -290,8 +290,8 @@ class UnreferencedFootnotesDetector(SphinxTransform):
"""
default_priority = 200
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.footnotes:
if node['names'] == []:
# footnote having duplicated number. It is already warned at parser.
@@ -312,8 +312,8 @@ class FilterSystemMessages(SphinxTransform):
"""Filter system messages from a doctree."""
default_priority = 999
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
filterlevel = self.config.keep_warnings and 2 or 5
for node in self.document.traverse(nodes.system_message):
if node['level'] < filterlevel:
@@ -345,8 +345,8 @@ class SphinxSmartQuotes(SmartQuotes, SphinxTransform):
"""
default_priority = 750
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if not self.is_available():
return
@@ -403,8 +403,8 @@ class DoctreeReadEvent(SphinxTransform):
"""Emit :event:`doctree-read` event."""
default_priority = 880
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
self.app.emit('doctree-read', self.document)
@@ -412,8 +412,8 @@ class ManpageLink(SphinxTransform):
"""Find manpage section numbers and names"""
default_priority = 999
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(addnodes.manpage):
manpage = ' '.join([str(x) for x in node.children
if isinstance(x, nodes.Text)])
diff --git a/sphinx/transforms/compact_bullet_list.py b/sphinx/transforms/compact_bullet_list.py
index 0121dd12f..7f50dc5d2 100644
--- a/sphinx/transforms/compact_bullet_list.py
+++ b/sphinx/transforms/compact_bullet_list.py
@@ -16,7 +16,7 @@ from sphinx.transforms import SphinxTransform
if False:
# For type annotation
- from typing import List # NOQA
+ from typing import Any, List # NOQA
class RefOnlyListChecker(nodes.GenericNodeVisitor):
@@ -65,8 +65,8 @@ class RefOnlyBulletListTransform(SphinxTransform):
"""
default_priority = 100
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if self.config.html_compact_lists:
return
diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py
index 52add24ed..ec05ae05c 100644
--- a/sphinx/transforms/i18n.py
+++ b/sphinx/transforms/i18n.py
@@ -72,8 +72,8 @@ class PreserveTranslatableMessages(SphinxTransform):
"""
default_priority = 10 # this MUST be invoked before Locale transform
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(addnodes.translatable):
node.preserve_original_messages()
@@ -84,8 +84,8 @@ class Locale(SphinxTransform):
"""
default_priority = 20
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
settings, source = self.document.settings, self.document['source']
msgstr = u''
@@ -471,8 +471,8 @@ class RemoveTranslatableInline(SphinxTransform):
"""
default_priority = 999
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
from sphinx.builders.gettext import MessageCatalogBuilder
if isinstance(self.app.builder, MessageCatalogBuilder):
return
diff --git a/sphinx/transforms/post_transforms/__init__.py b/sphinx/transforms/post_transforms/__init__.py
index a5cb897d9..f21410caa 100644
--- a/sphinx/transforms/post_transforms/__init__.py
+++ b/sphinx/transforms/post_transforms/__init__.py
@@ -35,8 +35,8 @@ class ReferencesResolver(SphinxTransform):
default_priority = 10
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(addnodes.pending_xref):
contnode = node[0].deepcopy()
newnode = None
@@ -147,8 +147,8 @@ class ReferencesResolver(SphinxTransform):
class OnlyNodeTransform(SphinxTransform):
default_priority = 50
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
# A comment on the comment() nodes being inserted: replacing by [] would
# result in a "Losing ids" exception if there is a target node before
# the only node, so we make sure docutils can transfer the id to
diff --git a/sphinx/transforms/post_transforms/code.py b/sphinx/transforms/post_transforms/code.py
index 3e7cbcb1a..66369285c 100644
--- a/sphinx/transforms/post_transforms/code.py
+++ b/sphinx/transforms/post_transforms/code.py
@@ -40,7 +40,8 @@ class HighlightLanguageTransform(SphinxTransform):
"""
default_priority = 400
- def apply(self):
+ def apply(self, **kwargs):
+ # type: (Any) -> None
visitor = HighlightLanguageVisitor(self.document,
self.config.highlight_language)
self.document.walkabout(visitor)
@@ -105,7 +106,8 @@ class TrimDoctestFlagsTransform(SphinxTransform):
"""
default_priority = HighlightLanguageTransform.default_priority + 1
- def apply(self):
+ def apply(self, **kwargs):
+ # type: (Any) -> None
if not self.config.trim_doctest_flags:
return
diff --git a/sphinx/transforms/post_transforms/compat.py b/sphinx/transforms/post_transforms/compat.py
index 8065cf91c..9bd3b3395 100644
--- a/sphinx/transforms/post_transforms/compat.py
+++ b/sphinx/transforms/post_transforms/compat.py
@@ -40,8 +40,8 @@ class MathNodeMigrator(SphinxTransform):
"""
default_priority = 999
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(nodes.math):
# case: old styled ``math`` node generated by old extensions
if len(node) == 0:
diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py
index 877292615..728b00c12 100644
--- a/sphinx/transforms/post_transforms/images.py
+++ b/sphinx/transforms/post_transforms/images.py
@@ -35,8 +35,8 @@ MAX_FILENAME_LEN = 32
class BaseImageConverter(SphinxTransform):
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargsj):
+ # type: (Any) -> None
for node in self.document.traverse(nodes.image):
if self.match(node):
self.handle(node)
diff --git a/sphinx/transforms/references.py b/sphinx/transforms/references.py
index bb7c51da7..d33ebefd2 100644
--- a/sphinx/transforms/references.py
+++ b/sphinx/transforms/references.py
@@ -14,6 +14,10 @@ from docutils.transforms.references import Substitutions
from sphinx.transforms import SphinxTransform
+if False:
+ # For type annotation
+ from typing import Any # NOQA
+
class SubstitutionDefinitionsRemover(SphinxTransform):
"""Remove ``substitution_definition node from doctrees."""
@@ -21,8 +25,8 @@ class SubstitutionDefinitionsRemover(SphinxTransform):
# should be invoked after Substitutions process
default_priority = Substitutions.default_priority + 1
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(nodes.substitution_definition):
node.parent.remove(node)
@@ -31,7 +35,7 @@ class SphinxDomains(SphinxTransform):
"""Collect objects to Sphinx domains for cross references."""
default_priority = 850
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for domain in self.env.domains.values():
domain.process_doc(self.env, self.env.docname, self.document)
diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py
index e0c86df5e..4f41f311a 100644
--- a/sphinx/util/compat.py
+++ b/sphinx/util/compat.py
@@ -58,7 +58,8 @@ class IndexEntriesMigrator(SphinxTransform):
"""Migrating indexentries from old style (4columns) to new style (5columns)."""
default_priority = 700
- def apply(self):
+ def apply(self, **kwargs):
+ # type: (Any) -> None
for node in self.document.traverse(addnodes.index):
for entries in node['entries']:
if len(entries) == 4:
diff --git a/sphinx/versioning.py b/sphinx/versioning.py
index 4bac70bf9..56da86a4a 100644
--- a/sphinx/versioning.py
+++ b/sphinx/versioning.py
@@ -159,8 +159,8 @@ class UIDTransform(SphinxTransform):
"""Add UIDs to doctree for versioning."""
default_priority = 880
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
env = self.env
old_doctree = None
if not env.versioning_condition:
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index 9cd0e8de8..a82265286 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -60,8 +60,8 @@ class NestedInlineTransform:
# type: (nodes.document) -> None
self.document = document
- def apply(self):
- # type: () -> None
+ def apply(self, **kwargs):
+ # type: (Any) -> None
matcher = NodeMatcher(nodes.literal, nodes.emphasis, nodes.strong)
for node in self.document.traverse(matcher):
if any(matcher(subnode) for subnode in node):