zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
H=®dã@s*dZddlZddlZddlZddlZddlmZddlmZddl    m
Z
ddl m Z ddl mZddlmZmZmZdd    lmZmZmZdd
lmZerÌdd lmZmZdd lmZdd lmZddlm Z e !e"¡Z#dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(dd„Z)Gdd„de*ƒZ+Gdd„de*ƒZ,dS)z)Download files with progress indicators.
éN)ÚCONTENT_CHUNK_SIZE)ÚDownloadProgressProvider)ÚNetworkConnectionError)ÚPyPI)Ú is_from_cache)ÚHEADERSÚraise_for_statusÚresponse_chunks)Ú format_sizeÚredact_auth_from_urlÚsplitext)ÚMYPY_CHECK_RUNNING)ÚIterableÚOptional)ÚResponse)ÚLink)Ú
PipSessionc
Cs2zt|jdƒWStttfk
r,YdSXdS)Nzcontent-length)ÚintÚheadersÚ
ValueErrorÚKeyErrorÚ    TypeError)Úresp©rúUD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/network/download.pyÚ_get_http_response_size%srcCsÀt|ƒ}|jtjkr|j}n|j}t|ƒ}|r>d |t|ƒ¡}t    |ƒrTt
  d|¡n t
  d|¡t
  ¡t jkrtd}n*t    |ƒr‚d}n|sŒd}n|dkršd}nd}t|tƒ}|s°|St||d|ƒS)Nz{} ({})zUsing cached %szDownloading %sFTi@œ)Úmax)rÚnetlocrÚfile_storage_domainÚshow_urlÚurl_without_fragmentr Úformatr
rÚloggerÚinfoÚgetEffectiveLevelÚloggingÚINFOr    rr)rÚlinkÚ progress_barÚ total_lengthÚurlÚ
logged_urlÚ show_progressÚchunksrrrÚ_prepare_download-s8  
ÿþr.cCs tj |¡S)zJ
    Sanitize the "filename" value from a Content-Disposition header.
    )ÚosÚpathÚbasename)ÚfilenamerrrÚsanitize_content_filenameYsr3cCs,t |¡\}}| d¡}|r$t|ƒ}|p*|S)zƒ
    Parse the "filename" value from a Content-Disposition header, and
    return the default filename if the result is empty.
    r2)ÚcgiÚ parse_headerÚgetr3)Úcontent_dispositionÚdefault_filenameÚ_typeÚparamsr2rrrÚparse_content_dispositionas
 
r;cCs‚|j}|j d¡}|r t||ƒ}t|ƒd}|sPt |j dd¡¡}|rP||7}|s~|j|jkr~tj     |j¡d}|r~||7}|S)zoGet an ideal filename from the given HTTP response, falling back to
    the link filename if not provided.
    zcontent-dispositionéz content-typeÚ)
r2rr6r;r Ú    mimetypesÚguess_extensionr*r/r0)rr'r2r7ÚextrrrÚ_get_http_response_filenameps  
  ÿrAcCs.|j dd¡d}|j|tdd}t|ƒ|S)Nú#r<rT)rÚstream)r*Úsplitr6rr)Úsessionr'Ú
target_urlrrrrÚ_http_get_downloadˆsrGc@seZdZdd„ZdS)ÚDownloadcCs||_||_||_dS©N)Úresponser2r-)ÚselfrJr2r-rrrÚ__init__‘szDownload.__init__N)Ú__name__Ú
__module__Ú __qualname__rLrrrrrHsrHc@seZdZdd„Zdd„ZdS)Ú
DownloadercCs||_||_dSrI)Ú_sessionÚ _progress_bar)rKrEr(rrrrLžszDownloader.__init__c
Csrzt|j|ƒ}WnDtk
rT}z&|jdk    s0t‚t d|jj|¡‚W5d}~XYnXt|t    ||ƒt
|||j ƒƒS)NzHTTP error %s while getting %s) rGrQrrJÚAssertionErrorr"ÚcriticalÚ status_coderHrAr.rR)rKr'rÚerrrÚ__call__§sÿ ýzDownloader.__call__N)rMrNrOrLrWrrrrrPs    rP)-Ú__doc__r4r%r>r/Zpip._vendor.requests.modelsrÚpip._internal.cli.progress_barsrÚpip._internal.exceptionsrÚpip._internal.models.indexrÚpip._internal.network.cacherÚpip._internal.network.utilsrrr    Úpip._internal.utils.miscr
r r Úpip._internal.utils.typingr ÚtypingrrrÚpip._internal.models.linkrÚpip._internal.network.sessionrÚ    getLoggerrMr"rr.r3r;rArGÚobjectrHrPrrrrÚ<module>s4         
,