mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #5667 from tk0miya/fix_typehints_for_domains
Fix typehints for domains
This commit is contained in:
commit
9c2fd94204
@ -21,6 +21,7 @@ if False:
|
|||||||
from typing import Any, Callable, Dict, Iterable, List, Tuple, Type, Union # NOQA
|
from typing import Any, Callable, Dict, Iterable, List, Tuple, Type, Union # NOQA
|
||||||
from docutils import nodes # NOQA
|
from docutils import nodes # NOQA
|
||||||
from docutils.parsers.rst.states import Inliner # NOQA
|
from docutils.parsers.rst.states import Inliner # NOQA
|
||||||
|
from sphinx import addnodes # NOQA
|
||||||
from sphinx.builders import Builder # NOQA
|
from sphinx.builders import Builder # NOQA
|
||||||
from sphinx.environment import BuildEnvironment # NOQA
|
from sphinx.environment import BuildEnvironment # NOQA
|
||||||
from sphinx.roles import XRefRole # NOQA
|
from sphinx.roles import XRefRole # NOQA
|
||||||
@ -265,7 +266,7 @@ class Domain:
|
|||||||
self.__class__)
|
self.__class__)
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
"""Process a document after it is read by the environment."""
|
"""Process a document after it is read by the environment."""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -283,7 +284,7 @@ class Domain:
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder,
|
def resolve_xref(self, env, fromdocname, builder,
|
||||||
typ, target, node, contnode):
|
typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
"""Resolve the pending_xref *node* with the given *typ* and *target*.
|
"""Resolve the pending_xref *node* with the given *typ* and *target*.
|
||||||
|
|
||||||
This method should return a new node, to replace the xref node,
|
This method should return a new node, to replace the xref node,
|
||||||
@ -300,7 +301,7 @@ class Domain:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
"""Resolve the pending_xref *node* with the given *target*.
|
"""Resolve the pending_xref *node* with the given *target*.
|
||||||
|
|
||||||
The reference comes from an "any" or similar role, which means that we
|
The reference comes from an "any" or similar role, which means that we
|
||||||
|
@ -295,7 +295,7 @@ class CDomain(Domain):
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder,
|
def resolve_xref(self, env, fromdocname, builder,
|
||||||
typ, target, node, contnode):
|
typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
# strip pointer asterisk
|
# strip pointer asterisk
|
||||||
target = target.rstrip(' *')
|
target = target.rstrip(' *')
|
||||||
# becase TypedField can generate xrefs
|
# becase TypedField can generate xrefs
|
||||||
@ -309,7 +309,7 @@ class CDomain(Domain):
|
|||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target,
|
def resolve_any_xref(self, env, fromdocname, builder, target,
|
||||||
node, contnode):
|
node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
# strip pointer asterisk
|
# strip pointer asterisk
|
||||||
target = target.rstrip(' *')
|
target = target.rstrip(' *')
|
||||||
if target not in self.data['objects']:
|
if target not in self.data['objects']:
|
||||||
|
@ -126,7 +126,7 @@ class ChangeSetDomain(Domain):
|
|||||||
changes.append(changeset)
|
changes.append(changeset)
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
pass # nothing to do here. All changesets are registered on calling directive.
|
pass # nothing to do here. All changesets are registered on calling directive.
|
||||||
|
|
||||||
def note_changeset(self, node):
|
def note_changeset(self, node):
|
||||||
|
@ -6683,7 +6683,7 @@ class CPPDomain(Domain):
|
|||||||
del self.data['names'][name]
|
del self.data['names'][name]
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
# just for debugging
|
# just for debugging
|
||||||
# print("process_doc:", docname)
|
# print("process_doc:", docname)
|
||||||
# print(self.data['root_symbol'].dump(0))
|
# print(self.data['root_symbol'].dump(0))
|
||||||
@ -6716,7 +6716,7 @@ class CPPDomain(Domain):
|
|||||||
|
|
||||||
def _resolve_xref_inner(self, env, fromdocname, builder, typ,
|
def _resolve_xref_inner(self, env, fromdocname, builder, typ,
|
||||||
target, node, contnode, emitWarnings=True):
|
target, node, contnode, emitWarnings=True):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node, bool) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element, bool) -> nodes.Element # NOQA
|
||||||
|
|
||||||
class Warner:
|
class Warner:
|
||||||
def warn(self, msg):
|
def warn(self, msg):
|
||||||
@ -6856,13 +6856,13 @@ class CPPDomain(Domain):
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder,
|
def resolve_xref(self, env, fromdocname, builder,
|
||||||
typ, target, node, contnode):
|
typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
return self._resolve_xref_inner(env, fromdocname, builder, typ,
|
return self._resolve_xref_inner(env, fromdocname, builder, typ,
|
||||||
target, node, contnode)[0]
|
target, node, contnode)[0]
|
||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target,
|
def resolve_any_xref(self, env, fromdocname, builder, target,
|
||||||
node, contnode):
|
node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.pending_xref, nodes.Node) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
node, objtype = self._resolve_xref_inner(env, fromdocname, builder,
|
node, objtype = self._resolve_xref_inner(env, fromdocname, builder,
|
||||||
'any', target, node, contnode,
|
'any', target, node, contnode,
|
||||||
emitWarnings=False)
|
emitWarnings=False)
|
||||||
|
@ -370,7 +370,7 @@ class JavaScriptDomain(Domain):
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
||||||
contnode):
|
contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
mod_name = node.get('js:module')
|
mod_name = node.get('js:module')
|
||||||
prefix = node.get('js:object')
|
prefix = node.get('js:object')
|
||||||
searchorder = node.hasattr('refspecific') and 1 or 0
|
searchorder = node.hasattr('refspecific') and 1 or 0
|
||||||
@ -382,7 +382,7 @@ class JavaScriptDomain(Domain):
|
|||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target, node,
|
def resolve_any_xref(self, env, fromdocname, builder, target, node,
|
||||||
contnode):
|
contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
mod_name = node.get('js:module')
|
mod_name = node.get('js:module')
|
||||||
prefix = node.get('js:object')
|
prefix = node.get('js:object')
|
||||||
name, obj = self.find_obj(env, mod_name, prefix, target, None, 1)
|
name, obj = self.find_obj(env, mod_name, prefix, target, None, 1)
|
||||||
|
@ -22,6 +22,7 @@ from sphinx.util.nodes import make_refnode
|
|||||||
if False:
|
if False:
|
||||||
# For type annotation
|
# For type annotation
|
||||||
from typing import Any, Callable, Dict, Iterable, List, Tuple, Type, Union # NOQA
|
from typing import Any, Callable, Dict, Iterable, List, Tuple, Type, Union # NOQA
|
||||||
|
from sphinx import addnodes # NOQA
|
||||||
from sphinx.application import Sphinx # NOQA
|
from sphinx.application import Sphinx # NOQA
|
||||||
from sphinx.builders import Builder # NOQA
|
from sphinx.builders import Builder # NOQA
|
||||||
from sphinx.environment import BuildEnvironment # NOQA
|
from sphinx.environment import BuildEnvironment # NOQA
|
||||||
@ -57,8 +58,9 @@ class MathDomain(Domain):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
def math_node(node):
|
def math_node(node):
|
||||||
|
# type: (nodes.Node) -> bool
|
||||||
return isinstance(node, (nodes.math, nodes.math_block))
|
return isinstance(node, (nodes.math, nodes.math_block))
|
||||||
|
|
||||||
self.data['has_equations'][docname] = any(document.traverse(math_node))
|
self.data['has_equations'][docname] = any(document.traverse(math_node))
|
||||||
@ -81,7 +83,7 @@ class MathDomain(Domain):
|
|||||||
self.data['has_equations'][docname] = otherdata['has_equations'][docname]
|
self.data['has_equations'][docname] = otherdata['has_equations'][docname]
|
||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
assert typ in ('eq', 'numref')
|
assert typ in ('eq', 'numref')
|
||||||
docname, number = self.data['objects'].get(target, (None, None))
|
docname, number = self.data['objects'].get(target, (None, None))
|
||||||
if docname:
|
if docname:
|
||||||
@ -106,7 +108,7 @@ class MathDomain(Domain):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[nodes.Node] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[nodes.Element] # NOQA
|
||||||
refnode = self.resolve_xref(env, fromdocname, builder, 'eq', target, node, contnode)
|
refnode = self.resolve_xref(env, fromdocname, builder, 'eq', target, node, contnode)
|
||||||
if refnode is None:
|
if refnode is None:
|
||||||
return []
|
return []
|
||||||
|
@ -868,7 +868,7 @@ class PythonDomain(Domain):
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder,
|
def resolve_xref(self, env, fromdocname, builder,
|
||||||
type, target, node, contnode):
|
type, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
modname = node.get('py:module')
|
modname = node.get('py:module')
|
||||||
clsname = node.get('py:class')
|
clsname = node.get('py:class')
|
||||||
searchmode = node.hasattr('refspecific') and 1 or 0
|
searchmode = node.hasattr('refspecific') and 1 or 0
|
||||||
@ -891,7 +891,7 @@ class PythonDomain(Domain):
|
|||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target,
|
def resolve_any_xref(self, env, fromdocname, builder, target,
|
||||||
node, contnode):
|
node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
modname = node.get('py:module')
|
modname = node.get('py:module')
|
||||||
clsname = node.get('py:class')
|
clsname = node.get('py:class')
|
||||||
results = [] # type: List[Tuple[unicode, nodes.Node]]
|
results = [] # type: List[Tuple[unicode, nodes.Node]]
|
||||||
|
@ -144,7 +144,7 @@ class ReSTDomain(Domain):
|
|||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
||||||
contnode):
|
contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
objects = self.data['objects']
|
objects = self.data['objects']
|
||||||
objtypes = self.objtypes_for_role(typ)
|
objtypes = self.objtypes_for_role(typ)
|
||||||
for objtype in objtypes:
|
for objtype in objtypes:
|
||||||
@ -156,7 +156,7 @@ class ReSTDomain(Domain):
|
|||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target,
|
def resolve_any_xref(self, env, fromdocname, builder, target,
|
||||||
node, contnode):
|
node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[nodes.Node] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[nodes.Element] # NOQA
|
||||||
objects = self.data['objects']
|
objects = self.data['objects']
|
||||||
results = []
|
results = []
|
||||||
for objtype in self.object_types:
|
for objtype in self.object_types:
|
||||||
|
@ -585,13 +585,13 @@ class StandardDomain(Domain):
|
|||||||
self.data['anonlabels'][key] = data
|
self.data['anonlabels'][key] = data
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
self.note_citations(env, docname, document)
|
self.note_citations(env, docname, document)
|
||||||
self.note_citation_refs(env, docname, document)
|
self.note_citation_refs(env, docname, document)
|
||||||
self.note_labels(env, docname, document)
|
self.note_labels(env, docname, document)
|
||||||
|
|
||||||
def note_citations(self, env, docname, document):
|
def note_citations(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
for node in document.traverse(nodes.citation):
|
for node in document.traverse(nodes.citation):
|
||||||
node['docname'] = docname
|
node['docname'] = docname
|
||||||
label = node[0].astext()
|
label = node[0].astext()
|
||||||
@ -602,7 +602,7 @@ class StandardDomain(Domain):
|
|||||||
self.data['citations'][label] = (docname, node['ids'][0], node.line)
|
self.data['citations'][label] = (docname, node['ids'][0], node.line)
|
||||||
|
|
||||||
def note_citation_refs(self, env, docname, document):
|
def note_citation_refs(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
for node in document.traverse(addnodes.pending_xref):
|
for node in document.traverse(addnodes.pending_xref):
|
||||||
if node['refdomain'] == 'std' and node['reftype'] == 'citation':
|
if node['refdomain'] == 'std' and node['reftype'] == 'citation':
|
||||||
label = node['reftarget']
|
label = node['reftarget']
|
||||||
@ -610,7 +610,7 @@ class StandardDomain(Domain):
|
|||||||
citation_refs.append(docname)
|
citation_refs.append(docname)
|
||||||
|
|
||||||
def note_labels(self, env, docname, document):
|
def note_labels(self, env, docname, document):
|
||||||
# type: (BuildEnvironment, unicode, nodes.Node) -> None
|
# type: (BuildEnvironment, unicode, nodes.document) -> None
|
||||||
labels, anonlabels = self.data['labels'], self.data['anonlabels']
|
labels, anonlabels = self.data['labels'], self.data['anonlabels']
|
||||||
for name, explicit in document.nametypes.items():
|
for name, explicit in document.nametypes.items():
|
||||||
if not explicit:
|
if not explicit:
|
||||||
@ -692,7 +692,7 @@ class StandardDomain(Domain):
|
|||||||
return newnode
|
return newnode
|
||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
if typ == 'ref':
|
if typ == 'ref':
|
||||||
resolver = self._resolve_ref_xref
|
resolver = self._resolve_ref_xref
|
||||||
elif typ == 'numref':
|
elif typ == 'numref':
|
||||||
@ -711,7 +711,7 @@ class StandardDomain(Domain):
|
|||||||
return resolver(env, fromdocname, builder, typ, target, node, contnode)
|
return resolver(env, fromdocname, builder, typ, target, node, contnode)
|
||||||
|
|
||||||
def _resolve_ref_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_ref_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
if node['refexplicit']:
|
if node['refexplicit']:
|
||||||
# reference to anonymous label; the reference uses
|
# reference to anonymous label; the reference uses
|
||||||
# the supplied link caption
|
# the supplied link caption
|
||||||
@ -729,7 +729,7 @@ class StandardDomain(Domain):
|
|||||||
docname, labelid, sectname, 'ref')
|
docname, labelid, sectname, 'ref')
|
||||||
|
|
||||||
def _resolve_numref_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_numref_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
if target in self.data['labels']:
|
if target in self.data['labels']:
|
||||||
docname, labelid, figname = self.data['labels'].get(target, ('', '', ''))
|
docname, labelid, figname = self.data['labels'].get(target, ('', '', ''))
|
||||||
else:
|
else:
|
||||||
@ -790,7 +790,7 @@ class StandardDomain(Domain):
|
|||||||
title=title)
|
title=title)
|
||||||
|
|
||||||
def _resolve_keyword_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_keyword_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
# keywords are oddballs: they are referenced by named labels
|
# keywords are oddballs: they are referenced by named labels
|
||||||
docname, labelid, _ = self.data['labels'].get(target, ('', '', ''))
|
docname, labelid, _ = self.data['labels'].get(target, ('', '', ''))
|
||||||
if not docname:
|
if not docname:
|
||||||
@ -799,7 +799,7 @@ class StandardDomain(Domain):
|
|||||||
labelid, contnode)
|
labelid, contnode)
|
||||||
|
|
||||||
def _resolve_doc_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_doc_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
# directly reference to document by source name; can be absolute or relative
|
# directly reference to document by source name; can be absolute or relative
|
||||||
refdoc = node.get('refdoc', fromdocname)
|
refdoc = node.get('refdoc', fromdocname)
|
||||||
docname = docname_join(refdoc, node['reftarget'])
|
docname = docname_join(refdoc, node['reftarget'])
|
||||||
@ -815,7 +815,7 @@ class StandardDomain(Domain):
|
|||||||
return make_refnode(builder, fromdocname, docname, None, innernode)
|
return make_refnode(builder, fromdocname, docname, None, innernode)
|
||||||
|
|
||||||
def _resolve_option_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_option_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
progname = node.get('std:program')
|
progname = node.get('std:program')
|
||||||
target = target.strip()
|
target = target.strip()
|
||||||
docname, labelid = self.data['progoptions'].get((progname, target), ('', ''))
|
docname, labelid = self.data['progoptions'].get((progname, target), ('', ''))
|
||||||
@ -837,7 +837,7 @@ class StandardDomain(Domain):
|
|||||||
labelid, contnode)
|
labelid, contnode)
|
||||||
|
|
||||||
def _resolve_citation_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_citation_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
from sphinx.environment import NoUri
|
from sphinx.environment import NoUri
|
||||||
|
|
||||||
docname, labelid, lineno = self.data['citations'].get(target, ('', '', 0))
|
docname, labelid, lineno = self.data['citations'].get(target, ('', '', 0))
|
||||||
@ -860,7 +860,7 @@ class StandardDomain(Domain):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
def _resolve_obj_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
def _resolve_obj_xref(self, env, fromdocname, builder, typ, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, nodes.Node, nodes.Node) -> nodes.Node # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, unicode, addnodes.pending_xref, nodes.Element) -> nodes.Element # NOQA
|
||||||
objtypes = self.objtypes_for_role(typ) or []
|
objtypes = self.objtypes_for_role(typ) or []
|
||||||
for objtype in objtypes:
|
for objtype in objtypes:
|
||||||
if (objtype, target) in self.data['objects']:
|
if (objtype, target) in self.data['objects']:
|
||||||
@ -874,7 +874,7 @@ class StandardDomain(Domain):
|
|||||||
labelid, contnode)
|
labelid, contnode)
|
||||||
|
|
||||||
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode):
|
||||||
# type: (BuildEnvironment, unicode, Builder, unicode, nodes.Node, nodes.Node) -> List[Tuple[unicode, nodes.Node]] # NOQA
|
# type: (BuildEnvironment, unicode, Builder, unicode, addnodes.pending_xref, nodes.Element) -> List[Tuple[unicode, nodes.Element]] # NOQA
|
||||||
results = [] # type: List[Tuple[unicode, nodes.Node]]
|
results = [] # type: List[Tuple[unicode, nodes.Node]]
|
||||||
ltarget = target.lower() # :ref: lowercases its target automatically
|
ltarget = target.lower() # :ref: lowercases its target automatically
|
||||||
for role in ('ref', 'option'): # do not try "keyword"
|
for role in ('ref', 'option'): # do not try "keyword"
|
||||||
|
Loading…
Reference in New Issue
Block a user