����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib64
/
python3.8
/
__pycache__
/
Filename :
pty.cpython-38.opt-1.pyc
back
Copy
U ����e5d�����������������������@���s����d�Z�ddlmZ�ddlZddlZddlZdddgZdZdZdZdZ d d��Z d d��Zdd ��Zdd��Z dd��Zdd��Zdd��Zeefdd�Zeefdd�ZdS�)zPseudo terminal utilities.�����)�selectN�openpty�fork�spawn��������c��������������� ���C���s>���z t����W�S��ttfk r"���Y�nX�t��\}�}t|�}|�|fS�)zdopenpty() -> (master_fd, slave_fd) Open a pty master/slave pair, using os.openpty() if possible.)�osr����AttributeError�OSError�_open_terminal� slave_open)� master_fd� slave_name�slave_fd��r����/usr/lib64/python3.8/pty.pyr������s���� c��������������� ���C���sL���zt����\}�}W�n�ttfk r(���Y�nX�t��|�}t��|��|�|fS�t��S�)z�master_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 ����ttyname�closer���)r ���r���r���r���r���r����master_open"���s���� r���c��������������� ���C���sn���dD�]\}�dD�]R}d|��|�}zt��|t�j�}W�n�tk rF���Y�qY�nX�|d|��|�f����S�qtd��dS�)z1Open pty master and return (master_fd, tty_name).ZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devicesN)r����open�O_RDWRr ���)�x�yZpty_name�fdr���r���r���r���2���s���� r���c�����������������C���sr���t��|�t�j�}zddlm}m}�W�n�tk r:���|�Y�S�X�z|||d��|||d��W�n�tk rl���Y�nX�|S�)z�slave_open(tty_name) -> slave_fd Open the pty slave and acquire the controlling terminal, returning opened filedescriptor. Deprecated, use openpty() instead.r���)�ioctl�I_PUSHZptemZldterm)r���r���r���Zfcntlr���r����ImportErrorr ���)Ztty_name�resultr���r���r���r���r���r���>���s���� r���c��������������� ���C���s����zt����\}�}W�n�ttfk r(���Y�n4X�|�tkrTzt�����W�n�tk rR���Y�nX�|�|fS�t��\}}t����}�|�tkr�t�����t��|��t�� |t ��t�� |t��t�� |t��|tkr�t��|��t�� t��t�t�j�}t��|��n t��|��|�|fS�)zdfork() -> (pid, master_fd) Fork and make the child a session leader with a controlling terminal.)r����forkptyr ���r ����CHILD�setsidr���r���r����dup2�STDIN_FILENO� STDOUT_FILENO� STDERR_FILENOr���r���r���)�pidr���r ���r���Ztmp_fdr���r���r���r���P���s0���� c�����������������C���s"���|rt��|�|�}||d��}q�dS�)z#Write all the data to a descriptor.N)r����write)r����data�nr���r���r����_writenx���s����r)���c�����������������C���s���t��|�d�S�)zDefault read function.i���)r����read)r���r���r���r����_read~���s����r+���c�����������������C���sv���|�t�g}t|g�g��\}}}|�|krF||��}|s:|�|���nt�t|��t�|kr|t��}|sf|�t���qt|�|��qdS�)z�Parent copy loop. Copies pty master -> standard output (master_read) standard input -> pty master (stdin_read)N)r"���r����remover���r&���r#���r)���)r ����master_read� stdin_readZfdsZrfdsZwfdsZxfdsr'���r���r���r����_copy����s����r/���c�����������������C���s����t�|��t�d�kr|�f}�t�d|���t��\}}|tkrHtj|�d�f|�����zt�t �}t� t ��d}W�n�tjk r~���d}Y�nX�zt|||��W�n(�t k r����|r�t�t tj|��Y�nX�t�|��t�|d�d�S�)zCreate a spawned process.��z pty.spawnr���r���)�type�sys�auditr���r���r����execlp�ttyZ tcgetattrr"���Zsetraw�errorr/���r ���Z tcsetattrZ TCSAFLUSHr����waitpid)�argvr-���r.���r%���r ����modeZrestorer���r���r���r�������s&���� )�__doc__r���r���r2���r5����__all__r"���r#���r$���r���r���r���r���r���r���r)���r+���r/���r���r���r���r���r����<module>���s$��� (