summaryrefslogtreecommitdiff
path: root/sphinx/directives/code.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-08 14:05:58 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-16 12:06:22 +0900
commitceec82451bfbefc0fd720bbf48e4b9a029cacd99 (patch)
tree1d76b5d59db131fb574cd649e0c283534fd6710f /sphinx/directives/code.py
parent3407ef0ca8a8ce41e67092d2605f8fc77bebb982 (diff)
downloadsphinx-git-ceec82451bfbefc0fd720bbf48e4b9a029cacd99.tar.gz
Add type-check annotations to sphinx.*
Diffstat (limited to 'sphinx/directives/code.py')
-rw-r--r--sphinx/directives/code.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 5bef8c386..e401a50de 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -11,17 +11,22 @@ import sys
import codecs
from difflib import unified_diff
+from six import string_types
+
from docutils import nodes
from docutils.parsers.rst import Directive, directives
from docutils.statemachine import ViewList
-from six import string_types
-
from sphinx import addnodes
from sphinx.locale import _
from sphinx.util import parselinenos
from sphinx.util.nodes import set_source_info
+if False:
+ # For type annotation
+ from typing import Any # NOQA
+ from sphinx.application import Sphinx # NOQA
+
class Highlight(Directive):
"""
@@ -38,6 +43,7 @@ class Highlight(Directive):
}
def run(self):
+ # type: () -> List[nodes.Node]
if 'linenothreshold' in self.options:
try:
linenothreshold = int(self.options['linenothreshold'])
@@ -50,6 +56,7 @@ class Highlight(Directive):
def dedent_lines(lines, dedent):
+ # type: (List[unicode], int) -> List[unicode]
if not dedent:
return lines
@@ -64,6 +71,7 @@ def dedent_lines(lines, dedent):
def container_wrapper(directive, literal_node, caption):
+ # type: (Directive, nodes.Node, unicode) -> nodes.container
container_node = nodes.container('', literal_block=True,
classes=['literal-block-wrapper'])
parsed = nodes.Element()
@@ -101,6 +109,7 @@ class CodeBlock(Directive):
}
def run(self):
+ # type: () -> List[nodes.Node]
code = u'\n'.join(self.content)
linespec = self.options.get('emphasize-lines')
@@ -137,7 +146,7 @@ class CodeBlock(Directive):
literal = container_wrapper(self, literal, caption)
except ValueError as exc:
document = self.state.document
- errmsg = _('Invalid caption: %s' % exc[0][0].astext())
+ errmsg = _('Invalid caption: %s' % exc[0][0].astext()) # type: ignore
return [document.reporter.warning(errmsg, line=self.lineno)]
# literal will be note_implicit_target that is linked from caption and numref.
@@ -182,11 +191,12 @@ class LiteralInclude(Directive):
}
def read_with_encoding(self, filename, document, codec_info, encoding):
+ # type: (unicode, nodes.Node, Any, unicode) -> List
try:
with codecs.StreamReaderWriter(open(filename, 'rb'), codec_info[2],
codec_info[3], 'strict') as f:
lines = f.readlines()
- lines = dedent_lines(lines, self.options.get('dedent'))
+ lines = dedent_lines(lines, self.options.get('dedent')) # type: ignore
return lines
except (IOError, OSError):
return [document.reporter.warning(
@@ -199,6 +209,7 @@ class LiteralInclude(Directive):
(encoding, filename))]
def run(self):
+ # type: () -> List[nodes.Node]
document = self.state.document
if not document.settings.file_insertion_enabled:
return [document.reporter.warning('File insertion disabled',
@@ -367,7 +378,7 @@ class LiteralInclude(Directive):
retnode = container_wrapper(self, retnode, caption)
except ValueError as exc:
document = self.state.document
- errmsg = _('Invalid caption: %s' % exc[0][0].astext())
+ errmsg = _('Invalid caption: %s' % exc[0][0].astext()) # type: ignore
return [document.reporter.warning(errmsg, line=self.lineno)]
# retnode will be note_implicit_target that is linked from caption and numref.
@@ -378,6 +389,7 @@ class LiteralInclude(Directive):
def setup(app):
+ # type: (Sphinx) -> None
directives.register_directive('highlight', Highlight)
directives.register_directive('highlightlang', Highlight) # old
directives.register_directive('code-block', CodeBlock)