def METHOD_NAME(self, input_config: InputConfig) -> TransformedCube:
    cube_config = self._cube_config
    cube_params = cube_config.to_dict()
    opener_id = input_config.opener_id
    store_params = input_config.store_params or {}
    open_params = input_config.open_params or {}
    with observe_progress('reading cube', 3) as observer:
        try:
            if input_config.store_id:
                store_instance = get_data_store_instance(
                    input_config.store_id,
                    store_params=store_params,
                    store_pool=self._store_pool
                )
                store = store_instance.store
                if opener_id is None:
                    opener_id = self._get_opener_id(
                        input_config, store
                    )
                opener = store
                open_params = dict(open_params)
                open_params['opener_id'] = opener_id
            else:
                opener = new_data_opener(opener_id)
                open_params = dict(open_params)
                open_params.update(store_params)
            open_params_schema = opener.get_open_data_params_schema(
                input_config.data_id
            )
            dataset_open_params = {
                k: v for k, v in cube_params.items()
                if k in open_params_schema.properties
            }
            observer.worked(1)
            dataset = opener.open_data(input_config.data_id,
                                       **open_params,
                                       **dataset_open_params)
            observer.worked(1)
        except DataStoreError as dse:
            raise CubeGeneratorError(f'{dse}', status_code=400) from dse
        # Turn dataset into cube and grid_mapping
        try:
            cube, gm, _ = decode_cube(dataset,
                                      normalize=True)
        except DatasetIsNotACubeError as e:
            raise CubeGeneratorError(f'{e}') from e
        observer.worked(1)
    if dataset_open_params:
        drop_names = [k for k in dataset_open_params.keys()
                      if k not in _STEADY_CUBE_CONFIG_NAMES]
        cube_config = cube_config.drop_props(drop_names)
    return cube, gm, cube_config