class_docstr: Replay buffer for off policy learning.
  
  :param buffer_size: The maximum buffer size.
  :param seed: The random seed used for initializing the uniform random sampling in the buffer.
class_docstr_tok: ["Replay","buffer","for","off","policy","learning",".",":","param","buffer_size",":","The","maximum","buffer","size",".",":","param","seed",":","The","random","seed","used","for","initializing","the","uniform","random","sampling","in","the","buffer","."]
code: def __init__(self, buffer_size: int, seed: int):
      self._buffer_size = int(buffer_size)
      self._buffer = np.full(
          shape=(buffer_size,), fill_value=np.nan, dtype=np.object
      )
      self._buffer_idx = 0
      self._fill_state = 0
      self.cum_moving_avg_num_picks = 0.0
      self._total_samples_count = 0
      self._total_number_of_transitions = 0
      self.buffer_rng = np.random.RandomState(seed)
  
file_path: maze/maze/train/trainers/common/replay_buffer/uniform_replay_buffer.py
imports: from typing import Union, List
  import numpy
  from maze.core.annotations import override
  from maze.core.trajectory_recording.records.structured_spaces_record import StructuredSpacesRecord
  from maze.core.trajectory_recording.records.trajectory_record import SpacesTrajectoryRecord
  from maze.train.trainers.common.replay_buffer.replay_buffer import BaseReplayBuffer
label_desc: Use image node_id 1 to create a new UniformReplayBuffer object from inherited base classes: BaseReplayBuffer with example: obj = UniformReplayBuffer(buffer_size, seed)