From a7ad636dab4930e83487055e3a73571e65652848 Mon Sep 17 00:00:00 2001 From: yonatanp Date: Fri, 5 Jan 2018 11:33:47 +0200 Subject: [PATCH] bugfix: f.close() only required if open succeeded when open fails, instead of raising the original error, the "f.close()" was erroring in the final clause. --- pipreqs/pipreqs.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index 0186832..36b0c42 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -309,9 +309,10 @@ def parse_requirements(file_): logging.error("Failed on file: {}".format(file_)) raise else: - data = [x.strip() for x in f.readlines() if x != "\n"] - finally: - f.close() + try: + data = [x.strip() for x in f.readlines() if x != "\n"] + finally: + f.close() data = [x for x in data if x[0].isalpha()] @@ -375,16 +376,17 @@ def clean(file_, imports): logging.error("Failed on file: {}".format(file_)) raise else: - for i in f.readlines(): - if re_remove.match(i) is None: - to_write.append(i) - f.seek(0) - f.truncate() + try: + for i in f.readlines(): + if re_remove.match(i) is None: + to_write.append(i) + f.seek(0) + f.truncate() - for i in to_write: - f.write(i) - finally: - f.close() + for i in to_write: + f.write(i) + finally: + f.close() logging.info("Successfully cleaned up requirements in " + file_)