
    Fg*                     H   d Z ddlZddlZddlmZ ddlmZ ddlmZ	 	 dZ
	 ddlZdZ
	 e
dk(  rddlmZ ddlmZ ddlmZ dZ
nddlmZ ddlmZ ddlmZ 	 ddlmZ dg diZg dZdZ G d de      Z G d de	      Zd Z eZe Z!y# e$ rZ dZ
ddlZ ej                         5   ej                  d	d
       	 ddlmc mZ n# e$ r Y nw xY wddd       n# 1 sw Y   nxY wY w xY w# e$ r* 	 ddlmZ ddlmZ ddlmZ dZ
n# e$ r	 dZ
dZeZY nw xY wY w xY w# e$ r Y w xY w)z
IPython/Jupyter Notebook progressbar decorator for iterators.
Includes a default `range` iterator printing to `stderr`.

Usage:
>>> from tqdm.notebook import trange, tqdm
>>> for i in trange(10):
...     ...
    N)escape)proxy   )tqdm       ignorez2.*The `IPython.html` package has been deprecated.*)message)HTML)FloatProgress)HBox   )ContainerWidget)FloatProgressWidget   )displayzgithub.com/)lrq3000	casperdclalexanderkuk)tqdm_notebooktnranger   trangez|IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.htmlc                   2     e Zd ZdZddZd fd	Zd Z xZS )TqdmHBoxz.`ipywidgets.HBox` with a pretty representationc                 P    t        | dd       }|i S |j                  }|| |d<   |S )Npbarascii)getattrformat_dict)selfprettyr   ds       B/var/www/openai/venv/lib/python3.12/site-packages/tqdm/notebook.py_json_zTqdmHBox._json_G   s;    tVT*<I#AgJ    c                     t        | dd       }|t        | 	         S  |j                  di | j	                  |      S )Nr    )r   super__repr__format_meterr$   )r    r!   r   	__class__s      r#   r)   zTqdmHBox.__repr__P   sC    tVT*<7#%% t  74;;v#677r%   c                 D    |j                  | j                  d             y )NT)textr)   )r    pp___s       r#   _repr_pretty_zTqdmHBox._repr_pretty_V   s    
d#$r%   N)F)__name__
__module____qualname____doc__r$   r)   r1   __classcell__r+   s   @r#   r   r   E   s    88%r%   r   c                        e Zd ZdZedd       Z	 	 ddZed        Zej                  d        Z fdZ
 fdZd fd	Z fd	Zd
 Zd fd	Z xZS )r   zB
    Experimental IPython/Jupyter Notebook widget using tqdm!
    c                    t         t        t              |rt        d|      }n.t        dd      }d|_        d|_        |d|j
                  _        t               }t               }|r||_        t        |||g      }|ct        |      }	 t        |      dkD  r|dz  }d|j
                  _        ||j
                  _        d	|j
                  _        d
|j
                  _        |S # t        $ r Y Qw xY w)zY
        Manage the printing of an IPython/Jupyter Notebook progress bar widget.
        r   )minmaxr   info20px)childrenpx2zinline-flexzrow wrap)	IProgressImportErrorWARN_NOIPYWvalue	bar_stylelayoutwidthr   r   strint
ValueErrorflexr   	flex_flow)r/   totaldescncolsr   ltextrtext	containers           r#   status_printerztqdm_notebook.status_printer^   s     k**.D*DDJ#DN}$*!EKudE&:;	JEu:>TME  #DKK%*I"'4I$)3I&  s   C' '	C32C3c                    |s<|s:| j                   }|d   xs dj                  dd      |d<    | j                  di |}| j                  j                  \  }}}	| j
                  |_        |r]|j                  dd      }d|v r*t        t        t        j                  d|d	            \  }
}nd
t        |      }}
|
|_        |r||	_        |r|j                  dk7  s|dk7  r||_        |rE|j                  dk7  r6	 | j                  j                          d| j                  j                  _        |r:| j"                  dkD  r*| j$                  st'        | j                         d| _        y y y y # t        $ r d| j                  _        Y tw xY w)N
bar_formatz{l_bar}<bar/>{r_bar}z{bar}z<bar/> u    z\|?<bar/>\|?r   )maxsplit dangersuccessFhiddenr   Tr'   )r   replacer*   rS   r?   nrE   mapr   resplitrF   closeAttributeErrorvisiblerG   
visibilitydelay	displayedr   )r    msgposrb   rF   check_delayr"   rQ   r   rR   leftrights               r#   r   ztqdm_notebook.display   sl    5  A H2HQQ#AlO#$##(a(C!^^44tUVV
++c9-C3!&"((?CRS*TUe &+e EK#  ~~)Y)-C!* T^^x//$$& 08DNN!!,4::>$..DNN#!DN 3A>;	 " /).&/s   8E* *FFc                 v    t        | d      r-| j                  j                  d   j                  j                  S y NrS   hasattrrS   r?   style	bar_color)r    s    r#   colourztqdm_notebook.colour   s2    4%>>**2.44>>> &r%   c                 n    t        | d      r)|| j                  j                  d   j                  _        y y rn   rp   )r    rs   s     r#   rt   ztqdm_notebook.colour   s.    4%:CDNN##B'--7 &r%   c                    |j                         }|j                  dt        j                        }|t        j                  u s|t        j                  |d<   d|d<   t        |j                  dd            |d<   |j                  dd      }|j                  dd      }t        |    |i | | j                  s|d   s	d	 | _
        y| j                  rd
n|j                  dd      | _        | j                  du rdn| j                  xs d}| j                  r| j                  |z  n| j                  }| j                  | j                   || j"                  | j                        | _        t'        |       | j$                  _        d| _        |r+| j,                  dk  rt/        | j$                         d| _        | j.                  | _
        || _        | j                  s| j/                  d       yy)z
        Supports the usual `tqdm.tqdm` parameters as well as those listed below.

        Parameters
        ----------
        display  : Whether to call `display(self.container)` immediately
            [default: True].
        fileNTguidisableFrt   r   c                       y r2   r'   )r/   r0   s     r#   <lambda>z(tqdm_notebook.__init__.<locals>.<lambda>   s    r%   z100%rP   r   r   )rj   )copygetsysstderrstdoutboolpopr(   __init__ry   dispdynamic_ncolsrP   
unit_scalerN   rT   fprO   rS   r   r   rg   rf   r   rt   )	r    argskwargs
file_kwargrt   display_herer   rN   r+   s	           r#   r   ztqdm_notebook.__init__   s    ZZ

3
#z'9 ZZF6N u Iu!=>yHd+zz)T2$)&)<<ve}-DI  $11Vvzz'47P
 //T1Qt7K!
+/::

Z'4::,,TWWeTYY

S#DkDJJ!ODNN#!DNLL	 ||LLUL+ r%   c              #   r   K   	 t         |          }|D ]  }|  y #  | j                  d        xY ww)NrZ   rF   )r(   __iter__r   )r    itobjr+   s      r#   r   ztqdm_notebook.__iter__   s?     	!#B	 	III)s   7 747c                 V    	 t         |   |      S #  | j                  d        xY w)N)r^   rZ   r   )r(   updater   )r    r^   r+   s     r#   r   ztqdm_notebook.update  s3    	7>A>&&	 III)s    (c                    | j                   ry t        | 	          | j                  r-| j                  | j                  k  r| j                  dd       y | j                  r| j                  dd       y | j                  dd       y )NrZ   F)rF   rj   r[   T)rb   rj   )ry   r(   rb   rN   r^   r   leave)r    r+   s    r#   rb   ztqdm_notebook.close  se    << ::$&&4::-IIeI<zz		I5	A		%	8r%   c                      y r2   r'   )r    r/   r0   s      r#   clearztqdm_notebook.clear  s    r%   c                    | j                   rt        | 	  |      S | j                  j                  \  }}}d|_        |0||_        | j                  s| j                  d|j                  _
        t        | 	  |      S )z
        Resets to 0 iterations for repeated use.

        Consider combining with `leave=True`.

        Parameters
        ----------
        total  : int or float, optional. Total to use for the new bar.
        )rN   rY   N)ry   r(   resetrS   r?   rF   r<   rN   rP   rG   rH   )r    rN   r/   r   r+   s       r#   r   ztqdm_notebook.reset!  ss     <<7=u=--^^,,
4DH::$**"4$(!w}5}))r%   )NNN)NNFNT)r   r2   )r3   r4   r5   r6   staticmethodrT   r   propertyrt   setterr   r   r   rb   r   r   r7   r8   s   @r#   r   r   Z   s}     * *X %)9=3"j ? ? ]]D D+,Z	9* *r%   r   c                  &    t        t        |  fi |S )z:Shortcut for `tqdm.notebook.tqdm(range(*args), **kwargs)`.)r   range)r   r   s     r#   r   r   6  s    000r%   )"r6   r`   r~   htmlr   weakrefr   stdr   std_tqdmIPY
ipywidgetsrC   warningscatch_warningsfilterwarningsIPython.html.widgetswidgetsr   r   rB   r   r   r   objectIPython.displayr   
__author____all__rD   r   r   r   r   r'   r%   r#   <module>r      s^   
 
   "
C"91G1C'='+ EF

8$
%t %*Y*H Y*x1 	I	  	$X$$&#H##"VX99  '&&	*  		1DMC 	CID		  s   B ,C' D C$!C7	C CC	CC		C	C$C	C$#C$'D-DDDDDDDD! D!