code: def pipe(self, command, timeout=None, cwd=None):
          
          if not timeout:
              timeout = self.timeout
  
          if not self.was_run:
              self.run(block=False, cwd=cwd)
  
          data = self.out
  
          if timeout:
              c = Command(command, timeout)
          else:
              c = Command(command)
  
          c.run(block=False, cwd=cwd)
          if data:
              c.send(data)
          c.block()
          return c
docs: Runs the current command and passes its output to the next
          given process.