mujoco_worldgen/util/envs/examine_env.py (34 lines of code) (raw):

from mujoco_worldgen.util.envs.flexible_load import load_env from mujoco_worldgen.util.envs.env_viewer import EnvViewer def examine_env(env_name, env_kwargs, core_dir, envs_dir, xmls_dir='xmls', env_viewer=EnvViewer, seed=None): ''' Loads an environment and allows the user to examine it. Args: env_name (str): Environment name. Does not need to be exact since the load_env function does a search over the environments & xmls folder for any file names that match the env_name pattern env_kwargs (dict): Dictionary of environment keyword arguments core_dir (str): Absolute path to the core code directory for the project containing the environments we want to examine. This is usually the top-level git repository folder - in the case of the mujoco-worldgen repo, it would be the 'mujoco-worldgen' folder. envs_dir (str): relative path (from core_dir) to folder containing all environment files. xmls_dir (str): relative path (from core_dir) to folder containing all xml files. env_viewer (class): class used to render the environment. See the imported EnvViewer class for an example of how to structure this. seed (int): Environment seed ''' env, args_remaining = load_env(env_name, core_dir=core_dir, envs_dir=envs_dir, xmls_dir=xmls_dir, return_args_remaining=True, **env_kwargs) if seed is not None: env.seed(seed) assert len(args_remaining) == 0, ( f"There left unused arguments: {args_remaining}. There shouldn't be any.") if env is not None: env_viewer(env).run() else: print('"{}" doesn\'t seem to be a valid environment'.format(env_name)) print("Error couldn't match against any of patterns. Please try to be more verbose.") print("\n\nFailed to examine")