"Jd&dZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZmZmZmZmZmZmZmZddlmZddlmZdd lmZdd lmZdd l m!Z!dd l"m#Z#m$Z$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+m,Z,erddl-m.Z.ej/e0Z1GddZ2ej3dee4fdZ5GddZ6Gdde6Z7dS)z;Build Environment used for isolation during sdist building N) OrderedDict) get_paths) TracebackType) TYPE_CHECKINGIterableIteratorListOptionalSetTupleType)where) Requirement)Version)__file__) open_spinner) get_platlibget_prefixed_libs get_purelib)get_environment)call_subprocess) TempDirectory tempdir_kinds) PackageFinderceZdZdeddfdZdS)_PrefixpathreturnNc||_d|_ttjdkrdnd||dd|_t ||_dS)NFnt posix_prefix)baseplatbase)varsscripts)rsetuprosnamebin_dirrlib_dirs)selfrs J/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/build_env.py__init__z_Prefix.__init__"sa   GtOODDD11     *$// )__name__ __module__ __qualname__strr-r.r,rr!s60S0T000000r.rrc #Ktjtj}|st |VdStd5}tj |j d}i}tj dkrd|d<tj|dfi|5}|d D]B}||||jC dddn #1swxYwYtj |d VddddS#1swxYwYdS) zCreate a "standalone pip" zip file. The zip file's content is identical to the currently-running pip. It will be used to install requirements into the build environment. Nzstandalone-pip)kindz__env_pip__.zip)Fstrict_timestampsw*pip)pathlibPath pip_locationresolveparentis_dirr2rr'rjoinsys version_infozipfileZipFilerglobwrite relative_toas_posix)sourcetmp_dirpip_zipkwargszfchilds r,_create_standalone_piprQ,s\, ' ' / / 1 1 8F ==??&kk , - - -+',,w|->??  v % %*/F& ' _Wc 4 4V 4 4 Mc** M M 1 1&- @ @ I I K KLLLL M M M M M M M M M M M M M M M Mgll7E*****++++++++++++++++++s8*AE:AD  E D$ $E'D$ (%EE!Ec "eZdZdZddZddZdeeedeedee ddfd Z d e e de ee e e fee ffd Zd d de e de de ddf dZede d d de e dede ddf dZdS)BuildEnvironmentzACreates and manages an isolated environment to install build depsrNcttjdtfddD|_g|_g|_tt|j D]@}|j |j |j |j AdttfD}t jjd|_t j|jst!j|jt-t j|jdd5}|t1jd ||j ddddS#1swxYwYdS) NT)r5globally_managedc3K|]8}|ttjj|fV9dSN)rr'rrB).0r(temp_dirs r, z,BuildEnvironment.__init__..LsV% % 727<< t<<== >% % % % % % r.)normaloverlaycLh|]!}tj|"Sr3)r'rnormcase)rXsites r, z,BuildEnvironment.__init__..Zs5   '+BG  T " "   r.r_zsitecustomize.pyr9a 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) ) system_sitesr*)rr BUILD_ENVr _prefixes _bin_dirs _lib_dirsreversedlistvaluesappendr)extendr*rrr'rrB _site_direxistsmkdiropenrHtextwrapdedentformat)r+prefixrafprYs @r,r-zBuildEnvironment.__init__Is m&=PTUUU$% % % % -% % %    %'$&tDN$9$9$;$;<<== 3 3F N ! !&. 1 1 1 N ! !&/ 2 2 2 2   0; {}}/M   hmV<<w~~dn-- % HT^ $ $ $ "',,t~/ABBC H H B HH2&lT^&LL5                     s?AGGGcddD|_|jdd}|jd}|r2||tj|jg}tjtj |dtj |ddS)NcPi|]#}|tj|d$SrW)r'environget)rXr(s r, z.BuildEnvironment.__enter__..s:    "*..t,,   r.)PATHPYTHONNOUSERSITE PYTHONPATHry1) _save_envrdrjsplitr'pathseprkrvupdaterB)r+rold_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|<8dSrW)r}itemsr'rvpop)r+rrrvarname old_values r,__exit__zBuildEnvironment.__exit__s^ #'."6"6"8"8 0 0 GY  w----&/ 7##  0 0r.reqsct}t}|rt|j}|D]}t|}||j}|s||Ct|jtr|jd|j}n|jd|j}|j|j vr|||f||fS)zReturn 2 sets: - conflicting requirements: set of (installed, wanted) reqs tuples - missing requirements: set of reqs z==z===) setrrerget_distributionr(add isinstanceversionr specifier) r+rmissing conflictingenvreq_strreqdistinstalled_req_strs r,check_requirementsz#BuildEnvironment.check_requirementss%%ee  B!$.11C B B!'**++CH55KK(((dlG44G+.8(E(Et|(E(E%%+.8(F(F (F(F% enter_contextrQ_install_requirements)r+rrrrrrctx pip_runnables r,install_requirementsz%BuildEnvironment.install_requirementss  01<   F  ! # # s &((!w|<< "001G1I1IJJ  & &                      sA0B22B69B6rrrc "tj|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)|5} t+|| | 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_CERT)spinner extra_environ)rC executablerloggergetEffectiveLevelloggingDEBUGrigetattrformat_controlrjreplacerBsorted index_urls find_links trusted_hostsallow_all_prereleases prefer_binaryrrr)rrrrrrargsrformatsr 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 ' " " Pg D' O O O O P P P P P P P P P P P P P P P P P Ps$HH HrN)r/r0r1__doc__r-rr r BaseExceptionrrrr2r r rr staticmethodrrr3r.r,rSrSFsKK3333j    * 04 ./ 0-( 0' 0  0 0 0 0$SM$ s5c?#SX- .$$$$4sm     :0P0P0Psm0P 0P  0P  0P0P0P\0P0P0Pr.rSc eZdZdZddZddZdeeedeedee ddfd Z dd Z d d d e e de de ddf dZdS)NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentrNcdSrWr3r+s r,r-zNoOpBuildEnvironment.__init__  r.cdSrWr3rs r,rzNoOpBuildEnvironment.__enter__rr.rrrcdSrWr3)r+rrrs r,rzNoOpBuildEnvironment.__exit__s r.cdSrWr3rs r,cleanupzNoOpBuildEnvironment.cleanuprr.rrrrrctrW)NotImplementedError)r+rrrrs r,rz)NoOpBuildEnvironment.install_requirementss"###r.r)r/r0r1rr-rr r rrrrrr2rr3r.r,rr s::         4 ./ -( '           $$sm$ $  $  $$$$$$r.r)8rrrr'r<rCrorE collectionsr sysconfigrtypesrtypingrrrr r r r r pip._vendor.certifir"pip._vendor.packaging.requirementsrpip._vendor.packaging.versionrr;rr>pip._internal.cli.spinnersrpip._internal.locationsrrrpip._internal.metadatarpip._internal.utils.subprocessrpip._internal.utils.temp_dirrr"pip._internal.index.package_finderr getLoggerr/rrcontextmanagerr2rQrSrr3r.r,rsk  ######VVVVVVVVVVVVVVVVVVVV%%%%%%::::::111111((((((333333OOOOOOOOOO222222::::::EEEEEEEEA@@@@@@  8 $ $00000000 + ++++2APAPAPAPAPAPAPAPH$$$$$+$$$$$r.