3 ”Reã@s*dZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZmZmZdd lmZmZmZdd lmZerÌdd lmZmZdd lmZdd lmZddlm Z ej!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 Cs.yt|jdƒStttfk r(dSXdS)Nzcontent-length)ÚintÚheadersÚ ValueErrorÚKeyErrorÚ TypeError)Úresp©rú�/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/network/download.pyÚ_get_http_response_size%srcCsÀt|ƒ}|jtjkr|j}n|j}t|ƒ}|r>dj|t|ƒƒ}t |ƒrTt j d|ƒn t j d|ƒt j ƒt jkrtd}n*t |ƒr‚d}n|sŒd}n|d kršd}nd}t|tƒ}|s°|St||d�|ƒS) Nz{} ({})zUsing cached %szDownloading %sFTé(iè)Úmaxi@œ)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-s2   r/cCs tjj|ƒS)zJ Sanitize the "filename" value from a Content-Disposition header. )ÚosÚpathÚbasename)ÚfilenamerrrÚsanitize_content_filenameYsr4cCs,tj|ƒ\}}|jdƒ}|r$t|ƒ}|p*|S)zƒ Parse the "filename" value from a Content-Disposition header, and return the default filename if the result is empty. r3)ÚcgiÚ parse_headerÚgetr4)Úcontent_dispositionÚdefault_filenameÚ_typeÚparamsr3rrrÚparse_content_dispositionas  r<cCs„|j}|jjdƒ}|r t||ƒ}t|ƒd}|sPtj|jjddƒƒ}|rP||7}| r€|j|jkr€tj j|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Ú) r3rr7r<r Ú mimetypesÚguess_extensionr+r0r1)rr(r3r8ÚextrrrÚ_get_http_response_filenameps   rBcCs.|jjddƒd}|j|tdd�}t|ƒ|S)Nú#r=rT)rÚstream)r+Úsplitr7rr)Úsessionr(Ú target_urlrrrrÚ_http_get_downloadˆsrHc@seZdZdd„ZdS)ÚDownloadcCs||_||_||_dS)N)Úresponser3r.)ÚselfrJr3r.rrrÚ__init__‘szDownload.__init__N)Ú__name__Ú __module__Ú __qualname__rLrrrrrI�srIc@seZdZdd„Zdd„ZdS)Ú DownloadercCs||_||_dS)N)Ú_sessionÚ _progress_bar)rKrFr)rrrrLžszDownloader.__init__cCsryt|j|ƒ}WnDtk rT}z(|jdk s0t‚tjd|jj|ƒ‚WYdd}~XnXt|t ||ƒt |||j ƒƒS)NzHTTP error %s while getting %s) rHrQrrJÚAssertionErrorr#ÚcriticalÚ status_coderIrBr/rR)rKr(rÚerrrÚ__call__§szDownloader.__call__N)rMrNrOrLrWrrrrrP�s rP)-Ú__doc__r5r&r?r0Zpip._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/r4r<rBrHÚobjectrIrPrrrrÚs4          ,