
    wi$                        d dl mZ d dl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Zd<dZd=dZddddddddddddddddd>d,Zd?d.Zd@d2Zd3d4d d d d3d3d5d6ZdAd7ZdBd8ZdCd;ZdS )D    )annotationsN)Sequence)run)
envcontext)normalize_cmd)Store(0000000000000000000000000000000000000000	hook_typestrhook_dirargsSequence[str]returntuple[int, bytes]c                   t           j                            d          rt          d|  d          | dk    r$t          j        j                                        }nd}t           j        	                    ||  d          }t          j
        |t           j                  sd|fS t          d          5  t          |g|R           }t          j        ||	          j        |fcd d d            S # 1 swxY w Y   d S )
NPRE_COMMIT_RUNNING_LEGACYz_bug: pre-commit's script is installed in migration mode
run `pre-commit install -f --hook-type zX` to fix this

Please report this bug at https://github.com/pre-commit/pre-commit/issuespre-push    z.legacyr   ))r   1)input)osenvironget
SystemExitsysstdinbufferreadpathjoinaccessX_OKr   r   
subprocessr   
returncode)r
   r   r   r   legacy_hookcmds         m/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/commands/hook_impl.py_run_legacyr(      sf   
 
z~~122 
?6?? ? ?
 
 	
 J	 %%'' ',,xI)>)>)>??K9["'** %x	9	:	: B B[040011~c///:EAB B B B B B B B B B B B B B B B B Bs   40C11C58C5retvintconfigskip_on_missing_configboolNonec                    t           j                            |          sZ|st          j        d          r"t	          d| d           t          |           t	          d| d           t          d          d S )NPRE_COMMIT_ALLOW_NO_CONFIG`z/` config file not found. Skipping `pre-commit`.zNo z file was found
- To temporarily silence this, run `PRE_COMMIT_ALLOW_NO_CONFIG=1 git ...`
- To permanently silence this, install pre-commit with the --allow-missing-config option
- To uninstall pre-commit run `pre-commit uninstall`   )r   r   isfilegetenvprintr   )r)   r+   r,   s      r'   _validate_configr6   .   s    
 7>>&!!  ! 	 RY/K%L%L 	 MfMMMNNNT"""Hf H H H   Q--   r   F)	all_filesremote_branchlocal_branchfrom_refto_refpre_rebase_upstreampre_rebase_branchremote_name
remote_urlcommit_msg_filenameprepare_commit_message_sourcecommit_object_namecheckout_typeis_squash_mergerewrite_commandcolorr7   r8   
str | Noner9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   argparse.Namespacec                   t          j        di d|d| d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|dddd ddddddS )NrF   
hook_stager8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   r7   rC   rD   rE   files hookverboseFshow_diff_on_failure	fail_fast)argparse	Namespace)r
   rF   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   s                    r'   _nsrS   C   s(   (    e9 $m "\	
  v 0/ ,+  K : 0/ 'D&C .- ) $m  (!" (#$ b%& T'( )* #U+, %- r   revc                4    t          j        ddd| f           S )Ngitrev-listz--quiet)r#   call)rT   s    r'   _rev_existsrY   q   s    z9cBCCCCr   r   bytesargparse.Namespace | Nonec                n   |d         }|d         }|                                                                 D ]|}|                    d          }|\  }}}	}
|t          k    r,|
t          k    r(t	          |
          rt          d| |
||	|||          c S t          j        dd|d	d
dd| f                                                                           }|s|                                d         }ddd|f}t          t          j        |                                                                                     }||v rt          d| d|||	|          c S dd| df}t          j        |                                                                           }t          d| |||||	|          c S d S )Nr   r2      )maxsplitr   )r:   r;   r8   r9   r>   r?   rV   rW   z--topo-orderz	--reversez--notz
--remotes=z--max-parents=0T)r7   r>   r?   r8   r9   z	rev-parse^)r:   r;   r>   r?   r8   r9   )
decode
splitlinesrsplitZ40rY   rS   r#   check_outputstripset)rF   r   r   r>   r?   linepartsr9   	local_shar8   
remote_sha	ancestorsfirst_ancestorr&   rootsrev_cmdsources                    r'   _pre_push_nsrp   u   s   
 q'KaJ))++ + +Q''=B:i
3;z#:#:E#I+)'J      #/z9nk3k331   vxx   !*!5!5!7!7!:j*;YGJ3C88??AALLNNOO!U**"E"&$/J&3%1       %kn3G3G3GHG'4W==DDFFLLNNF"E!'	$/J&3%1      4r   r2   r]      )
commit-msgpost-checkoutpost-commit
pre-commitpre-merge-commit
post-mergepost-rewriter   c                2   | dk    rMt          |          dk     st          |          dk    r%t          d|  dt          |           d|           d S | dk    rMt          |          dk     st          |          dk    r%t          d|  d	t          |           d|           d S | t          v rWt          |          }t          |          |k    r5|dk    rd
nd}t          d|  d| d| dt          |           d| 
          d S t          d|            )Nprepare-commit-msgr2   r]   zhook-impl for z' expected 1, 2, or 3 arguments but got z: 
pre-rebaserq   z# expected 1 or 2 arguments but got argument	argumentsz
 expected  z	 but got unexpected hook type: )lenr   _EXPECTED_ARG_LENGTH_BY_HOOKAssertionError)r
   r   expectedarguments_ss       r'   _check_args_lengthr      s   (((t99q==CIIMM/ / /t99/ /(,/ /   *M
 
l	"	"t99q==CIIMM/ / /t99/ /(,/ /   *M
 
2	2	2/	:t99  (0A**;K/ / /h / / / /t99/ /(,/ /   !  AiAABBBr   c                   t          | |           | dk    rt          |||          S | dv rt          | ||d                   S | dk    r+t          |          dk    rt          | ||d                   S | dk    r2t          |          dk    rt          | ||d         |d                   S | dk    r9t          |          d	k    r&t          | ||d         |d         |d         
          S | dv rt          | |          S | dk    r&t          | ||d         |d         |d                   S | dk    rt          | ||d                   S | dk    rt          | ||d                   S | dk    r+t          |          dk    rt          | ||d                   S | dk    r2t          |          dk    rt          | ||d         |d                   S t	          d|            )Nr   rr   r   )r@   rz   r2   rq   )r@   rA   r]   )r@   rA   rB   >   ru   rt   rv   rs   )r:   r;   rC   rw   )rD   rx   )rE   r{   )r<   )r<   r=   r   )r   rp   rS   r   r   )r
   rF   r   r   s       r'   _run_nsr      sE    y$'''JE4///	l	"	"9eaAAAA	*	*	*s4yyA~~9eaAAAA	*	*	*s4yyA~~u$q'*.q'
 
 
 	
 
*	*	*s4yyA~~u$q'*.q'd1g
 
 
 	
 
G	G	G9e$$$	o	%	%u!WT!WDG
 
 
 	
 
l	"	"9eT!W====	n	$	$9eT!W====	l	"	"s4yyA~~9eaAAAA	l	"	"s4yyA~~u$q'"1g
 
 
 	

 AiAABBBr   storer   c                   t          |||          \  }}t          |||           t          ||||          }	|	|S |t          || |	          z  S )N)r(   r6   r   r   )
r   r+   rF   r
   r   r,   r   r)   r   nss
             r'   	hook_implr      s`     i488KD%T6#9:::	E4	/	/B	zc&%,,,,r   )r
   r   r   r   r   r   r   r   )r)   r*   r+   r   r,   r-   r   r.   )$r
   r   rF   r-   r7   r-   r8   rG   r9   rG   r:   rG   r;   rG   r<   rG   r=   rG   r>   rG   r?   rG   r@   rG   rA   rG   rB   rG   rC   rG   rD   rG   rE   rG   r   rH   )rT   r   r   r-   )rF   r-   r   r   r   rZ   r   r[   )r
   r   r   r   r   r.   )
r
   r   rF   r-   r   r   r   rZ   r   r[   )r   r   r+   r   rF   r-   r
   r   r   r   r,   r-   r   r   r   r*   )
__future__r   rQ   os.pathr   r#   r   collections.abcr   pre_commit.commands.runr   pre_commit.envcontextr   pre_commit.parse_shebangr   pre_commit.storer   rc   r(   r6   rS   rY   rp   r   r   r   r   rL   r   r'   <module>r      s   " " " " " "       



 $ $ $ $ $ $ ' ' ' ' ' ' , , , , , , 2 2 2 2 2 2 " " " " " "B B B B:       2  $(#'#!*.(,"&!%*.48)-$(&*&*%+ + + + + +\D D D D6 6 6 6t 	  	  C C C C2*C *C *C *CZ- - - - - -r   