I iy7dZddlmZddlZddlZddlZddlZddlZddlZddl 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/GddedZ0ejbe2Z3d%dZ4GddZ5d&dZ6d'dZ7GddeZ8Gdd Z9Gd!d"Z:Gd#d$e:Z;y)(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<y) ExtraEnvironzdict[str, str] extra_environN)__name__ __module__ __qualname____annotations__]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pip/_internal/build_env.pyrr s%%r"rF)totalc||k7r||fS|fSNr!)abs r#_dedupr)'s!VAq6%!%r"ceZdZddZy)_Prefixc||_d|_td|}|j|_t |j |j|_y)NF)prefix) pathsetuprscriptsbin_dirr)purelibplatliblib_dirs)selfr/schemes r#__init__z_Prefix.__init__,s=  Bt,~~ v~~v~~> r"N)r/strreturnNone)rrrr8r!r"r#r+r++s?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_dirr9osfsdecode)sources r#get_runnable_piprF4sK \\, ' / / 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)hasattrsiterHrr rCr/normcase) system_sitesr/s r#_get_system_sitepackagesrMDsPt&'++- $ {}5 /; 11#s;;HHVG$9z:;  &&  KKz!}- .)!"~ @  0+>? @ KK %%% 0D KK. / 0 << KKFLL1 2(( 2D KK)40 1 2    KK6#5#56 7    KK&*<*<= >  ' ' KK    KK) *  1 1 KK*<= >  " "$(#:#: E ^_=> 1?CD E')  1 1$:Q:Q-/QSV.WXM D L!'.',,eGLL> "B Kv. / 7  *4&1E0FG      s /M  M)NF)r\rr_zlist[str] | Noner`boolr:r;r:r;rU)rrrrXr8rkrTr!r"r#rZrZhs/316 RR,R+/ R  R :a#aa  a + a ar"rZcheZdZdZd dZd dZ d dZ d dZdd d dZy)BuildEnvironmentzACreates and manages an isolated environment to install build depsc||_ttjdt fddD|_g|_g|_tt|j jD]L}|j j|j|jj|jNt}t j"j%j"d|_t j"j)|j&st!j*|j&t-t j"j%|j&ddd 5}|j/t1j2d j5||j dddy#1swYyxYw) NT)rRglobally_managedc3K|]9}|ttjjj|f;ywr&)r+rCr/r).0rtemp_dirs r# z,BuildEnvironment.__init__..s6% 7277<< t<= >% s?A)normaloverlayrJzsitecustomize.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) )rLr5) installerrr BUILD_ENVr _prefixes _bin_dirs _lib_dirsreversedlistvaluesr}r2rr5rMrCr/r _site_direxistsmkdiropenwritetextwrapdedentformat)r6rr.rLfprs @r#r8zBuildEnvironment.__init__sL" m&=&=PTU$% -%   %'$&tDNN$9$9$;<= 3F NN ! !&.. 1 NN ! !&// 2 301 hmmV<ww~~dnn- HHT^^ $  GGLL); >&)  KKrzz2 3nn%   -$' jjooj9   s(C.c|jjD];\}}|!tjj |d)|tj|<=yr&)ritemsrCrgpop)r6exc_typeexc_valexc_tbvarname old_values r#__exit__zBuildEnvironment.__exit__GsK #'.."6"6"8 0 GY  w-&/ 7#  0r"c|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 rextrar-z==z===T) prereleases)setrIrrrrmarkerevaluateget_distributionradd isinstanceversionr specifiercontains) r6reqsmissing conflictingenvreq_strreqdistinstalled_req_strs r#check_requirementsz#BuildEnvironment.check_requirementsSs%e 4- /,.    B%g.::)#**2E2EwPRm2T++CHH5KK(dllG4+.88*Bt||n(E%+.88*C ~(F%}}--dll-MOO%6$@A B"G##r"NrSc|j|}|jrJd|_|sy|jj||||y)NT)rRrS)rr0rrT)r6rQprefix_as_stringrRrSr.s r#install_requirementsz%BuildEnvironment.install_requirementsusH 01<<   |V$Pr")rrOr:r;rrztype[BaseException] | NonerzBaseException | NonerzTracebackType | Noner:r;)rrVr:z%tuple[set[tuple[str, str]], set[str]] rQrVrr9rRr9rSrWr:r;) rrrrXr8rrrrr!r"r#rrsK5n * 0, 0& 0% 0  0 $! $ . $P.2 Q# Q Q  Q + Q  Qr"rc`eZdZdZd dZd dZ d dZd dZdd d dZy) NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentcyr&r!r6s r#r8zNoOpBuildEnvironment.__init__ r"cyr&r!rs r#rzNoOpBuildEnvironment.__enter__rr"cyr&r!)r6rrrs r#rzNoOpBuildEnvironment.__exit__s r"cyr&r!rs r#cleanupzNoOpBuildEnvironment.cleanuprr"Nrctr&)NotImplementedError)r6rQrrRrSs r#rz)NoOpBuildEnvironment.install_requirementss "##r"rrr) rrrrXr8rrrrr!r"r#rrsy:   , & %     .2 $#$$  $ + $ $r"r)r'r9r(r9r:ztuple[str] | tuple[str, str])r:r9)r:zset[str])rs@"  #$551(3HHK6/9:E@@&y&   8 $&?? 5 =(   MM`JQJQZ$+$r"