From 7caf34c6e4dd1f17de15129ae260bae9fa067751 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Mon, 3 Dec 2018 21:12:55 +0900 Subject: [PATCH 1/2] Fix annotations of process_link() --- sphinx/domains/c.py | 2 +- sphinx/domains/cpp.py | 2 +- sphinx/domains/javascript.py | 2 +- sphinx/roles.py | 7 +++---- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py index a7e91da1f..752496303 100644 --- a/sphinx/domains/c.py +++ b/sphinx/domains/c.py @@ -238,7 +238,7 @@ class CObject(ObjectDescription): class CXRefRole(XRefRole): def process_link(self, env, refnode, has_explicit_title, title, target): - # type: (BuildEnvironment, nodes.Node, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA + # type: (BuildEnvironment, nodes.Element, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA if not has_explicit_title: target = target.lstrip('~') # only has a meaning for the title # if the first character is a tilde, don't display the module/class diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index fa85eada5..83030abd1 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -6560,7 +6560,7 @@ class CPPNamespacePopObject(SphinxDirective): class CPPXRefRole(XRefRole): def process_link(self, env, refnode, has_explicit_title, title, target): - # type: (BuildEnvironment, nodes.Node, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA + # type: (BuildEnvironment, nodes.Element, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA refnode.attributes.update(env.ref_context) if not has_explicit_title: diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py index dfc113486..ca9930ac4 100644 --- a/sphinx/domains/javascript.py +++ b/sphinx/domains/javascript.py @@ -273,7 +273,7 @@ class JSModule(SphinxDirective): class JSXRefRole(XRefRole): def process_link(self, env, refnode, has_explicit_title, title, target): - # type: (BuildEnvironment, nodes.reference, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA + # type: (BuildEnvironment, nodes.Element, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA # basically what sphinx.domains.python.PyXRefRole does refnode['js:object'] = env.ref_context.get('js:object') refnode['js:module'] = env.ref_context.get('js:module') diff --git a/sphinx/roles.py b/sphinx/roles.py index 8b237771c..1523a3544 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -138,8 +138,7 @@ class XRefRole: refexplicit=has_explicit_title) # we may need the line number for warnings set_role_source_info(inliner, lineno, refnode) # type: ignore - title, target = self.process_link( - env, refnode, has_explicit_title, title, target) + title, target = self.process_link(env, refnode, has_explicit_title, title, target) # now that the target and title are finally determined, set them refnode['reftarget'] = target refnode += self.innernodeclass(rawtext, title, classes=classes) @@ -152,7 +151,7 @@ class XRefRole: # methods that can be overwritten def process_link(self, env, refnode, has_explicit_title, title, target): - # type: (BuildEnvironment, nodes.reference, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA + # type: (BuildEnvironment, nodes.Element, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA """Called after parsing title and target text, and creating the reference node (given in *refnode*). This method can alter the reference node and must return a new (or the same) ``(title, target)`` @@ -172,7 +171,7 @@ class XRefRole: class AnyXRefRole(XRefRole): def process_link(self, env, refnode, has_explicit_title, title, target): - # type: (BuildEnvironment, nodes.reference, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA + # type: (BuildEnvironment, nodes.Element, bool, unicode, unicode) -> Tuple[unicode, unicode] # NOQA result = super(AnyXRefRole, self).process_link(env, refnode, has_explicit_title, title, target) # add all possible context info (i.e. std:program, py:module etc.) From ddc9698dfe77c6d67f208b5e1f15660d5a2883ff Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Mon, 3 Dec 2018 21:12:57 +0900 Subject: [PATCH 2/2] Fix annotations of resolve_nodes --- sphinx/domains/math.py | 2 +- sphinx/domains/std.py | 2 +- sphinx/roles.py | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/sphinx/domains/math.py b/sphinx/domains/math.py index d598b98ed..89fc8c357 100644 --- a/sphinx/domains/math.py +++ b/sphinx/domains/math.py @@ -33,7 +33,7 @@ logger = logging.getLogger(__name__) class MathReferenceRole(XRefRole): def result_nodes(self, document, env, node, is_ref): - # type: (nodes.Node, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Node], List[nodes.system_message]] # NOQA + # type: (nodes.document, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Node], List[nodes.system_message]] # NOQA node['refdomain'] = 'math' return [node], [] diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index bf17e7315..87426a588 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -95,7 +95,7 @@ class EnvVarXRefRole(XRefRole): """ def result_nodes(self, document, env, node, is_ref): - # type: (nodes.document, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Element], List[nodes.system_message]] # NOQA + # type: (nodes.document, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Node], List[nodes.system_message]] # NOQA if not is_ref: return [node], [] varname = node['reftarget'] diff --git a/sphinx/roles.py b/sphinx/roles.py index 1523a3544..673c8978f 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -121,8 +121,7 @@ class XRefRole: if self.fix_parens: text, tgt = self._fix_parens(env, False, text, "") innernode = self.innernodeclass(rawtext, text, classes=classes) - return self.result_nodes(inliner.document, env, innernode, - is_ref=False) + return self.result_nodes(inliner.document, env, innernode, is_ref=False) # split title and target in role content has_explicit_title, title, target = split_explicit_title(text) title = utils.unescape(title) @@ -160,7 +159,7 @@ class XRefRole: return title, ws_re.sub(' ', target) def result_nodes(self, document, env, node, is_ref): - # type: (nodes.document, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Element], List[nodes.system_message]] # NOQA + # type: (nodes.document, BuildEnvironment, nodes.Element, bool) -> Tuple[List[nodes.Node], List[nodes.system_message]] # NOQA """Called before returning the finished nodes. *node* is the reference node if one was created (*is_ref* is then true), else the content node. This method can add other nodes and must return a ``(nodes, messages)``