def check_returncode(self): if self.returncode: # The stdout and stderr attributes weren't added until # Python 3.5; we manually include them here for code # targeting more recent versions which expects them. ret = CalledProcessError(self.returncode, self.args, output=self.stdout) ret.stdout = self.stdout ret.stderr = None raise ret
def __lt__(self,other): cmd = self.__get_recursive_name() #print " ",cmd,"<",other popen = subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) m = popen.communicate(other) ret = popen.wait() if ret: e = CalledProcessError(ret,cmd) e.stdout,e.stderr = m raise e class CommandOutput: def __init__(self,stdout,stderr): self.stdout = stdout self.stderr = stderr return CommandOutput(*m)
def __lt__(self,other): cmd = self.__get_recursive_name() #print " ",cmd,"<",other popen = subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) m = popen.communicate(other) ret = popen.wait() if ret: e = CalledProcessError(ret,cmd) e.stdout,e.stderr = m raise e class CommandOutput: def __init__(self,stdout,stderr): self.stdout = stdout self.stderr = stderr return CommandOutput(*m)
def check_output(run_args, *args, **kwargs): kwargs['stdout'] = PIPE kwargs['stderr'] = PIPE process = Popen(run_args, *args, **kwargs) stdout, stderr = process.communicate() retcode = process.poll() if retcode is not 0: exception = CalledProcessError(retcode, run_args[0]) exception.stdout = stdout exception.stderr = stderr raise exception return stdout, stderr
def check_output(run_args, *args, **kwargs): kwargs['stdout'] = PIPE kwargs['stderr'] = PIPE process = Popen(run_args, *args, **kwargs) stdout, stderr = process.communicate() retcode = process.poll() if retcode is not 0: exception = CalledProcessError(retcode, run_args[0]) exception.stdout = stdout exception.stderr = stderr raise exception return stdout, stderr
def check_call_capturing(arguments, input = None, preexec_fn = None): """Spawn a process and return its output.""" (stdout, stderr, code) = call_capturing(arguments, input, preexec_fn) if code == 0: return (stdout, stderr) else: from subprocess import CalledProcessError error = CalledProcessError(code, arguments) error.stdout = stdout error.stderr = stderr raise error
def check_call_capturing(arguments, input = None, preexec_fn = None): """Spawn a process and return its output.""" (stdout, stderr, code) = call_capturing(arguments, input, preexec_fn) if code == 0: return (stdout, stderr) else: from subprocess import CalledProcessError error = CalledProcessError(code, arguments) error.stdout = stdout error.stderr = stderr raise error
def __call__(self,*args,**kwargs): cmd = self.__get_recursive_name() + list(args) #print " ",cmd kwargs = dict(kwargs) if "stdout" not in kwargs: kwargs["stdout"] = subprocess.PIPE if "stderr" not in kwargs: kwargs["stderr"] = subprocess.PIPE popen = subprocess.Popen(cmd,**kwargs) m = popen.communicate() ret = popen.wait() if ret: e = CalledProcessError(ret,cmd) e.stdout,e.stderr = m raise e class CommandOutput: def __init__(self,stdout,stderr): self.stdout = stdout self.stderr = stderr return CommandOutput(*m)
def __call__(self,*args,**kwargs): cmd = self.__get_recursive_name() + list(args) #print " ",cmd kwargs = dict(kwargs) if "stdout" not in kwargs: kwargs["stdout"] = subprocess.PIPE if "stderr" not in kwargs: kwargs["stderr"] = subprocess.PIPE popen = subprocess.Popen(cmd,**kwargs) m = popen.communicate() ret = popen.wait() if ret: e = CalledProcessError(ret,cmd) e.stdout,e.stderr = m raise e class CommandOutput: def __init__(self,stdout,stderr): self.stdout = stdout self.stderr = stderr return CommandOutput(*m)
def __submit(self, call, env): output_chunks = [] process = Popen(call, env=env, stderr=STDOUT, stdout=PIPE) while process.returncode is None: output_chunks.append(process.communicate()) sleep(0.1) stdout = "".join([c[0].decode('utf-8') for c in output_chunks if c[0] is not None]) stderr = "".join([c[1].decode('utf-8') for c in output_chunks if c[1] is not None]) if process.returncode == 0: return stdout, stderr exc = CalledProcessError(process.returncode, call) exc.stdout = stdout exc.stderr = stderr print(stdout) print(stderr) raise exc