o
    Wi
                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZ d"d	d
Zd#ddZ	d$ddZ
d%ddZd%ddZd&ddZd'd(dd Zed!krGee dS ))    )annotationsN)Sequence)normalize_cmdparserargparse.ArgumentParserreturnNonec                 C  st   | j dd}|jddd}|d |jdtjd |jd	d
d}|jdtjd |jddd}|jdtjd d S )Ntool)destcdz"cd to a subdir and run the command)helpsubdircmd)nargsignore-exit-codez(run the command but ignore the exit coden1z!run the command once per filename)add_subparsers
add_parseradd_argumentargparse	REMAINDER)r   
subparsers	cd_parserignore_exit_code_parser	n1_parser r   N/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/commands/hazmat.pyadd_parsers
   s   
r   r   tuple[str, ...]'tuple[tuple[str, ...], tuple[str, ...]]c                 C  sR   t t| D ]\}}|dkrt| | } nqtd| d |d  | |d  fS )Nz--zhazmat entry must end with `--`   )	enumeratereversedlen
SystemExit)r   idxvalsplitr   r   r   _cmd_filenames   s   r(   r   strintc                 C  sr   t |\}}|  d}g }|D ]}||s td|d| ||| qt|}tjg ||R | dS )N/zunexpected file without prefix=z: )cwd)r(   
startswithr$   appendremoveprefixr   
subprocesscall)r   r   	filenamesprefixnew_filenamesfilenamer   r   r   r   ,   s   

r   c                 C  s   t | } t|  dS Nr   )r   r0   r1   )r   r   r   r   ignore_exit_code;   s   
r7   c                 C  s>   t | \} }t| } d}|D ]}|tg | |R O }q|S r6   )r(   r   r0   r1   )r   r2   retr5   r   r   r   r   A   s   r   argsargparse.Namespacec                 C  s\   t | j| _| jdkrt| j| jS | jdkrt| jS | jdkr&t| jS td| j )Nr   r   r   zunexpected tool: )tupler   r	   r   r   r7   r   NotImplementedError)r9   r   r   r   implJ   s   




r=   argvSequence[str] | Nonec                 C  s"   t  }t| || }t|S N)r   ArgumentParserr   
parse_argsr=   )r>   r   r9   r   r   r   mainV   s   
rC   __main__)r   r   r   r   )r   r   r   r   )r   r)   r   r   r   r*   )r   r   r   r*   )r9   r:   r   r*   r@   )r>   r?   r   r*   )
__future__r   r   r0   collections.abcr   pre_commit.parse_shebangr   r   r(   r   r7   r   r=   rC   __name__r$   r   r   r   r   <module>   s    





	
