Merge pull request #5828 from tk0miya/reorder_arguments_for_Translators

Reorder the arguments for translators
This commit is contained in:
Takeshi KOMIYA authored and GitHub committed 2018-12-18 23:17:19 +09:00
commit bc7814e33a
8 files changed
+48 -19

No files matched your search

+2
View File
@@ -37,6 +37,8 @@ Incompatible changes
(refs: #5772)
* #5770: doctest: Follow :confval:`highlight_language` on highlighting doctest
block. As a result, they are highlighted as python3 by default.
* The order of argument for ``HTMLTranslator``, ``HTML5Translator`` and
``ManualPageTranslator`` are changed
Deprecated
----------
+2 -2
View File
@@ -392,8 +392,8 @@ class SphinxTranslator(nodes.NodeVisitor):
This class is strongly coupled with Sphinx.
"""
def __init__(self, builder, document):
# type: (Builder, nodes.document) -> None
def __init__(self, document, builder):
# type: (nodes.document, Builder) -> None
super().__init__(document)
self.builder = builder
self.config = builder.config
+14 -5
View File
@@ -19,7 +19,8 @@ from docutils import nodes
from docutils.writers.html4css1 import Writer, HTMLTranslator as BaseTranslator
from sphinx import addnodes
from sphinx.deprecation import RemovedInSphinx30Warning
from sphinx.builders import Builder
from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning
from sphinx.locale import admonitionlabels, _, __
from sphinx.util import logging
from sphinx.util.docutils import SphinxTranslator
@@ -53,7 +54,7 @@ class HTMLWriter(Writer):
def translate(self):
# type: () -> None
# sadly, this is mostly copied from parent class
visitor = self.builder.create_translator(self.builder, self.document)
visitor = self.builder.create_translator(self.document, self.builder)
self.visitor = cast(HTMLTranslator, visitor)
self.document.walkabout(visitor)
self.output = self.visitor.astext()
@@ -73,9 +74,17 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator):
builder = None # type: StandaloneHTMLBuilder
def __init__(self, builder, document):
# type: (StandaloneHTMLBuilder, nodes.document) -> None
super().__init__(builder, document)
def __init__(self, *args):
# type: (Any) -> None
if isinstance(args[0], nodes.document) and isinstance(args[1], Builder):
document, builder = args
else:
warnings.warn('The order of arguments for HTMLTranslator has been changed. '
'Please give "document" as 1st and "builder" as 2nd.',
RemovedInSphinx40Warning, stacklevel=2)
builder, document = args
super().__init__(document, builder)
self.highlighter = self.builder.highlighter
self.docnames = [self.builder.current_docname] # for singlehtml builder
self.manpages_url = self.config.manpages_url
+13 -4
View File
@@ -18,7 +18,8 @@ from docutils import nodes
from docutils.writers.html5_polyglot import HTMLTranslator as BaseTranslator
from sphinx import addnodes
from sphinx.deprecation import RemovedInSphinx30Warning
from sphinx.builders import Builder
from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning
from sphinx.locale import admonitionlabels, _, __
from sphinx.util import logging
from sphinx.util.docutils import SphinxTranslator
@@ -43,9 +44,17 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
builder = None # type: StandaloneHTMLBuilder
def __init__(self, builder, document):
# type: (StandaloneHTMLBuilder, nodes.document) -> None
super().__init__(builder, document)
def __init__(self, *args):
# type: (Any) -> None
if isinstance(args[0], nodes.document) and isinstance(args[1], Builder):
document, builder = args
else:
warnings.warn('The order of arguments for HTML5Translator has been changed. '
'Please give "document" as 1st and "builder" as 2nd.',
RemovedInSphinx40Warning, stacklevel=2)
builder, document = args
super().__init__(document, builder)
self.highlighter = self.builder.highlighter
self.docnames = [self.builder.current_docname] # for singlehtml builder
self.manpages_url = self.config.manpages_url
+1 -1
View File
@@ -508,7 +508,7 @@ class LaTeXTranslator(SphinxTranslator):
def __init__(self, document, builder):
# type: (nodes.document, LaTeXBuilder) -> None
super().__init__(builder, document)
super().__init__(document, builder)
self.body = [] # type: List[str]
# flags
+14 -5
View File
@@ -8,6 +8,7 @@
:license: BSD, see LICENSE for details.
"""
import warnings
from typing import Iterable, cast
from docutils import nodes
@@ -17,6 +18,8 @@ from docutils.writers.manpage import (
)
from sphinx import addnodes
from sphinx.builders import Builder
from sphinx.deprecation import RemovedInSphinx40Warning
from sphinx.locale import admonitionlabels, _
from sphinx.util import logging
from sphinx.util.docutils import SphinxTranslator
@@ -26,7 +29,6 @@ from sphinx.util.nodes import NodeMatcher
if False:
# For type annotation
from typing import Any, Dict # NOQA
from sphinx.builders import Builder # NOQA
logger = logging.getLogger(__name__)
@@ -41,7 +43,7 @@ class ManualPageWriter(Writer):
# type: () -> None
transform = NestedInlineTransform(self.document)
transform.apply()
visitor = self.builder.create_translator(self.builder, self.document)
visitor = self.builder.create_translator(self.document, self.builder)
self.visitor = cast(ManualPageTranslator, visitor)
self.document.walkabout(visitor)
self.output = self.visitor.astext()
@@ -84,9 +86,16 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
_docinfo = {} # type: Dict[str, Any]
def __init__(self, builder, document):
# type: (Builder, nodes.document) -> None
super().__init__(builder, document)
def __init__(self, *args):
# type: (Any) -> None
if isinstance(args[0], nodes.document) and isinstance(args[1], Builder):
document, builder = args
else:
warnings.warn('The order of arguments for ManualPageTranslator has been changed. '
'Please give "document" as 1st and "builder" as 2nd.',
RemovedInSphinx40Warning, stacklevel=2)
builder, document = args
super().__init__(document, builder)
self.in_productionlist = 0
+1 -1
View File
@@ -168,7 +168,7 @@ class TexinfoTranslator(SphinxTranslator):
def __init__(self, document, builder):
# type: (nodes.document, TexinfoBuilder) -> None
super().__init__(builder, document)
super().__init__(document, builder)
self.init_settings()
self.written_ids = set() # type: Set[str]
+1 -1
View File
@@ -396,7 +396,7 @@ class TextTranslator(SphinxTranslator):
def __init__(self, document, builder):
# type: (nodes.document, TextBuilder) -> None
super().__init__(builder, document)
super().__init__(document, builder)
newlines = self.config.text_newlines
if newlines == 'windows':