class_docstr: Handle for dealing with environment (and especially multi-agent) outputs more easily
class_docstr_tok: ["Handle","for","dealing","with","environment","(","and","especially","multi-agent",")","outputs","more","easily"]
code: def from_multiagent_step(
      cls,
      obs: tp.Dict[str, tp.Any],
      reward: tp.Dict[str, tp.Any],
      done: tp.Dict[str, bool],
      info: tp.Dict[str, tp.Dict[tp.Any, tp.Any]],
  ) -> tp.Tuple[tp.Dict[str, "StepOutcome"], bool]:
      outcomes = {
          agent: cls(
              obs[agent],
              reward.get(agent, None),
              done.get(agent, done.get("__all__", False)),
              info.get(agent, {}),
          )
          for agent in obs
      }
      return outcomes, done.get("__all__", False)
  
imports: import typing
  from collections import defaultdict
  import gym
label_desc: Use image node_id 4 for calling the StepOutcome obj's underlying member method code with example usage: obj.from_multiagent_step(cls, obs, reward, done, info) and returns: outcomes,  done