L%UdZddlmZddlZddlZddlZddlZddlm Z m Z ddl m Z ddl mZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZmZddlm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'm(Z(ddl)m*Z*m+Z+ddl,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2m3Z3ej4e5Z6d/dZ7d0dZ8 d1d2d#Z9d3d&Z:d4d)Z;d5d*ZdS)6z(Download files with progress indicators.) annotationsN)IterableMapping) dataclass) HTTPStatus)BinaryIO)PreparedRequest)Response) HTTPResponse)HTTPHeaderDict)ReadTimeoutError)BarTypeget_download_progress_renderer)IncompleteDownloadErrorNetworkConnectionError)PyPI)Link) SafeFileCache is_from_cache)CacheControlAdapter PipSession)HEADERSraise_for_statusresponse_chunks) format_sizeredact_auth_from_urlsplitextrespr return int | Nonect t|jdS#tttf$rYdSwxYw)Ncontent-length)intheaders ValueErrorKeyError TypeErrorrs p/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pip/_internal/network/download.py_get_http_response_sizer* sF4< 01222 ) ,tts 77 str | Nonech|jd|jdS)z Return either the ETag or Last-Modified header (or None if neither exists). The return value can be used in an If-Range header. etagz last-modified)r$getr(s r)(_get_http_response_etag_or_last_modifiedr/'s, <  FDL$4$4_$E$E F FFlinkr progress_barr total_length range_startIterable[bytes]c|jtjkr|j}n|j}t |}|r=|r&|dt |dt |d}n|dt |d}t|rt d|n9|rt d|nt d|t tj krd}n"t|rd}n|sd}n |d krd}nd}t|}|s|St||| } | |S) Nz (/)zUsing cached %szResuming download %szDownloading %sFTi)bar_typesizeinitial_progress)netlocrfile_storage_domainshow_urlurl_without_fragmentrrrloggerinfogetEffectiveLevelloggingINFOrr) rr1r2r3r4url logged_url show_progresschunksrenderers r) _log_downloadrJ/s {d...m'%c**JG  GXX[!9!9XXK #A99A> first_respc>|j|jkr'|r|jJ|xjdz c_tdt |jt |j|j |||}|j tj k}|r*| t||_|}|||n#tt t"f$rYwxYw|j|jkr||r-t%j|jjt-||jdkr|||dSdS)zAAttempt to resume/restart the download if connection was dropped.Nr]z > > > > # "sA.C66DDoriginal_responsec|jj}|j|}t |t st d|dSt |jts Jdt}| d|it}|j D] \}}|dvr|||<!t!|j|d<t%d|d d } |j|} |jj|| d } |j| | |jt5|jjd 5} |j| | dddn #1swxYwYt d|dS)an Manually cache a file that was successfully downloaded via resume retries. cachecontrol doesn't cache 206 (Partial Content) responses, since they are not complete files. This method manually adds the final file to the cache as though it was downloaded in a single request, so that future requests can use the cache. zH$;>>>B,OO O: -",GJ ~~hmW555r0r$Mapping[str, str]c|j} |j||d}t|nB#t$r5}|jJt d|jj|d}~wwxYw|S)NT)r$streamzHTTP error %s while getting %s) r?rr.rrresponser@criticalr)rlr1r$ target_urlrrs r)rzDownloader._http_getKs.  =$$Z$NND T " " " "%   :))) OO0!*2H$        s,6 A50A00A5N)rrr2rrr#rrp)rrrrLrr)r1rrrLrr)rrdrr rrp)rrdrr rrp)rrdrr rrp)rrdrr rr )r1rr$rrr ) ryrzr{rrrrrrrrrr~r0r)rrs . . . .1111 & & & &FFFF&&?&?&?&?P6 6 6 6 p 6 6 6 6BI       r0r)rr rr )rr rr+)r) rr r1rr2rr3r r4r rr5)rKrLrrL)rRrLrSrLrrL)rr r1rrrL)?r| __future__r email.messagerVrCr_rNcollections.abcrr dataclassesrhttprtypingrpip._vendor.requestsr pip._vendor.requests.modelsr pip._vendor.urllib3r r pip._vendor.urllib3._collectionsr pip._vendor.urllib3.exceptionsr pip._internal.cli.progress_barsrrpip._internal.exceptionsrrpip._internal.models.indexrpip._internal.models.linkrpip._internal.network.cacherrpip._internal.network.sessionrrpip._internal.network.utilsrrrpip._internal.utils.miscrrr getLoggerryr@r*r/rJrQr[rbrdrr~r0r)rs.."""""" --------!!!!!!000000000000??????;;;;;;;;;;;;SSSSSSSSTTTTTTTT++++++******DDDDDDDDIIIIIIIIRRRRRRRRRRPPPPPPPPPP  8 $ $GGGG 00000f&&&& ( ( ( (*          .qqqqqqqqqqr0