AVDGdZddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlmZmZmZddlmZdd lmZdd lmZdd lmZmZmZdd lmZm Z dd l!m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+erddl,m-Z-ddl.m/Z/GddedZ0ej1e2Z3d+dZ4GddZ5d,d Z6d-d"Z7Gd#d$eZ8Gd%d&Z9Gd'd(Z:Gd)d*e:Z;dS).z:Build Environment used for isolation during sdist building) annotationsN) OrderedDict)Iterable) TracebackType) TYPE_CHECKINGProtocol TypedDict)Version)__file__) open_spinner) get_platlib get_purelib get_scheme)get_default_environmentget_environment) deprecated)VERBOSE)get_requirement)call_subprocess) TempDirectory tempdir_kinds) PackageFinder)InstallRequirementceZdZUded<dS) ExtraEnvironzdict[str, str] extra_environN)__name__ __module__ __qualname____annotations__i/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pip/_internal/build_env.pyrr s%%%%%%r"rF)totalastrbreturntuple[str] | tuple[str, str]c||kr||fn|fSNr!)r%r's r#_dedupr,'s!VVAq66!%r"ceZdZddZdS)_Prefixpathr&r(Nonec||_d|_td|}|j|_t |j|j|_dS)NF)prefix) r/setuprscriptsbin_dirr,purelibplatliblib_dirs)selfr/schemes r#__init__z_Prefix.__init__,sD  Bt,,,~ v~v~>> r"N)r/r&r(r0)rrrr<r!r"r#r.r.+s(??????r"r.ctjtj}|st |Stj|dz S)zGet a file to pass to a Python executable, to run the currently-running pip. This is used to run a pip subprocess, for installing requirements into the build environment. z__pip-runner__.py) pathlibPath pip_locationresolveparentis_dirr&osfsdecode)sources r#get_runnable_piprG4sV \, ' ' / / 1 1 8F ==??6{{ ;v 33 4 44r"set[str]cttdrtj}ntt g}d|DS)zGet system site packages Usually from site.getsitepackages, but fallback on `get_purelib()/get_platlib()` if unavailable (e.g. in a virtualenv created by virtualenv<20) Returns normalized set of strings. getsitepackagescLh|]!}tj|"Sr!)rDr/normcase).0r/s r# z+_get_system_sitepackages..Us( < < 11#s;;;HHVG$9z::;;    &  & KKz!}- . . .)!""~ @ @  0+>???? @ KK % % %% 0 0D KK. / / / / < 3 KKFL1 2 2 2( 2 2D KK)40 1 1 1 1   8 KK6#56 7 7 7   ? KK&*<= > > >  ' ! KK   + KK) * * *  1 ? KK*<= > > >  " E$(#: E E ^_=>>> 1?CDDDD&(  1 Y$:Q Y-/QSV.WXM D L!!!'. F', F "GL " " "B ... / / 7  G4G1EGG                        s+MMM)NF)r`rrarbrcrdr(r0r(r0r\)rrrr]r<rrr[r!r"r#r_r_hsr/316 RRRRR    :aaaaaar"r_c@eZdZdZddZddZddZddZddd dZdS)!BuildEnvironmentzACreates and manages an isolated environment to install build deps installerrTr(r0c||_ttjdt fddD|_g|_g|_tt|j D]@}|j |j |j |jAt}t jjd|_t j|jst!j|jt-t j|jddd 5}|t1jd ||j ddddS#1swxYwYdS) NT)rWglobally_managedc3K|]8}|ttjj|fV9dSr+)r.rDr/r)rMrtemp_dirs r# z,BuildEnvironment.__init__..sV% % 727<< t<<== >% % % % % % r")normaloverlayrPzsitecustomize.pywzutf-8)encodinga import os, site, sys # First, drop system-sites related paths. original_sys_path = sys.path[:] known_paths = set() for path in {system_sites!r}: site.addsitedir(path, known_paths=known_paths) system_paths = set( os.path.normcase(path) for path in sys.path[len(original_sys_path):] ) original_sys_path = [ path for path in original_sys_path if os.path.normcase(path) not in system_paths ] sys.path = original_sys_path # Second, add lib directories. # ensuring .pth file are processed. for path in {lib_dirs!r}: assert not path in sys.path site.addsitedir(path) )rQr9)rrr BUILD_ENVr _prefixes _bin_dirs _lib_dirsreversedlistvaluesrr6rr9rRrDr/r _site_direxistsmkdiropenwritetextwrapdedentformat)r:rr3rQfprs @r#r<zBuildEnvironment.__init__s" m&=PTUUU$% % % % -% % %    %'$&tDN$9$9$;$;<<== 3 3F N ! !&. 1 1 1 N ! !&/ 2 2 2 2 011 hmV<<w~~dn-- % HT^ $ $ $  GLL); < z.BuildEnvironment.__enter__..3s:    "*..t,,   r")PATHPYTHONNOUSERSITE PYTHONPATHrr{) _save_envrrsplitrDpathseprrnupdater)r:r/old_path pythonpaths r# __enter__zBuildEnvironment.__enter__2s  B    ~aaa >&)  4 KKrz22 3 3 3n%   --$' jooj99       r"exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonec|jD]7\}}|!tj|d(|tj|<8dSr+)ritemsrDrnpop)r:rrrvarname old_values r#__exit__zBuildEnvironment.__exit__Gs^ #'."6"6"8"8 0 0 GY  w----&/ 7##  0 0r"reqsrV%tuple[set[tuple[str, str]], set[str]]cjt}t}|rt|drt|jn t }|D]}t |}|j|jddis5||j }|s| |gt|j tr|j d|j }n|j d|j }|j|j ds| ||f||fS) zReturn 2 sets: - conflicting requirements: set of (installed, wanted) reqs tuples - missing requirements: set of reqs rNextrar2z==z===T) prereleases)setrOrrrrmarkerevaluateget_distributionradd isinstanceversionr specifiercontains) r:rmissing conflictingenvreq_strreqdistinstalled_req_strs r#check_requirementsz#BuildEnvironment.check_requirementsSsU%%ee  B4--////,..    B B%g..:)#*2E2EwPRm2T2T)++CH55KK(((dlG44G+.8(E(Et|(E(E%%+.8(F(F (F(F%}--dl-MMBOO%6$@AAAG##r"NrXrUprefix_as_stringr&rWrXrYc|j|}|jrJd|_|sdS|j||||dS)NT)rWrX)rr4rr[)r:rUrrWrXr3s r#install_requirementsz%BuildEnvironment.install_requirementsusX 01<   F |V$PPPPPr")rrTr(r0rrrrrrrr(r0)rrVr(r rUrVrr&rWr&rXrYr(r0) rrrr]r<rrrrr!r"r#rrsKK5555n    * 0 0 0 0 $ $ $ $P.2 Q Q Q Q Q Q Q Qr"rc@eZdZdZddZddZdd Zdd ZddddZdS)NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentr(r0cdSr+r!r:s r#r<zNoOpBuildEnvironment.__init__ r"cdSr+r!rs r#rzNoOpBuildEnvironment.__enter__rr"rrrrrrcdSr+r!)r:rrrs r#rzNoOpBuildEnvironment.__exit__s r"cdSr+r!rs r#cleanupzNoOpBuildEnvironment.cleanuprr"NrrUrVrr&rWrXrYctr+)NotImplementedError)r:rUrrWrXs r#rz)NoOpBuildEnvironment.install_requirementss"###r"rrr) rrrr]r<rrrrr!r"r#rrs::                .2 $$$$$$$$r"r)r%r&r'r&r(r))r(r&)r(rH)rPr~r collectionsrcollections.abcrtypesrtypingrrr pip._vendor.packaging.versionr pipr r@pip._internal.cli.spinnersr pip._internal.locationsr rrpip._internal.metadatarrpip._internal.utils.deprecationrpip._internal.utils.loggingrpip._internal.utils.packagingrpip._internal.utils.subprocessrpip._internal.utils.temp_dirrr"pip._internal.index.package_finderrpip._internal.req.req_installrr getLoggerrrr,r.rGrRrTr_rrr!r"r#r s@@""""""  ######$$$$$$5555555555111111((((((333333HHHHHHHHHHKKKKKKKK666666//////999999::::::EEEEEEEE&@@@@@@@@@@@@&&&&&y&&&&  8 $ $&&&&???????? 5 5 5 5 ====(         MMMMMMMM`JQJQJQJQJQJQJQJQZ$$$$$+$$$$$r"