ó
    Þ jCé  ã            +       ó¾
  • S SK r S SKrS SKrS SKrS SKJrJr  S SKJr  S SK	J
r
Jr  S SKJr  S SK JrJr  S SKJr  S SKJr  S S	KJr  S S
KJrJr  S SKJrJrJr  S SKJr  S SKJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/  \R`                  S:¼  a  S SKJ1r1  OS SK2J1r1  SSK3J4r4J5r5  SSK6J7r7J8r8J9r9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrB  SSKCJDrD  SSKEJFrF  SSKGJHrHJIrI  SSKJJKrKJLrL  \(" S\M5      rN\." S5      rO\ / \P4   rQ\R\                  " S\+\5      rR " S S\5      rS              S‘S'\/\*\O   \%\O   4   S(\TS)\)\P   S*\US+\)\7   S,\US-\)\ / \P4      S.\PS/\FS0\FS1\FS2\FS3\PS4\US5\US6\%\O   4 S7 jjrV " S8 S9\\5      rW " S: S;\!\R   \$\R   5      rXS<S SS!SS"S#S$S%S&S!S=.S>\S)\MS(\TS*\US+\)\7   S,\US-\)\ / \P4      S.\PS/\FS0\FS1\FS2\FS4\US6\!\   4S? jjrY\R´                      S’SS<S SS!SS"S#S$S%S&S!S@.S>\/\TSA\[4   SB\/\1SC   \1SD   4   SE\MSF\)\T   SG\)\T   SH\)\T   S)\)\M   S(\TS*\US+\)\7   S,\US-\)\ / \P4      S.\PS/\FS0\FS1\FS2\FS4\US6\!\+   4&SI jjj5       r\\R´                      S’SS<S SS!SS"S#S$S%S&S!S@.S>\/\TSA\[4   SB\1SJ   SE\MSF\)\T   SG\)\T   SH\)\T   S)\)\M   S(\TS*\US+\)\7   S,\US-\)\ / \P4      S.\PS/\FS0\FS1\FS2\FS4\US6\!\   4&SK jjj5       r\     S“SS<S SS!SS"S#S$S%S&S!S@.S>\/\TSA\[4   SB\/\1SJ   \1SC   \1SD   4   SE\MSF\)\T   SG\)\T   SH\)\T   S)\)\M   S(\TS*\US+\)\7   S,\US-\)\ / \P4      S.\PS/\FS0\FS1\FS2\FS4\US6\/\!\   \!\+   4   4&SL jjjr\ " SM SN\5      r] " SO SP\]5      r^ " SQ SR\]5      r_ " SS ST\]5      r` " SU SV\]5      ra " SW SX\]5      rb " SY SZ\`5      rc " S[ S\\]5      rd " S] S^\]5      re " S_ S`\]5      rf " Sa Sb\]5      rg " Sc Sd\]5      rh " Se Sf\]5      ri " Sg Sh\'5      rj\
 " Si Sj5      5       rk " Sk Sl\>5      rl\mSm:X  Ga_  S SKnrnS SKoroSSnKpJqrq  SSoKrJsrs  SSpKtJuru  SSqKGJIrI  \u" SrSsS St9rt\I" SuSvSw5      rG\GRí                  SxSySz5        S{\q" S|5      S}\GS~SS€S�.S‚\t\s" Sƒ5      /	rwS S„KxJyry  \y" \w5      rz\7" S S…9r6\l" \_" 5       /\lR÷                  5       Q\b" 5       P7\6S!S†.6 r|\|Rû                  S‡SˆS‰9r~\|Rû                  SŠSˆS‰9r\|Rû                  S‹SS‰9r€\|GR                  (       dy  \|GR                  \~SŒS�9  \|GR                  \SŽS�9  \oGR                  " S�5        \nGR                  " S S�5      S:  a  \|GR                  \†" \z5      5        \|GR                  (       d  My  SSS5        gg! , (       d  f       g= f)”é    N)ÚABCÚabstractmethod©Údeque)Ú	dataclassÚfield)Ú	timedelta)Ú	RawIOBaseÚUnsupportedOperation)Úceil)Úmmap)Úlength_hint)ÚPathLikeÚstat)ÚEventÚRLockÚThread)ÚTracebackType)ÚAnyÚBinaryIOÚCallableÚContextManagerÚDequeÚDictÚGenericÚIterableÚListÚ
NamedTupleÚNewTypeÚOptionalÚSequenceÚTextIOÚTupleÚTypeÚTypeVarÚUnion)é   é   )ÚLiteralé   )ÚfilesizeÚget_console)ÚConsoleÚGroupÚJustifyMethodÚRenderableType)ÚHighlighter)ÚJupyterMixin)ÚLive)ÚProgressBar)ÚSpinner)Ú	StyleType)ÚColumnÚTable)ÚTextÚTextTypeÚTaskIDÚProgressTypeÚ_Ic                   ó‚   ^ • \ rS rSrSrSSSSS\4U 4S jjrSS jrSS jrS\	\
\      S\	\   S\	\   S	S
4S jrSrU =r$ )Ú_TrackThreadé?   z)A thread to periodically update progress.ÚprogressÚProgressÚtask_idr;   Úupdate_periodc                 ór   >• Xl         X l        X0l        [        5       U l        SU l        [        TU ]  5         g )Nr   )rA   rC   rD   r   ÚdoneÚ	completedÚsuperÚ__init__)ÚselfrA   rC   rD   Ú	__class__s       €ÚS/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_vendor/rich/progress.pyrI   Ú_TrackThread.__init__B   s.   ø€ Ø ŒØŒØ*ÔÜ“GˆŒ	àˆŒÜ‰ÑÕó    ÚreturnNc                 ób  • U R                   nU R                  R                  nU R                  nSnU R                  R
                  nU" U5      (       d-  U R                  nXF:w  a  U" XU-
  5        UnU" U5      (       d  M-  U R                  R                  U R                   U R                  SS9  g )Nr   T)rG   Úrefresh)rC   rA   ÚadvancerD   rF   ÚwaitrG   Úupdate)rJ   rC   rR   rD   Úlast_completedrS   rG   s          rL   ÚrunÚ_TrackThread.runK   s“   € Ø—,‘,ˆØ—-‘-×'Ñ'ˆØ×*Ñ*ˆØˆØ�y‰y�~‰~ˆÙ�}×%Ñ%ØŸ™ˆIØÓ*Ù˜¨^Ñ!;Ô<Ø!*�ñ	 �}×%Ó%ð 	�‰×Ñ˜TŸ\™\°T·^±^ÈTÐÒRrN   c                 ó&   • U R                  5         U $ ©N©Ústart©rJ   s    rL   Ú	__enter__Ú_TrackThread.__enter__Y   ó   € Ø�
‰
ŒØˆrN   Úexc_typeÚexc_valÚexc_tbc                 óX   • U R                   R                  5         U R                  5         g rY   )rF   ÚsetÚjoin©rJ   r`   ra   rb   s       rL   Ú__exit__Ú_TrackThread.__exit__]   s   € ð 	�	‰	�‰ŒØ�	‰	�rN   )rG   rF   rA   rC   rD   ©rO   N)rO   r?   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚfloatrI   rV   r]   r    r$   ÚBaseExceptionr   rg   Ú__static_attributes__Ú__classcell__©rK   s   @rL   r?   r?   ?   so   ø† Ù3ð ð °hð Èu÷ ôSôðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
÷ò rN   r?   TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulseÚsequenceÚdescriptionÚtotalÚauto_refreshÚconsoleÚ	transientÚget_timeÚrefresh_per_secondÚstyleÚcomplete_styleÚfinished_styleÚpulse_stylerD   ÚdisableÚ
show_speedrO   c           
   #   ó,  #   • U(       a  [        S5      /O/ nUR                  [        UU	U
US9[        US9[	        SS945        [        UUUUUU=(       d    SUS.6nU   UR                  XXS9 S	h  v•N   S	S	S	5        g	 N! , (       d  f       g	= f7f)
a¡  Track progress by iterating over a sequence.

Args:
    sequence (Iterable[ProgressType]): A sequence (must support "len") you wish to iterate over.
    description (str, optional): Description of task show next to progress bar. Defaults to "Working".
    total: (float, optional): Total number of steps. Default is len(sequence).
    auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
    transient: (bool, optional): Clear the progress on exit. Defaults to False.
    console (Console, optional): Console to write to. Default creates internal Console instance.
    refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
    style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
    complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
    finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
    pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.
    disable (bool, optional): Disable display of progress.
    show_speed (bool, optional): Show speed if total isn't known. Defaults to True.
Returns:
    Iterable[ProgressType]: An iterable of the values in the sequence.

ú([progress.description]{task.description}©r�   r‚   rƒ   r„   )r†   T)Úelapsed_when_finishedrt   ©r|   r}   r~   r   r€   r…   )r{   rz   rD   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnrB   Útrack)ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   rD   r…   r†   ÚcolumnsrA   s                    rL   r‘   r‘   g   s·   é € öP EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ñ	ô ¨*Ñ5Ü°dÑ;ð		
ôô Ø	Ø!ØØØØ-×3°Øò€Hò 
Ø—>‘>Ø¨{ð "ð 
÷ 	
ð 	
÷ 
ˆñ	
÷ 
�üs0   ‚ABÁBÁ3BÁ4BÁ8	BÂBÂ
BÂBc                   óÈ  • \ rS rSrSr S)S\SSS\S\SS	4
S
 jjrS*S jr	S\
\\      S\
\   S\
\   SS	4S jrS\4S jrS\4S jr\S\4S j5       rS\4S jrS\4S jr\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\4S jrS+S\S\4S jjrS\\\ \!4   4S jr"S+S\S\4S jjr#S+S\S\$\   4S  jjr%S,S! jr&S-S"\S#\S\4S$ jjr'S\4S% jr(S&\)S\4S' jr*S(r+g	).Ú_Readeré­   z9A reader that tracks progress while it's being read from.ÚhandlerA   rB   ÚtaskÚclose_handlerO   Nc                 óB   • Xl         X l        X0l        X@l        SU l        g ©NF)r–   rA   r—   r˜   Ú_closed)rJ   r–   rA   r—   r˜   s        rL   rI   Ú_Reader.__init__°   s    € ð ŒØ ŒØŒ	Ø(ÔØˆ�rN   c                 ó:   • U R                   R                  5         U $ rY   )r–   r]   r\   s    rL   r]   Ú_Reader.__enter__½   s   € Ø�‰×ÑÔØˆrN   r`   ra   rb   c                 ó$   • U R                  5         g rY   )Úcloserf   s       rL   rg   Ú_Reader.__exit__Á   s   € ð 	�
‰
�rN   c                 ó   • U $ rY   © r\   s    rL   Ú__iter__Ú_Reader.__iter__É   s   € ØˆrN   c                 óŠ   • [        U R                  5      nU R                  R                  U R                  [        U5      S9  U$ ©N©rR   )Únextr–   rA   rR   r—   Úlen)rJ   Úlines     rL   Ú__next__Ú_Reader.__next__Ì   s4   € Ü�D—K‘KÓ ˆØ�‰×Ñ˜dŸi™i´°T³ÐÑ;ØˆrN   c                 ó   • U R                   $ rY   )r›   r\   s    rL   ÚclosedÚ_Reader.closedÑ   s   € à�|‰|ÐrN   c                 ó6   • U R                   R                  5       $ rY   )r–   Úfilenor\   s    rL   r²   Ú_Reader.filenoÕ   ó   € Ø�{‰{×!Ñ!Ó#Ð#rN   c                 ó6   • U R                   R                  5       $ rY   )r–   Úisattyr\   s    rL   r¶   Ú_Reader.isattyØ   r´   rN   c                 ó.   • U R                   R                  $ rY   )r–   Úmoder\   s    rL   r¹   Ú_Reader.modeÛ   ó   € à�{‰{×ÑÐrN   c                 ó.   • U R                   R                  $ rY   )r–   Únamer\   s    rL   r½   Ú_Reader.nameß   r»   rN   c                 ó6   • U R                   R                  5       $ rY   )r–   Úreadabler\   s    rL   rÀ   Ú_Reader.readableã   ó   € Ø�{‰{×#Ñ#Ó%Ð%rN   c                 ó6   • U R                   R                  5       $ rY   )r–   Úseekabler\   s    rL   rÄ   Ú_Reader.seekableæ   rÂ   rN   c                 ó   • grš   r£   r\   s    rL   ÚwritableÚ_Reader.writableé   s   € ØrN   Úsizec                 ó–   • U R                   R                  U5      nU R                  R                  U R                  [        U5      S9  U$ r§   )r–   ÚreadrA   rR   r—   rª   )rJ   rÉ   Úblocks      rL   rË   Ú_Reader.readì   s:   € Ø—‘× Ñ  Ó&ˆØ�‰×Ñ˜dŸi™i´°U³ÐÑ<ØˆrN   Úbc                 ó„   • U R                   R                  U5      nU R                  R                  U R                  US9  U$ r§   )r–   ÚreadintorA   rR   r—   )rJ   rÎ   Úns      rL   rÐ   Ú_Reader.readintoñ   s6   € Ø�K‰K× Ñ  Ó#ˆØ�‰×Ñ˜dŸi™i°ÐÑ3ØˆrN   c                 ó–   • U R                   R                  U5      nU R                  R                  U R                  [        U5      S9  U$ r§   )r–   ÚreadlinerA   rR   r—   rª   )rJ   rÉ   r«   s      rL   rÔ   Ú_Reader.readlineö   s:   € Ø�{‰{×#Ñ# DÓ)ˆØ�‰×Ñ˜dŸi™i´°T³ÐÑ;ØˆrN   Úhintc           	      ó²   • U R                   R                  U5      nU R                  R                  U R                  [        [        [        U5      5      S9  U$ r§   )r–   Ú	readlinesrA   rR   r—   ÚsumÚmaprª   )rJ   rÖ   Úliness      rL   rØ   Ú_Reader.readlinesû   sA   € Ø—‘×%Ñ% dÓ+ˆØ�‰×Ñ˜dŸi™i´´S¼¸e³_Ó1EÐÑFØˆrN   c                 óh   • U R                   (       a  U R                  R                  5         SU l        g )NT)r˜   r–   r    r›   r\   s    rL   r    Ú_Reader.close   s"   € Ø××Ø�K‰K×ÑÔØˆ�rN   ÚoffsetÚwhencec                 ó„   • U R                   R                  X5      nU R                  R                  U R                  US9  U$ )N©rG   )r–   ÚseekrA   rT   r—   )rJ   rß   rà   Úposs       rL   rã   Ú_Reader.seek  s6   € Ø�k‰k×Ñ˜vÓ.ˆØ�‰×Ñ˜TŸY™Y°#ÐÑ6Øˆ
rN   c                 ó6   • U R                   R                  5       $ rY   )r–   Útellr\   s    rL   rç   Ú_Reader.tell
  s   € Ø�{‰{×ÑÓ!Ð!rN   Úsc                 ó   • [        S5      e)NÚwrite)r   )rJ   ré   s     rL   rë   Ú_Reader.write  s   € Ü" 7Ó+Ð+rN   )r›   r˜   r–   rA   r—   )T)rO   r”   )éÿÿÿÿri   )r   ),rj   rk   rl   rm   rn   r   r;   ÚboolrI   r]   r    r$   rp   r   rg   r¤   Úbytesr¬   Úpropertyr¯   Úintr²   r¶   Ústrr¹   r½   rÀ   rÄ   rÇ   rË   r&   Ú	bytearrayÚ
memoryviewr   rÐ   rÔ   r   rØ   r    rã   rç   r   rë   rq   r£   rN   rL   r”   r”   ­   s»  † ÙCð "ñàðð ðð ð	ð
 ðð 
õôðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
ôð˜(ô ð˜%ô ð
 ð˜ó ó ðð$˜ô $ð$˜ô $ð ð �có  ó ð ð ð �có  ó ð ð&˜$ô &ð&˜$ô &ð˜$ô ñ˜ð  eõ ð
˜% 	¨:°tÐ ;Ñ<ô ñ
˜Sð ¨%õ ñ
˜cð ¨4°©;õ ô
ñ
˜3ð ¨ð °Cõ ð
"�cô "ð,�sð ,˜s÷ ,rN   r”   c                   ón   • \ rS rSrSrSSS\SS4S jrS\4S	 jrS
\\	\
      S\\
   S\\   SS4S jrSrg)Ú_ReadContexti  zEA utility class to handle a context for both a reader and a progress.rA   rB   ÚreaderrO   Nc                 ó   • Xl         X l        g rY   ©rA   r÷   )rJ   rA   r÷   s      rL   rI   Ú_ReadContext.__init__  s   € Ø ŒØ �rN   c                 ój   • U R                   R                  5         U R                  R                  5       $ rY   )rA   r[   r÷   r]   r\   s    rL   r]   Ú_ReadContext.__enter__  s%   € Ø�‰×ÑÔØ�{‰{×$Ñ$Ó&Ð&rN   r`   ra   rb   c                 óp   • U R                   R                  5         U R                  R                  XU5        g rY   )rA   Ústopr÷   rg   rf   s       rL   rg   Ú_ReadContext.__exit__  s(   € ð 	�‰×ÑÔØ�‰×Ñ˜X°Õ7rN   rù   )rj   rk   rl   rm   rn   r=   rI   r]   r    r$   rp   r   rg   rq   r£   rN   rL   rö   rö     sj   † ÙOð! ð !°Rð !¸Dô !ð'˜2ô 'ð8à˜4 Ñ.Ñ/ð8ð ˜-Ñ(ð8ð ˜Ñ'ð	8ð
 
÷8rN   rö   ú
Reading...)rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   Úfilec          
      óð   • U(       a  [        S5      /O/ nUR                  [        UU	U
US9[        5       [	        5       45        [        UUUUUU=(       d    SUS.6nUR                  XUS9n[        Xï5      $ )aÞ  Read bytes from a file while tracking progress.

Args:
    file (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
    total (int): Total number of bytes to read.
    description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
    auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
    transient: (bool, optional): Clear the progress on exit. Defaults to False.
    console (Console, optional): Console to write to. Default creates internal Console instance.
    refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
    style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
    complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
    finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
    pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    disable (bool, optional): Disable display of progress.
Returns:
    ContextManager[BinaryIO]: A context manager yielding a progress reader.

rˆ   r‰   rt   r‹   )r{   rz   )rŒ   r�   rŽ   ÚDownloadColumnr�   rB   Ú	wrap_filerö   )r  r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r’   rA   r÷   s                   rL   r  r  &  sš   € öJ EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ñ	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-×3°Øò€Hð ×Ñ ¸{ÐÐK€FÜ˜Ó)Ð)rN   )r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   úPathLike[str]r¹   ÚrtÚrÚ	bufferingÚencodingÚerrorsÚnewlinec                ó   • g rY   r£   ©r  r¹   r  r	  r
  r  r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   s                     rL   Úopenr  g  ó   € ð, 	rN   Úrbc                ó   • g rY   r£   r  s                     rL   r  r  €  r  rN   c                óþ   • U(       a  [        S5      /O/ nUR                  [        UUUUS9[        5       [	        5       45        [        UUU	U
UU=(       d    SUS.6nUR                  U UUUUUUUS9n[        UU5      $ )aV  Read bytes from a file while tracking progress.

Args:
    path (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
    mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
    buffering (int): The buffering strategy to use, see :func:`io.open`.
    encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
    errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
    newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`
    total: (int, optional): Total number of bytes to read. Must be provided if reading from a file handle. Default for a path is os.stat(file).st_size.
    description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
    auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
    transient: (bool, optional): Clear the progress on exit. Defaults to False.
    console (Console, optional): Console to write to. Default creates internal Console instance.
    refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
    style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
    complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
    finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
    pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    disable (bool, optional): Disable display of progress.
    encoding (str, optional): The encoding to use when reading in text mode.

Returns:
    ContextManager[BinaryIO]: A context manager yielding a progress reader.

rˆ   r‰   rt   r‹   )r¹   r  r	  r
  r  r{   rz   )rŒ   r�   rŽ   r  r�   rB   r  rö   )r  r¹   r  r	  r
  r  r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r’   rA   r÷   s                        rL   r  r  ™  s´   € öb EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ñ	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-×3°Øò€Hð �]‰]ØØØØØØØØð ð 	€Fô ˜ &Ó)Ð)rN   c                   ó†   • \ rS rSr% SrSr\\   \S'   SS\\	   SS4S jjr
S\	4S jrS	S
S\4S jr\S	S
S\4S j5       rSrg)ÚProgressColumniï  z3Base class for a widget to use in progress display.NÚmax_refreshÚtable_columnrO   c                 ó,   • Xl         0 U l        S U l        g rY   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rJ   r  s     rL   rI   ÚProgressColumn.__init__ô  s   € Ø)ÔØMOˆÔØ-1ˆÕrN   c                 ó<   • U R                   =(       d
    [        5       $ )z.Get a table column, used to build tasks table.)r  r7   r\   s    rL   Úget_table_columnÚProgressColumn.get_table_columnù  s   € à×!Ñ!×-¤V£XÐ-rN   r—   ÚTaskc                 ó:  • UR                  5       nU R                  bB  UR                  (       d1   U R                  UR                     u  p4X0R                  -   U:”  a  U$  U R                  U5      nX$4U R                  UR                  '   U$ ! [
         a     N9f = f)zÙCalled by the Progress object to return a renderable for the given task.

Args:
    task (Task): An object containing information regarding the task.

Returns:
    RenderableType: Anything renderable (including str).
)r   r  rG   r  ÚidÚKeyErrorÚrender)rJ   r—   Úcurrent_timeÚ	timestampÚ
renderables        rL   Ú__call__ÚProgressColumn.__call__ý  sœ   € ð —}‘}“ˆØ×ÑÑ'°··ð&Ø(,×(>Ñ(>¸t¿w¹wÑ(GÑ%�	ð ×/Ñ/Ñ/°,Ó>Ø%Ð%ð ?ð —[‘[ Ó&ˆ
Ø+7Ð*Dˆ×Ñ˜tŸw™wÑ'ØÐøô ó Ùðús   °B Â
BÂBc                 ó   • g)z"Should return a renderable object.Nr£   ©rJ   r—   s     rL   r#  ÚProgressColumn.render  s   � rN   )r  r  r  rY   )rj   rk   rl   rm   rn   r  r    ro   Ú__annotations__r7   rI   r  r0   r'  r   r#  rq   r£   rN   rL   r  r  ï  sl   ‡ Ù=à#'€K�˜%‘Ó'ñ2 X¨fÑ%5ð 2Àõ 2ð
. &ô .ð˜Vð ¨ô ð. ð1˜6ð 1 nó 1ó ó1rN   r  c                   ó^   ^ • \ rS rSrSr SSS.S\S\\   4U 4S jjjjrSS	S
\4S jr	Sr
U =r$ )ÚRenderableColumni  z„A column to insert an arbitrary column.

Args:
    renderable (RenderableType, optional): Any renderable. Defaults to empty string.
N©r  r&  r  c                ó,   >• Xl         [        TU ]	  US9  g ©Nr/  )r&  rH   rI   )rJ   r&  r  rK   s      €rL   rI   ÚRenderableColumn.__init__   s   ø€ ð %ŒÜ‰Ñ lÐÒ3rN   r—   r  rO   c                 ó   • U R                   $ rY   ©r&  r*  s     rL   r#  ÚRenderableColumn.render&  s   € Ø�‰ÐrN   r4  )Ú )rj   rk   rl   rm   rn   r0   r    r7   rI   r#  rq   rr   rs   s   @rL   r.  r.    sL   ø† ñð ,.ð4ØSWò4Ø(ð4Ø@HÈÑ@P÷4ñ 4ð˜6ð  n÷ ò rN   r.  c                   ó˜   ^ • \ rS rSrSr     SS\S\\   S\S\	S\\
   4
U 4S	 jjjr  SS\S
\\   S\SS4S jjrSSS\4S jrSrU =r$ )ÚSpinnerColumni*  aq  A column with a 'spinner' animation.

Args:
    spinner_name (str, optional): Name of spinner animation. Defaults to "dots".
    style (StyleType, optional): Style of spinner. Defaults to "progress.spinner".
    speed (float, optional): Speed factor of spinner. Defaults to 1.0.
    finished_text (TextType, optional): Text used when task is finished. Defaults to " ".
NÚspinner_namer�   ÚspeedÚfinished_textr  c                 ó¢   >• [        XUS9U l        [        U[        5      (       a  [        R
                  " U5      OUU l        [        TU ]!  US9  g )N©r�   r:  r/  )	r5   ÚspinnerÚ
isinstancerò   r9   Úfrom_markupr;  rH   rI   )rJ   r9  r�   r:  r;  r  rK   s         €rL   rI   ÚSpinnerColumn.__init__4  sO   ø€ ô ˜|ÀÑFˆŒô ˜-¬×-Ñ-ô ×Ò˜]Ô+àð 	Ôô
 	‰Ñ lÐÒ3rN   Úspinner_stylerO   c                 ó"   • [        XUS9U l        g)a  Set a new spinner.

Args:
    spinner_name (str): Spinner name, see python -m rich.spinner.
    spinner_style (Optional[StyleType], optional): Spinner style. Defaults to "progress.spinner".
    speed (float, optional): Speed factor of spinner. Defaults to 1.0.
r=  N)r5   r>  )rJ   r9  rB  r:  s       rL   Úset_spinnerÚSpinnerColumn.set_spinnerD  s   € ô ˜|ÈÑNˆ�rN   r—   r  c                 ó–   • UR                   (       a  U R                  nU$ U R                  R                  UR	                  5       5      nU$ rY   )Úfinishedr;  r>  r#  r   )rJ   r—   Útexts      rL   r#  ÚSpinnerColumn.renderS  sH   € ð �}�}ð ×Ñð 	ð
 ˆð —‘×$Ñ$ T§]¡]£_Ó5ð 	ð
 ˆrN   )r;  r>  )Údotsúprogress.spinnerç      ð?Ú N)rK  rL  )rj   rk   rl   rm   rn   rò   r    r6   ro   r:   r7   rI   rD  r0   r#  rq   rr   rs   s   @rL   r8  r8  *  s³   ø† ñð #Ø%7ØØ"%Ø)-ñ4àð4ð ˜	Ñ"ð4ð ð	4ð
  ð4ð ˜vÑ&÷4ð 4ð& .@Øñ	OàðOð   	Ñ*ðOð ð	Oð
 
õOð˜6ð  n÷ ò rN   r8  c                   óx   ^ • \ rS rSrSr     SS\S\S\S\S\	\
   S	\	\   S
S4U 4S jjjrSSS
\4S jrSrU =r$ )rŒ   i\  zA column containing text.NÚtext_formatr�   ÚjustifyÚmarkupÚhighlighterr  rO   c                 ó|   >• Xl         X0l        X l        X@l        XPl        [
        TU ]  U=(       d	    [        SS9S9  g )NT©Úno_wrapr/  )rO  rP  r�   rQ  rR  rH   rI   r7   )rJ   rO  r�   rP  rQ  rR  r  rK   s          €rL   rI   ÚTextColumn.__init___  s:   ø€ ð 'ÔØ&-ŒØŒ
ØŒØ&ÔÜ‰Ñ l×&J´fÀTÑ6JÐÒKrN   r—   r  c                 óB  • U R                   R                  US9nU R                  (       a*  [        R                  " X R
                  U R                  S9nO[        X R
                  U R                  S9nU R                  (       a  U R                  R                  U5        U$ ©N©r—   )r�   rP  )	rO  ÚformatrQ  r9   r@  r�   rP  rR  Ú	highlight)rJ   r—   Ú_textrH  s       rL   r#  ÚTextColumn.rendero  sr   € Ø× Ñ ×'Ñ'¨TÐ'Ð2ˆØ�;�;Ü×#Ò# E·±ÀTÇ\Á\ÑR‰Dä˜§Z¡Z¸¿¹ÑFˆDØ××Ø×Ñ×&Ñ& tÔ,ØˆrN   )rR  rP  rQ  r�   rO  )ÚnoneÚleftTNN)rj   rk   rl   rm   rn   rò   r6   r/   rî   r    r1   r7   rI   r9   r#  rq   rr   rs   s   @rL   rŒ   rŒ   \  s�   ø† Ù#ð
 "Ø!'ØØ-1Ø)-ñLàðLð ðLð ð	Lð
 ðLð ˜kÑ*ðLð ˜vÑ&ðLð 
÷Lð Lð ˜6ð  d÷ ò rN   rŒ   c                   óz   ^ • \ rS rSrSr      SS\\   S\S\S\S\S	\\   S
S4U 4S jjjr	SSS
\
4S jrSrU =r$ )rŽ   iz  aö  Renders a visual progress bar.

Args:
    bar_width (Optional[int], optional): Width of bar or None for full width. Defaults to 40.
    style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
    complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
    finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
    pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
NÚ	bar_widthr�   r‚   rƒ   r„   r  rO   c                 ó\   >• Xl         X l        X0l        X@l        XPl        [
        TU ]  US9  g r1  )ra  r�   r‚   rƒ   r„   rH   rI   )rJ   ra  r�   r‚   rƒ   r„   r  rK   s          €rL   rI   ÚBarColumn.__init__…  s1   ø€ ð #ŒØŒ
Ø,ÔØ,ÔØ&ÔÜ‰Ñ lÐÒ3rN   r—   r  c                 ób  • [        UR                  b  [        SUR                  5      OS[        SUR                  5      U R                  c  SO[        SU R                  5      UR
                  (       + UR                  5       U R                  U R                  U R                  U R                  S9	$ )z&Gets a progress bar widget for a task.Nr   r*   )	r{   rG   ÚwidthÚpulseÚanimation_timer�   r‚   rƒ   r„   )r4   r{   ÚmaxrG   ra  Ústartedr   r�   r‚   rƒ   r„   r*  s     rL   r#  ÚBarColumn.render•  s„   € äØ(,¯
©
Ñ(>”#�a˜Ÿ™Ô$ÀDÜ˜!˜TŸ^™^Ó,ØŸ.™.Ñ0‘$´c¸!¸T¿^¹^Ó6LØ—l‘lÔ"ØŸ=™=›?Ø—*‘*Ø×.Ñ.Ø×.Ñ.Ø×(Ñ(ñ

ð 
	
rN   )ra  r‚   rƒ   r„   r�   )é(   ru   rv   rw   rx   N)rj   rk   rl   rm   rn   r    rñ   r6   r7   rI   r4   r#  rq   rr   rs   s   @rL   rŽ   rŽ   z  s‹   ø† ñð $&Ø%Ø$2Ø$2Ø!,Ø)-ñ4à˜C‘=ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð ˜vÑ&ð4ð 
÷4ð 4ð 
˜6ð 
 k÷ 
ò 
rN   rŽ   c                   ó*   • \ rS rSrSrSSS\4S jrSrg)	ÚTimeElapsedColumni¤  zRenders time elapsed.r—   r  rO   c                 óÌ   • UR                   (       a  UR                  OUR                  nUc
  [        SSS9$ [	        [        S[        U5      5      S9n[        [        U5      SS9$ )zShow time elapsed.ú-:--:--úprogress.elapsed©r�   r   )Úseconds)rG  Úfinished_timeÚelapsedr9   r	   rh  rñ   rò   )rJ   r—   rt  Údeltas       rL   r#  ÚTimeElapsedColumn.render§  sS   € à(,¯¯�$×$Ò$¸4¿<¹<ˆØ‰?Ü˜	Ð);Ñ<Ð<Ü¤# a¬¨W«Ó"6Ñ7ˆÜ”C˜“JÐ&8Ñ9Ð9rN   r£   N©rj   rk   rl   rm   rn   r9   r#  rq   r£   rN   rL   rm  rm  ¤  s   † Ùð:˜6ð : d÷ :rN   rm  c                   ó¨   ^ • \ rS rSrSr        SS\S\S\S\S\S	\	\
   S
\	\   S\SS4U 4S jjjr\S\	\   S\4S j5       rSSS\4S jrSrU =r$ )r�   i°  aê  Show task progress as a percentage.

Args:
    text_format (str, optional): Format for percentage display. Defaults to "[progress.percentage]{task.percentage:>3.0f}%".
    text_format_no_percentage (str, optional): Format if percentage is unknown. Defaults to "".
    style (StyleType, optional): Style of output. Defaults to "none".
    justify (JustifyMethod, optional): Text justification. Defaults to "left".
    markup (bool, optional): Enable markup. Defaults to True.
    highlighter (Optional[Highlighter], optional): Highlighter to apply to output. Defaults to None.
    table_column (Optional[Column], optional): Table Column to use. Defaults to None.
    show_speed (bool, optional): Show speed if total is unknown. Defaults to False.
NrO  Útext_format_no_percentager�   rP  rQ  rR  r  r†   rO   c	           	      óB   >• X l         X€l        [        T	U ]  UUUUUUS9  g )N)rO  r�   rP  rQ  rR  r  )ry  r†   rH   rI   )
rJ   rO  ry  r�   rP  rQ  rR  r  r†   rK   s
            €rL   rI   ÚTaskProgressColumn.__init__¾  s5   ø€ ð *CÔ&Ø$ŒÜ‰ÑØ#ØØØØ#Ø%ð 	ò 	
rN   r:  c                 óŽ   • Uc
  [        SSS9$ [        R                  " [        U5      / SQS5      u  p#X-  n[        US U S3SS9$ )z�Render the speed in iterations per second.

Args:
    task (Task): A Task object.

Returns:
    Text: Text object containing the task speed.
r6  zprogress.percentagerq  )r6  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r9   r+   Úpick_unit_and_suffixrñ   )Úclsr:  ÚunitÚsuffixÚ
data_speeds        rL   Úrender_speedÚTaskProgressColumn.render_speedÔ  s[   € ð ‰=Ü˜Ð"7Ñ8Ð8Ü×4Ò4Ü�‹JÚ<Øó
‰ˆð
 ‘\ˆ
Ü�z #Ð& v h¨eÐ4Ð<QÑRÐRrN   r—   r  c                 ó  • UR                   c?  U R                  (       a.  U R                  UR                  =(       d    UR                  5      $ UR                   c  U R
                  OU R                  nUR                  US9nU R                  (       a*  [        R                  " X0R                  U R                  S9nO[        X0R                  U R                  S9nU R                  (       a  U R                  R                  U5        U$ rX  )r{   r†   rƒ  Úfinished_speedr:  ry  rO  rZ  rQ  r9   r@  r�   rP  rR  r[  )rJ   r—   rO  r\  rH  s        rL   r#  ÚTaskProgressColumn.renderè  s½   € Ø�:‰:Ñ $§/§/Ø×$Ñ$ T×%8Ñ%8×%F¸D¿J¹JÓGÐGà.2¯j©jÑ.@ˆD×*Ò*Àd×FVÑFVð 	ð ×"Ñ"¨Ð"Ð-ˆØ�;�;Ü×#Ò# E·±ÀTÇ\Á\ÑR‰Dä˜§Z¡Z¸¿¹ÑFˆDØ××Ø×Ñ×&Ñ& tÔ,ØˆrN   )r†   ry  )z-[progress.percentage]{task.percentage:>3.0f}%r6  r^  r_  TNNF)rj   rk   rl   rm   rn   rò   r6   r/   rî   r    r1   r7   rI   Úclassmethodro   r9   rƒ  r#  rq   rr   rs   s   @rL   r�   r�   °  sÑ   ø† ñð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ñ
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð ˜kÑ*ð
ð ˜vÑ&ð
ð ð
ð 
÷
ð 
ð, ðS ¨%¡ð S°Tó Só ðSð&˜6ð  d÷ ò rN   r�   c                   ób   ^ • \ rS rSrSrSr   SS\S\S\\   4U 4S jjjr	SS	S
\
4S jrSrU =r$ )r�   iø  zÿRenders estimated time remaining.

Args:
    compact (bool, optional): Render MM:SS when time remaining is less than an hour. Defaults to False.
    elapsed_when_finished (bool, optional): Render time elapsed when the task is finished. Defaults to False.
ç      à?ÚcompactrŠ   r  c                 ó8   >• Xl         X l        [        TU ]  US9  g r1  )r‹  rŠ   rH   rI   )rJ   r‹  rŠ   r  rK   s       €rL   rI   ÚTimeRemainingColumn.__init__  s    ø€ ð ŒØ%:Ô"Ü‰Ñ lÐÒ3rN   r—   r  rO   c                 ó®  • U R                   (       a   UR                  (       a  UR                  nSnOUR                  nSnUR                  c
  [        SUS9$ Uc   [        U R                  (       a  SUS9$ SUS9$ [        [        U5      S5      u  pE[        US5      u  pdU R                  (       a  U(       d
  US S	US 3nOUS
 S	US S	US 3n[        XsS9$ )zShow time remaining.rp  zprogress.remainingr6  rq  z--:--ro  é<   Ú02dÚ:Úd)	rŠ   rG  rs  Útime_remainingr{   r9   r‹  Údivmodrñ   )rJ   r—   Ú	task_timer�   Úminutesrr  ÚhoursÚ	formatteds           rL   r#  ÚTimeRemainingColumn.render  sÒ   € à×%×%¨$¯-¯-Ø×*Ñ*ˆIØ&‰Eà×+Ñ+ˆIØ(ˆEà�:‰:ÑÜ˜ %Ñ(Ð(àÑÜ 4§<§<˜ÀeÑLÐL°YÀeÑLÐLô "¤# i£.°"Ó5ÑˆÜ ¨Ó,‰ˆà�<�<¦Ø" 3˜- q¨°¨Ð6‰Ià  ˜) 1 W¨S M°°7¸3°-Ð@ˆIä�IÑ+Ð+rN   )r‹  rŠ   )FFN)rj   rk   rl   rm   rn   r  rî   r    r7   rI   r9   r#  rq   rr   rs   s   @rL   r�   r�   ø  s]   ø† ñð €Kð Ø&+Ø)-ñ	4àð4ð  $ð4ð ˜vÑ&÷	4ð 4ð,˜6ð , d÷ ,ò ,rN   r�   c                   ó*   • \ rS rSrSrSSS\4S jrSrg)	ÚFileSizeColumni(  zRenders completed filesize.r—   r  rO   c                 óh   • [         R                  " [        UR                  5      5      n[	        USS9$ )úShow data completed.zprogress.filesizerq  )r+   Údecimalrñ   rG   r9   ©rJ   r—   Ú	data_sizes      rL   r#  ÚFileSizeColumn.render+  s)   € ä×$Ò$¤S¨¯©Ó%8Ó9ˆ	Ü�IÐ%8Ñ9Ð9rN   r£   Nrw  r£   rN   rL   r›  r›  (  s   † Ù%ð:˜6ð : d÷ :rN   r›  c                   ó*   • \ rS rSrSrSSS\4S jrSrg)	ÚTotalFileSizeColumni1  zRenders total filesize.r—   r  rO   c                 ó†   • UR                   b)  [        R                  " [        UR                   5      5      OSn[	        USS9$ )r�  r6  zprogress.filesize.totalrq  )r{   r+   rž  rñ   r9   rŸ  s      rL   r#  ÚTotalFileSizeColumn.render4  s4   € à9=¿¹Ñ9O”H×$Ò$¤S¨¯©£_Ô5ÐUWˆ	Ü�IÐ%>Ñ?Ð?rN   r£   Nrw  r£   rN   rL   r£  r£  1  s   † Ù!ð@˜6ð @ d÷ @rN   r£  c                   óT   ^ • \ rS rSrSrSS\S\\   4U 4S jjjrSSS\	4S	 jr
S
rU =r$ )ÚMofNCompleteColumni:  a0  Renders completed count/total, e.g. '  10/1000'.

Best for bounded tasks with int quantities.

Space pads the completed count so that progress length does not change as task progresses
past powers of 10.

Args:
    separator (str, optional): Text to separate completed and total values. Defaults to "/".
Ú	separatorr  c                 ó,   >• Xl         [        TU ]	  US9  g r1  )r¨  rH   rI   )rJ   r¨  r  rK   s      €rL   rI   ÚMofNCompleteColumn.__init__F  s   ø€ Ø"ŒÜ‰Ñ lÐÒ3rN   r—   r  rO   c                 óÖ   • [        UR                  5      nUR                  b  [        UR                  5      OSn[        [	        U5      5      n[        X$ S3 U R                   U 3SS9$ )zShow completed/total.Ú?r’  úprogress.downloadrq  )rñ   rG   r{   rª   rò   r9   r¨  )rJ   r—   rG   r{   Útotal_widths        rL   r#  ÚMofNCompleteColumn.renderJ  sa   € ä˜Ÿ™Ó'ˆ	Ø#'§:¡:Ñ#9”�D—J‘J”¸sˆÜœ#˜e›*“oˆÜØ˜ a˜Ð(¨¯©Ð(8¸¸Ð@Ø%ñ
ð 	
rN   )r¨  )Ú/N)rj   rk   rl   rm   rn   rò   r    r7   rI   r9   r#  rq   rr   rs   s   @rL   r§  r§  :  s=   ø† ñ	ñ4 #ð 4¸8ÀFÑ;K÷ 4ð 4ð
˜6ð 
 d÷ 
ò 
rN   r§  c                   óZ   ^ • \ rS rSrSr SS\S\\   SS4U 4S jjjrSS	S\	4S
 jr
SrU =r$ )r  iU  z˜Renders file size downloaded and total, e.g. '0.5/2.3 GB'.

Args:
    binary_units (bool, optional): Use binary units, KiB, MiB etc. Defaults to False.
NÚbinary_unitsr  rO   c                 ó,   >• Xl         [        TU ]	  US9  g r1  )r²  rH   rI   )rJ   r²  r  rK   s      €rL   rI   ÚDownloadColumn.__init__\  s   ø€ ð )ÔÜ‰Ñ lÐÒ3rN   r—   r  c                 óÂ  • [        UR                  5      nUR                  b  [        UR                  5      OUnU R                  (       a  [        R
                  " U/ SQS5      u  pEO[        R
                  " U/ SQS5      u  pEUS:X  a  SOSnX$-  nUSU S3 nUR                  b"  [        UR                  5      n	X”-  n
U
SU S3 nOS	nU S
U SU 3n[        USS9nU$ )z.Calculate common unit for completed and total.)	rï   ÚKiBÚMiBÚGiBÚTiBÚPiBÚEiBÚZiBÚYiBi   )	rï   ÚkBÚMBÚGBÚTBÚPBÚEBÚZBÚYBr}  r*   r   z,.Úfr¬  r°  rM  r­  rq  )rñ   rG   r{   r²  r+   r~  r9   )rJ   r—   rG   Ú unit_and_suffix_calculation_baser€  r�  Ú	precisionÚcompleted_ratioÚcompleted_strr{   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rL   r#  ÚDownloadColumn.renderb  sù   € ä˜Ÿ™Ó'ˆ	ð  $Ÿz™zÑ5ŒC�—
‘
ŒO¸9ð 	)ð ××Ü#×8Ò8Ø0ÚQØó‰LˆD�&ô $×8Ò8Ø0ÚIØó‰LˆDð
  ›‘A¨ˆ	à#Ñ*ˆØ*¨2¨i¨[¸¨/Ð:ˆà�:‰:Ñ!Ü˜Ÿ
™
“OˆEØ™,ˆKØ& r¨)¨°A oÐ6‰IàˆIà*˜O¨1¨Y¨K°q¸¸ÐAˆÜ˜_Ð4GÑHˆØÐrN   )r²  )FN)rj   rk   rl   rm   rn   rî   r    r7   rI   r9   r#  rq   rr   rs   s   @rL   r  r  U  sN   ø† ñð LPñ4Ø ð4Ø8@ÀÑ8Hð4à	÷4ð 4ð!˜6ð ! d÷ !ò !rN   r  c                   ó*   • \ rS rSrSrSSS\4S jrSrg)	ÚTransferSpeedColumni†  z&Renders human readable transfer speed.r—   r  rO   c                 ó²   • UR                   =(       d    UR                  nUc
  [        SSS9$ [        R                  " [        U5      5      n[        U S3SS9$ )zShow data transfer speed.r¬  zprogress.data.speedrq  z/s)r†  r:  r9   r+   rž  rñ   )rJ   r—   r:  r‚  s       rL   r#  ÚTransferSpeedColumn.render‰  sR   € à×#Ñ#×1 t§z¡zˆØ‰=Ü˜Ð#8Ñ9Ð9Ü×%Ò%¤c¨%£jÓ1ˆ
Ü�z�l "Ð%Ð-BÑCÐCrN   r£   Nrw  r£   rN   rL   rÑ  rÑ  †  s   † Ù0ðD˜6ð D d÷ DrN   rÑ  c                   ó0   • \ rS rSr% Sr\\S'    \\S'   Srg)ÚProgressSamplei’  z$Sample of progress for a given time.r%  rG   r£   N)rj   rk   rl   rm   rn   ro   r,  rq   r£   rN   rL   rÕ  rÕ  ’  s   ‡ Ù.àÓØØÓÚ$rN   rÕ  c                   ó  • \ rS rSr% Sr\\S'    \\S'    \\	   \S'    \	\S'    \
\S'    Sr\\	   \S	'    S
r\\S'    \" \S9r\\\4   \S'    \" SSSS9r\\	   \S'    \" SSSS9r\\	   \S'    Sr\\	   \S'    \" S SSS9r\\   \S'   \" S\S9r\\S'    S\	4S jr\S\4S j5       r\S\\	   4S j5       r\S\\	   4S j5       r\S\4S j5       r \S\	4S j5       r!\S\\	   4S j5       r"\S\\	   4S  j5       r#S#S! jr$S"r%g)$r  i›  z}Information regarding a progress task.

This object should be considered read-only outside of the :class:`~Progress` class.

r!  rz   r{   rG   Ú	_get_timeNrs  TÚvisible)Údefault_factoryÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timer†  c                  ó   • [        SS9$ )Nr}  )Úmaxlenr   r£   rN   rL   Ú<lambda>ÚTask.<lambda>Å  s	   € ¤¨TÒ 2rN   )rÙ  rÜ  rÝ  Ú	_progress)rÝ  rÙ  Ú_lockrO   c                 ó"   • U R                  5       $ )z(float: Get the current time, in seconds.)r×  r\   s    rL   r   ÚTask.get_timeË  s   € à�~‰~ÓÐrN   c                 ó   • U R                   SL$ )z#bool: Check if the task as started.N)rÞ  r\   s    rL   ri  ÚTask.startedÏ  s   € ð �‰ dÐ*Ð*rN   c                 óP   • U R                   c  gU R                   U R                  -
  $ )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N)r{   rG   r\   s    rL   Ú	remainingÚTask.remainingÔ  s$   € ð �:‰:ÑØØ�z‰z˜DŸN™NÑ*Ð*rN   c                 ó¤   • U R                   c  gU R                  b  U R                  U R                   -
  $ U R                  5       U R                   -
  $ )z]Optional[float]: Time elapsed since task was started, or ``None`` if the task hasn't started.N)rÞ  rß  r   r\   s    rL   rt  ÚTask.elapsedÛ  sC   € ð �?‰?Ñ"ØØ�>‰>Ñ%Ø—>‘> D§O¡OÑ3Ð3Ø�}‰}‹ §¡Ñ0Ð0rN   c                 ó   • U R                   SL$ )zCheck if the task has finished.N)rs  r\   s    rL   rG  ÚTask.finishedä  s   € ð ×!Ñ!¨Ð-Ð-rN   c                 óŽ   • U R                   (       d  gU R                  U R                   -  S-  n[        S[        SU5      5      nU$ )zOfloat: Get progress of task as a percentage. If a None total was set, returns 0ç        ç      Y@)r{   rG   Úminrh  )rJ   rG   s     rL   Ú
percentageÚTask.percentageé  s>   € ð �z�zØØ—^‘^ d§j¡jÑ0°EÑ9ˆ	Ü˜œs 3¨	Ó2Ó3ˆ	ØÐrN   c                 ó`  • U R                   c  gU R                     U R                  nU(       d
   SSS5        gUS   R                  US   R                  -
  nUS:X  a
   SSS5        g[	        U5      n[        U5        [        S U 5       5      nXB-  nUsSSS5        $ ! , (       d  f       g= f)z=Optional[float]: Get the estimated speed in steps per second.Nrí   r   c              3   ó6   #   • U H  oR                   v •  M     g 7frY   râ   )Ú.0Úsamples     rL   Ú	<genexpr>ÚTask.speed.<locals>.<genexpr>   s   é € Ð!OÁ°v×"2Ö"2Âùó   ‚)rÞ  rå  rä  r%  Úiterr©   rÙ   )rJ   rA   Ú
total_timeÚiter_progressÚtotal_completedr:  s         rL   r:  Ú
Task.speedò  s—   € ð �?‰?Ñ"ØØ�Z‹ZØ—~‘~ˆHÞØ÷ ˆZð " "™×/Ñ/°(¸1±+×2GÑ2GÑGˆJØ˜Q‹Ø÷ ˆZô ! ›NˆMÜ�ÔÜ!Ñ!OÁÓ!OÓOˆOØ#Ñ0ˆEØ÷ �Z�Zús   ›B¹&BÁ(-BÂ
B-c                 óŒ   • U R                   (       a  gU R                  nU(       d  gU R                  nUc  g[        X!-  5      nU$ )zJOptional[float]: Get estimated time to completion, or ``None`` if no data.rò  N)rG  r:  rë  r   )rJ   r:  rë  Úestimates       rL   r“  ÚTask.time_remaining  sA   € ð �=�=ØØ—
‘
ˆÞØØ—N‘Nˆ	ØÑØÜ˜	Ñ)Ó*ˆØˆrN   c                 óT   • U R                   R                  5         SU l        SU l        g)zReset progress.N)rä  Úclearrs  r†  r\   s    rL   Ú_resetÚTask._reset  s"   € à�‰×ÑÔØ!ˆÔØ"ˆÕrN   )r†  rs  ri   )&rj   rk   rl   rm   rn   r;   r,  rò   r    ro   ÚGetTimeCallablers  rØ  rî   r   ÚdictrÚ  r   r   rÞ  rß  r†  rä  r   rÕ  r   rå  r   rð   ri  rë  rt  rG  rõ  r:  r“  r  rq   r£   rN   rL   r  r  ›  sÇ  ‡ ñð 	ƒJØGàÓØ'à�E‰?ÓØ>àÓØ*àÓØ+à%)€M�8˜E‘?Ó)Ø(à€GˆTÓØJá"°4Ñ8€FˆD��c�‰NÓ8Ø?á"'°¸5ÀuÑ"M€J�˜‘ÓMØNá!&¨t¸%ÀeÑ!L€Iˆx˜‰ÓLØNà&*€N�H˜U‘OÓ*Ø>á',Ù2¸ÀUñ(€Iˆu�^Ñ$ó ñ ˜e°UÑ;€Eˆ5Ó;Øð ˜%ô  ð ð+˜ó +ó ð+ð ð+˜8 E™?ó +ó ð+ð ð1˜ %™ó 1ó ð1ð ð.˜$ó .ó ð.ð ð˜Eó ó ðð ð�x ‘ó ó ðð" ð ¨¡ó ó ð÷#rN   r  c                   óR  • \ rS rSrSrSSSSSSSSSSS.
S	\\\4   S
\\	   S\
S\S\S\
S\
S\
S\\   S\
S\
SS4S jjr\S\\S4   4S j5       r\S\	4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\
4S j5       rSQS jrSQS jrSRS jrS\\\      S \\   S!\\   SS4S" jr    SSS#\\ \!   \"\!   4   S$\\   S%\\   S&\S'\S\ \!   4S( jjr# STSS)S*.S+\$S$\\%   S%\\   S&\S\$4
S, jjjr&\'RP                      SUSSS)S-.S+\\S.\)4   S/\*S0   S1\%S2\\   S3\\   S4\\   S$\\%   S%\\   S&\S\$4S5 jjj5       r+\'RP                      SUSSS)S-.S+\\S.\)4   S/\\*S6   \*S7   4   S1\%S2\\   S3\\   S4\\   S$\\%   S%\\   S&\S\,4S8 jjj5       r+     SVSSS)S-.S+\\S.\)4   S/\\*S0   \*S7   \*S6   4   S1\%S2\\   S3\\   S4\\   S$\\%   S%\\   S&\S\\$\,4   4S9 jjjr+S%\SS4S: jr-S%\SS4S; jr.SSSSSSS<.S%\S$\\   S=\\   S>\\   S&\\   S?\\
   S@\
SA\/SS4SB jjr0SSSCSSSD.S%\SE\
S$\\   S=\%S?\\
   S&\\   SA\/SS4SF jjr1SWS%\S>\SS4SG jjr2SQSH jr3S\44SI jr5S\ \4   4SJ jr6SK\ \   S\74SL jr8S\44SM jr9    SXS&\SE\
S$\\   S=\%S?\
SA\/S\4SN jjr:S%\SS4SO jr;SPr<g)YrB   i  a]  Renders an auto-updating progress bar(s).

Args:
    console (Console, optional): Optional Console instance. Default will an internal Console instance writing to stdout.
    auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()`.
    refresh_per_second (Optional[float], optional): Number of times per second to refresh the progress information or None to use default (10). Defaults to None.
    speed_estimate_period: (float, optional): Period (in seconds) used to calculate the speed estimate. Defaults to 30.
    transient: (bool, optional): Clear the progress on exit. Defaults to False.
    redirect_stdout: (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
    redirect_stderr: (bool, optional): Enable redirection of stderr. Defaults to True.
    get_time: (Callable, optional): A callable that gets the current time, or None to use Console.get_time. Defaults to None.
    disable (bool, optional): Disable progress display. Defaults to False
    expand (bool, optional): Expand tasks table to fit width. Defaults to False.
NTrt   g      >@F)
r}   r|   r€   Úspeed_estimate_periodr~   Úredirect_stdoutÚredirect_stderrr   r…   Úexpandr’   r}   r|   r€   r  r~   r  r  r   r…   r  rO   c       
   
      óÜ  • US:”  d   S5       e[        5       U l        U=(       d    U R                  5       U l        X@l        X�l        X l        0 U l        [        S5      U l	        [        U=(       d
    [        5       UUUUUU R                  S9U l        U=(       d    U R                  R                  U l        U R                  R                   U l        U R                  R"                  U l        g )Nr   zrefresh_per_second must be > 0)r}   r|   r€   r~   r  r  Úget_renderable)r   rå  Úget_default_columnsr’   r  r…   r  Ú_tasksr;   Ú_task_indexr3   r,   r  Úliver}   r   ÚprintÚlog)rJ   r}   r|   r€   r  r~   r  r  r   r…   r  r’   s               rL   rI   ÚProgress.__init__)  sÁ   € ð " AÓ%ÐGÐ'GÓGÐ%Ü“WˆŒ
Ø×< $×":Ñ":Ó"<ˆŒØ%:Ô"àŒØŒØ*,ˆŒÜ#)¨!£9ˆÔÜØ×,œ{›}Ø%Ø1ØØ+Ø+Ø×.Ñ.ñ
ˆŒ	ð !×9 D§L¡L×$9Ñ$9ˆŒØ—\‘\×'Ñ'ˆŒ
Ø—<‘<×#Ñ#ˆ�rN   .c                 óP   • [        S5      [        5       [        5       [        5       4$ )a  Get the default columns used for a new Progress instance:
   - a text column for the description (TextColumn)
   - the bar itself (BarColumn)
   - a text column showing completion percentage (TextColumn)
   - an estimated-time-remaining column (TimeRemainingColumn)
If the Progress instance is created without passing a columns argument,
the default columns defined here will be used.

You can also create a Progress instance using custom columns before
and/or after the defaults, as in this example:

    progress = Progress(
        SpinnerColumn(),
        *Progress.get_default_columns(),
        "Elapsed:",
        TimeElapsedColumn(),
    )

This code shows the creation of a Progress display, containing
a spinner to the left, the default columns, and a labeled elapsed
time column.
rˆ   )rŒ   rŽ   r�   r�   )r  s    rL   r  ÚProgress.get_default_columnsM  s(   € ô2 ÐAÓBÜ‹KÜÓ ÜÓ!ð	
ð 	
rN   c                 ó.   • U R                   R                  $ rY   )r  r}   r\   s    rL   r}   ÚProgress.consolel  s   € à�y‰y× Ñ Ð rN   c                 ó–   • U R                      [        U R                  R                  5       5      sSSS5        $ ! , (       d  f       g= f)zGet a list of Task instances.N)rå  Úlistr  Úvaluesr\   s    rL   ÚtasksÚProgress.tasksp  s*   € ð �Z‹ZÜ˜Ÿ™×*Ñ*Ó,Ó-÷ �Z�Zúó	   �#:º
Ac                 ó–   • U R                      [        U R                  R                  5       5      sSSS5        $ ! , (       d  f       g= f)zA list of task IDs.N)rå  r  r  Úkeysr\   s    rL   Útask_idsÚProgress.task_idsv  s*   € ð �Z‹ZÜ˜Ÿ™×(Ñ(Ó*Ó+÷ �Z�Zúr#  c                 óÚ   • U R                      U R                  (       d
   SSS5        g[        S U R                  R                  5        5       5      sSSS5        $ ! , (       d  f       g= f)z'Check if all tasks have been completed.NTc              3   ó6   #   • U H  oR                   v •  M     g 7frY   )rG  )rù  r—   s     rL   rû  Ú$Progress.finished.<locals>.<genexpr>‚  s   é € ÐFÑ1E¨—}–}Ò1Eùrý  )rå  r  Úallr   r\   s    rL   rG  ÚProgress.finished|  sC   € ð �Z‹ZØ—;—;Ø÷ ˆZô ÑF°·±×1CÑ1CÔ1EÓFÓF÷ �Z�Zús   �A©)AÁ
A*c                 óZ   • U R                   (       d  U R                  R                  SS9  gg)zStart the progress display.T)rQ   N)r…   r  r[   r\   s    rL   r[   ÚProgress.start„  s    € à�|�|Ø�I‰I�O‰O DˆOÒ)ð rN   c                 ó¤   • U R                   R                  5         U R                  R                  (       d  U R                  R	                  5         gg)zStop the progress display.N)r  rþ   r}   Úis_interactiver  r\   s    rL   rþ   ÚProgress.stop‰  s2   € à�	‰	�‰ÔØ�|‰|×*×*Ø�L‰L×ÑÕ ð +rN   c                 ó&   • U R                  5         U $ rY   rZ   r\   s    rL   r]   ÚProgress.__enter__�  r_   rN   r`   ra   rb   c                 ó$   • U R                  5         g rY   )rþ   rf   s       rL   rg   ÚProgress.__exit__“  s   € ð 	�	‰	�rN   ry   r{   rC   rz   rD   c              #   óÂ  #   • Uc  [        [        U5      5      =(       d    SnUc  U R                  XBS9nOU R                  X2S9  U R                  R
                  (       a8  [        XU5       nU H  nUv •  U=R                  S-  sl        M     SSS5        gU R                  nU R                  n	U H  nUv •  U" US5        U	" 5         M     g! , (       d  f       g= f7f)a?  Track progress by iterating over a sequence.

Args:
    sequence (Sequence[ProgressType]): A sequence of values you want to iterate over and track progress.
    total: (float, optional): Total number of steps. Default is len(sequence).
    task_id: (TaskID): Task to track. Default is new task.
    description: (str, optional): Description of task, if new task is created.
    update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.

Returns:
    Iterable[ProgressType]: An iterable of values taken from the provided sequence.
N©r{   r*   )
ro   r   Úadd_taskrT   r  r|   r?   rG   rR   rQ   )
rJ   ry   r{   rC   rz   rD   Útrack_threadÚvaluerR   rQ   s
             rL   r‘   ÚProgress.track›  s¾   é € ð( ‰=Üœ+ hÓ/Ó0×8°DˆEà‰?Ø—m‘m K�mÐ=‰Gà�K‰K˜ˆKÑ-à�9‰9×!×!Ü˜d¨]Ô;¸|Û%�EØ’KØ ×*Ò*¨aÑ/×*ñ &÷ <Ð;ð
 —l‘lˆGØ—l‘lˆGÛ!�Ø’Ù˜ Ô#Ù–	ò "÷ <Õ;üs   ‚A*CÁ,#CÂ?CÃ
CÃCr   )rC   rz   r  c                ó  • SnUb  UnO1Ub.  U R                      U R                  U   R                  nSSS5        Uc  [        S5      eUc  U R	                  XES9nOU R                  X5S9  [        XUSS9$ ! , (       d  f       NI= f)a  Track progress file reading from a binary file.

Args:
    file (BinaryIO): A file-like object opened in binary mode.
    total (int, optional): Total number of bytes to read. This must be provided unless a task with a total is also given.
    task_id (TaskID): Task to track. Default is new task.
    description (str, optional): Description of task, if new task is created.

Returns:
    BinaryIO: A readable file-like object in binary mode.

Raises:
    ValueError: When no total value can be extracted from the arguments or the task.
Nz?unable to get the total number of bytes, please specify 'total'r7  F©r˜   )rå  r  r{   Ú
ValueErrorr8  rT   r”   )rJ   r  r{   rC   rz   Útotal_bytess         rL   r  ÚProgress.wrap_fileÄ  sŒ   € ð. (,ˆØÑØ‰KØÑ Ø—“Ø"Ÿk™k¨'Ñ2×8Ñ8�÷ àÑÜØQóð ð
 ‰?Ø—m‘m K�mÐC‰Gà�K‰K˜ˆKÑ3ä�t 7¸Ñ?Ð?÷ •ús   ˜A5Á5
B)r{   rC   rz   r  r¹   r  r  r	  r
  r  c                ó   • g rY   r£   ©
rJ   r  r¹   r  r	  r
  r  r{   rC   rz   s
             rL   r  ÚProgress.openî  ó   € ð 	rN   r  r  c                ó   • g rY   r£   rB  s
             rL   r  rC  þ  rD  rN   c                ó  • SR                  [        USS95      n
U
S;  a  [        SR                  U5      5      eUS:H  nU
S:X  a$  US:X  a  [        R
                  " S[        5        S	nOU
S
;   a  US:X  a  [        S5      eUS:X  a  S	nUc  [        U5      R                  nUc  U R                  X—S9nOU R                  X‡S9  [        R                  " USUS9n[        XÀUSS9nUS;   a  [        R                  " UUUUUS9$ U$ )a«  Track progress while reading from a binary file.

Args:
    path (Union[str, PathLike[str]]): The path to the file to read.
    mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
    buffering (int): The buffering strategy to use, see :func:`io.open`.
    encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
    errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
    newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`.
    total (int, optional): Total number of bytes to read. If none given, os.stat(path).st_size is used.
    task_id (TaskID): Task to track. Default is new task.
    description (str, optional): Description of task, if new task is created.

Returns:
    BinaryIO: A readable file-like object in binary mode.

Raises:
    ValueError: When an invalid mode is given.
r6  F)Úreverse)Úbrr  r  zinvalid mode {!r}r*   rH  zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedrí   )r  r  r   zcan't have unbuffered text I/Or7  r  )r  Tr=  )r  r  )r	  r
  r  Úline_buffering)re   Úsortedr>  rZ  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizer8  rT   Úior  r”   ÚTextIOWrapper)rJ   r  r¹   r  r	  r
  r  r{   rC   rz   Ú_moderI  r–   r÷   s                 rL   r  rC    s"  € ðB —‘œ˜t¨UÑ3Ó4ˆØÐ)Ó)ÜÐ0×7Ñ7¸Ó=Ó>Ð>ð # a™ˆØ�D‹=˜Y¨!›^Ü�MŠMØsÜôð ‰IØ�kÓ!Ø˜A‹~Ü Ð!AÓBÐBØ˜a“Ø�	ð ‰=Ü˜“J×&Ñ&ˆEð ‰?Ø—m‘m K�mÐ=‰Gà�K‰K˜ˆKÑ-ô —’˜˜t¨yÑ9ˆÜ˜ w¸TÑBˆð �;ÓÜ×#Ò#ØØ!ØØØ-ñð ð ˆrN   c                 ó²   • U R                      U R                  U   nUR                  c  U R                  5       Ul        SSS5        g! , (       d  f       g= f)zÁStart a task.

Starts a task (used when calculating elapsed time). You may need to call this manually,
if you called ``add_task`` with ``start=False``.

Args:
    task_id (TaskID): ID of task.
N)rå  r  rÞ  r   )rJ   rC   r—   s      rL   Ú
start_taskÚProgress.start_task[  s:   € ð �Z‹ZØ—;‘;˜wÑ'ˆDØ�‰Ñ&Ø"&§-¡-£/�”÷ �ZŽZús   �2AÁ
Ac                 óÀ   • U R                      U R                  U   nU R                  5       nUR                  c  X2l        X2l        SSS5        g! , (       d  f       g= f)zfStop a task.

This will freeze the elapsed time on the task.

Args:
    task_id (TaskID): ID of task.
N)rå  r  r   rÞ  rß  )rJ   rC   r—   r$  s       rL   Ú	stop_taskÚProgress.stop_taski  sB   € ð �Z‹ZØ—;‘;˜wÑ'ˆDØŸ=™=›?ˆLØ�‰Ñ&Ø".”Ø)ŒN÷ �ZŽZús   �9AÁ
A)r{   rG   rR   rz   rØ  rQ   rG   rR   rØ  rQ   rÚ  c                óp  • U R                      U R                  U   n	U	R                  n
Ub%  X)R                  :w  a  X)l        U	R	                  5         Ub  U	=R                  U-  sl        Ub  X9l        Ub  XYl        Ub  Xil        U	R                  R                  U5        U	R                  U
-
  nU R                  5       nXÀR                  -
  nU	R                  nUR                  nU(       a6  US   R                  U:  a#  U" 5         U(       a  US   R                  U:  a  M#  US:”  a  UR                  [        XË5      5        U	R                  b8  U	R                  U	R                  :¼  a  U	R                   c  U	R"                  U	l        SSS5        U(       a  U R%                  5         gg! , (       d  f       N'= f)aH  Update information associated with a task.

Args:
    task_id (TaskID): Task id (returned by add_task).
    total (float, optional): Updates task.total if not None.
    completed (float, optional): Updates task.completed if not None.
    advance (float, optional): Add a value to task.completed if not None.
    description (str, optional): Change task description if not None.
    visible (bool, optional): Set visible flag if not None.
    refresh (bool): Force a refresh of progress information. Default is False.
    **fields (Any): Additional data fields required for rendering.
Nr   )rå  r  rG   r{   r  rz   rØ  rÚ  rT   r   r  rä  Úpopleftr%  ÚappendrÕ  rs  rt  rQ   )rJ   rC   r{   rG   rR   rz   rØ  rQ   rÚ  r—   Úcompleted_startÚupdate_completedr$  Úold_sample_timerä  rY  s                   rL   rT   ÚProgress.updatex  sb  € ð0 �Z‹ZØ—;‘;˜wÑ'ˆDØ"Ÿn™nˆOàÑ  U¯j©jÓ%8Ø"”
Ø—‘”ØÑ"Ø—’ 'Ñ)•ØÑ$Ø!*”ØÑ&Ø#.Ô ØÑ"Ø&”Ø�K‰K×Ñ˜vÔ&Ø#Ÿ~™~°Ñ?ÐàŸ=™=›?ˆLØ*×-GÑ-GÑGˆOØŸ™ˆIà×'Ñ'ˆGÞ 	¨!¡× 6Ñ 6¸Ó HÙ”	ö  	¨!¡× 6Ñ 6¸Õ Hà !Ó#Ø× Ñ ¤°Ó!OÔPà—
‘
Ñ&Ø—N‘N d§j¡jÓ0Ø×&Ñ&Ñ.à%)§\¡\�Ô"÷A öD Ø�L‰L�Nð ÷E �Zús   �DF'Ä!A%F'Æ'
F5r   )r[   r{   rG   rØ  rz   r[   c                óX  • U R                  5       nU R                     U R                  U   n	U	R                  5         U(       a  UOSU	l        Ub  X9l        XIl        Ub  XYl        U(       a  Xyl        Ub  Xil	        SU	l
        SSS5        U R                  5         g! , (       d  f       N= f)a@  Reset a task so completed is 0 and the clock is reset.

Args:
    task_id (TaskID): ID of task.
    start (bool, optional): Start the task after reset. Defaults to True.
    total (float, optional): New total steps in task, or None to use current total. Defaults to None.
    completed (int, optional): Number of steps completed. Defaults to 0.
    visible (bool, optional): Enable display of the task. Defaults to True.
    description (str, optional): Change task description if not None. Defaults to None.
    **fields (str): Additional data fields required for rendering.
N)r   rå  r  r  rÞ  r{   rG   rØ  rÚ  rz   rs  rQ   )
rJ   rC   r[   r{   rG   rØ  rz   rÚ  r$  r—   s
             rL   ÚresetÚProgress.resetµ  s‡   € ð, —}‘}“ˆØ�Z‹ZØ—;‘;˜wÑ'ˆDØ�K‰KŒMÞ.3™l¸ˆDŒOØÑ Ø"”
Ø&ŒNØÑ"Ø&”ÞØ$”ØÑ&Ø#.Ô Ø!%ˆDÔ÷ ð 	�‰�÷ �Zús   �A%BÂ
B)c                 óâ  • U R                  5       nU R                     U R                  U   nUR                  nU=R                  U-  sl        UR                  U-
  nX0R                  -
  nUR
                  nUR                  n	U(       a6  US   R                  U:  a#  U	" 5         U(       a  US   R                  U:  a  M#  [        U5      S:”  a  U	" 5         [        U5      S:”  a  M  UR                  [        X65      5        UR                  bI  UR                  UR                  :¼  a/  UR                  c"  UR                  Ul        UR                  Ul        SSS5        g! , (       d  f       g= f)z‹Advance task by a number of steps.

Args:
    task_id (TaskID): ID of task.
    advance (float): Number of steps to advance. Default is 1.
r   r}  N)r   rå  r  rG   r  rä  rY  r%  rª   rZ  rÕ  r{   rs  rt  r:  r†  )
rJ   rC   rR   r$  r—   r[  r\  r]  rä  rY  s
             rL   rR   ÚProgress.advanceÜ  s  € ð —}‘}“ˆØ�Z‹ZØ—;‘;˜wÑ'ˆDØ"Ÿn™nˆOØ�NŠN˜gÑ%�NØ#Ÿ~™~°Ñ?ÐØ*×-GÑ-GÑGˆOØŸ™ˆIà×'Ñ'ˆGÞ 	¨!¡× 6Ñ 6¸Ó HÙ”	ö  	¨!¡× 6Ñ 6¸Õ Hä�i“. 4Ó'Ù”	ô �i“. 4Õ'à×Ñœ^¨LÓKÔLà—
‘
Ñ&Ø—N‘N d§j¡jÓ0Ø×&Ñ&Ñ.à%)§\¡\�Ô"Ø&*§j¡j�Ô#÷) �ZŽZús   �B!E Ã %E Ã'A0E Å 
E.c                 ó”   • U R                   (       d7  U R                  R                  (       a  U R                  R                  5         ggg)z*Refresh (render) the progress information.N)r…   r  Ú
is_startedrQ   r\   s    rL   rQ   ÚProgress.refreshú  s,   € à�|�| §	¡	× 4× 4Ø�I‰I×ÑÕð !5ˆ|rN   c                 ó2   • [        U R                  5       6 nU$ )z*Get a renderable for the progress display.)r.   Úget_renderables)rJ   r&  s     rL   r  ÚProgress.get_renderableÿ  s   € ä˜D×0Ñ0Ó2Ð3ˆ
ØÐrN   c              #   óJ   #   • U R                  U R                  5      nUv •  g7f)z5Get a number of renderables for the progress display.N)Úmake_tasks_tabler!  )rJ   Útables     rL   rh  ÚProgress.get_renderables  s   é € à×%Ñ% d§j¡jÓ1ˆØ‹ùs   ‚!#r!  c                 óî   ^• S U R                    5       n[        R                  " USU R                  S.6nU H9  mTR                  (       d  M  UR
                  " U4S jU R                    5       6   M;     U$ )z¯Get a table to render the Progress display.

Args:
    tasks (Iterable[Task]): An iterable of Task instances, one per row of the table.

Returns:
    Table: A table instance.
c              3   ó˜   #   • U HA  n[        U[        5      (       a	  [        S S9OUR                  5       R	                  5       v •  MC     g7f)TrT  N)r?  rò   r7   r  Úcopy)rù  Ú_columns     rL   rû  Ú,Progress.make_tasks_table.<locals>.<genexpr>  sI   é € ð 
ñ (�ô ˜g¤s×+Ñ+ô ˜tÒ$à×-Ñ-Ó/×4Ñ4Ó6ô7ò (ùs   ‚AA
)r   r*   )Úpaddingr  c              3   óz   >#   • U H1  n[        U[        5      (       a  UR                  TS 9OU" T5      v •  M3     g7f)rY  N)r?  rò   rZ  )rù  Úcolumnr—   s     €rL   rû  rr    sB   øé € ð ñ '3˜Fô  *¨&´#×6Ñ6ð #ŸM™M¨t˜MÑ4á!'¨£ô.ò '3ùs   ƒ8;)r’   r8   Úgridr  rØ  Úadd_row)rJ   r!  Útable_columnsrl  r—   s       @rL   rk  ÚProgress.make_tasks_table	  si   ø€ ñ
ð  Ÿ<š<ó
ˆô —
’
˜M°6À$Ç+Á+ÒNˆãˆDØ�|�|‰|Ø—’ôð '+§l¢lóó	ñ ð ˆrN   c                 óp   • U R                      U R                  5       sSSS5        $ ! , (       d  f       g= f)z+Makes the Progress class itself renderable.N)rå  r  r\   s    rL   Ú__rich__ÚProgress.__rich__*  s   € à�Z‹ZØ×&Ñ&Ó(÷ �Z�Zús   �'§
5c                 ó¦  • U R                      [        U R                  UUUUUU R                  U R                   S9nXpR                  U R                  '   U(       a  U R                  U R                  5        U R                  n[        [        U R                  5      S-   5      U l        SSS5        U R                  5         W$ ! , (       d  f       N = f)a¹  Add a new 'task' to the Progress display.

Args:
    description (str): A description of the task.
    start (bool, optional): Start the task immediately (to calculate elapsed time). If set to False,
        you will need to call `start` manually. Defaults to True.
    total (float, optional): Number of total steps in the progress if known.
        Set to None to render a pulsing animation. Defaults to 100.
    completed (int, optional): Number of steps completed so far. Defaults to 0.
    visible (bool, optional): Enable display of the task. Defaults to True.
    **fields (str): Additional data fields required for rendering.

Returns:
    TaskID: An ID you can use when calling `update`.
)rØ  rÚ  r×  rå  r*   N)	rå  r  r  r   r  rS  r;   rñ   rQ   )	rJ   rz   r[   r{   rG   rØ  rÚ  r—   Únew_task_indexs	            rL   r8  ÚProgress.add_task/  sª   € ð0 �Z‹ZÜØ× Ñ ØØØØØØŸ-™-Ø—j‘jñ	ˆDð -1�K‰K˜×(Ñ(Ñ)ÞØ—‘ × 0Ñ 0Ô1Ø!×-Ñ-ˆNÜ%¤c¨$×*:Ñ*:Ó&;¸aÑ&?Ó@ˆDÔ÷ ð  	�‰ŒØÐ÷# �Zús   �BCÃ
Cc                 ój   • U R                      U R                  U	 SSS5        g! , (       d  f       g= f)zEDelete a task if it exists.

Args:
    task_id (TaskID): A task ID.

N)rå  r  )rJ   rC   s     rL   Úremove_taskÚProgress.remove_taskZ  s!   € ð �Z‹ZØ—‘˜GÐ$÷ �ZŽZús   �$¤
2)rå  r  r  r’   r…   r  r   r  r  r  r  ri   )rO   rB   )NNú
Working...çš™™™™™¹?rY   ©rí   NNN©r  rí   NNN)r*   )Tró  r   T)=rj   rk   rl   rm   rn   r&   rò   r  r    r-   rî   ro   r
  rI   rˆ  r#   r  rð   r}   r   r  r!  r;   r&  rG  r[   rþ   r]   r$   rp   r   rg   r   r<   r!   r‘   r   rñ   r  ÚtypingÚoverloadrï   r)   r  r"   rS  rV  r   rT   r`  rR   rQ   r0   r  rh  r8   rk  r{  r8  r�  rq   r£   rN   rL   rB   rB     s·  † ñð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØò"$à˜˜^Ð+Ñ,ð"$ð ˜'Ñ"ð"$ð ð	"$ð
 "ð"$ð  %ð"$ð ð"$ð ð"$ð ð"$ð ˜?Ñ+ð"$ð ð"$ð ð"$ð 
õ"$ðH ð
 E¨.¸#Ð*=Ñ$>ó 
ó ð
ð< ð!˜ó !ó ð!ð ð.�t˜D‘zó .ó ð.ð
 ð,˜$˜v™,ó ,ó ð,ð
 ðG˜$ó Gó ðGô*ô
!ôðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
ôð "&Ø$(Ø'Ø"ñ'à˜ Ñ.°¸Ñ0FÐFÑGð'ð ˜‰ð'ð ˜&Ñ!ð	'ð
 ð'ð ð'ð 
�,Ñ	õ'ðX  $ð(@ð
 %)Ø'ò(@àð(@ð ˜‰}ð(@ð
 ˜&Ñ!ð(@ð ð(@ð 
ö(@ðT ‡_�_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'òà�C˜¨%Ð/Ñ0ðð �d‰mðð ð	ð
 ˜3‘-ðð ˜‘ðð ˜#‘ðð ˜‰}ðð ˜&Ñ!ðð ðð 
õó ðð ‡_�_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'òà�C˜¨%Ð/Ñ0ðð �G˜C‘L '¨$¡-Ð/Ñ0ðð ð	ð
 ˜3‘-ðð ˜‘ðð ˜#‘ðð ˜‰}ðð ˜&Ñ!ðð ðð 
õó ðð$ CFØØ"&Ø $Ø!%ðKð  $Ø$(Ø'òKà�C˜¨%Ð/Ñ0ðKð �G˜D‘M 7¨4¡=°'¸#±,Ð>Ñ?ðKð ð	Kð
 ˜3‘-ðKð ˜‘ðKð ˜#‘ðKð ˜‰}ðKð ˜&Ñ!ðKð ðKð 
ˆx˜ÐÑ	 öKðZ2 &ð 2¨Tô 2ð* ð *¨Dô *ð& "&Ø%)Ø#'Ø%)Ø"&Øò;àð;ð ˜‰ð	;ð
 ˜E‘?ð;ð ˜%‘ð;ð ˜c‘]ð;ð ˜$‘ð;ð ð;ð ð;ð 
õ;ðB Ø!%ØØ"&Ø%)ò%àð%ð ð	%ð
 ˜‰ð%ð ð%ð ˜$‘ð%ð ˜c‘]ð%ð ð%ð 
õ%ñN1˜vð 1°ð 1¸dõ 1ô< ð
 ô ð
 ¨.Ñ!9ô ð
 h¨t¡nð ¸ô ðB)˜.ô )ð Ø!&ØØñ)àð)ð ð)ð ˜‰ð	)ð
 ð)ð ð)ð ð)ð 
õ)ðV% 6ð %¨d÷ %rN   rB   Ú__main__)ÚPanel)ÚRule)ÚSyntax)r8   a~  def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_valueÚpython)Úline_numbersÚfooÚbarÚbazÚ1Ú2Ú3z:Text may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...ÚexamplezPretty printed)ÚtyperH  z	Syntax...zGive it a try!)Úcycle)Úrecord)r}   r~   z[red]Downloadingr}  r7  z[green]Processingz[yellow]ThinkingrŠ  r¨   g333333Ó?g{®Gáz„?éd   )rƒ  NTNFNrt   ru   rv   rw   rx   r„  FTr…  r†  )‡rO  Úsysr‡  rK  Úabcr   r   Úcollectionsr   Údataclassesr   r   Údatetimer	   r
   r   Úmathr   r   Úoperatorr   Úosr   r   Ú	threadingr   r   r   Útypesr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úversion_infor)   Úpip._vendor.typing_extensionsr6  r+   r,   r}   r-   r.   r/   r0   rR  r1   Újupyterr2   r  r3   Úprogress_barr4   r>  r5   r�   r6   rl  r7   r8   rH  r9   r:   rñ   r;   r<   ro   r
  r=   r?   rò   rî   r‘   r”   rö   r  rˆ  rï   r  r  r.  r8  rŒ   rŽ   rm  r�   r�   r›  r£  r§  r  rÑ  rÕ  r  rB   rj   ÚrandomÚtimeÚpanelrŠ  Úruler‹  ÚsyntaxrŒ  rw  Úprogress_renderablesÚ	itertoolsr—  Úexamplesr  rA   r8  Útask1Útask2Útask3rG  rT   ÚsleepÚrandintr  r©   r£   rN   rL   Ú<module>rµ     sT	  ðÛ 	Û 
Û Û ß #Ý ß (Ý ß .Ý Ý Ý  ß ß *Ñ *Ý ÷÷ ÷ ÷ ÷ ð* ×Ñ�vÓÞå5ç #ß BÓ BÝ $Ý !Ý Ý %Ý Ý ß  ß  á	�˜3Ó	€á�~Ó&€à˜2˜u˜9Ñ%€ð ‡^‚^�D˜& (Ó+€ô%�6ô %ðT $Ø!ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØñC
Ø�H˜\Ñ*¨H°\Ñ,BÐBÑCðC
àðC
ð �E‰?ðC
ð ð	C
ð
 �gÑðC
ð ðC
ð �x  E 	Ñ*Ñ+ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð  ˆlÑõ!C
ôLa,ˆi˜ô a,ôH8�> "Ñ% w¨r¡{ô 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò>*Ø
ð>*àð>*ð ð	>*ð
 ð>*ð �gÑð>*ð ð>*ð �x  E 	Ñ*Ñ+ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð �HÑõ>*ðB ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'	Ø
��_ eÐ+Ñ
,ð	à
�˜‘˜w s™|Ð+Ñ
,ð	ð ð	ð �s‰mð		ð
 �S‰Mð	ð �c‰]ð	ð �C‰=ð	ð ð	ð ð	ð �gÑð	ð ð	ð �x  E 	Ñ*Ñ+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �FÑõ)	ó ð	ð0 ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'	Ø
��_ eÐ+Ñ
,ð	à
�$‰-ð	ð ð	ð �s‰mð		ð
 �S‰Mð	ð �c‰]ð	ð �C‰=ð	ð ð	ð ð	ð �gÑð	ð ð	ð �x  E 	Ñ*Ñ+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �HÑõ)	ó ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'S*Ø
��_ eÐ+Ñ
,ðS*à
�˜‘˜w t™}¨g°c©lÐ:Ñ
;ðS*ð ðS*ð �s‰mð	S*ð
 �S‰MðS*ð �c‰]ðS*ð �C‰=ðS*ð ðS*ð ðS*ð �gÑðS*ð ðS*ð �x  E 	Ñ*Ñ+ðS*ð ðS*ð ðS*ð  ð!S*ð" ð#S*ð$ ð%S*ð& ð'S*ð( ˆ>˜(Ñ# ^°FÑ%;Ð;Ñ<ö)S*ôl'1�Sô '1ôT�~ô ô"/�Nô /ôd�ô ô<'
�ô '
ôT	:˜ô 	:ôE˜ô EôP-,˜.ô -,ô`:�^ô :ô@˜.ô @ô
˜ô 
ô6.�^ô .ôb	D˜.ô 	Dô%�Zô %ð ÷z#ð z#ó ðz#ôzI	%ˆ|ô I	%ðX ˆzÔÛÛåÝÝÝáð
	"ð 	Øñ€Fñ  �%˜ Ó&€EØ	‡M�M�#�s˜CÔ ð 	EÙÐ8Ó9Ø'ØØ&ØÐ$4Ñ5ØØÙÐÓð
Ðõ  áÐ)Ó*€Há˜TÑ"€Gá	Ù‹ð
à	×	%Ñ	%Ó	'ð
ñ 	Óñ
ð Øó
ð 
Ø×!Ñ!Ð"4¸DÐ!ÐAˆØ×!Ñ!Ð"5¸TÐ!ÐBˆØ×!Ñ!Ð"4¸DÐ!ÐAˆà×#×#Ð#Ø�OŠO˜E¨3ˆOÑ/Ø�OŠO˜E¨3ˆOÑ/Ø�J‹J�tÔØ�~‹~˜a Ó%¨Ó)Ø—’™T (›^Ô,ð ×#×#Ò#÷
ð 
ð] ÷\
õ 
ús   ÒB:UÕ
U