ó
    Eñiéë  ã                  ó@	  • S SK J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/J0r0J1r1  \(       a  S SK2J3r3  SSK4J5r5J6r6  SSK7J8r8J9r9J:r:J;r;  SSK<J=r=  SSK>J?r?  SSK@JArA  SSKBJCrC  SSKDJErE  SSKFJGrG  SSKHJIrIJJrJ  SSKKJLrLJMrM  \+" S\N5      rO\0" S5      rP\"/ \Q4   rR\R`                  " S\-\!5      rS " S S\5      rT               Sw                                 SxS' jjrU " S( S)\\!5      rV " S* S+\#\S   \&\S   5      rWS,S SS!SS"S#S$S%S&S!S-.                           SyS. jjrX\R²                      SzSS,S SS!SS"S#S$S%S&S!S/.                                     S{S0 jjj5       rZ\R²                      SzSS,S SS!SS"S#S$S%S&S!S/.                                     S|S1 jjj5       rZ     S}SS,S SS!SS"S#S$S%S&S!S/.                                     S~S2 jjjrZ " S3 S4\5      r[ " S5 S6\[5      r\ " S7 S8\[5      r] " S9 S:\[5      r^ " S; S<\[5      r_ " S= S>\[5      r` " S? S@\^5      ra " SA SB\[5      rb " SC SD\[5      rc " SE SF\[5      rd " SG SH\[5      re " SI SJ\[5      rf " SK SL\[5      rg " SM SN\*5      rh\ " SO SP5      5       ri " SQ SR\?5      rj\kSS:X  Ga]  S SKlrlS SKmrmSSTKnJoro  SSUKpJqrq  SSVKrJsrs  SSWKHJJrJ  \s" SXSYS SZ9rr\J" S[S\S]5      rH\HRé                  S^S_S`5        Sa\o" Sb5      Sc\HSdSeSfSg.Sh\r\q" Si5      /	ruS SjKvJwrw  \w" \u5      rx\8" S Sk9r7\j" \]" 5       /\jRó                  5       Q\`" 5       P7\7S!Sl.6 rz\zR÷                  SmSnSo9r|\zR÷                  SpSnSo9r}\zR÷                  SqSSo9r~\zRþ                  (       dx  \zGR                  \|SrSs9  \zGR                  \}StSs9  \mGR                  " Su5        \lGR                  " S Sv5      S:  a  \zGR                  \„" \x5      5        \zRþ                  (       d  Mx  SSS5        gg! , (       d  f       g= f)é    )ÚannotationsN)ÚABCÚabstractmethod©Údeque)Ú	dataclassÚfield)Ú	timedelta)Ú	RawIOBaseÚUnsupportedOperation)Úceil)Úmmap)Úlength_hint)ÚPathLikeÚstat)ÚEventÚRLockÚThread)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚBinaryIOÚCallableÚContextManagerÚDequeÚDictÚGenericÚIterableÚListÚLiteralÚ
NamedTupleÚNewTypeÚOptionalÚTextIOÚTupleÚTypeÚTypeVarÚUnion)ÚSelfé   )Ú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U 4S jjrS	S jrS
S jr        SS jrSr	U =r
$ )Ú_TrackThreadé@   z)A thread to periodically update progress.c                óp   >• Xl         X l        X0l        [        5       U l        SU l        [        TU ]  SS9  g )Nr   T)Údaemon)ÚprogressÚtask_idÚupdate_periodr   ÚdoneÚ	completedÚsuperÚ__init__)ÚselfrC   rD   rE   Ú	__class__s       €ÚJ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rich/progress.pyrI   Ú_TrackThread.__init__C   s3   ø€ Ø ŒØŒØ*ÔÜ“GˆŒ	àˆŒÜ‰Ñ ÐÒ%ó    c                óö  • U R                   nU R                  R                  nU R                  nSnU R                  R
                  nU" U5      (       dw  U R                  R                  R                  (       aR  U R                  nXF:w  a  U" XU-
  5        UnU" U5      (       d'  U R                  R                  R                  (       a  MR  U R                  R                  U R                   U R                  SS9  g )Nr   T)rG   Úrefresh)
rD   rC   ÚadvancerE   rF   ÚwaitÚliveÚ
is_startedrG   Úupdate)rJ   rD   rQ   rE   Úlast_completedrR   rG   s          rL   ÚrunÚ_TrackThread.runL   sº   € Ø—,‘,ˆØ—-‘-×'Ñ'ˆØ×*Ñ*ˆØˆØ�y‰y�~‰~ˆÙ�}×%Ñ%¨$¯-©-×*<Ñ*<×*G×*GØŸ™ˆIØÓ*Ù˜¨^Ñ!;Ô<Ø!*�ñ	 �}×%Ñ%¨$¯-©-×*<Ñ*<×*G×*GÑ*Gð 	�‰×Ñ˜TŸ\™\°T·^±^ÈTÐÒRrN   c                ó&   • U R                  5         U $ ©N©Ústart©rJ   s    rL   Ú	__enter__Ú_TrackThread.__enter__Z   ó   € Ø�
‰
ŒØˆrN   c                óX   • U R                   R                  5         U R                  5         g rZ   )rF   ÚsetÚjoin©rJ   Úexc_typeÚexc_valÚexc_tbs       rL   Ú__exit__Ú_TrackThread.__exit__^   s   € ð 	�	‰	�‰ŒØ�	‰	�rN   )rG   rF   rC   rD   rE   )rC   ú
'Progress'rD   z'TaskID'rE   Úfloat©ÚreturnÚNone)rm   z'_TrackThread'©re   zOptional[Type[BaseException]]rf   zOptional[BaseException]rg   zOptional[TracebackType]rm   rn   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rI   rW   r^   rh   Ú__static_attributes__Ú__classcell__©rK   s   @rL   r?   r?   @   sF   ø† Ù3÷&ôSôðà/ðð )ðð (ð	ð
 
÷ò rN   r?   TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulsec           
   #  ó2  #   • 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                  U UUUUS9 S	h  v•N   S	S	S	5        g	 N! , (       d  f       g	= f7f)
aU  Track progress by iterating over a sequence.

You can also track progress of an iterable, which might require that you additionally specify ``total``.

Args:
    sequence (Iterable[ProgressType]): Values you wish to iterate over and track progress.
    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).
    completed (int, optional): Number of steps completed so far. Defaults to 0.
    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}©ÚstyleÚcomplete_styleÚfinished_styleÚpulse_style)Ú
show_speedT)Úelapsed_when_finishedrx   ©Úauto_refreshÚconsoleÚ	transientÚget_timeÚrefresh_per_secondÚdisable)ÚtotalrG   ÚdescriptionrE   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnÚProgressÚtrack)ÚsequencerŽ   r�   rG   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rE   rŒ   r„   ÚcolumnsrC   s                     rL   r•   r•   h   sÁ   é € öX EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ñ	ô ¨*Ñ5Ü°dÑ;ð		
ôô Ø	Ø!ØØØØ-×3°Øò€Hò 
Ø—>‘>ØØØØ#Ø'ð "ð 
÷ 	
ð 	
÷ 
ˆñ	
÷ 
�üs0   ‚ABÁBÁ6BÁ7BÁ;	BÂBÂ
BÂBc                  óJ  • \ rS rSrSr S         SS jjrSS jr        SS jrSS jrS S jr	\
S!S j5       rS"S	 jrS!S
 jr\
S#S j5       r\
S#S j5       rS!S jrS!S jrS!S jrS$S%S jjrS&S jrS$S%S jjrS$S'S jjrS(S jrS)S*S jjrS"S jrS+S jrS,S jrSrg)-Ú_Readeré¶   z9A reader that tracks progress while it's being read from.c                óB   • Xl         X l        X0l        X@l        SU l        g ©NF)ÚhandlerC   ÚtaskÚclose_handleÚ_closed)rJ   r�   rC   rž   rŸ   s        rL   rI   Ú_Reader.__init__¹   s    € ð ŒØ ŒØŒ	Ø(ÔØˆ�rN   c                ó:   • U R                   R                  5         U $ rZ   )r�   r^   r]   s    rL   r^   Ú_Reader.__enter__Æ   s   € Ø�‰×ÑÔØˆrN   c                ó$   • U R                  5         g rZ   )Úcloserd   s       rL   rh   Ú_Reader.__exit__Ê   s   € ð 	�
‰
�rN   c                ó   • U $ rZ   © r]   s    rL   Ú__iter__Ú_Reader.__iter__Ò   s   € ØˆrN   c                óŠ   • [        U R                  5      nU R                  R                  U R                  [        U5      S9  U$ ©N©rQ   )Únextr�   rC   rQ   rž   Úlen)rJ   Úlines     rL   Ú__next__Ú_Reader.__next__Õ   s4   € Ü�D—K‘KÓ ˆØ�‰×Ñ˜dŸi™i´°T³ÐÑ;ØˆrN   c                ó   • U R                   $ rZ   )r    r]   s    rL   ÚclosedÚ_Reader.closedÚ   s   € à�|‰|ÐrN   c                ó6   • U R                   R                  5       $ rZ   )r�   Úfilenor]   s    rL   r·   Ú_Reader.filenoÞ   ó   € Ø�{‰{×!Ñ!Ó#Ð#rN   c                ó6   • U R                   R                  5       $ rZ   )r�   Úisattyr]   s    rL   r»   Ú_Reader.isattyá   r¹   rN   c                ó.   • U R                   R                  $ rZ   )r�   Úmoder]   s    rL   r¾   Ú_Reader.modeä   ó   € à�{‰{×ÑÐrN   c                ó.   • U R                   R                  $ rZ   )r�   Únamer]   s    rL   rÂ   Ú_Reader.nameè   rÀ   rN   c                ó6   • U R                   R                  5       $ rZ   )r�   Úreadabler]   s    rL   rÅ   Ú_Reader.readableì   ó   € Ø�{‰{×#Ñ#Ó%Ð%rN   c                ó6   • U R                   R                  5       $ rZ   )r�   Úseekabler]   s    rL   rÉ   Ú_Reader.seekableï   rÇ   rN   c                ó   • grœ   r¨   r]   s    rL   ÚwritableÚ_Reader.writableò   s   € ØrN   c                ó–   • U R                   R                  U5      nU R                  R                  U R                  [        U5      S9  U$ r¬   )r�   ÚreadrC   rQ   rž   r¯   )rJ   ÚsizeÚblocks      rL   rÏ   Ú_Reader.readõ   s:   € Ø—‘× Ñ  Ó&ˆØ�‰×Ñ˜dŸi™i´°U³ÐÑ<ØˆrN   c                ó„   • U R                   R                  U5      nU R                  R                  U R                  US9  U$ r¬   )r�   ÚreadintorC   rQ   rž   )rJ   ÚbÚ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�   ÚreadlinerC   rQ   rž   r¯   )rJ   rÐ   r°   s      rL   rÙ   Ú_Reader.readlineÿ   s:   € Ø�{‰{×#Ñ# DÓ)ˆØ�‰×Ñ˜dŸi™i´°T³ÐÑ;ØˆrN   c           	     ó²   • U R                   R                  U5      nU R                  R                  U R                  [        [        [        U5      5      S9  U$ r¬   )r�   Ú	readlinesrC   rQ   rž   ÚsumÚmapr¯   )rJ   ÚhintÚ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   c                ó„   • U R                   R                  X5      nU R                  R                  U R                  US9  U$ )N©rG   )r�   ÚseekrC   rU   rž   )rJ   ÚoffsetÚwhenceÚposs       rL   ræ   Ú_Reader.seek  s6   € Ø�k‰k×Ñ˜vÓ.ˆØ�‰×Ñ˜TŸY™Y°#ÐÑ6Øˆ
rN   c                ó6   • U R                   R                  5       $ rZ   )r�   Útellr]   s    rL   rì   Ú_Reader.tell  s   € Ø�{‰{×ÑÓ!Ð!rN   c                ó   • [        S5      e)NÚwrite©r   )rJ   Úss     rL   rï   Ú_Reader.write  s   € Ü" 7Ó+Ð+rN   c                ó   • [        S5      e)NÚ
writelinesrð   )rJ   rà   s     rL   rô   Ú_Reader.writelines  s   € Ü" <Ó0Ð0rN   )r    rŸ   r�   rC   rž   N)T)
r�   r   rC   rj   rž   r;   rŸ   Úboolrm   rn   )rm   z	'_Reader'ro   )rm   r   )rm   Úbytes©rm   rö   )rm   Úint)rm   Ústr)éÿÿÿÿ)rÐ   rù   rm   r÷   )rÕ   z"Union[bytearray, memoryview, mmap])rß   rù   rm   zList[bytes]rl   )r   )rç   rù   rè   rù   rm   rù   )rñ   r   rm   rù   )rà   zIterable[Any]rm   rn   )rp   rq   rr   rs   rt   rI   r^   rh   r©   r±   Úpropertyr´   r·   r»   r¾   rÂ   rÅ   rÉ   rÌ   rÏ   rÔ   rÙ   rÜ   r¥   ræ   rì   rï   rô   ru   r¨   rN   rL   r™   r™   ¶   sû   † ÙCð "ðàðð ðð ð	ð
 ðð 
õôðà/ðð )ðð (ð	ð
 
ôôôð
 óó ðô$ô$ð ó ó ð ð ó ó ð ô&ô&ôöô
ö
ö
ô
ö
ô
"ô,÷1rN   r™   c                  óF   • \ rS rSrSrSS jrS	S jr        S
S jrSrg)Ú_ReadContexti  zEA utility class to handle a context for both a reader and a progress.c                ó   • Xl         X l        g rZ   ©rC   Úreader)rJ   rC   r  s      rL   rI   Ú_ReadContext.__init__   s   € Ø ŒØ �rN   c                ój   • U R                   R                  5         U R                  R                  5       $ rZ   )rC   r\   r  r^   r]   s    rL   r^   Ú_ReadContext.__enter__$  s%   € Ø�‰×ÑÔØ�{‰{×$Ñ$Ó&Ð&rN   c                óp   • U R                   R                  5         U R                  R                  XU5        g rZ   )rC   Ústopr  rh   rd   s       rL   rh   Ú_ReadContext.__exit__(  s(   € ð 	�‰×ÑÔØ�‰×Ñ˜X°Õ7rN   r   N)rC   rj   r  r=   rm   rn   )rm   r=   ro   )	rp   rq   rr   rs   rt   rI   r^   rh   ru   r¨   rN   rL   rþ   rþ     s:   † ÙOô!ô'ð8à/ð8ð )ð8ð (ð	8ð
 
÷8rN   rþ   ú
Reading...)rŽ   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rŒ   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                  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   rx   r†   )r�   rŽ   )r�   r�   r‘   ÚDownloadColumnr“   r”   Ú	wrap_filerþ   )Úfiler�   rŽ   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rŒ   r—   rC   r  s                   rL   r  r  2  sš   € öJ EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ñ	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-×3°Øò€Hð ×Ñ ¸{ÐÐK€FÜ˜Ó)Ð)rN   )r�   rŽ   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rŒ   c               ó   • g rZ   r¨   ©r  r¾   Ú	bufferingÚencodingÚerrorsÚnewliner�   rŽ   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rŒ   s                     rL   Úopenr  s  ó   € ð, 	rN   c               ó   • g rZ   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   rx   r†   )r¾   r  r  r  r  r�   rŽ   )r�   r�   r‘   r
  r“   r”   r  rþ   )r  r¾   r  r  r  r  r�   rŽ   r‡   rˆ   r‰   rŠ   r‹   r€   r�   r‚   rƒ   rŒ   r—   rC   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 jjrSS jrSS jr	\
SS	 j5       rS
rg)ÚProgressColumniû  z3Base class for a widget to use in progress display.NúOptional[float]Úmax_refreshc                ó,   • Xl         0 U l        S U l        g rZ   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rJ   Útable_columns     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   c                ó:  • 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  rZ   )r  úOptional[Column]rm   rn   )rm   r7   ©rž   ú'Task'rm   r0   )rp   rq   rr   rs   rt   r  Ú__annotations__rI   r"  r+  r   r'  ru   r¨   rN   rL   r  r  û  s2   ‡ Ù=à#'€K�Ó'ö2ô
.ôð. ó1ó ó1rN   r  c                  óN   ^ • \ rS rSrSr SSS.   S	U 4S jjjjrS
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  c               ó,   >• Xl         [        TU ]	  US9  g ©Nr6  )r*  rH   rI   )rJ   r*  r  rK   s      €rL   rI   ÚRenderableColumn.__init__,  s   ø€ ð %ŒÜ‰Ñ lÐÒ3rN   c                ó   • U R                   $ rZ   ©r*  r.  s     rL   r'  ÚRenderableColumn.render2  s   € Ø�‰ÐrN   r;  )Ú )r*  r0   r  r0  r1  ©	rp   rq   rr   rs   rt   rI   r'  ru   rv   rw   s   @rL   r5  r5  %  s9   ø† ñð ,.ð4ØSWñ4Ø(ð4Ø@P÷4ñ 4÷ò rN   r5  c                  óz   ^ • \ rS rSrSr     S         SU 4S jjjr  S	       S
S jjrSS jrSrU =r	$ )ÚSpinnerColumni6  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 " ".
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€   Úspeedr6  )	r5   ÚspinnerÚ
isinstancerú   r9   Úfrom_markupÚfinished_textrH   rI   )rJ   Úspinner_namer€   rC  rG  r  rK   s         €rL   rI   ÚSpinnerColumn.__init__@  sO   ø€ ô ˜|ÀÑFˆŒô ˜-¬×-Ñ-ô ×Ò˜]Ô+àð 	Ôô
 	‰Ñ lÐÒ3rN   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.
rB  N)r5   rD  )rJ   rH  Úspinner_stylerC  s       rL   Úset_spinnerÚSpinnerColumn.set_spinnerP  s   € ô ˜|ÈÑNˆ�rN   c                ó–   • UR                   (       a  U R                  nU$ U R                  R                  UR	                  5       5      nU$ rZ   )ÚfinishedrG  rD  r'  rŠ   )rJ   rž   Útexts      rL   r'  ÚSpinnerColumn.render_  sH   € ð �}�}ð ×Ñð 	ð
 ˆð —‘×$Ñ$ T§]¡]£_Ó5ð 	ð
 ˆrN   )rG  rD  )Údotsúprogress.spinnerç      ð?Ú N)
rH  rú   r€   úOptional[StyleType]rC  rk   rG  r:   r  r0  )rS  rT  )rH  rú   rK  rV  rC  rk   rm   rn   r1  )
rp   rq   rr   rs   rt   rI   rL  r'  ru   rv   rw   s   @rL   r@  r@  6  s–   ø† ñð #Ø%7ØØ"%Ø)-ð4àð4ð #ð4ð ð	4ð
  ð4ð '÷4ð 4ð& .@Øð	OàðOð +ðOð ð	Oð
 
õO÷ò rN   r@  c                  ób   ^ • \ rS rSrSr     S             SU 4S jjjrSS jrSrU =r$ )	r�   ih  zA column containing text.c                ó|   >• Xl         X0l        X l        X@l        XPl        [
        TU ]  U=(       d	    [        SS9S9  g )NT©Úno_wrapr6  )Útext_formatÚjustifyr€   ÚmarkupÚhighlighterrH   rI   r7   )rJ   r[  r€   r\  r]  r^  r  rK   s          €rL   rI   ÚTextColumn.__init__k  s:   ø€ ð 'ÔØ&-ŒØŒ
ØŒØ&ÔÜ‰Ñ l×&J´fÀTÑ6JÐÒKrN   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€   r\  )	r[  Úformatr]  r9   rF  r€   r\  r^  Ú	highlight)rJ   rž   Ú_textrP  s       rL   r'  ÚTextColumn.render{  sr   € Ø× Ñ ×'Ñ'¨TÐ'Ð2ˆØ�;�;Ü×#Ò# E·±ÀTÇ\Á\ÑR‰Dä˜§Z¡Z¸¿¹ÑFˆDØ××Ø×Ñ×&Ñ& tÔ,ØˆrN   )r^  r\  r]  r€   r[  )ÚnoneÚleftTNN)r[  rú   r€   r6   r\  r/   r]  rö   r^  úOptional[Highlighter]r  r0  rm   rn   ©rž   r2  rm   r9   r>  rw   s   @rL   r�   r�   h  sx   ø† Ù#ð
 "Ø!'ØØ-1Ø)-ðLàðLð ðLð ð	Lð
 ðLð +ðLð 'ðLð 
÷Lð L÷ ò rN   r�   c                  ód   ^ • \ rS rSrSr      S             SU 4S jjjrSS jrSrU =r$ )	r‘   i†  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".
c                ó\   >• Xl         X l        X0l        X@l        XPl        [
        TU ]  US9  g r8  )Ú	bar_widthr€   r�   r‚   rƒ   rH   rI   )rJ   rm  r€   r�   r‚   rƒ   r  rK   s          €rL   rI   ÚBarColumn.__init__‘  s1   ø€ ð #ŒØŒ
Ø,ÔØ,ÔØ&ÔÜ‰Ñ lÐÒ3rN   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   rm  ÚstartedrŠ   r€   r�   r‚   rƒ   r.  s     rL   r'  ÚBarColumn.render¡  s„   € äØ(,¯
©
Ñ(>”#�a˜Ÿ™Ô$ÀDÜ˜!˜TŸ^™^Ó,ØŸ.™.Ñ0‘$´c¸!¸T¿^¹^Ó6LØ—l‘lÔ"ØŸ=™=›?Ø—*‘*Ø×.Ñ.Ø×.Ñ.Ø×(Ñ(ñ

ð 
	
rN   )rm  r�   r‚   rƒ   r€   )é(   ry   rz   r{   r|   N)rm  úOptional[int]r€   r6   r�   r6   r‚   r6   rƒ   r6   r  r0  rm   rn   )rž   r2  rm   r4   r>  rw   s   @rL   r‘   r‘   †  st   ø† ñð $&Ø%Ø$2Ø$2Ø!,Ø)-ð4à ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð 'ð4ð 
÷4ð 4÷ 
ò 
rN   r‘   c                  ó"   • \ rS rSrSrSS jrSrg)ÚTimeElapsedColumni°  zRenders time elapsed.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)rO  Úfinished_timeÚelapsedr9   r
   rs  rù   rú   )rJ   rž   r€  Údeltas       rL   r'  ÚTimeElapsedColumn.render³  sS   € à(,¯¯�$×$Ò$¸4¿<¹<ˆØ‰?Ü˜	Ð);Ñ<Ð<Ü¤# a¬¨W«Ó"6Ñ7ˆÜ”C˜“JÐ&8Ñ9Ð9rN   r¨   Nrj  ©rp   rq   rr   rs   rt   r'  ru   r¨   rN   rL   ry  ry  °  s
   † Ù÷:rN   ry  c                  ó„   ^ • \ rS rSrSr        S                 SU 4S jjjr\S	S j5       rS
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.
c	           	     óB   >• X l         X€l        [        T	U ]  UUUUUUS9  g )N)r[  r€   r\  r]  r^  r  )Útext_format_no_percentager„   rH   rI   )
rJ   r[  r†  r€   r\  r]  r^  r  r„   rK   s
            €rL   rI   ÚTaskProgressColumn.__init__Ê  s5   ø€ ð *CÔ&Ø$ŒÜ‰ÑØ#ØØØØ#Ø%ð 	ò 	
rN   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.
r=  zprogress.percentager}  )r=  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r9   r+   Úpick_unit_and_suffixrù   )ÚclsrC  Ú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   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$ ra  )r�   r„   r�  Úfinished_speedrC  r†  r[  rc  r]  r9   rF  r€   r\  r^  rd  )rJ   rž   r[  re  rP  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„   r†  )z-[progress.percentage]{task.percentage:>3.0f}%r=  rg  rh  TNNF)r[  rú   r†  rú   r€   r6   r\  r/   r]  rö   r^  ri  r  r0  r„   rö   rm   rn   )rC  r  rm   r9   rj  )rp   rq   rr   rs   rt   rI   Úclassmethodr�  r'  ru   rv   rw   s   @rL   r’   r’   ¼  s¥   ø† ñð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ð
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð +ð
ð 'ð
ð ð
ð 
÷
ð 
ð, óSó ðS÷&ò rN   r’   c                  óR   ^ • \ rS rSrSrSr   S     SU 4S jjjrS	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.
ç      à?c                ó8   >• Xl         X l        [        TU ]  US9  g r8  )Úcompactr…   rH   rI   )rJ   r˜  r…   r  rK   s       €rL   rI   ÚTimeRemainingColumn.__init__  s    ø€ ð ŒØ%:Ô"Ü‰Ñ lÐÒ3rN   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.r|  zprogress.remainingr=  r}  z--:--r{  é<   Ú02dÚ:Úd)	r…   rO  r  Útime_remainingr�   r9   r˜  Údivmodrù   )rJ   rž   Ú	task_timer€   Úminutesr~  Ú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)r˜  rö   r…   rö   r  r0  rj  )
rp   rq   rr   rs   rt   r  rI   r'  ru   rv   rw   s   @rL   r“   r“     sJ   ø† ñð €Kð Ø&+Ø)-ð	4àð4ð  $ð4ð '÷	4ð 4÷,ò ,rN   r“   c                  ó"   • \ rS rSrSrSS jrSrg)ÚFileSizeColumni4  zRenders completed filesize.c                óh   • [         R                  " [        UR                  5      5      n[	        USS9$ )úShow data completed.zprogress.filesizer}  )r+   Údecimalrù   rG   r9   ©rJ   rž   Ú	data_sizes      rL   r'  ÚFileSizeColumn.render7  s)   € ä×$Ò$¤S¨¯©Ó%8Ó9ˆ	Ü�IÐ%8Ñ9Ð9rN   r¨   Nrj  rƒ  r¨   rN   rL   r§  r§  4  s
   † Ù%÷:rN   r§  c                  ó"   • \ rS rSrSrSS jrSrg)ÚTotalFileSizeColumni=  zRenders total filesize.c                ó†   • UR                   b)  [        R                  " [        UR                   5      5      OSn[	        USS9$ )r©  r=  zprogress.filesize.totalr}  )r�   r+   rª  rù   r9   r«  s      rL   r'  ÚTotalFileSizeColumn.render@  s4   € à9=¿¹Ñ9O”H×$Ò$¤S¨¯©£_Ô5ÐUWˆ	Ü�IÐ%>Ñ?Ð?rN   r¨   Nrj  rƒ  r¨   rN   rL   r¯  r¯  =  s   † Ù!÷@rN   r¯  c                  ó>   ^ • \ rS rSrSrSSU 4S jjjrSS jrSrU =r$ )	ÚMofNCompleteColumniF  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 "/".
c                ó,   >• Xl         [        TU ]	  US9  g r8  )Ú	separatorrH   rI   )rJ   rµ  r  rK   s      €rL   rI   ÚMofNCompleteColumn.__init__R  s   ø€ Ø"ŒÜ‰Ñ lÐÒ3rN   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.downloadr}  )rù   rG   r�   r¯   rú   r9   rµ  )rJ   rž   rG   r�   Útotal_widths        rL   r'  ÚMofNCompleteColumn.renderV  sa   € ä˜Ÿ™Ó'ˆ	Ø#'§:¡:Ñ#9”�D—J‘J”¸sˆÜœ#˜e›*“oˆÜØ˜ a˜Ð(¨¯©Ð(8¸¸Ð@Ø%ñ
ð 	
rN   )rµ  )Ú/N)rµ  rú   r  r0  rj  r>  rw   s   @rL   r³  r³  F  s   ø† ñ	÷4ñ 4÷
ò 
rN   r³  c                  óJ   ^ • \ rS rSrSr S     SU 4S jjjrSS jrSrU =r$ )	r
  ia  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.
c                ó,   >• Xl         [        TU ]	  US9  g r8  )Úbinary_unitsrH   rI   )rJ   r¿  r  rK   s      €rL   rI   ÚDownloadColumn.__init__h  s   ø€ ð )ÔÜ‰Ñ lÐÒ3rN   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¼  rU  r¹  r}  )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.rendern  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)r¿  rö   r  r0  rm   rn   rj  r>  rw   s   @rL   r
  r
  a  s;   ø† ñð LPð4Ø ð4Ø8Hð4à	÷4ð 4÷!ò !rN   r
  c                  ó"   • \ rS rSrSrSS jrSrg)ÚTransferSpeedColumni’  z&Renders human readable transfer speed.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.speedr}  z/s)r’  rC  r9   r+   rª  rù   )rJ   rž   rC  rŽ  s       rL   r'  ÚTransferSpeedColumn.render•  sR   € à×#Ñ#×1 t§z¡zˆØ‰=Ü˜Ð#8Ñ9Ð9Ü×%Ò%¤c¨%£jÓ1ˆ
Ü�z�l "Ð%Ð-BÑCÐCrN   r¨   Nrj  rƒ  r¨   rN   rL   rÝ  rÝ  ’  s   † Ù0÷DrN   rÝ  c                  ó0   • \ rS rSr% SrS\S'    S\S'   Srg)ÚProgressSampleiž  z$Sample of progress for a given time.rk   r)  rG   r¨   N)rp   rq   rr   rs   rt   r3  ru   r¨   rN   rL   rá  rá  ž  s   ‡ Ù.àÓØØÓÚ$rN   rá  c                  ó¬  • \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    S\S'    SrS\S'    SrS\S'    \" \	S9r
S\S'    \" SSSS9rS\S'    \" SSSS9rS\S'    SrS\S'    \" S SSS9rS\S'   \" S\S9rS\S '    S+S! jr\S,S" j5       r\S-S# j5       r\S-S$ j5       r\S,S% j5       r\S+S& j5       r\S-S' j5       r\S-S( j5       rS.S) jrS*rg)/ÚTaski§  z}Information regarding a progress task.

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

r;   r%  rú   rŽ   r  r�   rk   rG   ÚGetTimeCallableÚ	_get_timeNr  Trö   Úvisible)Údefault_factoryzDict[str, Any]Ú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ë  zDeque[ProgressSample]Ú	_progress)rë  rç  r   Ú_lockc                ó"   • 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   rt  Ú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   r€  ÚTask.elapsedç  sC   € ð �?‰?Ñ"ØØ�>‰>Ñ%Ø—>‘> D§O¡OÑ3Ð3Ø�}‰}‹ §¡Ñ0Ð0rN   c                ó   • U R                   SL$ )zCheck if the task has finished.N)r  r]   s    rL   rO  Ú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   Úminrs  )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  ó8   #   • U  H  oR                   v •  M     g 7frZ   rå   )Ú.0Úsamples     rL   Ú	<genexpr>ÚTask.speed.<locals>.<genexpr>  s   é € Ð!OÂ°v×"2Ö"2Âùó   ‚)rì  ró  rò  r)  Úiterr®   rÝ   )rJ   rC   Ú
total_timeÚiter_progressÚtotal_completedrC  s         rL   rC  Ú
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)rO  rC  rú  r   )rJ   rC  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ò  Úclearr  r’  r]   s    rL   Ú_resetÚTask._reset  s"   € à�‰×ÑÔØ!ˆÔØ"ˆÕrN   )r’  r  )rm   rk   rø   )rm   r  rl   )rp   rq   rr   rs   rt   r3  r  ræ  r	   Údictrè  rì  rí  r’  rò  r   ró  rŠ   rü   rt  rú  r€  rO  r  rC  rŸ  r  ru   r¨   rN   rL   rã  rã  §  s_  ‡ ñð 	ƒJØGàÓØ'àÓØ>àÓØ*àÓØ+à%)€M�?Ó)Ø(à€GˆTÓØJá"°4Ñ8€FˆNÓ8Ø?á"'°¸5ÀuÑ"M€J�ÓMØNá!&¨t¸%ÀeÑ!L€IˆÓLØNà&*€N�OÓ*Ø>á',Ù2¸ÀUñ(€IÐ$ó ñ ˜e°UÑ;€Eˆ5Ó;Øô ð ó+ó ð+ð ó+ó ð+ð ó1ó ð1ð ó.ó ð.ð óó ðð óó ðð" óó ð÷#rN   rã  c                  ó~  • \ rS rSrSrSSSSSSSSSSS.
                       S+S	 jjr\S,S
 j5       r\S-S j5       r	\S.S j5       r
\S/S j5       r\S0S j5       rS1S jrS1S jrS2S jr        S3S jr     S4             S5S jjr S6SSS.         S7S jjjr\R(                      S8SSSS.                   S9S jjj5       r\R(                      S8SSSS.                   S:S jjj5       r     S;SSSS.                   S<S jjjrS=S jrS=S jrSSSSSSS.                 S>S jjrSSSSSS .               S?S! jjrS@SAS" jjrS1S# jrSBS$ jrSCS% jrSDS& jrSBS' jr    SE             SFS( jjr S=S) jr!S*r"g)Gr”   i%  a4  Renders an auto-updating progress bar(s).

Args:
    console (Console, optional): Optional Console instance. Defaults to 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 (float, optional): Number of times per second to refresh the progress information. Defaults to 10.
    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.
NTrx   g      >@F)
rˆ   r‡   r‹   Úspeed_estimate_periodr‰   Úredirect_stdoutÚredirect_stderrrŠ   rŒ   Úexpandc       
   
     óÜ  • 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   rS   rˆ   rŠ   ÚprintÚlog)rJ   rˆ   r‡   r‹   r  r‰   r  r  rŠ   rŒ   r  r—   s               rL   rI   ÚProgress.__init__5  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_columnsY  s(   € ô2 ÐAÓBÜ‹KÜÓ ÜÓ!ð	
ð 	
rN   c                ó.   • U R                   R                  $ rZ   )rS   rˆ   r]   s    rL   rˆ   ÚProgress.consolex  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.tasks|  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_ids‚  s*   € ð �Z‹ZÜ˜Ÿ™×(Ñ(Ó*Ó+÷ �Z�Zúr0  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  ó8   #   • U  H  oR                   v •  M     g 7frZ   )rO  )r  rž   s     rL   r
  Ú$Progress.finished.<locals>.<genexpr>Ž  s   é € ÐFÒ1E¨—}–}Ò1Eùr  )ró  r"  Úallr-  r]   s    rL   rO  Ú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)rP   N)rŒ   rS   r\   r]   s    rL   r\   ÚProgress.start�  s    € à�|�|Ø�I‰I�O‰O DˆOÒ)ð rN   c                ó   • U R                   (       dm  U R                  R                  5         U R                  R                  (       d7  U R                  R
                  (       d  U R                  R                  5         gggg)zStop the progress display.N)rŒ   rS   r  rˆ   Úis_interactiveÚ
is_jupyterr$  r]   s    rL   r  ÚProgress.stop•  sN   € à�|�|Ø�I‰I�N‰NÔØ—<‘<×.×.°t·|±|×7N×7NØ—‘×"Ñ"Õ$ð 8OÐ.ð rN   c                ó&   • U R                  5         U $ rZ   r[   r]   s    rL   r^   ÚProgress.__enter__œ  r`   rN   c                ó$   • U R                  5         g rZ   )r  rd   s       rL   rh   ÚProgress.__exit__   s   € ð 	�	‰	�rN   r   c              #  óÆ  #   • Uc  [        [        U5      5      =(       d    SnUc  U R                  XRUS9nOU R                  XBUS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.

You can also track progress of an iterable, which might require that you additionally specify ``total``.

Args:
    sequence (Iterable[ProgressType]): Values you want to iterate over and track progress.
    total: (float, optional): Total number of steps. Default is len(sequence).
    completed (int, optional): Number of steps completed so far. Defaults to 0.
    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.
Nrù  r*   )
rk   r   Úadd_taskrU   rS   r‡   r?   rG   rQ   rP   )rJ   r–   r�   rG   rD   rŽ   rE   Útrack_threadÚvaluerQ   rP   s              rL   r•   ÚProgress.track¨  sÂ   é € ð0 ‰=Üœ+ hÓ/Ó0×8°DˆEà‰?Ø—m‘m KÈ	�mÐR‰Gà�K‰K˜¸	ˆKÑBà�9‰9×!×!Ü˜d¨]Ô;¸|Û%�EØ’KØ ×*Ò*¨aÑ/×*ñ &÷ <Ð;ð
 —l‘lˆGØ—l‘lˆGÛ!�Ø’Ù˜ Ô#Ù–	ò "÷ <Õ;üs   ‚A,C!Á.#CÂ?C!Ã
CÃC!r  )rD   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'©r�   F©rŸ   )ró  r"  r�   Ú
ValueErrorrE  rU   r™   )rJ   r  r�   rD   rŽ   Ú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�   rD   rŽ   c               ó   • g rZ   r¨   ©
rJ   r  r¾   r  r  r  r  r�   rD   rŽ   s
             rL   r  ÚProgress.openÿ  ó   € ð 	rN   c               ó   • g rZ   r¨   rP  s
             rL   r  rQ    rR  rN   c               óð  • SR                  [        USS95      n
U
S;  a  [        SU< 3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.
r=  F)Úreverse)ÚbrÚrtÚrzinvalid mode r*   rV  zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedrû   )rW  rX  r   zcan't have unbuffered text I/OrJ  Úrb)r  TrK  )rX  rW  )r  r  r  Úline_buffering)rc   ÚsortedrL  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizerE  rU   Úior  r™   ÚTextIOWrapper)rJ   r  r¾   r  r  r  r  r�   rD   rŽ   Ú_moderZ  r�   r  s                 rL   r  rQ    s  € ðB —‘œ˜t¨UÑ3Ó4ˆØÐ)Ó)Ü˜}¨T©HÐ5Ó6Ð6ð # 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   rD   rž   s      rL   Ú
start_taskÚProgress.start_taskl  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   rD   rž   r(  s       rL   Ú	stop_taskÚProgress.stop_taskz  sB   € ð �Z‹ZØ—;‘;˜wÑ'ˆDØŸ=™=›?ˆLØ�‰Ñ&Ø".”Ø)ŒN÷ �ZŽZús   �9AÁ
A)r�   rG   rQ   rŽ   ræ  rP   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  rŽ   ræ  rè  rU   rŠ   r  rò  Úpopleftr)  Úappendrá  r  r€  rP   )rJ   rD   r�   rG   rQ   rŽ   ræ  rP   rè  rž   Úcompleted_startÚupdate_completedr(  Úold_sample_timerò  rj  s                   rL   rU   ÚProgress.update‰  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�   rG   ræ  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)a0  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): Set visible flag if not None.
    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è  rŽ   r  rP   )
rJ   rD   r\   r�   rG   ræ  rŽ   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ò  rj  r)  r¯   rk  rá  r�   r  r€  rC  r’  )
rJ   rD   rQ   r(  rž   rl  rm  rn  rò  rj  s
             rL   rQ   Ú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Œ   rS   rT   rP   r]   s    rL   rP   Ú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   rx  ÚProgress.get_renderables  s   é € à×%Ñ% d§j¡jÓ1ˆØ‹ùs   ‚!#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)TrY  N)rE  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  ó|   >#   • U  H1  n[        U[        5      (       a  UR                  TS 9OU" T5      v •  M3     g7f)rb  N)rE  rú   rc  )r  Úcolumnrž   s     €rL   r
  r‚  0  sB   øé € ð ò '3˜Fô  *¨&´#×6Ñ6ð #ŸM™M¨t˜MÑ4á!'¨£ô.ò '3ùs   ƒ9<)r—   r8   Úgridr  ræ  Úadd_row)rJ   r.  Útable_columnsr|  rž   s       @rL   r{  Ú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"  rd  r;   rù   rP   )	rJ   rŽ   r\   r�   rG   ræ  rè  rž   Únew_task_indexs	            rL   rE  Ú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   rD   s     rL   Úremove_taskÚProgress.remove_taskk  s!   € ð �Z‹ZØ—‘˜GÐ$÷ �ZŽZús   �$¤
2)ró  r#  r"  r—   rŒ   r  rŠ   rS   r%  r$  r  )r—   zUnion[str, ProgressColumn]rˆ   úOptional[Console]r‡   rö   r‹   rk   r  rk   r‰   rö   r  rö   r  rö   rŠ   zOptional[GetTimeCallable]rŒ   rö   r  rö   rm   rn   )rm   zTuple[ProgressColumn, ...])rm   r-   )rm   z
List[Task])rm   zList[TaskID]rø   rl   )rm   r)   ro   )Nr   Nú
Working...çš™™™™™¹?)r–   úIterable[ProgressType]r�   r  rG   rù   rD   úOptional[TaskID]rŽ   rú   rE   rk   rm   r–  rZ   )
r  r   r�   rw  rD   r—  rŽ   rú   rm   r   ©rû   NNN)r  ú"Union[str, 'PathLike[str]', bytes]r¾   úLiteral['rb']r  rù   r  úOptional[str]r  r›  r  r›  r�   rw  rD   r—  rŽ   rú   rm   r   )r  r™  r¾   z"Union[Literal['r'], Literal['rt']]r  rù   r  r›  r  r›  r  r›  r�   rw  rD   r—  rŽ   rú   rm   r$   ©rX  rû   NNN)r  r™  r¾   ú1Union[Literal['rb'], Literal['rt'], Literal['r']]r  rù   r  r›  r  r›  r  r›  r�   rw  rD   r—  rŽ   rú   rm   zUnion[BinaryIO, TextIO])rD   r;   rm   rn   )rD   r;   r�   r  rG   r  rQ   r  rŽ   r›  ræ  úOptional[bool]rP   rö   rè  r   rm   rn   )rD   r;   r\   rö   r�   r  rG   rù   ræ  rž  rŽ   r›  rè  r   rm   rn   )r*   )rD   r;   rQ   rk   rm   rn   )rm   r0   )rm   zIterable[RenderableType])r.  zIterable[Task]rm   r8   )Tr  r   T)rŽ   rú   r\   rö   r�   r  rG   rù   ræ  rö   rè  r   rm   r;   )#rp   rq   rr   rs   rt   rI   r”  r!  rü   rˆ   r.  r3  rO  r\   r  r^   rh   r•   r  ÚtypingÚoverloadr  rd  rg  rU   rq  rQ   rP   r   rx  r{  r‹  rE  r‘  ru   r¨   rN   rL   r”   r”   %  s  † ñð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØñ"$à,ð"$ð #ð"$ð ð	"$ð
 "ð"$ð  %ð"$ð ð"$ð ð"$ð ð"$ð ,ð"$ð ð"$ð ð"$ð 
õ"$ðH ó
ó ð
ð< ó!ó ð!ð ó.ó ð.ð
 ó,ó ð,ð
 óGó ðGô*ô
%ôðà/ðð )ðð (ð	ð
 
ôð "&ØØ$(Ø'Ø"ð+à(ð+ð ð+ð ð	+ð
 "ð+ð ð+ð ð+ð 
 õ+ð`  $ð(@ð
 %)Ø'ñ(@àð(@ð ð(@ð
 "ð(@ð ð(@ð 
ö(@ðT ‡_�_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ñà0ðð ðð ð	ð
  ðð ðð ðð ðð "ðð ðð 
õó ðð ‡_�_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ñà0ðð 1ðð ð	ð
  ðð ðð ðð ðð "ðð ðð 
õó ðð$ CFØØ"&Ø $Ø!%ðKð  $Ø$(Ø'ñKà0ðKð @ðKð ð	Kð
  ðKð ðKð ðKð ðKð "ðKð ðKð 
!öKôZ2ô*ð& "&Ø%)Ø#'Ø%)Ø"&Øñ;àð;ð ð	;ð
 #ð;ð !ð;ð #ð;ð  ð;ð ð;ð ð;ð 
õ;ðB Ø!%ØØ"&Ø%)ñ%àð%ð ð	%ð
 ð%ð ð%ð  ð%ð #ð%ð ð%ð 
õ%öN1ô< ô
ô
ô
ôB)ð Ø!&ØØð)àð)ð ð)ð ð	)ð
 ð)ð ð)ð ð)ð 
õ)÷V%rN   r”   Ú__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)ÚtyperP  z	Syntax...zGive it a try!)Úcycle)Úrecord)rˆ   r‰   z[red]Downloadingr‰  rJ  z[green]Processingz[yellow]Thinkingr–  r­   g333333Ó?g{®Gáz„?éd   )r”  Nr   TNFNrx   ry   rz   r{   r|   r•  FT)"r–   r–  rŽ   rú   r�   r  rG   rù   r‡   rö   rˆ   r“  r‰   rö   rŠ   úOptional[Callable[[], float]]r‹   rk   r€   r6   r�   r6   r‚   r6   rƒ   r6   rE   rk   rŒ   rö   r„   rö   rm   r–  )r  r   r�   rù   rŽ   rú   r‡   rö   rˆ   r“  r‰   rö   rŠ   r²  r‹   rk   r€   r6   r�   r6   r‚   r6   rƒ   r6   rŒ   rö   rm   úContextManager[BinaryIO]r˜  )&r  r™  r¾   z"Union[Literal['rt'], Literal['r']]r  rù   r  r›  r  r›  r  r›  r�   rw  rŽ   rú   r‡   rö   rˆ   r“  r‰   rö   rŠ   r²  r‹   rk   r€   r6   r�   r6   r‚   r6   rƒ   r6   rŒ   rö   rm   zContextManager[TextIO])&r  r™  r¾   rš  r  rù   r  r›  r  r›  r  r›  r�   rw  rŽ   rú   r‡   rö   rˆ   r“  r‰   rö   rŠ   r²  r‹   rk   r€   r6   r�   r6   r‚   r6   rƒ   r6   rŒ   rö   rm   r³  rœ  )&r  r™  r¾   r�  r  rù   r  r›  r  r›  r  r›  r�   rw  rŽ   rú   r‡   rö   rˆ   r“  r‰   rö   rŠ   r²  r‹   rk   r€   r6   r�   r6   r‚   r6   rƒ   r6   rŒ   rö   rm   z7Union[ContextManager[BinaryIO], ContextManager[TextIO]])…Ú
__future__r   r`  rŸ  r\  Ú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'   r(   Útyping_extensionsr)   r=  r+   r,   rˆ   r-   r.   r/   r0   r^  r1   Újupyterr2   rS   r3   Úprogress_barr4   rD  r5   r€   r6   r|  r7   r8   rP  r9   r:   rù   r;   r<   rk   rä  r=   r?   r•   r™   rþ   r  r   r  r  r5  r@  r�   r‘   ry  r’   r“   r§  r¯  r³  r
  rÝ  rá  rã  r”   rp   ÚrandomÚtimeÚpanelr¢  Úruler£  Úsyntaxr¤  r‡  Úprogress_renderablesÚ	itertoolsr¯  Úexamplesr!  rC   rE  Útask1Útask2Útask3rO  rU   ÚsleepÚrandintr%  r®   r¨   rN   rL   Ú<module>rÎ     s5  ðÝ "ã 	Û Û ß #Ý ß (Ý ß .Ý Ý Ý  ß ß *Ñ *Ý ÷÷ ÷ ÷ ÷ ñ ö, å&ç #ß BÓ BÝ $Ý !Ý Ý %Ý Ý ß  ß  á	�˜3Ó	€á�~Ó&€à˜2˜u˜9Ñ%€ð ‡^‚^�D˜& (Ó+€ô%�6ô %ðT $Ø!ØØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØð!K
Ø$ðK
àðK
ð ðK
ð ð	K
ð
 ðK
ð ðK
ð ðK
ð ,ðK
ð ðK
ð ðK
ð ðK
ð ðK
ð ðK
ð ðK
ð ðK
ð  ð!K
ð" õ#K
ô\d1ˆi˜ô d1ôN8�> "Ñ% w¨r¡{ô 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øñ>*Ø
ð>*àð>*ð ð	>*ð
 ð>*ð ð>*ð ð>*ð ,ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð õ>*ðB ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øñ'	Ø
,ð	à
,ð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð ð	ð ð	ð ð	ð ð	ð ,ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( õ)	ó ð	ð0 ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øñ'	Ø
,ð	à
ð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð ð	ð ð	ð ð	ð ð	ð ,ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( õ)	ó ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øñ'S*Ø
,ðS*à
;ðS*ð ðS*ð ð	S*ð
 ðS*ð ðS*ð ðS*ð ðS*ð ðS*ð ðS*ð ðS*ð ,ðS*ð ðS*ð ðS*ð  ð!S*ð" ð#S*ð$ ð%S*ð& ð'S*ð( =ö)S*ôl'1�Sô '1ôT�~ô ô"/�Nô /ôd�ô ô<'
�ô '
ôT	:˜ô 	:ôE˜ô EôP-,˜.ô -,ô`:�^ô :ô@˜.ô @ô
˜ô 
ô6.�^ô .ôb	D˜.ô 	Dô%�Zô %ð ÷z#ð z#ó ðz#ôzN	%ˆ|ô N	%ðb ˆ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   ÏB8RÒ
R