class_docstr: Centralized config for handling configuration loading/parsing
class_docstr_tok: ["Centralized","config","for","handling","configuration","loading\/parsing"]
docstr: Get the interval at which this function is executing. This translates
  an AWS Rate Schedule Expression ('rate(2 hours)') into a second interval
docstr_tok: ["Get","the","interval","at","which","this","function","is","executing",".","This","translates","an","AWS","Rate","Schedule","Expression","(","'rate","(","2","hours",")","'",")","into","a","second","interval"]
code: def _evaluate_interval(self):
      """Get the interval at which this function is executing. This translates
      an AWS Rate Schedule Expression ('rate(2 hours)') into a second interval
      """
      rate_match = AWS_RATE_RE.match(self._schedule)
  
      if not rate_match:
          raise AppConfigError(
              "Invalid 'rate' interval value: "
              "{}".format(self._schedule)
          )
  
      value = rate_match.group(2) or rate_match.group(4)
      unit = rate_match.group(3) or rate_match.group(5).replace("s", "")
  
      translate_to_seconds = {
          "minute": 60,
          "hour": 60 * 60,
          "day": 60 * 60 * 24,
      }
  
      interval = int(value) * translate_to_seconds[unit]
  
      LOGGER.debug("Evaluated rate interval: %d seconds", interval)
  
      # Get the total seconds that this rate evaluates to
      return interval
  
imports: import calendar
  from datetime import datetime
  import json
  import re
  import time
  import backoff
  import boto3
  from botocore import client
  from botocore.exceptions import ClientError
  from streamalert.apps.exceptions import AppAuthError, AppConfigError, AppStateError
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 18 for calling the AppConfig obj's underlying member method code with example usage: obj._evaluate_interval() and returns: interval