3 Re@s*dZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZmZmZdd lmZmZmZdd lmZerdd lmZmZdd lmZdd lmZddlm Z ej!e"Z#ddZ$ddZ%ddZ&ddZ'ddZ(ddZ)Gddde*Z+Gddde*Z,dS)z)Download files with progress indicators. N)CONTENT_CHUNK_SIZE)DownloadProgressProvider)NetworkConnectionError)PyPI) is_from_cache)HEADERSraise_for_statusresponse_chunks) format_sizeredact_auth_from_urlsplitext)MYPY_CHECK_RUNNING)IterableOptional)Response)Link) PipSessionc Cs.yt|jdStttfk r(dSXdS)Nzcontent-length)intheaders ValueErrorKeyError TypeError)respr/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/network/download.py_get_http_response_size%srcCst|}|jtjkr|j}n|j}t|}|r>dj|t|}t |rTt j d|n t j d|t j t jkrtd}n*t |rd}n|sd}n|d krd}nd}t|t}|s|St||d|S) Nz{} ({})zUsing cached %szDownloading %sFT(i)maxi@)rnetlocrfile_storage_domainshow_urlurl_without_fragmentr formatr rloggerinfogetEffectiveLevelloggingINFOr rr)rlink progress_bar total_lengthurl logged_url show_progresschunksrrr_prepare_download-s2   r/cCs tjj|S)zJ Sanitize the "filename" value from a Content-Disposition header. )ospathbasename)filenamerrrsanitize_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_headergetr4)content_dispositiondefault_filename_typeparamsr3rrrparse_content_dispositionas  r<cCs|j}|jjd}|r t||}t|d}|sPtj|jjdd}|rP||7}| r|j|jkrtj j|jd}|r||7}|S)zoGet an ideal filename from the given HTTP response, falling back to the link filename if not provided. zcontent-dispositionz content-type) r3rr7r<r mimetypesguess_extensionr+r0r1)rr(r3r8extrrr_get_http_response_filenameps   rBcCs.|jjddd}|j|tdd}t||S)N#r=rT)rstream)r+splitr7rr)sessionr( target_urlrrrr_http_get_downloadsrHc@seZdZddZdS)DownloadcCs||_||_||_dS)N)responser3r.)selfrJr3r.rrr__init__szDownload.__init__N)__name__ __module__ __qualname__rLrrrrrIsrIc@seZdZddZddZdS) DownloadercCs||_||_dS)N)_session _progress_bar)rKrFr)rrrrLszDownloader.__init__cCsryt|j|}WnDtk rT}z(|jdk s0ttjd|jj|WYdd}~XnXt|t ||t |||j S)NzHTTP error %s while getting %s) rHrQrrJAssertionErrorr#critical status_coderIrBr/rR)rKr(rerrr__call__szDownloader.__call__N)rMrNrOrLrWrrrrrPs rP)-__doc__r5r&r?r0Zpip._vendor.requests.modelsrpip._internal.cli.progress_barsrpip._internal.exceptionsrpip._internal.models.indexrpip._internal.network.cacherpip._internal.network.utilsrrr pip._internal.utils.miscr r r pip._internal.utils.typingr typingrrrpip._internal.models.linkrpip._internal.network.sessionr getLoggerrMr#rr/r4r<rBrHobjectrIrPrrrrs4          ,