a RaYA@sUdZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl ZddlZddlmZmZmZmZmZmZmZmZmZddlmZmZddlmZddlm Z m!Z!ddl"m#Z#m$Z$ddl%m&Z&dd l'm(Z(dd l)m*Z*dd l+m,Z,dd l-m.Z.dd l/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8ddl9m:Z:m;Z;ddle?Z@eeAeAeeeBeAffZCejDde*dgdZEeeCeFd<dZGeHdddZIeAdddZJGddde ZKGd d!d!e!ZLGd"d#d#eZMGd$d%d%ejNZOdS)&zhPipSession and supporting code, containing all pip-specific network request configuration and behavior. N) AnyDictIteratorListMappingOptionalSequenceTupleUnion)requestsurllib3)CacheControlAdapter) BaseAdapter HTTPAdapter)PreparedRequestResponse)CaseInsensitiveDict)ConnectionPool)InsecureRequestWarning) __version__)get_default_environment)Link)MultiDomainBasicAuth) SafeFileCache)has_tls)libc_ver)build_url_from_netloc parse_netloc) url_to_pathignore)category))https*r")r"Z localhostr")r"z 127.0.0.0/8r")r"z::1/128r")filer"N)Zsshr"r"SECURE_ORIGINS)Z BUILD_BUILDIDZBUILD_IDZCIZ PIP_IS_CIreturncCstddtDS)z? Return whether it looks like pip is running under CI. css|]}|tjvVqdSN)osenviron).0namer,N/opt/alt/python39/lib/python3.9/site-packages/pip/_internal/network/session.py Xz looks_like_ci..)anyCI_ENVIRONMENT_VARIABLESr,r,r,r- looks_like_ciQsr2c Csdtdtdtid}|dddkr@t|dd<n|dddkrtj}|jd krl|d d }d d d|D|dd<nB|dddkrt|dd<n |dddkrt|dd<tjdrRddl m }| | | f}ttddtgd|}ttddtddgt}|rD||d<|rR||d<tjdrtdrdtdd|d<trt|did<trt|did<trt|d<trdd l}|j|d <td!}|d urt|j |d"<td#d urvztj d#d$gtj!d%d&}Wnt"yRYn$0|d'rv|#d(d)$|d*<t%rd+nd |d,<t&j'(d-} | d ur| |d.<d/j)|t*j+|d0d+d1d2S)3z6 Return a string representing the user agent. pip)r+versionr+)Z installerZpythonimplementationr5ZCPythonr4ZPyPyfinalN.cSsg|] }t|qSr,)str)r*xr,r,r- nr/zuser_agent..ZJythonZ IronPythonZlinuxr)distrocSs|dSNr,r:r,r,r-}r/zuser_agent..)r+r4idcSs|dSr=r,r?r,r,r-r@r/liblibcr<darwinZmacOSsystemreleaseZcpuZopenssl_versionZ setuptoolsZsetuptools_versionZrustcz --versiong?)stderrtimeoutsrustc  r>Z rustc_versionTZciZPIP_USER_AGENT_USER_DATA user_dataz9{data[installer][name]}/{data[installer][version]} {json}),:)Z separatorsZ sort_keys)datajson),rplatformZpython_versionZpython_implementationsyspypy_version_info releaseleveljoin startswith pip._vendorr<r+r4ZcodenamedictfilterziprZmac_verrE setdefaultrFmachinerZ_sslZOPENSSL_VERSIONrZget_distributionr9shutilZwhich subprocessZ check_outputZSTDOUT Exceptionsplitdecoder2r(r)getformatrNdumps) rMrQr<Zlinux_distributionZ distro_infosrCZsslZsetuptools_distZ rustc_outputrJr,r,r- user_agent[s                rcc @sreZdZd eeeeeeeeffeee feee ee e ffee e e fe dddZ dddd Z dS) LocalFSAdapterFNT)requeststreamrHverifycertproxiesr&c Cst|j}t}d|_|j|_zt|} WnTty} zrL)loggerinforrappendrrr)r~rrrmsg host_portr,r,r-rZs$     zPipSession.add_trusted_hostr%ccs6tEdH|jD] \}}d||dur(dn|fVqdS)Nr")r$r)r~rportr,r,r-iter_secure_originsys zPipSession.iter_secure_origins)locationr&c Cstjt|}|j|j|j}}}|ddd}|D]}|\}}} ||kr^|dkr^q>zt |} t |} Wn2t y|r| | kr|dkrYq>Yn 0| | vrq>|| kr| dkr| durq>dStd||dS)N+r>r"TzThe 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)urllibparseurlparser9rhostnamerrsplitr ipaddressZ ip_addressZ ip_network ValueErrorlowerrZwarning) r~rparsedZorigin_protocolZ origin_hostZ origin_portZ secure_originZsecure_protocolZ secure_hostZ secure_portZaddrZnetworkr,r,r-is_secure_origin~sJ       zPipSession.is_secure_origin)methodrmrrr&cs*|d|jtj||g|Ri|S)NrH)rYrHrre)r~rrmrrrr,r-reszPipSession.request)NF)rqrrrHrint__annotations__rr9rrrrrrr SecureOriginrrrrrerr,r,rr-rs.  M  Cr)P__doc__Z email.utilsrwrsrrNZloggingryr(rOr[r\rP urllib.parserwarningstypingrrrrrrrr r rUr r Zpip._vendor.cachecontrolr Zpip._vendor.requests.adaptersrrZpip._vendor.requests.modelsrrZpip._vendor.requests.structuresrZ"pip._vendor.urllib3.connectionpoolrZpip._vendor.urllib3.exceptionsrr3rZpip._internal.metadatarZpip._internal.models.linkrZpip._internal.network.authrZpip._internal.network.cacherZpip._internal.utils.compatrZpip._internal.utils.glibcrZpip._internal.utils.miscrrZpip._internal.utils.urlsrZ getLoggerrqrr9rrfilterwarningsr$rr1rr2rcrdrrZSessionrr,r,r,r-sR,               e,