mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
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>
This commit is contained in:
parent
f454512619
commit
3164d40e22
@ -106,11 +106,8 @@ least one of these before using this command.""", file=sys.stderr)
|
||||
raise EditorError('editor failed with exit status %d: %s %s'
|
||||
% (rc, editor, path))
|
||||
|
||||
fd2 = open(path)
|
||||
try:
|
||||
with open(path) as fd2:
|
||||
return fd2.read()
|
||||
finally:
|
||||
fd2.close()
|
||||
finally:
|
||||
if fd:
|
||||
os.close(fd)
|
||||
|
@ -276,22 +276,16 @@ class GitConfig(object):
|
||||
return None
|
||||
try:
|
||||
Trace(': parsing %s', self.file)
|
||||
fd = open(self._json)
|
||||
try:
|
||||
with open(self._json) as fd:
|
||||
return json.load(fd)
|
||||
finally:
|
||||
fd.close()
|
||||
except (IOError, ValueError):
|
||||
platform_utils.remove(self._json)
|
||||
return None
|
||||
|
||||
def _SaveJson(self, cache):
|
||||
try:
|
||||
fd = open(self._json, 'w')
|
||||
try:
|
||||
with open(self._json, 'w') as fd:
|
||||
json.dump(cache, fd, indent=2)
|
||||
finally:
|
||||
fd.close()
|
||||
except (IOError, TypeError):
|
||||
if os.path.exists(self._json):
|
||||
platform_utils.remove(self._json)
|
||||
@ -773,15 +767,12 @@ class Branch(object):
|
||||
self._Set('merge', self.merge)
|
||||
|
||||
else:
|
||||
fd = open(self._config.file, 'a')
|
||||
try:
|
||||
with open(self._config.file, 'a') as fd:
|
||||
fd.write('[branch "%s"]\n' % self.name)
|
||||
if self.remote:
|
||||
fd.write('\tremote = %s\n' % self.remote.name)
|
||||
if self.merge:
|
||||
fd.write('\tmerge = %s\n' % self.merge)
|
||||
finally:
|
||||
fd.close()
|
||||
|
||||
def _Set(self, key, value):
|
||||
key = 'branch.%s.%s' % (self.name, key)
|
||||
|
13
git_refs.py
13
git_refs.py
@ -141,18 +141,11 @@ class GitRefs(object):
|
||||
|
||||
def _ReadLoose1(self, path, name):
|
||||
try:
|
||||
fd = open(path)
|
||||
except IOError:
|
||||
return
|
||||
|
||||
try:
|
||||
try:
|
||||
with open(path) as fd:
|
||||
mtime = os.path.getmtime(path)
|
||||
ref_id = fd.readline()
|
||||
except (IOError, OSError):
|
||||
return
|
||||
finally:
|
||||
fd.close()
|
||||
except (IOError, OSError):
|
||||
return
|
||||
|
||||
try:
|
||||
ref_id = ref_id.decode()
|
||||
|
17
project.py
17
project.py
@ -58,11 +58,8 @@ else:
|
||||
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 @@ class Project(object):
|
||||
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,13 +2887,10 @@ class Project(object):
|
||||
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:
|
||||
|
5
repo
5
repo
@ -513,9 +513,8 @@ def SetupGnuPG(quiet):
|
||||
sys.exit(1)
|
||||
print()
|
||||
|
||||
fd = open(os.path.join(home_dot_repo, 'keyring-version'), 'w')
|
||||
fd.write('.'.join(map(str, KEYRING_VERSION)) + '\n')
|
||||
fd.close()
|
||||
with open(os.path.join(home_dot_repo, 'keyring-version'), 'w') as fd:
|
||||
fd.write('.'.join(map(str, KEYRING_VERSION)) + '\n')
|
||||
return True
|
||||
|
||||
|
||||
|
@ -40,10 +40,9 @@ in a Git repository for use during future 'repo init' invocations.
|
||||
helptext = self._helpDescription + '\n'
|
||||
r = os.path.dirname(__file__)
|
||||
r = os.path.dirname(r)
|
||||
fd = open(os.path.join(r, 'docs', 'manifest-format.md'))
|
||||
for line in fd:
|
||||
helptext += line
|
||||
fd.close()
|
||||
with open(os.path.join(r, 'docs', 'manifest-format.md')) as fd:
|
||||
for line in fd:
|
||||
helptext += line
|
||||
return helptext
|
||||
|
||||
def _Options(self, p):
|
||||
|
@ -692,11 +692,8 @@ later is required to fix a server side protocol bug.
|
||||
old_project_paths = []
|
||||
|
||||
if os.path.exists(file_path):
|
||||
fd = open(file_path, 'r')
|
||||
try:
|
||||
with open(file_path, 'r') as fd:
|
||||
old_project_paths = fd.read().split('\n')
|
||||
finally:
|
||||
fd.close()
|
||||
# In reversed order, so subfolders are deleted before parent folder.
|
||||
for path in sorted(old_project_paths, reverse=True):
|
||||
if not path:
|
||||
@ -731,12 +728,9 @@ later is required to fix a server side protocol bug.
|
||||
return 1
|
||||
|
||||
new_project_paths.sort()
|
||||
fd = open(file_path, 'w')
|
||||
try:
|
||||
with open(file_path, 'w') as fd:
|
||||
fd.write('\n'.join(new_project_paths))
|
||||
fd.write('\n')
|
||||
finally:
|
||||
fd.close()
|
||||
return 0
|
||||
|
||||
def _SmartSyncSetup(self, opt, smart_sync_manifest_path):
|
||||
@ -809,11 +803,8 @@ later is required to fix a server side protocol bug.
|
||||
if success:
|
||||
manifest_name = os.path.basename(smart_sync_manifest_path)
|
||||
try:
|
||||
f = open(smart_sync_manifest_path, 'w')
|
||||
try:
|
||||
with open(smart_sync_manifest_path, 'w') as f:
|
||||
f.write(manifest_str)
|
||||
finally:
|
||||
f.close()
|
||||
except IOError as e:
|
||||
print('error: cannot write manifest to %s:\n%s'
|
||||
% (smart_sync_manifest_path, e),
|
||||
@ -1102,11 +1093,8 @@ class _FetchTimes(object):
|
||||
def _Load(self):
|
||||
if self._times is None:
|
||||
try:
|
||||
f = open(self._path)
|
||||
try:
|
||||
with open(self._path) as f:
|
||||
self._times = json.load(f)
|
||||
finally:
|
||||
f.close()
|
||||
except (IOError, ValueError):
|
||||
try:
|
||||
platform_utils.remove(self._path)
|
||||
@ -1126,11 +1114,8 @@ class _FetchTimes(object):
|
||||
del self._times[name]
|
||||
|
||||
try:
|
||||
f = open(self._path, 'w')
|
||||
try:
|
||||
with open(self._path, 'w') as f:
|
||||
json.dump(self._times, f, indent=2)
|
||||
finally:
|
||||
f.close()
|
||||
except (IOError, TypeError):
|
||||
try:
|
||||
platform_utils.remove(self._path)
|
||||
|
Loading…
Reference in New Issue
Block a user