0itddlmZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZdZej>Z ejBZ"ejFdddZ$ddZ%ddZ&ejNddZ( ddZ)ddZ* ddZ+y)) annotationsN) Generator)Sequence) lang_base) parse_shebang) envcontext)PatchesT)Var)Prefix) cmd_output_b)make_executable)win_exerustenv)maxsizecNtddddddk(rytjS)Ncargo --versionF/)checkcwdrsystem)r CDEFAULTH/opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/rust.pyget_default_versionrs)G[3?BaGyyrc.|tjk(ry|S)z=Transform the language version into a rust toolchain version.stable)rr)language_versions r_rust_toolchainr"+s199$rcdtjj|dtjt dffg|dk7rdt |ffSdS)NPATHbinrRUSTUP_TOOLCHAINr)ospathjoinpathsepr r") target_dirversions r get_env_patchr-3sb "'',,z512::s6{KL  ("!/'": ; =   )+  rc#Ktj|t|}tt ||5ddddy#1swYyxYww)N)renvironment_dirENVIRONMENT_DIRrr-)prefixr,envdirs rin_envr3?s7  & &v HF M&'2 3  4 3 3s1A A A A A cg}|D]3}|jd\}}}|d|xsd}|j|5tj|ddg|y)N:@*radd) partitionappendr setup_cmd)r1additional_dependenciescratesdepname_speccrates r_add_dependenciesrCFscF& c* a&$+#' e' % 9& 9:rc Ntj5}td|fd|ff5tjdt j dk(rd}nd}tjj|}tjj|td}t|d5}tj ||dddt#|t%|d d d d d t%dddd|ddddddy#1swYDxYw#1swYxYw#1swYyxYw)N CARGO_HOME RUSTUP_HOMErustupwin32zhttps://win.rustup.rs/x86_64zhttps://sh.rustup.rsz rustup-initwbz-yz--quietz--no-modify-pathz--default-toolchainnone toolchaininstallz--no-self-update)tempfileTemporaryDirectoryrrfind_executablesysplatformurllibrequesturlopenr'r(r)ropenshutil copyfileobjr r )rKr2 rustup_dirurlresp rustup_initfs rinstall_rust_with_toolchainr]Ss  $ $ &* ,/-1LM N,,X6><<7*8C0C~~--c2 ggll:w}7MN +t,&&tQ/- ,y2D)6 +y2D -O ' &-,O N ' &s;DBD)D2D2DD DD DD$c tj|t|}|Dchc]}|jds|}}t ||z }dh}|D]T}|j d}|j d\} } } | dk7r|j| d| fC|j| fVtj5} | jt|||dk7rUtt||| jtj} | jt!d| fft#|dkDr t%|||D]}t'd d d d |g|d |j(i! dddycc}w#1swYyxYw)Nzcli:)z--path.r5rrrFrrrLz--binsz--rootr)rr/r0 startswithset removeprefixr9r8 contextlib ExitStack enter_contextr3r]r"rMrNrlenrCr prefix_dir)r1r,r<r2r>cli_depslib_depspackages_to_installcli_deppackager@ crate_versionctxtmpdirargss rinstall_environmentrrqs  & &v HF/.#..2H. *+h6H1@0A&&v.$+$5$5c$:!M B   # #Wk=$I J  # #WJ /     3 &12 h  '(@& I&&x'B'B'DEF   j=&*A)CD E x=1  fh /'D Hh AE %% (  sE9E9;B4E>>F)returnstr)r!rtrsrt)r+rtr,rtrsr )r1r r,rtrszGenerator[None])r1r r<zset[str]rsNone)rKrtr2rtrsru)r1r r,rtr<z Sequence[str]rsru), __future__rrd functoolsos.pathr'rVrPrMurllib.requestrRcollections.abcrrpre_commit.constants constantsr pre_commitrrpre_commit.envcontextrr r pre_commit.prefixr pre_commit.utilr r rr0basic_health_check health_checkbasic_run_hookrun_hook lru_cacherr"r-contextmanagerr3rCr]rrrrrrs" %$ $,*%$(+#++  # #Q       ; ;!) ;  ;