class_docstr: Rule engine to processes rules
class_docstr_tok: ["Rule","engine","to","processes","rules"]
code: def __init__(self, *rule_paths):
      RulesEngine._config = RulesEngine._config or load_config()
      RulesEngine._threat_intel = (
          RulesEngine._threat_intel
          or ThreatIntel.load_from_config(self.config)
      )
      # Instantiate the alert forwarder to handle sending alerts to the alert processor
      RulesEngine._alert_forwarder = (
          RulesEngine._alert_forwarder or AlertForwarder()
      )
  
      # Load the lookup tables
      RulesEngine._lookup_tables = LookupTables.get_instance(
          config=self.config
      )
  
      # If no rule import paths are specified, default to the config
      rule_paths = rule_paths or [
          item
          for location in {"rule_locations", "matcher_locations"}
          for item in self.config["global"]["general"][location]
      ]
  
      import_folders(*rule_paths)
  
      self._rule_stat_tracker = RuleStatisticTracker(
          "STREAMALERT_TRACK_RULE_STATS" in env,
          "LAMBDA_RUNTIME_DIR" in env,
      )
      self._required_outputs_set = resources.get_required_outputs()
      self._load_rule_table(self.config)
  
imports: from datetime import datetime, timedelta
  from os import environ
  from streamalert.shared.publisher import AlertPublisherRepository
  from streamalert.rules_engine.alert_forwarder import AlertForwarder
  from streamalert.rules_engine.threat_intel import ThreatIntel
  from streamalert.shared import resources, RULES_ENGINE_FUNCTION_NAME
  from streamalert.shared.alert import Alert
  from streamalert.shared.config import load_config
  from streamalert.shared.importer import import_folders
  from streamalert.shared.logger import get_logger
  from streamalert.shared.lookup_tables.core import LookupTables
  from streamalert.shared.metrics import MetricLogger
  from streamalert.shared.rule import Rule
  from streamalert.shared.rule_table import RuleTable
  from streamalert.shared.stats import RuleStatisticTracker
label_desc: Use image node_id 1 to create a new RulesEngine object  with example: obj = RulesEngine()