code: def run(command, data=None, timeout=None, kill_timeout=None, env=None, cwd=None):
      
  
      command = expand_args(command)
  
      history = []
      for c in command:
  
          if len(history):
              # due to broken pipe problems pass only first 10 KiB
              data = history[-1].std_out[0:10*1024]
  
          cmd = Command(c)
          try:
              out, err = cmd.run(data, timeout, kill_timeout, env, cwd)
              status_code = cmd.returncode
          except OSError as e:
              out, err = '', u"\n".join([e.strerror, traceback.format_exc()])
              status_code = 127
  
          r = Response(process=cmd)
  
          r.command = c
          r.std_out = out
          r.std_err = err
          r.status_code = status_code
  
          history.append(r)
  
      r = history.pop()
      r.history = history
  
      return r
docs: Executes a given commmand and returns Response.
  
      Blocks until process is complete, or timeout is reached.