code: def make_simulated_env_kwargs(real_env, hparams, **extra_kwargs):
    
    objs_and_attrs = [
        (real_env, [
            "reward_range", "observation_space", "action_space", "frame_height",
            "frame_width"
        ]),
        (hparams, ["frame_stack_size", "intrinsic_reward_scale"])
    ]
    kwargs = {
        attr: getattr(obj, attr)  # pylint: disable=g-complex-comprehension
        for (obj, attrs) in objs_and_attrs for attr in attrs
    }
    kwargs["model_name"] = hparams.generative_model
    kwargs["model_hparams"] = trainer_lib.create_hparams(
        hparams.generative_model_params
    )
    if hparams.wm_policy_param_sharing:
      kwargs["model_hparams"].optimizer_zero_grads = True
    kwargs.update(extra_kwargs)
    return kwargs
docs: Extracts simulated env kwargs from real_env and loop hparams.