diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py index cf57d3ea2..1ef6628ac 100644 --- a/sphinx/ext/autosummary/generate.py +++ b/sphinx/ext/autosummary/generate.py @@ -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: diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index 9cc1a06af..73ce1a87c 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -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 diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index f879771e7..24b6aaf36 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -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('!'): diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 62bfc0cc6..89f3dcf33 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -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): diff --git a/sphinx/util/logging.py b/sphinx/util/logging.py index bc85df6b5..8fd05dbb9 100644 --- a/sphinx/util/logging.py +++ b/sphinx/util/logging.py @@ -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) diff --git a/sphinx/util/tags.py b/sphinx/util/tags.py index 78ef7a22f..18df4f9c3 100644 --- a/sphinx/util/tags.py +++ b/sphinx/util/tags.py @@ -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') diff --git a/sphinx/util/template.py b/sphinx/util/template.py index c742bbd17..7dee0d71c 100644 --- a/sphinx/util/template.py +++ b/sphinx/util/template.py @@ -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