File: //usr/lib/python3.5/__pycache__/pty.cpython-35.pyc
Fa @ s d Z d d l m Z d d l Z d d l Z d d d g Z d Z d Z d Z d Z d d Z d
d Z
d d
Z d d Z d d Z
d d Z d d Z e e d d Z e e d d Z d S)zPseudo terminal utilities. )selectNopenptyforkspawn c C sN y t j SWn t t f k
r( Yn Xt \ } } t | } | | f S)zdopenpty() -> (master_fd, slave_fd)
Open a pty master/slave pair, using os.openpty() if possible.)osr AttributeErrorOSError_open_terminal
slave_open) master_fd
slave_nameslave_fd r /usr/lib/python3.5/pty.pyr s c C s^ y t j \ } } Wn t t f k
r0 Yn' Xt j | } t j | | | f St S)zmaster_open() -> (master_fd, slave_name)
Open a pty master and return the fd, and the filename of the slave end.
Deprecated, use openpty() instead.)r r r r
ttynamecloser )r
r r r r r master_open! s
r c
C s xm d D]e } x\ d D]T } d | | } y t j | t j } Wn t k
rX w Yn X| d | | f SWq Wt d d S)z1Open pty master and return (master_fd, tty_name).ZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devicesN)r openO_RDWRr
)xyZpty_namefdr r r r 1 s
r c C s t j | t j } y d d l m } m } Wn t k
rG | SYn Xy$ | | | d | | | d Wn t k
r Yn X| S)zslave_open(tty_name) -> slave_fd
Open the pty slave and acquire the controlling terminal, returning
opened filedescriptor.
Deprecated, use openpty() instead.r )ioctlI_PUSHZptemZldterm)r r r Zfcntlr r ImportErrorr
)Ztty_nameresultr r r r r r = s
r c C s6 y t j \ } } Wn t t f k
r0 Yn: X| t k r` y t j Wn t k
r_ Yn X| | f St \ } } t j } | t k rt j t j | t j | t
t j | t t j | t | t k r t j | t j
t j t t j } t j | n
t j | | | f S)zdfork() -> (pid, master_fd)
Fork and make the child a session leader with a controlling terminal.)r forkptyr r
CHILDsetsidr r r dup2STDIN_FILENO
STDOUT_FILENO
STDERR_FILENOr r r )pidr r
r Ztmp_fdr r r r O s0
c C s3 x, | r. t j | | } | | d } q Wd S)z#Write all the data to a descriptor.N)r write)r datanr r r _writenw s r) c C s t j | d S)zDefault read function.i )r read)r r r r _read} s r+ c C s | t g } x t | g g \ } } } | | k rh | | } | sX | j | n t j t | t | k r | t } | s | j t q t | | q Wd S)zParent copy loop.
Copies
pty master -> standard output (master_read)
standard input -> pty master (stdin_read)N)r"