\h dZddlZddlZddlZddlZddlmZmZm Z ddl m Z m Z ddl mZddlmZddlmZddlmZdd lmZdd lmZdd lmZmZmZdd lmZmZm Z ejBe"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.y)z)Download files with progress indicators. N)IterableOptionalTuple)CONTENT_CHUNK_SIZEResponse)get_download_progress_renderer)NetworkConnectionError)PyPI)Link) is_from_cache) PipSession)HEADERSraise_for_statusresponse_chunks) format_sizeredact_auth_from_urlsplitextrespreturnch t|jdS#tttf$rYywxYw)Nzcontent-length)intheaders ValueErrorKeyError TypeError)rs a/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_internal/network/download.py_get_http_response_sizers54<< 0122 ) ,s 11link progress_barc t|}|jtjk(r |j}n |j }t |}|r|dt|d}t|rtjd|ntjd|tjtjkDrd}nt|rd}n|sd}n |dkDrd}nd}t|t}|s|St!||}||S) Nz ()zUsing cached %szDownloading %sFTi@)bar_typesize)rnetlocr file_storage_domainshow_urlurl_without_fragmentrrr loggerinfogetEffectiveLevelloggingINFOrrr) rrr total_lengthurl logged_url show_progresschunksrenderers r_prepare_downloadr3s +40L {{d...mm''%c*J"|2k,&?%@B T %z2 $j1 !GLL0 t    #  T#5 6F  -|,WH F filenamec@tjj|S)zJ Sanitize the "filename" value from a Content-Disposition header. )ospathbasename)r5s rsanitize_content_filenamer:Hs 77  H %%r4content_dispositiondefault_filenamectjj}||d<|jd}|rt t |}|xs|S)z Parse the "filename" value from a Content-Disposition header, and return the default filename if the result is empty. content-typer5)emailmessageMessage get_paramr:str)r;r<mr5s rparse_content_dispositionrEOsM  A+An{{:&H-S];  '''r4c|j}|jjd}|r t||}t |d}|s6t j |jjdd}|r||z }|sL|j|jk7r3tjj |jd}|r||z }|S)zoGet an ideal filename from the given HTTP response, falling back to the link filename if not provided. zcontent-dispositionr>) r5rgetrEr mimetypesguess_extensionr.r7r8)rrr5r;exts r_get_http_response_filenamerM^s}}H,,**+@A,-@(K!(+A.C '' (8(8(LM  OH 488txx'ggtxx(+  OH Or4sessionc|jjddd}|j|td}t ||S)N#rGrT)rstream)r.splitrIrr)rNr target_urlrs r_http_get_downloadrTss<Q'*J ;;z74; @DT Kr4c>eZdZdededdfdZdededeeeffdZy) DownloaderrNrrNc ||_||_yN_session _progress_barselfrNrs r__init__zDownloader.__init__{   )r4rlocationc t|j|}t||}tjj||}t|||j}t|d5}|D]} |j|  ddd|jj!dd} || fS#t$r?}|jJtj d|jj |d}~wwxYw#1swYtxYw)z.Download the file given by link into location.NHTTP error %s while getting %swb Content-TyperHrTrZr responser(critical status_coderMr7r8joinr3r[openwriterrI) r]rr`rer5filepathr1 content_filechunk content_types r__call__zDownloader.__call__s %dmmT:D/tT:77<<(3"4t/A/AB (D ! *\ *""5) * *||''; %%& ::) )) OO0!**2H2H$     * *s#B)'C4) C12:C,,C14C=) __name__ __module__ __qualname__r rCr^r rrqr4rrVrVzsE***  *&T&S&U38_&r4rVc TeZdZdededdfdZdeededeeeeeefffdZ y) BatchDownloaderrNrrNc ||_||_yrXrYr\s rr^zBatchDownloader.__init__r_r4linksr`c# K|D]} t|j|}t||}tjj||}t|||j}t|d5} |D]} | j|  ddd|jj!dd} ||| ffy#t$r?}|jJtj d|jj |d}~wwxYw#1swY{xYww)z0Download the files given by links into location.NrbrcrdrHre) r]ryr`rrrlr5rmr1rnrorps rrqzBatchDownloader.__call__s  1D )$-->34>Hww||Hh7H&tT43E3EFFh% .#.E &&u-. . <<++NB?L<00 0) 1* zz---4JJ**   . .s@DB7AD.D/D7 C?:C::C??DD D) rrrsrtr rCr^rr rrqrur4rrwrws[***  *1d^1/21 %eCHo-. /1r4rw)/__doc__ email.messager?r+rJr7typingrrrpip._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 getLoggerrrr(rrrCbytesr3r:rErMrTrVrwrur4rrs  ,,DJ;+*54RRPP   8 $(x}' ' ''e_ 'T&&& (3 (# (RU (hds* $8&&>!1!1r4