mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
refactor: use raw Type for type annotations
This commit is contained in:
parent
f7a2e081c8
commit
1b0d4672a4
@ -443,7 +443,7 @@ class Sphinx:
|
||||
self.events.disconnect(listener_id)
|
||||
|
||||
def emit(self, event: str, *args: Any,
|
||||
allowed_exceptions: Tuple["Type[Exception]", ...] = ()) -> List:
|
||||
allowed_exceptions: Tuple[Type[Exception], ...] = ()) -> List:
|
||||
"""Emit *event* and pass *arguments* to the callback functions.
|
||||
|
||||
Return the return values of all callbacks as a list. Do not emit core
|
||||
@ -460,7 +460,7 @@ class Sphinx:
|
||||
return self.events.emit(event, *args, allowed_exceptions=allowed_exceptions)
|
||||
|
||||
def emit_firstresult(self, event: str, *args: Any,
|
||||
allowed_exceptions: Tuple["Type[Exception]", ...] = ()) -> Any:
|
||||
allowed_exceptions: Tuple[Type[Exception], ...] = ()) -> Any:
|
||||
"""Emit *event* and pass *arguments* to the callback functions.
|
||||
|
||||
Return the result of the first callback that doesn't return ``None``.
|
||||
@ -479,7 +479,7 @@ class Sphinx:
|
||||
|
||||
# registering addon parts
|
||||
|
||||
def add_builder(self, builder: "Type[Builder]", override: bool = False) -> None:
|
||||
def add_builder(self, builder: Type["Builder"], override: bool = False) -> None:
|
||||
"""Register a new builder.
|
||||
|
||||
:param builder: A builder class
|
||||
@ -542,7 +542,7 @@ class Sphinx:
|
||||
logger.debug('[app] adding event: %r', name)
|
||||
self.events.add(name)
|
||||
|
||||
def set_translator(self, name: str, translator_class: "Type[nodes.NodeVisitor]",
|
||||
def set_translator(self, name: str, translator_class: Type[nodes.NodeVisitor],
|
||||
override: bool = False) -> None:
|
||||
"""Register or override a Docutils translator class.
|
||||
|
||||
@ -561,7 +561,7 @@ class Sphinx:
|
||||
"""
|
||||
self.registry.add_translator(name, translator_class, override=override)
|
||||
|
||||
def add_node(self, node: "Type[Element]", override: bool = False,
|
||||
def add_node(self, node: Type[Element], override: bool = False,
|
||||
**kwargs: Tuple[Callable, Callable]) -> None:
|
||||
"""Register a Docutils node class.
|
||||
|
||||
@ -605,7 +605,7 @@ class Sphinx:
|
||||
docutils.register_node(node)
|
||||
self.registry.add_translation_handlers(node, **kwargs)
|
||||
|
||||
def add_enumerable_node(self, node: "Type[Element]", figtype: str,
|
||||
def add_enumerable_node(self, node: Type[Element], figtype: str,
|
||||
title_getter: TitleGetter = None, override: bool = False,
|
||||
**kwargs: Tuple[Callable, Callable]) -> None:
|
||||
"""Register a Docutils node class as a numfig target.
|
||||
@ -634,7 +634,7 @@ class Sphinx:
|
||||
self.registry.add_enumerable_node(node, figtype, title_getter, override=override)
|
||||
self.add_node(node, override=override, **kwargs)
|
||||
|
||||
def add_directive(self, name: str, cls: "Type[Directive]", override: bool = False) -> None:
|
||||
def add_directive(self, name: str, cls: Type[Directive], override: bool = False) -> None:
|
||||
"""Register a Docutils directive.
|
||||
|
||||
:param name: The name of directive
|
||||
@ -724,7 +724,7 @@ class Sphinx:
|
||||
role = roles.GenericRole(name, nodeclass)
|
||||
docutils.register_role(name, role)
|
||||
|
||||
def add_domain(self, domain: "Type[Domain]", override: bool = False) -> None:
|
||||
def add_domain(self, domain: Type[Domain], override: bool = False) -> None:
|
||||
"""Register a domain.
|
||||
|
||||
:param domain: A domain class
|
||||
@ -738,7 +738,7 @@ class Sphinx:
|
||||
self.registry.add_domain(domain, override=override)
|
||||
|
||||
def add_directive_to_domain(self, domain: str, name: str,
|
||||
cls: "Type[Directive]", override: bool = False) -> None:
|
||||
cls: Type[Directive], override: bool = False) -> None:
|
||||
"""Register a Docutils directive in a domain.
|
||||
|
||||
Like :meth:`add_directive`, but the directive is added to the domain
|
||||
@ -775,7 +775,7 @@ class Sphinx:
|
||||
"""
|
||||
self.registry.add_role_to_domain(domain, name, role, override=override)
|
||||
|
||||
def add_index_to_domain(self, domain: str, index: "Type[Index]", override: bool = False
|
||||
def add_index_to_domain(self, domain: str, index: Type[Index], override: bool = False
|
||||
) -> None:
|
||||
"""Register a custom index for a domain.
|
||||
|
||||
@ -793,7 +793,7 @@ class Sphinx:
|
||||
self.registry.add_index_to_domain(domain, index)
|
||||
|
||||
def add_object_type(self, directivename: str, rolename: str, indextemplate: str = '',
|
||||
parse_node: Callable = None, ref_nodeclass: "Type[TextElement]" = None,
|
||||
parse_node: Callable = None, ref_nodeclass: Type[TextElement] = None,
|
||||
objname: str = '', doc_field_types: List = [], override: bool = False
|
||||
) -> None:
|
||||
"""Register a new object type.
|
||||
@ -860,7 +860,7 @@ class Sphinx:
|
||||
override=override)
|
||||
|
||||
def add_crossref_type(self, directivename: str, rolename: str, indextemplate: str = '',
|
||||
ref_nodeclass: "Type[TextElement]" = None, objname: str = '',
|
||||
ref_nodeclass: Type[TextElement] = None, objname: str = '',
|
||||
override: bool = False) -> None:
|
||||
"""Register a new crossref object type.
|
||||
|
||||
@ -898,7 +898,7 @@ class Sphinx:
|
||||
indextemplate, ref_nodeclass, objname,
|
||||
override=override)
|
||||
|
||||
def add_transform(self, transform: "Type[Transform]") -> None:
|
||||
def add_transform(self, transform: Type[Transform]) -> None:
|
||||
"""Register a Docutils transform to be applied after parsing.
|
||||
|
||||
Add the standard docutils :class:`Transform` subclass *transform* to
|
||||
@ -933,7 +933,7 @@ class Sphinx:
|
||||
""" # NOQA
|
||||
self.registry.add_transform(transform)
|
||||
|
||||
def add_post_transform(self, transform: "Type[Transform]") -> None:
|
||||
def add_post_transform(self, transform: Type[Transform]) -> None:
|
||||
"""Register a Docutils transform to be applied before writing.
|
||||
|
||||
Add the standard docutils :class:`Transform` subclass *transform* to
|
||||
@ -1113,7 +1113,7 @@ class Sphinx:
|
||||
self.registry.add_documenter(cls.objtype, cls)
|
||||
self.add_directive('auto' + cls.objtype, AutodocDirective, override=override)
|
||||
|
||||
def add_autodoc_attrgetter(self, typ: "Type", getter: Callable[[Any, str, Any], Any]
|
||||
def add_autodoc_attrgetter(self, typ: Type, getter: Callable[[Any, str, Any], Any]
|
||||
) -> None:
|
||||
"""Register a new ``getattr``-like function for the autodoc extension.
|
||||
|
||||
@ -1157,7 +1157,7 @@ class Sphinx:
|
||||
"""
|
||||
self.registry.add_source_suffix(suffix, filetype, override=override)
|
||||
|
||||
def add_source_parser(self, parser: "Type[Parser]", override: bool = False) -> None:
|
||||
def add_source_parser(self, parser: Type[Parser], override: bool = False) -> None:
|
||||
"""Register a parser class.
|
||||
|
||||
If *override* is True, the given *parser* is forcedly installed even if
|
||||
@ -1172,7 +1172,7 @@ class Sphinx:
|
||||
"""
|
||||
self.registry.add_source_parser(parser, override=override)
|
||||
|
||||
def add_env_collector(self, collector: "Type[EnvironmentCollector]") -> None:
|
||||
def add_env_collector(self, collector: Type[EnvironmentCollector]) -> None:
|
||||
"""Register an environment collector class.
|
||||
|
||||
Refer to :ref:`collector-api`.
|
||||
|
@ -114,7 +114,7 @@ class Builder:
|
||||
self.env.set_versioning_method(self.versioning_method,
|
||||
self.versioning_compare)
|
||||
|
||||
def get_translator_class(self, *args: Any) -> "Type[nodes.NodeVisitor]":
|
||||
def get_translator_class(self, *args: Any) -> Type[nodes.NodeVisitor]:
|
||||
"""Return a class of translator."""
|
||||
return self.app.registry.get_translator_class(self)
|
||||
|
||||
|
@ -333,7 +333,7 @@ class StandaloneHTMLBuilder(Builder):
|
||||
self.script_files.append(JavaScript(filename, **kwargs))
|
||||
|
||||
@property
|
||||
def default_translator_class(self) -> "Type[nodes.NodeVisitor]": # type: ignore
|
||||
def default_translator_class(self) -> Type[nodes.NodeVisitor]: # type: ignore
|
||||
if not html5_ready or self.config.html4_writer:
|
||||
return HTMLTranslator
|
||||
else:
|
||||
|
@ -30,7 +30,7 @@ RemovedInNextVersionWarning = RemovedInSphinx50Warning
|
||||
|
||||
|
||||
def deprecated_alias(modname: str, objects: Dict[str, object],
|
||||
warning: "Type[Warning]", names: Dict[str, str] = {}) -> None:
|
||||
warning: Type[Warning], names: Dict[str, str] = {}) -> None:
|
||||
module = import_module(modname)
|
||||
sys.modules[modname] = _ModuleWrapper( # type: ignore
|
||||
module, modname, objects, warning, names)
|
||||
@ -39,7 +39,7 @@ def deprecated_alias(modname: str, objects: Dict[str, object],
|
||||
class _ModuleWrapper:
|
||||
def __init__(self, module: Any, modname: str,
|
||||
objects: Dict[str, object],
|
||||
warning: "Type[Warning]",
|
||||
warning: Type[Warning],
|
||||
names: Dict[str, str]) -> None:
|
||||
self._module = module
|
||||
self._modname = modname
|
||||
@ -67,7 +67,7 @@ class _ModuleWrapper:
|
||||
class DeprecatedDict(dict):
|
||||
"""A deprecated dict which warns on each access."""
|
||||
|
||||
def __init__(self, data: Dict, message: str, warning: "Type[Warning]") -> None:
|
||||
def __init__(self, data: Dict, message: str, warning: Type[Warning]) -> None:
|
||||
self.message = message
|
||||
self.warning = warning
|
||||
super().__init__(data)
|
||||
|
@ -1057,7 +1057,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def get_enumerable_node_type(self, node: Node) -> str:
|
||||
"""Get type of enumerable nodes."""
|
||||
def has_child(node: Element, cls: "Type") -> bool:
|
||||
def has_child(node: Element, cls: Type) -> bool:
|
||||
return any(isinstance(child, cls) for child in node)
|
||||
|
||||
if isinstance(node, nodes.section):
|
||||
|
@ -62,7 +62,7 @@ class TocTreeCollector(EnvironmentCollector):
|
||||
docname = app.env.docname
|
||||
numentries = [0] # nonlocal again...
|
||||
|
||||
def traverse_in_section(node: Element, cls: "Type[N]") -> List[N]:
|
||||
def traverse_in_section(node: Element, cls: Type[N]) -> List[N]:
|
||||
"""Like traverse(), but stay within the same section."""
|
||||
result: List[N] = []
|
||||
if isinstance(node, cls):
|
||||
|
@ -79,7 +79,7 @@ class DocumenterBridge:
|
||||
return self._reporter
|
||||
|
||||
|
||||
def process_documenter_options(documenter: "Type[Documenter]", config: Config, options: Dict
|
||||
def process_documenter_options(documenter: Type[Documenter], config: Config, options: Dict
|
||||
) -> Options:
|
||||
"""Recognize options of Documenter from user input."""
|
||||
for name in AUTODOC_DEFAULT_OPTIONS:
|
||||
|
@ -178,7 +178,7 @@ class FakeDirective(DocumenterBridge):
|
||||
super().__init__(env, None, Options(), 0, state)
|
||||
|
||||
|
||||
def get_documenter(app: Sphinx, obj: Any, parent: Any) -> "Type[Documenter]":
|
||||
def get_documenter(app: Sphinx, obj: Any, parent: Any) -> Type[Documenter]:
|
||||
"""Get an autodoc.Documenter class suitable for documenting the given
|
||||
object.
|
||||
|
||||
|
@ -826,7 +826,7 @@ class GoogleDocstring:
|
||||
colon,
|
||||
"".join(after_colon).strip())
|
||||
|
||||
def _qualify_name(self, attr_name: str, klass: "Type") -> str:
|
||||
def _qualify_name(self, attr_name: str, klass: Type) -> str:
|
||||
if klass and '.' not in attr_name:
|
||||
if attr_name.startswith('~'):
|
||||
attr_name = attr_name[1:]
|
||||
|
@ -61,7 +61,7 @@ class SphinxBaseReader(standalone.Reader):
|
||||
self._app = app # hold application object only for compatibility
|
||||
self._env = app.env
|
||||
|
||||
def get_transforms(self) -> List["Type[Transform]"]:
|
||||
def get_transforms(self) -> List[Type[Transform]]:
|
||||
transforms = super().get_transforms() + self.transforms
|
||||
|
||||
# remove transforms which is not needed for Sphinx
|
||||
|
@ -16,14 +16,13 @@ import docutils.parsers.rst
|
||||
from docutils import nodes
|
||||
from docutils.parsers.rst import states
|
||||
from docutils.statemachine import StringList
|
||||
from docutils.transforms import Transform
|
||||
from docutils.transforms.universal import SmartQuotes
|
||||
|
||||
from sphinx.deprecation import RemovedInSphinx50Warning
|
||||
from sphinx.util.rst import append_epilog, prepend_prolog
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from docutils.transforms import Transform # NOQA
|
||||
|
||||
from sphinx.application import Sphinx
|
||||
|
||||
|
||||
@ -70,7 +69,7 @@ class Parser(docutils.parsers.Parser):
|
||||
class RSTParser(docutils.parsers.rst.Parser, Parser):
|
||||
"""A reST parser for Sphinx."""
|
||||
|
||||
def get_transforms(self) -> List[Type["Transform"]]:
|
||||
def get_transforms(self) -> List[Type[Transform]]:
|
||||
"""Sphinx's reST parser replaces a transform class for smart-quotes by own's
|
||||
|
||||
refs: sphinx.io.SphinxStandaloneReader
|
||||
|
@ -122,7 +122,7 @@ class SphinxComponentRegistry:
|
||||
#: additional transforms; list of transforms
|
||||
self.transforms = [] # type: List[Type[Transform]]
|
||||
|
||||
def add_builder(self, builder: "Type[Builder]", override: bool = False) -> None:
|
||||
def add_builder(self, builder: Type[Builder], override: bool = False) -> None:
|
||||
logger.debug('[app] adding builder: %r', builder)
|
||||
if not hasattr(builder, 'name'):
|
||||
raise ExtensionError(__('Builder class %s has no "name" attribute') % builder)
|
||||
@ -151,7 +151,7 @@ class SphinxComponentRegistry:
|
||||
|
||||
return self.builders[name](app)
|
||||
|
||||
def add_domain(self, domain: "Type[Domain]", override: bool = False) -> None:
|
||||
def add_domain(self, domain: Type[Domain], override: bool = False) -> None:
|
||||
logger.debug('[app] adding domain: %r', domain)
|
||||
if domain.name in self.domains and not override:
|
||||
raise ExtensionError(__('domain %s already registered') % domain.name)
|
||||
@ -174,7 +174,7 @@ class SphinxComponentRegistry:
|
||||
yield domain
|
||||
|
||||
def add_directive_to_domain(self, domain: str, name: str,
|
||||
cls: "Type[Directive]", override: bool = False) -> None:
|
||||
cls: Type[Directive], override: bool = False) -> None:
|
||||
logger.debug('[app] adding directive to domain: %r', (domain, name, cls))
|
||||
if domain not in self.domains:
|
||||
raise ExtensionError(__('domain %s not yet registered') % domain)
|
||||
@ -197,7 +197,7 @@ class SphinxComponentRegistry:
|
||||
(name, domain))
|
||||
roles[name] = role
|
||||
|
||||
def add_index_to_domain(self, domain: str, index: "Type[Index]",
|
||||
def add_index_to_domain(self, domain: str, index: Type[Index],
|
||||
override: bool = False) -> None:
|
||||
logger.debug('[app] adding index to domain: %r', (domain, index))
|
||||
if domain not in self.domains:
|
||||
@ -209,7 +209,7 @@ class SphinxComponentRegistry:
|
||||
indices.append(index)
|
||||
|
||||
def add_object_type(self, directivename: str, rolename: str, indextemplate: str = '',
|
||||
parse_node: Callable = None, ref_nodeclass: "Type[TextElement]" = None,
|
||||
parse_node: Callable = None, ref_nodeclass: Type[TextElement] = None,
|
||||
objname: str = '', doc_field_types: List = [], override: bool = False
|
||||
) -> None:
|
||||
logger.debug('[app] adding object type: %r',
|
||||
@ -233,7 +233,7 @@ class SphinxComponentRegistry:
|
||||
object_types[directivename] = ObjType(objname or directivename, rolename)
|
||||
|
||||
def add_crossref_type(self, directivename: str, rolename: str, indextemplate: str = '',
|
||||
ref_nodeclass: "Type[TextElement]" = None, objname: str = '',
|
||||
ref_nodeclass: Type[TextElement] = None, objname: str = '',
|
||||
override: bool = False) -> None:
|
||||
logger.debug('[app] adding crossref type: %r',
|
||||
(directivename, rolename, indextemplate, ref_nodeclass, objname))
|
||||
@ -259,7 +259,7 @@ class SphinxComponentRegistry:
|
||||
else:
|
||||
self.source_suffix[suffix] = filetype
|
||||
|
||||
def add_source_parser(self, parser: "Type[Parser]", override: bool = False) -> None:
|
||||
def add_source_parser(self, parser: Type[Parser], override: bool = False) -> None:
|
||||
logger.debug('[app] adding search source_parser: %r', parser)
|
||||
|
||||
# create a map from filetype to parser
|
||||
@ -270,13 +270,13 @@ class SphinxComponentRegistry:
|
||||
else:
|
||||
self.source_parsers[filetype] = parser
|
||||
|
||||
def get_source_parser(self, filetype: str) -> "Type[Parser]":
|
||||
def get_source_parser(self, filetype: str) -> Type[Parser]:
|
||||
try:
|
||||
return self.source_parsers[filetype]
|
||||
except KeyError as exc:
|
||||
raise SphinxError(__('Source parser for %s not registered') % filetype) from exc
|
||||
|
||||
def get_source_parsers(self) -> Dict[str, "Type[Parser]"]:
|
||||
def get_source_parsers(self) -> Dict[str, Type[Parser]]:
|
||||
return self.source_parsers
|
||||
|
||||
def create_source_parser(self, app: "Sphinx", filename: str) -> Parser:
|
||||
@ -286,7 +286,7 @@ class SphinxComponentRegistry:
|
||||
parser.set_application(app)
|
||||
return parser
|
||||
|
||||
def get_source_input(self, filetype: str) -> "Type[Input]":
|
||||
def get_source_input(self, filetype: str) -> Type[Input]:
|
||||
warnings.warn('SphinxComponentRegistry.get_source_input() is deprecated.',
|
||||
RemovedInSphinx60Warning)
|
||||
|
||||
@ -299,14 +299,14 @@ class SphinxComponentRegistry:
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
def add_translator(self, name: str, translator: "Type[nodes.NodeVisitor]",
|
||||
def add_translator(self, name: str, translator: Type[nodes.NodeVisitor],
|
||||
override: bool = False) -> None:
|
||||
logger.debug('[app] Change of translator for the %s builder.', name)
|
||||
if name in self.translators and not override:
|
||||
raise ExtensionError(__('Translator for %r already exists') % name)
|
||||
self.translators[name] = translator
|
||||
|
||||
def add_translation_handlers(self, node: "Type[Element]",
|
||||
def add_translation_handlers(self, node: Type[Element],
|
||||
**kwargs: Tuple[Callable, Callable]) -> None:
|
||||
logger.debug('[app] adding translation_handlers: %r, %r', node, kwargs)
|
||||
for builder_name, handlers in kwargs.items():
|
||||
@ -320,7 +320,7 @@ class SphinxComponentRegistry:
|
||||
'function tuple: %r=%r') % (builder_name, handlers)
|
||||
) from exc
|
||||
|
||||
def get_translator_class(self, builder: Builder) -> "Type[nodes.NodeVisitor]":
|
||||
def get_translator_class(self, builder: Builder) -> Type[nodes.NodeVisitor]:
|
||||
return self.translators.get(builder.name,
|
||||
builder.default_translator_class)
|
||||
|
||||
@ -342,24 +342,24 @@ class SphinxComponentRegistry:
|
||||
|
||||
return translator
|
||||
|
||||
def add_transform(self, transform: "Type[Transform]") -> None:
|
||||
def add_transform(self, transform: Type[Transform]) -> None:
|
||||
logger.debug('[app] adding transform: %r', transform)
|
||||
self.transforms.append(transform)
|
||||
|
||||
def get_transforms(self) -> List["Type[Transform]"]:
|
||||
def get_transforms(self) -> List[Type[Transform]]:
|
||||
return self.transforms
|
||||
|
||||
def add_post_transform(self, transform: "Type[Transform]") -> None:
|
||||
def add_post_transform(self, transform: Type[Transform]) -> None:
|
||||
logger.debug('[app] adding post transform: %r', transform)
|
||||
self.post_transforms.append(transform)
|
||||
|
||||
def get_post_transforms(self) -> List["Type[Transform]"]:
|
||||
def get_post_transforms(self) -> List[Type[Transform]]:
|
||||
return self.post_transforms
|
||||
|
||||
def add_documenter(self, objtype: str, documenter: "Type[Documenter]") -> None:
|
||||
def add_documenter(self, objtype: str, documenter: Type["Documenter"]) -> None:
|
||||
self.documenters[objtype] = documenter
|
||||
|
||||
def add_autodoc_attrgetter(self, typ: "Type",
|
||||
def add_autodoc_attrgetter(self, typ: Type,
|
||||
attrgetter: Callable[[Any, str, Any], Any]) -> None:
|
||||
self.autodoc_attrgettrs[typ] = attrgetter
|
||||
|
||||
@ -384,7 +384,7 @@ class SphinxComponentRegistry:
|
||||
else:
|
||||
self.latex_packages.append((name, options))
|
||||
|
||||
def add_enumerable_node(self, node: "Type[Node]", figtype: str,
|
||||
def add_enumerable_node(self, node: Type[Node], figtype: str,
|
||||
title_getter: TitleGetter = None, override: bool = False) -> None:
|
||||
logger.debug('[app] adding enumerable node: (%r, %r, %r)', node, figtype, title_getter)
|
||||
if node in self.enumerable_nodes and not override:
|
||||
|
@ -69,7 +69,7 @@ class XRefRole(ReferenceRole):
|
||||
innernodeclass = nodes.literal # type: Type[TextElement]
|
||||
|
||||
def __init__(self, fix_parens: bool = False, lowercase: bool = False,
|
||||
nodeclass: "Type[Element]" = None, innernodeclass: "Type[TextElement]" = None,
|
||||
nodeclass: Type[Element] = None, innernodeclass: Type[TextElement] = None,
|
||||
warn_dangling: bool = False) -> None:
|
||||
self.fix_parens = fix_parens
|
||||
self.lowercase = lowercase
|
||||
|
@ -510,7 +510,7 @@ class progress_message:
|
||||
def __enter__(self) -> None:
|
||||
logger.info(bold(self.message + '... '), nonl=True)
|
||||
|
||||
def __exit__(self, exc_type: "Type[Exception]", exc_value: Exception, traceback: Any) -> bool: # NOQA
|
||||
def __exit__(self, exc_type: Type[Exception], exc_value: Exception, traceback: Any) -> bool: # NOQA
|
||||
if isinstance(exc_value, SkipProgressMessage):
|
||||
logger.info(__('skipped'))
|
||||
if exc_value.args:
|
||||
|
@ -61,7 +61,7 @@ class Field:
|
||||
self.bodyrolename = bodyrolename
|
||||
|
||||
def make_xref(self, rolename: str, domain: str, target: str,
|
||||
innernode: "Type[TextlikeNode]" = addnodes.literal_emphasis,
|
||||
innernode: Type[TextlikeNode] = addnodes.literal_emphasis,
|
||||
contnode: Node = None, env: "BuildEnvironment" = None) -> Node:
|
||||
if not rolename:
|
||||
return contnode or innernode(target, target)
|
||||
@ -73,7 +73,7 @@ class Field:
|
||||
return refnode
|
||||
|
||||
def make_xrefs(self, rolename: str, domain: str, target: str,
|
||||
innernode: "Type[TextlikeNode]" = addnodes.literal_emphasis,
|
||||
innernode: Type[TextlikeNode] = addnodes.literal_emphasis,
|
||||
contnode: Node = None, env: "BuildEnvironment" = None) -> List[Node]:
|
||||
return [self.make_xref(rolename, domain, target, innernode, contnode, env)]
|
||||
|
||||
|
@ -67,7 +67,7 @@ def is_directive_registered(name: str) -> bool:
|
||||
return name in directives._directives # type: ignore
|
||||
|
||||
|
||||
def register_directive(name: str, directive: "Type[Directive]") -> None:
|
||||
def register_directive(name: str, directive: Type[Directive]) -> None:
|
||||
"""Register a directive to docutils.
|
||||
|
||||
This modifies global state of docutils. So it is better to use this
|
||||
@ -95,12 +95,12 @@ def unregister_role(name: str) -> None:
|
||||
roles._roles.pop(name, None) # type: ignore
|
||||
|
||||
|
||||
def is_node_registered(node: "Type[Element]") -> bool:
|
||||
def is_node_registered(node: Type[Element]) -> bool:
|
||||
"""Check the *node* is already registered."""
|
||||
return hasattr(nodes.GenericNodeVisitor, 'visit_' + node.__name__)
|
||||
|
||||
|
||||
def register_node(node: "Type[Element]") -> None:
|
||||
def register_node(node: Type[Element]) -> None:
|
||||
"""Register a node to docutils.
|
||||
|
||||
This modifies global state of some visitors. So it is better to use this
|
||||
@ -111,7 +111,7 @@ def register_node(node: "Type[Element]") -> None:
|
||||
additional_nodes.add(node)
|
||||
|
||||
|
||||
def unregister_node(node: "Type[Element]") -> None:
|
||||
def unregister_node(node: Type[Element]) -> None:
|
||||
"""Unregister a node from docutils.
|
||||
|
||||
This is inverse of ``nodes._add_nodes_class_names()``.
|
||||
@ -182,7 +182,7 @@ class sphinx_domains:
|
||||
def __enter__(self) -> None:
|
||||
self.enable()
|
||||
|
||||
def __exit__(self, exc_type: "Type[Exception]", exc_value: Exception, traceback: Any) -> None: # NOQA
|
||||
def __exit__(self, exc_type: Type[Exception], exc_value: Exception, traceback: Any) -> None: # NOQA
|
||||
self.disable()
|
||||
|
||||
def enable(self) -> None:
|
||||
@ -226,7 +226,7 @@ class sphinx_domains:
|
||||
|
||||
raise ElementLookupError
|
||||
|
||||
def lookup_directive(self, directive_name: str, language_module: ModuleType, document: nodes.document) -> Tuple[Optional["Type[Directive]"], List[system_message]]: # NOQA
|
||||
def lookup_directive(self, directive_name: str, language_module: ModuleType, document: nodes.document) -> Tuple[Optional[Type[Directive]], List[system_message]]: # NOQA
|
||||
try:
|
||||
return self.lookup_domain_element('directive', directive_name)
|
||||
except ElementLookupError:
|
||||
|
@ -20,7 +20,7 @@ import warnings
|
||||
from functools import partial, partialmethod
|
||||
from inspect import Parameter, isclass, ismethod, ismethoddescriptor, ismodule # NOQA
|
||||
from io import StringIO
|
||||
from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple, cast
|
||||
from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple, Type, cast
|
||||
|
||||
from sphinx.deprecation import RemovedInSphinx50Warning
|
||||
from sphinx.pycode.ast import ast # for py36-37
|
||||
@ -175,7 +175,7 @@ def getglobals(obj: Any) -> Mapping[str, Any]:
|
||||
return {}
|
||||
|
||||
|
||||
def getmro(obj: Any) -> Tuple["Type", ...]:
|
||||
def getmro(obj: Any) -> Tuple[Type, ...]:
|
||||
"""Get __mro__ from given *obj* safely."""
|
||||
__mro__ = safe_getattr(obj, '__mro__', None)
|
||||
if isinstance(__mro__, tuple):
|
||||
|
@ -58,7 +58,7 @@ class NodeMatcher:
|
||||
# => [<reference ...>, <reference ...>, ...]
|
||||
"""
|
||||
|
||||
def __init__(self, *node_classes: "Type[Node]", **attrs: Any) -> None:
|
||||
def __init__(self, *node_classes: Type[Node], **attrs: Any) -> None:
|
||||
self.classes = node_classes
|
||||
self.attrs = attrs
|
||||
|
||||
|
@ -214,7 +214,7 @@ class FileAvoidWrite:
|
||||
def __enter__(self) -> "FileAvoidWrite":
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type: "Type[Exception]", exc_value: Exception, traceback: Any) -> bool: # NOQA
|
||||
def __exit__(self, exc_type: Type[Exception], exc_value: Exception, traceback: Any) -> bool: # NOQA
|
||||
self.close()
|
||||
return True
|
||||
|
||||
|
@ -12,7 +12,7 @@ import sys
|
||||
import typing
|
||||
from struct import Struct
|
||||
from types import TracebackType
|
||||
from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, TypeVar, Union
|
||||
from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Type, TypeVar, Union
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.parsers.rst.states import Inliner
|
||||
@ -101,7 +101,7 @@ def is_system_TypeVar(typ: Any) -> bool:
|
||||
return modname == 'typing' and isinstance(typ, TypeVar)
|
||||
|
||||
|
||||
def restify(cls: Optional["Type"]) -> str:
|
||||
def restify(cls: Optional[Type]) -> str:
|
||||
"""Convert python class to a reST reference."""
|
||||
from sphinx.util import inspect # lazy loading
|
||||
|
||||
@ -128,7 +128,7 @@ def restify(cls: Optional["Type"]) -> str:
|
||||
return _restify_py36(cls)
|
||||
|
||||
|
||||
def _restify_py37(cls: Optional["Type"]) -> str:
|
||||
def _restify_py37(cls: Optional[Type]) -> str:
|
||||
"""Convert python class to a reST reference."""
|
||||
from sphinx.util import inspect # lazy loading
|
||||
|
||||
@ -183,7 +183,7 @@ def _restify_py37(cls: Optional["Type"]) -> str:
|
||||
return ':obj:`%s.%s`' % (cls.__module__, cls.__name__)
|
||||
|
||||
|
||||
def _restify_py36(cls: Optional["Type"]) -> str:
|
||||
def _restify_py36(cls: Optional[Type]) -> str:
|
||||
module = getattr(cls, '__module__', None)
|
||||
if module == 'typing':
|
||||
if getattr(cls, '_name', None):
|
||||
|
Loading…
Reference in New Issue
Block a user