%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/pexpect/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/pexpect/__pycache__/utils.cpython-312.pyc

�

��e����ddlZddlZddlZddlZddlZddlZ	eejddk\re
fZnee
fZd�Z
dd�Zd�Zdd�Zdd�Zy#e$rejZY�@wxYw)	�N�c���tjj|�}tjj|�sytj|�j
}tjjd�rUtj�dk(r>t|tjtjztjzz�Stj|tj�S)z�Checks that path is an executable regular file, or a symlink towards one.

    This is roughly ``os.path isfile(path) and os.access(path, os.X_OK)``.
    F�sunosr)�os�path�realpath�isfile�stat�st_mode�sys�platform�
startswith�getuid�bool�S_IXUSR�S_IXGRP�S_IXOTH�access�X_OK)r�fpath�modes   �//usr/lib/python3/dist-packages/pexpect/utils.py�is_executable_filers���
�G�G���T�"�E�
�7�7�>�>�%� ��
�7�7�5�>�!�!�D�������(��	�	��q� ��D�D�L�L� �L�L�)� �L�L�)�*�+�	+��9�9�U�B�G�G�$�$�c�v�tjj|�dk7r
t|�r|S|�tj}|jd�}|stj}|jtj�}|D]1}tjj||�}t|�s�/|cSy)z�This takes a given filename; tries to find it in the environment path;
    then checks if it is executable. This returns the full path to the filename
    if found and executable. Otherwise this returns None.�N�PATH)
rr�dirnamer�environ�get�defpath�split�pathsep�join)�filename�env�p�pathlistr�ffs      r�whichr*0s���
�w�w���x� �B�&�+=�h�+G���
�{��j�j�������A���J�J���w�w�r�z�z�"�H����
�W�W�\�\�$��
)���b�!��I��rc�r�g}d}d}d}d}d}d}|}|D]�}	||k(s||k(rL|	dk(r|}�|	dk(r|}�|	d	k(r|}�%|	j�r||k(r�;|j|�d}|}�Q||	z}|}�Y||k(r||	z}|}�f||k(r|	dk(r|}�s||	z}�y||k(s�|	d	k(r|}��||	z}��|dk7r|j|�|S)
aThis splits a command line into a list of arguments. It splits arguments
    on spaces, but handles embedded quotes, doublequotes, and escaped
    characters. It's impossible to do this with a regular expression, so I
    wrote a little state machine to parse the command line. rr��r��\�'�")�isspace�append)
�command_line�arg_list�arg�state_basic�	state_esc�state_singlequote�state_doublequote�state_whitespace�state�cs
          r�split_command_liner>Es���H�
�C��K��I��������E�
�#���K��5�,<�#<��D�y�!���d��)���d��)�������,�,���O�O�C�(��C�,�E��A�g��#��
�i�
���'�C��E�
�'�
'��D�y�#���A�g��
�'�
'��D�y�#���A�g��G#�J�b�y�������Orc�B�|�tj�|z}		tj||||�S#t$r`tj�d}|j
dtjk(r%|�$tj�z
}|dkrgggfcYS�YnwxYw��)z�This is a wrapper around select.select() that ignores signals. If
    select.select raises a select.error exception and errno is an EINTR
    error then it is ignored. Mainly this is used to ignore sigwinch
    (terminal resize). r,r)�time�select�InterruptedErrorr�exc_info�args�errno�EINTR)�iwtd�owtd�ewtd�timeout�end_time�errs      r�select_ignore_interruptsrM�s������9�9�;��(��
�	��=�=��t�T�7�;�;���	��,�,�.��#�C��x�x��{�e�k�k�)��&�&�����4�G���{�!�2�r�l�*���	��s�4�A#B�B�Bc�R�|�tj�|z}tj�}|D]U}|j|tjtj
ztjztjz��W		|�dn|dz}|j|�}|D��cgc]\}}|��	c}}Scc}}w#t$r]tj�d}	|	jdtjk(r"|�!tj�z
}|dkrgcYS�YnwxYw��)zOSimple wrapper around poll to register file descriptors and
    ignore signals.Ni�r,r)r@rA�poll�register�POLLIN�POLLPRI�POLLHUP�POLLERRrBrrCrDrErF)
�fdsrJrK�poller�fd�
timeout_ms�results�afd�_rLs
          r�poll_ignore_interruptsr\�s�����9�9�;��(��
�[�[�]�F��^������F�M�M�F�N�N�:�V�^�^�K�f�n�n�\�]�^��	�!(���g��n�J��k�k�*�-�G�&-�.�F�C��C�.�.��.���	��,�,�.��#�C��x�x��{�e�k�k�)��&�&�����4�G���{�!�	���	��s+�
B?�)B9�5B?�9B?�?A D%�!D%�$D%)N)rrr
rAr@rErB�	NameError�error�version_info�str�string_types�unicoderr*r>rMr\�rr�<module>rdsz��	�
��
���$��
���A��!���6�L��S�>�L�%�8�*:�z�:��k�$��|�|��$�s�A	�	A�A

Zerion Mini Shell 1.0