code: def _process_config_values(self, dict_path, values, unresolved=[]):
          
          if isinstance(values, dict):
              for k, v in values.items():
                  if not k.isupper():
                      del values[k]
                      # Flask only supports config values that are uppercase.
                      # see: http://flask.pocoo.org/docs/1.0/config/#configuring-from-files
                      continue
                  dict_path.append(''.join(['_', k])) # track our dict traversal
                  # Found a missing value, try to resolve
                  if v is None:
                      path = (''.join(dict_path))[1:]
                      resolved_value = self.resolve_missing_value(k, values, path)
                      if resolved_value is None:
                          unresolved.append(path)
                      else:
                          values[k] = resolved_value
                  # is config has value, and it's another dict, traverse it
                  elif hasattr(v, '__iter__'):
                      self._process_config_values(dict_path, v, unresolved)
                  # again, update where we are in dict traversal
                  dict_path.pop()
          elif isinstance(values, list):
              for _ in values:
                  self._process_config_values(dict_path, _, unresolved)
          return unresolved
docs: Attempts to resolve any config value that is missing (e.g. None).
  
          @param dict_path our current path as we traverse the values dict
          @param values dictionary containing configs we want to resolve
          @param unresolved keep track of config values that are missing
          @returns list containing all unresolved configs