Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sphinx-doc/sphinx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-08 08:05:58 +0300
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-16 06:06:22 +0300
commitceec82451bfbefc0fd720bbf48e4b9a029cacd99 (patch)
tree1d76b5d59db131fb574cd649e0c283534fd6710f /sphinx/jinja2glue.py
parent3407ef0ca8a8ce41e67092d2605f8fc77bebb982 (diff)
Add type-check annotations to sphinx.*
Diffstat (limited to 'sphinx/jinja2glue.py')
-rw-r--r--sphinx/jinja2glue.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py
index 6e2ef7186..c1bd04765 100644
--- a/sphinx/jinja2glue.py
+++ b/sphinx/jinja2glue.py
@@ -17,18 +17,28 @@ from jinja2 import FileSystemLoader, BaseLoader, TemplateNotFound, \
contextfunction
from jinja2.utils import open_if_exists
from jinja2.sandbox import SandboxedEnvironment
+from typing import Any, Callable, Iterator, Tuple # NOQA
from sphinx.application import TemplateBridge
from sphinx.util.osutil import mtimes_of_files
+if False:
+ # For type annotation
+ from typing import Any, Callable, Iterator, Tuple # NOQA
+ from sphinx.builders import Builder # NOQA
+ from sphinx.environment import BuildEnvironment # NOQA
+ from sphinx.themes import Theme # NOQA
+
def _tobool(val):
+ # type: (unicode) -> bool
if isinstance(val, string_types):
- return val.lower() in ('true', '1', 'yes', 'on')
+ return val.lower() in ('true', '1', 'yes', 'on') # type: ignore
return bool(val)
def _toint(val):
+ # type: (unicode) -> int
try:
return int(val)
except ValueError:
@@ -36,6 +46,7 @@ def _toint(val):
def _slice_index(values, slices):
+ # type: (List, int) -> Iterator[List]
seq = list(values)
length = 0
for value in values:
@@ -57,6 +68,7 @@ def _slice_index(values, slices):
def accesskey(context, key):
+ # type: (Any, unicode) -> unicode
"""Helper to output each access key only once."""
if '_accesskeys' not in context:
context.vars['_accesskeys'] = {}
@@ -68,12 +80,15 @@ def accesskey(context, key):
class idgen(object):
def __init__(self):
+ # type: () -> None
self.id = 0
def current(self):
+ # type: () -> int
return self.id
def __next__(self):
+ # type: () -> int
self.id += 1
return self.id
next = __next__ # Python 2/Jinja compatibility
@@ -86,6 +101,7 @@ class SphinxFileSystemLoader(FileSystemLoader):
"""
def get_source(self, environment, template):
+ # type: (BuildEnvironment, unicode) -> Tuple[unicode, unicode, Callable]
for searchpath in self.searchpath:
filename = path.join(searchpath, template)
f = open_if_exists(filename)
@@ -113,6 +129,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
# TemplateBridge interface
def init(self, builder, theme=None, dirs=None):
+ # type: (Builder, Theme, List[unicode]) -> None
# create a chain of paths to search
if theme:
# the theme's own dir and its bases' dirs
@@ -155,17 +172,21 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
builder.app.translator)
def render(self, template, context):
+ # type: (unicode, Dict) -> None
return self.environment.get_template(template).render(context)
def render_string(self, source, context):
+ # type: (unicode, Dict) -> unicode
return self.environment.from_string(source).render(context)
def newest_template_mtime(self):
+ # type: () -> float
return max(mtimes_of_files(self.pathchain, '.html'))
# Loader interface
def get_source(self, environment, template):
+ # type: (BuildEnvironment, unicode) -> Tuple[unicode, unicode, Callable]
loaders = self.loaders
# exclamation mark starts search from theme
if template.startswith('!'):