docs: def config_from_file(config_file_path, config_role):
          """
          Create a configuration dictionary from a config file section.  This dictionary is what the TruStar
          class constructor ultimately requires.
  
          :param config_file_path: The path to the config file.
          :param config_role: The section within the file to use.
          :return: The configuration dictionary.
          """
  
          # read config file depending on filetype, parse into dictionary
          ext = os.path.splitext(config_file_path)[-1]
          if ext in ['.conf', '.ini']:
              config_parser = configparser.RawConfigParser()
              config_parser.read(config_file_path)
              roles = dict(config_parser)
          elif ext in ['.json', '.yml', '.yaml']:
              with open(config_file_path, 'r') as f:
                  roles = yaml.safe_load(f)
          else:
              raise IOError("Unrecognized filetype for config file '%s'" % config_file_path)
  
          # ensure that config file has indicated role
          if config_role in roles:
              config = dict(roles[config_role])
          else:
              raise KeyError("Could not find role %s" % config_role)
  
          # parse enclave ids
          if 'enclave_ids' in config:
              # if id has all numeric characters, will be parsed as an int, so convert to string
              if isinstance(config['enclave_ids'], int):
                  config['enclave_ids'] = str(config['enclave_ids'])
              # split comma separated list if necessary
              if isinstance(config['enclave_ids'], string_types):
                  config['enclave_ids'] = config['enclave_ids'].split(',')
              elif not isinstance(config['enclave_ids'], list):
                  raise Exception("'enclave_ids' must be a list or a comma-separated list")
              # strip out whitespace
              config['enclave_ids'] = [str(x).strip() for x in config['enclave_ids'] if x is not None]
          else:
              # default to empty list
              config['enclave_ids'] = []
  
          return config