From a1295d16b35cdee4ef6cf5af9dd1d3a17c1a88c8 Mon Sep 17 00:00:00 2001 From: Zach Dwiel Date: Fri, 7 Sep 2018 15:40:45 -0400 Subject: [PATCH] first pass that transition collection interface --- .../non_episodic/transition_collection.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 rl_coach/memories/non_episodic/transition_collection.py diff --git a/rl_coach/memories/non_episodic/transition_collection.py b/rl_coach/memories/non_episodic/transition_collection.py new file mode 100644 index 0000000..d721539 --- /dev/null +++ b/rl_coach/memories/non_episodic/transition_collection.py @@ -0,0 +1,35 @@ +from rl_coach.core_types import Transition + + +class TransitionCollection(object): + """ + Simple python implementation of transitions collection non-episodic memories + are constructed on top of. + """ + def __init__(self): + super(TransitionCollection, self).__init__() + + def append(self, transition): + pass + + def extend(self, transitions): + for transition in transitions: + self.append(transition) + + def __len__(self): + pass + + def __del__(self, range: slice): + # NOTE: the only slice used is the form: slice(None, n) + # NOTE: if it is easier, what we really want here is the ability to + # constrain the size of the collection. + pass + + def __getitem__(self, key: int): + # NOTE: we can switch to a method which fetches multiple items at a time + # if that would significantly improve performance + pass + + def __iter__(self): + # this is not high priority + pass