code: def get_event_list(self) -> str:
      message = ""
      if len(self._failure_events) != 0:
          failure_message = os.linesep.join(
              [
                  f"Task: {failure['task']}; Exception: {failure['exception']}"
                  for failure in self._failure_events
              ]
          )
          message += (
              "---- Failure Tasks ----" + os.linesep + failure_message
          )
      if len(self._success_events) != 0:
          success_message = os.linesep.join(self._success_events)
          message += (
              "---- Success Tasks ----" + os.linesep + success_message
          )
      if message == "":
          message = "Tasks were not executed."
      return message
  
file_path: gokart/gokart/slack/event_aggregator.py
imports: import os
  from logging import getLogger
  from typing import List, TypedDict
  import luigi
label_desc: Use image node_id 4 for calling the EventAggregator obj's underlying member method code with example usage: obj.get_event_list() and returns: message