Ë
    ��hÅë  ã            +       óæ
  — 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 ej`                  dk\  rd dlm3Z3 nd dl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZG ddlHmIZImJZJ ddlKmLZLmMZM  e(deN«      ZO e.d«      ZPe g eQf   ZR ej\                  de+e«      ZS G d „ d!e«      ZT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d”d)e/e*eP   e%eP   f   d*eUd+e)eQ   d,eNd-eVd.e)e8   d/eVd0e)e g eQf      d1eQd2eGd3eGd4eGd5eGd6eQd7eVd8eVd9e%eP   f"d:„ZW G d;„ d<ee«      ZX G d=„ d>e!eS   e$eS   «      ZYd?d"dd#dd$d%d&d'd(d#d@œdAed+eNd*eUd-eVd.e)e8   d/eVd0e)e g eQf      d1eQd2eGd3eGd4eGd5eGd7eVd9e!e   fdB„ZZej¶                  	 	 	 	 d•dd?d"dd#dd$d%d&d'd(d#dCœdAe/eUdDe\f   dEe/e1dF   e1dG   f   dHeNdIe)eU   dJe)eU   dKe)eU   d+e)eN   d*eUd-eVd.e)e8   d/eVd0e)e g eQf      d1eQd2eGd3eGd4eGd5eGd7eVd9e!e+   f&dL„«       Z]ej¶                  	 	 	 	 d•dd?d"dd#dd$d%d&d'd(d#dCœdAe/eUdDe\f   dEe1dM   dHeNdIe)eU   dJe)eU   dKe)eU   d+e)eN   d*eUd-eVd.e)e8   d/eVd0e)e g eQf      d1eQd2eGd3eGd4eGd5eGd7eVd9e!e   f&dN„«       Z]	 	 	 	 	 d–dd?d"dd#dd$d%d&d'd(d#dCœdAe/eUdDe\f   dEe/e1dM   e1dF   e1dG   f   dHeNdIe)eU   dJe)eU   dKe)eU   d+e)eN   d*eUd-eVd.e)e8   d/eVd0e)e g eQf      d1eQd2eGd3eGd4eGd5eGd7eVd9e/e!e   e!e+   f   f&dO„Z] G dP„ dQe«      Z^ G dR„ dSe^«      Z_ G dT„ dUe^«      Z` G dV„ dWe^«      Za G dX„ dYe^«      Zb G dZ„ d[e^«      Zc G d\„ d]ea«      Zd G d^„ d_e^«      Ze G d`„ dae^«      Zf G db„ dce^«      Zg G dd„ dee^«      Zh G df„ dge^«      Zi G dh„ die^«      Zj G dj„ dke'«      Zke
 G dl„ dm«      «       Zl G dn„ doe?«      Zmendpk(  �rhd dloZod dlpZpddqlqmrZr ddrlsmtZt ddslumvZv ddtlHmJZJ  evdudvd"¬w«      Zu eJdxdydz«      ZHeHjï                  d{d|d}«       d~ erd«      d€eHd�d‚dƒd„œd…eu etd†«      g	Zxd d‡lymzZz  ezex«      Z{ e8d"¬ˆ«      Z7 em e`«       gemjù                  «       ¢ ec«       ‘­e7d#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‘¬�«        ep�j                  d’«        eo�j
                  d d“«      dk  re}�j                   e‡e{«      «       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)r'   é   )ÚSelfé   )Ú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                 ó|   •— || _         || _        || _        t        «       | _        d| _        t        ‰| �  d¬«       y )Nr   T)Údaemon)rB   rD   rE   r   ÚdoneÚ	completedÚsuperÚ__init__)ÚselfrB   rD   rE   Ú	__class__s       €úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.pyrK   z_TrackThread.__init__G   s9   ø€ Ø ˆŒØˆŒØ*ˆÔÜ“GˆŒ	àˆŒÜ‰Ñ ÐÕ%ó    ÚreturnNc                 óÔ  — | j                   }| j                  j                  }| j                  }d}| j                  j
                  } ||«      sh| j                  j                  j                  rH| j                  }||k7  r ||||z
  «       |} ||«      s!| j                  j                  j                  rŒH| j                  j                  | j                   | j                  d¬«       y )Nr   T)rI   Úrefresh)
rD   rB   ÚadvancerE   rH   ÚwaitÚliveÚ
is_startedrI   Úupdate)rL   rD   rS   rE   Úlast_completedrT   rI   s          rN   Úrunz_TrackThread.runP   sµ   € Ø—,‘,ˆØ—-‘-×'Ñ'ˆØ×*Ñ*ˆØˆØ�y‰y�~‰~ˆÙ�}Ô%¨$¯-©-×*<Ñ*<×*GÒ*GØŸ™ˆIØ Ò*Ù˜ ¨^Ñ!;Ô<Ø!*�ñ	 �}Ô%¨$¯-©-×*<Ñ*<×*GÓ*Gð 	�‰×Ñ˜TŸ\™\°T·^±^ÈTÐÕRrO   c                 ó&   — | j                  «        | S ©N©Ústart©rL   s    rN   Ú	__enter__z_TrackThread.__enter__^   ó   € Ø�
‰
ŒØˆrO   Úexc_typeÚexc_valÚexc_tbc                 óX   — | j                   j                  «        | j                  «        y r[   )rH   ÚsetÚjoin©rL   ra   rb   rc   s       rN   Ú__exit__z_TrackThread.__exit__b   s   € ð 	�	‰	�‰ŒØ�	‰	�rO   ©rP   N)rP   rA   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚfloatrK   rY   r_   r    r$   ÚBaseExceptionr   rh   Ú__classcell__©rM   s   @rN   rA   rA   D   sj   ø„ Ù3ð& ð &°hð &Èuõ &óSóðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
÷rO   rA   TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulseÚsequenceÚdescriptionÚtotalrI   Úauto_refreshÚconsoleÚ	transientÚget_timeÚrefresh_per_secondÚstyleÚcomplete_styleÚfinished_styleÚpulse_stylerE   ÚdisableÚ
show_speedrP   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).
        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}©r   r€   r�   r‚   )r„   T)Úelapsed_when_finishedrr   ©rz   r{   r|   r}   r~   rƒ   )ry   rI   rx   rE   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnrC   Útrack)rw   rx   ry   rI   rz   r{   r|   r}   r~   r   r€   r�   r‚   rE   rƒ   r„   ÚcolumnsrB   s                     rN   r�   r�   l   sÎ   è ø€ ñT EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ¨*Ô5Ü°dÔ;ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð 
ñ 
Ø—>‘>ØØØØ#Ø'ð "ó 
÷ 	
ð 	
÷
ð 
ð	
ø÷
ð 
üs0   ‚ABÁBÁ8BÁ9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)d'e*e(   ddfd(„Z+y).Ú_Readerz9A reader that tracks progress while it's being read from.ÚhandlerB   rC   ÚtaskÚclose_handlerP   Nc                 óJ   — || _         || _        || _        || _        d| _        y ©NF)r“   rB   r”   r•   Ú_closed)rL   r“   rB   r”   r•   s        rN   rK   z_Reader.__init__»   s(   € ð ˆŒØ ˆŒØˆŒ	Ø(ˆÔØˆ�rO   c                 ó:   — | j                   j                  «        | S r[   )r“   r_   r^   s    rN   r_   z_Reader.__enter__È   s   € Ø�‰×ÑÔØˆrO   ra   rb   rc   c                 ó$   — | j                  «        y r[   )Úcloserg   s       rN   rh   z_Reader.__exit__Ì   s   € ð 	�
‰
�rO   c                 ó   — | S r[   © r^   s    rN   Ú__iter__z_Reader.__iter__Ô   s   € ØˆrO   c                 ó�   — t        | j                  «      }| j                  j                  | j                  t        |«      ¬«       |S ©N©rS   )Únextr“   rB   rS   r”   Úlen)rL   Úlines     rN   Ú__next__z_Reader.__next__×   s4   € Ü�D—K‘KÓ ˆØ�‰×Ñ˜dŸi™i´°T³ÐÔ;ØˆrO   c                 ó   — | j                   S r[   )r˜   r^   s    rN   Úclosedz_Reader.closedÜ   s   € à�|‰|ÐrO   c                 ó6   — | j                   j                  «       S r[   )r“   Úfilenor^   s    rN   r©   z_Reader.filenoà   ó   € Ø�{‰{×!Ñ!Ó#Ð#rO   c                 ó6   — | j                   j                  «       S r[   )r“   Úisattyr^   s    rN   r¬   z_Reader.isattyã   rª   rO   c                 ó.   — | j                   j                  S r[   )r“   Úmoder^   s    rN   r®   z_Reader.modeæ   ó   € à�{‰{×ÑÐrO   c                 ó.   — | j                   j                  S r[   )r“   Únamer^   s    rN   r±   z_Reader.nameê   r¯   rO   c                 ó6   — | j                   j                  «       S r[   )r“   Úreadabler^   s    rN   r³   z_Reader.readableî   ó   € Ø�{‰{×#Ñ#Ó%Ð%rO   c                 ó6   — | j                   j                  «       S r[   )r“   Úseekabler^   s    rN   r¶   z_Reader.seekableñ   r´   rO   c                  ó   — yr—   r�   r^   s    rN   Úwritablez_Reader.writableô   s   € ØrO   Úsizec                 óœ   — | j                   j                  |«      }| j                  j                  | j                  t        |«      ¬«       |S r    )r“   ÚreadrB   rS   r”   r£   )rL   r¹   Úblocks      rN   r»   z_Reader.read÷   s:   € Ø—‘× Ñ  Ó&ˆØ�‰×Ñ˜dŸi™i´°U³ÐÔ<ØˆrO   Úbc                 óŠ   — | j                   j                  |«      }| j                  j                  | j                  |¬«       |S r    )r“   ÚreadintorB   rS   r”   )rL   r½   Úns      rN   r¿   z_Reader.readintoü   s6   € Ø�K‰K× Ñ  Ó#ˆØ�‰×Ñ˜dŸi™i°ÐÔ3ØˆrO   c                 óœ   — | j                   j                  |«      }| j                  j                  | j                  t        |«      ¬«       |S r    )r“   ÚreadlinerB   rS   r”   r£   )rL   r¹   r¤   s      rN   rÂ   z_Reader.readline  s:   € Ø�{‰{×#Ñ# DÓ)ˆØ�‰×Ñ˜dŸi™i´°T³ÐÔ;ØˆrO   Úhintc           	      ó¸   — | j                   j                  |«      }| j                  j                  | j                  t        t        t        |«      «      ¬«       |S r    )r“   Ú	readlinesrB   rS   r”   ÚsumÚmapr£   )rL   rÃ   Úliness      rN   rÅ   z_Reader.readlines  sA   € Ø—‘×%Ñ% dÓ+ˆØ�‰×Ñ˜dŸi™i´´S¼¸e³_Ó1EÐÔFØˆrO   c                 ó^   — | j                   r| j                  j                  «        d| _        y )NT)r•   r“   r›   r˜   r^   s    rN   r›   z_Reader.close  s"   € Ø×ÒØ�K‰K×ÑÔØˆ�rO   ÚoffsetÚwhencec                 óŒ   — | j                   j                  ||«      }| j                  j                  | j                  |¬«       |S )N©rI   )r“   ÚseekrB   rW   r”   )rL   rÊ   rË   Úposs       rN   rÎ   z_Reader.seek  s8   € Ø�k‰k×Ñ˜v vÓ.ˆØ�‰×Ñ˜TŸY™Y°#ÐÔ6Øˆ
rO   c                 ó6   — | j                   j                  «       S r[   )r“   Útellr^   s    rN   rÑ   z_Reader.tell  s   € Ø�{‰{×ÑÓ!Ð!rO   Úsc                 ó   — t        d«      ‚)NÚwrite©r   )rL   rÒ   s     rN   rÔ   z_Reader.write  s   € Ü" 7Ó+Ð+rO   rÈ   c                 ó   — t        d«      ‚)NÚ
writelinesrÕ   )rL   rÈ   s     rN   r×   z_Reader.writelines  s   € Ü" <Ó0Ð0rO   )T)rP   r’   )éÿÿÿÿri   )r   ),rj   rk   rl   rm   r   r=   ÚboolrK   r_   r    r$   ro   r   rh   rž   Úbytesr¥   Úpropertyr§   Úintr©   r¬   Ústrr®   r±   r³   r¶   r¸   r»   r&   Ú	bytearrayÚ
memoryviewr   r¿   rÂ   r   rÅ   r›   rÎ   rÑ   r   rÔ   r   r×   r�   rO   rN   r’   r’   ¸   sÒ  „ ÙCð "ñàðð ðð ð	ð
 ðð 
óóðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
óð˜(ó ð˜%ó ð
 ð˜ò ó ðð$˜ó $ð$˜ó $ð ð �cò  ó ð ð ð �cò  ó ð ð&˜$ó &ð&˜$ó &ð˜$ó ñ˜ð  eó ð
˜% 	¨:°tÐ ;Ñ<ó ñ
˜Sð ¨%ó ñ
˜cð ¨4°©;ó ó
ñ
˜3ð ¨ð °Có ð
"�có "ð,�sð ,˜só ,ð1 ¨¡ð 1°$ô 1rO   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.rB   rC   ÚreaderrP   Nc                 ó    — || _         || _        y r[   )rB   râ   )rL   rB   râ   s      rN   rK   z_ReadContext.__init__"  s   € Ø ˆŒØ ˆ�rO   c                 ój   — | j                   j                  «        | j                  j                  «       S r[   )rB   r]   râ   r_   r^   s    rN   r_   z_ReadContext.__enter__&  s%   € Ø�‰×ÑÔØ�{‰{×$Ñ$Ó&Ð&rO   ra   rb   rc   c                 ór   — | j                   j                  «        | j                  j                  |||«       y r[   )rB   Ústoprâ   rh   rg   s       rN   rh   z_ReadContext.__exit__*  s*   € ð 	�‰×ÑÔØ�‰×Ñ˜X w°Õ7rO   )rj   rk   rl   rm   r?   rK   r_   r    r$   ro   r   rh   r�   rO   rN   rá   rá     sj   „ ÙOð! ð !°Rð !¸Dó !ð'˜2ó 'ð8à˜4 Ñ.Ñ/ð8ð ˜-Ñ(ð8ð ˜Ñ'ð	8ð
 
ô8rO   rá   ú
Reading...)rx   rz   r{   r|   r}   r~   r   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‡   rr   r‰   )ry   rx   )rŠ   r‹   rŒ   ÚDownloadColumnrŽ   rC   Ú	wrap_filerá   )rè   ry   rx   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r�   rB   râ   s                   rN   rë   rë   4  sž   € ñJ EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð ×Ñ ¨E¸{ÐÓK€FÜ˜ &Ó)Ð)rO   )ry   rx   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   úPathLike[str]r®   ÚrtÚrÚ	bufferingÚencodingÚerrorsÚnewlinec                 ó   — y r[   r�   ©rè   r®   rï   rð   rñ   rò   ry   rx   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   s                     rN   Úopenrõ   u  ó   € ð, 	rO   Úrbc                 ó   — y r[   r�   rô   s                     rN   rõ   rõ   Ž  rö   rO   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‡   rr   r‰   )r®   rï   rð   rñ   rò   ry   rx   )rŠ   r‹   rŒ   rê   rŽ   rC   rõ   rá   )rè   r®   rï   rð   rñ   rò   ry   rx   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r�   rB   râ   s                        rN   rõ   rõ   §  s´   € ñb EPŒÐ>Ó	?Ñ@ÐUWð ð ‡N�NäØØ-Ø-Ø'ô	ô ÓÜÓ!ð		
ôô Ø	Ø!ØØØØ-Ò3°Øò€Hð �]‰]ØØØØØØØØð ó 	€Fô ˜ &Ó)Ð)rO   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_columnrP   c                 ó.   — || _         i | _        d | _        y r[   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rL   rý   s     rN   rK   zProgressColumn.__init__  s   € Ø)ˆÔØMOˆÔØ-1ˆÕrO   c                 ó2   — | j                   xs
 t        «       S )z.Get a table column, used to build tasks table.)rÿ   r9   r^   s    rN   Úget_table_columnzProgressColumn.get_table_column  s   € à×!Ñ!Ò-¤V£XÐ-rO   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).
        )r}   rü   rI   r   ÚidÚKeyErrorÚrender)rL   r”   Úcurrent_timeÚ	timestampÚ
renderables        rN   Ú__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�   ©rL   r”   s     rN   r  zProgressColumn.render"  s   � rO   r[   )rj   rk   rl   rm   rü   r    rn   Ú__annotations__r9   rK   r  r2   r  r   r  r�   rO   rN   rû   rû   ý  sl   … Ù=à#'€K�˜%‘Ó'ñ2 X¨fÑ%5ð 2Àó 2ð
. &ó .ð˜Vð ¨ó ð. ð1˜6ð 1 nò 1ó ñ1rO   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  rJ   rK   )rL   r  rý   rM   s      €rN   rK   zRenderableColumn.__init__.  s   ø€ ð %ˆŒÜ‰Ñ lÐÕ3rO   r”   r  rP   c                 ó   — | j                   S r[   )r  r  s     rN   r  zRenderableColumn.render4  s   € Ø�‰ÐrO   )Ú )
rj   rk   rl   rm   r2   r    r9   rK   r  rp   rq   s   @rN   r  r  '  sB   ø„ ñð ,.ð4ØSWò4Ø(ð4Ø@HÈÑ@Põ4ð˜6ð  n÷ rO   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_namer   ÚspeedÚfinished_textrý   c                 ó¤   •— t        |||¬«      | _        t        |t        «      rt	        j
                  |«      n|| _        t        ‰| �!  |¬«       y )N©r   r  r  )	r7   ÚspinnerÚ
isinstancerÝ   r;   Úfrom_markupr  rJ   rK   )rL   r  r   r  r  rý   rM   s         €rN   rK   zSpinnerColumn.__init__B  sN   ø€ ô ˜|°5ÀÔFˆŒô ˜-¬Ô-ô ×Ñ˜]Ô+àð 	Ôô
 	‰Ñ lÐÕ3rO   Úspinner_stylerP   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)r7   r  )rL   r  r!  r  s       rN   Úset_spinnerzSpinnerColumn.set_spinnerR  s   € ô ˜|°=ÈÔNˆ�rO   r”   r  c                 óŒ   — |j                   r| j                  }|S | j                  j                  |j	                  «       «      }|S r[   )Úfinishedr  r  r  r}   )rL   r”   Útexts      rN   r  zSpinnerColumn.rendera  sH   € ð �}Š}ð ×Ñð 	ð
 ˆð —‘×$Ñ$ T§]¡]£_Ó5ð 	ð
 ˆrO   )Údotsúprogress.spinnerç      ð?ú N)r(  r)  )rj   rk   rl   rm   rÝ   r    r8   rn   r<   r9   rK   r#  r2   r  rp   rq   s   @rN   r  r  8  s©   ø„ ñð #Ø%7ØØ"%Ø)-ñ4àð4ð ˜	Ñ"ð4ð ð	4ð
  ð4ð ˜vÑ&õ4ð& .@Øñ	OàðOð   	Ñ*ðOð ð	Oð
 
óOð˜6ð  n÷ rO   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_formatr   ÚjustifyÚmarkupÚhighlighterrý   rP   c                 óˆ   •— || _         || _        || _        || _        || _        t
        ‰| �  |xs t        d¬«      ¬«       y )NT©Úno_wrapr  )r,  r-  r   r.  r/  rJ   rK   r9   )rL   r,  r   r-  r.  r/  rý   rM   s          €rN   rK   zTextColumn.__init__m  sD   ø€ ð 'ˆÔØ&-ˆŒØˆŒ
ØˆŒØ&ˆÔÜ‰Ñ lÒ&J´fÀTÔ6JÐÕKrO   r”   r  c                 óB  — | j                   j                  |¬«      }| j                  r-t        j                  || j
                  | j                  ¬«      }n"t        || j
                  | j                  ¬«      }| j                  r| j                  j                  |«       |S ©N©r”   )r   r-  )	r,  Úformatr.  r;   r   r   r-  r/  Ú	highlight)rL   r”   Ú_textr&  s       rN   r  zTextColumn.render}  sv   € Ø× Ñ ×'Ñ'¨TÐ'Ó2ˆØ�;Š;Ü×#Ñ# E°·±ÀTÇ\Á\ÔR‰Dä˜ T§Z¡Z¸¿¹ÔFˆDØ×ÒØ×Ñ×&Ñ& tÔ,ØˆrO   )ÚnoneÚleftTNN)rj   rk   rl   rm   rÝ   r8   r1   rÙ   r    r3   r9   rK   r;   r  rp   rq   s   @rN   rŠ   rŠ   j  s…   ø„ Ù#ð
 "Ø!'ØØ-1Ø)-ñLàðLð ðLð ð	Lð
 ðLð ˜kÑ*ðLð ˜vÑ&ðLð 
õLð ˜6ð  d÷ rO   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_widthr   r€   r�   r‚   rý   rP   c                 ól   •— || _         || _        || _        || _        || _        t
        ‰| �  |¬«       y r  )r<  r   r€   r�   r‚   rJ   rK   )rL   r<  r   r€   r�   r‚   rý   rM   s          €rN   rK   zBarColumn.__init__“  s;   ø€ ð #ˆŒØˆŒ
Ø,ˆÔØ,ˆÔØ&ˆÔÜ‰Ñ lÐÕ3rO   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,   )	ry   rI   ÚwidthÚpulseÚanimation_timer   r€   r�   r‚   )r6   ry   ÚmaxrI   r<  Ústartedr}   r   r€   r�   r‚   r  s     rN   r  zBarColumn.render£  s„   € äØ(,¯
©
Ð(>”#�a˜Ÿ™Ô$ÀDÜ˜!˜TŸ^™^Ó,ØŸ.™.Ð0‘$´c¸!¸T¿^¹^Ó6LØ—l‘lÐ"ØŸ=™=›?Ø—*‘*Ø×.Ñ.Ø×.Ñ.Ø×(Ñ(ô

ð 
	
rO   )é(   rs   rt   ru   rv   N)rj   rk   rl   rm   r    rÜ   r8   r9   rK   r6   r  rp   rq   s   @rN   rŒ   rŒ   ˆ  s�   ø„ ñð $&Ø%Ø$2Ø$2Ø!,Ø)-ñ4à˜C‘=ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð ˜vÑ&ð4ð 
õ4ð 
˜6ð 
 k÷ 
rO   rŒ   c                   ó    — e Zd ZdZdddefd„Zy)ÚTimeElapsedColumnzRenders time elapsed.r”   r  rP   c                 óÒ   — |j                   r|j                  n|j                  }|€t        dd¬«      S t	        t        dt        |«      «      ¬«      }t        t        |«      d¬«      S )zShow time elapsed.ú-:--:--úprogress.elapsed©r   r   )Úseconds)r%  Úfinished_timeÚelapsedr;   r	   rB  rÜ   rÝ   )rL   r”   rM  Údeltas       rN   r  zTimeElapsedColumn.renderµ  sS   € à(,¯ª�$×$Ò$¸4¿<¹<ˆØˆ?Ü˜	Ð);Ô<Ð<Ü¤# a¬¨W«Ó"6Ô7ˆÜ”C˜“JÐ&8Ô9Ð9rO   N©rj   rk   rl   rm   r;   r  r�   rO   rN   rF  rF  ²  s   „ Ùð:˜6ð : dô :rO   rF  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_percentager   r-  r.  r/  rý   r„   rP   c	                 óL   •— || _         || _        t        ‰	| �  ||||||¬«       y )N)r,  r   r-  r.  r/  rý   )rQ  r„   rJ   rK   )
rL   r,  rQ  r   r-  r.  r/  rý   r„   rM   s
            €rN   rK   zTaskProgressColumn.__init__Ì  s9   ø€ ð *CˆÔ&Ø$ˆŒÜ‰ÑØ#ØØØØ#Ø%ð 	õ 	
rO   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.percentagerJ  )r  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r;   r-   Úpick_unit_and_suffixrÜ   )Úclsr  ÚunitÚsuffixÚ
data_speeds        rN   Úrender_speedzTaskProgressColumn.render_speedâ  s_   € ð ˆ=Ü˜Ð"7Ô8Ð8Ü×4Ñ4Ü�‹JÚ<Øó
‰ˆˆfð
 ˜T‘\ˆ
Ü�z #Ð& v h¨eÐ4Ð<QÔRÐRrO   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 r4  )ry   r„   rZ  Úfinished_speedr  rQ  r,  r6  r.  r;   r   r   r-  r/  r7  )rL   r”   r,  r8  r&  s        rN   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Ô,ØˆrO   )z-[progress.percentage]{task.percentage:>3.0f}%r  r9  r:  TNNF)rj   rk   rl   rm   rÝ   r8   r1   rÙ   r    r3   r9   rK   Úclassmethodrn   r;   rZ  r  rp   rq   s   @rN   r�   r�   ¾  sÇ   ø„ ñð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ñ
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð ˜kÑ*ð
ð ˜vÑ&ð
ð ð
ð 
õ
ð, ðS ¨%¡ð S°Tò Só ðSð&˜6ð  d÷ rO   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  )r`  rˆ   rJ   rK   )rL   r`  rˆ   rý   rM   s       €rN   rK   zTimeRemainingColumn.__init__  s$   ø€ ð ˆŒØ%:ˆÔ"Ü‰Ñ lÐÕ3rO   r”   r  rP   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.rI  zprogress.remainingr  rJ  z--:--rH  é<   Ú02dú:Úd)	rˆ   r%  rL  Útime_remainingry   r;   r`  ÚdivmodrÜ   )rL   r”   Ú	task_timer   ÚminutesrK  ÚhoursÚ	formatteds           rN   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Ô+Ð+rO   )FFN)rj   rk   rl   rm   rü   rÙ   r    r9   rK   r;   r  rp   rq   s   @rN   rŽ   rŽ     sS   ø„ ñð €Kð Ø&+Ø)-ñ	4àð4ð  $ð4ð ˜vÑ&õ	4ð,˜6ð , d÷ ,rO   rŽ   c                   ó    — e Zd ZdZdddefd„Zy)ÚFileSizeColumnzRenders completed filesize.r”   r  rP   c                 ól   — t        j                  t        |j                  «      «      }t	        |d¬«      S )úShow data completed.zprogress.filesizerJ  )r-   ÚdecimalrÜ   rI   r;   ©rL   r”   Ú	data_sizes      rN   r  zFileSizeColumn.render9  s)   € ä×$Ñ$¤S¨¯©Ó%8Ó9ˆ	Ü�IÐ%8Ô9Ð9rO   NrO  r�   rO   rN   rn  rn  6  s   „ Ù%ð:˜6ð : dô :rO   rn  c                   ó    — e Zd ZdZdddefd„Zy)ÚTotalFileSizeColumnzRenders total filesize.r”   r  rP   c                 óˆ   — |j                   �(t        j                  t        |j                   «      «      nd}t	        |d¬«      S )rp  r  zprogress.filesize.totalrJ  )ry   r-   rq  rÜ   r;   rr  s      rN   r  zTotalFileSizeColumn.renderB  s4   € à9=¿¹Ð9O”H×$Ñ$¤S¨¯©£_Ô5ÐUWˆ	Ü�IÐ%>Ô?Ð?rO   NrO  r�   rO   rN   ru  ru  ?  s   „ Ù!ð@˜6ð @ dô @rO   ru  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  )ry  rJ   rK   )rL   ry  rý   rM   s      €rN   rK   zMofNCompleteColumn.__init__T  s   ø€ Ø"ˆŒÜ‰Ñ lÐÕ3rO   r”   r  rP   c                 óÜ   — t        |j                  «      }|j                  �t        |j                  «      nd}t        t	        |«      «      }t        ||› d�›| j                  › |› �d¬«      S )zShow completed/total.ú?rf  úprogress.downloadrJ  )rÜ   rI   ry   r£   rÝ   r;   ry  )rL   r”   rI   ry   Útotal_widths        rN   r  zMofNCompleteColumn.renderX  sc   € ä˜Ÿ™Ó'ˆ	Ø#'§:¡:Ð#9”�D—J‘J”¸sˆÜœ#˜e›*“oˆÜØ˜+˜ a˜Ð(¨¯©Ð(8¸¸Ð@Ø%ô
ð 	
rO   )ú/N)rj   rk   rl   rm   rÝ   r    r9   rK   r;   r  rp   rq   s   @rN   rx  rx  H  s3   ø„ ñ	ñ4 #ð 4¸8ÀFÑ;Kõ 4ð
˜6ð 
 d÷ 
rO   rx  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ý   rP   c                 ó4   •— || _         t        ‰| �	  |¬«       y r  )r�  rJ   rK   )rL   r�  rý   rM   s      €rN   rK   zDownloadColumn.__init__j  s   ø€ ð )ˆÔÜ‰Ñ lÐÕ3rO   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ÚYBrT  r,   r   z,.Úfr|  r  r*  r}  rJ  )rÜ   rI   ry   r�  r-   rU  r;   )rL   r”   rI   Ú unit_and_suffix_calculation_baserW  rX  Ú	precisionÚcompleted_ratioÚcompleted_strry   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rN   r  zDownloadColumn.renderp  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ˆØÐrO   )FN)rj   rk   rl   rm   rÙ   r    r9   rK   r;   r  rp   rq   s   @rN   rê   rê   c  sD   ø„ ñð LPñ4Ø ð4Ø8@ÀÑ8Hð4à	õ4ð!˜6ð ! d÷ !rO   rê   c                   ó    — e Zd ZdZdddefd„Zy)ÚTransferSpeedColumnz&Renders human readable transfer speed.r”   r  rP   c                 ó°   — |j                   xs |j                  }|€t        dd¬«      S t        j                  t        |«      «      }t        |› d�d¬«      S )zShow data transfer speed.r|  zprogress.data.speedrJ  z/s)r\  r  r;   r-   rq  rÜ   )rL   r”   r  rY  s       rN   r  zTransferSpeedColumn.render—  sR   € à×#Ñ#Ò1 t§z¡zˆØˆ=Ü˜Ð#8Ô9Ð9Ü×%Ñ%¤c¨%£jÓ1ˆ
Ü�z�l "Ð%Ð-BÔCÐCrO   NrO  r�   rO   rN   rž  rž  ”  s   „ Ù0ðD˜6ð D dô DrO   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
  rI   N)rj   rk   rl   rm   rn   r  r�   rO   rN   r¡  r¡     s   … Ù.àÓØØÓØ$rO   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  rx   ry   rI   Ú	_get_timeNrL  TÚvisible)Údefault_factoryÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timer\  c                  ó   — t        d¬«      S )NrT  )Úmaxlenr   r�   rO   rN   ú<lambda>zTask.<lambda>Ó  s   € ¤¨TÔ 2€ rO   )r¥  r¨  r©  Ú	_progress)r©  r¥  Ú_lockrP   c                 ó"   — | j                  «       S )z(float: Get the current time, in seconds.)r£  r^   s    rN   r}   zTask.get_timeÙ  s   € à�~‰~ÓÐrO   c                 ó   — | j                   duS )z#bool: Check if the task as started.N)rª  r^   s    rN   rC  zTask.startedÝ  s   € ð �‰ dÐ*Ð*rO   c                 óN   — | j                   €y| j                   | j                  z
  S )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N©ry   rI   r^   s    rN   Ú	remainingzTask.remainingâ  s$   € ð �:‰:ÐØØ�z‰z˜DŸN™NÑ*Ð*rO   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«  r}   r^   s    rN   rM  zTask.elapsedé  sC   € ð �?‰?Ð"ØØ�>‰>Ð%Ø—>‘> D§O¡OÑ3Ð3Ø�}‰}‹ §¡Ñ0Ð0rO   c                 ó   — | j                   duS )zCheck if the task has finished.N)rL  r^   s    rN   r%  zTask.finishedò  s   € ð ×!Ñ!¨Ð-Ð-rO   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@)ry   rI   ÚminrB  )rL   rI   s     rN   Ú
percentagezTask.percentage÷  s>   € ð �zŠzØØ—^‘^ d§j¡jÑ0°EÑ9ˆ	Ü˜œs 3¨	Ó2Ó3ˆ	ØÐrO   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r[   rÍ   )Ú.0Úsamples     rN   ú	<genexpr>zTask.speed.<locals>.<genexpr>  s   è ø€ Ò!O°v &×"2Õ"2Ñ!Oùó   ‚)rª  r°  r¯  r
  Úiterr¢   rÆ   )rL   rB   Ú
total_timeÚiter_progressÚtotal_completedr  s         rN   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   )rL   r  rµ  Úestimates       rN   rg  zTask.time_remaining  sC   € ð �=Š=ØØ—
‘
ˆÙØØ—N‘Nˆ	ØÐØÜ˜	 EÑ)Ó*ˆØˆrO   c                 óT   — | j                   j                  «        d| _        d| _        y)zReset progress.N)r¯  ÚclearrL  r\  r^   s    rN   Ú_resetzTask._reset   s"   € à�‰×ÑÔØ!ˆÔØ"ˆÕrO   ri   )$rj   rk   rl   rm   r=   r  rÝ   r    rn   ÚGetTimeCallablerL  r¤  rÙ   r   Údictr¦  r   r   rª  r«  r\  r¯  r   r¡  r   r°  r}   rÛ   rC  rµ  rM  r%  r¼  r  rg  rË  r�   rO   rN   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 ‘ò ó ðð" ð ¨¡ò ó ðô#rO   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defd„Zdeee      dee   d ee   ddfd!„Z	 	 	 	 	 dPd#ee e!   e"e!   f   d$ee
   d%e#d&ee   d'ed(e
de e!   fd)„Z$	 dQdd*d+œd,e%d$ee#   d&ee   d'ede%f
d-„Z&e'jP                  	 	 	 	 dRddd*d.œd,eed/e)f   d0e*d1   d2e#d3ee   d4ee   d5ee   d$ee#   d&ee   d'ede%fd6„«       Z+e'jP                  	 	 	 	 dRddd*d.œd,eed/e)f   d0ee*d7   e*d8   f   d2e#d3ee   d4ee   d5ee   d$ee#   d&ee   d'ede,fd9„«       Z+	 	 	 	 	 dSddd*d.œd,eed/e)f   d0ee*d1   e*d8   e*d7   f   d2e#d3ee   d4ee   d5ee   d$ee#   d&ee   d'edee%e,f   fd:„Z+d&eddfd;„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	dAe/ddfdB„Z0ddd"dddCœd&edDe	d$ee
   d%e#d?ee	   d'ee   dAe/ddfdE„Z1dTd&ed>e
ddfdF„Z2dOdG„Z3de4fdH„Z5de e4   fdI„Z6dJe e   de7fdK„Z8de4fdL„Z9	 	 	 	 dUd'edDe	d$ee
   d%e#d?e	dAe/defdM„Z:d&eddfdN„Z;y)VrC   aŒ  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 (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.
    NTrr   g      >@F)
r{   rz   r~   Úspeed_estimate_periodr|   Úredirect_stdoutÚredirect_stderrr}   rƒ   Úexpandr�   r{   rz   r~   rÏ  r|   rÐ  rÑ  r}   rƒ   rÒ  rP   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)r{   rz   r~   r|   rÐ  rÑ  Úget_renderable)r   r°  Úget_default_columnsr�   rÏ  rƒ   rÒ  Ú_tasksr=   Ú_task_indexr5   r.   rÔ  rU   r{   r}   ÚprintÚlog)rL   r{   rz   r~   rÏ  r|   rÐ  rÑ  r}   rƒ   rÒ  r�   s               rN   rK   zProgress.__init__7  sÇ   € ð " AÒ%ÐGÐ'GÓGÐ%Ü“WˆŒ
ØÒ< $×":Ñ":Ó"<ˆŒØ%:ˆÔ"àˆŒØˆŒØ*,ˆŒÜ#)¨!£9ˆÔÜØÒ,œ{›}Ø%Ø1ØØ+Ø+Ø×.Ñ.ô
ˆŒ	ð !Ò9 D§L¡L×$9Ñ$9ˆŒØ—\‘\×'Ñ'ˆŒ
Ø—<‘<×#Ñ#ˆ�rO   .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.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Ž   )rV  s    rN   rÕ  zProgress.get_default_columns[  s(   € ô2 ÐAÓBÜ‹KÜÓ ÜÓ!ð	
ð 	
rO   c                 ó.   — | j                   j                  S r[   )rU   r{   r^   s    rN   r{   zProgress.consolez  s   € à�y‰y× Ñ Ð rO   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Ö  Úvaluesr^   s    rN   ÚtaskszProgress.tasks~  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Ö  Úkeysr^   s    rN   Útask_idszProgress.task_ids„  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r[   )r%  )r¿  r”   s     rN   rÁ  z$Progress.finished.<locals>.<genexpr>�  s   è ø€ ÒF¨�t—}•}ÑFùrÂ  )r°  rÖ  ÚallrÞ  r^   s    rN   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)rR   N)rƒ   rU   r]   r^   s    rN   r]   zProgress.start’  s    € à�|Š|Ø�I‰I�O‰O DˆOÕ)ð rO   c                 óÈ   — | j                   j                  «        | j                  j                  s2| j                  j                  s| j                  j                  «        yyy)zStop the progress display.N)rU   ræ   r{   Úis_interactiveÚ
is_jupyterrØ  r^   s    rN   ræ   zProgress.stop—  sB   € à�	‰	�‰ÔØ�|‰|×*Ò*°4·<±<×3JÒ3JØ�L‰L×ÑÕ ð 4KÐ*rO   c                 ó&   — | j                  «        | S r[   r\   r^   s    rN   r_   zProgress.__enter__�  r`   rO   ra   rb   rc   c                 ó$   — | j                  «        y r[   )ræ   rg   s       rN   rh   zProgress.__exit__¡  s   € ð 	�	‰	�rO   r   rw   ry   rI   rD   rx   rE   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).
            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,   )
rn   r   Úadd_taskrW   rU   rz   rA   rI   rS   rR   )rL   rw   ry   rI   rD   rx   rE   Útrack_threadÚvaluerS   rR   s              rN   r�   zProgress.track©  sÜ   è ø€ ð, ˆ=Üœ+ hÓ/Ó0Ò8°DˆEàˆ?Ø—m‘m K°uÈ	�mÓR‰Gà�K‰K˜ u¸	ˆKÔBà�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ç   )rD   rx   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'©ry   F©r•   )r°  rÖ  ry   Ú
ValueErrorrî  rW   r’   )rL   rè   ry   rD   rx   Útotal_bytess         rN   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)ry   rD   rx   rì   r®   r÷   rï   rð   rñ   rò   c                 ó   — y r[   r�   ©
rL   rè   r®   rï   rð   rñ   rò   ry   rD   rx   s
             rN   rõ   zProgress.openþ  ó   € ð 	rO   rî   rí   c                 ó   — y r[   r�   r÷  s
             rN   rõ   zProgress.open  rø  rO   c                óú  — dj                  t        |d¬«      «      }
|
dvrt        d|›�«      ‚|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ü  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)rf   Úsortedrô  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizerî  rW   Úiorõ   r’   ÚTextIOWrapper)rL   rè   r®   rï   rð   rñ   rò   ry   rD   rx   Ú_moderý  r“   râ   s                 rN   rõ   zProgress.open  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°u�mÓ=‰Gà�K‰K˜ uˆKÔ-ô —‘˜˜t¨yÔ9ˆÜ˜  w¸TÔBˆð �;ÑÜ×#Ñ#ØØ!ØØØ-ôð ð ˆrO   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ª  r}   )rL   rD   r”   s      rN   Ú
start_taskzProgress.start_taskk  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Ö  r}   rª  r«  )rL   rD   r”   r	  s       rN   Ú	stop_taskzProgress.stop_tasky  sQ   € ð �Z‰Zñ 	*Ø—;‘;˜wÑ'ˆDØŸ=™=›?ˆLØ�‰Ð&Ø".�”Ø)ˆDŒN÷	*÷ 	*ñ 	*ús   �:AÁA)ry   rI   rS   rx   r¤  rR   rS   r¤  rR   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Ö  rI   ry   rË  rx   r¤  r¦  rW   r}   rÏ  r¯  Úpopleftr
  Úappendr¡  rL  rM  rR   )rL   rD   ry   rI   rS   rx   r¤  rR   r¦  r”   Úcompleted_startÚupdate_completedr	  Úold_sample_timer¯  r  s                   rN   rW   zProgress.updateˆ  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]   ry   rI   r¤  rx   r]   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)r}   r°  rÖ  rË  rª  ry   rI   r¤  r¦  rx   rL  rR   )
rL   rD   r]   ry   rI   r¤  rx   r¦  r	  r”   s
             rN   Ú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   rT  N)r}   r°  rÖ  rI   rÏ  r¯  r  r
  r£   r  r¡  ry   rL  rM  r  r\  )
rL   rD   rS   r	  r”   r  r  r  r¯  r  s
             rN   rS   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ƒ   rU   rV   rR   r^   s    rN   rR   zProgress.refresh
  s,   € à�|Š| §	¡	× 4Ò 4Ø�I‰I×ÑÕð !5ˆ|rO   c                 ó2   — t        | j                  «       Ž }|S )z*Get a renderable for the progress display.)r0   Úget_renderables)rL   r  s     rN   rÔ  zProgress.get_renderable  s   € ä˜D×0Ñ0Ó2Ð3ˆ
ØÐrO   c              #   óJ   K  — | j                  | j                  «      }|–— y­w)z5Get a number of renderables for the progress display.N)Úmake_tasks_tablerß  )rL   Útables     rN   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)Tr1  N)r  rÝ   r9   r  Úcopy)r¿  Ú_columns     rN   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)r5  N)r  rÝ   r6  )r¿  Úcolumnr”   s     €rN   rÁ  z,Progress.make_tasks_table.<locals>.<genexpr>/  s>   øè ø€ ò ð #ô  *¨&´#Ô6ð #ŸM™M¨t˜MÔ4á!'¨£ó.ñùs   ƒ47)r�   r:   ÚgridrÒ  r¤  Úadd_row)rL   rß  Útable_columnsr  r”   s       @rN   r  zProgress.make_tasks_table  sn   ø€ ñ
ð  Ÿ<™<ô
ˆô —
‘
˜M°6À$Ç+Á+ÒNˆàò 	ˆDØ�|‹|Ø�—‘óð '+§l¡lôò	ð	ð ˆrO   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Ô  r^   s    rN   Ú__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×  r}   rÖ  r  r=   rÜ   rR   )	rL   rx   r]   ry   rI   r¤  r¦  r”   Únew_task_indexs	            rN   rî  zProgress.add_task?  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Ö  )rL   rD   s     rN   Úremove_taskzProgress.remove_taskj  s,   € ð �Z‰Zñ 	%Ø—‘˜GÐ$÷	%÷ 	%ñ 	%ús   �$¤-ri   )Nr   Nú
Working...çš™™™™™¹?r[   ©rØ   NNN©rî   rØ   NNN)r,   )Trº  r   T)<rj   rk   rl   rm   r&   rÝ   rû   r    r/   rÙ   rn   rÌ  rK   r]  r#   rÕ  rÛ   r{   r   r  rß  r=   rã  r%  r]   ræ   r+   r_   r$   ro   r   rh   r   r>   r!   rÜ   r�   r   rë   ÚtypingÚoverloadrÚ   r)   rõ   r"   r  r	  r   rW   r  rS   rR   r2   rÔ  r  r:   r  r$  rî  r(  r�   rO   rN   rC   rC   '  sË  „ ñð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØò"$à˜˜^Ð+Ñ,ð"$ð ˜'Ñ"ð"$ð ð	"$ð
 "ð"$ð  %ð"$ð ð"$ð ð"$ð ð"$ð ˜?Ñ+ð"$ð ð"$ð ð"$ð 
ó"$ðH ð
 E¨.¸#Ð*=Ñ$>ò 
ó ð
ð< ð!˜ò !ó ð!ð ð.�t˜D‘zò .ó ð.ð
 ð,˜$˜v™,ò ,ó ð,ð
 ðG˜$ò Gó ðGó*ó
!ð˜4ó ðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
óð "&ØØ$(Ø'Ø"ñ)à˜ Ñ.°¸Ñ0FÐFÑGð)ð ˜‰ð)ð ð	)ð
 ˜&Ñ!ð)ð ð)ð ð)ð 
�,Ñ	ó)ð\  $ð(@ð
 %)Ø'ò(@àð(@ð ˜‰}ð(@ð
 ˜&Ñ!ð(@ð ð(@ð 
ó(@ð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ô %rO   rC   Ú__main__)ÚPanel)ÚRule)ÚSyntax)r:   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)r{   r|   z[red]DownloadingrT  rò  z[green]Processingz[yellow]Thinkingr_  r¡   g333333Ó?g{®Gáz„?éd   )r)  Nr   TNFNrr   rs   rt   ru   rv   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-   r.   r{   r/   r0   r1   r2   r/  r3   Újupyterr4   rU   r5   Úprogress_barr6   r  r7   r   r8   r  r9   r:   r&  r;   r<   rÜ   r=   r>   rn   rÌ  r?   rA   rÝ   rÙ   r�   r’   rá   rë   r.  rÚ   rõ   rû   r  r  rŠ   rŒ   rF  r�   rŽ   rn  ru  rx  rê   rž  r¡  r  rC   rj   ÚrandomÚtimeÚpanelr0  Úruler1  Úsyntaxr2  r!  Úprogress_renderablesÚ	itertoolsr=  ÚexamplesrÕ  rB   rî  Útask1Útask2Útask3r%  rW   ÚsleepÚrandintrÙ  r¢   r�   rO   rN   ú<module>r[     s{	  ðÛ 	Û 
Û Û ß #Ý ß (Ý ß .Ý Ý Ý  ß ß *Ñ *Ý ÷÷ ÷ ÷ ÷ ð* ×Ñ�vÒÞå5à×Ñ�wÒÞå2ç #ß BÓ BÝ $Ý !Ý Ý %Ý Ý ß  ß  á	�˜3Ó	€á�~Ó&€à˜2˜u˜9Ñ%€ð €V‡^�^�D˜& (Ó+€ô%�6ô %ðT $Ø!ØØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØñ!I
Ø�H˜\Ñ*¨H°\Ñ,BÐBÑCðI
àðI
ð �E‰?ðI
ð ð	I
ð
 ðI
ð �gÑðI
ð ðI
ð �x  E 	Ñ*Ñ+ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð  ð!I
ð" ˆlÑó#I
ôXd1ˆi˜ô d1ôN8�> "Ñ% w¨r¡{ô 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò>*Ø
ð>*àð>*ð ð	>*ð
 ð>*ð �gÑð>*ð ð>*ð �x  E 	Ñ*Ñ+ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð �HÑó>*ðB ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'	Ø
��_ eÐ+Ñ
,ð	à
�˜‘˜w s™|Ð+Ñ
,ð	ð ð	ð �s‰mð		ð
 �S‰Mð	ð �c‰]ð	ð �C‰=ð	ð ð	ð ð	ð �gÑð	ð ð	ð �x  E 	Ñ*Ñ+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �FÑò)	ó ð	ð0 ‡�ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'	Ø
��_ eÐ+Ñ
,ð	à
�$‰-ð	ð ð	ð �s‰mð		ð
 �S‰Mð	ð �c‰]ð	ð �C‰=ð	ð ð	ð ð	ð �gÑð	ð ð	ð �x  E 	Ñ*Ñ+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �HÑò)	ó ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øò'S*Ø
��_ eÐ+Ñ
,ðS*à
�˜‘˜w t™}¨g°c©lÐ:Ñ
;ðS*ð ðS*ð �s‰mð	S*ð
 �S‰MðS*ð �c‰]ðS*ð �C‰=ðS*ð ðS*ð ðS*ð �gÑðS*ð ðS*ð �x  E 	Ñ*Ñ+ðS*ð ðS*ð ðS*ð  ð!S*ð" ð#S*ð$ ð%S*ð& ð'S*ð( ˆ>˜(Ñ# ^°FÑ%;Ð;Ñ<ó)S*ôl'1�Sô '1ôT�~ô ô"/�Nô /ôd�ô ô<'
�ô '
ôT	:˜ô 	:ôE˜ô EôP-,˜.ô -,ô`:�^ô :ô@˜.ô @ô
˜ô 
ô6.�^ô .ôb	D˜.ô 	Dô%�Zô %ð ÷z#ð z#ó ðz#ôzK	%ˆ|ô K	%ð\ ˆ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'Õ'U0