Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sphinx-doc/sphinx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sphinx/application.py34
-rw-r--r--sphinx/builders/__init__.py2
-rw-r--r--sphinx/builders/html/__init__.py2
-rw-r--r--sphinx/deprecation.py6
-rw-r--r--sphinx/domains/std.py2
-rw-r--r--sphinx/environment/collectors/toctree.py2
-rw-r--r--sphinx/ext/autodoc/directive.py2
-rw-r--r--sphinx/ext/autosummary/__init__.py2
-rw-r--r--sphinx/ext/napoleon/docstring.py2
-rw-r--r--sphinx/io.py2
-rw-r--r--sphinx/parsers.py5
-rw-r--r--sphinx/registry.py40
-rw-r--r--sphinx/roles.py2
-rw-r--r--sphinx/util/__init__.py2
-rw-r--r--sphinx/util/docfields.py4
-rw-r--r--sphinx/util/docutils.py12
-rw-r--r--sphinx/util/inspect.py4
-rw-r--r--sphinx/util/nodes.py2
-rw-r--r--sphinx/util/osutil.py2
-rw-r--r--sphinx/util/typing.py8
20 files changed, 68 insertions, 69 deletions
diff --git a/sphinx/application.py b/sphinx/application.py
index 7812cecc9..9878a3e71 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -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`.
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index 5128b016d..bedc65b61 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -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)
diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py
index 7244a3c4e..a78d54a16 100644
--- a/sphinx/builders/html/__init__.py
+++ b/sphinx/builders/html/__init__.py
@@ -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:
diff --git a/sphinx/deprecation.py b/sphinx/deprecation.py
index aeefcc61f..6b0bdd158 100644
--- a/sphinx/deprecation.py
+++ b/sphinx/deprecation.py
@@ -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)
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index a21461dc3..5e10646f0 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -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):
diff --git a/sphinx/environment/collectors/toctree.py b/sphinx/environment/collectors/toctree.py
index 3a724118e..921fc83de 100644
--- a/sphinx/environment/collectors/toctree.py
+++ b/sphinx/environment/collectors/toctree.py
@@ -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):
diff --git a/sphinx/ext/autodoc/directive.py b/sphinx/ext/autodoc/directive.py
index 8ed622d23..c58d0c411 100644
--- a/sphinx/ext/autodoc/directive.py
+++ b/sphinx/ext/autodoc/directive.py
@@ -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:
diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py
index 3cb5bc798..087aaa384 100644
--- a/sphinx/ext/autosummary/__init__.py
+++ b/sphinx/ext/autosummary/__init__.py
@@ -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.
diff --git a/sphinx/ext/napoleon/docstring.py b/sphinx/ext/napoleon/docstring.py
index 50c7309a5..d8cb75a5f 100644
--- a/sphinx/ext/napoleon/docstring.py
+++ b/sphinx/ext/napoleon/docstring.py
@@ -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:]
diff --git a/sphinx/io.py b/sphinx/io.py
index f6ab0e1ef..4aa1ecbe9 100644
--- a/sphinx/io.py
+++ b/sphinx/io.py
@@ -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
diff --git a/sphinx/parsers.py b/sphinx/parsers.py
index 2ca6ef111..7e80e4f22 100644
--- a/sphinx/parsers.py
+++ b/sphinx/parsers.py
@@ -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
diff --git a/sphinx/registry.py b/sphinx/registry.py
index cd7a7f4a0..67e2564ff 100644
--- a/sphinx/registry.py
+++ b/sphinx/registry.py
@@ -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:
diff --git a/sphinx/roles.py b/sphinx/roles.py
index c3f594cbb..e9452a78c 100644
--- a/sphinx/roles.py
+++ b/sphinx/roles.py
@@ -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
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index cb8669eca..d420f4f77 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -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:
diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py
index 43f15f507..1b82aa382 100644
--- a/sphinx/util/docfields.py
+++ b/sphinx/util/docfields.py
@@ -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)]
diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py
index a4ecdc647..44483bdd8 100644
--- a/sphinx/util/docutils.py
+++ b/sphinx/util/docutils.py
@@ -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:
diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index dbeb547b1..921dbc5e2 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -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):
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index 61d688d8e..44eb5d303 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -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
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
index c8ecce9e2..8e3d7afda 100644
--- a/sphinx/util/osutil.py
+++ b/sphinx/util/osutil.py
@@ -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
diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py
index 450bc40e6..fcecb8bb1 100644
--- a/sphinx/util/typing.py
+++ b/sphinx/util/typing.py
@@ -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):