diff options
Diffstat (limited to 'sphinx/directives/code.py')
-rw-r--r-- | sphinx/directives/code.py | 25 |
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) |