mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge branch 'master' into do_type_check_on_travis
This commit is contained in:
@@ -52,6 +52,7 @@ add_documenter(InstanceAttributeDocumenter)
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Callable, Tuple, List # NOQA
|
||||
from jinja2 import BaseLoader # NOQA
|
||||
from sphinx import addnodes # NOQA
|
||||
from sphinx.builders import Builder # NOQA
|
||||
from sphinx.environment import BuildEnvironment # NOQA
|
||||
@@ -118,6 +119,8 @@ def generate_autosummary_docs(sources, output_dir=None, suffix='.rst',
|
||||
template_dirs = None # type: List[unicode]
|
||||
template_dirs = [os.path.join(package_dir, 'ext',
|
||||
'autosummary', 'templates')]
|
||||
|
||||
template_loader = None # type: BaseLoader
|
||||
if builder is not None:
|
||||
# allow the user to override the templates
|
||||
template_loader = BuiltinTemplateLoader()
|
||||
@@ -125,7 +128,7 @@ def generate_autosummary_docs(sources, output_dir=None, suffix='.rst',
|
||||
else:
|
||||
if template_dir:
|
||||
template_dirs.insert(0, template_dir)
|
||||
template_loader = FileSystemLoader(template_dirs)
|
||||
template_loader = FileSystemLoader(template_dirs) # type: ignore
|
||||
template_env = SandboxedEnvironment(loader=template_loader)
|
||||
|
||||
# read
|
||||
@@ -221,7 +224,7 @@ def generate_autosummary_docs(sources, output_dir=None, suffix='.rst',
|
||||
ns['underline'] = len(name) * '='
|
||||
|
||||
rendered = template.render(**ns)
|
||||
f.write(rendered)
|
||||
f.write(rendered) # type: ignore
|
||||
|
||||
# descend recursively to new files
|
||||
if new_files:
|
||||
|
||||
@@ -307,10 +307,9 @@ class DocTestBuilder(Builder):
|
||||
self.outfile = None # type: IO
|
||||
self.outfile = codecs.open(path.join(self.outdir, 'output.txt'), # type: ignore
|
||||
'w', encoding='utf-8')
|
||||
self.outfile.write('''\
|
||||
Results of doctest builder run on %s
|
||||
==================================%s
|
||||
''' % (date, '=' * len(date)))
|
||||
self.outfile.write(('Results of doctest builder run on %s\n' # type: ignore
|
||||
'==================================%s\n') %
|
||||
(date, '=' * len(date)))
|
||||
|
||||
def _out(self, text):
|
||||
# type: (unicode) -> None
|
||||
|
||||
@@ -25,8 +25,8 @@ from sphinx.util.osutil import mtimes_of_files
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Callable, Iterator, Tuple # NOQA
|
||||
from jinja2.environment import Environment # NOQA
|
||||
from sphinx.builders import Builder # NOQA
|
||||
from sphinx.environment import BuildEnvironment # NOQA
|
||||
from sphinx.themes import Theme # NOQA
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ class SphinxFileSystemLoader(FileSystemLoader):
|
||||
"""
|
||||
|
||||
def get_source(self, environment, template):
|
||||
# type: (BuildEnvironment, unicode) -> Tuple[unicode, unicode, Callable]
|
||||
# type: (Environment, unicode) -> Tuple[unicode, unicode, Callable]
|
||||
for searchpath in self.searchpath:
|
||||
filename = path.join(searchpath, template)
|
||||
f = open_if_exists(filename)
|
||||
@@ -169,12 +169,11 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
||||
self.environment.globals['accesskey'] = contextfunction(accesskey)
|
||||
self.environment.globals['idgen'] = idgen
|
||||
if use_i18n:
|
||||
self.environment.install_gettext_translations(
|
||||
builder.app.translator)
|
||||
self.environment.install_gettext_translations(builder.app.translator) # type: ignore # NOQA
|
||||
|
||||
def render(self, template, context):
|
||||
# type: (unicode, Dict) -> None
|
||||
return self.environment.get_template(template).render(context)
|
||||
self.environment.get_template(template).render(context)
|
||||
|
||||
def render_string(self, source, context):
|
||||
# type: (unicode, Dict) -> unicode
|
||||
@@ -187,7 +186,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
||||
# Loader interface
|
||||
|
||||
def get_source(self, environment, template):
|
||||
# type: (BuildEnvironment, unicode) -> Tuple[unicode, unicode, Callable]
|
||||
# type: (Environment, unicode) -> Tuple[unicode, unicode, Callable]
|
||||
loaders = self.loaders
|
||||
# exclamation mark starts search from theme
|
||||
if template.startswith('!'):
|
||||
|
||||
@@ -224,7 +224,7 @@ def save_traceback(app):
|
||||
platform.python_version(),
|
||||
platform.python_implementation(),
|
||||
docutils.__version__, docutils.__version_details__,
|
||||
jinja2.__version__,
|
||||
jinja2.__version__, # type: ignore
|
||||
last_msgs)).encode('utf-8'))
|
||||
if app is not None:
|
||||
for extname, extmod in iteritems(app._extensions):
|
||||
|
||||
@@ -49,7 +49,7 @@ VERBOSITY_MAP.update({
|
||||
2: logging.DEBUG,
|
||||
})
|
||||
|
||||
COLOR_MAP = defaultdict(lambda text: text) # type: Dict[int, unicode]
|
||||
COLOR_MAP = defaultdict(lambda: 'blue') # type: Dict[int, unicode]
|
||||
COLOR_MAP.update({
|
||||
logging.WARNING: 'darkred',
|
||||
logging.DEBUG: 'darkgray',
|
||||
@@ -90,7 +90,7 @@ class SphinxWarningLogRecord(logging.LogRecord):
|
||||
class SphinxLoggerAdapter(logging.LoggerAdapter):
|
||||
"""LoggerAdapter allowing ``type`` and ``subtype`` keywords."""
|
||||
|
||||
def log(self, level, msg, *args, **kwargs):
|
||||
def log(self, level, msg, *args, **kwargs): # type: ignore
|
||||
# type: (Union[int, str], unicode, Any, Any) -> None
|
||||
if isinstance(level, int):
|
||||
super(SphinxLoggerAdapter, self).log(level, msg, *args, **kwargs)
|
||||
|
||||
@@ -25,7 +25,8 @@ class BooleanParser(Parser):
|
||||
"""
|
||||
|
||||
def parse_compare(self):
|
||||
# type: () -> None
|
||||
# type: () -> nodes.Node
|
||||
node = None # type: nodes.Node
|
||||
token = self.stream.current
|
||||
if token.type == 'name':
|
||||
if token.value in ('true', 'false', 'True', 'False'):
|
||||
@@ -79,18 +80,18 @@ class Tags(object):
|
||||
def eval_node(node):
|
||||
# type: (nodes.Node) -> bool
|
||||
if isinstance(node, nodes.CondExpr):
|
||||
if eval_node(node.test):
|
||||
return eval_node(node.expr1)
|
||||
if eval_node(node.test): # type: ignore
|
||||
return eval_node(node.expr1) # type: ignore
|
||||
else:
|
||||
return eval_node(node.expr2)
|
||||
return eval_node(node.expr2) # type: ignore
|
||||
elif isinstance(node, nodes.And):
|
||||
return eval_node(node.left) and eval_node(node.right)
|
||||
return eval_node(node.left) and eval_node(node.right) # type: ignore
|
||||
elif isinstance(node, nodes.Or):
|
||||
return eval_node(node.left) or eval_node(node.right)
|
||||
return eval_node(node.left) or eval_node(node.right) # type: ignore
|
||||
elif isinstance(node, nodes.Not):
|
||||
return not eval_node(node.node)
|
||||
return not eval_node(node.node) # type: ignore
|
||||
elif isinstance(node, nodes.Name):
|
||||
return self.tags.get(node.name, False)
|
||||
return self.tags.get(node.name, False) # type: ignore
|
||||
else:
|
||||
raise ValueError('invalid node, check parsing')
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ class BaseRenderer(object):
|
||||
# type: (BaseLoader) -> None
|
||||
self.env = SandboxedEnvironment(loader=loader, extensions=['jinja2.ext.i18n'])
|
||||
self.env.filters['repr'] = repr
|
||||
self.env.install_gettext_translations(get_translator())
|
||||
self.env.install_gettext_translations(get_translator()) # type: ignore
|
||||
|
||||
def render(self, template_name, context):
|
||||
# type: (unicode, Dict) -> unicode
|
||||
|
||||
Reference in New Issue
Block a user