
    &`i                     h    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 G d d                      Z	dS )    N)Optional)OldAPIStack)warn_replay_capacity)SampleBatchTypec                   R    e Zd ZdZddedee         fdZdeddfdZ	defd	Z
d
 ZdS )SimpleReplayBufferz0Simple replay buffer that operates over batches.N	num_slotsreplay_proportionc                 0    || _         g | _        d| _        dS )zrInitialize SimpleReplayBuffer.

        Args:
            num_slots: Number of batches to store in total.
        r   N)r	   replay_batchesreplay_index)selfr	   r
   s      r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/rllib/execution/replay_ops.py__init__zSimpleReplayBuffer.__init__   s!     #     sample_batchreturnc                 &   t          || j                   | j        dk    rot          | j                  | j        k     r| j                            |           d S || j        | j        <   | xj        dz  c_        | xj        | j        z  c_        d S d S )N)item	num_itemsr      )r   r	   lenr   appendr   )r   r   s     r   	add_batchzSimpleReplayBuffer.add_batch   s    ,$.IIII>A4&''$.88#**<888889E#D$56!!Q&!!!!T^3!!!! r   c                 4    t          j        | j                  S N)randomchoicer   r   s    r   replayzSimpleReplayBuffer.replay!   s    }T0111r   c                 *    t          | j                  S r   )r   r   r   s    r   __len__zSimpleReplayBuffer.__len__$   s    4&'''r   r   )__name__
__module____qualname____doc__intr   floatr   r   r   r    r"    r   r   r   r   	   s        :: # (5/    4o 4$ 4 4 4 42 2 2 2 2( ( ( ( (r   r   )
r   typingr   ray.rllib.utils.annotationsr   ,ray.rllib.utils.replay_buffers.replay_bufferr   ray.rllib.utils.typingr   r   r)   r   r   <module>r.      s           3 3 3 3 3 3 M M M M M M 2 2 2 2 2 2 ( ( ( ( ( ( ( ( ( (r   