diff options
author | Jean Helie <jean@semmle.com> | 2017-06-26 14:01:15 +0100 |
---|---|---|
committer | Eric Wieser <wieser.eric@gmail.com> | 2017-06-26 14:01:15 +0100 |
commit | c6533b6c386dc0f4009e5f3c5c545dde4d1b48a4 (patch) | |
tree | fac4fa235d93e25373608412968a30f974fecd85 /tools | |
parent | 62d3e4e641a1aec201e5f890c851f91226e75ded (diff) | |
download | python-numpy-c6533b6c386dc0f4009e5f3c5c545dde4d1b48a4.tar.gz python-numpy-c6533b6c386dc0f4009e5f3c5c545dde4d1b48a4.tar.bz2 python-numpy-c6533b6c386dc0f4009e5f3c5c545dde4d1b48a4.zip |
MAINT: Fix alerts from http://lgtm.com (#9292)
* make exception raising 2/3 compatible
* remove unnecesary else statement after while loop without break clause
* ensure file is always enclosed even in the event of an exception
* ensure list comprehension variable does not override enclosing loop variable
Diffstat (limited to 'tools')
-rw-r--r-- | tools/npy_tempita/__init__.py | 52 |
1 files changed, 23 insertions, 29 deletions
diff --git a/tools/npy_tempita/__init__.py b/tools/npy_tempita/__init__.py index daf2606c8..dfb40e965 100644 --- a/tools/npy_tempita/__init__.py +++ b/tools/npy_tempita/__init__.py @@ -153,9 +153,8 @@ class Template(object): def from_filename(cls, filename, namespace=None, encoding=None, default_inherit=None, get_template=get_file_template): - f = open(filename, 'rb') - c = f.read() - f.close() + with open(filename, 'rb') as f: + c = f.read() if encoding: c = c.decode(encoding) elif PY3: @@ -315,33 +314,31 @@ class Template(object): 'invalid syntax in expression: %s' % code) return value except: - exc_info = sys.exc_info() - e = exc_info[1] - if getattr(e, 'args', None): - arg0 = e.args[0] + e_type, e_value, e_traceback = sys.exc_info() + if getattr(e_value, 'args', None): + arg0 = e_value.args[0] else: - arg0 = coerce_text(e) - e.args = (self._add_line_info(arg0, pos),) + arg0 = coerce_text(e_value) + e_value.args = (self._add_line_info(arg0, pos),) if PY3: - raise(e) + raise e_value else: - raise (exc_info[1], e, exc_info[2]) + exec('raise e_type, e_value, e_traceback') def _exec(self, code, ns, pos): # __traceback_hide__ = True try: exec(code, self.default_namespace, ns) except: - exc_info = sys.exc_info() - e = exc_info[1] - if e.args: - e.args = (self._add_line_info(e.args[0], pos),) + e_type, e_value, e_traceback = sys.exc_info() + if e_value.args: + e_value.args = (self._add_line_info(e_value.args[0], pos),) else: - e.args = (self._add_line_info(None, pos),) + e_value.args = (self._add_line_info(None, pos),) if PY3: - raise(e) + raise e_value else: - raise (exc_info[1], e, exc_info[2]) + exec('raise e_type, e_value, e_traceback') def _repr(self, value, pos): # __traceback_hide__ = True @@ -358,13 +355,12 @@ class Template(object): if (is_unicode(value) and self.default_encoding): value = value.encode(self.default_encoding) except: - exc_info = sys.exc_info() - e = exc_info[1] - e.args = (self._add_line_info(e.args[0], pos),) + e_type, e_value, e_traceback = sys.exc_info() + e_value.args = (self._add_line_info(e_value.args[0], pos),) if PY3: - raise(e) + raise e_value else: - raise (exc_info[1], e, exc_info[2]) + exec('raise e_type, e_value, e_traceback') else: if self._unicode and isinstance(value, bytes): if not self.default_encoding: @@ -1295,9 +1291,8 @@ def fill_command(args=None): template_content = sys.stdin.read() template_name = '<stdin>' else: - f = open(template_name, 'rb', encoding="latin-1") - template_content = f.read() - f.close() + with open(template_name, 'rb', encoding="latin-1") as f: + template_content = f.read() if options.use_html: TemplateClass = HTMLTemplate else: @@ -1305,9 +1300,8 @@ def fill_command(args=None): template = TemplateClass(template_content, name=template_name) result = template.substitute(vars) if options.output: - f = open(options.output, 'wb') - f.write(result) - f.close() + with open(options.output, 'wb') as f: + f.write(result) else: sys.stdout.write(result) |