
    LMh-.                        d Z ddlZddlZddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ eeeef\  ZZZZej        Z ed d	D                       Z ed
 dD                       Z ej        d          Z	 erddlZne	 	  ej         d           n'# e!$ r  ej                      Y nw xY w# e$ r dZY nw xY wd(dZ" G d de#          Z$ G d de#          Z% G d de#          Z& G d de&          Z' G d de&          Z( G d de&          Z)d Z*d Z+d Z,d Z-d  Z.d! Z/d" Z0d# Z1d$ Z2d% Z3d& Z4d' Z5dS ))z*
General helpers required for `tqdm.std`.
    N)partialpartialmethodwraps)	signatureeast_asian_width)warnproxyc              #   J   K   | ]}t                               |          V  d S NCUR_OS
startswith.0is     J/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tqdm/utils.py	<genexpr>r      s0      ??aVq!!??????    )win32cygwinc              #   J   K   | ]}t                               |          V  d S r   r   r   s     r   r   r      s0      QQaVq!!QQQQQQr   )aixlinuxdarwinfreebsdz\x1b\[[;\d]*[A-Za-z]F)stripc                      i t                      fdt          j                                        D             |rt          nt
          fd}|S )a  
    Override parameter defaults via `os.environ[prefix + param_name]`.
    Maps UPPER_CASE env vars map to lower_case param names.
    camelCase isn't supported (because Windows ignores case).

    Precedence (highest first):

    - call (`foo(a=3)`)
    - environ (`FOO_A=2`)
    - signature (`def foo(a=1)`)

    Parameters
    ----------
    prefix  : str
        Env var prefix, e.g. "FOO_"
    types  : dict, optional
        Fallback mappings `{'param_name': type, ...}` if types cannot be
        inferred from function signature.
        Consider using `types=collections.defaultdict(lambda: ast.literal_eval)`.
    is_method  : bool, optional
        Whether to use `functools.partialmethod`. If (default: False) use `functools.partial`.

    Examples
    --------
    ```
    $ cat foo.py
    from tqdm.utils import envwrap
    @envwrap("FOO_")
    def test(a=1, b=2, c=3):
        print(f"received: a={a}, b={b}, c={c}")

    $ FOO_A=42 FOO_C=1337 python -c 'import foo; foo.test(c=99)'
    received: a=42, b=2, c=99
    ```
    Nc                 z    i | ]7\  }}|                               |d                                          |8S r   )r   lower)r   kvr   prefixs      r   
<dictcomp>zenvwrap.<locals>.<dictcomp>I   sA    ]]]$!QU[H\H\]QqrrU[[]]A]]]r   c                    t          |           j        fd                                D             }|D ]}|         }|j        |j        urFt          |j        d|j        f          D ](}	  |||                   ||<    n# t          $ r Y %w xY w^|j        ' t          |j                  ||                   ||<   	  |         ||                   ||<   # t          $ r Y w xY w | fi |S )Nc                 $    i | ]\  }}|v 	||S  r(   )r   r"   r#   paramss      r   r%   z)envwrap.<locals>.wrap.<locals>.<dictcomp>O   s$    KKKdaqF{{Q{{{r   __args__)
r   
parametersitems
annotationemptygetattr	ExceptiondefaulttypeKeyError)	func	overridesr"   paramtypr)   env_overridesparttypess	        @r   wrapzenvwrap.<locals>.wrapL   sP   4+KKKKm&9&9&;&;KKK	 	 	A1IEu{22"5#3Z%BRATUU  C'*s9Q<'8'8	!  %    *2tEM229Q<@@	!#+58IaL#9#9IaLL   DtD&&I&&&s$   0B
BBC!!
C.-C.)lenosenvironr,   r   r   )r$   r:   	is_methodr;   r8   r   r9   s   ``  @@@r   envwrapr@   "   s    H }FA]]]]]"*2B2B2D2D]]]M%2==7D' ' ' ' ' ' '. Kr   c                        e Zd ZdZddZd ZdS )FormatReplacezN
    >>> a = FormatReplace('something')
    >>> f"{a:5d}"
    'something'
     c                 "    || _         d| _        d S Nr   )replaceformat_called)selfrF   s     r   __init__zFormatReplace.__init__l   s    r   c                 0    | xj         dz  c_         | j        S )N   )rG   rF   )rH   _s     r   
__format__zFormatReplace.__format__p   s    a|r   N)rC   )__name__
__module____qualname____doc__rI   rM   r(   r   r   rB   rB   f   sA         
       r   rB   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	
Comparablez1Assumes child has self._comparable attr/@propertyc                 "    | j         |j         k     S r   _comparablerH   others     r   __lt__zComparable.__lt__w   s    %"333r   c                     | |k     p| |k    S r   r(   rW   s     r   __le__zComparable.__le__z   s    u0$%-0r   c                 "    | j         |j         k    S r   rU   rW   s     r   __eq__zComparable.__eq__}   s    5#444r   c                     | |k     S r   r(   rW   s     r   __ne__zComparable.__ne__       5=  r   c                     | |k     S r   r(   rW   s     r   __gt__zComparable.__gt__   r`   r   c                     | |k      S r   r(   rW   s     r   __ge__zComparable.__ge__   s    %<r   N)
rN   rO   rP   rQ   rY   r[   r]   r_   rb   rd   r(   r   r   rS   rS   u   st        ;;4 4 41 1 15 5 5! ! !! ! !         r   rS   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )ObjectWrapperc                 ,    t          | j        |          S r   )r/   _wrappedrH   names     r   __getattr__zObjectWrapper.__getattr__   s    t}d+++r   c                 .    t          | j        ||          S r   )setattrrh   rH   rj   values      r   __setattr__zObjectWrapper.__setattr__   s    t}dE222r   c                 z    	 t                               | |          S # t          $ r t          | |          cY S w xY w)z7Actual `self.getattr` rather than self._wrapped.getattr)objectrk   AttributeErrorr/   ri   s     r   wrapper_getattrzObjectWrapper.wrapper_getattr   sN    	'%%dD111 	' 	' 	'4&&&&&	's    ::c                 :    t                               | ||          S )z7Actual `self.setattr` rather than self._wrapped.setattr)rr   rp   rn   s      r   wrapper_setattrzObjectWrapper.wrapper_setattr   s    !!$e444r   c                 2    |                      d|           dS )z4
        Thin wrapper around a given object
        rh   N)rv   )rH   wrappeds     r   rI   zObjectWrapper.__init__   s      	Z11111r   N)rN   rO   rP   rk   rp   rt   rv   rI   r(   r   r   rf   rf      s_        , , ,3 3 3' ' '5 5 52 2 2 2 2r   rf   c                   .     e Zd ZdZ fdZd Zd Z xZS )SimpleTextIOWrapperz
    Change only `.write()` of the wrapped object by encoding the passed
    value and passing the result to the wrapped object's `.write()` method.
    c                 v    t                                          |           |                     d|           d S )Nencoding)superrI   rv   )rH   rx   r|   	__class__s      r   rI   zSimpleTextIOWrapper.__init__   s7    !!!Z22222r   c                     | j                             |                    |                     d                              S )zP
        Encode `s` and pass to the wrapped object's `.write()` method.
        r|   )rh   writeencodert   )rH   ss     r   r   zSimpleTextIOWrapper.write   s4     }""188D,@,@,L,L#M#MNNNr   c                 6    | j         t          |d|          k    S Nrh   rh   r/   rW   s     r   r]   zSimpleTextIOWrapper.__eq__       }z5 A AAAr   )rN   rO   rP   rQ   rI   r   r]   __classcell__r~   s   @r   rz   rz      sj         
3 3 3 3 3O O OB B B B B B Br   rz   c                   >     e Zd ZdZed             Z fdZd Z xZS )DisableOnWriteErrorzO
    Disable the given `tqdm_instance` upon `write()` or `flush()` errors.
    c                 4     t                       fd}|S )zV
        Quietly set `tqdm_instance.miniters=inf` if `func` raises `errno=5`.
        c                  X   	  | i |S # t           $ rC}|j        dk    r 	 t          d          _        n# t          $ r Y n
w xY wY d }~d S Y d }~d S d }~wt
          $ rI}dt          |          vr 	 t          d          _        n# t          $ r Y n
w xY wY d }~d S Y d }~d S d }~ww xY w)N   infclosed)OSErrorerrnofloatminitersReferenceError
ValueErrorstr)argskwargser4   tqdm_instances      r   innerz7DisableOnWriteError.disable_on_exception.<locals>.inner   s"   tT,V,,,   7a<<-25\\M**%   D +*****DDDDD   3q66))-25\\M**%   D +*****DDDDDsd    
B)A7A
AAAAB) B$3BB$
BB$BB$$B)r
   )r   r4   r   s   `` r   disable_on_exceptionz(DisableOnWriteError.disable_on_exception   s8    
 m,,	 	 	 	 	 	" r   c                 J   t                                          |           t          |d          r/|                     d|                     ||j                             t          |d          r1|                     d|                     ||j                             d S d S )Nr   flush)r}   rI   hasattrrv   r   r   r   )rH   rx   r   r~   s      r   rI   zDisableOnWriteError.__init__   s    !!!7G$$ 	R  22='-PPR R R7G$$ 	R  22='-PPR R R R R	R 	Rr   c                 6    | j         t          |d|          k    S r   r   rW   s     r   r]   zDisableOnWriteError.__eq__   r   r   )	rN   rO   rP   rQ   staticmethodr   rI   r]   r   r   s   @r   r   r      sx            \2R R R R RB B B B B B Br   r   c                         e Zd Zd fd	Z xZS )CallbackIOWrapperreadc                 l   t                                          |           t          ||          |dk    r3t                    fd            }|                     d|           dS |dk    r3t                    fd            }|                     d|           dS t          d          )z{
        Wrap a given `file`-like object's `read()` or `write()` to report
        lengths to the given `callback`
        r   c                 P     | g|R i |} t          |                      |S r   r<   )datar   r   rescallbackr4   s       r   r   z)CallbackIOWrapper.__init__.<locals>.write   s=    d41$111&11T###
r   r   c                  H     | i |} t          |                     |S r   r   )r   r   r   r   r4   s      r   r   z(CallbackIOWrapper.__init__.<locals>.read   s2    tT,V,,T###r   z Can only wrap read/write methodsN)r}   rI   r/   r   rv   r3   )rH   r   streammethodr   r   r4   r~   s    `    @r   rI   zCallbackIOWrapper.__init__   s    
 	   vv&&W4[[     [   %00000v4[[     [   .....=>>>r   )r   )rN   rO   rP   rI   r   r   s   @r   r   r      s=        ? ? ? ? ? ? ? ? ? ?r   r   c                     	 d                     |            dS # t          $ r Y dS t          $ rC 	 |                                                     d          pd| k    cY S # t          $ r Y Y dS w xY ww xY w)Nu   █▉TFzutf-U8)r   UnicodeEncodeErrorr0   r!   r   )r|   s    r   _is_utfr      s    
x((( t    uu   	>>##..v66L48;KLLL 	 	 	555	s1    
A2	A2,AA2
A.)A2-A..A2c                 N    	 t          | j                  S # t          $ r Y dS w xY wNF)r   r|   rs   )fps    r   _supports_unicoder   
  s9    r{###   uus    
$$c                     t          | t                    r| D ]}t          |          dk    r dS dS t          |           S )N   FT)
isinstancer   ordr   )r   cs     r   	_is_asciir     sQ    !S  	 	A1vv||uu tQr   c                  T    d} t           rt          } | t          } t          rt          } | S )zy
    Return a function which returns console dimensions (width, height).
    Supported: linux, osx, windows, cygwin.
    N)IS_WIN_screen_shape_windows_screen_shape_tputIS_NIX_screen_shape_linux)_screen_shapes    r   _screen_shape_wrapperr     s4    
 M /- .M ,+r   c                 ^   	 dd l }ddlm}m} ddlm}m} d}| |k    rd}n| |k    rd}|j                            |          } |d          }|j        	                    ||          }	|	r1|
                    d|j                  \  }
}}}}}}}}}}||z
  ||z
  fS n# t          $ r Y nw xY wd	S )
Nr   )create_string_bufferwindll)stdinstdoutiii   hhhhHhhhhhhNN)structctypesr   r   sysr   r   kernel32GetStdHandleGetConsoleScreenBufferInfounpackrawr0   )r   r   r   r   r   r   	io_handlehcsbir   _bufx_bufy_curx_cury_wattrlefttoprightbottom_maxx_maxys                        r   r   r   )  s   77777777%%%%%%%%	;;II6\\IO((33##B''o88DAA 	.#]]=$(CCUE5%sE6E4<#--	.    :s   BB 
B*)B*c                  ^    	 ddl ddlm fddD             S # t          $ r Y nw xY wdS )zcygwin xterm (windows)r   N)
check_callc           
      r    g | ]3}t                               d |z                                 dz
  4S )ztput rK   )intsplit)r   r   r   shlexs     r   
<listcomp>z&_screen_shape_tput.<locals>.<listcomp>F  sP     , , , JJu{{7Q;778899A= , , ,r   )colslinesr   )r   
subprocessr   r0   )rL   r   r   s    @@r   r   r   A  sy    )))))), , , , ,*, , , 	,   :s    
**c                    	 ddl m } ddlm} ddlm} 	  |d || |d                    d d         \  }}||fS # t
          $ r) 	 d d	D             cY S # t          t          f$ r Y Y d
S w xY ww xY w# t          $ r Y d
S w xY w)Nr   )array)ioctl)
TIOCGWINSZr   z           c                 R    g | ]$}t          t          j        |                   d z
  %S )rK   )r   r=   r>   r   s     r   r   z'_screen_shape_linux.<locals>.<listcomp>[  s+    MMM1BJqM**Q.MMMr   )COLUMNSLINESr   )	r   fcntlr   termiosr   r0   r3   r   ImportError)r   r   r   r   rowsr   s         r   r   r   M  s    "&&&&&&	"sEE"j($C$CDDRaRHJD$: 	" 	" 	""MM8LMMMMMMj) " " "!zzz"	"    zzs>   A1 %; 
A.AA.A*%A.)A**A.1
A?>A?c                      t          dt          d           t                      sdS t                    fd            } | S )zd
    Return a function which returns console width.
    Supported: linux, osx, windows, cygwin.
    zQUse `_screen_shape_wrapper()(file)[0]` instead of `_environ_cols_wrapper()(file)`r   )
stacklevelNc                 &     |           d         S rE   r(   )r   shapes    r   r   z$_environ_cols_wrapper.<locals>.innerk  s    uRyy|r   )r	   DeprecationWarningr   r   )r   r   s    @r   _environ_cols_wrapperr   `  sr    
 	 
,-?AO O O O!##E t
5\\    \ Lr   c                  8    t           j        dk    r	t          dndS )NntrC   z[A)r=   rj   coloramar(   r   r   _term_move_upr  r  s    'T//(822xGr   c                 N    t          d t          |           D                       S )Nc              3   @   K   | ]}t          |          d v rdndV  dS )FWr   rK   Nr   )r   chs     r   r   z_text_width.<locals>.<genexpr>w  s9      IIB$R((D00qqaIIIIIIr   )sumr   )r   s    r   _text_widthr  v  s%    II#a&&IIIIIIr   c                 R    t          t                              d|                     S )zp
    Returns the real on-screen length of a string which may contain
    ANSI control codes and wide chars.
    rC   )r  RE_ANSIsub)r   s    r   disp_lenr  z  s     
 w{{2t,,---r   c                    t          |           t          |           k    r
| d|         S t          t                              |                     }t          |           |k    r| dd         } t          |           |k    |rCt          t                              |                     r|                     d          r| n| dz   S | S )zB
    Trim a string which may contain ANSI control characters.
    Nz[0m)r<   r  boolr	  searchendswith)r   lengthansi_presents      r   	disp_trimr    s     4yyHTNN""GVG}t,,--L
4..6
!
!CRCy 4..6
!
! FW^^D1122 F}}Y//EttTI5EEKr   r   )6rQ   r=   rer   	functoolsr   r   r   inspectr   unicodedatar   warningsr	   weakrefr   rangechrr   _range_unich_unicode_basestringplatformr   anyr   r   compiler	  r   r   init	TypeErrorr@   rr   rB   rS   rf   rz   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r(   r   r   <module>r%     s|    
			 				 



 3 3 3 3 3 3 3 3 3 3       ( ( ( ( ( (            (-sC(< %+		??+>???	?	?	QQ+PQQQ	Q	Q
"*,
-
-  	E"""""       HHHA A A AH    F                  *2 2 2 2 2F 2 2 22B B B B B- B B B((B (B (B (B (B- (B (B (BV? ? ? ? ? ? ? ?4             0	 	 	" " "&  $H H HJ J J. . .    s$   >	B5 	B B21B25B?>B?