code: def process_config(raw_path, cache_dir, cache_file, **kwargs):
      
      config = _create_cache(raw_path, cache_dir, cache_file)
      for modifier in _CONFIG_MODIFIERS:
          modifier(config, **kwargs)
      # pylint: disable=protected-access
      cache = devpipeline_configure.cache._CachedConfig(
          config, os.path.join(cache_dir, cache_file)
      )
      _handle_value_modifiers(cache)
      _add_package_options(cache)
      _write_config(cache, cache_dir)
      return cache
docs: Read a build configuration and create it, storing the result in a build
      cache.
  
      Arguments
      raw_path -- path to a build configuration
      cache_dir -- the directory where cache should be written
      cache_file -- The filename to write the cache.  This will live inside
                    cache_dir.
      **kwargs -- additional arguments used by some modifiers