o
    $i                     @   sN   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 dZ	dS )    N)Optional)OldAPIStack)warn_replay_capacity)SampleBatchTypec                   @   sP   e Zd ZdZddedee fddZdeddfd	d
Z	defddZ
dd ZdS )SimpleReplayBufferz0Simple replay buffer that operates over batches.N	num_slotsreplay_proportionc                 C   s   || _ 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    r   [/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ray/rllib/execution/replay_ops.py__init__   s   
zSimpleReplayBuffer.__init__sample_batchreturnc                 C   sj   t || jd | jdkr3t| j| jk r| j| d S || j| j< |  jd7  _|  j| j;  _d S d S )N)item	num_itemsr      )r   r   lenr	   appendr
   )r   r   r   r   r   	add_batch   s   
zSimpleReplayBuffer.add_batchc                 C   s   t | jS N)randomchoicer	   r   r   r   r   replay!   s   zSimpleReplayBuffer.replayc                 C   s
   t | jS r   )r   r	   r   r   r   r   __len__$   s   
zSimpleReplayBuffer.__len__r   )__name__
__module____qualname____doc__intr   floatr   r   r   r   r   r   r   r   r   r   	   s    

r   )
r   typingr   ray.rllib.utils.annotationsr   ,ray.rllib.utils.replay_buffers.replay_bufferr   ray.rllib.utils.typingr   r   r   r   r   r   <module>   s    