
    Dh81                        U d dl mZ d dlZd dlZd dlZd dlZd dl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 d dlm
Z
 d dlmZ d dlmZ d dlmZmZmZ d d	lmZmZmZ e
j8                  rd
dlmZmZ eJ eJ eJ eJ eJ  e
j@                  de
jB                        Z"e#d	 	 	 	 	 ddZ$ddZ%ddZ& G d d      Z' G d d      Z( G d de)      Z* ejV                  e,      Z-de.d<    e(       Z/ ej`                  e/jb                         y)    )annotationsN)TracebackType)IterableIterator)types)
scale_1024)get_terminal_size)epochformat_timetimedelta_to_seconds)baseenvterminal   )ProgressBarProgressBarMixinBaseStringT)bounddefaultc                    |D ]L  }|t        |t        j                        rt        |      c S t        |t              st	        |      c S |c S  | t
        u rt        d      | S )a  
    Convert timedeltas and seconds as int to seconds as float while coalescing.

    >>> deltas_to_seconds(datetime.timedelta(seconds=1, milliseconds=234))
    1.234
    >>> deltas_to_seconds(123)
    123.0
    >>> deltas_to_seconds(1.234)
    1.234
    >>> deltas_to_seconds(None, 1.234)
    1.234
    >>> deltas_to_seconds(0, 1.234)
    0.0
    >>> deltas_to_seconds()
    Traceback (most recent call last):
    ...
    ValueError: No valid deltas passed to `deltas_to_seconds`
    >>> deltas_to_seconds(None)
    Traceback (most recent call last):
    ...
    ValueError: No valid deltas passed to `deltas_to_seconds`
    >>> deltas_to_seconds(default=0.0)
    0.0
    z-No valid deltas passed to `deltas_to_seconds`)
isinstancedatetime	timedeltar   float
ValueError)r   deltasdeltas      s/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/progressbar/utils.pydeltas_to_secondsr    "   sl    8  =eX//0'..E5)<L *HII     c                    t        | t              r4t        t        j                  d      dz   }t	        j
                  |d|       S t        | t              rt	        j
                  dd|       S t        d|       )a>  
    Return the `value` without ANSI escape codes.

    >>> no_color(b'[1234]abc')
    b'abc'
    >>> str(no_color('[1234]abc'))
    'abc'
    >>> str(no_color('[1234]abc'))
    'abc'
    >>> no_color(123)
    Traceback (most recent call last):
    ...
    TypeError: `value` must be a string or bytes, got 123
    asciis
   \[.*?[@-~]r!   z\[.*?[@-~] z'`value` must be a string or bytes, got )r   bytesr   ESCresubstr	TypeError)valuepatterns     r   no_colorr-   O   sg     %x||W5FvvgsE**	E3	vv'U33A%KLLr!   c                *    t        t        |             S )z
    Return the length of `value` without ANSI escape codes.

    >>> len_color(b'[1234]abc')
    3
    >>> len_color('[1234]abc')
    3
    >>> len_color('[1234]abc')
    3
    )lenr-   )r+   s    r   	len_colorr0   g   s     xr!   c                  8   e Zd ZU ded<   ded<   ded<   ded<   d	Zded
<   	 	 d"	 	 	 	 	 	 	 d#dZd$dZd%dZd%dZd%dZ	d&dZ
d'dZd(dZd)d*dZd(dZd)d+dZd)d,dZej$                  fd-dZd(dZd'dZd.d/dZd(dZd0dZd%dZd1dZd2d Z	 	 	 	 	 	 	 	 d3d!Zy)4
WrappingIOzio.StringIObufferbase.IOtargetbool	capturingset	listenersFneeds_clearNc                    t        j                         | _        || _        || _        |xs
 t               | _        d| _        y )NF)ioStringIOr3   r5   r7   r8   r9   r:   )selfr5   r7   r9   s       r   __init__zWrappingIO.__init__|   s5     kkm""+ce r!   c                   d}| j                   rL|| j                  j                  |      z  }d|v r(d| _        | j                  D ]  }|j                           |S || j                  j                  |      z  }d|v r| j                          |S )Nr   
T)r7   r3   writer:   r9   updater5   flush_target)r>   r+   retlisteners       r   rB   zWrappingIO.write   s    >>4;;$$U++Cu}#'  $ &HOO%& 
	 4;;$$U++Cu}!!#
r!   c                8    | j                   j                          y N)r3   flushr>   s    r   rI   zWrappingIO.flush   s    r!   c                ,   | j                   j                         x}rh| j                          | j                  j	                  |       | j                   j                  d       | j                   j                  d       d| _        | j                          y )Nr   F)	r3   getvaluerI   r5   rB   seektruncater:   rD   )r>   r+   s     r   _flushzWrappingIO._flush   so    KK((**5*JJLKKe$KKQKK  #$D 	r!   c                    | j                   j                  s3t        | j                   dd       r| j                   j                          y y y )NrI   )r5   closedgetattrrI   rJ   s    r   rD   zWrappingIO.flush_target   s7    {{!!gdkk7D&IKK 'J!r!   c                    | S rH    rJ   s    r   	__enter__zWrappingIO.__enter__   s    r!   c                6    | j                   j                         S rH   )r5   filenorJ   s    r   rW   zWrappingIO.fileno       {{!!##r!   c                6    | j                   j                         S rH   )r5   isattyrJ   s    r   rZ   zWrappingIO.isatty   rX   r!   c                8    | j                   j                  |      S rH   )r5   read)r>   ns     r   r\   zWrappingIO.read   s    {{""r!   c                6    | j                   j                         S rH   )r5   readablerJ   s    r   r_   zWrappingIO.readable       {{##%%r!   c                8    | j                   j                  |      S rH   )r5   readline)r>   limits     r   rb   zWrappingIO.readline   s    {{##E**r!   c                8    | j                   j                  |      S rH   )r5   	readlines)r>   hints     r   re   zWrappingIO.readlines   s    {{$$T**r!   c                :    | j                   j                  ||      S rH   )r5   rM   )r>   offsetwhences      r   rM   zWrappingIO.seek   s    {{//r!   c                6    | j                   j                         S rH   )r5   seekablerJ   s    r   rk   zWrappingIO.seekable   r`   r!   c                6    | j                   j                         S rH   )r5   tellrJ   s    r   rm   zWrappingIO.tell   s    {{!!r!   c                8    | j                   j                  |      S rH   )r5   rN   )r>   sizes     r   rN   zWrappingIO.truncate   s    {{##D))r!   c                6    | j                   j                         S rH   )r5   writablerJ   s    r   rq   zWrappingIO.writable   r`   r!   c                8    | j                   j                  |      S rH   )r5   
writelines)r>   liness     r   rs   zWrappingIO.writelines   s    {{%%e,,r!   c                X    | j                          | j                  j                          y rH   )rI   r5   closerJ   s    r   rv   zWrappingIO.close   s    

r!   c                6    | j                   j                         S rH   )r5   __next__rJ   s    r   rx   zWrappingIO.__next__   r`   r!   c                6    | j                   j                         S rH   )r5   __iter__rJ   s    r   rz   zWrappingIO.__iter__   r`   r!   c                $    | j                          y rH   )rv   )r>   _WrappingIO__t_WrappingIO__value_WrappingIO__tracebacks       r   __exit__zWrappingIO.__exit__   s     	

r!   )FN)r5   r4   r7   r6   r9   z&types.Optional[types.Set[ProgressBar]]returnNone)r+   r)   r   intr   r   r   r2   )r   r   r   r6   ))r]   r   r   r)   )rc   r   r   r)   )rf   r   r   z	list[str])rh   r   ri   r   r   r   rH   )ro   ztypes.Optional[int]r   r   )rt   zIterable[str]r   r   )r   r)   )r   zIterator[str])r|   ztype[BaseException] | Noner}   zBaseException | Noner~   zTracebackType | Noner   r   )__name__
__module____qualname____annotations__r:   r?   rB   rI   rO   rD   rU   rW   rZ   r\   r_   rb   re   osSEEK_SETrM   rk   rm   rN   rq   rs   rv   rx   rz   r   rT   r!   r   r2   r2   u   s    OONK
  <@	
!
! 
! :	
!
 

!	 $$#&++ /1kk 0&"*&-&&' & *	
 
r!   r2   c                     e Zd ZU dZded<   ded<   ded<   dZded	<   dZded
<   dZded<   dZded<   ded<   ddZ	d d!dZ
d d!dZddZd"d#dZd$dZd$dZddZddZd"d#dZddZddZd%dZddZ	 	 	 	 	 	 	 	 d&dZy)'StreamWrapperz Wrap stdout and stderr globally.zbase.TextIO | WrappingIOstdoutstderrzVtypes.Callable[[types.Type[BaseException], BaseException, TracebackType | None], None]original_excepthookr   r   wrapped_stdoutwrapped_stderrwrapped_excepthookr7   r8   r9   c                   t         j                  x| _        | _        t         j                  x| _        | _        t         j
                  | _        d| _        d| _        d| _	        d| _
        t               | _        t        j                  dd      r| j                          t        j                  dd      r| j!                          y y )Nr   WRAP_STDOUTFr   WRAP_STDERR)sysr   original_stdoutr   original_stderr
excepthookr   r   r   r   r7   r8   r9   r   env_flagwrap_stdoutwrap_stderrrJ   s    r   r?   zStreamWrapper.__init__   s    -0ZZ7d*-0ZZ7d*#&>> "#<<u5<<u5 6r!   Nc                    |r| j                   j                  |       | xj                  dz  c_        | j                          y Nr   )r9   addr7   update_capturingr>   bars     r   start_capturingzStreamWrapper.start_capturing  s1    NNs#!r!   c                    |r=t        j                  t              5  | j                  j	                  |       d d d        | xj
                  dz  c_        | j                          y # 1 sw Y   /xY wr   )
contextlibsuppressKeyErrorr9   remover7   r   r   s     r   stop_capturingzStreamWrapper.stop_capturing  sV    $$X. +%%c*+ 	!	+ +s   A&&A/c                $   t        | j                  t              r| j                  dkD  | j                  _        t        | j                  t              r| j                  dkD  | j                  _        | j                  dk  r| j                          y y )Nr   )r   r   r2   r7   r   rI   rJ   s    r   r   zStreamWrapper.update_capturing  sb    dkk:.$(NNQ$6DKK!dkk:.$(NNQ$6DKK!>>QJJL r!   c                N    |r| j                          |r| j                          y y rH   )r   r   r>   r   r   s      r   wrapzStreamWrapper.wrap  s%     r!   c                    | j                          | j                  s1t        | j                  | j                        x| _        t        _        | xj                  dz  c_        t        j
                  S N)r9   r   )wrap_excepthookr   r2   r   r9   r   r   rJ   s    r   r   zStreamWrapper.wrap_stdout&  Y    ""'1$$..( DK#* 	q zzr!   c                    | j                          | j                  s1t        | j                  | j                        x| _        t        _        | xj                  dz  c_        t        j
                  S r   )r   r   r2   r   r9   r   r   rJ   s    r   r   zStreamWrapper.wrap_stderr2  r   r!   c                r    | j                   r+| xj                   dz  c_         | j                  t        _        y y r   )r   r   r   r   rJ   s    r   unwrap_excepthookzStreamWrapper.unwrap_excepthook>  s.    ""##q(#!55CN #r!   c                    | j                   s@t        j                  d       | xj                   dz  c_         | j                  t        _        y y )Nzwrapping excepthookr   )r   loggerdebugr   r   rJ   s    r   r   zStreamWrapper.wrap_excepthookC  s9    &&LL./##q(#!__CN 'r!   c                N    |r| j                          |r| j                          y y rH   )unwrap_stdoutunwrap_stderrr   s      r   unwrapzStreamWrapper.unwrapI  s%       r!   c                    | j                   dkD  r| xj                   dz  c_         y | j                  t        _        d| _         y Nr   r   )r   r   r   r   rJ   s    r   r   zStreamWrapper.unwrap_stdoutP  6    "1$--CJ"#Dr!   c                    | j                   dkD  r| xj                   dz  c_         y | j                  t        _        d| _         y r   )r   r   r   r   rJ   s    r   r   zStreamWrapper.unwrap_stderrW  r   r!   c                j    t        | j                  dd      }t        | j                  dd      }|xs |S )Nr:   F)rR   r   r   )r>   stdout_needs_clearstderr_needs_clears      r   r:   zStreamWrapper.needs_clear^  s4    $T[[-G$T[[-G!7%77r!   c                   | j                   r5t        | j                  t              r	 | j                  j	                          | j                  r7t        | j                  t              r	 | j                  j	                          y y y # t
        j                  $ r. d| _         t        j                  dt        j                         Y w xY w# t
        j                  $ r. d| _
        t        j                  dt        j                         Y y w xY w)NFz0Disabling stdout redirection, %r is not seekablez0Disabling stderr redirection, %r is not seekable)r   r   r   r2   rO   r<   UnsupportedOperationr   warningr   r   r   rJ   s    r   rI   zStreamWrapper.flushc  s    :dkk:#F""$ :dkk:#F""$ $G ** &+#FJJ ** &+#FJJs#   B )C
 >CC
>D
Dc                J    | j                  |||       | j                          y rH   )r   rI   )r>   exc_type	exc_valueexc_tracebacks       r   r   zStreamWrapper.excepthookx  s     	  9mD

r!   r   rH   )r   zProgressBarMixinBase | Noner   r   )FF)r   r6   r   r6   r   r   r   r   )r   ztype[BaseException]r   BaseExceptionr   ztypes.TracebackType | Noner   r   )r   r   r   __doc__r   r   r   r   r7   r?   r   r   r   r   r   r   r   r   r   r   r   r:   rI   r   rT   r!   r   r   r      s    *$$$$  NCNCIsN   

6
-!$$8
*% ! 2	
 
r!   r   c                  (    e Zd ZdZddZddZddZy)	AttributeDicta"  
    A dict that can be accessed with .attribute.

    >>> attrs = AttributeDict(spam=123)

    # Reading

    >>> attrs['spam']
    123
    >>> attrs.spam
    123

    # Read after update using attribute

    >>> attrs.spam = 456
    >>> attrs['spam']
    456
    >>> attrs.spam
    456

    # Read after update using dict access

    >>> attrs['spam'] = 123
    >>> attrs['spam']
    123
    >>> attrs.spam
    123

    # Read after update using dict access

    >>> del attrs.spam
    >>> attrs['spam']
    Traceback (most recent call last):
    ...
    KeyError: 'spam'
    >>> attrs.spam
    Traceback (most recent call last):
    ...
    AttributeError: No such attribute: spam
    >>> del attrs.spam
    Traceback (most recent call last):
    ...
    AttributeError: No such attribute: spam
    c                0    || v r| |   S t        d|       NzNo such attribute: AttributeErrorr>   names     r   __getattr__zAttributeDict.__getattr__  s&    4<: #6tf!=>>r!   c                    || |<   y rH   rT   )r>   r   r+   s      r   __setattr__zAttributeDict.__setattr__  s    T
r!   c                .    || v r| |= y t        d|       r   r   r   s     r   __delattr__zAttributeDict.__delattr__  s#    4<T
 #6tf!=>>r!   N)r   r)   r   r   )r   r)   r+   r   r   r   )r   r)   r   r   )r   r   r   r   r   r   r   rT   r!   r   r   r     s    +Z??r!   r   zlogging.Loggerr   )r   z!None | datetime.timedelta | floatr   z&types.Optional[types.Type[ValueError]]r   zint | float | None)r+   r   r   r   )r+   ztypes.StringTypesr   r   )2
__future__r   atexitr   r   r<   loggingr   r'   r   r   r   typingr   r   python_utilspython_utils.convertersr   python_utils.terminalr	   python_utils.timer
   r   r   progressbarr   r   r   TYPE_CHECKINGr   r   r   TypeVarStringTypesr   r   r    r-   r0   r2   r   dictr   	getLoggerr   r   r   streamsregisterrI   rT   r!   r   <module>r      s'   "    	  	 	 
  %  . 3 F F + +6 ' ''$ $$   
%--	):):
;
 7A*.*3* *ZM0 k k\\ \~;?D ;?| +**84 4
/  r!   