0iddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddlZ ddlZddlmZddlmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd l m!Z!dd l"m#Z#ddl$m%Z%ddl$m&Z&dZ'ejPZ)ejTZ+ddddddZ,ejZj]Z/e,jae/e/Z/GddeZ1e jdk(rdZ2d&dZ3ndZ2d&dZ3ejhdd'dZ5d(d Z6ejhd)d!Z7d)d"Z8d*d#Z9ejtd+d$Z; d,d%ZsD!yyr$c |dk(r=dtjj|dtjt dfffSdtjj|dfddtjj|dtjtjj|ddtjt dfffS)Nr;PATHbinGOROOT.go) GOTOOLCHAINlocal)osr!joinpathsepr )venvversions r" get_env_patchrLFs( bggll4/S[I J  277<<e,-  T5)2:: T5%0"**c&k   r$c|tjk7r|Stjj d}t j |ddjdS)Nzhttps://go.dev/dl/?mode=jsonrrKr:)r=r>urllibrequesturlopenjsonload removeprefix)rKresps r"_infer_go_versionrUXsK!)) >> ! !"@ AD 99T?1 i ( 5 5d ;;r$ctjj}t|}d|d|dtdt S)Nzhttps://dl.google.com/go/go.-)platformr;lowerrU_ARCH_EXT)rKos_names r"_get_urlr^`s@oo%%'G(G ( 7)1UG1TF KKr$c tjjt|}t j 5}t j|||jdt|5}|j|ddddddt jtjj|dtjj|dy#1swYdxYw#1swYhxYw#tjj $rL}|j"dk(r7t%dt'j(j+dt,d|d}~wwxYw)Nrr:rDiz?Could not find a version matching your system requirements (os=z; arch=))rNrOrPr^tempfile TemporaryFileshutil copyfileobjseekr2r#moverGr!rHerror HTTPErrorcode ValueErrorrYr;rZr[)rKdestrTfarchivees r" _install_gorofsI~~%%hw&78 # # %   tQ ' FF1Iq!W""4(" &  BGGLLt,bggll4.GH"! & % << ! ! 66S=(..01qB  s;(C>3C21C&C2&C/ +C22C;>E'AE""E'c#Ktj|t|}tt ||5ddddy#1swYyxYwwr)r environment_dirENVIRONMENT_DIRr rL)prefixrKenvdirs r"in_envru{s7  & &v HF M&'2 3  4 3 3s1A A A A A c<tj|t|}|dk7r t||tj dk(rt dd|dj}n|}tttj|}|jdd|dk7r|d|d <tjj|d |d <tjjtjj|d d tjd f|d <tj |d||D]}tj |dd|f|tjj|d}tjj#|r t%|yy)Nr;cygwincygpathz-wr7)GOPATHGOBINrFrErDrCrBrA)r:installz./...)envr:r{pkg)r rqrrrosysrYrstripr dictrGenvironpopr!rHrI setup_cmdexistsr)rsrKadditional_dependenciesenv_dirgopathr| dependencypkgdirs r"install_environmentrsH ''IG(GW% ||xItW5a8>>@ T"**V4 5CGGGT($M We4H jjoo GGLL% /F1C'  F  :D- FT9j$AsK.WW\\'5 )F ww~~fvr$)r1z IO[bytes]r&zContextManager[ExtractAll])r&r%)rJr%rKr%r&r )rKr%r&r%)rKr%rkr%r&r')rsrrKr%r&zGenerator[None])rsrrKr%rz Sequence[str]r&r')= __future__r contextlib functoolsrQos.pathrGrYrcr~r5ra urllib.errorrNurllib.requestr.collections.abcrrtypingrrrpre_commit.constants constantsr= pre_commitr pre_commit.envcontextr r r pre_commit.gitr pre_commit.prefixrpre_commit.utilrrrrbasic_health_check health_checkbasic_run_hookrun_hook _ARCH_ALIASESmachinerZr[getrr\r2 lru_cacher?rLrUr^rocontextmanagerrurrr$r"rsu"  %$! ,*%%$&"++  # #       "%'11<<7 D$ D)Q $ <<L I*  "/ r$