o
    [i+                     @   s8  d Z ddlmZm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zddlZd	ZW n? eyn   d
ZddlZe $ ejddd zddlm  mZ W n	 ey\   Y nw W d   n1 sgw   Y  Y nw z-ed
krd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 W n/ ey   zddlmZ ddlmZ ddlmZ dZW n ey   dZdZeZY nw Y nw zddlmZ W n	 ey   Y nw zddlmZ W n ey   ddl mZ Y nw dg diZ!g dZ"dZ#G dd deZ$G dd de
Z%dd  Z&e%Z	e&Z'dS )!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):
...     ...
    )absolute_importdivisionN)proxy   )tqdm)_rangeT       ignorez2.*The `IPython.html` package has been deprecated.*)message)HTML)FloatProgress)HBox   )ContainerWidget)FloatProgressWidget   )display)escapez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                       s4   e Zd ZdZd
ddZd fdd	Zdd	 Z  ZS )TqdmHBoxz.`ipywidgets.HBox` with a pretty representationNc                 C   s4   t | dd }|d u ri S |j}|d ur| |d< |S )Npbarascii)getattrformat_dict)selfprettyr   d r#   K/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/tqdm/notebook.py_repr_json_Q   s   
zTqdmHBox._repr_json_Fc                    s8   t | dd }|d u rtt|  S |jdi | |S )Nr   r#   )r   superr   __repr__format_meterr%   )r    r!   r   	__class__r#   r$   r'   Z   s   zTqdmHBox.__repr__c                 O   s   | | d d S )NT)textr'   )r    pp___r#   r#   r$   _repr_pretty_`   s   zTqdmHBox._repr_pretty_N)F)__name__
__module____qualname____doc__r%   r'   r/   __classcell__r#   r#   r)   r$   r   O   s
    
	r   c                       s   e Zd ZdZedddZ		dddZed	d
 Zej	dd
 Z fddZ
 fddZd fdd	Z fddZdd Zd fdd	Z  ZS )r   zB
    Experimental IPython/Jupyter Notebook widget using tqdm!
    Nc                 C   s   t du rtt|rt d|d}nt ddd}d|_d|_|du r%d|j_t }t }|r0||_t|||gd}|durft	|}zt
|dkrK|d7 }W n	 tyU   Y nw d	|j_||j_d
|j_d|j_|S )zY
        Manage the printing of an IPython/Jupyter Notebook progress bar widget.
        Nr   )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	containerr#   r#   r$   status_printerh   s8   ztqdm_notebook.status_printerFTc                 C   s  |s|s| j }|d pddd|d< | jdi |}| jj\}}}	| j|_|rHd|v r9ttt	
d|d\}
}ndt|}
}|
|_|rH||	_|rV|jdksS|d	krV||_|rr|jdkrrz| j  W n tyq   d
| j_Y nw |r| jdkr| jst| j d| _d S d S d S d S )N
bar_formatz{l_bar}<bar/>{r_bar}z{bar}z<bar/>z\|?<bar/>\|?r    dangersuccessFr   Tr#   )r   replacer(   rN   r:   nr@   mapr   resplitrA   closeAttributeErrorvisibledelay	displayedr   )r    msgposrY   rA   check_delayr"   rL   r   rM   leftrightr#   r#   r$   r      s8   


ztqdm_notebook.displayc                 C   s   t | dr| jjd jjS d S NrN   hasattrrN   r:   style	bar_colorr    r#   r#   r$   colour   s   
ztqdm_notebook.colourc                 C   s"   t | dr|| jjd j_d S d S rc   re   )r    rh   r#   r#   r$   rj      s   
c                    sN  |  }|dtj}|tju s|du rtj|d< d|d< t|dd|d< |dd}|dd}tt| j	|i | | j
sE|d sLd	d
 | _dS | jrQdn|dd| _| jdu r_dn| jpcd}| jrl| j| n| j}| | j|| j| j| _t| | j_d| _|r| jdkrt| j d| _| j| _|| _| j
s| jdd dS dS )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disableFrj   r   c                  _      d S r0   r#   )r-   r.   r#   r#   r$   <lambda>   s    z(tqdm_notebook.__init__.<locals>.<lambda>z100%rK   r   r   )r`   )copygetsysstderrstdoutboolpopr&   r   __init__rm   dispdynamic_ncolsrK   
unit_scalerI   rO   fprJ   rN   r   r   r]   r\   r   rj   )r    argskwargs
file_kwargrj   display_hererz   rI   r)   r#   r$   rw      s4   	


ztqdm_notebook.__init__c                 #   s8    zt t|  D ]}|V  q	W d S    | jdd  )NrR   rA   )r&   r   __iter__rx   )r    objr)   r#   r$   r      s   ztqdm_notebook.__iter__r   c                    s*   z
t t| j|dW S    | jdd  )N)rU   rR   r   )r&   r   updaterx   )r    rU   r)   r#   r$   r     s
   ztqdm_notebook.updatec                    sf   | j rd S tt|   | jr| j| jk r| jddd d S | jr*| jddd d S | jddd d S )NrR   F)rA   r`   rS   T)rY   r`   )rm   r&   r   rY   rI   rU   rx   leaveri   r)   r#   r$   rY     s   ztqdm_notebook.closec                 O   rn   r0   r#   )r    r-   r.   r#   r#   r$   clear%  s   ztqdm_notebook.clearc                    sd   | j rtt| j|dS | jj\}}}d|_|dur)||_| js)| j	du r)d|j
_tt| j|d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.
        )rI   rQ   N)rm   r&   r   resetrN   r:   rA   r7   rI   rK   rB   rC   )r    rI   r-   r   r)   r#   r$   r   (  s   
ztqdm_notebook.reset)NNN)NNFNT)r   r0   )r1   r2   r3   r4   staticmethodrO   r   propertyrj   setterrw   r   r   rY   r   r   r5   r#   r#   r)   r$   r   d   s"    ,
3

-r   c                  O   s   t t|  fi |S )z}
    A shortcut for `tqdm.notebook.tqdm(xrange(*args), **kwargs)`.
    On Python3+, `range` is used instead of `xrange`.
    )r   r   )r|   r}   r#   r#   r$   r   =  s   r   )(r4   
__future__r   r   rW   rr   weakrefr   stdr   std_tqdmutilsr   IPY
ipywidgetsr>   warningscatch_warningsfilterwarningsIPython.html.widgetshtmlwidgetsr   r   r=   r   r   r   objectIPython.displayr   r   cgi
__author____all__r?   r   r   r   r   r#   r#   r#   r$   <module>   s    
 Z	