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