def observation_space(self) -> gym.Space:
        """
        Return observation spaces of active and controllable agents
        :return: Dict
        """
        ret = self.agent_manager.get_observation_spaces()
        if not self.is_multi_agent:
            return next(iter(ret.values()))
        else:
            return gym.spaces.Dict(ret)

        Return observation spaces of active and controllable agents
        :return: Dict
        
metadrive/envs/base_env.py