o
    Wi$                     @  s   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dDddZdEddZdddddddddddddddddFd.d/ZdGd1d2ZdHd6d7Zd8d9d d d d8d8d:d;ZdId<d=ZdJd>d?ZdKdBdCZdS )L    )annotationsN)Sequence)run)
envcontext)normalize_cmd)Store(0000000000000000000000000000000000000000	hook_typestrhook_dirargsSequence[str]returntuple[int, bytes]c                 C  s   t jdrtd|  d| dkrtjj }nd}t j	||  d}t 
|t js0d|fS td t|g|R }tj||d	j|fW  d    S 1 sQw   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cmd r%   Q/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/commands/hook_impl.py_run_legacy   s    
$r'   retvintconfigskip_on_missing_configboolNonec                 C  sN   t j|s%|st 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+   r%   r%   r&   _validate_config.   s   
r4   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colorr5   r6   
str | Noner7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   argparse.Namespacec                C  s   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 )NrD   
hook_stager6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r5   rA   rB   rC   filesr%   hookverboseFshow_diff_on_failure	fail_fast)argparse	Namespace)r	   rD   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r%   r%   r&   _nsC   sZ   
	
rO   revc                 C  s   t ddd| f S )Ngitrev-listz--quiet)r!   call)rP   r%   r%   r&   _rev_existsq   s   rT   r   bytesargparse.Namespace | Nonec                 C  s,  |d }|d }|   D ]}|jdd}|\}}}	}
|tkr!q|
tkr7t|
r7td| |
||	|||d  S tdd|d	d
dd| f   }|sMq| d }ddd|f}t	t|   }||v rutd| d|||	|d  S dd| df}t|   }td| |||||	|d  S d S )Nr   r0      )maxsplitr   )r8   r9   r6   r7   r<   r=   rQ   rR   z--topo-orderz	--reversez--notz
--remotes=z--max-parents=0T)r5   r<   r=   r6   r7   z	rev-parse^)r8   r9   r<   r=   r6   r7   )
decode
splitlinesrsplitZ40rT   rO   r!   check_outputstripset)rD   r   r   r<   r=   linepartsr7   	local_shar6   
remote_sha	ancestorsfirst_ancestorr$   rootsrev_cmdsourcer%   r%   r&   _pre_push_nsu   sX   
	



	rj   r0   rW      )
commit-msgpost-checkoutpost-commit
pre-commitpre-merge-commit
post-mergepost-rewriter   c                 C  s   | dkr!t |dk st |dkrtd|  dt | d| d S | dkrBt |dk s1t |dkr@td|  d	t | d| d S | tv rot|  }t ||krm|dkrVd
nd}td|  d| d| dt | d| 
d S td|  )Nprepare-commit-msgr0   rW   zhook-impl for z' expected 1, 2, or 3 arguments but got z: 
pre-rebaserk   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_sr%   r%   r&   _check_args_length   sB   r~   c                 C  s  t | | | dkrt|||S | dv rt| ||d dS | dkr/t|dkr/t| ||d dS | dkrEt|dkrEt| ||d |d dS | dkr^t|d	kr^t| ||d |d |d d
S | dv rgt| |S | dkrzt| ||d |d |d dS | dkrt| ||d dS | dkrt| ||d dS | dkrt|dkrt| ||d dS | dkrt|dkrt| ||d |d dS td|  )Nr   rl   r   )r>   rs   r0   rk   )r>   r?   rW   )r>   r?   r@   >   ro   rn   rp   rm   )r8   r9   rA   rq   )rB   rr   )rC   rt   )r:   )r:   r;   rx   )r~   rj   rO   ry   r{   )r	   rD   r   r   r%   r%   r&   _run_ns   sH   




r   storer   c          
      C  sF   t |||\}}t||| t||||}	|	d u r|S |t|| |	B S )N)r'   r4   r   r   )
r   r*   rD   r	   r   r+   r   r(   r   nsr%   r%   r&   	hook_impl   s   
r   )r	   r
   r   r
   r   r   r   r   )r(   r)   r*   r
   r+   r,   r   r-   )$r	   r
   rD   r,   r5   r,   r6   rE   r7   rE   r8   rE   r9   rE   r:   rE   r;   rE   r<   rE   r=   rE   r>   rE   r?   rE   r@   rE   rA   rE   rB   rE   rC   rE   r   rF   )rP   r
   r   r,   )rD   r,   r   r   r   rU   r   rV   )r	   r
   r   r   r   r-   )
r	   r
   rD   r,   r   r   r   rU   r   rV   )r   r   r*   r
   rD   r,   r	   r
   r   r
   r+   r,   r   r   r   r)   )
__future__r   rM   os.pathr   r!   r   collections.abcr   pre_commit.commands.runr   pre_commit.envcontextr   pre_commit.parse_shebangr   pre_commit.storer   r]   r'   r4   rO   rT   rj   rz   r~   r   r   r%   r%   r%   r&   <module>   sV    


.
:

-