bgrdZddlZddlZddlmZddlmZejdZGddZ dgZ dS)zNA Python specification is an abstract requirement definition of an interpreterN) OrderedDict)fs_is_case_sensitivez@^(?P[a-zA-Z]+)?(?P[0-9.]+)?(?:-(?P32|64))?$cVeZdZdZdZedZdZedZ dZ dZ dS) PythonSpecz1Contains specification about a Python Interpreterch||_||_||_||_||_||_||_dSN)str_specimplementationmajorminormicro architecturepath)selfr r r r r rrs m/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/virtualenv/discovery/py_spec.py__init__zPythonSpec.__init__s9  ,   ( c :d\}}}}}}tj|r|}n_d}tjt |} | r._int_or_none"s#&;44CHHz.PythonSpec.from_string_spec..)s-(Q(QAq(QQ(Q(Q(Q(Q(Q(Qr.r Timplpypythonarch) osrisabsrematchPATTERN groupdicttuplesplitlen ValueErrorrstr)cls string_specr%r r r r(rokr,rgroupsrversions version_datas rfrom_string_speczPythonSpec.from_string_specs0R-eUE4 7== % %$ #DDBHWk22E 8===8"__..F$Y/G*#((Q(Qs9K9K(Q(Q(Q#Q#Qx==1,,",,x==A--2:/E5%% ]]a//+3LE55 ]]a//+3A;L$'L(9(9!(<$=$=E+a//(+C ,=,=abb,A(B(BB"&>Dt||tx'7'7#'<v77DD "D #"s;eUE4FFFsDE88 FFc#@Kt}|jrPd||j<tr8d||j<d||j<d|d<|j|j|jf} |d|d}n#t$rYnwxYw| D]Y\}}tt|ddD]5}|d|}|d d|D}||fV6ZdS)NFTr'rr c34K|]}t|VdSr)r3rs rrz,PythonSpec.generate_names..Vs((A(AAQ(A(A(A(A(A(Ar)rr rlowerupperr r r indexr2itemsranger1join)rimplsrr%r,atcur_verspecs rgenerate_nameszPythonSpec.generate_namesCs]    ;).E$% &#%% ;6;d)//1125:d)//112h*dj$*4 3 d 3 334GG    D  ;;== " "KD%CLL"b11 " "!!B$-C(A(A(A(A(A A ACCEk!!!! " " "sB B-,B-c\|jduo#tj|jSr)rr)r*)rs ris_abszPythonSpec.is_absYs$y$Aty)A)AArc|jr|jr|j|jkrdS|j6|j|jkrdS|j|j|jkrdSt |j|j|jf|j|j|jfD]\}}| | ||krdSdS)z\called when there's a candidate metadata spec to see if compatible - e.g. PEP-514 on WindowsFNT) rJrr r>rzipr r r )rrGourreqs r satisfieszPythonSpec.satisfies]s ; 4; 49 +A+A5   *t/B/H/H/J/JdNaNgNgNiNi/i/i5   (T->$BS-S-S5TZTZ@4:tz[_[eBfgg  HC3?sczzuutrc~tj}d}|ddfd|DdS)N)r r r r rr(z, c3bK|])}t||dt|V*dS)N=)getattr)rkrs rrz&PythonSpec.__repr__..nsM"m"mPWX\^_P`P`Pla#<#<'$*:*:#<#rfsTT ######000000 "*X Y YbqbqbqbqbqbqbqbqL r