diff options
-rw-r--r-- | sphinx/application.py | 34 | ||||
-rw-r--r-- | sphinx/builders/__init__.py | 2 | ||||
-rw-r--r-- | sphinx/builders/html/__init__.py | 2 | ||||
-rw-r--r-- | sphinx/deprecation.py | 6 | ||||
-rw-r--r-- | sphinx/domains/std.py | 2 | ||||
-rw-r--r-- | sphinx/environment/collectors/toctree.py | 2 | ||||
-rw-r--r-- | sphinx/ext/autodoc/directive.py | 2 | ||||
-rw-r--r-- | sphinx/ext/autosummary/__init__.py | 2 | ||||
-rw-r--r-- | sphinx/ext/napoleon/docstring.py | 2 | ||||
-rw-r--r-- | sphinx/io.py | 2 | ||||
-rw-r--r-- | sphinx/parsers.py | 5 | ||||
-rw-r--r-- | sphinx/registry.py | 40 | ||||
-rw-r--r-- | sphinx/roles.py | 2 | ||||
-rw-r--r-- | sphinx/util/__init__.py | 2 | ||||
-rw-r--r-- | sphinx/util/docfields.py | 4 | ||||
-rw-r--r-- | sphinx/util/docutils.py | 12 | ||||
-rw-r--r-- | sphinx/util/inspect.py | 4 | ||||
-rw-r--r-- | sphinx/util/nodes.py | 2 | ||||
-rw-r--r-- | sphinx/util/osutil.py | 2 | ||||
-rw-r--r-- | sphinx/util/typing.py | 8 |
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): |