U
    ¶½|eç)  ã                   @   s¦   d Z ddlZddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZ dgZe e¡Zdd	„ Zd
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 )zI
Module version for monitoring CLI pipes (`... | python -m tqdm | ...`).
é    N)Úliteral_evalé   )ÚTqdmKeyErrorÚTqdmTypeErrorÚtqdm)Ú__version__Úmainc              	   C   sþ   t  | |f¡ d|kr\| d¡D ]*}zt| |ƒW   S  tk
rH   Y q X q t| d | ƒ‚|dkr”| dkst| dkrxdS | dkr„dS t| d | ƒ‚zt|d	 |  d
 ƒW S  tk
� rø   |dkrätttd|  d ƒƒƒ 	¡  Y S t| d | ƒ‚Y nX d S )Nz or z : ÚboolÚTrueÚ TÚFalseFz("z")Úchrú")
ÚlogÚdebugÚsplitÚcastr   ÚevalÚ	Exceptionr   ÚordÚencode)ÚvalÚtypÚt© r   úE/var/www/website-v5/atlas_env/lib/python3.8/site-packages/tqdm/cli.pyr      s(     r   ó   \né   c                 C   s   d S ©Nr   )Úfloatr   r   r   Ú<lambda>,   ó    r    Tc                 C   s   |j }|sD|  |¡}|s.t|ddd„ ƒƒ  dS ||ƒ |t|ƒƒ q
d}t|ƒ}	|  |¡}|s°|rš||ƒ |r‚|d| |¡ ƒ n| |¡D ]}
||
ƒ qŒt|ddd„ ƒƒ  dS | |¡}
|
dk rÌ||7 }qP|||d|
t|ƒ …  ƒ ||ròdn||d|
…  ƒ d}||
|	 d… }q°qPdS )	aZ  
    Params
    ------
    fin  : binary file with `read(buf_size : int)` method
    fout  : binary file with `write` (and optionally `flush`) methods.
    callback  : function(float), e.g.: `tqdm.update`
    callback_len  : If (default: True) do `callback(len(buffer))`.
      Otherwise, do `callback(data) for data in buffer.split(delim)`.
    Úflushc                   S   s   d S r   r   r   r   r   r   r    >   r!   zposix_pipe.<locals>.<lambda>Nr!   r   c                   S   s   d S r   r   r   r   r   r   r    U   r!   r   )ÚwriteÚreadÚgetattrÚlenÚcountr   Úfind)ÚfinÚfoutÚdelimÚbuf_sizeÚcallbackÚcallback_lenÚfp_writeÚtmpÚbufZ	len_delimÚir   r   r   Ú
posix_pipe+   s8    



r3   z\n {8}(\S+)\s{2,}:\s*([^,]+)z\s*(?<!\S)--?([^\s=]+)(\s+|=|$))ÚiterableÚ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'.
        tee  : bool, optional
            If true, passes `stdin` to both `stderr` and `stdout`.
        update  : bool, optional
            If true, will treat input as newly elapsed iterations,
            i.e. numbers to pass to `update()`. Note that this is slow
            (~2e5 it/s) since every input must be decoded as a number.
        update_to  : bool, optional
            If true, will treat input as total elapsed iterations,
            i.e. numbers to assign to `self.n`. Note that this is slow
            (~2e5 it/s) since every input must be decoded as a number.
        null  : bool, optional
            If true, will discard input (no stdout).
        manpath  : str, optional
            Directory in which to install tqdm man pages.
        comppath  : str, optional
            Directory in which to place tqdm completion.
        log  : str, optional
            CRITICAL|FATAL|ERROR|WARN(ING)|[default: 'INFO']|DEBUG|NOTSET.
c                    s¾  ˆ dkrt jdd… ‰ zˆ  d¡}W n@ tk
rd   ˆ D ]"}| d¡r8|tdƒd… } q`q8d}Y nX ˆ |d  }tjtt|ƒdd� t	j
jt }tt |¡ƒ}tD ]}| |¡ q¤t t| ¡ ƒ¡ t |¡}t|ddd… |d	dd… |ddd… ƒ}	d
 dd„ |	D ƒ¡}d}
|
d | d¡ d }t‡ fdd„dD ƒƒ�r\t j td ¡ t  d¡ nlt‡ fdd„dD ƒƒ�r�t j |d ¡ t  d¡ n8ˆ �rÈˆ d dd	… dk�rÈt j dˆ d › d|
› �¡ t  d dgˆ  ¡¡‰ ttˆ ddd… ˆ ddd… ƒƒ}t |¡ | dd¡ dˆi}z¾| ¡ D ]^\}}| !dd¡}zt"||| ƒ||< W n0 t#k
�r‚ } zt$t%|ƒƒ‚W 5 d}~X Y nX �q(t dt%|ƒ ¡ | dd ¡}| d!d ¡}| d"d ¡}t&|||fƒdk�rÚt$d#ƒ‚W nL t'k
�r(   ˆ d$|
 ¡ t j(t jj }‰|D ]}ˆ|ƒ �q‚ Y �n’X | d%d&¡}| d'd(¡}| d)d ¡}| d*d¡}| d+d¡}| d,d ¡�r†G d-d.„ d.t)ƒ}nt j}t|d/|ƒ}tt j(d/t j(ƒ}|�s´|�r(dd0l*m+‰ dd1l,m-} dd2l.m/‰ ‡‡fd3d4„}|dk	�r|d5| |d5¡ƒ |dk	�r|d6| |d7¡ƒ t  d¡ |�rZ|j‰tˆd/ˆƒj‰G ‡‡‡fd8d.„d.t)ƒ}|�rº| 0d9d:¡ | 0d;d¡ | 0d<d=¡ t |¡ t	f |Ž�‰t1||d
|ˆj2ƒ W 5 Q R X �n |d(k�rRt |¡ |j}|�sà|�r4t	f |Ž�B‰|�r ‡fd>d?„}n‡fd@d?„}|D ]}||ƒ ||ƒ �qW 5 Q R X nt	|f|ŽD ]}||ƒ �q@nht |¡ t	f |Ž�N‰d }|�r€‡fdAd?„}n|�r”‡fdBd?„}n
ˆj2}d}t1||||||ƒ W 5 Q R X dS )Czƒ
    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   sT   | ]L}|d  t kr|d dkr"dndj|d   dd¡|d  f|dd… žŽ V  qdS )r   r   r	   z
  --{0}  : {2}{3}z
  --{0}=<{1}>  : {2}{3}Ú_ú-N)ÚUNSUPPORTED_OPTSr:   Úreplace)Ú.0Zotdr   r   r   Ú	<genexpr>¶   s    ýÿ þ
þzmain.<locals>.<genexpr>z!Usage:
  tqdm [--help | options]
z^
Options:
  -h, --help     Print this help and exit.
  -v, --version  Print version and exit.
Ú
c                 3   s   | ]}|ˆ kV  qd S r   r   ©rA   Úv©Úargvr   r   rB   Ã   s     )z-vz	--versionr   c                 3   s   | ]}|ˆ kV  qd S r   r   rD   rF   r   r   rB   Æ   s     )z-hz--helpz--zError:Unknown argument:ú r   r   Tr7   r>   r=   zargs:ÚbytesFÚupdateÚ	update_toz1Can only have one of --bytes --update --update_toz
Error:
r,   r   r+   r   ÚteeÚmanpathÚcomppathÚnullc                   @   s   e Zd Zedd„ ƒZdS )úmain.<locals>.stdoutc                 S   s   d S r   r   )r=   r   r   r   r#   ï   s    úmain.<locals>.stdout.writeN©Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr#   r   r   r   r   Ústdoutî   s   rW   Úbuffer)Ú	resources)Úpath)Úcopyfilec              	      sZ   t ˆdƒr$ˆ tˆ d¡|  ƒ|ƒ n&ˆ d| ¡�}ˆ t|ƒ|ƒ W 5 Q R X t d|¡ dS )zcopy resource `name` to `dst`Úfilesr   z
written:%sN)ÚhasattrÚstrr\   rZ   r   Úinfo)ÚnameÚdstÚsrc)r[   rY   r   r   Úcpû   s
    
zmain.<locals>.cpztqdm.1zcompletion.shztqdm_completion.shc                       s    e Zd Ze‡ ‡‡fdd„ƒZdS )rP   c              	      s,   t jˆ d�� ˆ| ƒ W 5 Q R X ˆ| ƒ d S )N)r7   )r   Zexternal_write_mode)Úx©Úfpr/   Ústdout_writer   r   r#     s    rQ   NrR   r   re   r   r   rW     s   ÚunitÚBZ
unit_scaleZunit_divisori   c                    s   ˆ   t|  ¡ ƒ¡ d S r   ©rJ   ÚnumericÚdecode©r2   ©r   r   r   r-     s    zmain.<locals>.callbackc                    s   ˆ   t|  ¡ ƒˆ j ¡ d S r   ©rJ   rk   rl   Únrm   rn   r   r   r-   "  s    c                    s   ˆ   t|  ¡ ƒ¡ d S r   rj   rm   rn   r   r   r-   /  s    c                    s   ˆ   t|  ¡ ƒˆ j ¡ d S r   ro   rm   rn   r   r   r-   2  s    )3ÚsysrG   ÚindexÚ
ValueErrorÚ
startswithr&   ÚloggingÚbasicConfigr%   r   Ú__init__Ú__doc__ÚCLI_EXTRA_DOCÚdictÚRE_OPTSÚfindallr?   Úpopr   r   ÚsortedÚitemsr   ÚzipÚjoinÚstripÚanyrW   r#   r   ÚexitÚstderrÚRE_SHLEXr@   r   ÚKeyErrorr   r^   Úsumr   ÚstdinÚobjectÚ	importlibrY   ÚosrZ   Úshutilr[   Ú
setdefaultr3   rJ   )rf   rG   Zlog_idxr2   ZlogLevelÚdZ	opt_typesÚor   Zopt_types_descZ
help_shortÚoptsZ	tqdm_argsrE   ÚeZdelim_per_charrJ   rK   r‰   r,   r+   rL   rM   rN   rW   rZ   rc   r#   r-   r.   r   )rG   r[   rf   r/   rY   rg   r   r   r   �   sè    

ÿ
*
ýüü"
"




 


)rx   ru   Úrerq   Úastr   rk   Ústdr   r   r   Úversionr   Ú__all__Ú	getLoggerrS   r   r   r3   Úcompiler{   r†   r?   ry   r…   r   r   r   r   r   Ú<module>   s$   
 ÿ
:

#