
    nd&%                     d   d Z ddlZddl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 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 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  Z+d! Z,d" Z-d# Z.d$ Z/d% Z0dS )&z*
General helpers required for `tqdm.std`.
    N)wrapseast_asian_width)warnproxyc              #   J   K   | ]}t                               |          V  d S NCUR_OS
startswith.0is     *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      FFaVq!!FFFFFFr   )aixlinuxdarwinz\x1b\[[;\d]*[A-Za-z]F)stripc                        e Zd ZdZddZd ZdS )FormatReplacezV
    >>> a = FormatReplace('something')
    >>> "{:5d}".format(a)
    'something'
     c                 "    || _         d| _        d S Nr   )replaceformat_called)selfr    s     r   __init__zFormatReplace.__init__'   s    r   c                 0    | xj         dz  c_         | j        S )N   )r!   r    )r"   _s     r   
__format__zFormatReplace.__format__+   s    a|r   N)r   )__name__
__module____qualname____doc__r#   r'    r   r   r   r   !   sA         
       r   r   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r"   others     r   __lt__zComparable.__lt__2   s    %"333r   c                     | |k     p| |k    S r
   r,   r2   s     r   __le__zComparable.__le__5   s    u0$%-0r   c                 "    | j         |j         k    S r
   r0   r2   s     r   __eq__zComparable.__eq__8   s    5#444r   c                     | |k     S r
   r,   r2   s     r   __ne__zComparable.__ne__;       5=  r   c                     | |k     S r
   r,   r2   s     r   __gt__zComparable.__gt__>   r;   r   c                     | |k      S r
   r,   r2   s     r   __ge__zComparable.__ge__A   s    %<r   N)
r(   r)   r*   r+   r4   r6   r8   r:   r=   r?   r,   r   r   r.   r.   0   st        ;;4 4 41 1 15 5 5! ! !! ! !         r   r.   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )ObjectWrapperc                 ,    t          | j        |          S r
   )getattr_wrappedr"   names     r   __getattr__zObjectWrapper.__getattr__F   s    t}d+++r   c                 .    t          | j        ||          S r
   )setattrrD   r"   rF   values      r   __setattr__zObjectWrapper.__setattr__I   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)objectrG   AttributeErrorrC   rE   s     r   wrapper_getattrzObjectWrapper.wrapper_getattrL   sN    	'%%dD111 	' 	' 	'4&&&&&	's    ::c                 :    t                               | ||          S )z7Actual `self.setattr` rather than self._wrapped.setattr)rN   rL   rJ   s      r   wrapper_setattrzObjectWrapper.wrapper_setattrS   s    !!$e444r   c                 2    |                      d|           dS )z4
        Thin wrapper around a given object
        rD   N)rR   )r"   wrappeds     r   r#   zObjectWrapper.__init__W   s      	Z11111r   N)r(   r)   r*   rG   rL   rP   rR   r#   r,   r   r   rA   rA   E   s_        , , ,3 3 3' ' '5 5 52 2 2 2 2r   rA   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                     t          t          |                               |           |                     d|           d S )Nencoding)superrV   r#   rR   )r"   rT   rX   	__class__s      r   r#   zSimpleTextIOWrapper.__init__d   s>    !4((11':::Z22222r   c                     | j                             |                    |                     d                              S )zP
        Encode `s` and pass to the wrapped object's `.write()` method.
        rX   )rD   writeencoderP   )r"   ss     r   r\   zSimpleTextIOWrapper.writeh   s4     }""188D,@,@,L,L#M#MNNNr   c                 6    | j         t          |d|          k    S NrD   rD   rC   r2   s     r   r8   zSimpleTextIOWrapper.__eq__n       }z5 A AAAr   )r(   r)   r*   r+   r#   r\   r8   __classcell__rZ   s   @r   rV   rV   ^   sj         
3 3 3 3 3O O OB B B B B B Br   rV   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efunc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   )rw   rv   rx   s   `` r   disable_on_exceptionz(DisableOnWriteError.disable_on_exceptionv   s8    
 m,,	 	 	 	 	 	" r   c                 X   t          t          |                               |           t          |d          r/|                     d|                     ||j                             t          |d          r1|                     d|                     ||j                             d S d S )Nr\   flush)rY   rf   r#   hasattrrR   ry   r\   r{   )r"   rT   rw   rZ   s      r   r#   zDisableOnWriteError.__init__   s    !4((11':::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`   ra   r2   s     r   r8   zDisableOnWriteError.__eq__   rb   r   )	r(   r)   r*   r+   staticmethodry   r#   r8   rc   rd   s   @r   rf   rf   r   sx            \2R R R R RB B B B B B Br   rf   c                         e Zd Zd fd	Z xZS )CallbackIOWrapperreadc                 z   t          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
   len)datars   rt   rescallbackrv   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   )rs   rt   r   r   rv   s      r   r   z(CallbackIOWrapper.__init__.<locals>.read   s2    tT,V,,T###r   z Can only wrap read/write methodsN)rY   r   r#   rC   r   rR   KeyError)r"   r   streammethodr\   r   rv   rZ   s    `    @r   r#   zCallbackIOWrapper.__init__   s    
 	&&//777vv&&W 	?4[[     [   %00000v 	?4[[     [   .....=>>>r   )r   )r(   r)   r*   r#   rc   rd   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]   UnicodeEncodeError	Exceptionlowerr   )rX   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   rX   rO   )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)
isinstancerr   ordr   )r^   cs     r   	_is_asciir      sT    !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      s6    
 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rawr   )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 r%   )intsplit)r   r   r   shlexs     r   
<listcomp>z&_screen_shape_tput.<locals>.<listcomp>  sP     , , , JJu{{7Q;778899A= , , ,r   )colslinesr   )r   
subprocessr   r   )r&   r   r   s    @@r   r   r      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 )r%   )r   osenvironr   s     r   r   z'_screen_shape_linux.<locals>.<listcomp>  s+    MMM1BJqM**Q.MMMr   )COLUMNSLINESr   )	r   fcntlr   termiosr   r   r   rq   ImportError)r   r   r   r   rowsr   s         r   r   r     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 r   r,   )r   shapes    r   rx   z$_environ_cols_wrapper.<locals>.inner&  s    uRyy|r   )r   DeprecationWarningr   r   )rx   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ntr   z[A)r   rF   coloramar,   r   r   _term_move_upr   -  s    'T/GG22xGr   c                 N    t          d t          |           D                       S )Nc              3   @   K   | ]}t          |          d v rdndV  dS )FWr   r%   Nr   )r   chs     r   r   z_text_width.<locals>.<genexpr>2  s9      IIB$R((D07qqaIIIIIIr   )sumrr   )r^   s    r   _text_widthr   1  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.
    r   )r   RE_ANSIsub)r   s    r   disp_lenr   5  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   )1r+   r   rer   	functoolsr   unicodedatar   warningsr   weakrefr   rangechrrr   _range_unich_unicode_basestringplatformr   anyr   r   compiler   r   r   init	TypeErrorrN   r   r.   rA   rV   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r   r   <module>r     sE    
			 				 



       ( ( ( ( ( (            (-sC(< %+		??+>???	?	?	FF+EFFF	F	F
"*,
-
-  	E"""""       HHH    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$   4	B+ ?B B('B(+B54B5