zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
U
H=®d¡#ã@sæddlmZddlZddlZddlmZmZmZddlmZddl    m
Z
m Z m Z ddl mZddlmZddlmZdd    lmZdd
lmZer¤dd lmZmZmZzdd lmZWnek
rÌdZYnXd d„Zee e
ƒZGdd„deƒZ Gdd„de
ƒZ!Gdd„de ƒZ"Gdd„deƒZ#Gdd„deƒZ$Gdd„de$e e#ƒZ%Gdd„de%eƒZ&Gdd„de%e!ƒZ'Gdd „d e%e
ƒZ(Gd!d"„d"e%e ƒZ)Gd#d$„d$e%e"ƒZ*Gd%d&„d&e$e e#eƒZ+e'e'fe&e+fe(e+fe)e+fe*e+fd'œZ,d*d(d)„Z-dS)+é)ÚdivisionN)ÚSIGINTÚdefault_int_handlerÚsignal)Úsix)ÚBarÚFillingCirclesBarÚIncrementalBar)ÚSpinner)ÚWINDOWS)Úget_indentation)Ú format_size)ÚMYPY_CHECK_RUNNING)ÚAnyÚDictÚList)ÚcoloramacCs„t|jddƒ}|s|St|dt ¡ƒt|dt ¡ƒg}|tt|dgƒƒ7}zt ¡ |¡ |¡Wntk
rz|YSX|SdS)NÚencodingÚ
empty_fillÚfillÚphases)ÚgetattrÚfilerÚ    text_typeÚlistÚjoinÚencodeÚUnicodeEncodeError)Ú    preferredÚfallbackrÚ
characters©r!úVD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/cli/progress_bars.pyÚ_select_progress_classsþ
r#cs4eZdZdZ‡fdd„Z‡fdd„Zdd„Z‡ZS)ÚInterruptibleMixinaÂ
    Helper to ensure that self.finish() gets called on keyboard interrupt.
 
    This allows downloads to be interrupted without leaving temporary state
    (like hidden cursors) behind.
 
    This class is similar to the progress library's existing SigIntMixin
    helper, but as of version 1.2, that helper has the following problems:
 
    1. It calls sys.exit().
    2. It discards the existing SIGINT handler completely.
    3. It leaves its own handler in place even after an uninterrupted finish,
       which will have unexpected delayed effects if the user triggers an
       unrelated keyboard interrupt some time after a progress-displaying
       download has already completed, for example.
    cs4tt|ƒj||Žtt|jƒ|_|jdkr0t|_dS)z=
        Save the original SIGINT handler for later.
        N)Úsuperr$Ú__init__rrÚ handle_sigintÚoriginal_handlerr©ÚselfÚargsÚkwargs©Ú    __class__r!r"r&Ls
þ
zInterruptibleMixin.__init__cstt|ƒ ¡tt|jƒdS)z½
        Restore the original SIGINT handler after finishing.
 
        This should happen regardless of whether the progress display finishes
        normally, or gets interrupted.
        N)r%r$Úfinishrrr(©r*r-r!r"r/aszInterruptibleMixin.finishcCs| ¡| ||¡dS)z²
        Call self.finish() before delegating to the original SIGINT handler.
 
        This handler should only be in place while the progress display is
        active.
        N)r/r()r*ÚsignumÚframer!r!r"r'lsz InterruptibleMixin.handle_sigint)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r&r/r'Ú __classcell__r!r!r-r"r$:s  r$c@seZdZdd„ZdS)Ú    SilentBarcCsdS©Nr!r0r!r!r"ÚupdateyszSilentBar.updateN)r3r4r5r:r!r!r!r"r8wsr8c@seZdZdZdZdZdZdS)Ú BlueEmojiBarú %(percent)d%%ú )u🔹u🔷u🔵N)r3r4r5ÚsuffixÚ
bar_prefixÚ
bar_suffixrr!r!r!r"r;~sr;csHeZdZ‡fdd„Zedd„ƒZedd„ƒZedd„ƒZd    d
„Z‡Z    S) ÚDownloadProgressMixincs,tt|ƒj||Ždtƒd|j|_dS)Nr=é)r%rAr&r Úmessager)r-r!r"r&ˆs
þÿþzDownloadProgressMixin.__init__cCs
t|jƒSr9)r Úindexr0r!r!r"Ú
downloaded“sz DownloadProgressMixin.downloadedcCs |jdkrdStd|jƒdS)Ngz...éz/s)Úavgr r0r!r!r"Údownload_speed˜s
z$DownloadProgressMixin.download_speedcCs|jrd |j¡SdS)Nzeta {}Ú)ÚetaÚformatÚeta_tdr0r!r!r"Ú
pretty_eta s z DownloadProgressMixin.pretty_etaccs*|D]}|V| t|ƒ¡q| ¡dSr9)ÚnextÚlenr/)r*ÚitÚxr!r!r"Úiter§szDownloadProgressMixin.iter)
r3r4r5r&ÚpropertyrErHrMrRr7r!r!r-r"rA†s 
 
 
rAcseZdZ‡fdd„Z‡ZS)Ú WindowsMixincs\trˆjrdˆ_ttˆƒj||ŽtrXtrXt ˆj¡ˆ_‡fdd„ˆj_‡fdd„ˆj_    dS)NFcs ˆjj ¡Sr9)rÚwrappedÚisattyr!r0r!r"Ú<lambda>Èóz'WindowsMixin.__init__.<locals>.<lambda>cs ˆjj ¡Sr9)rrUÚflushr!r0r!r"rWÌrX)
r Ú hide_cursorr%rTr&rÚ AnsiToWin32rrVrYr)r-r0r"r&²s    
zWindowsMixin.__init__)r3r4r5r&r7r!r!r-r"rT°srTc@seZdZejZdZdZdS)ÚBaseDownloadProgressBarr<z0%(downloaded)s %(download_speed)s %(pretty_eta)sN)r3r4r5ÚsysÚstdoutrrCr>r!r!r!r"r\Ïsr\c@s eZdZdS)ÚDefaultDownloadProgressBarN©r3r4r5r!r!r!r"r_×sr_c@s eZdZdS)ÚDownloadSilentBarNr`r!r!r!r"raÜsrac@s eZdZdS)Ú DownloadBarNr`r!r!r!r"rbàsrbc@s eZdZdS)ÚDownloadFillingCirclesBarNr`r!r!r!r"rcåsrcc@s eZdZdS)ÚDownloadBlueEmojiProgressBarNr`r!r!r!r"rdêsrdc@s&eZdZejZdZdd„Zdd„ZdS)ÚDownloadProgressSpinnerz!%(downloaded)s %(download_speed)scCs"t|dƒst |j¡|_t|jƒS)NÚ_phaser)ÚhasattrÚ    itertoolsÚcyclerrfrNr0r!r!r"Ú
next_phaseõs
z"DownloadProgressSpinner.next_phasecCsN|j|}| ¡}|j|}d ||r*dnd||r6dnd|g¡}| |¡dS)NrIr=)rCrjr>rÚwriteln)r*rCÚphaser>Úliner!r!r"r:ûs
 
 
 
ûzDownloadProgressSpinner.updateN)    r3r4r5r]r^rr>rjr:r!r!r!r"reïsre)ÚoffÚonÚasciiÚprettyÚemojicCs8|dks|dkr t|dƒjSt|d|djSdS)NrrF)Úmax)Ú    BAR_TYPESrR)Ú progress_barrsr!r!r"ÚDownloadProgressProvidersrv)N).Ú
__future__rrhr]rrrÚ pip._vendorrÚpip._vendor.progress.barrrr    Úpip._vendor.progress.spinnerr
Úpip._internal.utils.compatr Úpip._internal.utils.loggingr Úpip._internal.utils.miscr Úpip._internal.utils.typingrÚtypingrrrrÚ    Exceptionr#Ú_BaseBarÚobjectr$r8r;rArTr\r_rarbrcrdrertrvr!r!r!r"Ú<module>sd       
 
=*ÿ ÿ ÿ ÿ ÿÿû