

def _hijack_tty(self, pumps):
    with tty.Terminal(self.operation.stdin, raw=self.operation.israw()):
        self.resize()
        while True:
            read_pumps = [p for p in pumps if (not p.eof)]
            write_streams = [p.to_stream for p in pumps if p.to_stream.needs_write()]
            (read_ready, write_ready) = io.select(read_pumps, write_streams, timeout=60)
            try:
                for write_stream in write_ready:
                    write_stream.do_write()
                for pump in read_ready:
                    pump.flush()
                if all([p.is_done() for p in pumps]):
                    break
            except SSLError as e:
                if ('The operation did not complete' not in e.strerror):
                    raise e

dataset/ETHPy150Open d11wtq/dockerpty/dockerpty/pty.py PseudoTerminal._hijack_tty/original