class_docstr: Multi agent environement for which some of the agents have been fixed
class_docstr_tok: ["Multi","agent","environement","for","which","some","of","the","agents","have","been","fixed"]
code: def __init__(self, env: MultiAgentEnv, **agents: Agent) -> None:
      self.env = env.copy()
      self.agents = {
          name: agent.copy() for name, agent in agents.items()
      }
      self.env.reset()
      unknown = set(agents) - set(env.agent_names)
      if unknown:  # this assumes that all agents play from the start
          raise ValueError(f"Unkwnon agents: {unknown}")
      self.agent_names = [
          an for an in env.agent_names if an not in agents
      ]
      self.observation_space = env.observation_space
      self.action_space = env.action_space
      self._agents_outcome: tp.Dict[str, StepOutcome] = {}
  
imports: import typing
  from collections import defaultdict
  import gym
label_desc: Use image node_id 1 to create a new PartialMultiAgentEnv object from inherited base classes: MultiAgentEnv with example: obj = PartialMultiAgentEnv(env)