U
    )d,
                     @   s   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddgiZ
d	d
dgZG dd de	Zdd Zddefdd	Zedd
 Zedd ZdS )z^
Thin wrappers around common functions.

Subpackages contain potentially unstable extensions.
    N)wraps   )tqdm)ObjectWrapperzgithub.com/Z	casperdcl
tenumeratetziptmapc                       s2   e Zd ZdZ fddZd	ddZdd Z  ZS )
DummyTqdmFilez'Dummy file-like that will write to tqdmc                    s   t t| | g | _d S N)superr	   __init___buf)selfwrapped	__class__ 9/tmp/pip-unpacked-wheel-u8lm3wqg/tqdm/contrib/__init__.pyr      s    zDummyTqdmFile.__init__Fc                 C   sn   t |trdnd}||\}}}|r^t| }tj|| j||g || j|d |g| _n| j	| d S )N   

)endfilenolock)

isinstancebytes
rpartitiontyper   writejoinr   _wrappedappend)r   xr   nlpreseppostblankr   r   r   r      s    
  
zDummyTqdmFile.writec              	   C   sR   | j rNt| j d  }ztj|| j || jd W n ttfk
rL   Y nX d S )Nr   )r   r   )r   r   r   r   r   r   OSError
ValueError)r   r&   r   r   r   __del__#   s    zDummyTqdmFile.__del__)F)__name__
__module____qualname____doc__r   r   r)   __classcell__r   r   r   r   r	      s   
r	   c                    s.   t jdd dk r*t  fdd}|S  S )z*Wraps `func()` output in a `list()` in py2N   )   c                     s   t  | |S r
   )list)argskwargsfuncr   r   inner/   s    zbuiltin_iterable.<locals>.inner)sysversion_infor   )r5   r6   r   r4   r   builtin_iterable,   s
    r9   c                 K   sh   zddl }W n tk
r    Y n.X t| |jrN||| fd|pD| ji|S t|| fd|i||S )z
    Equivalent of `numpy.ndenumerate` or builtin `enumerate`.

    Parameters
    ----------
    tqdm_class  : [default: tqdm.auto.tqdm].
    r   Ntotal)ZnumpyImportErrorr   ZndarrayZndenumeratesize	enumerate)iterablestartr:   
tqdm_classtqdm_kwargsnpr   r   r   r   6   s    c                 o   s:   |  }|dt}t|| f|f| D ]
}|V  q*dS )zr
    Equivalent of builtin `zip`.

    Parameters
    ----------
    tqdm_class  : [default: tqdm.auto.tqdm].
    r@   N)copypop	tqdm_autozip)Ziter1Z	iter2plusrA   r3   r@   ir   r   r   r   I   s    	c                 o   s   t ||D ]}| | V  q
dS )zr
    Equivalent of builtin `map`.

    Parameters
    ----------
    tqdm_class  : [default: tqdm.auto.tqdm].
    N)r   )function	sequencesrA   rG   r   r   r   r   X   s    	)r-   r7   	functoolsr   autor   rE   Zstdutilsr   
__author____all__r	   r9   r   r   r   r   r   r   r   <module>   s   



