
    wi              
         d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d dlmZ d d	lmZ dZej        Zej        Zej        Zej        Zd)dZd)dZd)dZd)dZ G d de	          Z edd          e edd          e edd          e edd          eiZd*d$Z d+d,d'Z!e"d(k    r e# e!                      dS )-    )annotationsN)Sequence)Pattern)
NamedTuple)	lang_base)output)Prefix)xargspatternPattern[bytes]filenamestrreturnintc                :   d}t          |d          5 }t          |d          D ]]\  }}|                     |          rCd}t          j        | d| d           t          j        |                    d                     ^	 d d d            n# 1 swxY w Y   |S )Nr   rb   )start:s   
)open	enumeratesearchr   writewrite_line_brstrip)r   r   retvfline_nolines         k/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/languages/pygrep.py_process_filename_by_liner!      s    D	h		 :&q222 	: 	:MGT~~d## :557555666#DKK$8$8999		:: : : : : : : : : : : : : : : Ks   A0BBBc                   d}t          |d          5 }|                                }|                     |          }|rd}|d |                                                             d          }t          j        | d|dz    d           |d                             d          }|                    d          |         |d<   t          j        d	                    |                     d d d            n# 1 swxY w Y   |S )Nr   r   r      
r   )
r   readr   r   countr   r   splitr   join)r   r   r   r   contentsmatchr   matched_liness           r    _process_filename_at_oncer+   !   s1   D	h		 ;6688x(( 	;D~~.44U;;GLH55w{555666!!HNN511M'~~e44W=M!

= 9 9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Ks   CC99C= C=c                    t          |d          5 }|D ]%}|                     |          r d d d            dS &t          j        |           	 d d d            dS # 1 swxY w Y   d S Nr   r   r   )r   r   r   
write_line)r   r   r   r   s       r    !_process_filename_by_line_negatedr/   2   s     
h		  	 	D~~d##         h'''                 s   AAA #A c                    t          |d          5 }|                                }d d d            n# 1 swxY w Y   |                     |          }|rdS t          j        |           dS r-   )r   r$   r   r   r.   )r   r   r   r(   r)   s        r    !_process_filename_at_once_negatedr1   ?   s     
h		 6688              NN8$$E q(###qs   266c                  $    e Zd ZU ded<   ded<   dS )Choicebool	multilinenegateN)__name__
__module____qualname____annotations__     r    r3   r3   M   s"         OOOLLLLLr<   r3   Tr5   r6   Fprefixr	   entryargsSequence[str]	file_argsis_localr4   require_serialcolortuple[int, bytes]c               X    t           j        dt          g||R }t          |||          S )Nz-m)rE   )sys
executabler7   r
   )r>   r?   r@   rB   rC   rD   rE   cmds           r    run_hookrK   Z   s4     >4
8D
8%
8
8Ciu----r<   argvSequence[str] | Nonec                   t          j        d          }|                    ddd           |                    dd           |                    dd           |                    d	d
           |                    dd           |                    |           }|j        rt
          j        nd}|j        r|t
          j        t
          j	        z  z  }t          j
        |j                                        |          }d}t          t          |j        |j                           }|j        D ]}| |||          z  }|S )Nzgrep-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--negater   zpython regex pattern.)help	filenames*)nargsr   r=   )argparseArgumentParseradd_argument
parse_argsignore_casere
IGNORECASEr5   	MULTILINEDOTALLcompiler   encodeFNSr3   r6   rS   )rL   parserr@   flagsr   r   
process_fnr   s           r    mainre   h   sP   $;  F olCCC
l;;;

<888
	(?@@@
3///T""D!-4BMM1E~ *	))j,,..66GDVdnT[IIIJJN . .

7H---Kr<   __main__)r   r   r   r   r   r   )r>   r	   r?   r   r@   rA   rB   rA   rC   r4   rD   r4   rE   r4   r   rF   )N)rL   rM   r   r   )$
__future__r   rV   r[   rH   collections.abcr   r   typingr   
pre_commitr   r   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_envr!   r+   r/   r1   r3   ra   rK   re   r7   
SystemExitr;   r<   r    <module>rw      s   " " " " " "  				 



 $ $ $ $ $ $                               $ $ $ $ $ $ " " " " " "9 +* 		      "
 
 
 
       Z    FT$''')J
FT%(((*C
FU4(((*K
FU5)))+D	. . . .    8 z
*TTVV

 r<   