� ��^i)���ddlZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZmZdZ e� e ��Z Gd�de��ZGd�d e��ZdS) �N�)�AnsiFore�AnsiBack� AnsiStyle�Style�BEL)�WinTerm�WinColor�WinStyle)�windll� winapi_testc�L�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z e d���Z d S) � StreamWrapperz� Wraps a stream (such as stdout), acting as a transparent proxy for all attribute access apart from method 'write()', which is delegated to our Converter instance. c�"�||_||_dS�N)�_StreamWrapper__wrapped�_StreamWrapper__convertor)�self�wrapped� converters ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/colorama/ansitowin32.py�__init__zStreamWrapper.__init__s��!���$�����c�,�t|j|��Sr)�getattrr)r�names r� __getattr__zStreamWrapper.__getattr__s���t�~�t�,�,�,rc�&�|jj|i|��Sr)r� __enter__�r�args�kwargss rrzStreamWrapper.__enter__s��(�t�~�'��8��8�8�8rc�&�|jj|i|��Sr)r�__exit__r s rr$zStreamWrapper.__exit__%s��&�t�~�&��7��7�7�7rc�:�|j�|��dSr)r�write�r�texts rr&zStreamWrapper.write(s�� ����t�$�$�$�$�$rc��|j}dtjvr |�|tjus|tjurdS |j}|��S#t$rYdSwxYw)N�PYCHARM_HOSTEDTF)r�os�environ�sys� __stdout__� __stderr__�isatty�AttributeError)r�stream� stream_isattys rr0zStreamWrapper.isatty+sw����� �r�z� )� )��!�v���'?�'?�6�S�^�C[�C[��t� #�"�M�M�!�=�?�?� "��� � � ��5�5� ���s�A� A�Ac�B�|j} |jS#t$rYdSwxYw�NT)r�closedr1)rr2s rr6zStreamWrapper.closed7s8����� ��=� ��� � � ��4�4� ���s �� �N) �__name__� __module__� __qualname__�__doc__rrrr$r&r0�propertyr6�rrrrs��������� %�%�%� -�-�-�9�9�9� 8�8�8�%�%�%� #� #� #�����X���rrc��eZdZdZejd��Zejd��Zdd�Zd�Z d�Z d �Z d �Z d �Z d �Zd �Zd�Zd�Zd�ZdS)� AnsiToWin32z� Implements a 'write()' method which, on Windows, will strip ANSI character sequences from the text, and if outputting to a tty, will convert them into win32 function calls. z?\[((?:\d|;)*)([a-zA-Z])?z?\]([^]*)()?NFc��||_||_t||��|_tjdk}|o t ��}|�)|p&|jj o|j��� }||_ |�(|o%|jj o|j���}||_ |� ��|_ |jtju|_dS)N�nt)r� autoresetrr2r+rr r6r0�strip�convert�get_win32_calls� win32_callsr-�stderr� on_stderr)rrrCrBrA� on_windows�conversion_supporteds rrzAnsiToWin32.__init__Is����� �#���$�G�T�2�2�� ��W��_� � *�;�k�m�m�� �=�(�a���1C�-C�-`�D�K�L^�L^�L`�L`�H`�E��� � �?�*�^�4�;�3E�/E�^�$�+�J\�J\�J^�J^�G��� � �/�/�1�1�������3����rc�,�|jp |jp|jS)aj True if this class is actually needed. If false, then the output stream will not be affected, nor will win32 calls be issued, so wrapping stdout is not actually required. This will generally be False on non-Windows platforms, unless optional functionality like autoreset has been requested using kwargs to init() )rCrBrA�rs r� should_wrapzAnsiToWin32.should_wrapjs���|�;�t�z�;�T�^�;rc � �|j�r+t�r#itjtjf�tjtjtjf�tjtjtj f�tj tjtj f�tj tj tj f�tjtj tjf�tjtj tjf�tjtj tjf�tjtj tjf�tjtj tjf�tjtj tjf�tjtj tjf�tjtj f�tjtj tj df�tjtj tjdf�tjtj tjdf�tjtj tjdf�itjtj tjdf�tjtj tjdf�tjtj tjdf�tjtj tjdf�t>j tj tj f�t>jtj tjf�t>jtj tjf�t>jtj tjf�t>jtj tjf�t>jtj tjf�t>jtj tjf�t>jtj tjf�t>jtj f�t>jtj tj df�t>jtj tjdf�t>jtj tjdf�t>jtj tjdf��t>jtj tjdft>jtj tjdft>jtj tjdft>jtj tjdfi�StC��Sr5)"rC�wintermr� RESET_ALL� reset_all�BRIGHT�styler �DIM�NORMALr�BLACK�forer �RED�GREEN�YELLOW�BLUE�MAGENTA�CYAN�WHITE�GREY�RESET� LIGHTBLACK_EX� LIGHTRED_EX� LIGHTGREEN_EX�LIGHTYELLOW_EX� LIGHTBLUE_EX�LIGHTMAGENTA_EX� LIGHTCYAN_EX� LIGHTWHITE_EXr�back�dictrKs rrDzAnsiToWin32.get_win32_callsts��� �<�( �G�( �'��#�g�&7�%:�'�� �7�=�(�/�"B�'�� �� �x��?�'�� �7�=�(�/�"B� '� ����x�~� >� '� � �w�|�X�\�:� '�����x�~� >�'���'�,���!@�'�� �� �h�m�<�'�� �7�<��1A�"B�'�� �� �h�m�<�'�����x�}� =�'����� 0�'��&���x�~�t�(L�'��$�w�|�X�\�4�&H�'� �&���x�~�t�(L�!'�"�'�'�,����)N�#'�'�$�%�� �h�m�T�'J�%'�&�(�7�<��9I�4�*P�''�(�%�� �h�m�T�'J�)'�*�&���x�}�d�(K�+'�,����x�~� >�-'�.� �w�|�X�\�:�/'�0����x�~� >�1'�2��'�,���!@�3'�4� �� �h�m�<�5'�6� �7�<��1A�"B�7'�8� �� �h�m�<�9'�:����x�}� =�;'�<���� 0�='�>�&���x�~�t�(L�?'�@�$�w�|�X�\�4�&H�A'�B�&���x�~�t�(L�C'�D�'�'�,����)N�E'�'�F�%�� �h�m�T�'J��(�7�<��9I�4�*P��%�� �h�m�T�'J��&���x�}�d�(K�M'�'�' �P�v�v� rc���|js|jr|�|��n3|j�|��|j���|jr|���dSdSr)rBrC�write_and_convertrr&�flushrArPr's rr&zAnsiToWin32.write�s��� �:� !��� !� � "� "�4� (� (� (� (� �L� � �t� $� $� $� �L� � � � � � �>� � �N�N� � � � � � � rc��|jr|�dd��dS|js2|jjs(|j�tj��dSdSdS)N�m�r) rC� call_win32rBr2r6rr&rrOrKs rrPzAnsiToWin32.reset_all�sn�� �<� 0� �O�O�C�� &� &� &� &� &��� 0�D�K�$6� 0� �L� � �u�� /� /� /� /� /� 0� 0� 0� 0rc�N�d}|�|��}|j�|��D]N}|���\}}|�|||��|j|����|}�O|�||t|����dS)z� Write the given text to our wrapped stream, stripping any ANSI sequences from the text, and optionally converting them into win32 calls. rN)� convert_osc� ANSI_CSI_RE�finditer�span�write_plain_text� convert_ansi�groups�len)rr(�cursor�match�start�ends rrkzAnsiToWin32.write_and_convert�s��� ������%�%���%�.�.�t�4�4� � �E������J�E�3� � !� !�$��� 6� 6� 6� �D� �u�|�|�~�~� .� .��F�F� ���d�F�C��I�I�6�6�6�6�6rc��||kr=|j�|||���|j���dSdSr)rr&rl)rr(r|r}s rrvzAnsiToWin32.write_plain_text�sJ�� �3�;�;� �L� � �t�E�#�I�� /� /� /� �L� � � � � � � � �;rc�p�|jr.|�||��}|�||��dSdSr)rC�extract_paramsrp)r� paramstring�command�paramss rrwzAnsiToWin32.convert_ansi�sE�� �<� -��(�(��+�>�>�F� �O�O�G�V� ,� ,� ,� ,� ,� -� -rc�V�|dvrXtd�|�d��D����}t|��dkr|dz}t|��dk�nLtd�|�d��D����}t|��dkr |dvrd }n|d vrd}|S) N�Hfc3�^K�|](}t|��dkrt|��ndV��)dS)rrN�ry�int��.0�ps r� z-AnsiToWin32.extract_params..�s:����X�X�A�S��V�V�q�[�[�3�q�6�6�6�a�X�X�X�X�X�Xr�;�)rc3�ZK�|]&}t|��dk�t|��V��'dS)rNr�r�s rr�z-AnsiToWin32.extract_params..�s2����Q�Q�a�S��V�V�q�[�[�3�q�6�6�[�[�[�[�Q�Qrr�JKmro�ABCD)�tuple�splitry)rr�r�r�s rr�zAnsiToWin32.extract_params�s��� �d�?�?��X�X��AR�AR�SV�AW�AW�X�X�X�X�X�F��f�+�+��/�/��$����f�+�+��/�/���Q�Q�;�+<�+<�S�+A�+A�Q�Q�Q�Q�Q�F��6�{�{�a����e�#�#�!�F�F���&�&�!�F�� rc�@�|dkrL|D]G}||jvr<|j|}|d}|dd�}t|j���}||i|���HdS|dvr)t�|d|j���dS|dvr)t�|d|j���dS|dvr#t�||j���dS|dvrF|d}d| fd|f|df| dfd �|\} } t�| | |j���dSdS) Nrnrr)rG�J�Kr�r�)�A�B�C�D)rErirGrN� erase_screen� erase_line�set_cursor_position� cursor_adjust) rr�r��param� func_args�funcr!r"�n�x�ys rrpzAnsiToWin32.call_win32�sr�� �c�>�>�� *� *���D�,�,�,� $� 0�� 7�I�$�Q�<�D�$�Q�R�R�=�D�!�D�N�;�;�;�F��D�$�)�&�)�)�)��  *� *���^�^� � � ����d�n� � E� E� E� E� E� ��^�^� � � �v�a�y�D�N� � C� C� C� C� C� ��_�_� � '� '��$�.� '� I� I� I� I� I� �� � ��q� �A��a�R���1�v�Q��F�1�"�a��I�I�'�R�D�A�q� � !� !�!�Q�$�.� !� A� A� A� A� A� � rc��|j�|��D]�}|���\}}|d|�||d�z}|���\}}|tkrX|�d��dkr?|�d��}|ddvr t�|d����|S)Nr�rr�02) � ANSI_OSC_RErtrurxr�countr�rN� set_title)rr(r{r|r}r�r�r�s rrrzAnsiToWin32.convert_osc�s����%�.�.�t�4�4� 5� 5�E������J�E�3�����<�$�s�t�t�*�,�D�#(�<�<�>�>� �K���#�~�~��$�$�S�)�)�Q�.�.�(�.�.�s�3�3�F��a�y�D�(�(��)�)�&��)�4�4�4��� r)NNF)r7r8r9r:�re�compilersr�rrLrDr&rPrkrvrwr�rprrr<rrr>r>@s��������� �"�*�F�G�G�K��"�*�<�=�=�K�4�4�4�4�B<�<�<�*�*�*�X���0�0�0� 7� 7� 7� !�!�!� -�-�-� ���$B�B�B�, � � � � rr>)r�r-r+�ansirrrrrrNr r r �win32r r �objectrr>r<rr�r�s�� � � � � � � � � � � � �;�;�;�;�;�;�;�;�;�;�;�;�;�;�0�0�0�0�0�0�0�0�0�0�&�&�&�&�&�&�&�&� �� ���g�i�i�G�-�-�-�-�-�F�-�-�-�`B�B�B�B�B�&�B�B�B�B�Br