use open context managers in more places
Use open() as a context manager to simplify the close logic and make
the code easier to read & understand. This is also more Pythonic.
Change-Id: I579d03cca86f99b2c6c6a1f557f6e5704e2515a7
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/244734
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
diff --git a/project.py b/project.py
index a2a3adc..6a48c23 100755
--- a/project.py
+++ b/project.py
@@ -58,11 +58,8 @@
def _lwrite(path, content):
lock = '%s.lock' % path
- fd = open(lock, 'w')
- try:
+ with open(lock, 'w') as fd:
fd.write(content)
- finally:
- fd.close()
try:
platform_utils.rename(lock, path)
@@ -1393,12 +1390,9 @@
if is_new:
alt = os.path.join(self.gitdir, 'objects/info/alternates')
try:
- fd = open(alt)
- try:
+ with open(alt) as fd:
# This works for both absolute and relative alternate directories.
alt_dir = os.path.join(self.objdir, 'objects', fd.readline().rstrip())
- finally:
- fd.close()
except IOError:
alt_dir = None
else:
@@ -2893,14 +2887,11 @@
else:
path = os.path.join(self._project.worktree, '.git', HEAD)
try:
- fd = open(path)
+ with open(path) as fd:
+ line = fd.readline()
except IOError as e:
raise NoManifestException(path, str(e))
try:
- line = fd.readline()
- finally:
- fd.close()
- try:
line = line.decode()
except AttributeError:
pass