Source code for ailiga.env

import gym
from pettingzoo.butterfly import (
    knights_archers_zombies_v10 as _knights_archers_zombies_v10,
)
from pettingzoo.classic import leduc_holdem_v4 as _leduc_holdem_v4
from pettingzoo.classic import rps_v2 as _rps_v2
from pettingzoo.classic import tictactoe_v3 as _tictactoe_v3
from pettingzoo.mpe import simple_spread_v2 as _simple_spread_v2
from tianshou.env.pettingzoo_env import PettingZooEnv


# TODO handle extra environment variables/types
[docs]def get_env_name(env): """Get the name of the env.""" if callable(env): env = env() if isinstance(env, gym.Env): return env.spec.id elif isinstance(env, PettingZooEnv): return env.env.metadata["name"] else: raise Exception("Unknown env type")
[docs]def tictactoe_v3(): return PettingZooEnv(_tictactoe_v3.env())
[docs]def simple_spread_v2(): return PettingZooEnv(_simple_spread_v2.env())
[docs]def knights_archers_zombies_v10(): return PettingZooEnv(_knights_archers_zombies_v10.env())
[docs]def leduc_holdem_v4(): return PettingZooEnv(_leduc_holdem_v4.env())
[docs]def rps_v2(): return PettingZooEnv(_rps_v2.env())
[docs]def get_all_envs(): return [ knights_archers_zombies_v10, tictactoe_v3, simple_spread_v2, leduc_holdem_v4, rps_v2, ]
[docs]def get_all_env_names(): return get_envs().keys()
[docs]def get_envs(): ret = {} for env in get_all_envs(): ret[env.__name__] = env return ret
[docs]def get_env(name): """Get the env by name.""" return get_envs()[name]