B
    `aŠ]w  ã               @   sŠ   d dl mZmZmZ d dlmZ ddlZddlZddlZdgZ	dd„ Z
dd	d
d„ fdd„Ze d¡Ze d¡ZdZdZejdfdd„ZdS )é   )ÚtqdmÚTqdmTypeErrorÚTqdmKeyError)Ú__version__é    NÚmainc          	   C   sò   t  t¡}| | |f¡ d|krdx2| d¡D ]$}y
t| |ƒS  tk
rN   Y q,X q,W t| d | ƒ‚|dkrœ| dks|| dkr€dS | dkrŒdS t| d | ƒ‚yt|d	 |  d
 ƒS    |dkrØtt	td|  d ƒƒƒS t| d | ƒ‚Y nX d S )Nz or z : ÚboolÚTrueÚ TÚFalseFz("z")Úchrú")
ÚloggingÚ	getLoggerÚ__name__ÚdebugÚsplitÚcastr   Úevalr   Úord)ÚvalÚtypÚlogÚt© r   ú'lib/python3.7/site-packages/tqdm/cli.pyr   	   s*    


r   Ú
é   c             C   s   d S )Nr   )Úintr   r   r   Ú<lambda>&   ó    r   c       	      C   s  |j }|sHx<|  |¡}|s0t|ddd„ ƒƒ  dS ||ƒ |t|ƒƒ qW d}x¶|  |¡}|s|rz||ƒ |d| |¡ ƒ t|ddd„ ƒƒ  dS xny| |¡}W n tk
r¾   ||7 }P Y q’X |||d|t|ƒ …  ƒ |dƒ d}||t|ƒ d… }q’W qNW dS )zÁ
    Params
    ------
    fin  : file with `read(buf_size : int)` method
    fout  : file with `write` (and optionally `flush`) methods.
    callback  : function(int), e.g.: `tqdm.update`
    Úflushc               S   s   d S )Nr   r   r   r   r   r   8   r    zposix_pipe.<locals>.<lambda>Nr
   r   c               S   s   d S )Nr   r   r   r   r   r   I   r    )ÚwriteÚreadÚgetattrÚlenÚcountÚindexÚ
ValueError)	ZfinZfoutÚdelimÚbuf_sizeÚcallbackZfp_writeZtmpÚbufÚir   r   r   Ú
posix_pipe%   s8    


r.   z\n {8}(\S+)\s{2,}:\s*([^,]+)z\s*(?<!\S)--?([^\s=]+)(\s+|=|$))ÚiterableZguiÚoutÚfilea%  
        Extra CLI Options
        -----------------
        name  : type, optional
            TODO: find out why this is needed.
        delim  : chr, optional
            Delimiting character [default: '\n']. Use '\0' for null.
            N.B.: on Windows systems, Python converts '\n' to '\r\n'.
        buf_size  : int, optional
            String buffer size in bytes [default: 256]
            used when `delim` is specified.
        bytes  : bool, optional
            If true, will count bytes, ignore `delim`, and default
            `unit_scale` to True, `unit_divisor` to 1024, and `unit` to 'B'.
        manpath  : str, optional
            Directory in which to install tqdm man pages.
        log  : str, optional
            CRITICAL|FATAL|ERROR|WARN(ING)|[default: 'INFO']|DEBUG|NOTSET.
c                s(  ˆ dkrt jdd… ‰ yˆ  d¡}W nB tk
rf   x,ˆ D ] }| d¡r:|tdƒd… }P q:W d}Y nX ˆ |d  }tjtt|ƒdd t 	t
¡}tjjt }tt |¡ƒ}xtD ]}| |¡ q²W | t| ¡ ƒ¡ t |¡}t|ddd… |d	dd… |ddd… ƒ}	d
 dd„ |	D ƒ¡}d| d¡ d }t‡ fdd„dD ƒƒrdt j td ¡ t  d¡ n2t‡ fdd„dD ƒƒr–t j |d ¡ t  d¡ t  d dgˆ  ¡¡‰ ttˆ ddd… ˆ ddd… ƒƒ}
| |
¡ |
 dd¡ d| i}yvx^|
 ¡ D ]R\}}yt!||| ƒ||< W n0 t"k
rF } zt#t$|ƒƒ‚W dd}~X Y nX qøW | dt$|ƒ ¡ W n8   |  d¡ xt j%D ]}t j |¡ q|W ‚ Y nŠX | dd¡}| dd¡}| dd¡}| d d¡}tt j%d!t j%ƒ}tt jd!t jƒ}|dk	r\dd"l&m'} dd#l(m)} dd$l*m+}m,} || -d¡d%ƒ}| |d&¡}|||ƒ | .d'| ¡ t  d¡ |rº| /d(d)¡ | /d*d¡ | /d+d,¡ | |¡ tf |Ž}t0||d
||j1ƒ W dQ R X nj|dkrò| |¡ xTt|f|ŽD ]}| |¡ qÜW n2| |¡ tf |Ž}t0|||||j1ƒ W dQ R X dS )-zƒ
    Parameters (internal use only)
    ---------
    fp  : file-like object for tqdm
    argv  : list (default: sys.argv[1:])
    Nr   z--logz--log=ÚINFOz/%(levelname)s:%(module)s:%(lineno)d:%(message)s)ÚlevelÚformaté   é   r
   c             s   s$   | ]}|d  t krdj|Ž V  qdS )r   z
  --{0}=<{0}>  : {1}{2}N)ÚUNSUPPORTED_OPTSr4   )Ú.0Zotdr   r   r   ú	<genexpr>Ÿ   s   zmain.<locals>.<genexpr>z~Usage:
  tqdm [--help | options]

Options:
  -h, --help     Print this help and exit
  -v, --version  Print version and exit

r   c             3   s   | ]}|ˆ kV  qd S )Nr   )r8   Úv)Úargvr   r   r9   ¬   s    )z-vz	--versionr   c             3   s   | ]}|ˆ kV  qd S )Nr   )r8   r:   )r;   r   r   r9   ¯   s    )z-hz--helpú r   r   Tr1   zargs:z)
Error:
Usage:
  tqdm [--help | options]
r*   r   r)   ÚbytesFÚmanpathÚbuffer)Úpath)Úcopyfile)Úresource_filenameÚRequirementztqdm/tqdm.1ztqdm.1zwritten:ZunitÚBZ
unit_scaleZunit_divisori   )2Úsysr;   r'   r(   Ú
startswithr%   r   ZbasicConfigr$   r   r   r   Ú__init__Ú__doc__ÚCLI_EXTRA_DOCÚdictÚRE_OPTSÚfindallr7   Úpopr   ÚsortedÚitemsr   ÚzipÚjoinÚstripÚanyÚstdoutr"   r   ÚexitÚRE_SHLEXr   ÚKeyErrorr   ÚstrÚstdinÚosr@   ZshutilrA   Zpkg_resourcesrB   rC   ÚparseÚinfoÚ
setdefaultr.   Úupdate)Úfpr;   r   r-   ZlogLevelÚdZ	opt_typesÚor   Zopt_types_descZoptsZ	tqdm_argsr:   Úer*   r)   Zdelim_per_charr>   rY   rT   r@   rA   rB   rC   ÚfiÚfor   r   )r;   r   r   w   sš    





*

	
"
$








)Zstdr   r   r   Z_versionr   rE   Úrer   Ú__all__r   r.   ÚcompilerK   rV   r7   rI   Ústderrr   r   r   r   r   Ú<module>   s   4

