U n ah;@sdZddlZddlZddlZddlZddlZddlZddlZddl 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;ZdZ?ddZ@dd ZAGd!d"d"eZBGd#d$d$eZCGd%d&d&eZDGd'd(d(e jEZFdS))zhPipSession and supporting code, containing all pip-specific network request configuration and behavior. N)requestssixurllib3)CacheControlAdapter) BaseAdapter HTTPAdapter)Response)CaseInsensitiveDict)parse)InsecureRequestWarning) __version__)MultiDomainBasicAuth) SafeFileCache)has_tls ipaddress)libc_ver)build_url_from_netlocget_installed_version parse_netloc)MYPY_CHECK_RUNNING) url_to_path)IteratorListOptionalTupleUnion)Linkignore)category)https*r )r localhostr )r z 127.0.0.0/8r )r z::1/128r )filer N)sshr r ) BUILD_BUILDIDBUILD_IDCI PIP_IS_CIcCstddtDS)z? Return whether it looks like pip is running under CI. css|]}|tjkVqdSN)osenviron).0namer-^C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_internal\network\session.py `sz looks_like_ci..)anyCI_ENVIRONMENT_VARIABLESr-r-r-r. looks_like_ciXsr2cCsLdtdtdtid}|dddkr@t|dd<n|dddkrtjjd krltjd d }ntj}d d d|D|dd<nB|dddkrt|dd<n |dddkrt|dd<tjdrHddl m }t t ddt dddg|}t t ddt ddgt}|r:||d<|rH||d<tjdrztdrzdtdd|d<trt|did<trt|did<trt|d<trdd l}|j|d <td!}|d k r||d"<tr d#nd |d$<tjd%}|d k r2||d&<d'j|tj|d(d#d)d*S)+z6 Return a string representing the user agent. pip)r,versionr,) installerpythonimplementationr7CPythonr4PyPyfinalN.cSsg|] }t|qSr-)str)r+xr-r-r. wszuser_agent..Jython IronPythonlinuxr)distrocSs|dSNr-r>r-r-r.zuser_agent..idcSs|dSrDr-rFr-r-r.rGrHliblibcrCdarwinmacOSsystemreleasecpuopenssl_version setuptoolssetuptools_versionTciPIP_USER_AGENT_USER_DATA user_dataz9{data[installer][name]}/{data[installer][version]} {json}),:) separators sort_keys)datajson) r platformpython_versionpython_implementationsyspypy_version_info releaseleveljoin startswith pip._vendorrCdictfilterziplinux_distributionrmac_verrN setdefaultrOmachiner_sslOPENSSL_VERSIONrr2r)r*getformatr\dumps)r[rarC distro_infosrKsslrSrVr-r-r. user_agentcsn           rtc@seZdZdddZddZdS)LocalFSAdapterNc Cst|j}t}d|_|j|_zt|} Wn.tk rZ} zd|_| |_W5d} ~ XYnPXtj j | j dd} t |dp~d} t| | j| d|_t|d|_|jj|_|S) NiT)usegmtrz text/plain)z Content-TypezContent-Lengthz Last-Modifiedrb)rurlr status_coder)statOSErrorrawemailutils formatdatest_mtime mimetypes guess_typer st_sizeheadersopenclose) selfrequeststreamtimeoutverifycertproxiespathnamerespstatsexcmodified content_typer-r-r.sends&    zLocalFSAdapter.sendcCsdSr(r-)rr-r-r.rszLocalFSAdapter.close)NNNNN)__name__ __module__ __qualname__rrr-r-r-r.rus rucseZdZfddZZS)InsecureHTTPAdaptercstt|j||d|ddSNF)connryrr)superr cert_verifyrrryrr __class__r-r.rs  zInsecureHTTPAdapter.cert_verifyrrrr __classcell__r-r-rr.rsrcseZdZfddZZS)InsecureCacheControlAdaptercstt|j||d|ddSr)rrrrrr-r.rs  z'InsecureCacheControlAdapter.cert_verifyrr-r-rr.rsrcsFeZdZdZfddZd ddZddZd d Zfd d ZZ S) PipSessionNc s|dd}|dd}|dg}|dd}tt|j||g|_t|jd<t|d|_t j |d d d d gd d}t |d}|rt t ||d}tt ||d|_nt|d}||_|d||d||dt|D]} |j| ddqdS)zj :param trusted_hosts: Domains not to emit warnings for when not using HTTPS. retriesrcacheN trusted_hosts index_urlsz User-Agent)riiiig?)totalstatus_forcelistbackoff_factor) max_retries)rrzhttps://zhttp://zfile://T)suppress_logging)poprr__init__pip_trusted_originsrtrr authrRetryrrrr_trusted_host_adapterrmountruadd_trusted_host) rargskwargsrrrrinsecure_adaptersecure_adapterhostrr-r.rs<            zPipSession.__init__FcCs|s.d|}|dk r$|d|7}t|t|}||jkrL|j||t|d|j|ds|t|d|jdS)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) rploggerinforrappendrrr)rrsourcermsg host_portr-r-r.r4s"      zPipSession.add_trusted_hostccs<tD] }|Vq|jD] \}}d||dkr.dn|fVqdS)Nr )SECURE_ORIGINSr)r secure_originrportr-r-r.iter_secure_originsQszPipSession.iter_secure_originsc Cstt|}|j|j|j}}}|ddd}|D]}|\}}} ||kr\|dkr\qsV               P!