summaryrefslogtreecommitdiff
path: root/sphinx/directives/code.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/directives/code.py')
-rw-r--r--sphinx/directives/code.py25
1 files changed, 11 insertions, 14 deletions
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 8edfd61d7..a2738a30d 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -181,13 +181,12 @@ class LiteralInclude(Directive):
}
def read_with_encoding(self, filename, document, codec_info, encoding):
- f = None
try:
- f = codecs.StreamReaderWriter(open(filename, 'rb'), codec_info[2],
- codec_info[3], 'strict')
- lines = f.readlines()
- lines = dedent_lines(lines, self.options.get('dedent'))
- return lines
+ 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'))
+ return lines
except (IOError, OSError):
return [document.reporter.warning(
'Include file %r not found or reading it failed' % filename,
@@ -197,9 +196,6 @@ class LiteralInclude(Directive):
'Encoding %r used for reading included file %r seems to '
'be wrong, try giving an :encoding: option' %
(encoding, filename))]
- finally:
- if f is not None:
- f.close()
def run(self):
document = self.state.document
@@ -359,8 +355,9 @@ class LiteralInclude(Directive):
return [retnode]
-directives.register_directive('highlight', Highlight)
-directives.register_directive('highlightlang', Highlight) # old
-directives.register_directive('code-block', CodeBlock)
-directives.register_directive('sourcecode', CodeBlock)
-directives.register_directive('literalinclude', LiteralInclude)
+def setup(app):
+ directives.register_directive('highlight', Highlight)
+ directives.register_directive('highlightlang', Highlight) # old
+ directives.register_directive('code-block', CodeBlock)
+ directives.register_directive('sourcecode', CodeBlock)
+ directives.register_directive('literalinclude', LiteralInclude)