zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
U
H=®d˜ã@sdZddlZddlZddlZddlZddlmZddlmZddl    m
Z
ddl m Z m Z mZddlmZddlmZdd    lmZdd
lmZmZdd lmZerØdd lmZdd lmZmZm Z m!Z!m"Z"m#Z#ddl$m%Z%e &e'¡Z(Gdd„dƒZ)Gdd„de*ƒZ+Gdd„de+ƒZ,dS)z;Build Environment used for isolation during sdist building
éN)Ú OrderedDict)Úget_python_lib)Ú    get_paths)Ú RequirementÚVersionConflictÚ
WorkingSet)Ú__file__)Ú open_spinner)Úcall_subprocess)Ú TempDirectoryÚ tempdir_kinds)ÚMYPY_CHECK_RUNNING)Ú TracebackType)ÚTupleÚSetÚIterableÚOptionalÚListÚType)Ú PackageFinderc@seZdZdd„ZdS)Ú_PrefixcCsj||_d|_ttjdkrdnd||dœdd|_td|d}td|d}||kr\|g|_n
||g|_dS)    NFÚntÚ posix_prefix)ÚbaseÚplatbase)ÚvarsÚscripts)Ú plat_specificÚprefixT)ÚpathÚsetuprÚosÚnameÚbin_dirrÚlib_dirs)ÚselfrÚpurelibÚplatlib©r(úND:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/build_env.pyÚ__init__sþý  
z_Prefix.__init__N)Ú__name__Ú
__module__Ú __qualname__r*r(r(r(r)rsrc@s8eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd S) ÚBuildEnvironmentzFCreates and manages an isolated environment to install build deps
    c    sòttjdd‰t‡fdd„dDƒƒ|_g|_g|_tt|j     ¡ƒƒD] }|j 
|j ¡|j  |j ¡qDdd„tdd    tdd    fDƒ}tj ˆjd
¡|_tj |j¡s°t |j¡ttj |jd ¡d ƒ"}| t d ¡j||jd¡W5QRXdS)NT)ÚkindÚglobally_managedc3s&|]}|ttj ˆj|¡ƒfVqdS©N)rr!rÚjoin©Ú.0r"©Útemp_dirr(r)Ú    <genexpr>:sÿz,BuildEnvironment.__init__.<locals>.<genexpr>)ÚnormalÚoverlaycSsh|]}tj |¡’qSr()r!rÚnormcase)r4Úsiter(r(r)Ú    <setcomp>Hsz,BuildEnvironment.__init__.<locals>.<setcomp>F)rr;zsitecustomize.pyÚwaŸ
                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$)r r Ú    BUILD_ENVrÚ    _prefixesÚ    _bin_dirsÚ    _lib_dirsÚreversedÚlistÚvaluesÚappendr#Úextendr$rr!rr2Ú    _site_dirÚexistsÚmkdirÚopenÚwriteÚtextwrapÚdedentÚformat)r%rr>Úfpr(r5r)r*4s6ÿ þ
þÿ ÿçzBuildEnvironment.__init__cCsndd„dDƒ|_|jdd…}|jd}|r>| | tj¡¡|jg}tj tj     |¡dtj     |¡dœ¡dS)NcSsi|]}|tj |d¡“qSr1)r!ÚenvironÚgetr3r(r(r)Ú
<dictcomp>osÿz.BuildEnvironment.__enter__.<locals>.<dictcomp>)ÚPATHÚPYTHONNOUSERSITEÚ
PYTHONPATHrTÚ1)
Ú    _save_envrArGÚsplitr!ÚpathseprHrQÚupdater2)r%rÚold_pathÚ
pythonpathr(r(r)Ú    __enter__msþ
 
 
ýzBuildEnvironment.__enter__cCs:|j ¡D]*\}}|dkr*tj |d¡q
|tj|<q
dSr1)rXÚitemsr!rQÚpop)r%Úexc_typeÚexc_valÚexc_tbÚvarnameÚ    old_valuer(r(r)Ú__exit__szBuildEnvironment.__exit__c Cs˜tƒ}tƒ}|rt|jƒ}|D]p}z"| t |¡¡dkrB| |¡Wqtk
rŒ}z*| t|j    d 
¡ƒt|j    dƒf¡W5d}~XYqXq||fS)z–Return 2 sets:
            - conflicting requirements: set of (installed, wanted) reqs tuples
            - missing requirements: set of reqs
        Nré) ÚsetrrBÚfindrÚparseÚaddrÚstrÚargsÚas_requirement)r%ÚreqsÚmissingÚ conflictingÚwsÚreqÚer(r(r)Úcheck_requirementsŽs
 ÿz#BuildEnvironment.check_requirementsc    Cst|j|}|jrt‚d|_|s"dStjtj t¡dddd|jdg}t     
¡t j krZ|  d¡dD]:}t|j|ƒ}| d    | d
d ¡d  t|pŽd hƒ¡f¡q^|j}    |    rØ| d|    dg¡|    dd…D]}
| d|
g¡qÂn
|  d¡|jD]} | d| g¡qè|jD]} | d| g¡q|jr*|  d¡|jr<|  d¡|  d    ¡| |¡t|ƒ} t|| dW5QRXdS)NTÚinstallz--ignore-installedz    --no-userz--prefixz--no-warn-script-locationz-v)Ú    no_binaryÚ only_binaryz--Ú_ú-ú,z:none:z-irrgz--extra-index-urlz
--no-indexz --find-linksz--trusted-hostz--prez--prefer-binary)Úspinner)r@r ÚAssertionErrorÚsysÚ
executabler!rÚdirnameÚ pip_locationÚloggerÚgetEffectiveLevelÚloggingÚDEBUGrFÚgetattrÚformat_controlrGÚreplacer2ÚsortedÚ
index_urlsÚ
find_linksÚ trusted_hostsÚallow_all_prereleasesÚ prefer_binaryr    r
)r%ÚfinderÚ requirementsÚprefix_as_stringÚmessagerrmr‡ÚformatsrŠÚ extra_indexÚlinkÚhostr|r(r(r)Úinstall_requirements¡sN
 
 
ý
 ÿ
 
 
 
 
 
 
 
z%BuildEnvironment.install_requirementsN)    r+r,r-Ú__doc__r*r^rfrur—r(r(r(r)r.0s 9 r.c@s8eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd S) ÚNoOpBuildEnvironmentz5A no-op drop-in replacement for BuildEnvironment
    cCsdSr1r(©r%r(r(r)r*ÔszNoOpBuildEnvironment.__init__cCsdSr1r(ršr(r(r)r^ØszNoOpBuildEnvironment.__enter__cCsdSr1r()r%rarbrcr(r(r)rfÜszNoOpBuildEnvironment.__exit__cCsdSr1r(ršr(r(r)ÚcleanupåszNoOpBuildEnvironment.cleanupcCs
tƒ‚dSr1)ÚNotImplementedError)r%rrr‘r’r(r(r)r—ész)NoOpBuildEnvironment.install_requirementsN)    r+r,r-r˜r*r^rfr›r—r(r(r(r)r™Ðs     r™)-r˜r„r!r~rMÚ collectionsrÚdistutils.sysconfigrÚ    sysconfigrZpip._vendor.pkg_resourcesrrrÚpiprrÚpip._internal.cli.spinnersr    Úpip._internal.utils.subprocessr
Úpip._internal.utils.temp_dirr r Úpip._internal.utils.typingr ÚtypesrÚtypingrrrrrrÚ"pip._internal.index.package_finderrÚ    getLoggerr+r‚rÚobjectr.r™r(r(r(r)Ú<module>s,          
!