a
    Lf*                     @   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|v r\|dD ](}zt| |W   S  tyF   Y q 0 q t|  d| |dkr| dkst| dkrxdS | dkrdS t| d | |d	krt| d
kr|  S td| rt	d|  d S t|  d| |dkr| S |dkr>z
t
| W S  ty< } z t|  d| |W Y d }~n
d }~0 0 |dkrz
t| W S  ty } z t|  d| |W Y d }~n
d }~0 0 t|  d| d S )Nz or z : boolTrue TFalseFchrr   z^\\\w+$"strintfloat)logdebugsplitcastr   lenencoderematchevalr   
ValueErrorr   )valtyptexc r    A/var/www/ai-form-bot/venv/lib/python3.9/site-packages/tqdm/cli.pyr      sB    

*

*r      \n   c                 C   s   d S Nr    )r   r    r    r!   <lambda>7       r%   Tc                 C   s   |j }|sD| |}|s.t|ddd   dS || |t| q
d}t|}	| |}|s|r|| |r|d||  n||D ]}
||
 qt|ddd   dS ||}
|
dk r||7 }qP|||d|
t|    ||rdn||d|
   d}||
|	 d }qqPd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%   I   r&   zposix_pipe.<locals>.<lambda>Nr&   r   c                   S   s   d S r$   r    r    r    r    r!   r%   `   r&   r   )writereadgetattrr   countr   find)ZfinZfoutdelimbuf_sizecallbackcallback_lenfp_writetmpbufZ	len_delimir    r    r!   
posix_pipe6   s8    



r5   z\n {4}(\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u rt jdd  z d}W n> tyb    D ]"}|dr6|tdd } q^q6d}Y n0  |d  }tjtt|dd t	j
t }tt|}tD ]}|| qt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 rXt jtd  t d nlt fdddD rt j|d  t d n8 rĈ d dd	 dkrt 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 n2 t"y } zt#t$|W Y d}~n
d}~0 0 q$tdt$|  |dd }|d!d }|d"d }t%|||fdkrt#d#W nJ t&y$   d$|
  t j't jj }|D ]}| q Y n0 |d%d&}|d'd(}|d)d }|d*d}|d+d}|d,d rG 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ur|d5||d5 |dur|d6||d7 t d |rV|jtd/jG fd8d.d.t(}|r|/d9d: |/d;d |/d<d= t| t	f i |"t0||d
|j1 W d   n1 s0    Y  n8|d(krt| |j}|s|rdt	f i |L|rfd>d?}nfd@d?}|D ]}|| || q*W d   n1 sX0    Y  n t	|fi |D ]}|| qtnt| t	f i |Xd }|rfdAd?}n|ṙfdBd?}n
j1}d}t0|||||| W d   n1 s0    Y  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   sV   | ]N}|d  t vr|d dkr"dndj|d  dd|d  g|dd R  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   | ]}| v V  qd S r$   r    rC   vargvr    r!   rD      r&   )z-vz	--versionr   c                 3   s   | ]}| v V  qd S r$   r    rF   rH   r    r!   rD      r&   )z-hz--helpz--zError:Unknown argument: r   r   Tr9   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   rY   buffer)	resources)path)copyfilec                    sn   t dr$ td|  | n:d| } t|| W d   n1 sT0    Y  td| dS )zcopy resource `name` to `dst`filesr   Nz
written:%s)hasattrr   r^   r\   r   info)namedstsrc)r]   r[   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 )rR   c                    s@   t j d |  W d    n1 s*0    Y  |  d S )N)r9   )r   Zexternal_write_mode)xfpr1   stdout_writer    r!   r(     s    &rS   NrT   r    rf   r    r!   rY     s   unitBZ
unit_scaleZunit_divisori   c                    s     t|   d S r$   rL   numericdecoder4   r   r    r!   r/   *  s    zmain.<locals>.callbackc                    s     t|   j  d S r$   rL   rl   rm   nrn   ro   r    r!   r/   -  s    c                    s     t|   d S r$   rk   rn   ro   r    r!   r/   :  s    c                    s     t|   j  d S r$   rp   rn   ro   r    r!   r/   =  s    )2sysrI   indexr   
startswithr   loggingbasicConfigr*   r   __doc__CLI_EXTRA_DOCdictRE_OPTSfindallrA   popr   r   sorteditemsr   zipjoinstripanyrY   r(   r   exitstderrRE_SHLEXrB   r   KeyErrorr   r   sum	Exceptionstdinobject	importlibr[   osr\   shutilr]   
setdefaultr5   rL   )rg   rI   Zlog_idxr4   ZlogLeveldZ	opt_typesor   Zopt_types_descZ
help_shortoptsZ	tqdm_argsrG   eZdelim_per_charrL   rM   r   r.   r-   rN   rO   rP   rY   r\   rd   r(   r/   r0   r    )rI   r]   rg   r1   r[   rh   r   r!   r      s    



*
"
&




6

.
)rw   ru   r   rr   astr   rl   Zstdr   r   r   versionr   __all__	getLoggerrU   r   r   r5   compilerz   r   rA   rx   r   r   r    r    r    r!   <module>   s"   
&
:

#