bgddlZddlZddlZddlmZddlmZddlmZddl m Z GddeZ dd Z dd Z d ZGd d ZdZdZGddeZgdZdS)N)IS_WIN)Discover) PythonInfo) PythonSpecc@eZdZfdZedZdZdZxZS)Builtinct||jr|jn tjg|_|j|_|j|_dSN)super__init__pythonsys executable python_specapp_datatry_first_with)selfoptions __class__s m/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/virtualenv/discovery/builtin.pyr zBuiltin.__init__ sP !!!-4^Q7>>#.AQ( %4c |ddddtdgd|dd d tdgd dS) Nz-pz--pythonrpyappendzinterpreter based on what to create environment (path/identifier) - by default use the interpreter where the tool is installed - first found wins)destmetavartypeactiondefaulthelpz--try-first-withrpy_exez:try first these interpreters before starting the discovery) add_argumentstr)clsparsers radd_parser_argumentszBuiltin.add_parser_argumentssx  ^    !M      rch|jD])}t||j|j|j}||cS*dSr )rget_interpreterrr_env)rrresults rrunz Builtin.run*sI+  K$[$2Et}VZV_``F! "trc|t|jdkr |jdn|j}|jjd|S)Nrrz discover of python_spec=)lenrr__name__)rspecs r__repr__zBuiltin.__repr__1sE&)$*:&;&;q&@&@t""dFV.)LLDLLLr) r/ __module__ __qualname__r classmethodr'r,r1 __classcell__)rs@rr r sx55555   [ ,MMMMMMMrr ctj|}tjd|t }| t jn|}t||||D]l\}}|j|f}||vrtjd|| ||rtj d||cS| |mdS)Nzfind interpreter for spec %rz proposed %sz accepted %s) rfrom_string_speclogginginfosetosenvironpropose_interpreterssystem_executable satisfiesdebugadd)keyrrenvr0proposed_paths interpreterimpl_must_matchs rr)r)6s  &s + +D L/666UUN "**C(S[]`(a(a  $ _+_< .  ]K000   7 7  M- 5 5 5   3  rc#vK| tjn|}|D]~}tj|} tj|t jtj|||dfVo#t$rY{wxYw|jz tj|jt jtj|j||dfVn#t$r |jrYnwxYw|jrdSn;t j |dfVtrddl m }||||D]}|dfV t|}t} t|D]\} }t!|} t#jt'| | |t)|D]u\} } t+| | }|^tj|}|| vr;| |t.||d|}||| fVvdS)N)rCTr)r=F)raise_on_errorrC)r;r<pathabspathlstatrfrom_exeOSErroris_abscurrent_systemrwindowsr= get_pathsr: enumerater$r8r@ LazyPathDumppossible_specs check_pathrAPathPythonInfo)r0rrrCr"rIr=rEpaths tested_exespospath_str candidatematchfoundexes rr=r=Fs "**C VVwv&& V HTNNN%bgood&;&;X3OOOQUU U U U U    D   y [ HTY    %bgoodi&@&@(PSTTTVZZ Z Z Z Z    {     ;  F '1147777  ( 5 5 5 5 5 533D(CHH ( ( !4''''' cNNE%%Ku%% 1 1 Tt99 l3#66777 .t 4 4 1 1 Iuy(33E gooe,,k))OOC((("0"9"9#xX]cf"9"g"gK".)50000 1 1 1s#B BBC33DDc|dd}|9 tjd}n##ttf$rtj}YnwxYw|sg}n)d|tjD}|S)NPATHCS_PATHcPg|]#}tj|!|$S)r;rIexists).0ps r zget_paths..s+HHHqbgnnQ6G6GHHHHr)getr;confstrAttributeError ValueErrordefpathsplitpathsep)rCrIrWs rrQrQxs 7764 D | :i((DD +   :DDD  IHHDJJrz22HHH Ls/AAceZdZdZdZdS)rSc0||_||_||_dSr )rYrIrC)rrYrIrCs rr zLazyPathDump.__init__s rcd|jd|j}|jdr|dz }t j|jD]} tj|j|}tj|st j|tj sgn#t$rYnwxYw|dz }||z }|S)Nzdiscover PATH[z]=_VIRTUALENV_DEBUGz with => ) rYrIrCrhr;listdirjoinisdiraccessX_OKrM)rcontent file_name file_paths rr1zLazyPathDump.__repr__s:48::ty:: 8<<+ , , % z !GZ 22 % %  " TY B BIw}}Y//!ryBG7T7T! !D39$sA#B33 C?CN)r/r2r3r r1rcrrrSrSs2     rrScDtj|\}}tjdkr |dkr|dz}tj|r|Stj||}tj|r|SdS)Nwin32z.exe)r;rIsplitextrplatformisfileru)r[rI_exts rrUrUs W  i ( (FAs |w3&==&  w~~i   T9--I w~~i   4rc#TK|jdfV|Ed{VdS)NF)str_specgenerate_names)r0s rrTrTsC - ""$$$$$$$$$$$rceZdZdZdS)rVzpython info from pathN)r/r2r3__doc__rcrrrVrVsrrV)r)r rV)NNr )r8r;rvirtualenv.infordiscoverrpy_inforpy_specrr r)r=rQrSrUrTrV__all__rcrrrsX """"""'M'M'M'M'Mh'M'M'MT     /1/1/1/1d   ,   %%%     Z      r