0i ddlmZddlZddlZddlmZddlmZd dZddZ ddZ ddZ dd Z dd Z ddd Zed k(r eey)) annotationsN)Sequence) normalize_cmdc|jd}|jdd}|jd|jdtj|jd d }|jdtj|jd d }|jdtjy) Ntool)destcdz"cd to a subdir and run the command)helpsubdircmd)nargsignore-exit-codez(run the command but ignore the exit coden1z!run the command once per filename)add_subparsers add_parser add_argumentargparse REMAINDER)parser subparsers cd_parserignore_exit_code_parser n1_parsers I/opt/hc_python/lib/python3.12/site-packages/pre_commit/commands/hazmat.py add_parsersr s&&F&3J%% 7&I8$ 5(:(:;(33!K4((h6H6H(I%% 6&I5(:(:;ctt|D]\}}|dk(s t||z }n td|d|dz ||dfS)Nz--zhazmat entry must end with `--`) enumeratereversedlen SystemExit)r idxvalsplits r_cmd_filenamesr&s[hsm,S $;HsNE - :;; z ?CK ''rc t|\}}|d}g}|D]D}|j|std|d||j|j |Ft |}t jg|||S)N/zunexpected file without prefix=z: )cwd)r& startswithr"append removeprefixr subprocesscall)r r filenamesprefix new_filenamesfilenames rr r ,s#C(NCxq\FM""6*?y8*MN N  !6!6v!> ?   C ??1S1=1v >>rcDt|}tj|yNr)rr-r.)r s rignore_exit_coder5;s  COOC rct|\}}t|}d}|D]}|tjg||z}!|Sr4)r&rr-r.)r r/retr2s rrrAsL#C(NC  C C z//h/00 JrcTt|j|_|jdk(r t|j|jS|jdk(rt |jS|jdk(rt |jStd|j)Nr rrzunexpected tool: )tupler rr r r5rNotImplementedError)argss rimplr<JsTXXDH yyD$++txx(( ( ()) d $((|!$5dii["ABBrcxtj}t||j|}t |SN)rArgumentParserr parse_argsr<)argvrr;s rmainrBVs2  $ $ &F   T "D :r__main__)rzargparse.ArgumentParserreturnNone)r tuple[str, ...]rDz'tuple[tuple[str, ...], tuple[str, ...]])r strr rFrDint)r rFrDrH)r;zargparse.NamespacerDrHr>)rAzSequence[str] | NonerDrH) __future__rrr-collections.abcrpre_commit.parse_shebangrrr&r r5rr<rB__name__r"rrrNsT"$2<( ( ?  C z TV r