Use try..finally blocks to ensure calls within context manager

This commit is contained in:
Eric Torres
2019-04-17 20:22:28 -07:00
parent bbeebecd4f
commit a7d30cf91d
2 changed files with 17 additions and 9 deletions

View File

@@ -108,9 +108,11 @@ def change_umask():
"""Creates a context manager in which the umask is changed. This is to ensure that """Creates a context manager in which the umask is changed. This is to ensure that
the script's desired umask is not visible to the user. the script's desired umask is not visible to the user.
""" """
old_umask = os.umask(SCRIPT_UMASK) try:
yield old_umask = os.umask(SCRIPT_UMASK)
os.umask(old_umask) yield
finally:
os.umask(old_umask)
# ========== Main Script ========== # ========== Main Script ==========

View File

@@ -95,9 +95,12 @@ def merge_include_files():
:return: path-like object :return: path-like object
""" """
filelist = merge_files(get_files_by_suffix("-include.conf")) try:
yield filelist # filelist is guaranteed to exist at this point
filelist.unlink() filelist = merge_files(get_files_by_suffix("-include.conf"))
yield filelist
finally:
filelist.unlink()
@contextmanager @contextmanager
@@ -106,9 +109,12 @@ def merge_exclude_files():
:return: path-like object :return: path-like object
""" """
filelist = merge_files(get_files_by_suffix("-exclude.conf")) try:
yield filelist # filelist is guaranteed to exist at this point
filelist.unlink() filelist = merge_files(get_files_by_suffix("-exclude.conf"))
yield filelist
finally:
filelist.unlink()
def parse_configfile(): def parse_configfile():