0iS7bddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl m Z ddl mZddl mZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlm Z ddl!m"Z"ddl#m$Z$ddl%m&Z&ejNdZ(d)dZ)d*dZ*dd d+dZ+ d,dZ,GddZ-d-dZ.dZ/dZ0d.d Z1 d/d!Z2d0d"Z3d1d#Z4d2d$Z5 d3d%Z6d4d&Z7d5d'Z8ejrf d6d(Z:y)7) annotationsN) Generator)Iterable)MutableMapping)Sequence)Anytags_from_path)color)git)output) languages) load_config)Hook) all_hooks)install_hook_envs)staged_files_only)Store cmd_output_b pre_commitc>dddddddtfd|DS)N)AFHNNaWc3NK|]}tj|ywN) unicodedataeast_asian_width).0cwidthss F/opt/hc_python/lib/python3.12/site-packages/pre_commit/commands/run.py z_len_cjk..&s"D1vk22156s"%)sum)msgr's @r(_len_cjkr,$s&111AA >F DD DDc<d|t|z |z dz z}||S)N.r)r,)startcolsend_lendotss r( _start_msgr4)s. $%(72Q6 7DWTF r-)postfixcd|t|z t|z t|z dz z}tj|||}||||dS)Nr/r )r,lenr format_color)r0r1end_msg end_color use_colorr6r3ends r( _full_msgr?.s[ $%(3w<7#g,FJ KD   Wi ;CWTF7)C5 ++r-cttj|tj|cfd|DS)Nc3fK|](}j|rj|s|*ywr")search)r%filename exclude_re include_res r(r)z,filter_by_include_exclude..Bs4 !&X   X &  * s.1)recompile)namesincludeexcluderDrEs @@r(filter_by_include_excluderK<s5  ZZ0"**W2EJ  !& r-ceZdZddZej ddZ d dZd dZe d dZ y) Classifiercx|Dcgc]$}tjj|s#|&c}|_ycc}wr")ospathlexists filenames)selfrRfs r(__init__zClassifier.__init__Js*%.EY"''//!2D!YEEs$77ct|Sr"r )rSrCs r(_types_for_filezClassifier._types_for_fileMs h''r-c#Kt|}t|}t|}|D]+}|j|}||k\s|r||zs"||zr(|-ywr") frozensetrW)rSrHtypestypes_or exclude_typesrCtagss r(by_typeszClassifier.by_typesQs]% X&!-0 H''1DEM!TH_},s=AAAAc|jt|j|j|j|j |j |jSr")r^rKrRfilesrJrZr[r\)rShooks r(filenames_for_hookzClassifier.filenames_for_hookdsI}} %    JJ MM     r-ctjdk(rtjdk(r d|D}t|||}t |S)N/\c3xK|]2}|jtjtj4ywr")replacerOsepaltsep)r%rTs r(r)z)Classifier.from_config..|s$Iy!2662995ys8:)rOrirhrKrM)clsrRrIrJs r( from_configzClassifier.from_configps= 99 $IyII-i'J )$$r-N)rR Iterable[str]returnNone)rCstrrmset[str]) rHrlrZrlr[rlr\rlrmGenerator[str])rarrmrq)rRrlrIrorJrormrM) __name__ __module__ __qualname__rU functoolscacherWr^rb classmethodrkr-r(rMrMIsF__(( !$  )   &   %$ % % %  % %r-rMc|jdd}|jdDchc]#}|js|j%c}Scc}w)NSKIPr5,)getsplitstrip)environskipsskips r( _get_skipsrsC KK #E%*[[%5 F%5TDJJL%5 FF Fs AASkippedz(no files to check)cttjtj|tj|yr")r write_liner r:SUBTLE)sr=s r( _subtle_liners# e((ELL)DEr-c jt|j|}|j|vs|j|vrKt j t |jttj||d}d} |} d} d} n|s\|jsPt j t |jtttj||d}d} |} d} d} nft j t|jd||jsd}t!j"} t$|j&}|j)|j*|j,5|j/|j*|j0|j2||j4d k(|j6| \} } dddt9t!j"| z d xsd}t;} || k7}  s| rtj<}d }ntj>}d }t j@tjB||||s|jDs| s| rtGd|j||s |jDr|tGd|d|| rtGd| || r tGd| jIrWt j@t jJ| jI|jLt j@| xs tO| | fS#1swYsxYw)N)r0r;r<r=r1rFr-)r0r6r;r<r=r1)r0r2r1rxlocal)is_localrequire_serialr rFailedPassedz - hook id: z - duration: rz - exit code: z"- files were modified by this hook) logfile_name)(tuplerbidaliasr writer?nameSKIPPEDr YELLOW always_runNO_FILES TURQUOISEr4pass_filenamestime monotonicrlanguagein_envprefixlanguage_versionrun_hookentryargssrcrround _get_diffREDGREENrr:verboserr~ write_line_blog_filebool) classifierrarr1 diff_beforerr=rRdurationretcode diff_afterfiles_modifiedout time_beforer print_colorstatuss r(_run_single_hookrsj33D9:I ww%4::. ii,,#     t ii //#      ZdiiFG""Inn& T]]+ __T[[$*?*? @#,,   W,#22-LGSA)K7;@q[ % 2 n))KF++KF%,,V[)LM$,,'^{477),i8 t||)= <z3Y ?  = 2I >  =y I 99;        $-- H      *T']J 66WA @s &AL((L2c|rtd|D}nd}|dzttzdzttz}t|dS)zCompute the number of columns to display hook messages. The widest that will be displayed is in the no files skipped case: Hook name...(no files to check) Skipped c3FK|]}t|jywr")r,r)r%ras r(r)z _compute_cols..s=utx *us!rrP)maxr9rr)hooksname_lenr1s r( _compute_colsrsH  =u== a<#h- '! +c'l :D tR=r-c|jdvry|jdvr |jfS|jr6|jr*t j |j|jS|j r |j S|jrt jSt jrt jSt jS)N> post-merge pre-rebase post-commit post-rewrite post-checkoutrx commit-msgprepare-commit-msg) hook_stagecommit_msg_filenamefrom_refto_refr get_changed_filesr` all_files get_all_filesis_in_merge_conflictget_conflicted_filesget_staged_files)rs r(_all_filenamesrs  @ @((** 4;;$$T]]DKK@@ zz   "" ! ! #''))##%%r-c0tdddddd\}}}|S)Nr diff --no-ext-diffz --no-textconvz--ignore-submodulesFcheckr)_rs r(rrs( v9NIAsA Jr-c  t|}tjt||d|d}d}t }|D]X}t ||||||j |j\} }|| z}|dxs|jxs |j} | sU| sXn|rq|jre|rc|jrtjdtjd|jrdnd } tjd d d d d| f|S)zActually run the hooks.r`rJr)rr= fail_fastzpre-commit hook(s) made changes. If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`. To run `pre-commit` as part of git workflow, use `pre-commit install`.zAll changes made by hooks:alwaysneverr z --no-pagerrrz--color=)rrMrkrrrrr rshow_diff_on_failurerr r subprocesscall) configrrrr1rretval prior_diffracurrent_retvalr git_color_opts r( _run_hooksrs  D''tfWovi/@JFJ%5 eT:LLDJJ& "  . K(LDNNLdnn i $++ >>   (  67%)JJG  <}o &  Mr-cVtddd\}}}t|jS)Nr zls-filesz --unmerged)rrr~)rstdouts r(_has_unmerged_pathsrEs'z<@LAvq   r-c6tdddd|d\}}}|dk(S)Nr rz--quietrFrrr) config_filerrs r(_has_unstaged_configrJs+  vy/;eMGQ a<r-c|j xr |j }|r trtj dyt |j t |jk7rtj dy|r%t|rtj d|dy|jdvr0|js$tj d|jdy|jd k(r|jd ry |jr|j|d <|jr|j|d <|j rH|jr<|j |d<|j|d<|j |d<|j|d<|jr*|jr|j|d<|j|d<|j r`|j"rT|j$rH|j&r<|j&|d<|j$|d<|j |d<|j"|d<|j(r|j(|d<|j*r|j*|d<|j,r|j,|d<d|d<t/j05}|r$|j3t5|j6t9|}t;||Dcgc]Z}|j<r2|j>|j<k(s|j@|j<k(r|j|jBvr|\}}|j<r<|s:tEjFd|j<d|jd dddytI|} |Dcgc] }|j>| vr|j@| vr|"} }tK| |tM||| |cdddScc}wcc}w#1swYtOdxYw) Nz+Unmerged files. Resolve before committing.rz%Specify both --from-ref and --to-ref.z4Your pre-commit configuration is unstaged. `git add z` to fix this.rz6`--commit-msg-filename` is required for `--hook-stage `r_PRE_COMMIT_SKIP_POST_CHECKOUTrPRE_COMMIT_COMMIT_MSG_SOURCEPRE_COMMIT_COMMIT_OBJECT_NAMEPRE_COMMIT_ORIGINPRE_COMMIT_SOURCEPRE_COMMIT_FROM_REFPRE_COMMIT_TO_REFPRE_COMMIT_PRE_REBASE_UPSTREAMPRE_COMMIT_PRE_REBASE_BRANCHPRE_COMMIT_LOCAL_BRANCHPRE_COMMIT_REMOTE_BRANCHPRE_COMMIT_REMOTE_NAMEPRE_COMMIT_REMOTE_URLPRE_COMMIT_CHECKOUT_TYPEPRE_COMMIT_IS_SQUASH_MERGEPRE_COMMIT_REWRITE_COMMAND1 PRE_COMMITzNo hook with id `z ` in stage ` unreachable)(rr`rloggererrorrrrrrrr|prepare_commit_message_sourcecommit_object_namepre_rebase_upstreampre_rebase_branch remote_name remote_url remote_branch local_branch checkout_typeis_squash_mergerewrite_command contextlib ExitStack enter_contextr directoryrrrarrstagesr rrrrAssertionError) rstorerrstash exit_stackrrarr to_installs r(runrRs   1tzz>E $& BC DMMd4;;// <= %k2 #}N 4  OOC C(( !__-Q 0  OO . KK8 9 ))  . . ./ 373J3J/0 }}'+}}#$'+{{#$)-%&'+{{#$ D$:$:484L4L01262H2H./ T__ t00-1->->)*.2.@.@*+,0,<,<()+/??'( .2.@.@*+ 040D0D,- 040D0D,- GL    :   $ $%6u%G H[)"&%0 099499 4 dii8O$++- 0   99U   #DII;l4??:K1M ! $7# wwe# %(?   *e,&%55    ' :  ''s3AO(AO;AO(O(%O#9O( O((O;)r+rormint)r0ror1rr2rrmro)r0ror1rr;ror<ror=rr6rormro)rHrlrIrorJrormrq)rMutableMapping[str, str]rmrp)rror=rrmrn)rrMrarrrpr1rrbytesrrr=rrmztuple[bool, bytes])rSequence[Hook]rmr)rargparse.Namespacermrl)rmr) rzdict[str, Any]rrrrprrrmr)rmr)rrormr) rrorrrrrrrmr); __future__rargparserruloggingrOrFrrr#collections.abcrrrrtypingridentify.identifyr rr r r pre_commit.all_languagesrpre_commit.clientlibrpre_commit.hookrpre_commit.repositoryrrpre_commit.staged_files_onlyrpre_commit.storerpre_commit.utilr getLoggerrr,r4r?rKrMrrrrrrrrrrrrrrxr-r(r.s"  %$*$,., +3:"(   < (E  , , , ,  ,  , ,  ,     5%5%pG  F]7]7]7]7 ]7  ]7  ]7]7]7@ &*((((! (  (V -/JJ n(n(n(!n(* n(  n(r-