
    &`iX                     D    d dl Z d dlmZ d dlmZmZ  G d d          ZdS )    N)deque)DequeTuplec                   6    e Zd ZdZdefdZdefdZd Zd ZdS )	TimeWindowAverageCalculatorzMA utility class to calculate the average of values reported in a time window.window_sc                 X    |dk    sJ || _         t                      | _        d| _        d S )Nr   )	_window_sr   _values_sum)selfr   s     y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/data/_internal/average_calculator.py__init__z$TimeWindowAverageCalculator.__init__	   s0     !||||! 4977			    valuec                     t          j                     }| j                            ||f           | xj        |z  c_        |                     |           dS )z!Report a value to the calculator.N)timer   appendr   _trim)r   r   nows      r   reportz"TimeWindowAverageCalculator.report   sJ    ikkS%L)))		U		

3r   c                     |                      t          j                               t          | j                  dk    rdS | j        t          | j                  z  S )z~Get the average of values reported in the time window,
        or None if no values reported in the last time window.
        r   N)r   r   lenr   r   )r   s    r   get_averagez'TimeWindowAverageCalculator.get_average   sM     	

49;;t|!!4y3t|,,,,r   c                 F   t          | j                  dk    r|| j        d         d         z
  | j        k    ri| j                                        \  }}| xj        |z  c_        t          | j                  dk    r#|| j        d         d         z
  | j        k    cdS dS dS dS )z6Remove the values reported outside of the time window.r   N)r   r   r
   popleftr   )r   r   _r   s       r   r   z!TimeWindowAverageCalculator._trim&   s    $,!##dl1oa.@(@4>(Q(Q|++--HAuIIII $,!##dl1oa.@(@4>(Q(Q(Q(Q####(Q(Qr   N)	__name__
__module____qualname____doc__floatr   r   r   r    r   r   r   r      so        WW   E    - - -    r   r   )r   collectionsr   typingr   r   r   r#   r   r   <module>r&      sj                  $ $ $ $ $ $ $ $ $ $r   