class_docstr: Store information on generated alerts.
docstr: Return a human-readable respresentation of the stat's data
docstr_tok: ["Return","a","human-readable","respresentation","of","the","stat","'s","data"]
code: def __str__(self):
      """Return a human-readable respresentation of the stat's data"""
      info = self.__dict__.copy()
  
      info.update(
          {
              "staged_at_label": "Staged At",
              "staged_until_label": "Staged Until",
              "alert_count_label": "Alert Count",
              "alert_info_label": "Alert Info",
              "pad": 34,
          }
      )
  
      info["staged_time_label"] = (
          "Remaining Stage Time:"
          if self.staged_until > self._current_time
          else "Time Past Staging:\t"
      )
  
      staged_diff = abs(self._current_time - self.staged_until)
      info["staged_delta"] = "{}d {}h {}m".format(
          staged_diff.days,
          staged_diff.seconds // 3600,
          (staged_diff.seconds // 60) % 60,
      )
  
      info["info_link"] = (
          self._QUERY_EXECUTION_LINK_TEMPLATE.format(
              execution_id=self.execution_id
          )
          if self.execution_id
          else "n/a"
      )
  
      info["alert_count"] = (
          "unknown"
          if info["alert_count"] == -1
          else info["alert_count"]
      )
  
      # \u25E6 is unicode for a bullet
      return (
          "\u25E6 {_rule_name}\n"
          "\t- {staged_at_label}:\t\t\t\t\t{_staged_at} UTC\n"
          "\t- {staged_until_label}:\t\t\t\t\t{staged_until} UTC\n"
          "\t- {staged_time_label}\t\t{staged_delta}\n"
          "\t- {alert_count_label}:\t\t\t\t\t{alert_count}\n"
          "\t- {alert_info_label}:\t\t\t\t\t{info_link}"
      ).format(**info)
  
file_path: streamalert/streamalert/rule_promotion/statistic.py
label_desc: Use image node_id 8 for calling the StagingStatistic obj's underlying member method code with example usage: obj.__str__() and returns: str