code: def get_expected_module_config(
      env: gym.Env,
      model_config_dict: dict,
      observation_space: gym.spaces.Space,
  ) -> RLModuleConfig:
      """Get a PPOModuleConfig that we would expect from the catalog otherwise.
  
      Args:
          env: Environment for which we build the model later
          model_config_dict: Model config to use for the catalog
          observation_space: Observation space to use for the catalog.
  
      Returns:
           A PPOModuleConfig containing the relevant configs to build PPORLModule
      """
      config = RLModuleConfig(
          observation_space=observation_space,
          action_space=env.action_space,
          model_config_dict=model_config_dict,
          catalog_class=PPOCatalog,
      )
  
      return config
  
imports: import itertools
  import unittest
  import gymnasium
  import numpy
  import tree
  import ray
  from ray.rllib import SampleBatch
  from ray.rllib.algorithms.ppo.ppo_catalog import PPOCatalog
  from ray.rllib.algorithms.ppo.tf.ppo_tf_rl_module import PPOTfRLModule
  from ray.rllib.algorithms.ppo.torch.ppo_torch_rl_module import PPOTorchRLModule
  from ray.rllib.core.models.base import STATE_IN, STATE_OUT
  from ray.rllib.core.rl_module.rl_module import RLModuleConfig
  from ray.rllib.models.preprocessors import get_preprocessor
  from ray.rllib.utils.framework import try_import_tf, try_import_torch
  from ray.rllib.utils.numpy import convert_to_numpy
  from ray.rllib.utils.torch_utils import convert_to_torch_tensor
label_desc: Use image node_id 1 for calling a global function with example usage: get_expected_module_config(env, model_config_dict, observation_space) and returns: config