class_docstr: Centralized config for handling configuration loading/parsing
class_docstr_tok: ["Centralized","config","for","handling","configuration","loading\/parsing"]
docstr: Set an additional context dictionary specific to each app
docstr_tok: ["Set","an","additional","context","dictionary","specific","to","each","app"]
code: def context(self, context):
      """Set an additional context dictionary specific to each app"""
      if self._context == context:
          LOGGER.debug(
              "App context is unchanged and will not be saved: %s",
              context,
          )
          return
  
      if not isinstance(context, dict):
          raise AppStateError(
              "Unable to set context, must be a dict: {}".format(
                  context
              )
          )
  
      LOGGER.debug("Setting context to: %s", context)
  
      self._context = context
      self._save_state()
  
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 26 for calling the AppConfig obj's underlying member method code with example usage: obj.context(context) without return types