class_docstr: Run queries to generate statistics on alerts.
docstr: Perform statistic analysis of currently staged rules
  
  Args:
      send_digest (bool): True if the staging statistics digest should be
          published, False otherwise
docstr_tok: ["Perform","statistic","analysis","of","currently","staged","rules","Args",":","send_digest","(","bool",")",":","True","if","the","staging","statistics","digest","should","be","published",",","False","otherwise"]
code: def run(self, send_digest):
      """Perform statistic analysis of currently staged rules
  
      Args:
          send_digest (bool): True if the staging statistics digest should be
              published, False otherwise
      """
      if not self._get_staging_info():
          LOGGER.debug("No staged rules to promote")
          return
  
      self._update_alert_count()
  
      self._promote_rules()
  
      if send_digest:
          publisher = StatsPublisher(
              self._config, self._athena_client, self._current_time
          )
          publisher.publish(list(self._staging_stats.values()))
      else:
          LOGGER.debug("Staging statistics digest will not be sent")
  
file_path: streamalert/streamalert/rule_promotion/promoter.py
imports: from datetime import datetime
  from streamalert.rule_promotion.publisher import StatsPublisher
  from streamalert.rule_promotion.statistic import StagingStatistic
  from streamalert.shared.utils import get_database_name
  from streamalert.shared.athena import AthenaClient
  from streamalert.shared.config import load_config
  from streamalert.shared.logger import get_logger
  from streamalert.shared.rule_table import RuleTable
label_desc: Use image node_id 4 for calling the RulePromoter obj's underlying member method code with example usage: obj.run(send_digest) without return types