Allow caller to override close_fds in util.run_command()
authorTom Clegg <tom@clinicalfuture.com>
Tue, 26 Nov 2013 20:34:43 +0000 (12:34 -0800)
committerTom Clegg <tom@clinicalfuture.com>
Tue, 3 Dec 2013 22:27:28 +0000 (14:27 -0800)
sdk/python/arvados.py

index 93c472745d67bb23ab6af59768c6eec44f4b8c4a..9c92f7a6c255ba0efca06162078e94310b82d9ba 100644 (file)
@@ -151,14 +151,12 @@ class job_setup:
 class util:
     @staticmethod
     def run_command(execargs, **kwargs):
-        if 'stdin' not in kwargs:
-            kwargs['stdin'] = subprocess.PIPE
-        if 'stdout' not in kwargs:
-            kwargs['stdout'] = subprocess.PIPE
-        if 'stderr' not in kwargs:
-            kwargs['stderr'] = subprocess.PIPE
-        p = subprocess.Popen(execargs, close_fds=True, shell=False,
-                             **kwargs)
+        kwargs.setdefault('stdin', subprocess.PIPE)
+        kwargs.setdefault('stdout', subprocess.PIPE)
+        kwargs.setdefault('stderr', subprocess.PIPE)
+        kwargs.setdefault('close_fds', True)
+        kwargs.setdefault('shell', False)
+        p = subprocess.Popen(execargs, **kwargs)
         stdoutdata, stderrdata = p.communicate(None)
         if p.returncode != 0:
             raise Exception("run_command %s exit %d:\n%s" %