Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1576 views


9�W�4�@s�dZddlmZmZddlZddlmZddlmZddlm	Z	dd	d
giZ
ddgZGd
d�de	�Zdd�Z
dS)z�
GUI progressbar decorator for iterators.
Includes a default (x)range iterator printing to stderr.

Usage:
  >>> from tqdm_gui import tgrange[, tqdm_gui]
  >>> for i in tgrange(10): #same as: for i in tqdm_gui(xrange(10))
  ...     ...
�)�division�absolute_importN)�time�)�_range)�tqdmzgithub.com/Z	casperdclZlrq3000�tqdm_gui�tgrangecsjeZdZdZeejddd��Z�fdd�Zdd�Z	d	d
d�Z
dd
�Z�S)rz+
    Experimental GUI version of tqdm!
    �
cCs|j|�|j|�dS)zH
        Print a message via tqdm_gui (just an alias for print)
        N)�write)�cls�s�file�end�r�-lib/python3.5/site-packages/tqdm/_tqdm_gui.pyrs
ztqdm_gui.writec	s�ddl}ddlj}ddlm}d|d<tt|�j||�|jsb|drfdS|j	j
d�||_||_d|_
|jjd|_d|jjd<t|jd�|_|jd	d$�\|_}|jrg|_g|_g|_n-|g�|_|g�|_|g�|_|j|j|jdd
�\|_|j|j|jdd�\|_|jdd�|jr|jdd�|jd�|jj|j|jfd%dd�|jdddddddd�|_ n:|jdd�|j!�|jd�|jd&dd�|j"�|j#|j$ra|j$ndd�|j%r�|j&ddd d!d"d'�|j'j(�j)d(�|j*�|_+|j,�||_-dS))Nr)�dequeTZguiz#Warning: GUI is experimental/alpha
�toolbar�Noneg�?Zfigsize�	皙����@�color�b�kg����MbP?�dZpercent�cur�est�loczcenter right�xmin�xmax�g�<Zsecondsz
lower left�itz/sZstyleZsciZaxis�yZ	scilimitsg333333�?)rr)rr)rr)rrg333333ÿ).Z
matplotlibZmatplotlib.pyplotZpyplot�collectionsr�superr�__init__�disable�fpr�mpl�pltZsp�rcParamsr�max�minintervalZsubplots�fig�total�xdata�ydata�zdataZplot�line1�line2�set_ylimZset_xlimZ
set_xlabelZlegend�axhspan�hspanZinvert_xaxisZgridZ
set_ylabel�unit�
unit_scaleZticklabel_formatZyaxisZget_offset_textZset_xZ
isinteractive�wasionZion�ax)�self�args�kwargsr)r*rr;)�	__class__rrr&'sZ
						$$	



#	
ztqdm_gui.__init__c"#s~|j}|jr,x|D]}|VqWdS|j}|j}|j}|j}|j}|j}|j}	|j	}
|j
}|j}|j}
|j
}|j}|j}|j}|j}|j}|j}|j}|j}|j}xr|D]j}|V|
d7}
|
|}||kr�t���|}||kr��|
}|r�|r�|dkrf||n|||d||}|j}||}|
|}|j|r�|
d|n��|j|�|j|�|r	|dkr	|j�|j�|j�|j�\}}||ks3||kr]d|}|j||�|jjj�|rL|j ||�|j ||�y|j!j"�} WnHt#k
r�|j$ddddddd	d
�|_!|j!j"�} YnX|| d<|| d<|
||g| d<| d|g| d<t%| �d
kr9|| d<|j!j&| �n9�fdd�|D�}!|j |!|�|j |!|�|j'|j(|
||d|j)|	|||r�d|nd|�
dddd�|j*d�|rN|r||kr|||}nC|r8|r8||||d||}n||d||}|
}�}q�W||_|
|_|j+�dS)NrgY@�Bg�������?rg����MbP?rrrr ���csg|]}�|�qSrr)�.0�i)�cur_trr�
<listcomp>�s	z%tqdm_gui.__iter__.<locals>.<listcomp>�fontnamezDejaVu Sans Mono�fontsize�g��&�.>)rr)rr)rAr)rCr),�iterabler'r-�maxinterval�miniters�dynamic_minitersr8r9�ascii�start_t�last_print_t�last_print_n�n�	smoothing�avg_time�
bar_formatr*r;r0r1r2r3r4rr/�append�popleft�get_ylimr5�figure�canvas�draw�set_datar7�get_xy�AttributeErrorr6�len�set_xy�	set_title�format_meter�desc�pause�close)"r<rK�objr-rLrMrNr8r9rOrPrQrRrSrTrUrVr*r;r0r1r2r3r4�delta_it�delta_t�elapsedr/r#�z�ymin�ymax�	poly_lims�t_agor)rFr�__iter__es�		
																						


	

	

!











!
		ztqdm_gui.__iter__rc
sD|jr
dS|dkrd}|j|7_|j|j}||jkr@t���|j}||jkr@�|j}|jr�|r�|j	dkr�||n |j||d|j|j	|_	|j
}|j}||}|j|}|jj
|r|jd|n��|jj
|�|jj
|�|rw|dkrw|jj�|jj�|jj�|j�\}	}
||
ks�||
kr�d|}
|j|	|
�|jjj�|r�|jj|j|j�|jj|j|j�y|jj�}WnKtk
rc|jjddddddd	d
�|_|jj�}YnX|	|d<|
|d<|j||
g|d<|d|	g|d<t|�d
kr�|	|d<|jj|�nH�fdd�|jD�}|jj||j�|jj||j�|j |j!|j||d|j"|j#|j$|j%|j	rcd|j	nd|j&�
dddd�|jj'd�|j(r+|j)r�||j)kr�|j|j)||_na|jr	|r	|j||j|d|j|j|_n"|j|d|j|j|_|j|_�|_dS)NrrgY@r@g�������?g����MbP?rrrr rArBrCcsg|]}�|�qSrr)rDrE)rFrrrG,s	z#tqdm_gui.update.<locals>.<listcomp>rHzDejaVu Sans MonorIrJg��&�.>)rr)rr)rAr)rCr)*r'rSrRrMrrQr-rPrTrUr/r;r0rWr1r2rXrYr5rZr[r\r3r]r4r7r^r_r*r6r`rarbrcrdrOr8r9rVrerNrL)
r<rSrhrirjr/r;r#rkrlrmrnror)rFr�update�s�		

		

	








	
ztqdm_gui.updatecCso|jr
dSd|_|jj|�|j|jjd<|jsO|jj�|j	sk|jj
|j�dS)NTr)r'Z
_instances�removerr)r+r:r*ZioffZleaverfr.)r<rrrrfMs			
	ztqdm_gui.close)�__name__�
__module__�__qualname__�__doc__�classmethod�sys�stdoutrr&rprqrfrr)r?rrs>�dcOstt|�|�S)zl
    A shortcut for tqdm_gui(xrange(*args), **kwargs).
    On Python3+ range is used instead of xrange.
    )rr)r=r>rrrr	`s)rvZ
__future__rrrxrZ_utilsrZ_tqdmr�
__author__�__all__rr	rrrr�<module>	s�H