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
U
H=®dh;ã@sÚdZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
m Z m Z m Z ddlmZddlmZmZddlmZddlmZddlmZdd    lmZdd
lmZdd lmZdd l m!Z!dd l"m#Z#m$Z$ddl%m&Z&ddl'm(Z(m)Z)m*Z*ddl+m,Z,ddl-m.Z.e,rXddl/m0Z0m1Z1m2Z2m3Z3m4Z4ddl5m6Z6e3e7e7e2e4e8e7ffZ9e :e;¡Z<e    j=dedddddddgZ>dZ?dd„Z@dd „ZAGd!d"„d"eƒZBGd#d$„d$eƒZCGd%d&„d&eƒZDGd'd(„d(e jEƒZFdS))zhPipSession and supporting code, containing all pip-specific
network request configuration and behavior.
éN)ÚrequestsÚsixÚurllib3)ÚCacheControlAdapter)Ú BaseAdapterÚ HTTPAdapter)ÚResponse)ÚCaseInsensitiveDict)Úparse)ÚInsecureRequestWarning)Ú __version__)ÚMultiDomainBasicAuth)Ú SafeFileCache)Úhas_tlsÚ    ipaddress)Úlibc_ver)Úbuild_url_from_netlocÚget_installed_versionÚ parse_netloc)ÚMYPY_CHECK_RUNNING)Ú url_to_path)ÚIteratorÚListÚOptionalÚTupleÚUnion)ÚLinkÚignore)Úcategory)ÚhttpsÚ*r )r Ú    localhostr )r z 127.0.0.0/8r )r z::1/128r )Úfiler N)Ússhr r )Ú BUILD_BUILDIDÚBUILD_IDÚCIÚ    PIP_IS_CIcCstdd„tDƒƒS)z?
    Return whether it looks like pip is running under CI.
    css|]}|tjkVqdS©N)ÚosÚenviron)Ú.0Úname©r-úTD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/network/session.pyÚ    <genexpr>`sz looks_like_ci.<locals>.<genexpr>)ÚanyÚCI_ENVIRONMENT_VARIABLESr-r-r-r.Ú looks_like_ciXsr2cCsLdtdœt ¡dt ¡idœ}|dddkr@t ¡|dd<n’|dddkrtjjd    krltjd
d …}ntj}d  d d„|Dƒ¡|dd<nB|dddkr²t ¡|dd<n |dddkrÒt ¡|dd<tj d¡rHddl    m
}t t dd„t dddg| ¡ƒƒƒ}t t dd„t ddgtƒƒƒƒ}|r:||d<|rH||d<tj d¡rzt ¡drzdt ¡ddœ|d<t ¡r˜t ¡| di¡d<t ¡r¶t ¡| di¡d<t ¡rÌt ¡|d<tƒrædd
l}|j|d <td!ƒ}|d
k    r||d"<tƒr d#nd
|d$<tj d%¡}|d
k    r2||d&<d'j|tj|d(d#d)d*S)+z6
    Return a string representing the user agent.
    Úpip)r,Úversionr,)Ú    installerÚpythonÚimplementationr7ÚCPythonr4ÚPyPyÚfinalNéÚ.cSsg|] }t|ƒ‘qSr-)Ústr)r+Úxr-r-r.Ú
<listcomp>wszuser_agent.<locals>.<listcomp>ÚJythonÚ
IronPythonÚlinuxr)ÚdistrocSs|dS©Nér-©r>r-r-r.Ú<lambda>ƒózuser_agent.<locals>.<lambda>ÚidcSs|dSrDr-rFr-r-r.rG‡rHÚlibÚlibcrCÚdarwinÚmacOSÚsystemÚreleaseÚcpuÚopenssl_versionÚ
setuptoolsÚsetuptools_versionTÚciÚPIP_USER_AGENT_USER_DATAÚ    user_dataz9{data[installer][name]}/{data[installer][version]} {json})ú,ú:)Ú
separatorsÚ    sort_keys)ÚdataÚjson) r ÚplatformÚpython_versionÚpython_implementationÚsysÚpypy_version_infoÚ releaselevelÚjoinÚ
startswithÚ pip._vendorrCÚdictÚfilterÚzipÚlinux_distributionrÚmac_verrNÚ
setdefaultrOÚmachinerÚ_sslÚOPENSSL_VERSIONrr2r)r*ÚgetÚformatr\Údumps)r[rarCÚ distro_infosrKÚsslrSrVr-r-r.Ú
user_agentcsnÿý  ÿ þþ
 
 
 
 
 
þrtc@seZdZddd„Zdd„ZdS)ÚLocalFSAdapterNc
Cs®t|jƒ}tƒ}d|_|j|_zt |¡}    Wn.tk
rZ}
zd|_|
|_W5d}
~
XYnPXtj    j
|    j dd} t   |¡dp~d} t| |    j| dœƒ|_t|dƒ|_|jj|_|S)    NéÈi”T)Úusegmtrz
text/plain)z Content-TypezContent-Lengthz Last-ModifiedÚrb)rÚurlrÚ status_coder)ÚstatÚOSErrorÚrawÚemailÚutilsÚ
formatdateÚst_mtimeÚ    mimetypesÚ
guess_typer    Úst_sizeÚheadersÚopenÚclose) ÚselfÚrequestÚstreamÚtimeoutÚverifyÚcertÚproxiesÚpathnameÚrespÚstatsÚexcÚmodifiedÚ content_typer-r-r.Úsendµs&
ý
 
zLocalFSAdapter.sendcCsdSr(r-)rˆr-r-r.r‡ÐszLocalFSAdapter.close)NNNNN)Ú__name__Ú
__module__Ú __qualname__r•r‡r-r-r-r.ru³sÿ
rucseZdZ‡fdd„Z‡ZS)ÚInsecureHTTPAdaptercstt|ƒj||d|ddS©NF)ÚconnryrŒr)Úsuperr™Ú cert_verify©rˆr›ryrŒr©Ú    __class__r-r.rÖs 
ÿzInsecureHTTPAdapter.cert_verify©r–r—r˜rÚ __classcell__r-r-rŸr.r™Ôsr™cseZdZ‡fdd„Z‡ZS)ÚInsecureCacheControlAdaptercstt|ƒj||d|ddSrš)rœr£rržrŸr-r.rÞs 
ÿz'InsecureCacheControlAdapter.cert_verifyr¡r-r-rŸr.r£Üsr£csFeZdZdZ‡fdd„Zd dd„Zdd„Zd    d
„Z‡fd d „Z‡Z    S)Ú
PipSessionNc
sü| dd¡}| dd¡}| dg¡}| dd¡}tt|ƒj||Žg|_tƒ|jd<t|d|_t    j
|d    d
d d gd d}t |d}|rªt t |ƒ|d}tt |ƒ|d|_nt|d}||_| d|¡| d|¡| dtƒ¡|D]}    |j|    ddqädS)zj
        :param trusted_hosts: Domains not to emit warnings for when not using
            HTTPS.
        ÚretriesrÚcacheNÚ trusted_hostsÚ
index_urlsz
User-Agent)r¨iôi÷iigÐ?)ÚtotalÚstatus_forcelistÚbackoff_factor)Ú max_retries)r¦r¬zhttps://zhttp://zfile://T)Úsuppress_logging)Úpoprœr¤Ú__init__Úpip_trusted_originsrtr…r ÚauthrÚRetryr™rrr£Ú_trusted_host_adapterrÚmountruÚadd_trusted_host)
rˆÚargsÚkwargsr¥r¦r§r¨Úinsecure_adapterÚsecure_adapterÚhostrŸr-r.r¯ès<      
ñ
þþ
 
  zPipSession.__init__FcCs„|s.d |¡}|dk    r$|d |¡7}t |¡t|ƒ}||jkrL|j |¡| t|ƒd|j¡|ds€| t|ƒd|j¡dS)zÒ
        :param host: It is okay to provide a host that has previously been
            added.
        :param source: An optional source string, for logging where the host
            string came from.
        zadding trusted host: {!r}Nz
 (from {})ú/rErX)    rpÚloggerÚinforr°Úappendr´rr³)rˆrºÚsourcer­ÚmsgÚ    host_portr-r-r.rµ4s"
 
 
 
þ
þzPipSession.add_trusted_hostccs<tD]
}|Vq|jD] \}}d||dkr.dn|fVqdS)Nr )ÚSECURE_ORIGINSr°)rˆÚ secure_originrºÚportr-r-r.Úiter_secure_originsQszPipSession.iter_secure_originsc     Csþt t|ƒ¡}|j|j|j}}}| dd¡d}| ¡D]®}|\}}}    ||kr\|dkr\q<z0t     |dkrndnt
  |¡¡}
t  t
  |¡¡} Wn4t k
rÀ|r¼| ¡| ¡kr¼|dkr¼Yq<Yn X|
| krÌq<||    kræ|    dkræ|    dk    ræq<dSt d||¡dS)Nú+rEéÿÿÿÿr TzõThe repository located at %s is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host %s'.F)Ú urllib_parseÚurlparser=ÚschemeÚhostnamerÄÚrsplitrÅrÚ
ip_addressrÚ ensure_textÚ
ip_networkÚ
ValueErrorÚlowerr¼Úwarning) rˆÚlocationÚparsedÚorigin_protocolÚ origin_hostÚ origin_portrÃÚsecure_protocolÚ secure_hostÚ secure_portÚaddrÚnetworkr-r-r.Úis_secure_originXsVÿ
 
ÿýÿÿþý
ÿþýú    zPipSession.is_secure_origincs(| d|j¡tt|ƒj||f|ž|ŽS)Nr‹)rkr‹rœr¤r‰)rˆÚmethodryr¶r·rŸr-r.r‰ szPipSession.request)NF)
r–r—r˜r‹r¯rµrÅrÝr‰r¢r-r-rŸr.r¤äs  L
Hr¤)GÚ__doc__Ú email.utilsr~r\Úloggingr‚r)r]r`ÚwarningsrerrrZpip._vendor.cachecontrolrZpip._vendor.requests.adaptersrrZpip._vendor.requests.modelsrZpip._vendor.requests.structuresr    Zpip._vendor.six.moves.urllibr
rÈZpip._vendor.urllib3.exceptionsr r3r Úpip._internal.network.authr Úpip._internal.network.cacherÚpip._internal.utils.compatrrÚpip._internal.utils.glibcrÚpip._internal.utils.miscrrrÚpip._internal.utils.typingrÚpip._internal.utils.urlsrÚtypingrrrrrÚpip._internal.models.linkrr=ÚintZ SecureOriginÚ    getLoggerr–r¼ÚfilterwarningsrÂr1r2rtrur™r£ÚSessionr¤r-r-r-r.Ú<module>sV            
÷  P!