Re@sdZddlZddlZddlZddlZddlmZddlmZddl 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|jdSWntttfk r6dSYnXdS)Nzcontent-length)intheaders ValueErrorKeyError TypeError)respr/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/network/download.py_get_http_response_size%srcCst|}|jtjkr*|j}n |j}t|}|r]dj|t|}t |r|t j d|nt j d|t j t jkrd}n?t |rd}n*|sd}n|d krd}nd}t|t}|s|St|d||S) Nz{} ({})zUsing cached %szDownloading %sFT(imaxi@)rnetlocrfile_storage_domainshow_urlurl_without_fragmentr formatr rloggerinfogetEffectiveLevelloggingINFOr rr)rlink progress_bar total_lengthurl logged_url show_progresschunksrrr_prepare_download-s2            r/cCstjj|S)zJ Sanitize the "filename" value from a Content-Disposition header. )ospathbasename)filenamerrrsanitize_content_filenameYsr4cCs@tj|\}}|jd}|r6t|}|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}|r0t||}t|d}|sttj|jjdd}|rt||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   rBcCsB|jjddd}|j|dtdd}t||S)N#r=rrstreamT)r+splitr7rr)sessionr( target_urlrrrr_http_get_downloads rHc@seZdZddZdS)DownloadcCs||_||_||_dS)N)responser3r.)selfrJr3r.rrr__init__s  zDownload.__init__N)__name__ __module__ __qualname__rLrrrrrIs rIc@s(eZdZddZddZdS) DownloadercCs||_||_dS)N)_session _progress_bar)rKrFr)rrrrLs zDownloader.__init__cCsyt|j|}WnVtk rn}z6|jdk s@ttjd|jj|WYdd}~XnXt|t ||t |||j S)NzHTTP error %s while getting %s) rHrQrrJAssertionErrorr#critical status_coderIrBr/rR)rKr(rerrr__call__s zDownloader.__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      ,