
    STh              	           d dl mZ d dlmZ d dlmZ  edd      Z ed ddddd	d	      Z ed
ddddd	d	      Zej                  ddd      Z
dededefdZdedefdZd Zdedeeegef   fdZy)    )
namedtuple)floor)CallableTimeDisplayzQround, sec_prec, min_prec, hour_prec, prefix, round_sec_on_min, clear_sec_on_hour        g       @ F   g?gffffff@~T)prefixround_sec_on_minclear_sec_on_hoursecondsconfreturnc                    t        | |j                         } | dk  r'dj                  |j                  | |j                        S t	        | d      \  }} |dk  rE|j
                  rt        | dz        dz  } dj                  |j                  || |j                        S t	        |d      \  }}|j                  rd} dj                  |j                  ||| |j                        S )Ng      N@z	{}{:{}f}s
   z{}{:.0f}:{:0{}f}r   z{}{:.0f}:{:02.0f}:{:0{}f})
roundformatr   sec_precdivmodr   r   min_precr   	hour_prec)r   r   minuteshourss       `/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/alive_progress/utils/timing.pytime_displayr      s    GTZZ(G}!!$++wFFgs+GW}  GbL)B.G!((gwVVGS)NE7&--dkk5'7TXTbTbcc    c                 .    | dk  ryt        | t              S )Nr   ?)r   ETA)r   s    r   eta_textr!      s    |%%r   c                       fd}|S )Nc                     | z
  |z  S )N )posratelogic_totals     r   
simple_etaz!fn_simple_eta.<locals>.simple_eta&   s    c!T))r   r$   )r'   r(   s   ` r   fn_simple_etar)   %   s    * r   alphafnc              #      K   d}t        d |D              rd}t        d |D              r || }	 |} || }|| ||z
  z  z  }w)a}  Implements a generator with a simple exponential smoothing of some function.
    Given alpha and y_hat (t-1), we can calculate the next y_hat:
        y_hat = alpha * y + (1 - alpha) * y_hat
        y_hat = alpha * y + y_hat - alpha * y_hat
        y_hat = y_hat + alpha * (y - y_hat)

    Args:
        alpha: the smoothing coefficient
        fn: the function

    Returns:

    )r   c              3   &   K   | ]	  }|d k(    yw)r   Nr$   ).0xs     r   	<genexpr>z3gen_simple_exponential_smoothing.<locals>.<genexpr>;   s     !!a2g!s   r   )any)r*   r+   py_hatys        r    gen_simple_exponential_smoothingr5   ,   sf      	A
!q!
!H !q!
!FE
KF!e)$$ s
   +A	A	N)collectionsr   mathr   typingr   r   RUNEND_replacer    floatstrr   r!   r)   r5   r$   r   r   <module>r>      s    "  ?@ !Rc2ue4!Rc2ue4	ll#lMd% d{ ds d"&e & &%E %xPU@U7V %r   