class_docstr: A decision policy that chooses the action according to agents selected in a circular order.
class_docstr_tok: ["A","decision","policy","that","chooses","the","action","according","to","agents","selected","in","a","circular","order","."]
docstr: Given a list of actions from multiple agents, take the action of the current decision maker, which is set in a
   circular order
  :param actions_info: a list of ActionInfo instances containing the information for each agents action
  :return: a single action
docstr_tok: ["Given","a","list","of","actions","from","multiple","agents",",","take","the","action","of","the","current","decision","maker",",","which","is","set","in","a","circular","order",":","param","actions_info",":","a","list","of","ActionInfo","instances","containing","the","information","for","each","agents","action",":","return",":","a","single","action"]
code: def choose_action(
      self, actions_info: Dict[str, ActionInfo]
  ) -> ActionInfo:
      """
      Given a list of actions from multiple agents, take the action of the current decision maker, which is set in a
       circular order
      :param actions_info: a list of ActionInfo instances containing the information for each agents action
      :return: a single action
      """
      decision_maker = self.round_robin.__next__()
      if decision_maker not in range(len(actions_info.keys())):
          raise ValueError(
              "The size of action_info does not match the number of agents set to RoundRobin decision"
              " policy."
          )
      return actions_info.items()[decision_maker]
  
imports: import copy
  import itertools
  from enum import Enum
  from typing import Union, List, Dict
  import numpy
  from rl_coach.agents.agent_interface import AgentInterface
  from rl_coach.base_parameters import AgentParameters, VisualizationParameters
  from rl_coach.core_types import ActionInfo, EnvResponse, ActionType, RunPhase
  from rl_coach.filters.observation.observation_crop_filter import ObservationCropFilter
  from rl_coach.saver import SaverCollection
  from rl_coach.spaces import ActionSpace
  from rl_coach.spaces import AgentSelection, AttentionActionSpace, SpacesDefinition
  from rl_coach.utils import short_dynamic_import
label_desc: Use image node_id 2 for calling the RoundRobin obj's underlying member method code with example usage: obj.choose_action(actions_info) and returns: actions_info