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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Ë
ñúhi7ãó —UddlmZddlZddlZddlZddlZddlZddlZddlm    Z    ddl
m Z m Z ddl mZddlmZddlmZdd    lmZdd
lmZmZmZmZmZmZgd ¢Zej:e«Ze ed d «Z!de"d<ejFdk\Z$d%d„Z%e%«Z&e&sddlm'Z'e$re&s ejPZ)n ejTZ)d%d„Z+d&d„Z,ejZd%d„«Z.ejZd%d„«Z/ejZd%d„«Z0ejZd%d„«Z1ejZd%d„«Z2ejZd'd„«Z3d(d„Z4ejZdddddœ                                    d)d„«Z5                    d*                                                    d+d„Z6d,d „Z7d,d!„Z8d-d"„Z9d,d#„Z:d,d$„Z;y).é)Ú annotationsN)ÚAny)Ú SCHEME_KEYSÚScheme)ÚWINDOWS)Ú
deprecated)Úrunning_under_virtualenvé)Ú
_sysconfig)ÚUSER_CACHE_DIRÚget_major_minor_versionÚget_src_prefixÚis_osx_frameworkÚ site_packagesÚ    user_site)
r Úget_bin_prefixÚ get_bin_userr Ú get_platlibÚ get_purelibÚ
get_schemerrrÚ
platlibdirÚlibÚstrÚ _PLATLIBDIR)éé
có>—tttdt««S)axThis function determines the value of _USE_SYSCONFIG.
 
    By default, pip uses sysconfig on Python 3.10+.
    But Python distributors can override this decision by setting:
        sysconfig._PIP_USE_SYSCONFIG = True / False
    Rationale in https://github.com/pypa/pip/issues/10647
 
    This is a function for testability, but should be constant during any one
    run.
    Ú_PIP_USE_SYSCONFIG)ÚboolÚgetattrÚ    sysconfigÚ_USE_SYSCONFIG_DEFAULT©óúSH:\Change_password\venv_build\Lib\site-packages\pip/_internal/locations/__init__.pyÚ_should_use_sysconfigr&0s€ô ”œ    Ð#7Ô9OÓPÓ QÐQr$©Ú
_distutilscóH—ddlm}    |dd}|dk(S#t$rYywxYw)zsThe resolution to bpo-44860 will change this incorrect platlib.
 
    See <https://bugs.python.org/issue44860>.
    r©ÚINSTALL_SCHEMESÚ    unix_userÚplatlibFz    $usersite)Údistutils.command.installr+ÚKeyError)r+Úunix_user_platlibs  r%Ú_looks_like_bpo_44860r1Ns=€õ
:ðØ+¨KÑ8¸ÑCÐð   Ñ +Ð+øô òÙðús ˆ•    ! !có¦—|d}d|vr|jddt›d«}d|vry|jdd«}|jdd«|d    k(S)
Nr-z /$platlibdir/ú/ú/lib64/Fz/lib/z
$platbase/z$base/Úpurelib)Úreplacer)Úschemer-Ú    unpatcheds   r%Ú+_looks_like_red_hat_patched_platlib_purelibr9\se€ØYÑ€Gؘ'Ñ!Ø—/‘/ /°Q´{°mÀ1Ð3EÓFˆØ˜ÑØØ—‘     ¨7Ó3€IØ × Ñ ˜\¨8Ó 4¸¸yÑ8IÑ IÐIr$có8‡—ddlmŠtˆfd„dD««S)z‘Red Hat patches platlib in unix_prefix and unix_home, but not purelib.
 
    This is the only way I can see to tell a Red Hat-patched Python.
    rr*c3óF•K—|]}|‰vxrt‰|«–—Œy­w©N)r9)Ú.0Úkr+s  €r%ú    <genexpr>z*_looks_like_red_hat_lib.<locals>.<genexpr>ns9øèø€òð ð    
ˆ_Ðò    LÜ 7¸ÈÑ8JÓ Kó    Lñùsƒ!)Ú unix_prefixÚ    unix_home)r.r+Úallr*s@r%Ú_looks_like_red_hat_librCfs$ø€õ :ä óð.ôó ðr$có"—ddlm}d|vxrd|vS)z#Debian adds two additional schemes.rr*Ú
deb_systemÚ
unix_local)r.r+r*s r%Ú_looks_like_debian_schemerGus€õ:à ˜?Ð *Ò N¨|¸Ð/NÐNr$cóL—ddlm}ddlm}||««}|j    «|j
t jjtj
«›dk(xr=|jt jjtj«›dk(S)a\Red Hat patches ``sys.prefix`` and ``sys.exec_prefix``.
 
    Red Hat's ``00251-change-user-install-location.patch`` changes the install
    command's ``prefix`` and ``exec_prefix`` to append ``"/local"``. This is
    (fortunately?) done quite unconditionally, so we create a default command
    object without any configuration to detect this.
    r)Úinstall)Ú Distributionz/local) r.rIÚdistutils.distrJÚfinalize_optionsÚ exec_prefixÚosÚpathÚnormpathÚsysÚprefix)rIrJÚcmds   r%Ú_looks_like_red_hat_schemerT}s{€õ2Ý+á‘|“~Ó&€CØ×ÑÔà ‰œbŸg™g×.Ñ.¬s¯©Ó?Ð@ÀÐGÑGò    BØ J‰JœRŸW™W×-Ñ-¬c¯j©jÓ9Ð:¸&ÐAÑ Aðr$có€—t€y    tjdd¬«}d|dvxrdtvS#t$rYywxYw)zÌSlackware patches sysconfig but fails to patch distutils and site.
 
    Slackware changes sysconfig's user scheme to use ``"lib64"`` for the lib
    path, but does not do the same to the site module.
    FÚ
posix_user)r7Úexpandr4r5)rr!Ú    get_pathsr/©Úpathss r%Ú_looks_like_slackware_schemer[‘sT€ôÐØðÜ×#Ñ#¨<ÀÔFˆð ˜˜iÑ(Ð (Ò G¨Y¼iÐ-GÐGøô òÙðús ‰1±    =¼=cóh‡—tjdd¬«Štd„ˆfd„dD«D««S)a‰MSYS2 patches distutils and sysconfig to use a UNIX-like scheme.
 
    However, MSYS2 incorrectly patches sysconfig ``nt`` scheme. The fix is
    likely going to be included in their 3.10 release, so we ignore the warning.
    See msys2/MINGW-packages#9319.
 
    MSYS2 MINGW's patch uses lowercase ``"lib"`` instead of the usual uppercase,
    and is missing the final ``"site-packages"``.
    ÚntF)rWc3óXK—|]"}d|vxrd|vxr|jd« –—Œ$y­w)ÚLibrz site-packagesN)Úendswith)r=Úps  r%r?z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>­s9èø€òà ð    QˆÒI˜5 A˜:ÒI¨a¯j©j¸Ó.IÐ*IÓIñùs‚(*c3ó(•K—|]    }‰|–—Œ y­wr<r#)r=ÚkeyrZs  €r%r?z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>¯søèø€Ò? %˜•*Ñ?ùsƒ©r-r5)r!rXrBrYs@r%Ú_looks_like_msys2_mingw_schemere¡s7ø€ô × Ñ  ¨UÔ 3€EÜ ñã?Ð(>Ô?ôó ðr$cóH—d}d}tjt|||||«y)Nz(https://github.com/pypa/pip/issues/10151zSValue for %s does not match. Please report this to <%s>
distutils: %s
sysconfig: %s)ÚloggerÚlogÚ_MISMATCH_LEVEL)ÚoldÚnewrcÚ    issue_urlÚmessages     r%Ú_warn_mismatchedrn³s)€à:€Ið    ð ô
 ‡JJŒ ¨¨i¸¸cÕBr$có,—||k(ryt|||¬«y)NF©rcT)rn)rjrkrcs   r%Ú_warn_if_mismatchrq¾s€Ø
ˆc‚zØÜS˜# 3Õ'Ø r$F©ÚuserÚhomeÚrootrRcóf—gd¢}tjtdj|«||||«y)N)zAdditional context:z    user = %rz    home = %rz    root = %rz prefix = %rú
)rgrhriÚjoin)rsrtrurRÚpartss     r%Ú _log_contextrzÅs*€ò €Eô ‡JJŒ §    ¡    ¨%Ó 0°$¸¸dÀFÕKr$c    ó–‡‡—tj||||||¬«}tr|Stj||||||¬«Šg}tD]‹}t j t‰|««}    t j t||««}
|    |
k(rŒHtjjdk(xr_|duxrY|dvxrS|    j|
jk(xr8|    jjd«xr|
jjd«} | rŒÉ|xr]t«xrQ|dk(xrJ|    jj|
jk(xr%|    jjjd«} | rŒ.|dk(r t«rŒ?|xr%|dk(xrt xrt dk7xr
t#«} | rŒl|xr|dvxrt xr
t%«}|rŒ|xs|xs|xs
t'« xr†|    j(dd    d
k(xrrt+|
j(«dkDxrX|
j(dd k(xrDt+|
j(«d    kxs|
j(d d k7xrt-«xs
t/«}|rŒ0txr|dvxr
t1«}|rŒLt3j4d¬«xr t xr|dv}|rŒu|j7|    |
d|›f«ŒŽ|s‰Stj8||||||d¬«Št;ˆˆfd„tD««rt=ddd¬«‰S|D]\}    }
}t?|    |
|¬«ŒtA||||¬«‰S)N)rsrtruÚisolatedrRÚpypyrdÚpythonÚheadersr-rr
r)ÚusrÚlocalr€érT)Ú
check_home)rÚincludeÚ platincludezscheme.)Úignore_config_filesc3óB•K—|]}‰|t‰|«k7–—Œy­wr<)r )r=r>Ú default_oldrjs  €€r%r?zget_scheme.<locals>.<genexpr>is øèø€Ò
B°ˆ;q‰>œW S¨!›_Õ ,Ñ
BùsƒzöConfiguring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621)ÚreasonÚ replacementÚgone_inrprr)!r rÚ_USE_SYSCONFIGr(rÚpathlibÚPathr rQÚimplementationÚnameÚparentÚ
startswithrrCrrr1r[r    ryÚlenrTrGrer!Úis_python_buildÚappendÚdistutils_schemeÚanyrrnrz)Ú    dist_namersrtrur|rRrkÚwarning_contextsr>Úold_vÚnew_vÚskip_pypy_special_caseÚ$skip_osx_framework_user_special_caseÚskip_bpo_44860Úskip_slackware_user_schemeÚskip_linux_system_special_caseÚskip_msys2_mingw_bugÚskip_cpython_buildrcrˆrjs                   @@r%rrØs×ù€ô ×
ØØ Ø Ø ØØô  €Cõ؈
ä
ØØ Ø Ø ØØô  €CðÐÜ óc?ˆÜ— ‘ œW S¨!›_Ó-ˆÜ— ‘ œW S¨!›_Ó-ˆà EŠ>Ø ô × Ñ × #Ñ # vÑ -ò .ؘDРò .àÐ+Ð+ò .ð— ‘  § ¡ Ñ,ò .ð—
‘
×%Ñ% hÓ/ò     .ð
—
‘
×%Ñ% fÓ-ð     ñ "Ø ð ò 7Ü Ó"ò 7àY‘ò 7ð— ‘ ×#Ñ# u§|¡|Ñ3ò 7ð— ‘ ×!Ñ!×,Ñ,¨XÓ6ð     -ñ 0٠𠐠   Š>Ô5Ô7Ù ð ò (ؐY‘ò (ä ò (ô˜uÑ$ò (ô&Ó'ð     ñ Ù ð
ò /ØÐ+Ð+ò /ä ò /ô-Ó.ð        #ñ &Ù ð ÒE˜ÒE ÒEÔ+CÓ+EÐ Fò NØ— ‘ ˜A˜aРÐ$4Ñ4ò NäE—K‘KÓ  1Ñ$ò Nð— ‘ ˜A‘ %Ñ'ò NôU—[‘[Ó! AÑ%ÒB¨¯©°Q©¸7Ñ)Bò     Nô
,Ó-ÒLÔ1JÓ1Lð     'ñ *Ù ô
Ò X˜Ð3Ð3Ò XÔ8VÓ8Xð    ñ  Ù ô × %Ñ %°Ô 6ò ;ܐ ò ;àÐ:Ð:ð    ñ
Ù à×Ñ ¨°¸¸¨}Р=Ö>ðGc?ñJ ؈
ô
×-Ñ-ØØ Ø Ø ØØØ ô€Kô Ô
B´kÔ
BÔBÜðLð
Øõ        
ðˆ
ð.ò0шˆucܘ ¨3Ö/ð0äd ¨D¸Õ@à €Jr$cóâ—tj«}tr|Stj«}t    t j |«t j |«d¬«r
t«|S)NÚ
bin_prefixrp)r rrŒr(rqrrŽrz©rkrjs  r%rr~sN€Ü
%€CÝØˆ
ä
%€CÜœŸ™ cÓ*¬G¯L©L¸Ó,=À<ÕPÜŒØ €Jr$cóD—tjdd¬«jS)NÚT)rs)r rÚscriptsr#r$r%rr‰s€Ü ×  Ñ   ¨$Ô /× 7Ñ 7Ð7r$có&—t«sy|dk(ryy)aõCheck if the value is Debian's APT-controlled dist-packages.
 
    Debian's ``distutils.sysconfig.get_python_lib()`` implementation returns the
    default package path controlled by APT, but does not patch ``sysconfig`` to
    do the same. This is similar to the bug worked around in ``get_scheme()``,
    but here the default is ``deb_system`` instead of ``unix_local``. Ultimately
    we can't do anything about this Debian bug, and this detection allows us to
    skip the warning when needed.
    Fz/usr/lib/python3/dist-packagesT)rG)Úvalues r%Ú$_looks_like_deb_system_dist_packagesr«s€ô %Ô &ØØ Ð0Ò0ØØ r$cóü—tj«}tr|Stj«}t    |«r|St t j|«t j|«d¬«r
t«|S)z,Return the default pure-Python lib location.r5rp)    r rrŒr(r«rqrrŽrzr¥s  r%rržs[€ä
 Ñ
 Ó
"€CÝØˆ
ä
 Ñ
 Ó
"€CÜ+¨CÔ0؈
ÜœŸ™ cÓ*¬G¯L©L¸Ó,=À9ÕMÜŒØ €Jr$có—tj«}tr|Sddlm}|j«}t |«r|St tj|«tj|«d¬«r
t«|S)z0Return the default platform-shared lib location.r
r'r-rp)
r rrŒr§r(r«rqrrŽrz)rkr(rjs   r%rr¬s`€ä
 Ñ
 Ó
"€CÝØˆ
åà
 ˆ*×
 Ñ
 Ó
"€CÜ+¨CÔ0؈
ÜœŸ™ cÓ*¬G¯L©L¸Ó,=À9ÕMÜŒØ €Jr$)Úreturnr)r7zdict[str, str]r®r)rjú pathlib.Pathrkr¯rcrr®ÚNone)rjr¯rkr¯rcrr®r)
rsrrtú
str | Nonerur±rRr±r®r°)FNNFN)r˜rrsrrtr±rur±r|rrRr±r®r)r®r)rªrr®r)<Ú
__future__rÚ    functoolsÚloggingrNrrQr!ÚtypingrÚpip._internal.models.schemerrÚpip._internal.utils.compatrÚpip._internal.utils.deprecationrÚpip._internal.utils.virtualenvr    r§r Úbaser r rrrrÚ__all__Ú    getLoggerÚ__name__rgr rÚ__annotations__Ú version_infor"r&rŒr(ÚWARNINGriÚDEBUGr1r9ÚcacherCrGrTr[rernrqrzrrrr«rrr#r$r%ú<module>rÃs%ðÞ"ãÛÛ    ÛÛ
ÛÝç;Ý.Ý6ÝCå÷÷ò €ð
ˆ×    Ñ    ˜8Ó    $€ñ˜3  ¨eÓ4€ ˆSÓ4à×)Ñ)¨WÑ4Ðó Rñ'Ó(€áõñ¡.Ø—o‘oOà—m‘m€Oó ,óJ𠇁ò óð 𠇁òOóðO𠇁òóðð& ‡ò Hóð H𠇁òóðð" ‡òCóðCóð ‡ðØØØñ Là
ðLð ðLð ð    Lð
ð Lð 
ò LóðLð(ØØØØð cØðcà
ðcð ðcð ð    cð
ð cð ð cð ócóLó8óó" ô r$