Ë
    äØjj:é  ã            +       ó¨
  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dl mZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ej`                  dk\  rd dlm1Z1 nd dl2m1Z1 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZI ddlJmKZKmLZL  e(deM«      ZN e.d«      ZOe g ePf   ZQ ej\                  de+e«      ZR G d„ de«      ZS	 	 	 	 	 	 	 	 	 	 	 	 	 	 d‘d'e/e*eO   e%eO   f   d(eTd)e)eP   d*eUd+e)e7   d,eUd-e)e g ePf      d.ePd/eFd0eFd1eFd2eFd3ePd4eUd5eUd6e%eO   f d7„ZV G d8„ d9ee«      ZW G d:„ d;e!eR   e$eR   «      ZXd<d dd!dd"d#d$d%d&d!d=œd>ed)eMd(eTd*eUd+e)e7   d,eUd-e)e g ePf      d.ePd/eFd0eFd1eFd2eFd4eUd6e!e   fd?„ZYej´                  	 	 	 	 d’dd<d dd!dd"d#d$d%d&d!d@œd>e/eTdAe[f   dBe/e1dC   e1dD   f   dEeMdFe)eT   dGe)eT   dHe)eT   d)e)eM   d(eTd*eUd+e)e7   d,eUd-e)e g ePf      d.ePd/eFd0eFd1eFd2eFd4eUd6e!e+   f&dI„«       Z\ej´                  	 	 	 	 d’dd<d dd!dd"d#d$d%d&d!d@œd>e/eTdAe[f   dBe1dJ   dEeMdFe)eT   dGe)eT   dHe)eT   d)e)eM   d(eTd*eUd+e)e7   d,eUd-e)e g ePf      d.ePd/eFd0eFd1eFd2eFd4eUd6e!e   f&dK„«       Z\	 	 	 	 	 d“dd<d dd!dd"d#d$d%d&d!d@œd>e/eTdAe[f   dBe/e1dJ   e1dC   e1dD   f   dEeMdFe)eT   dGe)eT   dHe)eT   d)e)eM   d(eTd*eUd+e)e7   d,eUd-e)e g ePf      d.ePd/eFd0eFd1eFd2eFd4eUd6e/e!e   e!e+   f   f&dL„Z\ G dM„ dNe«      Z] G dO„ dPe]«      Z^ G dQ„ dRe]«      Z_ G dS„ dTe]«      Z` G dU„ dVe]«      Za G dW„ dXe]«      Zb G dY„ dZe`«      Zc G d[„ d\e]«      Zd G d]„ d^e]«      Ze G d_„ d`e]«      Zf G da„ dbe]«      Zg G dc„ dde]«      Zh G de„ dfe]«      Zi G dg„ dhe'«      Zje
 G di„ dj«      «       Zk G dk„ dle>«      Zlemdmk(  �rhd dlnZnd dloZoddnlpmqZq ddolrmsZs ddpltmuZu ddqlGmIZI  eudrdsd ¬t«      Zt eIdudvdw«      ZGeGjí                  dxdydz«       d{ eqd|«      d}eGd~dd€d�œd‚et esdƒ«      g	Zwd d„lxmyZy  eyew«      Zz e7d ¬…«      Z6 el e_«       gelj÷                  «       ¢ eb«       ‘­e6d!d†œŽ5 Z|e|jû                  d‡dˆ¬‰«      Z~e|jû                  dŠdˆ¬‰«      Ze|jû                  d‹d¬‰«      Z€e|�j                  sxe|�j                  e~dŒ¬�«       e|�j                  edŽ¬�«        eo�j                  d�«        en�j                  d d�«      dk  re|�j                   e†ez«      «       e|�j                  sŒxddd«       yy# 1 sw Y   yxY w)”é    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                   óp   ‡ — e Zd ZdZdddddefˆ fd„Zdd
„Zdd„Zdee	e
      dee
   dee   dd	fd„Zˆ xZS )Ú_TrackThreadz)A thread to periodically update progress.ÚprogressÚProgressÚtask_idr;   Úupdate_periodc                 óx   •— || _         || _        || _        t        «       | _        d| _        t        ‰| �  «        y )Nr   )r@   rB   rC   r   ÚdoneÚ	completedÚsuperÚ__init__)Úselfr@   rB   rC   Ú	__class__s       €ú[/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.pyrH   z_TrackThread.__init__B   s4   ø€ Ø ˆŒØˆŒØ*ˆÔÜ“GˆŒ	àˆŒÜ‰ÑÕó    ÚreturnNc                 óT  — | j                   }| j                  j                  }| j                  }d}| j                  j
                  } ||«      s(| j                  }||k7  r ||||z
  «       |} ||«      sŒ(| j                  j                  | j                   | j                  d¬«       y )Nr   T)rF   Úrefresh)rB   r@   ÚadvancerC   rE   ÚwaitrF   Úupdate)rI   rB   rP   rC   Úlast_completedrQ   rF   s          rK   Úrunz_TrackThread.runK   s‘   € Ø—,‘,ˆØ—-‘-×'Ñ'ˆØ×*Ñ*ˆØˆØ�y‰y�~‰~ˆÙ�}Ô%ØŸ™ˆIØ Ò*Ù˜ ¨^Ñ!;Ô<Ø!*�ñ	 �}Õ%ð 	�‰×Ñ˜TŸ\™\°T·^±^ÈTÐÕRrL   c                 ó&   — | j                  «        | S ©N©Ústart©rI   s    rK   Ú	__enter__z_TrackThread.__enter__Y   ó   € Ø�
‰
ŒØˆrL   Úexc_typeÚexc_valÚexc_tbc                 óX   — | j                   j                  «        | j                  «        y rV   )rE   ÚsetÚjoin©rI   r\   r]   r^   s       rK   Ú__exit__z_TrackThread.__exit__]   s   € ð 	�	‰	�‰ŒØ�	‰	�rL   ©rM   N)rM   r?   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚfloatrH   rT   rZ   r    r$   ÚBaseExceptionr   rc   Ú__classcell__©rJ   s   @rK   r?   r?   ?   sj   ø„ Ù3ð ð °hð Èuõ óSóðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
÷rL   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_stylerC   ÚdisableÚ
show_speedrM   c           
   #   ó*  K  — |rt        d«      gng }|j                  t        ||	|
|¬«      t        |¬«      t	        d¬«      f«       t        ||||||xs d|dœŽ}|5  |j                  | |||¬«      E d	{  –—†  d	d	d	«       y	7 Œ# 1 sw Y   y	xY w­w)
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}©rz   r{   r|   r}   )r   T)Úelapsed_when_finishedrm   ©ru   rv   rw   rx   ry   r~   )rt   rs   rC   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnrA   Útrack)rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   rC   r~   r   Úcolumnsr@   s                    rK   rŠ   rŠ   g   sÈ   è ø€ ñP EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ¨*Ô5Ü°dÔ;ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð 
ñ 
Ø—>‘>Ø˜E¨{È-ð "ó 
÷ 	
ð 	
÷
ð 
ð	
ø÷
ð 
üs0   ‚ABÁBÁ7BÁ8BÁ<	BÂBÂBÂBc                   óŒ  — e Zd ZdZ	 d'dedddededdf
d	„Zd(d
„Zde	e
e      de	e   de	e   ddfd„Zdefd„Zdefd„Zedefd„«       Zdefd„Zdefd„Zedefd„«       Zedefd„«       Zdefd„Zdefd„Zdefd„Zd)dedefd„Zdeeee f   fd„Z!d)dedefd„Z"d)dede#e   fd„Z$d*d „Z%d+d!ed"edefd#„Z&defd$„Z'd%e(defd&„Z)y),Ú_Readerz9A reader that tracks progress while it's being read from.Úhandler@   rA   ÚtaskÚclose_handlerM   Nc                 óJ   — || _         || _        || _        || _        d| _        y ©NF)rŽ   r@   r�   r�   Ú_closed)rI   rŽ   r@   r�   r�   s        rK   rH   z_Reader.__init__°   s(   € ð ˆŒØ ˆŒØˆŒ	Ø(ˆÔØˆ�rL   c                 ó:   — | j                   j                  «        | S rV   )rŽ   rZ   rY   s    rK   rZ   z_Reader.__enter__½   s   € Ø�‰×ÑÔØˆrL   r\   r]   r^   c                 ó$   — | j                  «        y rV   )Úcloserb   s       rK   rc   z_Reader.__exit__Á   s   € ð 	�
‰
�rL   c                 ó   — | S rV   © rY   s    rK   Ú__iter__z_Reader.__iter__É   s   € ØˆrL   c                 ó�   — t        | j                  «      }| j                  j                  | j                  t        |«      ¬«       |S ©N©rP   )ÚnextrŽ   r@   rP   r�   Úlen)rI   Úlines     rK   Ú__next__z_Reader.__next__Ì   s4   € Ü�D—K‘KÓ ˆØ�‰×Ñ˜dŸi™i´°T³ÐÔ;ØˆrL   c                 ó   — | j                   S rV   )r“   rY   s    rK   Úclosedz_Reader.closedÑ   s   € à�|‰|ÐrL   c                 ó6   — | j                   j                  «       S rV   )rŽ   ÚfilenorY   s    rK   r¤   z_Reader.filenoÕ   ó   € Ø�{‰{×!Ñ!Ó#Ð#rL   c                 ó6   — | j                   j                  «       S rV   )rŽ   ÚisattyrY   s    rK   r§   z_Reader.isattyØ   r¥   rL   c                 ó.   — | j                   j                  S rV   )rŽ   ÚmoderY   s    rK   r©   z_Reader.modeÛ   ó   € à�{‰{×ÑÐrL   c                 ó.   — | j                   j                  S rV   )rŽ   ÚnamerY   s    rK   r¬   z_Reader.nameß   rª   rL   c                 ó6   — | j                   j                  «       S rV   )rŽ   ÚreadablerY   s    rK   r®   z_Reader.readableã   ó   € Ø�{‰{×#Ñ#Ó%Ð%rL   c                 ó6   — | j                   j                  «       S rV   )rŽ   ÚseekablerY   s    rK   r±   z_Reader.seekableæ   r¯   rL   c                  ó   — yr’   r˜   rY   s    rK   Úwritablez_Reader.writableé   s   € ØrL   Úsizec                 óœ   — | j                   j                  |«      }| j                  j                  | j                  t        |«      ¬«       |S r›   )rŽ   Úreadr@   rP   r�   rž   )rI   r´   Úblocks      rK   r¶   z_Reader.readì   s:   € Ø—‘× Ñ  Ó&ˆØ�‰×Ñ˜dŸi™i´°U³ÐÔ<ØˆrL   Úbc                 óŠ   — | j                   j                  |«      }| j                  j                  | j                  |¬«       |S r›   )rŽ   Úreadintor@   rP   r�   )rI   r¸   Úns      rK   rº   z_Reader.readintoñ   s6   € Ø�K‰K× Ñ  Ó#ˆØ�‰×Ñ˜dŸi™i°ÐÔ3ØˆrL   c                 óœ   — | j                   j                  |«      }| j                  j                  | j                  t        |«      ¬«       |S r›   )rŽ   Úreadliner@   rP   r�   rž   )rI   r´   rŸ   s      rK   r½   z_Reader.readlineö   s:   € Ø�{‰{×#Ñ# DÓ)ˆØ�‰×Ñ˜dŸi™i´°T³ÐÔ;ØˆrL   Úhintc           	      ó¸   — | j                   j                  |«      }| j                  j                  | j                  t        t        t        |«      «      ¬«       |S r›   )rŽ   Ú	readlinesr@   rP   r�   ÚsumÚmaprž   )rI   r¾   Úliness      rK   rÀ   z_Reader.readlinesû   sA   € Ø—‘×%Ñ% dÓ+ˆØ�‰×Ñ˜dŸi™i´´S¼¸e³_Ó1EÐÔFØˆrL   c                 ó^   — | j                   r| j                  j                  «        d| _        y )NT)r�   rŽ   r–   r“   rY   s    rK   r–   z_Reader.close   s"   € Ø×ÒØ�K‰K×ÑÔØˆ�rL   ÚoffsetÚwhencec                 óŒ   — | j                   j                  ||«      }| j                  j                  | j                  |¬«       |S )N©rF   )rŽ   Úseekr@   rR   r�   )rI   rÅ   rÆ   Úposs       rK   rÉ   z_Reader.seek  s8   € Ø�k‰k×Ñ˜v vÓ.ˆØ�‰×Ñ˜TŸY™Y°#ÐÔ6Øˆ
rL   c                 ó6   — | j                   j                  «       S rV   )rŽ   ÚtellrY   s    rK   rÌ   z_Reader.tell
  s   € Ø�{‰{×ÑÓ!Ð!rL   Úsc                 ó   — t        d«      ‚)NÚwrite)r   )rI   rÍ   s     rK   rÏ   z_Reader.write  s   € Ü" 7Ó+Ð+rL   )T)rM   r�   )éÿÿÿÿrd   )r   )*re   rf   rg   rh   r   r;   ÚboolrH   rZ   r    r$   rj   r   rc   r™   Úbytesr    Úpropertyr¢   Úintr¤   r§   Ústrr©   r¬   r®   r±   r³   r¶   r&   Ú	bytearrayÚ
memoryviewr   rº   r½   r   rÀ   r–   rÉ   rÌ   r   rÏ   r˜   rL   rK   r�   r�   ­   s»  „ ÙCð "ñàðð ðð ð	ð
 ðð 
óóðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
óð˜(ó ð˜%ó ð
 ð˜ò ó ðð$˜ó $ð$˜ó $ð ð �cò  ó ð ð ð �cò  ó ð ð&˜$ó &ð&˜$ó &ð˜$ó ñ˜ð  eó ð
˜% 	¨:°tÐ ;Ñ<ó ñ
˜Sð ¨%ó ñ
˜cð ¨4°©;ó ó
ñ
˜3ð ¨ð °Có ð
"�có "ð,�sð ,˜sô ,rL   r�   c                   ó`   — e Zd ZdZdddeddfd„Zdefd„Zd	eee	      d
ee	   dee
   ddfd„Zy)Ú_ReadContextzEA utility class to handle a context for both a reader and a progress.r@   rA   ÚreaderrM   Nc                 ó    — || _         || _        y rV   )r@   rÚ   )rI   r@   rÚ   s      rK   rH   z_ReadContext.__init__  s   € Ø ˆŒØ ˆ�rL   c                 ój   — | j                   j                  «        | j                  j                  «       S rV   )r@   rX   rÚ   rZ   rY   s    rK   rZ   z_ReadContext.__enter__  s%   € Ø�‰×ÑÔØ�{‰{×$Ñ$Ó&Ð&rL   r\   r]   r^   c                 ór   — | j                   j                  «        | j                  j                  |||«       y rV   )r@   ÚstoprÚ   rc   rb   s       rK   rc   z_ReadContext.__exit__  s*   € ð 	�‰×ÑÔØ�‰×Ñ˜X w°Õ7rL   )re   rf   rg   rh   r=   rH   rZ   r    r$   rj   r   rc   r˜   rL   rK   rÙ   rÙ     sj   „ ÙOð! ð !°Rð !¸Dó !ð'˜2ó 'ð8à˜4 Ñ.Ñ/ð8ð ˜-Ñ(ð8ð ˜Ñ'ð	8ð
 
ô8rL   rÙ   ú
Reading...)rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   Úfilec          
      óì   — |rt        d«      gng }|j                  t        ||	|
|¬«      t        «       t	        «       f«       t        ||||||xs d|dœŽ}|j                  | ||¬«      }t        ||«      S )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‚   rm   r„   )rt   rs   )r…   r†   r‡   ÚDownloadColumnr‰   rA   Ú	wrap_filerÙ   )rà   rt   rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r‹   r@   rÚ   s                   rK   rã   rã   &  sž   € ñJ EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð ×Ñ ¨E¸{ÐÓK€FÜ˜ &Ó)Ð)rL   )rt   rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   úPathLike[str]r©   ÚrtÚrÚ	bufferingÚencodingÚerrorsÚnewlinec                 ó   — y rV   r˜   ©rà   r©   rç   rè   ré   rê   rt   rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   s                     rK   Úopenrí   g  ó   € ð, 	rL   Úrbc                 ó   — y rV   r˜   rì   s                     rK   rí   rí   €  rî   rL   c          
      óö   — |rt        d«      gng }|j                  t        ||||¬«      t        «       t	        «       f«       t        |||	|
||xs d|dœŽ}|j                  | |||||||¬«      }t        ||«      S )a®  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‚   rm   r„   )r©   rç   rè   ré   rê   rt   rs   )r…   r†   r‡   râ   r‰   rA   rí   rÙ   )rà   r©   rç   rè   ré   rê   rt   rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r‹   r@   rÚ   s                        rK   rí   rí   ™  s´   € ñb EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð �]‰]ØØØØØØØØð ó 	€Fô ˜ &Ó)Ð)rL   c                   ót   — e Zd ZU dZdZee   ed<   ddee   ddfd„Z	defd„Z
dd	defd
„Zedd	defd„«       Zy)ÚProgressColumnz3Base class for a widget to use in progress display.NÚmax_refreshÚtable_columnrM   c                 ó.   — || _         i | _        d | _        y rV   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rI   rõ   s     rK   rH   zProgressColumn.__init__ô  s   € Ø)ˆÔØMOˆÔØ-1ˆÕrL   c                 ó2   — | j                   xs
 t        «       S )z.Get a table column, used to build tasks table.)r÷   r7   rY   s    rK   Úget_table_columnzProgressColumn.get_table_columnù  s   € à×!Ñ!Ò-¤V£XÐ-rL   r�   ÚTaskc                 ó.  — |j                  «       }| j                  �=|j                  s1	 | j                  |j                     \  }}|| j                  z   |kD  r|S | j                  |«      }||f| j                  |j                  <   |S # t
        $ r Y Œ9w xY w)a  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).
        )rx   rô   rF   rø   ÚidÚKeyErrorÚrender)rI   r�   Úcurrent_timeÚ	timestampÚ
renderables        rK   Ú__call__zProgressColumn.__call__ý  s›   € ð —}‘}“ˆØ×ÑÐ'°·²ð&Ø(,×(>Ñ(>¸t¿w¹wÑ(GÑ%�	˜:ð ˜t×/Ñ/Ñ/°,Ò>Ø%Ð%à—[‘[ Ó&ˆ
Ø+7¸Ð*Dˆ×Ñ˜tŸw™wÑ'ØÐøô ò Ùðús   ªB Â	BÂBc                  ó   — y)z"Should return a renderable object.Nr˜   ©rI   r�   s     rK   r   zProgressColumn.render  s   � rL   rV   )re   rf   rg   rh   rô   r    ri   Ú__annotations__r7   rH   rû   r0   r  r   r   r˜   rL   rK   ró   ró   ï  sl   … Ù=à#'€K�˜%‘Ó'ñ2 X¨fÑ%5ð 2Àó 2ð
. &ó .ð˜Vð ¨ó ð. ð1˜6ð 1 nò 1ó ñ1rL   ró   c                   óL   ‡ — e Zd ZdZ	 dddœdedee   fˆ fd„Zddd	efd
„Zˆ xZ	S )ÚRenderableColumnz�A column to insert an arbitrary column.

    Args:
        renderable (RenderableType, optional): Any renderable. Defaults to empty string.
    N©rõ   r  rõ   c                ó4   •— || _         t        ‰| �	  |¬«       y ©Nr
  )r  rG   rH   )rI   r  rõ   rJ   s      €rK   rH   zRenderableColumn.__init__   s   ø€ ð %ˆŒÜ‰Ñ lÐÕ3rL   r�   rü   rM   c                 ó   — | j                   S rV   )r  r  s     rK   r   zRenderableColumn.render&  s   € Ø�‰ÐrL   )Ú )
re   rf   rg   rh   r0   r    r7   rH   r   rk   rl   s   @rK   r	  r	    sB   ø„ ñð ,.ð4ØSWò4Ø(ð4Ø@HÈÑ@Põ4ð˜6ð  n÷ rL   r	  c                   ó„   ‡ — e Zd ZdZ	 	 	 	 	 ddedee   dededee	   f
ˆ fd„Z
	 	 dded	ee   ded
dfd„Zddd
efd„Zˆ xZS )ÚSpinnerColumna‰  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_namerz   ÚspeedÚfinished_textrõ   c                 ó¤   •— t        |||¬«      | _        t        |t        «      rt	        j
                  |«      n|| _        t        ‰| �!  |¬«       y )N©rz   r  r
  )	r5   ÚspinnerÚ
isinstancerÕ   r9   Úfrom_markupr  rG   rH   )rI   r  rz   r  r  rõ   rJ   s         €rK   rH   zSpinnerColumn.__init__4  sN   ø€ ô ˜|°5ÀÔFˆŒô ˜-¬Ô-ô ×Ñ˜]Ô+àð 	Ôô
 	‰Ñ lÐÕ3rL   Úspinner_stylerM   c                 ó*   — t        |||¬«      | _        y)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  )rI   r  r  r  s       rK   Úset_spinnerzSpinnerColumn.set_spinnerD  s   € ô ˜|°=ÈÔNˆ�rL   r�   rü   c                 óŒ   — |j                   r| j                  }|S | j                  j                  |j	                  «       «      }|S rV   )Úfinishedr  r  r   rx   )rI   r�   Útexts      rK   r   zSpinnerColumn.renderS  sH   € ð �}Š}ð ×Ñð 	ð
 ˆð —‘×$Ñ$ T§]¡]£_Ó5ð 	ð
 ˆrL   )Údotsúprogress.spinnerç      ð?ú N)r   r!  )re   rf   rg   rh   rÕ   r    r6   ri   r:   r7   rH   r  r0   r   rk   rl   s   @rK   r  r  *  s©   ø„ ñð #Ø%7ØØ"%Ø)-ñ4àð4ð ˜	Ñ"ð4ð ð	4ð
  ð4ð ˜vÑ&õ4ð& .@Øñ	OàðOð   	Ñ*ðOð ð	Oð
 
óOð˜6ð  n÷ rL   r  c                   óh   ‡ — e Zd ZdZ	 	 	 	 	 ddededededee	   dee
   d	dfˆ fd
„Zddd	efd„Zˆ xZS )r…   zA column containing text.NÚtext_formatrz   ÚjustifyÚmarkupÚhighlighterrõ   rM   c                 óˆ   •— || _         || _        || _        || _        || _        t
        ‰| �  |xs t        d¬«      ¬«       y )NT©Úno_wrapr
  )r$  r%  rz   r&  r'  rG   rH   r7   )rI   r$  rz   r%  r&  r'  rõ   rJ   s          €rK   rH   zTextColumn.__init___  sD   ø€ ð 'ˆÔØ&-ˆŒØˆŒ
ØˆŒØ&ˆÔÜ‰Ñ lÒ&J´fÀTÔ6JÐÕKrL   r�   rü   c                 óB  — | j                   j                  |¬«      }| j                  r-t        j                  || j
                  | j                  ¬«      }n"t        || j
                  | j                  ¬«      }| j                  r| j                  j                  |«       |S ©N©r�   )rz   r%  )	r$  Úformatr&  r9   r  rz   r%  r'  Ú	highlight)rI   r�   Ú_textr  s       rK   r   zTextColumn.rendero  sv   € Ø× Ñ ×'Ñ'¨TÐ'Ó2ˆØ�;Š;Ü×#Ñ# E°·±ÀTÇ\Á\ÔR‰Dä˜ T§Z¡Z¸¿¹ÔFˆDØ×ÒØ×Ñ×&Ñ& tÔ,ØˆrL   )ÚnoneÚleftTNN)re   rf   rg   rh   rÕ   r6   r/   rÑ   r    r1   r7   rH   r9   r   rk   rl   s   @rK   r…   r…   \  s…   ø„ Ù#ð
 "Ø!'ØØ-1Ø)-ñLàðLð ðLð ð	Lð
 ðLð ˜kÑ*ðLð ˜vÑ&ðLð 
õLð ˜6ð  d÷ rL   r…   c                   ój   ‡ — e Zd ZdZ	 	 	 	 	 	 ddee   dededededee   d	dfˆ fd
„Zddd	e	fd„Z
ˆ xZS )r‡   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_widthrz   r{   r|   r}   rõ   rM   c                 ól   •— || _         || _        || _        || _        || _        t
        ‰| �  |¬«       y r  )r4  rz   r{   r|   r}   rG   rH   )rI   r4  rz   r{   r|   r}   rõ   rJ   s          €rK   rH   zBarColumn.__init__…  s;   ø€ ð #ˆŒØˆŒ
Ø,ˆÔØ,ˆÔØ&ˆÔÜ‰Ñ lÐÕ3rL   r�   rü   c                 ó\  — t        |j                  �t        d|j                  «      ndt        d|j                  «      | j                  €dnt        d| j                  «      |j
                   |j                  «       | j                  | j                  | j                  | j                  ¬«	      S )z&Gets a progress bar widget for a task.Nr   r*   )	rt   rF   ÚwidthÚpulseÚanimation_timerz   r{   r|   r}   )r4   rt   ÚmaxrF   r4  Ústartedrx   rz   r{   r|   r}   r  s     rK   r   zBarColumn.render•  s„   € äØ(,¯
©
Ð(>”#�a˜Ÿ™Ô$ÀDÜ˜!˜TŸ^™^Ó,ØŸ.™.Ð0‘$´c¸!¸T¿^¹^Ó6LØ—l‘lÐ"ØŸ=™=›?Ø—*‘*Ø×.Ñ.Ø×.Ñ.Ø×(Ñ(ô

ð 
	
rL   )é(   rn   ro   rp   rq   N)re   rf   rg   rh   r    rÔ   r6   r7   rH   r4   r   rk   rl   s   @rK   r‡   r‡   z  s�   ø„ ñð $&Ø%Ø$2Ø$2Ø!,Ø)-ñ4à˜C‘=ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð ˜vÑ&ð4ð 
õ4ð 
˜6ð 
 k÷ 
rL   r‡   c                   ó    — e Zd ZdZdddefd„Zy)ÚTimeElapsedColumnzRenders time elapsed.r�   rü   rM   c                 ó¾   — |j                   r|j                  n|j                  }|€t        dd¬«      S t	        t        |«      ¬«      }t        t        |«      d¬«      S )zShow time elapsed.ú-:--:--úprogress.elapsed©rz   )Úseconds)r  Úfinished_timeÚelapsedr9   r	   rÔ   rÕ   )rI   r�   rE  Údeltas       rK   r   zTimeElapsedColumn.render§  sL   € à(,¯ª�$×$Ò$¸4¿<¹<ˆØˆ?Ü˜	Ð);Ô<Ð<Ü¤# g£,Ô/ˆÜ”C˜“JÐ&8Ô9Ð9rL   N©re   rf   rg   rh   r9   r   r˜   rL   rK   r>  r>  ¤  s   „ Ùð:˜6ð : dô :rL   r>  c                   ó–   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 ddedededededee	   d	ee
   d
eddfˆ fd„Zedee   defd„«       Zdddefd„Zˆ xZS )rˆ   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.
    Nr$  Útext_format_no_percentagerz   r%  r&  r'  rõ   r   rM   c	                 óL   •— || _         || _        t        ‰	| �  ||||||¬«       y )N)r$  rz   r%  r&  r'  rõ   )rI  r   rG   rH   )
rI   r$  rI  rz   r%  r&  r'  rõ   r   rJ   s
            €rK   rH   zTaskProgressColumn.__init__¾  s9   ø€ ð *CˆÔ&Ø$ˆŒÜ‰ÑØ#ØØØØ#Ø%ð 	õ 	
rL   r  c                 óš   — |€t        dd¬«      S t        j                  t        |«      g d¢d«      \  }}||z  }t        |d›|› d�d¬«      S )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.percentagerB  )r  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r9   r+   Úpick_unit_and_suffixrÔ   )Úclsr  ÚunitÚsuffixÚ
data_speeds        rK   Úrender_speedzTaskProgressColumn.render_speedÕ  s_   € ð ˆ=Ü˜Ð"7Ô8Ð8Ü×4Ñ4Ü�‹JÚ<Øó
‰ˆˆfð
 ˜T‘\ˆ
Ü�z #Ð& v h¨eÐ4Ð<QÔRÐRrL   r�   rü   c                 óø  — |j                   €5| j                  r)| j                  |j                  xs |j                  «      S |j                   €| j
                  n| j                  }|j                  |¬«      }| j                  r-t        j                  || j                  | j                  ¬«      }n"t        || j                  | j                  ¬«      }| j                  r| j                  j                  |«       |S r,  )rt   r   rR  Úfinished_speedr  rI  r$  r.  r&  r9   r  rz   r%  r'  r/  )rI   r�   r$  r0  r  s        rK   r   zTaskProgressColumn.renderé  sÁ   € Ø�:‰:Ð $§/¢/Ø×$Ñ$ T×%8Ñ%8Ò%F¸D¿J¹JÓGÐGà.2¯j©jÐ.@ˆD×*Ò*Àd×FVÑFVð 	ð ×"Ñ"¨Ð"Ó-ˆØ�;Š;Ü×#Ñ# E°·±ÀTÇ\Á\ÔR‰Dä˜ T§Z¡Z¸¿¹ÔFˆDØ×ÒØ×Ñ×&Ñ& tÔ,ØˆrL   )z-[progress.percentage]{task.percentage:>3.0f}%r  r1  r2  TNNF)re   rf   rg   rh   rÕ   r6   r/   rÑ   r    r1   r7   rH   Úclassmethodri   r9   rR  r   rk   rl   s   @rK   rˆ   rˆ   °  sÇ   ø„ ñð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ñ
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð ˜kÑ*ð
ð ˜vÑ&ð
ð ð
ð 
õ
ð. ðS ¨%¡ð S°Tò Só ðSð&˜6ð  d÷ rL   rˆ   c                   óR   ‡ — e Zd ZdZdZ	 	 	 ddededee   fˆ fd„Zddd	e	fd
„Z
ˆ xZS )r‰   a  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                 óB   •— || _         || _        t        ‰| �  |¬«       y r  )rX  rƒ   rG   rH   )rI   rX  rƒ   rõ   rJ   s       €rK   rH   zTimeRemainingColumn.__init__  s$   ø€ ð ˆŒØ%:ˆÔ"Ü‰Ñ lÐÕ3rL   r�   rü   rM   c                 ó–  — | j                   r|j                  r|j                  }d}n|j                  }d}|j                  €t        d|¬«      S |€!t        | j                  rd|¬«      S d|¬«      S t        t        |«      d«      \  }}t        |d«      \  }}| j                  r|s
|d›d	|d›�}n|d
›d	|d›d	|d›�}t        ||¬«      S )zShow time remaining.rA  zprogress.remainingr  rB  z--:--r@  é<   Ú02dú:Úd)	rƒ   r  rD  Útime_remainingrt   r9   rX  ÚdivmodrÔ   )rI   r�   Ú	task_timerz   ÚminutesrC  ÚhoursÚ	formatteds           rK   r   zTimeRemainingColumn.render  sØ   € à×%Ò%¨$¯-ª-Ø×*Ñ*ˆIØ&‰Eà×+Ñ+ˆIØ(ˆEà�:‰:ÐÜ˜ %Ô(Ð(àÐÜ 4§<¢<˜ÀeÔLÐL°YÀeÔLÐLô "¤# i£.°"Ó5Ñˆ�Ü ¨Ó,‰ˆˆwà�<Š<¡Ø" 3˜- q¨°¨Ð6‰Ià  ˜) 1 W¨S M°°7¸3°-Ð@ˆIä�I UÔ+Ð+rL   )FFN)re   rf   rg   rh   rô   rÑ   r    r7   rH   r9   r   rk   rl   s   @rK   r‰   r‰   ù  sS   ø„ ñð €Kð Ø&+Ø)-ñ	4àð4ð  $ð4ð ˜vÑ&õ	4ð,˜6ð , d÷ ,rL   r‰   c                   ó    — e Zd ZdZdddefd„Zy)ÚFileSizeColumnzRenders completed filesize.r�   rü   rM   c                 ól   — t        j                  t        |j                  «      «      }t	        |d¬«      S )úShow data completed.zprogress.filesizerB  )r+   ÚdecimalrÔ   rF   r9   ©rI   r�   Ú	data_sizes      rK   r   zFileSizeColumn.render,  s)   € ä×$Ñ$¤S¨¯©Ó%8Ó9ˆ	Ü�IÐ%8Ô9Ð9rL   NrG  r˜   rL   rK   rf  rf  )  s   „ Ù%ð:˜6ð : dô :rL   rf  c                   ó    — e Zd ZdZdddefd„Zy)ÚTotalFileSizeColumnzRenders total filesize.r�   rü   rM   c                 óˆ   — |j                   �(t        j                  t        |j                   «      «      nd}t	        |d¬«      S )rh  r  zprogress.filesize.totalrB  )rt   r+   ri  rÔ   r9   rj  s      rK   r   zTotalFileSizeColumn.render5  s4   € à9=¿¹Ð9O”H×$Ñ$¤S¨¯©£_Ô5ÐUWˆ	Ü�IÐ%>Ô?Ð?rL   NrG  r˜   rL   rK   rm  rm  2  s   „ Ù!ð@˜6ð @ dô @rL   rm  c                   óD   ‡ — e Zd ZdZd	dedee   fˆ fd„Zdddefd„Z	ˆ xZ
S )
ÚMofNCompleteColumnaH  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                 ó4   •— || _         t        ‰| �	  |¬«       y r  )rq  rG   rH   )rI   rq  rõ   rJ   s      €rK   rH   zMofNCompleteColumn.__init__G  s   ø€ Ø"ˆŒÜ‰Ñ lÐÕ3rL   r�   rü   rM   c                 óÜ   — t        |j                  «      }|j                  �t        |j                  «      nd}t        t	        |«      «      }t        ||› d�›| j                  › |› �d¬«      S )zShow completed/total.ú?r^  úprogress.downloadrB  )rÔ   rF   rt   rž   rÕ   r9   rq  )rI   r�   rF   rt   Útotal_widths        rK   r   zMofNCompleteColumn.renderK  sc   € ä˜Ÿ™Ó'ˆ	Ø#'§:¡:Ð#9”�D—J‘J”¸sˆÜœ#˜e›*“oˆÜØ˜+˜ a˜Ð(¨¯©Ð(8¸¸Ð@Ø%ô
ð 	
rL   )ú/N)re   rf   rg   rh   rÕ   r    r7   rH   r9   r   rk   rl   s   @rK   rp  rp  ;  s3   ø„ ñ	ñ4 #ð 4¸8ÀFÑ;Kõ 4ð
˜6ð 
 d÷ 
rL   rp  c                   óJ   ‡ — e Zd ZdZ	 d
dedee   ddfˆ fd„Zdddefd	„Z	ˆ xZ
S )râ   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õ   rM   c                 ó4   •— || _         t        ‰| �	  |¬«       y r  )ry  rG   rH   )rI   ry  rõ   rJ   s      €rK   rH   zDownloadColumn.__init__]  s   ø€ ð )ˆÔÜ‰Ñ lÐÕ3rL   r�   rü   c                 ó¼  — t        |j                  «      }|j                  �t        |j                  «      n|}| j                  rt	        j
                  |g d¢d«      \  }}nt	        j
                  |g d¢d«      \  }}|dk(  rdnd}||z  }|d|› d�›}|j                  �#t        |j                  «      }	|	|z  }
|
d|› d�›}nd	}|› d
|› d|› �}t        |d¬«      }|S )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ÚYBrL  r*   r   z,.Úfrt  rw  r"  ru  rB  )rÔ   rF   rt   ry  r+   rM  r9   )rI   r�   rF   Ú unit_and_suffix_calculation_baserO  rP  Ú	precisionÚcompleted_ratioÚcompleted_strrt   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rK   r   zDownloadColumn.renderc  sÿ   € ä˜Ÿ™Ó'ˆ	ð  $Ÿz™zÐ5ŒC�—
‘
ŒO¸9ð 	)ð ×ÒÜ#×8Ñ8Ø0ÚQØó‰LˆD‘&ô $×8Ñ8Ø0ÚIØó‰LˆD�&ð
  š‘A¨ˆ	à# dÑ*ˆØ*¨2¨i¨[¸¨/Ð:ˆà�:‰:Ð!Ü˜Ÿ
™
“OˆEØ $™,ˆKØ& r¨)¨°A oÐ6‰IàˆIà*˜O¨1¨Y¨K°q¸¸ÐAˆÜ˜_Ð4GÔHˆØÐrL   )FN)re   rf   rg   rh   rÑ   r    r7   rH   r9   r   rk   rl   s   @rK   râ   râ   V  sD   ø„ ñð LPñ4Ø ð4Ø8@ÀÑ8Hð4à	õ4ð!˜6ð ! d÷ !rL   râ   c                   ó    — e Zd ZdZdddefd„Zy)ÚTransferSpeedColumnz&Renders human readable transfer speed.r�   rü   rM   c                 ó°   — |j                   xs |j                  }|€t        dd¬«      S t        j                  t        |«      «      }t        |› d�d¬«      S )zShow data transfer speed.rt  zprogress.data.speedrB  z/s)rT  r  r9   r+   ri  rÔ   )rI   r�   r  rQ  s       rK   r   zTransferSpeedColumn.renderŠ  sR   € à×#Ñ#Ò1 t§z¡zˆØˆ=Ü˜Ð#8Ô9Ð9Ü×%Ñ%¤c¨%£jÓ1ˆ
Ü�z�l "Ð%Ð-BÔCÐCrL   NrG  r˜   rL   rK   r–  r–  ‡  s   „ Ù0ðD˜6ð D dô DrL   r–  c                   ó(   — e Zd ZU dZeed<   	 eed<   y)ÚProgressSamplez$Sample of progress for a given time.r  rF   N)re   rf   rg   rh   ri   r  r˜   rL   rK   r™  r™  “  s   … Ù.àÓØØÓØ$rL   r™  c                   ó  — e Zd ZU dZeed<   	 eed<   	 ee   ed<   	 eed<   	 e	ed<   	 dZ
ee   ed<   	 d	Zeed
<   	  ee¬«      Zeeef   ed<   	  eddd¬«      Zee   ed<   	  eddd¬«      Zee   ed<   	 dZee   ed<   	  ed„ dd¬«      Zee   ed<    ede¬«      Zeed<   	 defd„Zedefd„«       Zedee   fd„«       Zedee   fd„«       Zedefd„«       Zedefd„«       Z edee   fd„«       Z!edee   fd„«       Z"d!d „Z#y)"rü   z…Information regarding a progress task.

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

    rþ   rs   rt   rF   Ú	_get_timeNrD  TÚvisible)Údefault_factoryÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timerT  c                  ó   — t        d¬«      S )NrL  )Úmaxlenr   r˜   rL   rK   ú<lambda>zTask.<lambda>Æ  s   € ¤¨TÔ 2€ rL   )r�  r   r¡  Ú	_progress)r¡  r�  Ú_lockrM   c                 ó"   — | j                  «       S )z(float: Get the current time, in seconds.)r›  rY   s    rK   rx   zTask.get_timeÌ  s   € à�~‰~ÓÐrL   c                 ó   — | j                   duS )z#bool: Check if the task as started.N)r¢  rY   s    rK   r;  zTask.startedÐ  s   € ð �‰ dÐ*Ð*rL   c                 óN   — | j                   €y| j                   | j                  z
  S )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N)rt   rF   rY   s    rK   Ú	remainingzTask.remainingÕ  s$   € ð �:‰:ÐØØ�z‰z˜DŸN™NÑ*Ð*rL   c                 ó    — | j                   €y| j                  �| j                  | j                   z
  S | j                  «       | j                   z
  S )z]Optional[float]: Time elapsed since task was started, or ``None`` if the task hasn't started.N)r¢  r£  rx   rY   s    rK   rE  zTask.elapsedÜ  sC   € ð �?‰?Ð"ØØ�>‰>Ð%Ø—>‘> D§O¡OÑ3Ð3Ø�}‰}‹ §¡Ñ0Ð0rL   c                 ó   — | j                   duS )zCheck if the task has finished.N)rD  rY   s    rK   r  zTask.finishedå  s   € ð ×!Ñ!¨Ð-Ð-rL   c                 ó„   — | j                   sy| j                  | j                   z  dz  }t        dt        d|«      «      }|S )zOfloat: Get progress of task as a percentage. If a None total was set, returns 0ç        ç      Y@)rt   rF   Úminr:  )rI   rF   s     rK   Ú
percentagezTask.percentageê  s>   € ð �zŠzØØ—^‘^ d§j¡jÑ0°EÑ9ˆ	Ü˜œs 3¨	Ó2Ó3ˆ	ØÐrL   c                 óJ  — | j                   €y| j                  5  | j                  }|s
	 ddd«       y|d   j                  |d   j                  z
  }|dk(  r
	 ddd«       yt	        |«      }t        |«       t        d„ |D «       «      }||z  }|cddd«       S # 1 sw Y   yxY w)z=Optional[float]: Get the estimated speed in steps per second.NrÐ   r   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrV   rÈ   )Ú.0Úsamples     rK   ú	<genexpr>zTask.speed.<locals>.<genexpr>  s   è ø€ Ò!O°v &×"2Õ"2Ñ!Oùó   ‚)r¢  r¨  r§  r  Úiterr�   rÁ   )rI   r@   Ú
total_timeÚiter_progressÚtotal_completedr  s         rK   r  z
Task.speedó  sª   € ð �?‰?Ð"ØØ�Z‰Zñ 	Ø—~‘~ˆHÙØ÷	ð 	ð " "™×/Ñ/°(¸1±+×2GÑ2GÑGˆJØ˜QŠØ÷	ð 	ô ! ›NˆMÜ�ÔÜ!Ñ!OÀÔ!OÓOˆOØ# jÑ0ˆEØ÷	÷ 	ò 	ús   šB³%BÁ!.BÂB"c                 óx   — | j                   ry| j                  }|sy| j                  }|€yt        ||z  «      }|S )zJOptional[float]: Get estimated time to completion, or ``None`` if no data.r°  N)r  r  r¬  r   )rI   r  r¬  Úestimates       rK   r_  zTask.time_remaining  sC   € ð �=Š=ØØ—
‘
ˆÙØØ—N‘Nˆ	ØÐØÜ˜	 EÑ)Ó*ˆØˆrL   c                 óT   — | j                   j                  «        d| _        d| _        y)zReset progress.N)r§  ÚclearrD  rT  rY   s    rK   Ú_resetzTask._reset  s"   € à�‰×ÑÔØ!ˆÔØ"ˆÕrL   rd   )$re   rf   rg   rh   r;   r  rÕ   r    ri   ÚGetTimeCallablerD  rœ  rÑ   r   Údictrž  r   r   r¢  r£  rT  r§  r   r™  r   r¨  rx   rÓ   r;  r¬  rE  r  r³  r  r_  rÂ  r˜   rL   rK   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 ‘ò ó ðð" ð ¨¡ò ó ðô#rL   rü   c                   óø  — e Zd ZdZdddddddddddœ
deeef   d	ee   d
e	de
de
de	de	de	dee   de	de	ddfd„Zedeedf   fd„«       Zedefd„«       Zedee   fd„«       Zedee   fd„«       Zede	fd„«       ZdOd„ZdOd„ZdPd„Zdeee      dee   d ee   ddfd!„Z	 	 	 	 dQd"eee    e!e    f   d#ee
   d$ee   d%ed&e
dee    fd'„Z"	 dRdd(d)œd*e#d#ee$   d$ee   d%ede#f
d+„Z%e&jN                  	 	 	 	 dSddd(d,œd*eed-e(f   d.e)d/   d0e$d1ee   d2ee   d3ee   d#ee$   d$ee   d%ede#fd4„«       Z*e&jN                  	 	 	 	 dSddd(d,œd*eed-e(f   d.ee)d5   e)d6   f   d0e$d1ee   d2ee   d3ee   d#ee$   d$ee   d%ede+fd7„«       Z*	 	 	 	 	 dTddd(d,œd*eed-e(f   d.ee)d/   e)d6   e)d5   f   d0e$d1ee   d2ee   d3ee   d#ee$   d$ee   d%edee#e+f   fd8„Z*d$eddfd9„Z,d$eddfd:„Z-ddddddd;œd$ed#ee
   d<ee
   d=ee
   d%ee   d>ee	   d?e	d@e.ddfdA„Z/dddBdddCœd$edDe	d#ee
   d<e$d>ee	   d%ee   d@e.ddfdE„Z0dUd$ed=e
ddfdF„Z1dOdG„Z2de3fdH„Z4dee3   fdI„Z5dJee   de6fdK„Z7de3fdL„Z8	 	 	 	 dVd%edDe	d#ee
   d<e$d>e	d@e.defdM„Z9d$eddfdN„Z:y)WrA   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.
    NTrm   g      >@F)
rv   ru   ry   Úspeed_estimate_periodrw   Úredirect_stdoutÚredirect_stderrrx   r~   Úexpandr‹   rv   ru   ry   rÆ  rw   rÇ  rÈ  rx   r~   rÉ  rM   c       
   	      óÈ  — |dkD  sJ d«       ‚t        «       | _        |xs | j                  «       | _        || _        |	| _        |
| _        i | _        t        d«      | _	        t        |xs
 t        «       |||||| j                  ¬«      | _        |xs | j                  j                  | _        | j                  j                   | _        | j                  j"                  | _        y )Nr   zrefresh_per_second must be > 0)rv   ru   ry   rw   rÇ  rÈ  Úget_renderable)r   r¨  Úget_default_columnsr‹   rÆ  r~   rÉ  Ú_tasksr;   Ú_task_indexr3   r,   rË  Úliverv   rx   ÚprintÚlog)rI   rv   ru   ry   rÆ  rw   rÇ  rÈ  rx   r~   rÉ  r‹   s               rK   rH   zProgress.__init__*  sÇ   € ð " AÒ%ÐGÐ'GÓGÐ%Ü“WˆŒ
ØÒ< $×":Ñ":Ó"<ˆŒØ%:ˆÔ"àˆŒØˆŒØ*,ˆŒÜ#)¨!£9ˆÔÜØÒ,œ{›}Ø%Ø1ØØ+Ø+Ø×.Ñ.ô
ˆŒ	ð !Ò9 D§L¡L×$9Ñ$9ˆŒØ—\‘\×'Ñ'ˆŒ
Ø—<‘<×#Ñ#ˆ�rL   .c                 óP   — t        d«      t        «       t        «       t        «       fS )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.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‰   )rN  s    rK   rÌ  zProgress.get_default_columnsN  s(   € ô2 ÐAÓBÜ‹KÜÓ ÜÓ!ð	
ð 	
rL   c                 ó.   — | j                   j                  S rV   )rÏ  rv   rY   s    rK   rv   zProgress.consolem  s   € à�y‰y× Ñ Ð rL   c                 óŒ   — | j                   5  t        | j                  j                  «       «      cddd«       S # 1 sw Y   yxY w)zGet a list of Task instances.N)r¨  ÚlistrÍ  ÚvaluesrY   s    rK   ÚtaskszProgress.tasksq  s5   € ð �Z‰Zñ 	.Ü˜Ÿ™×*Ñ*Ó,Ó-÷	.÷ 	.ò 	.úó	   �#:ºAc                 óŒ   — | j                   5  t        | j                  j                  «       «      cddd«       S # 1 sw Y   yxY w)zA list of task IDs.N)r¨  rÕ  rÍ  ÚkeysrY   s    rK   Útask_idszProgress.task_idsw  s5   € ð �Z‰Zñ 	,Ü˜Ÿ™×(Ñ(Ó*Ó+÷	,÷ 	,ò 	,úrØ  c                 óÆ   — | j                   5  | j                  s
	 ddd«       yt        d„ | j                  j                  «       D «       «      cddd«       S # 1 sw Y   yxY w)z'Check if all tasks have been completed.NTc              3   ó4   K  — | ]  }|j                   –— Œ y ­wrV   )r  )r¶  r�   s     rK   r¸  z$Progress.finished.<locals>.<genexpr>ƒ  s   è ø€ ÒF¨�t—}•}ÑFùr¹  )r¨  rÍ  ÚallrÖ  rY   s    rK   r  zProgress.finished}  sW   € ð �Z‰Zñ 	GØ—;’;Ø÷	Gð 	Gô ÑF°·±×1CÑ1CÓ1EÔFÓF÷	G÷ 	Gò 	Gús   �A¤)AÁA c                 óV   — | j                   s| j                  j                  d¬«       yy)zStart the progress display.T)rO   N)r~   rÏ  rX   rY   s    rK   rX   zProgress.start…  s    € à�|Š|Ø�I‰I�O‰O DˆOÕ)ð rL   c                 óš   — | j                   j                  «        | j                  j                  s| j                  j	                  «        yy)zStop the progress display.N)rÏ  rÞ   rv   Úis_interactiverÐ  rY   s    rK   rÞ   zProgress.stopŠ  s2   € à�	‰	�‰ÔØ�|‰|×*Ò*Ø�L‰L×ÑÕ ð +rL   c                 ó&   — | j                  «        | S rV   rW   rY   s    rK   rZ   zProgress.__enter__�  r[   rL   r\   r]   r^   c                 ó$   — | j                  «        y rV   )rÞ   rb   s       rK   rc   zProgress.__exit__”  s   € ð 	�	‰	�rL   rr   rt   rB   rs   rC   c              #   ó¬  K  — |€t        t        |«      «      xs d}|€| j                  ||¬«      }n| j                  ||¬«       | j                  j
                  r8t        | ||«      5 }|D ]  }|–— |xj                  dz  c_        Œ 	 ddd«       y| j                  }| j                  }	|D ]  }|–—  ||d«        |	«        Œ y# 1 sw Y   yxY w­w)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©rt   r*   )
ri   r   Úadd_taskrR   rÏ  ru   r?   rF   rP   rO   )
rI   rr   rt   rB   rs   rC   Útrack_threadÚvaluerP   rO   s
             rK   rŠ   zProgress.trackœ  sØ   è ø€ ð( ˆ=Üœ+ hÓ/Ó0Ò8°DˆEàˆ?Ø—m‘m K°u�mÓ=‰Gà�K‰K˜ uˆKÔ-à�9‰9×!Ò!Ü˜d G¨]Ó;ð 0¸|Ø%ò 0�EØ’KØ ×*Ò*¨aÑ/Ö*ñ0÷0ð 0ð
 —l‘lˆGØ—l‘lˆGØ!ò �Ø’Ù˜ Ô#Ù•	ñ÷0ð 0üs   ‚A'CÁ)!CÂ=CÃCÃCrß   )rB   rs   rà   c                ó  — d}|�|}n0|�.| j                   5  | j                  |   j                  }ddd«       |€t        d«      ‚|€| j	                  ||¬«      }n| j                  ||¬«       t        || |d¬«      S # 1 sw Y   ŒNxY w)aj  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Í  rt   Ú
ValueErrorræ  rR   r�   )rI   rà   rt   rB   rs   Útotal_bytess         rK   rã   zProgress.wrap_fileÅ  sš   € ð. (,ˆØÐØ‰KØÐ Ø—‘ñ 9Ø"Ÿk™k¨'Ñ2×8Ñ8�÷9àÐÜØQóð ð
 ˆ?Ø—m‘m K°{�mÓC‰Gà�K‰K˜ {ˆKÔ3ä�t˜T 7¸Ô?Ð?÷9ð 9ús   –A=Á=B)rt   rB   rs   rä   r©   rï   rç   rè   ré   rê   c                 ó   — y rV   r˜   ©
rI   rà   r©   rç   rè   ré   rê   rt   rB   rs   s
             rK   rí   zProgress.openï  ó   € ð 	rL   ræ   rå   c                 ó   — y rV   r˜   rî  s
             rK   rí   zProgress.openÿ  rï  rL   c                ó  — dj                  t        |d¬«      «      }
|
dvrt        dj                  |«      «      ‚|dk(  }|
dk(  r"|dk(  rt	        j
                  dt        «       d	}n|
d
v r|dk(  rt        d«      ‚|dk(  rd	}|€t        |«      j                  }|€| j                  |	|¬«      }n| j                  ||¬«       t        j                  |d|¬«      }t        || |d¬«      }|dv rt        j                  |||||¬«      S |S )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)Úbrrå   ræ   zinvalid mode {!r}r*   ró  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/Orå  rï   )rç   Trê  )ræ   rå   )rè   ré   rê   Úline_buffering)ra   Úsortedrë  r.  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizeræ  rR   Úiorí   r�   ÚTextIOWrapper)rI   rà   r©   rç   rè   ré   rê   rt   rB   rs   Ú_moderô  rŽ   rÚ   s                 rK   rí   zProgress.open  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°u�mÓ=‰Gà�K‰K˜ uˆKÔ-ô —‘˜˜t¨yÔ9ˆÜ˜  w¸TÔBˆð �;ÑÜ×#Ñ#ØØ!ØØØ-ôð ð ˆrL   c                 ó¦   — | j                   5  | j                  |   }|j                  €| j                  «       |_        ddd«       y# 1 sw Y   yxY w)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¢  rx   )rI   rB   r�   s      rK   Ú
start_taskzProgress.start_task\  sE   € ð �Z‰Zñ 	2Ø—;‘;˜wÑ'ˆDØ�‰Ð&Ø"&§-¡-£/�”÷	2÷ 	2ñ 	2ús   �1AÁAc                 ó¸   — | j                   5  | j                  |   }| j                  «       }|j                  €||_        ||_        ddd«       y# 1 sw Y   yxY w)z†Stop a task.

        This will freeze the elapsed time on the task.

        Args:
            task_id (TaskID): ID of task.
        N)r¨  rÍ  rx   r¢  r£  )rI   rB   r�   r  s       rK   Ú	stop_taskzProgress.stop_taskj  sQ   € ð �Z‰Zñ 	*Ø—;‘;˜wÑ'ˆDØŸ=™=›?ˆLØ�‰Ð&Ø".�”Ø)ˆDŒN÷	*÷ 	*ñ 	*ús   �:AÁA)rt   rF   rP   rs   rœ  rO   rF   rP   rœ  rO   rž  c                ó<  — | j                   5  | j                  |   }	|	j                  }
|�&||	j                  k7  r||	_        |	j	                  «        |�|	xj                  |z  c_        |�||	_        |�||	_        |�||	_        |	j                  j                  |«       |	j                  |
z
  }| j                  «       }|| j                  z
  }|	j                  }|j                  }|r.|d   j                  |k  r |«        |r|d   j                  |k  rŒ|dkD  r|j                  t        ||«      «       |	j                  �6|	j                  |	j                  k\  r|	j                   €|	j"                  |	_        ddd«       |r| j%                  «        yy# 1 sw Y   ŒxY w)a˜  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Í  rF   rt   rÂ  rs   rœ  rž  rR   rx   rÆ  r§  Úpopleftr  Úappendr™  rD  rE  rO   )rI   rB   rt   rF   rP   rs   rœ  rO   rž  r�   Úcompleted_startÚupdate_completedr  Úold_sample_timer§  r  s                   rK   rR   zProgress.updatey  sy  € ð0 �Z‰Zñ  	2Ø—;‘;˜wÑ'ˆDØ"Ÿn™nˆOàÐ  U¨d¯j©jÒ%8Ø"�”
Ø—‘”ØÐ"Ø—’ 'Ñ)•ØÐ$Ø!*�”ØÐ&Ø#.�Ô ØÐ"Ø&�”Ø�K‰K×Ñ˜vÔ&Ø#Ÿ~™~°Ñ?ÐàŸ=™=›?ˆLØ*¨T×-GÑ-GÑGˆOØŸ™ˆIà×'Ñ'ˆGÙ 	¨!¡× 6Ñ 6¸Ò HÙ”	ñ  	¨!¡× 6Ñ 6¸Ó Hà !Ò#Ø× Ñ ¤°Ð>NÓ!OÔPà—
‘
Ð&Ø—N‘N d§j¡jÒ0Ø×&Ñ&Ð.à%)§\¡\�Ô"÷A 	2ñD Ø�L‰L�Nð ÷E 	2ð  	2ús   �DFÄA"FÆFr   )rX   rt   rF   rœ  rs   rX   c                ó>  — | j                  «       }| j                  5  | j                  |   }	|	j                  «        |r|nd|	_        |�||	_        ||	_        |�||	_        |r||	_        |�||	_	        d|	_
        ddd«       | j                  «        y# 1 sw Y   ŒxY w)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)rx   r¨  rÍ  rÂ  r¢  rt   rF   rœ  rž  rs   rD  rO   )
rI   rB   rX   rt   rF   rœ  rs   rž  r  r�   s
             rK   ÚresetzProgress.reset¶  s™   € ð, —}‘}“ˆØ�Z‰Zñ 	&Ø—;‘;˜wÑ'ˆDØ�K‰KŒMÙ.3™l¸ˆDŒOØÐ Ø"�”
Ø&ˆDŒNØÐ"Ø&�”ÙØ$�”ØÐ&Ø#.�Ô Ø!%ˆDÔ÷	&ð 	�‰�÷	&ð 	&ús   �ABÂBc                 ó¶  — | j                  «       }| j                  5  | j                  |   }|j                  }|xj                  |z  c_        |j                  |z
  }|| j                  z
  }|j
                  }|j                  }	|r.|d   j                  |k  r |	«        |r|d   j                  |k  rŒt        |«      dkD  r |	«        t        |«      dkD  rŒ|j                  t        ||«      «       |j                  �G|j                  |j                  k\  r.|j                  €"|j                  |_        |j                  |_        ddd«       y# 1 sw Y   yxY w)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   rL  N)rx   r¨  rÍ  rF   rÆ  r§  r  r  rž   r  r™  rt   rD  rE  r  rT  )
rI   rB   rP   r  r�   r  r  r  r§  r  s
             rK   rP   zProgress.advanceÝ  s%  € ð —}‘}“ˆØ�Z‰Zñ 	1Ø—;‘;˜wÑ'ˆDØ"Ÿn™nˆOØ�NŠN˜gÑ%�NØ#Ÿ~™~°Ñ?ÐØ*¨T×-GÑ-GÑGˆOØŸ™ˆIà×'Ñ'ˆGÙ 	¨!¡× 6Ñ 6¸Ò HÙ”	ñ  	¨!¡× 6Ñ 6¸Ó Hä�i“. 4Ò'Ù”	ô �i“. 4Ó'à×Ñœ^¨LÐ:JÓKÔLà—
‘
Ð&Ø—N‘N d§j¡jÒ0Ø×&Ñ&Ð.à%)§\¡\�Ô"Ø&*§j¡j�Ô#÷)	1÷ 	1ñ 	1ús   �BEÂ4#EÃA.EÅEc                 ó€   — | j                   s2| j                  j                  r| j                  j                  «        yyy)z*Refresh (render) the progress information.N)r~   rÏ  Ú
is_startedrO   rY   s    rK   rO   zProgress.refreshû  s,   € à�|Š| §	¡	× 4Ò 4Ø�I‰I×ÑÕð !5ˆ|rL   c                 ó2   — t        | j                  «       Ž }|S )z*Get a renderable for the progress display.)r.   Úget_renderables)rI   r  s     rK   rË  zProgress.get_renderable   s   € ä˜D×0Ñ0Ó2Ð3ˆ
ØÐrL   c              #   óJ   K  — | j                  | j                  «      }|–— y­w)z5Get a number of renderables for the progress display.N)Úmake_tasks_tabler×  )rI   Útables     rK   r  zProgress.get_renderables  s   è ø€ à×%Ñ% d§j¡jÓ1ˆØ‹ùs   ‚!#r×  c                 óÚ   ‡— d„ | j                   D «       }t        j                  |d| j                  dœŽ}|D ]1  Š‰j                  sŒ |j
                  ˆfd„| j                   D «       Ž  Œ3 |S )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   ó�   K  — | ]>  }t        |t        «      rt        d ¬«      n|j                  «       j	                  «       –— Œ@ y­w)Tr)  N)r  rÕ   r7   rû   Úcopy)r¶  Ú_columns     rK   r¸  z,Progress.make_tasks_table.<locals>.<genexpr>  sE   è ø€ ò 
ð ô ˜g¤sÔ+ô ˜tÕ$à×-Ñ-Ó/×4Ñ4Ó6ó7ñ
ùs   ‚AA)r   r*   )ÚpaddingrÉ  c              3   ór   •K  — | ].  }t        |t        «      r|j                  ‰¬ «      n |‰«      –— Œ0 y­w)r-  N)r  rÕ   r.  )r¶  Úcolumnr�   s     €rK   r¸  z,Progress.make_tasks_table.<locals>.<genexpr>   s>   øè ø€ ò ð #ô  *¨&´#Ô6ð #ŸM™M¨t˜MÔ4á!'¨£ó.ñùs   ƒ47)r‹   r8   ÚgridrÉ  rœ  Úadd_row)rI   r×  Útable_columnsr  r�   s       @rK   r  zProgress.make_tasks_table
  sn   ø€ ñ
ð  Ÿ<™<ô
ˆô —
‘
˜M°6À$Ç+Á+ÒNˆàò 	ˆDØ�|‹|Ø�—‘óð '+§l¡lôò	ð	ð ˆrL   c                 óf   — | j                   5  | j                  «       cddd«       S # 1 sw Y   yxY w)z+Makes the Progress class itself renderable.N)r¨  rË  rY   s    rK   Ú__rich__zProgress.__rich__+  s*   € à�Z‰Zñ 	)Ø×&Ñ&Ó(÷	)÷ 	)ò 	)ús   �'§0c                 óš  — | j                   5  t        | j                  |||||| j                  | j                   ¬«      }|| j                  | j                  <   |r| j                  | j                  «       | j                  }t        t        | j                  «      dz   «      | _        ddd«       | j                  «        S # 1 sw Y   ŒxY w)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Î  rx   rÍ  rþ  r;   rÔ   rO   )	rI   rs   rX   rt   rF   rœ  rž  r�   Únew_task_indexs	            rK   ræ  zProgress.add_task0  s¸   € ð0 �Z‰Zñ 	AÜØ× Ñ ØØØØØØŸ-™-Ø—j‘jô	ˆDð -1ˆD�K‰K˜×(Ñ(Ñ)ÙØ—‘ × 0Ñ 0Ô1Ø!×-Ñ-ˆNÜ%¤c¨$×*:Ñ*:Ó&;¸aÑ&?Ó@ˆDÔ÷	Að  	�‰ŒØÐ÷#	Að 	Aús   �BCÃC
c                 ó`   — | j                   5  | j                  |= ddd«       y# 1 sw Y   yxY w)z]Delete a task if it exists.

        Args:
            task_id (TaskID): A task ID.

        N)r¨  rÍ  )rI   rB   s     rK   Úremove_taskzProgress.remove_task[  s,   € ð �Z‰Zñ 	%Ø—‘˜GÐ$÷	%÷ 	%ñ 	%ús   �$¤-rd   )rM   rA   )NNú
Working...çš™™™™™¹?rV   ©rÐ   NNN©ræ   rÐ   NNN)r*   )Tr±  r   T);re   rf   rg   rh   r&   rÕ   ró   r    r-   rÑ   ri   rÃ  rH   rU  r#   rÌ  rÓ   rv   r   rü   r×  r;   rÛ  r  rX   rÞ   rZ   r$   rj   r   rc   r   r<   r!   rŠ   r   rÔ   rã   ÚtypingÚoverloadrÒ   r)   rí   r"   rþ  r   r   rR   r  rP   rO   r0   rË  r  r8   r  r  ræ  r   r˜   rL   rK   rA   rA     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ô %rL   rA   Ú__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)Útyper  z	Syntax...zGive it a try!)Úcycle)Úrecord)rv   rw   z[red]DownloadingrL  rå  z[green]Processingz[yellow]ThinkingrW  rœ   g333333Ó?g{®Gáz„?éd   )r!  NTNFNrm   rn   ro   rp   rq   r"  FTr#  r$  )‡rú  Úsysr%  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&   Úversion_infor)   Úpip._vendor.typing_extensionsr  r+   r,   rv   r-   r.   r/   r0   r'  r1   Újupyterr2   rÏ  r3   Úprogress_barr4   r  r5   rz   r6   r  r7   r8   r  r9   r:   rÔ   r;   r<   ri   rÃ  r=   r?   rÕ   rÑ   rŠ   r�   rÙ   rã   r&  rÒ   rí   ró   r	  r  r…   r‡   r>  rˆ   r‰   rf  rm  rp  râ   r–  r™  rü   rA   re   ÚrandomÚtimeÚpanelr(  Úruler)  Úsyntaxr*  r  Úprogress_renderablesÚ	itertoolsr5  ÚexamplesrÌ  r@   ræ  Útask1Útask2Útask3r  rR   ÚsleepÚrandintrÑ  r�   r˜   rL   rK   ú<module>rS     sY	  ðÛ 	Û 
Û Û ß #Ý ß (Ý ß .Ý Ý Ý  ß ß *Ñ *Ý ÷÷ ÷ ÷ ÷ ð* ×Ñ�vÒÞå5ç #ß BÓ BÝ $Ý !Ý Ý %Ý Ý ß  ß  á	�˜3Ó	€á�~Ó&€à˜2˜u˜9Ñ%€ð €V‡^�^�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	:˜ô 	:ôF˜ô FôR-,˜.ô -,ô`:�^ô :ô@˜.ô @ô
˜ô 
ô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Ô/ØˆD�JŠJ�tÔØˆv�~Š~˜a Ó%¨Ò)Ø—’™T (›^Ô,ð ×#Ô#÷-ð -ð_ ÷^-ð -ús   Ñ?B>UÕU