id( dZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZmZmZmZmZmZddlmZddlmZddlmZdd lmZdd lmZdd lm Z m!Z!m"Z"dd l#m$Z$m%Z%dd l&m'Z'ddl(m)Z)m*Z*e rddl+m,Z,ej-e.Z/de0de0deee0ee0e0fffdZ1GddZ2de0fdZ3dee0fdZ4GddZ5Gdde5Z6dS)z;Build Environment used for isolation during sdist building N) OrderedDict) TracebackType) TYPE_CHECKINGIterableListOptionalSetTupleTypeUnion)where) Requirement)Version)__file__) open_spinner) get_platlib get_purelib get_scheme)get_default_environmentget_environment)call_subprocess) TempDirectory tempdir_kinds) PackageFinderabreturnc||kr||fn|fSN)rrs L/opt/cloudlinux/venv/lib/python3.11/site-packages/pip/_internal/build_env.py_dedupr"s!VVAq66!%ceZdZdeddfdZdS)_PrefixpathrNc||_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#)__name__ __module__ __qualname__strr2r r#r!r%r%#s6?S?T??????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_dirr6osfsdecode)sources r!get_runnable_piprA,sV \, ' ' / / 1 1 8F ==??6{{ ;v 33 4 44r#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 )r>r&normcase).0r&s r! z+_get_system_sitepackages..Ms( < < r&join)rFnametemp_dirs r! z,BuildEnvironment.__init__..VsV% % 727<< t<<== >% % % % % % r#)normaloverlayrIzsitecustomize.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) )rJr/)rr BUILD_ENVr _prefixes _bin_dirs _lib_dirsreversedlistvaluesappendr,extendr/rKr>r&rR _site_direxistsmkdiropenwritetextwrapdedentformat)r0r)rJfprTs @r!r2zBuildEnvironment.__init__Ss m&=PTUUU$% % % % -% % %    %'$&tDN$9$9$;$;<<== 3 3F N ! !&. 1 1 1 N ! !&/ 2 2 2 2 011 hmV<<w~~dn-- % HT^ $ $ $  GLL); < environget)rFrSs r! z.BuildEnvironment.__enter__..s:    "*..t,,   r#)PATHPYTHONNOUSERSITE PYTHONPATHrq1) _save_envr\rbsplitr>pathseprcrnupdaterR)r0r&old_path pythonpaths r! __enter__zBuildEnvironment.__enter__s  B    ~aaa >&)  4 KKrz22 3 3 3n%   --$' jooj99       r#exc_typeexc_valexc_tbc|jD]7\}}|!tj|d(|tj|<8dSr)ruitemsr>rnpop)r0r|r}r~varname old_values r!__exit__zBuildEnvironment.__exit__s^ #'."6"6"8"8 0 0 GY  w----&/ 7##  0 0r#reqscjt}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 r]Nextrar(z==z===T) prereleases)setrHrr]rrmarkerevaluateget_distributionrSadd isinstanceversionr specifiercontains) r0rmissing conflictingenvreq_strreqdistinstalled_req_strs r!check_requirementsz#BuildEnvironment.check_requirementssU%%ee  B4--////,..    B B!'**:)#*2E2EwPRm2T2T)++CH55KK(((dlG44G+.8(E(Et|(E(E%%+.8(F(F (F(F%}--dl-MMBOO%6$@AAAG##r#finderr requirementsprefix_as_stringrOc|j|}|jrJd|_|sdS|t||||dS)NT)rO)r[r*_install_requirementsrA)r0rrrrOr)s r!install_requirementsz%BuildEnvironment.install_requirementsso 01<   F ""       #     r# pip_runnabler)c 0tj|dddd|jdg}tt jkr|ddD]h}t|j |}| d| d d zd t|pd hfi|j}|rB| d |dg|ddD]} | d| gn|d|jD]} | d| g|jD]} | d| g|jr|d|jr|d|d| |dt'i} t)d|5} t+|d|| | ddddS#1swxYwYdS)Ninstallz--ignore-installedz --no-userz--prefixz--no-warn-script-locationz-v) no_binary only_binaryz--_-,z:none:z-irz--extra-index-urlz --no-indexz --find-linksz--trusted-hostz--prez--prefer-binary_PIP_STANDALONE_CERTz Installing zpip subprocess to install ) command_descspinner extra_environ)sys executabler&loggergetEffectiveLevelloggingDEBUGragetattrformat_controlrbreplacerRsorted index_urls find_links trusted_hostsallow_all_prereleases prefer_binaryr rr)rrrr)rOargsrformatsr extra_indexlinkhostrrs r!rz&BuildEnvironment._install_requirementss N     K '    # # % % 6 6 KK   :  Nf3^DDG KK>11#s;;;HHVG$9z::;;    &  & KKz!}- . . .)!""~ @ @  0+>???? @ KK % % %% 0 0D KK. / / / /( 2 2D KK)40 1 1 1 1  ' ! KK   + KK) * * * D L!!!/9 ... / / 7 @$@@+                       s'H  HHrN)r3r4r5__doc__r2r{rr BaseExceptionrrrr6r r rr staticmethodr%rr r#r!rMrMPsyKK4444l    * 04 ./ 0-( 0' 0  0 0 0 0 $SM $ s5c?#SX- . $ $ $ $D  sm          *666sm6 6  6 666\666r#rMc eZdZdZddZddZdeeedeedee ddfd Z dd Z d d d e e de de ddf dZdS)NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentrNcdSrr r0s r!r2zNoOpBuildEnvironment.__init__ r#cdSrr rs r!r{zNoOpBuildEnvironment.__enter__!rr#r|r}r~cdSrr )r0r|r}r~s r!rzNoOpBuildEnvironment.__exit__$s r#cdSrr rs r!cleanupzNoOpBuildEnvironment.cleanup,rr#rrrrrOctr)NotImplementedError)r0rrrrOs r!rz)NoOpBuildEnvironment.install_requirements/s"###r#r)r3r4r5rr2r{rr rrrrrr6rr r#r!rrs::         4 ./ -( '           $$sm$ $  $ $$$$$$r#r)7rrr>r8rIrrh collectionsrtypesrtypingrrrrr r r r pip._vendor.certifir "pip._vendor.packaging.requirementsrpip._vendor.packaging.versionrpiprr:pip._internal.cli.spinnersrpip._internal.locationsrrrpip._internal.metadatarrpip._internal.utils.subprocessrpip._internal.utils.temp_dirrr"pip._internal.index.package_finderr getLoggerr3rr6r"r%rArKrMrr r#r!rs  ######SSSSSSSSSSSSSSSSSSSS%%%%%%::::::111111((((((333333HHHHHHHHHHKKKKKKKK::::::EEEEEEEEA@@@@@@  8 $ $&c&c&eE#Jc3h$?@&&&&???????? 5# 5 5 5 5 =#c(====(HHHHHHHHV$$$$$+$$$$$r#