7i( 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,ejZe.Z/de0de0deee0ee0e0fffdZ1GddZ2de0fdZ3dee0fdZ4GddZ5Gdde5Z6y)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||k7r||fS|fSN)rrs `/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pip/_internal/build_env.py_dedupr"s!VAq6%!%ceZdZdeddfdZy)_PrefixpathrNc||_d|_td|}|j|_t |j |j|_y)NF)prefix) r&setuprscriptsbin_dirr"purelibplatliblib_dirs)selfr&schemes r!__init__z_Prefix.__init__$s=  Bt,~~ v~~v~~> r#)__name__ __module__ __qualname__strr2r r#r!r%r%#s?S?T?r#r%ctjtjj}|j s t |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,sK \\, ' / / 1 8 8F ==?6{ ;;v 33 44r#cttdrtj}ntt g}|Dchc]!}t j j|#c}Scc}w)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. getsitepackages)hasattrsiterCrrr>r&normcase) system_sitesr&s r!_get_system_sitepackagesrH<sPt&'++- $ {}5 /; r&join).0nametemp_dirs r! z,BuildEnvironment.__init__..Vs6% 7277<< t<= >% s?A)normaloverlayrEzsitecustomize.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) )rGr/)rr BUILD_ENVr _prefixes _bin_dirs _lib_dirsreversedlistvaluesappendr,extendr/rHr>r&rO _site_direxistsmkdiropenwritetextwrapdedentformat)r0r)rGfprRs @r!r2zBuildEnvironment.__init__SsE m&=&=PTU$% -%   %'$&tDNN$9$9$;<= 3F NN ! !&.. 1 NN ! !&// 2 301 hmmV<ww~~dnn- HHT^^ $  GGLL); environget _save_envrZr`splitpathsepraupdaterO)r0rQr&old_path pythonpaths r! __enter__zBuildEnvironment.__enter__sC  "**..t, ,  ~~a >>&)  KKrzz2 3nn%   -$' jjooj9   s(C.exc_typeexc_valexc_tbc|jjD];\}}|!tjj |d)|tj|<=yr)rqitemsr>ropop)r0rxryrzvarname old_values r!__exit__zBuildEnvironment.__exit__sK #'.."6"6"8 0 GY  w-&/ 7#  0r#reqsc|t}t}|r"t|drt|jn t }|D]}t |}|j |j jddis8|j|j}|s|j|gt|jtr|jd|j}n|jd|j}|jj|jdr|j||f||fS)zReturn 2 sets: - conflicting requirements: set of (installed, wanted) reqs tuples - missing requirements: set of reqs r[extrar(z==z===T) prereleases)setrDrr[rrmarkerevaluateget_distributionrQadd isinstanceversionr specifiercontains) r0rmissing conflictingenvreq_strreqdistinstalled_req_strs r!check_requirementsz#BuildEnvironment.check_requirementss%e 4- /,.    B!'*::)#**2E2EwPRm2T++CHH5KK(dllG4+.88*Bt||n(E%+.88*C ~(F%}}--dll-MOO%6$@A B"G##r#finderr requirementsprefix_as_stringrLc|j|}|jrJd|_|sy|jt||||y)NT)rL)rYr*_install_requirementsrA)r0rrrrLr)s r!install_requirementsz%BuildEnvironment.install_requirementssR 01<<   ""      # r# pip_runnabler)c tj|dddd|jdg}tj t j kr|jddD][}t|j|}|jd|jd d zd jt|xsd hf]|j}|r4|jd |dg|ddD]} |jd| gn|jd|jD]} |jd| g|j D]} |jd| g|j"r|jd|j$r|jd|jd|j|dt'i} t)d|5} t+|d|| | dddy#1swYyxYw)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&loggergetEffectiveLevelloggingDEBUGr_getattrformat_controlr`replacerOsorted index_urls find_links trusted_hostsallow_all_prereleases prefer_binaryr rr)rrrr)rLargsrformatsr extra_indexlinkhostrrs r!rz&BuildEnvironment._install_requirementss NN     KK '    # # % 6 KK : Nf33^DG KK>11#s;;HHVG$9z:;  &&  KKz!}- .)!"~ @  0+>? @ KK %%% 0D KK. / 0(( 2D KK)40 1 2  ' ' KK    KK) * D L!/9 Kv. / 7 9$@+     s G&&G/rN)r3r4r5__doc__r2rwrr BaseExceptionrrrr6r r rr staticmethodr%rr r#r!rJrJPs K4l * 04 ./ 0-( 0' 0  0 $SM $ s5c?#SX- . $D  sm       *666sm6 6  6 66r#rJc zeZdZdZddZddZdeeedeedee ddfd Z dd Z d d d e e de de ddf dZy)NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentrNcyrr r0s r!r2zNoOpBuildEnvironment.__init__ r#cyrr rs r!rwzNoOpBuildEnvironment.__enter__!rr#rxryrzcyrr )r0rxryrzs r!rzNoOpBuildEnvironment.__exit__$s r#cyrr rs r!cleanupzNoOpBuildEnvironment.cleanup,rr#rrrrrLctr)NotImplementedError)r0rrrrLs r!rz)NoOpBuildEnvironment.install_requirements/s "##r#r)r3r4r5rr2rwrr rrrrrr6rr r#r!rrs:   4 ./ -( '     $$sm$ $  $ $r#r)7rrr>r8rErrf 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%rArHrJrr r#r!rs  #SSS%:1(3HHK:E@   8 $&c&c&eE#Jc3h$?@&?? 5# 5 =#c(=(HHV$+$r#