diff options
Diffstat (limited to 'src/nbblib/progutils.py')
-rw-r--r-- | src/nbblib/progutils.py | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/nbblib/progutils.py b/src/nbblib/progutils.py index 0486d99..c4c632c 100644 --- a/src/nbblib/progutils.py +++ b/src/nbblib/progutils.py @@ -1,6 +1,6 @@ -######################################################################## -# Utility functions -######################################################################## +"""\ +Utility functions for running external programs +""" import os @@ -12,25 +12,26 @@ __all__ = ['prog_stdout', 'prog_retstd', 'ProgramRunError', 'prog_run'] def prog_stdout(call_list): """Run program and return stdout (similar to shell backticks)""" - p = subprocess.Popen(call_list, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = p.communicate(input=None) + proc = subprocess.Popen(call_list, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + stdout, stderr = proc.communicate(input=None) return stdout.strip() def prog_retstd(call_list): """Run program and return stdout (similar to shell backticks)""" - p = subprocess.Popen(call_list, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = p.communicate(input=None) - return (p.returncode, stdout.strip(), stderr.strip()) + proc = subprocess.Popen(call_list, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + stdout, stderr = proc.communicate(input=None) + return (proc.returncode, stdout.strip(), stderr.strip()) class ProgramRunError(Exception): """A program run returns a retcode != 0""" def __init__(self, call_list, retcode, cwd=None): + super(ProgramRunError, self).__init__() self.call_list = call_list self.retcode = retcode if cwd: @@ -54,9 +55,9 @@ def prog_run(call_list, context=None, env=None, env_update=None): env = os.environ.copy() if env_update: env.update(env_update) - p = subprocess.Popen(call_list, env=env) - stdout, stderr = p.communicate(input=None) - if p.returncode != 0: - raise ProgramRunError(call_list, p.returncode, os.getcwd()) - return p.returncode + proc = subprocess.Popen(call_list, env=env) + stdout, stderr = proc.communicate(input=None) + if proc.returncode != 0: + raise ProgramRunError(call_list, proc.returncode, os.getcwd()) + return proc.returncode |