Edit File: pty.cpython-311.opt-1.pyc
� �����f�����������������������������d�Z�ddlmZ�ddlZddlZddlZddlmZmZ�ddlmZmZm Z �g�d�Z dZdZdZ dZd ��Zd ��Zd��Zd��Zd ��Zd��Zeefd�Zeefd�ZdS�)zPseudo terminal utilities.�����)�selectN)�close�waitpid)�setraw� tcgetattr� tcsetattr)�openpty�fork�spawn��������c������������������������ �t����������j����������������������S�#�t����������t����������f$�r�Y�nw�xY�wt ������������������������\��}�}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_fds��� �*/opt/alt/python311/lib64/python3.11/pty.pyr ���r ������s`������ ��z�|�|����G�$�� �� �� ��� ����*�,�,��I�z��*�%�%�H��h��s������)�)c������������������������� �t����������j����������������������\��}�}t����������j��������|������������}t����������j��������|�������������|�|fS�#�t����������t ����������f$�r�Y�nw�xY�wt ������������������������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 ����ttynamer���r���r���r���)r���r���r���s��� r����master_openr���&���sx������ %� �j�l�l�� �8���Z��)�)� � �������*�$�$��� �G�$�� �� �� ��� ��������s����A��A�Ac������������������������dD�]M}�dD�]H}d|�z���|z���} �t����������j��������|t�����������j��������������������}n#�t����������$�r�Y��7w�xY�w|d|�z���|z���fc�c�S��Nt����������d�������������)z1Open pty master and return (master_fd, tty_name).�pqrstuvwxyzPQRST�0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devices)r����open�O_RDWRr���)�x�y�pty_name�fds��� r���r���r���6���s������� ��,��,��#�� ,�� ,�A�!�A�~��)�H� ��W�X�r�y�1�1������ �� �� ��� ����� �Q���*�+�+�+�+�+�+� ,���&� '� '�'s����2� ?�?c������������������������t����������j��������|�t�����������j��������������������} �ddlm}m}�n#�t����������$�r�|cY�S�w�xY�w ��|||d��������������|||d�������������n#�t����������$�r�Y�nw�xY�w|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_PUSH�ptem�ldterm)r���r���r����fcntlr%���r&����ImportErrorr���)�tty_name�resultr%���r&���s��� r���r���r���B���s���������W�X�r�y� )� )�F��'�'�'�'�'�'�'�'�'���������� � � ����� � ��f�f�f�%�%�%� ��f�f�h�'�'�'�'���� �� �� ��� �����Ms����*��9�9�A�� A%�$A%c����������������������� �t����������j����������������������\��}�}|�t����������k����r% �t����������j�����������������������n#�t����������$�r�Y�nw�xY�w|�|fS�#�t ����������t����������f$�r�Y�nw�xY�wt ������������������������\��}}t����������j����������������������}�|�t����������k����r�t����������j�����������������������t����������j��������|�������������t����������j ��������|t�����������������������t����������j ��������|t�����������������������t����������j ��������|t�����������������������|t����������k����rt����������j��������|�������������t����������j ��������t����������j��������t����������������������t�����������j��������������������}t����������j��������|�������������nt����������j��������|�������������|�|fS�)zdfork() -> (pid, master_fd) Fork and make the child a session leader with a controlling terminal.)r����forkpty�CHILD�setsidr���r���r ���r ���r����dup2�STDIN_FILENO� STDOUT_FILENO� STDERR_FILENOr���r���r���)�pidr#���r���r����tmp_fds��� r���r ���r ���T���se�������*�,�,���R���%�<�<� �� �������� �� �� ��� ������B�w���� �G�$�� �� �� ��� �����"�)�)��I�x� �'�)�)�C� �e�|�|� � ���� ������� ���,�'�'�'� ���-�(�(�(� ���-�(�(�(��m�#�#��H�X���������M�2�2�B�I�>�>�� ������� �������� �>�s ����A��8�� A�A�A �A c������������������,�����t����������j��������|�d������������S�)zDefault read function.i���)r����read)r#���s��� r����_readr9���|���s������ �7�2�t��������c����������������������t����������j��������|�������������rZt����������j��������|�d������������� �t����������|�||��������������t����������j��������|�d�������������n#�t����������j��������|�d�������������w�xY�wdS�d}|�t����������k����}|�t ����������k����}d}d} �g�}g�} |r-t ����������|������������|k�����r|���������������������t�����������������������|r(t ����������|������������|k�����r|���������������������|��������������|r-t ����������|������������dk����r| ���������������������t �����������������������t ����������|������������dk����r| ���������������������|��������������t����������|| g�������������\��}} } t ����������| v�r8 �t����������j ��������t ����������|������������}||d����������}n#�t����������$�r�d}Y�nw�xY�w|�|v�r( ��||�������������}n#�t����������$�r�d}Y�nw�xY�w|sdS�||z ��}|�| v�rt����������j ��������|�|������������}||d����������}|r#t����������|v�r�|t����������������������}|sd}n||z ��}���) z�Parent copy loop. Copies pty master -> standard output (master_read) standard input -> pty master (stdin_read)F)�master_read� stdin_readTNi���r:���r���r���)r����get_blocking�set_blocking�_copyr2���r3����len�appendr����writer���) r���r<���r=����high_waterlevel�stdin_avail�stdout_avail�i_buf�o_buf�rfds�wfds�_xfds�n�datas ��� r���r@���r@�������sx����� � ��y�!�!�� �� �� �5�)�)�)� -��)���L�L�L�L�� �O�I�t�,�,�,�,��B�O�I�t�,�,�,�,�������O��|�+�K�� �-�L��E��E�*������� &�3�u�:�:��7�7��K�K��%�%�%��� #�C��J�J��8�8��K�K� �"�"�"��� '�C��J�J��N�N��K�K� �&�&�&��u�:�:��>�>��K�K� �"�"�"�"�4��r�2�2���d�E��D� � � %��H�]�E�2�2���a�b�b� ������ %�� %�� %�$���� %��������� �"�{�9�-�-������ �� �� ����� ������ ����T�M�E��������E�*�*�A��!�"�"�I�E��� �<�4�/�/��:�l�+�+�D��� �#����� ��U*s/����A��A*�$F��F�F�F'��'F6�5F6c������������������d����t����������|�������������t����������d������������k����r|�f}�t����������j��������d|��������������t������������������������\��}}|t����������k����rt����������j��������|�d���������g|��R���� �t����������t����������������������}t����������t�����������������������d}n#�t����������j��������$�r�d}Y�nw�xY�w �t����������|||�������������|r t����������t����������t����������j��������|�������������n(#�|r!t����������t����������t����������j��������|�������������w�w�xY�wt����������|�������������t!����������|d������������d���������S�)zCreate a spawned process.��z pty.spawnr���TFr���)�type�sys�auditr ���r/���r����execlpr���r2���r����tty�errorr@���r���� TCSAFLUSHr���r���)�argvr<���r=���r5���r����mode�restores��� r���r���r�������s2������D�z�z�T�"�X�X����w���I�k�4� � � ��V�V�N�C�� �e�|�|� � �$�q�'�!�D�!�!�!�!����&�&���|���������9���������������9� �i��j�1�1�1��� 9��l�C�M�4�8�8�8������ 9��l�C�M�4�8�8�8�8� 9����� �)�����3��?�?�1��s����.*B��B-�,B-�1C%��%%D )�__doc__r���r���rQ���rT���r���r���r���r���r����__all__r2���r3���r4���r/���r ���r���r���r���r ���r9���r@���r�����r:���r����<module>r]������s-����� �� �������������� � � � �� � � � �� � � � ������������������,��,��,��,��,��,��,��,��,��,� &� &� &����� �� � �� �� �� ������ (�� (�� (������$&��&��&�P������"'�5��?��?��?��?�B�"�e������������r:���