0iddlmZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl mZddlmZddlmZddlmZddZej,d d Zd!d Zd"d ZGd d eZd#dZd$dZdd d%dZd&dZe j@dk7r#ddlm!Z!ddl"Z"GddZ#dd d%dZ$neZ$ d'dZ%e jLdkr d(dZ'd)dZ(nd)dZ(d*dZ)y)+) annotationsN)Callable) Generator) TracebackType)Any) parse_shebangcTtjt5t|cdddS#1swYnxYwtjt5t |j cdddS#1swYnxYwdt|jdj S)Nz ) contextlibsuppress TypeErrorbytes Exceptionstrencodetype__name__)excs >/opt/hc_python/lib/python3.12/site-packages/pre_commit/util.py force_bytesrsn   Y 'Sz ( ' '   Y '3x  ( ' ' 49--.h 7 > > @@s /8A77Bc#K dy#t$r,tjj|r t |wxYww)z2Cleans up the directory on an exceptional failure.N) BaseExceptionospathexistsrmtreers rclean_path_on_failurers6  77>>$  4L sA A5>Ac~tjjd}|j|j S)Nzpre_commit.resources) importlib resourcesfilesjoinpath read_text)filenamer!s r resource_textr%&s1    % %&< =E >>( # - - //ctj|j}|tjztjztj z}tj ||yN)rstatst_modeS_IXUSRS_IXGRPS_IXOTHchmod)r$ original_modenew_modes rmake_executabler1+sDGGH%--Mt||+dll:T\\IHHHXx r&cDeZdZ dfd ZddZddZxZS)CalledProcessErrorcbt|||||||_||_||_||_yr()super__init__ returncodecmdstdoutstderr)selfr7r8r9r: __class__s rr6zCalledProcessError.__init__2s4 S&&9$  r&c d d}djd|jdjd|jdjd||jdd||j fS) NcN|r#d|jddjzSy)Ns  s (none))replacerstrip)parts r_indent_or_nonez5CalledProcessError.__bytes__.._indent_or_none@s' 4<<y#A#H#H#JJJ!r&r&z command:  z return code: sstdout:r?sstderr:)rB bytes | Nonereturnr )joinr8rr7r9r:)r;rCs r __bytes__zCalledProcessError.__bytes__?sp " xx|2 & - - /DOO,B / 6 6 8  4e  4    r&c>|jjSr()rHdecoder;s r__str__zCalledProcessError.__str__Ms~~&&((r&) r7intr8ztuple[str, ...]r9r r:rErFNone)rFr )rFr)r __module__ __qualname__r6rHrL __classcell__)r<s@rr3r31sB  !   !     )r&r3cRdD]"}|j|tj$y)Nstdinr9r:) setdefault subprocessPIPE)kwargsargs r_setdefault_kwargsrZQs ,#z/-r&cBdt|jddzdfS)Nr?)rrA)es r_oserror_to_outputr^Vs# k!n##E*U2D 88r&T)checkct| tj||jd} t j |fi|}|j \}}|j}|r|rt|||||||fS#t$r}t|\}}}Yd}~4d}~wwxYw#tj$r}|j\}}}Yd}~hd}~wwxYw)Nenv)ra) rZr normalize_cmdgetrVPopen communicater7OSErrorr^ExecutableNotFoundError to_outputr3)r_r8rXprocstdout_bstderr_br7r]s r cmd_output_brlZs v )))#6::e3DE )##C262D"&!1!1!3 HhJ  S(HEE x )) C-?-B *J( C  0 07)*& Hh7s.&B%B B" BB"%C8CCczt|i|\}}}||jnd}||jnd}|||fSr()rlrJ)r8rXr7rjrkr9r:s r cmd_outputrntsK%13%A&%A"J("*"6X__ DF"*"6X__ DF vv %%r&win32)openptycDeZdZddZddZddZddZ d dZy) Ptyc d|_d|_yr()rwrKs rr6z Pty.__init__s!%DF!%DFr&cTt\|_|_tj|j}t |dt sJ|dxxtjtjzzcc<tj|jtj||SNr\) rprtrutermios tcgetattr isinstancerMONLCROPOST tcsetattrTCSANOW)r;attrss r __enter__z Pty.__enter__sx$YNDFDF%%dff-EeAh, ,, !H'--'--78 8H   dffgoou =Kr&cj|j'tj|jd|_yyr()rurcloserKs rclose_wz Pty.close_ws(vv! "r&cl|jJtj|jd|_yr()rtrrrKs rclose_rz Pty.close_rs)66% %% HHTVV DFr&cD|j|jyr()rr)r;exc_type exc_value tracebacks r__exit__z Pty.__exit__s LLN LLNr&N)rFrN)rFrr)rztype[BaseException] | NonerzBaseException | NonerzTracebackType | NonerFrN)rrOrPr6rrrrr&rrrrrsA &      4 0 0     r&rrc|dusJ|dtjk(s J|dt| tj|}ttj5}t5}|jJ|j||j|jd tj|fi|}|j#d} tj$|jd}||z }|sn* ddddddj+dfS#tj $r}|j cYd}~Sd}~wwxYw#t$r'}t!|cYd}~cdddcdddSd}~wwxYw#t$r+}|j&t&j(k(rd}nYd}~d}~wwxYw#1swYxYw#1swYxYw)NFr:rSr&i)rVSTDOUTrZrrbrgrhopenrdevnullrrrtupdaterurdrfr^rreaderrnoEIOwait) r_r8rXr]rptyribufbtss r cmd_output_prs ~~h:#4#44FfX6FF46" !--c2C"** #%355$ $$ MMGsuuN O -!''6v6 KKMC''#%%.C3JC-+0 0yy{C%%744 !;;=  ! -)!,, +0%    -ww%))+!+0%  sD! G,8F6%E ;F6 E?/ F69GE /E>E E  E< E7E< F6$ G7E<<F6? F3!F.)F6.F33F66F? ;GG c|tjtjtjfvrt |t r|j t jt jhvrs|tjj|fD]F}tj|tj|jtjzH||yr()rrmdirremoveunlinkrzrfrEACCESEPERMrdirnamer.r)r*S_IWUSR)funcrrps r_handle_readonlyrs RXXryy"))4 4 sG $ II%,, 4 4-.A HHQ **T\\9 :/ T  r&) c"t|||dSrw)r)rrexcinfos r_handle_readonly_oldrs  dGAJ77r&c<tj|dty)NF) ignore_errorsonerror)shutilrrrs rrrs d%9MNr&c<tj|dty)z+On windows, rmtree fails for readonly dirs.F)ronexcN)rrrrs rrrs d%7GHr&c6tjdk7r|S|dS)Nroz.exe)sysplatform)ss rwin_exers '17s$Z7r&)rrrFr )rrrFzGenerator[None])r$rrFr)r$rrFrN)rXzdict[str, Any]rFrN)r]rfrFztuple[int, bytes, None])r8rr_boolrXrrFztuple[int, bytes, bytes | None])r8rrXrrFztuple[int, str, str | None])rCallable[[str], object]rrrrrFrN)rrrrrz8tuple[type[BaseException], BaseException, TracebackType]rFrN)rrrFrN)rrrFr)* __future__rr rimportlib.resourcesros.pathrrr)rVrcollections.abcrrtypesrtypingr pre_commitrrcontextmanagerrr%r1 RuntimeErrorr3rZr^rlrnrrprxrrrr version_inforrrrr&rrsl"   $%$A 0 ! ))@0 9 ****% *4&<<7!!J&&&&&&&& ) &&P L% "g8%88J8  8OI 8r&