text: class Agent:
  
      def __init__(self, decision_maker):
          self.decision_maker = decision_maker
  
      def get_decision_maker(self):
          return self.decision_maker
  
  
  """
  An abstract class for choosing an action, part of an agent.
  (An agent can have one or several of these)
  """
  class DecisionMaker:
  
      def __init__(self):
          pass
  
      def get_action(self, observation):
          pass
  
      """
      Functions for training:
      """
      def get_train_action(self, observation):
          pass
  
      def update_step(self, obs, action,new_obs, reward, done):
          pass
  
      def update_episode(self, batch_size=0):
          pass
  