class_docstr: Env which uses converters to transform an underlying environment.
  
  Note that this is a multiplayer environment. The returned timesteps contain
  lists for their reward and observation fields, with entries in those lists
  corresponding to the players in the game. A list of actions must be passed
  to step - an action per player. Note, however, that this is expected to
  be None where the player isn't expected to act on the current game loop
  because their previous action delay hasn't expired yet.
  
  If you would prefer to access the environment in a singleplayer fashion,
  see `make_streams`, below.
class_docstr_tok: ["Env","which","uses","converters","to","transform","an","underlying","environment",".","Note","that","this","is","a","multiplayer","environment",".","The","returned","timesteps","contain","lists","for","their","reward","and","observation","fields",",","with","entries","in","those","lists","corresponding","to","the","players","in","the","game",".","A","list","of","actions","must","be","passed","to","step","-","an","action","per","player",".","Note",",","however",",","that","this","is","expected","to","be","None","where","the","player","is","n't","expected","to","act","on","the","current","game","loop","because","their","previous","action","delay","has","n't","expired","yet",".","If","you","would","prefer","to","access","the","environment","in","a","singleplayer","fashion",",","see","`","make_streams","`",",","below","."]
code: def num_players(self):
      return self._num_players
  
imports: import functools
  import threading
  from typing import Any, Mapping, NamedTuple, Sequence
  import dm_env
  import numpy
  from pysc2.env.converter import converter
  from pysc2.env.converter.proto import converter_pb2
  from pysc2.lib import actions
  import tree
  import typing_extensions
  from s2clientprotocol import common_pb2
  from s2clientprotocol import raw_pb2
  from s2clientprotocol import sc2api_pb2
label_desc: Use image node_id 10 for calling the ConvertedEnvironment obj's underlying member method code with example usage: obj.num_players() and returns: self