a
    -=ic9                     @   s   d dl mZmZ d dlmZ d dlmZ ddlmZ zd dl	Z	W nP e
efy Z z4zd dlm	Z	 W n e
yz   eY n0 W Y dZ[n
dZ[0 0 dd	giZd
gZG dd
 d
e	jjZdS )    )absolute_importdivision)copy)partial   )tqdmN)keraszgithub.com/Z	casperdclTqdmCallbackc                   @   s~   e Zd ZdZeddd fddZddddefdd	Zd
d Zdd Z	dd Z
dd Zedd Zedd Zedd ZdS )r	   z,Keras callback for epoch and batch progress.Nc                 C   s   dS )Nr    logsr
   r
   [/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/tqdm/keras.py<lambda>       zTqdmCallback.<lambda>c                    s   d fdd	}|S )Nc                    sF    } r8r*t    fddD  j dd | d S )Nc                    s   g | ]}  |d qS )r   )pop).0ir   r
   r   
<listcomp>   r   z?TqdmCallback.bar2callback.<locals>.callback.<locals>.<listcomp>F)refresh)r   Zset_postfixupdate)_r   nbardeltar   r   r   callback   s    z+TqdmCallback.bar2callback.<locals>.callback)Nr
   )r   r   r   r   r
   r   r   bar2callback   s    	zTqdmCallback.bar2callbackr   c                 K   s   |rt |fi |}|| _||dd| _| | j| _|rV|rV|| d |  | _}n
d | _}|| _|dkr||ddd| _| j| jddgd	d
 d| _dS )a^  
        Parameters
        ----------
        epochs  : int, optional
        data_size  : int, optional
            Number of training pairs.
        batch_size  : int, optional
            Number of training pairs per batch.
        verbose  : int
            0: epoch, 1: batch (transient), 2: batch. [default: 1].
            Will be set to `0` unless both `data_size` and `batch_size`
            are given.
        tqdm_class  : optional
            `tqdm` class to use for bars [default: `tqdm.auto.tqdm`].
        tqdm_kwargs  : optional
            Any other arguments used for all bars.
        epoch)totalunitr   NbatchF)r   r   leavesizec                 S   s   |  ddS Nr"   r   getr   r
   r
   r   r   C   r   z'TqdmCallback.__init__.<locals>.<lambda>r   r   )	r   
tqdm_class	epoch_barr   Zon_epoch_endbatchesverbose	batch_baron_batch_end)selfepochs	data_size
batch_sizer*   r'   Ztqdm_kwargsr)   r
   r
   r   __init__"   s    

zTqdmCallback.__init__c                 O   s>   | j j}|d|dd }|d ur:|| jjkr:| jj|d d S )Nr.   Znb_epochr   )paramsr%   r(   r   reset)r-   r   __r3   Z
auto_totalr
   r
   r   on_train_beginE   s    zTqdmCallback.on_train_beginc                 O   s   | j j|k r$| j }| |_ |_|_| jr| jj}|d|d|dd pL| j}| jdkrt| drl| j	
  | j|ddd|d	dpd d
| _	| j| j	ddgdd d| _n8| jdkrd|d	dpd | j	_| j	j|d ntdd S )NZsamplesZ	nb_sampleZsteps   r+   r    Tr   r0   )r   r   r!   
unit_scaler"   c                 S   s   |  ddS r#   r$   r   r
   r
   r   r   [   r   z-TqdmCallback.on_epoch_begin.<locals>.<lambda>r&   r2   zUnknown verbosity)r(   r   Zlast_print_ninitialr*   r3   r%   r)   hasattrr+   closer'   r   r,   r8   r4   KeyError)r-   r   r   r5   Zebarr3   r   r
   r
   r   on_epoch_beginK   s2    






zTqdmCallback.on_epoch_beginc                 O   s   | j r| j  | j  d S )N)r*   r+   r;   r(   )r-   r   r5   r
   r
   r   on_train_endb   s    
zTqdmCallback.on_train_endc                 C   sP   t | jdd}|du rdS ddlm} || t | dd}|durL||j dS )z*Displays in the current cell in Notebooks.	containerNr   )displayr+   )getattrr(   notebookr@   r?   )r-   r?   r@   r+   r
   r
   r   r@   g   s    zTqdmCallback.displayc                   C   s   dS NTr
   r
   r
   r
   r   _implements_train_batch_hooksr   s    z*TqdmCallback._implements_train_batch_hooksc                   C   s   dS rC   r
   r
   r
   r
   r   _implements_test_batch_hooksv   s    z)TqdmCallback._implements_test_batch_hooksc                   C   s   dS rC   r
   r
   r
   r
   r   _implements_predict_batch_hooksz   s    z,TqdmCallback._implements_predict_batch_hooks)__name__
__module____qualname____doc__staticmethodr   	tqdm_autor1   r6   r=   r>   r@   rD   rE   rF   r
   r
   r
   r   r	      s    
#

)
__future__r   r   r   	functoolsr   autor   rL   r   ImportErrorAttributeErroreZ
tensorflow
__author____all__	callbacksZCallbackr	   r
   r
   r
   r   <module>   s    
