diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-06-08 14:21:54 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-06-08 14:21:54 +0300 |
commit | d63615272cc667d9e64fa1fe86a8be3d60519f2c (patch) | |
tree | 999ca46580b4f6d3e33bf3f1e19477c1e34c20e0 | |
parent | 07d51141aeaeb8445413fe0cd62510fe374c3d26 (diff) |
Use context manager for reading addon headers
-rw-r--r-- | release/scripts/modules/addon_utils.py | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py index 68efe9c1a10..63b01a4b884 100644 --- a/release/scripts/modules/addon_utils.py +++ b/release/scripts/modules/addon_utils.py @@ -80,39 +80,37 @@ def modules_refresh(module_cache=addons_fake_modules): print("Error opening file %r: %s" % (mod_path, e)) return None - if speedy: - lines = [] - line_iter = iter(file_mod) - l = "" - while not l.startswith("bl_info"): - try: - l = line_iter.readline() - except UnicodeDecodeError as e: - if not error_encoding: - error_encoding = True - print("Error reading file as UTF-8:", mod_path, e) - file_mod.close() - return None - - if len(l) == 0: - break - while l.rstrip(): - lines.append(l) - try: - l = line_iter.readline() - except UnicodeDecodeError as e: - if not error_encoding: - error_encoding = True - print("Error reading file as UTF-8:", mod_path, e) - file_mod.close() - return None - - data = "".join(lines) + with file_mod: + if speedy: + lines = [] + line_iter = iter(file_mod) + l = "" + while not l.startswith("bl_info"): + try: + l = line_iter.readline() + except UnicodeDecodeError as e: + if not error_encoding: + error_encoding = True + print("Error reading file as UTF-8:", mod_path, e) + return None + + if len(l) == 0: + break + while l.rstrip(): + lines.append(l) + try: + l = line_iter.readline() + except UnicodeDecodeError as e: + if not error_encoding: + error_encoding = True + print("Error reading file as UTF-8:", mod_path, e) + return None + + data = "".join(lines) - else: - data = file_mod.read() - - file_mod.close() + else: + data = file_mod.read() + del file_mod try: ast_data = ast.parse(data, filename=mod_path) |