Viewing File: /opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/__pycache__/pygrep.cpython-312.pyc

�

i0i��
���ddlmZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddl
mZddl
mZdd	lmZdZej$Zej(Zej,Zej0Zdd
�Zdd�Z						dd�Z						dd
�ZGd�de	�Zedd��eedd��eedd��eedd��eiZ																dd�Z ddd�Z!e"dk(r
e#e!���y)�)�annotationsN)�Sequence)�Pattern)�
NamedTuple)�	lang_base)�output)�Prefix)�xargsc� �d}t|d�5}t|d��D]X\}}|j|�s�d}tj|�d|�d��tj
|j
d���Z	ddd�|S#1swY|SxYw)Nr�rb�)�start�:s
)�open�	enumerate�searchr�write�write_line_b�rstrip)�pattern�filename�retv�f�line_no�lines      �J/opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/pygrep.py�_process_filename_by_liners����D�	
�h��	��&�q��2�M�G�T��~�~�d�#�������z��7�)�1�5�6��#�#�D�K�K��$8�9�	3�
��K�

��K�s�%B�AB�B
c��d}t|d�5}|j�}|j|�}|r�d}|d|j�j	d�}tj|�d|dz�d��|djd�}|jd�||d<tjdj|��ddd�|S#1swY|SxYw)Nrrr
�
r)
r�readrr�countrr�splitr�join)rrrr�contents�matchr�
matched_liness        r�_process_filename_at_oncer'!s����D�	
�h��	���6�6�8�����x�(����D��~����
�.�4�4�U�;�G��L�L�H�:�Q�w��{�m�1�5�6�!�!�H�N�N�5�1�M�'�~�~�e�4�W�=�M�!������
�
�=� 9�:�
��K�
��K�s�B5C�Cc��t|d�5}|D]}|j|�s�ddd�ytj|�	ddd�y#1swYyxYw�Nrrr
)rrr�
write_line)rrrrs    r�!_process_filename_by_line_negatedr+2sN��
�h��	���D��~�~�d�#��
�	��
���h�'��

�	�	�s�A�A�A�Ac��t|d�5}|j�}ddd�|j�}|rytj|�y#1swY�3xYwr))rr rrr*)rrrr$r%s     r�!_process_filename_at_once_negatedr-?sN��
�h��	���6�6�8��
��N�N�8�$�E������(�#��
�	�s�A�Ac�"�eZdZUded<ded<y)�Choice�bool�	multiline�negateN)�__name__�
__module__�__qualname__�__annotations__��rr/r/Ms���O��Lr8r/T�r1r2Fc�V�tjdtg|�|��}t|||��S)Nz-m)�color)�sys�
executabler3r
)�prefix�entry�args�	file_args�is_local�require_serialr;�cmds        r�run_hookrEZs-���>�>�4��
8�D�
8�%�
8�C���i�u�-�-r8c��tjd��}|jddd��|jdd��|jdd��|jd	d
��|jdd
��|j|�}|jrt
jnd}|jr$|t
jt
jzz}tj|jj�|�}d}tt|j|j��}|j D]}||||�z}�|S)Nz�grep-like finder using python regexes.  Unlike grep, this tool returns nonzero when it finds a match and zero otherwise.  The idea here being that matches are "problems".)�descriptionz-iz
--ignore-case�
store_true)�actionz--multilinez--negaterzpython regex pattern.)�help�	filenames�*)�nargsrr9)�argparse�ArgumentParser�add_argument�
parse_args�ignore_case�re�
IGNORECASEr1�	MULTILINE�DOTALL�compiler�encode�FNSr/r2rK)�argv�parserr@�flagsrr�
process_fnrs        r�mainr^hs��
�
$�
$�
;��F�����o�l��C�
���
�l��;�
���
�<��8�
���	�(?��@�
����3��/����T�"�D�!�-�-�B�M�M�1�E��~�~�
�����	�	�)�)���j�j����,�,�.��6�G��D��V�d�n�n�T�[�[�I�J�J��N�N���
�7�H�-�-��#��Kr8�__main__)rzPattern[bytes]r�str�return�int)r>r	r?r`r@�
Sequence[str]rArcrBr0rCr0r;r0raztuple[int, bytes])N)rZzSequence[str] | Nonerarb)$�
__future__rrNrSr<�collections.abcrr�typingr�
pre_commitrr�pre_commit.prefixr	�pre_commit.xargsr
�ENVIRONMENT_DIR�basic_get_default_version�get_default_version�basic_health_check�health_check�
no_install�install_environment�no_env�in_envrr'r+r-r/rYrEr^r3�
SystemExitr7r8r�<module>rts\��"��	�
�$��� ��$�"����9�9���+�+���*�*��	�	�	����"
��
��
�	�
������	���Z���T�$�'�)J�
�T�%�(�*C�
�U�4�(�*K�
�U�5�)�+D�	��.��.��.��.�!�	.��
.��.��.��.��8�z��
�T�V�
��r8
Back to Directory File Manager