class_docstr: Manages the recording of event invocations and provides simple event routing functionality.
  There is one EventService instance in every agent-environment loop, provided by the AgentEnvironmentContext.
  
  Within the environment the richer routing functionality provided by PubSub should be utilized, rather than
  directly interacting with this class.
class_docstr_tok: ["Manages","the","recording","of","event","invocations","and","provides","simple","event","routing","functionality",".","There","is","one","EventService","instance","in","every","agent-environment","loop",",","provided","by","the","AgentEnvironmentContext",".","Within","the","environment","the","richer","routing","functionality","provided","by","PubSub","should","be","utilized",",","rather","than","directly","interacting","with","this","class","."]
docstr: Notify the event service about a new event. This is invoked by the event topic proxies.
  
  :param event The event to be added.
docstr_tok: ["Notify","the","event","service","about","a","new","event",".","This","is","invoked","by","the","event","topic","proxies",".",":","param","event","The","event","to","be","added","."]
code: def notify_event(self, event: EventRecord) -> None:
      """
      Notify the event service about a new event. This is invoked by the event topic proxies.
  
      :param event The event to be added.
      """
      topic = self.topics[event.interface_class]
      topic.events.append(event)
  
      if topic.scope:
          topic.scope.notify_event(event)
  
file_path: maze/maze/core/events/event_service.py
imports: from abc import ABC, abstractmethod
  from collections import deque
  from typing import Dict, TypeVar, Type, Set, Generator
  from maze.core.events.event_record import EventRecord
  from maze.core.events.event_topic_factory import event_topic_factory
label_desc: Use image node_id 2 for calling the EventService obj's underlying member method code with example usage: obj.notify_event(event) without return types