B e]k# @s0dZddlmZmZddlZddlmZddlmZ dZ dZ y>ddl Z dZ ye e jddZ Wnek rvYnXWnnek rd Z ddlZe@ejd d d yddlmmZ Wnek rYnXWdQRXYnXyLe d krdd lmZddlmZmZdZ ndd l mZddl mZmZWn^ek ry,ddlmZddlmZddlmZdZ Wnek rdZ YnXYnXyddlmZWnek rYnXyddlm Z Wn"ek rddl!m Z YnXddddgiZ"ddddgZ#Gddde Z$ddZ%e$Ze%Z&dS) z IPython/Jupyter Notebook progressbar decorator for iterators. Includes a default (x)range iterator printing to stderr. Usage: >>> from tqdm.notebook import trange[, tqdm] >>> for i in trange(10): #same as: for i in tqdm(xrange(10)) ... ... )divisionabsolute_importN)_range)tqdm. ignorez2.*The `IPython.html` package has been deprecated.*)message) FloatProgress)HBoxHTML)FloatProgressWidget)ContainerWidget)r)display)escapez github.com/Zlrq3000Z casperdclZ alexanderkuk tqdm_notebooktnrangertrangecsdeZdZdZedddZdddZfdd Zfd d Zfd d Z fddZ ddZ Z S)rzB Experimental IPython/Jupyter Notebook widget using tqdm! NcCsy.|rtd|d}ntddd}d|_d|_Wntk rJtdYnX|rf||_tdkrfd|j_t }t ||gd}|d k rt |}yt |dkr|d 7}Wnt k rYnXd |j_||j_d |j_d |j_t||S)zY Manage the printing of an IPython/Jupyter Notebook progress bar widget. r)minmaxrinfozFloatProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.htmlinitial)childrenNZpx2z inline-flexzrow wrap) IProgressvalue bar_style NameError ImportError descriptionIPYWstyledescription_widthrr strint ValueErrorZlayoutZflexwidthrZ flex_flow)_totaldescncolspbarptext containerr3//tmp/pip-install-b8evvk6i/tqdm/tqdm/notebook.pystatus_printerQs8      ztqdm_notebook.status_printerFc Cs|s|s|}|jj\}}|j|_|rd|krHtt|dd\}}ndt|}}|rr|ddkrr|dd}|r|ddkr|dd}||_t dkrd|j _ |r||_|r|j d kr|d ks||_ |r |j d kr y|j Wntk rd |j_YnXdS) Nzr|rrrdangersuccessF)__repr__r2rnr maprsplitr$r%r&r'r!closeAttributeErrorZvisible) selfmsgposr?r!r0r1leftrightr3r3r4rs2    ztqdm_notebook.displaycs|dtj}|tjks |dkr*tj|d<d|d<|dd|ddd|d<tt|j|||j sr|dsvdS|j rdn |d d|_ |j dkrd n|j pd }|j r|j |n|j }||j||j|j |_|j|_|j s|dS) NfileTguiZ bar_formatz{l_bar}{bar}{r_bar}z{bar}zz100%r/r)getsysstderrstdout setdefaultreplacesuperr__init__disableZ dynamic_ncolsr/ unit_scaler-r5fpr.r2rsp)rAargskwargsZ file_kwargrQr-) __class__r3r4rOs"  ztqdm_notebook.__init__c/sFy&x tt|j||D] }|VqWWn|jddYnXdS)Nr9)r!)rNr__iter__rS)rArTrUobj)rVr3r4rWs  ztqdm_notebook.__iter__c sNytt|j||Wn2tk rH}z|jdd|Wdd}~XYnXdS)Nr9)r!)rNrupdate ExceptionrS)rArTrUexc)rVr3r4rYs  ztqdm_notebook.updatecs`tt|j||t|dr\|jr<|j|jkr<|jddn |jrP|jddn |jdddS)NrSr9)r!r:T)r?)rNrr?hasattrr-r<rSZleave)rArTrU)rVr3r4r?s ztqdm_notebook.closecOsdS)Nr3)rArTrUr3r3r4movetosztqdm_notebook.moveto)NNN)NNFN) __name__ __module__ __qualname____doc__ staticmethodr5rrOrWrYr?r] __classcell__r3r3)rVr4rLs 3 2  cOstt|f|S)z} A shortcut for `tqdm.notebook.tqdm(xrange(*args), **kwargs)`. On Python3+, `range` is used instead of `xrange`. )rr)rTrUr3r3r4rs)'ra __future__rrrIutilsrZstdrZstd_tqdmZIPYr%Z ipywidgetsr) __version__r>r@r#warningscatch_warningsfilterwarningsZIPython.html.widgetshtmlZwidgetsr rr rrrZIPython.displayrrcgi __author____all__rrrr3r3r3r4 sl           0