] @ s 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) )selectNopenptyforkspawn c C sN y t j SWn t t f k r( Yn Xt \ } } t | } | | f S)N)osr AttributeErrorOSError_open_terminal slave_open) master_fd slave_nameslave_fd r (/opt/alt/python35/lib64/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)N)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)NZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)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)Nr )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)N)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)N)r write)r datanr r r _writenw s r) c C s t j | d S)Ni )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)N)r" r remover r&