summaryrefslogtreecommitdiff
path: root/sphinx/builders/xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/builders/xml.py')
-rw-r--r--sphinx/builders/xml.py32
1 files changed, 11 insertions, 21 deletions
diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py
index b3d12149b..4aaa0811d 100644
--- a/sphinx/builders/xml.py
+++ b/sphinx/builders/xml.py
@@ -9,23 +9,20 @@
"""
from os import path
+from typing import Any, Dict, Iterator, Set, Type, Union
from docutils import nodes
from docutils.io import StringOutput
+from docutils.nodes import Node
from docutils.writers.docutils_xml import XMLTranslator
+from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.locale import __
from sphinx.util import logging
from sphinx.util.osutil import ensuredir, os_path
from sphinx.writers.xml import XMLWriter, PseudoXMLWriter
-if False:
- # For type annotation
- from typing import Any, Dict, Iterator, Set, Type # NOQA
- from docutils.writers.xml import BaseXMLWriter # NOQA
- from sphinx.application import Sphinx # NOQA
-
logger = logging.getLogger(__name__)
@@ -40,15 +37,13 @@ class XMLBuilder(Builder):
out_suffix = '.xml'
allow_parallel = True
- _writer_class = XMLWriter # type: Type[BaseXMLWriter]
+ _writer_class = XMLWriter # type: Union[Type[XMLWriter], Type[PseudoXMLWriter]]
default_translator_class = XMLTranslator
- def init(self):
- # type: () -> None
+ def init(self) -> None:
pass
- def get_outdated_docs(self):
- # type: () -> Iterator[str]
+ def get_outdated_docs(self) -> Iterator[str]:
for docname in self.env.found_docs:
if docname not in self.env.all_docs:
yield docname
@@ -66,16 +61,13 @@ class XMLBuilder(Builder):
# source doesn't exist anymore
pass
- def get_target_uri(self, docname, typ=None):
- # type: (str, str) -> str
+ def get_target_uri(self, docname: str, typ: str = None) -> str:
return docname
- def prepare_writing(self, docnames):
- # type: (Set[str]) -> None
+ def prepare_writing(self, docnames: Set[str]) -> None:
self.writer = self._writer_class(self)
- def write_doc(self, docname, doctree):
- # type: (str, nodes.Node) -> None
+ def write_doc(self, docname: str, doctree: Node) -> None:
# work around multiple string % tuple issues in docutils;
# replace tuples in attribute values with lists
doctree = doctree.deepcopy()
@@ -98,8 +90,7 @@ class XMLBuilder(Builder):
except OSError as err:
logger.warning(__("error writing file %s: %s"), outfilename, err)
- def finish(self):
- # type: () -> None
+ def finish(self) -> None:
pass
@@ -116,8 +107,7 @@ class PseudoXMLBuilder(XMLBuilder):
_writer_class = PseudoXMLWriter
-def setup(app):
- # type: (Sphinx) -> Dict[str, Any]
+def setup(app: Sphinx) -> Dict[str, Any]:
app.add_builder(XMLBuilder)
app.add_builder(PseudoXMLBuilder)