x}@d dZddlZddlZddlZddlZddlmZmZmZddl m Z m Z ddl m Z ddlmZddlmZddlmZdd lmZdd lmZdd lmZmZmZdd lmZmZmZej e!Z"d e dee#fdZ$d e dede%dee&fdZ'de%de%fdZ(de%de%de%fdZ)d e dede%fdZ*dedede fdZ+GddZ,GddZ-dS)z)Download files with progress indicators. N)IterableOptionalTuple)CONTENT_CHUNK_SIZEResponse)DownloadProgressProvider)NetworkConnectionError)PyPI)Link) is_from_cache) PipSession)HEADERSraise_for_statusresponse_chunks) format_sizeredact_auth_from_urlsplitextrespreturnct t|jdS#tttf$rYdSwxYw)Nzcontent-length)intheaders ValueErrorKeyError TypeError)rs /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/network/download.py_get_http_response_sizersF4< 01222 ) ,tts 77link progress_barcZt|}|jtjkr|j}n|j}t |}|r#d|t|}t|rt d|nt d|t tjkrd}n"t|rd}n|sd}n |dkrd}nd}t|t }|s|St#|||S)Nz{} ({})zUsing cached %szDownloading %sFTi@)max)rnetlocr file_storage_domainshow_urlurl_without_fragmentrformatrr loggerinfogetEffectiveLevelloggingINFOrrr)rrr total_lengthurl logged_url show_progresschunkss r_prepare_downloadr1s: +400L {d...m'%c**JM%%j+l2K2KLL T2 %z2222 $j111 !!GL00 t     # #  T#5 6 6F  C #Ll C C CF K KKfilenamec@tj|S)zJ Sanitize the "filename" value from a Content-Disposition header. )ospathbasename)r3s rsanitize_content_filenamer8Gs 7  H % %%r2content_dispositiondefault_filenamectj|\}}|d}|rt|}|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_headergetr8)r9r:_typeparamsr3s rparse_content_dispositionrANsM $%899ME6zz*%%H7-X66  '''r2c|j}|jd}|rt||}t |d}|s4t j|jdd}|r||z }|sA|j|jkr1tj |jd}|r||z }|S)zoGet an ideal filename from the given HTTP response, falling back to the link filename if not provided. zcontent-dispositionz content-type) r3rr>rAr mimetypesguess_extensionr-r5r6)rrr3r9exts r_get_http_response_filenamerH\s}H,**+@AAL,-@(KK!(++A.C ' (8(8(L(LMM   OH 48tx''gtx((+   OH Or2sessionc|jddd}||td}t ||S)N#rCrT)rstream)r-splitr>rr)rIr target_urlrs r_http_get_downloadrOqsFQ''*J ;;z74; @ @DT Kr2cFeZdZdededdfdZdededeeeffdZdS) DownloaderrIrrNc"||_||_dSN_session _progress_barselfrIrs r__init__zDownloader.__init__y   )r2rlocationc t|j|}nB#t$r5}|jJtd|jj|d}~wwxYwt||}tj ||}t|||j }t|d5}|D]} ||  dddn #1swxYwY|jdd} || fS)z.Download the file given by link into location.NHTTP error %s while getting %swb Content-TyperDrOrUr responser'critical status_coderHr5r6joinr1rVopenwriterr>) rXrr[rer3filepathr0 content_filechunk content_types r__call__zDownloader.__call__sY %dmT::DD%   :))) OO0!*2H$      /tT::7<<(33"4t/ABB (D ! ! *\ * *""5)))) * * * * * * * * * * * * * * * *|'';; %%s& A0AA0CCC) __name__ __module__ __qualname__r strrYr rrlr2rrQrQxsu***  ****&T&S&U38_&&&&&&r2rQc neZdZdededdfdZdeededeeeeeefffdZ dS) BatchDownloaderrIrrNc"||_||_dSrSrTrWs rrYzBatchDownloader.__init__rZr2linksr[c#"K|D]} t|j|}nB#t$r5}|jJtd|jj|d}~wwxYwt||}tj ||}t|||j }t|d5} |D]} | |  dddn #1swxYwY|jdd} ||| ffV dS)z0Download the files given by links into location.Nr]r^r_rDr`) rXrur[rrrgr3rhr0rirjrks rrlzBatchDownloader.__call__s 1 1D )$->>)   z---4J*  34>>Hw||Hh77H&tT43EFFFh%% .#..E &&u----. . . . . . . . . . . . . . . . <++NB??L<00 0 0 0 0) 1 1s& A0AA7CC# &C# ) rmrnror rprYrr rrlrqr2rrsrss***  ****1d^1/21 %eCHo-. /111111r2rs).__doc__r<r*rEr5typingrrrpip._vendor.requests.modelsrrpip._internal.cli.progress_barsrpip._internal.exceptionsr pip._internal.models.indexr pip._internal.models.linkr pip._internal.network.cacher pip._internal.network.sessionr pip._internal.network.utilsrrrpip._internal.utils.miscrrr getLoggerrmr'rrrpbytesr1r8rArHrOrQrsrqr2rrs  ,,,,,,,,,,DDDDDDDDDDDDDD;;;;;;++++++******555555444444RRRRRRRRRRPPPPPPPPPP  8 $ $(x}&L &L &L&Le_ &L&L&L&LR&&&&&& (3 (# (RU ( ( ( (hds* $8&&&&&&&&>!1!1!1!1!1!1!1!1!1!1r2