
    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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 d8dZej        d9d            Zd:dZd;dZ G d de          Zd<dZd=dZddd>d$Zd?d&Zej         d'k    rd d(lm!Z! d dl"Z" G d) d*          Z#ddd>d+Z$neZ$d@d/Z%ej&        d0k     r	dAd3Z'dBd4Z(ndBd5Z(dCd7Z)dS )D    )annotationsN)Callable)	Generator)TracebackType)Any)parse_shebangexcr   returnbytesc                z   t          j        t                    5  t          |           cd d d            S # 1 swxY w Y   t          j        t                    5  t          |                                           cd d d            S # 1 swxY w Y   dt          |           j         d                                S )Nz<unprintable z object>)	
contextlibsuppress	TypeErrorr   	Exceptionstrencodetype__name__)r	   s    _/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/util.pyforce_bytesr      s   		Y	'	'  Szz               		Y	'	' ! !3xx  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !7499-777>>@@@s   6::!BBBpathr   Generator[None]c              #     K   	 dV  dS # t           $ r0 t          j                            |           rt	          |             w xY w)z2Cleans up the directory on an exceptional failure.N)BaseExceptionosr   existsrmtreer   s    r   clean_path_on_failurer      sW         7>>$ 	4LLLs	   
 :Afilenamec                    t           j                            d          }|                    |                                           S )Nzpre_commit.resources)	importlib	resourcesfilesjoinpath	read_text)r    r$   s     r   resource_textr'   &   s7    %%&<==E>>(##--///    Nonec                    t          j        |           j        }|t          j        z  t          j        z  t          j        z  }t          j        | |           d S N)r   statst_modeS_IXUSRS_IXGRPS_IXOTHchmod)r    original_modenew_modes      r   make_executabler4   +   sF    GH%%-Mt|+dl:T\IHHXx     r(   c                  0     e Zd Zd fdZddZddZ xZS )CalledProcessError
returncodeintcmdtuple[str, ...]stdoutr   stderrbytes | Noner
   r)   c                    t                                          ||||           || _        || _        || _        || _        d S r+   )super__init__r7   r9   r;   r<   )selfr7   r9   r;   r<   	__class__s        r   r@   zCalledProcessError.__init__2   sC     	S&&999$r(   c                    dd}d                     d| j        d                                d	| j         d                                d
 || j                  dd || j                  f          S )Npartr=   r
   r   c                `    | r+d|                      dd                                          z   S dS )Ns   
       
s    (none))replacerstrip)rD   s    r   _indent_or_nonez5CalledProcessError.__bytes__.<locals>._indent_or_none@   s4     " 4<<y#A#A#H#H#J#JJJ!zr(   r(   z	command: 
zreturn code: s   stdout:rF   s   stderr:)rD   r=   r
   r   )joinr9   r   r7   r;   r<   )rA   rI   s     r   	__bytes__zCalledProcessError.__bytes__?   s    	" 	" 	" 	" xx&&&&--///DO///668844e44	
   	r(   r   c                N    |                                                                  S r+   )rL   decoderA   s    r   __str__zCalledProcessError.__str__M   s    ~~&&(((r(   )
r7   r8   r9   r:   r;   r   r<   r=   r
   r)   )r
   r   )r
   r   )r   
__module____qualname__r@   rL   rP   __classcell__)rB   s   @r   r6   r6   1   se                ) ) ) ) ) ) ) )r(   r6   kwargsdict[str, Any]c                P    dD ]"}|                      |t          j                   #d S )Nstdinr;   r<   )
setdefault
subprocessPIPE)rT   args     r   _setdefault_kwargsr]   Q   s6    , 0 0#z////0 0r(   eOSErrortuple[int, bytes, None]c                R    dt          |                               d          dz   d fS )N   rF   )r   rH   )r^   s    r   _oserror_to_outputrc   V   s(    k!nn##E**U2D88r(   T)checkr9   rd   booltuple[int, bytes, bytes | None]c                   t          |           	 t          j        ||                    d                    }	 t	          j        |fi |}|                                \  }}|j        }n^# t          $ r}t          |          \  }}}Y d }~n<d }~ww xY w# t          j
        $ r"}|                                \  }}}Y d }~nd }~ww xY w| r|rt          ||||          |||fS )Nenv)rh   )r]   r   normalize_cmdgetrZ   Popencommunicater7   r_   rc   ExecutableNotFoundError	to_outputr6   )rd   r9   rT   procstdout_bstderr_br7   r^   s           r   cmd_output_brr   Z   s/   
 v))#6::e3D3DEEE	)#C22622D "&!1!1!3!3HhJJ	  	C 	C 	C-?-B-B*J((((((	C 0 7 7 7)*&
Hhhhhhh7  F F S(HEEEx))s.   )B A, ,
B6BBC%CCtuple[int, str, str | None]c                     t          | i |\  }}}||                                nd }||                                nd }|||fS r+   )rr   rN   )r9   rT   r7   rp   rq   r;   r<   s          r   
cmd_outputru   t   sZ    %13%A&%A%A"J("*"6X__DF"*"6X__DFvv%%r(   win32)openptyc                  6    e Zd ZddZddZddZddZddZdS )Ptyr
   r)   c                "    d | _         d | _        d S r+   )rwrO   s    r   r@   zPty.__init__   s    !%DF!%DFFFr(   c                B   t                      \  | _        | _        t          j        | j                  }t          |d         t                    sJ |dxx         t          j        t          j        z   z  cc<   t          j	        | j        t          j
        |           | S Nrb   )rw   r{   r|   termios	tcgetattr
isinstancer8   ONLCROPOST	tcsetattrTCSANOW)rA   attrss     r   	__enter__zPty.__enter__   s    $YYNDFDF %df--EeAh,,,,,!HHH'-'-788HHHdfgou===Kr(   c                X    | j         "t          j        | j                    d | _         d S d S r+   )r|   r   closerO   s    r   close_wzPty.close_w   s/    v!    "!r(   c                X    | j         J t          j        | j                    d | _         d S r+   )r{   r   r   rO   s    r   close_rzPty.close_r   s-    6%%%HTVDFFFr(   exc_typetype[BaseException] | None	exc_valueBaseException | None	tracebackTracebackType | Nonec                V    |                                   |                                  d S r+   )r   r   )rA   r   r   r   s       r   __exit__zPty.__exit__   s"     LLNNNLLNNNNNr(   N)r
   r)   )r
   ry   )r   r   r   r   r   r   r
   r)   )r   rQ   rR   r@   r   r   r   r    r(   r   ry   ry      sx        	& 	& 	& 	&		 		 		 			 	 	 	
	 	 	 	
	 	 	 	 	 	r(   ry   c                   | du sJ |d         t           j        k    sJ |d                     t          |           	 t          j        |          }n0# t          j        $ r}|                                cY d }~S d }~ww xY wt          t          j	                  5 }t                      5 }|j        J |                    ||j        |j        d           	 t          j        |fi |}n># t          $ r1}t!          |          cY d }~cd d d            cd d d            S d }~ww xY w|                                 d}	 	 t          j        |j        d          }||z  }n0# t          $ r#}|j        t&          j        k    rd}n Y d }~nd }~ww xY w|snU	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                                |d fS )NFr<   rW   r(   Ti   )rZ   STDOUTr]   r   ri   rm   rn   openr   devnullry   r{   updater|   rk   r_   rc   r   readerrnoEIOwait)	rd   r9   rT   r^   r   ptyro   bufbtss	            r   cmd_output_pr      s   
 ~~~~h:#4444fX6F4446"""	!-c22CC4 	! 	! 	!;;==      	! "* 	#%% 	35$$$MMGsuNNOOO-!'66v66 - - -)!,,,,,,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
- KKMMMC'#%..C 3JCC    w%)++!    -	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	0 yy{{C%%s   A A?!A:4A?:A?F9*-F"C+*F"+
D&5D!D&F"F9!D&&F"E!F"!
F+F	F"	FF"F9"F&	&F9)F&	*F99F= F=funcCallable[[str], object]r   c                   | t           j        t           j        t           j        fv rt	          |t
                    r|j        t          j        t          j        hv rj|t           j	        
                    |          fD ];}t          j        |t          j        |          j        t          j        z             < | |           d S  r+   )r   rmdirremoveunlinkr   r_   r   EACCESEPERMr   dirnamer1   r,   r-   S_IWUSR)r   r   r	   ps       r   _handle_readonlyr      s     RXry")444sG$$ 5I%,444--. 	; 	;AHQ

*T\9::::T




r(   )      excinfo8tuple[type[BaseException], BaseException, TracebackType]c                0    t          | ||d                   S r~   )r   )r   r   r   s      r   _handle_readonly_oldr      s    
  dGAJ777r(   c                >    t          j        | dt                     d S )NF)ignore_errorsonerror)shutilr   r   r   s    r   r   r      s     d%9MNNNNNNr(   c                >    t          j        | dt                     dS )z+On windows, rmtree fails for readonly dirs.F)r   onexcN)r   r   r   r   s    r   r   r      s     d%7GHHHHHHr(   sc                0    t           j        dk    r| n|  dS )Nrv   z.exe)sysplatform)r   s    r   win_exer      s    ''11ZZZ7r(   )r	   r   r
   r   )r   r   r
   r   )r    r   r
   r   )r    r   r
   r)   )rT   rU   r
   r)   )r^   r_   r
   r`   )r9   r   rd   re   rT   r   r
   rf   )r9   r   rT   r   r
   rs   )r   r   r   r   r	   r   r
   r)   )r   r   r   r   r   r   r
   r)   )r   r   r
   r)   )r   r   r
   r   )*
__future__r   r   r   importlib.resourcesr"   os.pathr   r   r,   rZ   r   collections.abcr   r   typesr   typingr   
pre_commitr   r   contextmanagerr   r'   r4   RuntimeErrorr6   r]   rc   rr   ru   r   rw   r   ry   r   r   version_infor   r   r   r   r(   r   <module>r      s   " " " " " "                 



 $ $ $ $ $ $ % % % % % %             $ $ $ $ $ $A A A A    0 0 0 0
! ! ! !) ) ) ) ) ) ) )@0 0 0 0
9 9 9 9 * * * * * *4& & & & <7NNN! ! ! ! ! ! ! !J && && && && && && &&P  L   " g8 8 8 8O O O O OI I I I
8 8 8 8 8 8r(   