ó
    8.õg"(  ã                   ó  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSSK	J
r
  / SQrS\S\4S jr " S	 S
5      r " S S\
R                  \5      r " S S\
R                   \5      r " S S\
R"                  \5      rg)z'Progress reporting for text interfaces.é    N)ÚCallable)Úbase)ÚAcquireProgressÚCdromProgressÚ
OpProgressÚmsgÚreturnc                 ój   • [         R                  " U 5      nX:X  a  [         R                  " U S5      nU$ )z>Translate the message, also try apt if translation is missing.Úapt)Úapt_pkgÚgettext)r   Úress     Ú3/usr/lib/python3/dist-packages/apt/progress/text.pyÚ_r       s*   € ä
�/Š/˜#Ó
€CØ
ƒzÜ�oŠo˜c 5Ó)ˆØ€Jó    c            	       óf   • \ rS rSrSrSS\R                  S-  SS4S jjrSS\S\	S	\	SS4S
 jjr
Srg)ÚTextProgressé(   z.Internal Base class for text progress classes.NÚoutfiler	   c                 óN   • U=(       d    [         R                  U l        SU l        g )Nr   )ÚsysÚstdoutÚ_fileÚ_width©Úselfr   s     r   Ú__init__ÚTextProgress.__init__+   s   € Ø×*¤§
¡
ˆŒ
Øˆ�r   r   ÚnewlineÚmaximizec                 óÜ  • U R                   R                  S5        U R                   R                  U5        U R                  [        U5      :”  a5  U R                   R                  U R                  [        U5      -
  S-  5        O+U(       a$  [	        U R                  [        U5      5      U l        U(       a  U R                   R                  S5        gU R                   R                  5         g)z8Write the message on the terminal, fill remaining space.ÚÚ Ú
N)r   Úwriter   ÚlenÚmaxÚflush)r   r   r   r    s       r   Ú_writeÚTextProgress._write/   sœ   € à�
‰
×Ñ˜ÔØ�
‰
×Ñ˜Ôð �;‰;œ˜S›Ó!Ø�J‰J×Ñ˜dŸk™k¬C°«HÑ4¸Ñ;Õ<ÞÜ˜dŸk™k¬3¨s«8Ó4ˆDŒKÞØ�J‰J×Ñ˜TÕ"ð �J‰J×ÑÕr   )r   r   ©N)TF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚioÚ
TextIOBaser   ÚstrÚboolr)   Ú__static_attributes__© r   r   r   r   (   sH   † Ù8ñ §¡°Ñ 4ð Àõ ñ˜#ð ¨ð ¸tð ÐPT÷ ð r   r   c                   ón   • \ rS rSrSrSS\R                  S-  SS4S jjrSS\S-  SS4S jjr	SS	 jr
S
rg)r   é@   zTOperation progress reporting.

This closely resembles OpTextProgress in libapt-pkg.
Nr   r	   c                 óz   • [         R                  X5        [        R                  R                  U 5        SU l        g )NÚ )r   r   r   r   Úold_opr   s     r   r   ÚOpProgress.__init__F   s)   € Ü×Ñ˜dÔ,Ü�‰× Ñ  Ô&Øˆ�r   Úpercentc                 ó6  • [         R                  R                  X5        U R                  (       a,  U R                  (       a  U R                  U R                  5        U R                  SU R                  U R                  4-  SS5        U R                  U l        g)z1Called periodically to update the user interface.z%s... %i%%FTN)r   r   ÚupdateÚmajor_changer;   r)   Úopr=   )r   r=   s     r   r?   ÚOpProgress.updateK   s`   € ä�‰×Ñ˜tÔ-Ø×× §§Ø�K‰K˜Ÿ™Ô$Ø�‰�N d§g¡g¨t¯|©|Ð%<Ñ<¸eÀTÔJØ—g‘gˆ�r   c                 óÈ   • [         R                  R                  U 5        U R                  (       a+  U R	                  [        S5      SU R                  4-  SS5        SU l        g)z,Called once an operation has been completed.z%c%s... Doner"   Tr:   N)r   r   Údoner;   r)   r   ©r   s    r   rD   ÚOpProgress.doneS   sE   € ä�‰×Ñ˜TÔ"Ø�;�;Ø�K‰Kœ˜.Ó)¨T°4·;±;Ð,?Ñ?ÀÀtÔLØˆ�r   )r;   r+   ©r	   N)r,   r-   r.   r/   r0   r1   r2   r   Úfloatr?   rD   r5   r6   r   r   r   r   @   s?   † ññ
 §¡°Ñ 4ð Àõ ñ
˜e d™lð °dõ ÷r   r   c                   ó  • \ rS rSrSrSS\R                  S-  SS4S jjrSS jrS\	SS4S	 jr
S
\R                  SS4S jrS
\R                  SS4S jrS
\R                  SS4S jrS\R                   S\4S jrS\S\S\4S jrSS jrSrg)r   é[   z'AcquireProgress for the text interface.Nr   r	   c                 ó–   • [         R                  X5        [        R                  R                  U 5        S U l        SU l        SU l        g )NéP   é   )r   r   r   r   Ú_signalr   Ú_idr   s     r   r   ÚAcquireProgress.__init__^   s@   € Ü×Ñ˜dÔ,Ü×Ñ×%Ñ% dÔ+ð ð 	Œð ˆŒØˆ�r   c                 óØ   • [         R                  R                  U 5        [        R                  " [        R                  U R
                  5      U l        U R                  5         SU l        g)z”Start an Acquire progress.

In this case, the function sets up a signal handler for SIGWINCH, i.e.
window resize signals. And it also sets id to 1.
rM   N)r   r   ÚstartÚsignalÚSIGWINCHÚ_winchrN   rO   rE   s    r   rR   ÚAcquireProgress.startg   sB   € ô 	×Ñ×"Ñ" 4Ô(Ü—}’}¤V§_¡_°d·k±kÓBˆŒà�‰ŒØˆ�r   Údummyc                 óJ  • [        U R                  S5      (       aˆ  [        R                  " U R                  R	                  5       5      (       aT  SSKnSSKnSSKnUR                  U R                  UR                  S5      nUR                  SU5      u  p  nUS-
  U l        ggg)z)Signal handler for window resize signals.Úfilenor   Ns           ÚhhhhrM   )Úhasattrr   ÚosÚisattyrY   ÚfcntlÚstructÚtermiosÚioctlÚ
TIOCGWINSZÚunpackr   )r   rW   r^   r_   r`   ÚbufÚcols          r   rU   ÚAcquireProgress._winchs   s~   € ä�4—:‘:˜x×(Ñ(¬R¯YªY°t·z±z×7HÑ7HÓ7J×-KÑ-KÛÛÛà—+‘+˜dŸj™j¨'×*<Ñ*<¸hÓGˆCØ'-§}¡}°V¸SÓ'AÑ$ˆE˜˜uØ ™'ˆD�Kð .LÐ(r   Úitemc                 ó*  • [         R                  R                  X5        [        S5      UR                  -   nUR
                  R                  (       a0  US[        R                  " UR
                  R                  5      -  -  nU R                  U5        g)z@Called when an item is update (e.g. not modified on the server).zHit ú [%sB]N)
r   r   Úims_hitr   ÚdescriptionÚownerÚfilesizer   Úsize_to_strr)   ©r   rg   Úlines      r   rj   ÚAcquireProgress.ims_hit~   sg   € ä×Ñ×$Ñ$ TÔ0Ü�‹y˜4×+Ñ+Ñ+ˆØ�:‰:××Ø�Hœw×2Ò2°4·:±:×3FÑ3FÓGÑGÑGˆDØ�‰�DÕr   c                 óŒ  • [         R                  R                  X5        UR                  R                  UR                  R
                  :X  a(  U R                  [        S5      UR                  -   5        gU R                  [        S5      UR                  -   5        U R                  SUR                  R                  -  5        g)zCalled when an item is failed.zIgn zErr z  %sN)
r   r   Úfailrl   ÚstatusÚ	STAT_DONEr)   r   rk   Ú
error_text)r   rg   s     r   rs   ÚAcquireProgress.fail†   sƒ   € ä×Ñ×!Ñ! $Ô-Ø�:‰:×Ñ §
¡
× 4Ñ 4Ó4Ø�K‰Kœ˜&›	 D×$4Ñ$4Ñ4Õ5à�K‰Kœ˜&›	 D×$4Ñ$4Ñ4Ô5Ø�K‰K˜ §¡×!6Ñ!6Ñ6Õ7r   c                 óô  • [         R                  R                  X5        UR                  R                  (       a  gU R
                  UR                  l        U =R
                  S-  sl        [        S5      UR                  R                   SUR                   3-   nUR                  R                  (       a0  US[        R                  " UR                  R                  5      -  -  nU R                  U5        g)z/Called when some of the item's data is fetched.NrM   zGet:r#   ri   )r   r   Úfetchrl   ÚcompleterO   Úidr   rk   rm   r   rn   r)   ro   s      r   ry   ÚAcquireProgress.fetch�   s§   € ä×Ñ×"Ñ" 4Ô.à�:‰:××ØØŸ™ˆ�
‰
ŒØ�Š�A‰�Ü�‹y˜dŸj™jŸm™m˜_¨A¨d×.>Ñ.>Ð-?Ð@Ñ@ˆØ�:‰:××Ø�Hœw×2Ò2°4·:±:×3FÑ3FÓGÑGÑGˆDà�‰�DÕr   rl   c                 ó¤  • [         R                  R                  X5        [        U R                  S5      (       a4  [
        R                  " U R                  R                  5       5      (       d  gU R                  U R                  -   S-  [        U R                  U R                  -   5      -  nSnSU-  nSnU R                  (       a|  [        [        U R                  U R                  -
  5      U R                  -  5      nSR                  [         R"                  " U R                  5      [         R$                  " U5      5      nUR&                   GH  nSnUR(                  (       d\  UR*                  (       aI  SUR*                  -  n[-        U5      [-        U5      -   [-        U5      -   U R.                  :¼  a    GO²XH-  nSnMs  SnUR(                  R0                  R2                  (       a=  US	UR(                  R0                  R2                  UR(                  R4                  4-  -  nOUS
UR(                  R6                  -  -  nUR(                  R0                  R8                  (       a&  USUR(                  R0                  R8                  -  -  nUS[         R"                  " UR:                  5      -  -  nUR<                  (       ag  UR(                  R0                  R>                  (       dB  US[         R"                  " UR<                  5      UR:                  S-  UR<                  -  4-  -  nUS-  n[-        U5      [-        U5      -   [-        U5      -   U R.                  :¼  a    O	XH-  nGM     U(       d  U[A        S5      -  nU R                  (       a,  X@R.                  [-        U5      -
  [-        U5      -
  S-  U-   -  nU RC                  US5        g)z€Periodically invoked while the Acquire process is underway.

Return False if the user asked to cancel the whole Acquire process.rY   Tg      Y@Fz%i%%r:   z	 {}B/s {}z [%s]z [%i %sz [%sz %sz %sBz	/%sB %i%%Ú]z
 [Working]r#   )"r   r   Úpulser[   r   r\   r]   rY   Úcurrent_bytesÚcurrent_itemsrH   Útotal_bytesÚtotal_itemsÚcurrent_cpsÚintÚformatr   rn   Útime_to_strÚworkersÚcurrent_itemrt   r&   r   rl   r{   Ú	shortdescrk   Úactive_subprocessÚcurrent_sizeÚ
total_sizerz   r   r)   )	r   rl   r=   ÚshownÚtvalÚendÚetaÚworkerÚvals	            r   r   ÚAcquireProgress.pulse�   s  € ô 	×Ñ×"Ñ" 4Ô/ä�4—:‘:˜x×(Ñ(´·²¸4¿:¹:×;LÑ;LÓ;N×1OÑ1OØð ×&Ñ&¨×);Ñ);Ñ;¸uÑDÌØ×Ñ˜t×/Ñ/Ñ/óI
ñ 
ˆð ˆØ˜ÑˆØˆØ××Ü”e˜D×,Ñ,¨t×/AÑ/AÑAÓBÀT×EUÑEUÑUÓVˆCØ×$Ñ$Ü×#Ò# D×$4Ñ$4Ó5Ü×#Ò# CÓ(óˆCð
 —m•mˆFØˆCØ×&×&Ø—=—=Ø! F§M¡MÑ1�CÜ˜4“y¤3 s£8Ñ+¬c°#«hÑ6¸$¿+¹+ÓEÚØ‘K�DØ �EÙØˆEà×"Ñ"×(Ñ(×+×+Ø�yØ×'Ñ'×-Ñ-×0Ñ0Ø×'Ñ'×1Ñ1ð$ñ ñ ‘ð
 �v × 3Ñ 3× ?Ñ ?Ñ?Ñ?�Ø×"Ñ"×(Ñ(×:×:Ø�u˜v×2Ñ2×8Ñ8×JÑJÑJÑJ�à�6œG×/Ò/°×0CÑ0CÓDÑDÑDˆCð × × ¨×)<Ñ)<×)BÑ)B×)K×)KØ�{Ü×'Ò'¨×(9Ñ(9Ó:Ø×'Ñ'¨%Ñ/°&×2CÑ2CÑCð&ñ ñ �ð
 �3‰JˆCä�4‹yœ3˜s›8Ñ#¤c¨#£hÑ.°$·+±+Ó=áà‘“ñK $öN Ø”A�l“OÑ#ˆDà××Ø—[‘[¤3 s£8Ñ+¬c°$«iÑ7¸3Ñ>ÀÑDÑDˆDà�‰�D˜%Ô Ør   ÚmediumÚdrivec                 ó˜   • [         R                  R                  XU5        U R                  [	        S5      X4-  5        [        5       S;  $ )z7Prompt the user to change the inserted removable media.zUMedia change: please insert the disc labeled
 '%s'
in the drive '%s' and press enter
)ÚcÚC)r   r   Úmedia_changer)   r   Úinput)r   r•   r–   s      r   rš   ÚAcquireProgress.media_changeå   sL   € ä×Ñ×)Ñ)¨$¸Ô>Ø�‰Üð6óð
 ˆoñô	
ô ‹w˜jÑ(Ð(r   c                 óª  • [         R                  R                  U 5        U R                  [	        S5      [
        R                  " U R                  5      [
        R                  " U R                  5      [
        R                  " U R                  5      4-  R                  S5      5        SSKnUR                  " UR                  U R                  5        g)z/Invoked when the Acquire process stops running.zFetched %sB in %s (%sB/s)
r$   r   N)r   r   Ústopr)   r   r   rn   Úfetched_bytesr‡   Úelapsed_timer„   ÚrstriprS   rT   rN   )r   rS   s     r   rž   ÚAcquireProgress.stopò   s—   € ä×Ñ×!Ñ! $Ô'à�‰äÐ/Ó0ä×'Ò'¨×(:Ñ(:Ó;Ü×'Ò'¨×(9Ñ(9Ó:Ü×'Ò'¨×(8Ñ(8Ó9ðñ÷ ‰f�T‹lô		
ó 	à�Š�f—o‘o t§|¡|Õ4r   )rO   rN   r   r+   rG   )r,   r-   r.   r/   r0   r1   r2   r   rR   ÚobjectrU   r   ÚAcquireItemDescrj   rs   ry   ÚAcquirer4   r   r3   rš   rž   r5   r6   r   r   r   r   [   s¾   † Ù1ñ §¡°Ñ 4ð Àõ ô
ð	"˜Vð 	"¨ô 	"ð˜G×3Ñ3ð ¸ô ð8˜×0Ñ0ð 8°Tô 8ð˜'×1Ñ1ð °dô ðF˜7Ÿ?™?ð F¨tô FðP) 3ð )¨sð )°tô )÷5r   r   c                   óP   • \ rS rSrSrS\S-  4S jrS\S\SS4S jrS\	4S	 jr
S
rg)r   i  zText CD-ROM progress.r	   Nc                 óÀ   • [         R                  R                  U 5        U R                  [	        S5      S5         [        [        S5      5      $ ! [         a     gf = f)z,Ask the user to provide a name for the disc.zDPlease provide a name for this medium, such as 'Debian 2.1r1 Disk 1'FÚ:N)r   r   Úask_cdrom_namer)   r   r3   r›   ÚKeyboardInterruptrE   s    r   r©   ÚCdromProgress.ask_cdrom_name
  sY   € ä×Ñ×)Ñ)¨$Ô/Ø�‰Üð(óð ô	
ð	Ü”u˜S“z“?Ð"øÜ ó 	Ùð	ús   ¼A Á
AÁAÚtextÚcurrentc                 óx   • [         R                  R                  XU5        U(       a  U R                  US5        gg)zSet the current progress.FN)r   r   r?   r)   )r   r¬   r­   s      r   r?   ÚCdromProgress.update  s.   € ä×Ñ×!Ñ! $¨gÔ6ÞØ�K‰K˜˜eÕ$ð r   c                 óÄ   • [         R                  R                  U 5        U R                  [	        S5      S5         [        [        5       S:H  5      $ ! [         a     gf = f)z"Ask the user to change the CD-ROM.z4Please insert an installation medium and press enterFr:   )r   r   Úchange_cdromr)   r   r4   r›   rª   rE   s    r   r±   ÚCdromProgress.change_cdrom  sR   € ä×Ñ×'Ñ'¨Ô-Ø�‰”AÐLÓMÈuÔUð	Üœ› 2™Ó&Ð&øÜ ó 	Ùð	ús   ¼A Á
AÁAr6   )r,   r-   r.   r/   r0   r3   r©   r…   r?   r4   r±   r5   r6   r   r   r   r     s;   † Ùð  d¡
ô ð%˜3ð %¨ð %°ô %ð˜d÷ r   r   )r0   r1   r\   rS   r   ÚtypesÚcollections.abcr   r   Úapt.progressr   Ú__all__r3   r   r   r   r   r   r6   r   r   Ú<module>r·      s�   ðñ" .Û 	Û 	Û Û 
Û Ý $ã å â
<€ðˆ3ð �3ô ÷ñ ô0�—‘ ,ô ô6i5�d×*Ñ*¨Lô i5ôX�D×&Ñ&¨õ r   