0iO!>ddlmZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddl m Z ejeZdZdd Zd d!d Zd"d Zd#d$d Zd#d$dZd%dZd&dZd'dZd d(dZd)dZd)dZd*dZd+dZd dd,dZd%dZ d-dZ!d#d.dZ"d#d/dZ#d0dZ$d1dZ%y)2) annotationsN)Mapping) FatalError)CalledProcessError) cmd_output cmd_output_b)z-czcore.useBuiltinFSMonitor=falsecN|jd}|r|jdSgS)N)stripsplit)ss =/opt/hc_python/lib/python3.12/site-packages/pre_commit/git.pyzsplitrs%  Awwt} c||ntj}|jDcic].\}}|jdr|jds|dvr||0c}}Scc}}w)NGIT_)GIT_CONFIG_KEY_GIT_CONFIG_VALUE_> GIT_SSH GIT_ASKPASS GIT_EXEC_PATHGIT_SSL_CAINFOGIT_SSH_COMMANDGIT_CONFIG_COUNTGIT_SSL_NO_VERIFYGIT_ALLOW_PROTOCOLGIT_HTTP_PROXY_AUTHMETHOD)osenvironitems startswith)_envkvs r no_git_envr&sl#4D %A||F# =>    1   s3Ac  tjjtddddj }tddddj }|dk7r t d|S#t $r t dwxYw) Ngit rev-parsez --show-cdupz--is-inside-git-dirzGgit failed. Is it installed, and are you in a Git repository directory?falsezfgit toplevel unexpectedly empty! make sure you are not inside the `.git` directory of your repository.)rpathabspathrr rr)rootinside_git_dirs rget_rootr03s  ww uk= 9! < B B D $ ; 5  UW   >   K      s AA--B.cd}tdd||\}}}|j}||k7r=tjj tjj ||St d)Nz --git-dirr(r)cwdzunreachable: no git dir)rr rr,normpathjoinAssertionError)git_rootopt_outgit_dirs r get_git_dirr=Ls_ C5+sAIAsAiikG#~ww Xw ?@@677rcd}tdd||\}}}|j}||k7r=tjj tjj ||St |S)Nz--git-common-dirr(r)r3)rr rr,r5r6r=)r8r9r:r;git_common_dirs rget_git_common_dirr@Vs_ C5+sAIAsAYY[Nww X~ FGG8$$rctd}tjjtjj |dxr=tjjtjj |dS)Nr1 MERGE_MSG MERGE_HEAD)r=rr,existsr6)r<s ris_in_merge_conflictrE`sT#G rww||G[9: < rww||G\:;rc|jDcgc]@}|jdr-|jdjj Bc}Scc}w)N) s# #) splitlinesr"lstripr decode) merge_msglines rparse_merge_msg_for_conflictsrNhsY((* *D ??? + D!((**  sAActjdttjj t ddd5}|j}dddt}tdddj}ttddd d d d |d dd d}t|t|zS#1swYhxYw)Nz#Checking merge-conflict files only.r1rBrbr(z write-treer*diff --name-only --no-ext-diff-zz-mHEADrCz--) loggerinfoopenrr,r6r=readrNrr rset)frLmerge_conflict_filenames tree_hashmerge_diff_filenamess rget_conflicted_filesr_rs KK56 bggll;s+[94 @AFFH  Arc4ttddddS)Nr(zls-filesrTr*rarr get_all_filesrhs *UJ5a8 99rcd} tg||d|\}}}t|S#t$r#tg||d|\}}}Yt|SwxYw)N)r(rQrRrSrTz...z..)rrr)oldnewdiff_cmdr:r;s rget_changed_filesrmszDH;;;SESE*:; 3 #; ;::SEC5/: 3 #; ;s%AAcNtddd|d\}}}|jdS)Nr(z ls-remotez --exit-coderUr)rr )remoter:r;s rhead_revrps*5+}ffMIAsA 99;q>r)repoc8ddddg|}t||ddddk(S) Nr(rQz--quietrSF)r4checkrr*r)rqargscmds rhas_diffrvs. &)_ eLIAsA  rctjj|rtjj|}dgt}t }t g|dd|d|it g|ddd|||dy) Nr(initz --template=envroaddoriginr4r})rr,isdirr- NO_FS_MONITORr&r )r,ror(r}s r init_repors} ww}}V(  != !C ,C<#F    #:J Jr)rstrreturn list[str])N)r#zMapping[str, str] | Nonerzdict[str, str])rr)r1)r8rrr)rry)rLbytesrr)rzset[str])r4z str | Nonerr)rr)rjrrkrrr)rorrr)rtrrqrrry)r,rrorrNone)rqrrr)rrrqrrr)rr)rrrrrr)& __future__rloggingos.pathrrcollections.abcrpre_commit.errorsrpre_commit.utilrrr getLogger__name__rVrrr&r0r=r@rErNr_rbrerhrmrprvrzrrrrrrgrrrs" #(.&(   8 $9 028%E*:  &)=  M*+ . r