class_docstr: A replay buffer that stores episodes of transitions. The additional structure allows performing various
  calculations of total return and other values that depend on the sequential behavior of the transitions
  in the episode.
class_docstr_tok: ["A","replay","buffer","that","stores","episodes","of","transitions",".","The","additional","structure","allows","performing","various","calculations","of","total","return","and","other","values","that","depend","on","the","sequential","behavior","of","the","transitions","in","the","episode","."]
docstr: Store a new transition in the memory. If the transition game_over flag is on, this closes the episode and
  creates a new empty episode.
  Warning! using the episodic memory by storing individual transitions instead of episodes will use the default
  Episode class parameters in order to create new episodes.
  :param transition: a transition to store
  :return: None
code: def store(self, transition: Transition) -> None:
      """
      Store a new transition in the memory. If the transition game_over flag is on, this closes the episode and
      creates a new empty episode.
      Warning! using the episodic memory by storing individual transitions instead of episodes will use the default
      Episode class parameters in order to create new episodes.
      :param transition: a transition to store
      :return: None
      """
      self.assert_not_frozen()
  
      # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition.
      super().store(transition)
  
      self.reader_writer_lock.lock_writing_and_reading()
  
      if len(self._buffer) == 0:
          self._buffer.append(Episode(n_step=self.n_step))
      last_episode = self._buffer[-1]
      last_episode.insert(transition)
      self.transitions.append(transition)
      self._num_transitions += 1
      if transition.game_over:
          self.close_last_episode(False)
  
      self._enforce_max_length()
  
      self.reader_writer_lock.release_writing_and_reading()
  
imports: import ast
  import pickle
  from copy import deepcopy
  import math
  import pandas
  from typing import List, Tuple, Union
  import numpy
  import random
  from rl_coach.core_types import Transition, Episode
  from rl_coach.filters.filter import InputFilter
  from rl_coach.logger import screen
  from rl_coach.memories.memory import Memory, MemoryGranularity, MemoryParameters
  from rl_coach.utils import ReaderWriterLock, ProgressBar
  from rl_coach.core_types import CsvDataset
label_desc: Use image node_id 18 for calling the EpisodicExperienceReplay obj's underlying member method code with example usage: obj.store(transition) without return types