iddZddlZddlZddlZddlmZmZeeZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZdZdZedkr edSdS)z[Implement https://www.python.org/dev/peps/pep-0514/ to discover interpreters - Windows onlyN) basicConfig getLoggerc#lKd} tj||Vn#t$rYdSwxYw|dz }0)NrT)winregEnumKeyOSError)keyats X/opt/cloudlinux/venv/lib/python3.11/site-packages/virtualenv/discovery/windows/pep514.py enum_keysr s` B .b)) ) ) ) )    EE  a s  --c\ tj||dS#t$rYdSwxYw)Nr)r QueryValueExr )r value_names r get_valuersA"3 33A66 tts  ++c#KtjddddftjddtjdftjddtjdffD]!\}}}}}t |||||Ed{V"dS)NHKEY_CURRENT_USERzSoftware\Pythonr@HKEY_LOCAL_MACHINE )rrrKEY_WOW64_64KEYKEY_WOW64_32KEY process_set)hive hive_namer flags default_archs r discover_pythonsrs  !#68JArR  "$8:LfNdfhi  "$8:LfNdfhi6JJ1ie\ tYULIIIIIIIIII JJc# K tj||dtj|z5}t|D]!}|dkr t ||||Ed{V" ddddS#1swxYwYdS#t $rYdSwxYw)Nr PyLauncher)r OpenKeyExKEY_READr process_companyr )rrr rrroot_keycompanys r rr%s  dCFOe,C D D W$X.. W Wl***9gxVVVVVVVVVV W W W W W W W W W W W W W W W W W W W      s4$A52A( A5(A,,A5/A,0A55 BBc #Ktj||5}t|D]}t|||||}||V ddddS#1swxYwYdSN)rr"r process_tag)rr&r%r company_keytagspecs r r$r$0s  (G , , [))  Cy';\RRD  s,AAActj||5}t||||}|H|\}}} t|||||} | -t ||||} | | \} } |||| | | fcdddSddddS#1swxYwYdSr()rr"load_version_dataload_arch_dataload_exe)rr&r*r+rtag_keyversionmajorminor_archexe_dataexeargss r r)r)8s*  +s + + Bw#IwWEE  %OE5!!)Wc7LQQD#Iw SII' (IC"E5$TA B B B B B B B B B B B B B B B B B B B B B B B B B BsABBBcd|d|d|} tj||d5}|5t|d}|Ct|d}|t|dn tj|d}|Ktj|r,t|d}||fcdddcdddSt|d| dddn #1swxYwYdddn #1swxYwYn##t$rt|dd YnwxYwdS) N/z \InstallPathExecutablePathz#no ExecutablePath or default for itz python.exeExecutableArgumentszcould not load exe with value z /InstallPathmissing) rr"rmsgospathjoinexistsr ) rr&r*r+key_pathip_keyr8ipr9s r r0r0EsH--g----H2  ks+@+@+@ A A JV J J(899;"6400BzH&KLLLL!gll2|<<?rw~~c':':?$V-BCCD9 J J J J J J J J J J J J J J J"H3"H"HIIII J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J 222 x % % %y111112 4sjD DB C*1 D= D C* D*C. .D1C. 2D5 D DD D D D-,D-ct|d}|B|d|d|d} t|S#t$r}t||Yd}~nd}~wwxYw|S)NSysArchitecturer;z/SysArchitecture)r parse_arch ValueErrorr?)rr&r+r1rarch_strrDsys_archs r r/r/\s"344HAA'AACAAA $h'' ' $ $ $ ( # # # # # # # # $ s. AA  Act|trXtjd|}|r;t t t |Sd|}ndt|}t|)Nz ^(\d+)bit$invalid format zarch is not string: ) isinstancestrrematchintnextitergroupsreprrJ)rKrRerrors r rIrIgs(C  811  3tD001122 2,(,,7tH~~77 U  rct|d|d|d|df||d|d|ffD]@\}}|9 t|cS#t$r}t||Yd}~8d}~wwxYwAdS)N SysVersionr;z /SysVersion)r parse_versionrJr?)rr&r+r1 candidaterD sys_versions r r.r.rs 7L ) )i+T+T'+T+TC+T+T+TU ,,W,,s,,- ++ 8   +$Y///// + + +Hk******** + ! 4sA A% A  A%ct|trHtjd|}|r+t d|DSd|}nd|}t |)Nz^(\d+)(?:\.(\d+))?(?:\.(\d+))?$c3<K|]}|t|ndVdSr()rS).0is r z parse_version..s0SSq1=QdSSSSSSrrNzversion is not string: )rOrPrQrRtuplerVrJ) version_strrRrXs r r[r[s~+s##:;[II  TSSELLNNSSSSS S/+//9+99 U  rcFtd|d|dS)Nz)PEP-514 violation in Windows Registry at z error: )LOGGERwarning)rAwhats r r?r?s+ NNStSSTSSTTTTTrctg}tD]$}|t|%t dt |dS)N )rrappendrWprintrBsorted) interpretersr,s r _runrosjMMML ""((DJJ'''' $))F<(( ) )*****r__main__)__doc__r@rQrloggingrr__name__rfr rrrr$r)r0r/rIr.r[r?rorr rus=aa ******** 8  JJJ    B B B.   UUU+++ zDFFFFFr