class_docstr: Event aggregation object for reward customization and shaping.
class_docstr_tok: ["Event","aggregation","object","for","reward","customization","and","shaping","."]
docstr: Declare which events this reward aggregator should be notified about.
  
  Often, the current state of the environment does not provide enough information to calculate a reward. In such
  cases, the reward aggregator collects events from the environment. (E.g., was a new piece replenished during
  cutting? Did the agent attempt an invalid cut?) This method declares which events this aggregator
  should collect.
  
  By default, this returns an empty list (as for simpler cases, maze state is enough and no events are needed).
  
  For more complex scenarios, override this method and specify which interfaces are needed.
  
  :return: A list of event interface classes to listen to
docstr_tok: ["Declare","which","events","this","reward","aggregator","should","be","notified","about",".","Often",",","the","current","state","of","the","environment","does","not","provide","enough","information","to","calculate","a","reward",".","In","such","cases",",","the","reward","aggregator","collects","events","from","the","environment",".","(","E.g.",",","was","a","new","piece","replenished","during","cutting","?","Did","the","agent","attempt","an","invalid","cut","?",")","This","method","declares","which","events","this","aggregator","should","collect",".","By","default",",","this","returns","an","empty","list","(","as","for","simpler","cases",",","maze","state","is","enough","and","no","events","are","needed",")",".","For","more","complex","scenarios",",","override","this","method","and","specify","which","interfaces","are","needed",".",":","return",":","A","list","of","event","interface","classes","to","listen","to"]
code: def get_interfaces(self) -> List[Type[ABC]]:
      """
      Declare which events this reward aggregator should be notified about.
  
      Often, the current state of the environment does not provide enough information to calculate a reward. In such
      cases, the reward aggregator collects events from the environment. (E.g., was a new piece replenished during
      cutting? Did the agent attempt an invalid cut?) This method declares which events this aggregator
      should collect.
  
      By default, this returns an empty list (as for simpler cases, maze state is enough and no events are needed).
  
      For more complex scenarios, override this method and specify which interfaces are needed.
  
      :return: A list of event interface classes to listen to
      """
      return []
  
file_path: maze/maze/core/env/reward.py
imports: from abc import abstractmethod, ABC
  from typing import Union, List, Type, Optional
  import numpy
  from maze.core.annotations import override
  from maze.core.env.maze_state import MazeStateType
  from maze.core.events.pubsub import Subscriber
label_desc: Use image node_id 2 for calling the RewardAggregatorInterface obj's underlying member method code with example usage: obj.get_interfaces() and returns: list