class_docstr: Base map object to configure a map. To define a map just subclass this.
  
  Attributes:
    name: The name of the map/class.
    path: Where to find the map file.
    directory: Directory for the map
    filename: Actual filename. You can skip the ".SC2Map" file ending.
    download: Where to download the map.
    game_steps_per_episode: Game steps per episode, independent of the step_mul.
        0 (default) means no limit.
    step_mul: How many game steps per agent step?
    score_index: Which score to give for this map. -1 means the win/loss
        reward. >=0 is the index into score_cumulative.
    score_multiplier: A score multiplier to allow make small scores good.
    players: Max number of players for this map.
    battle_net: The map name on battle.net, if it exists.
class_docstr_tok: ["Base","map","object","to","configure","a","map",".","To","define","a","map","just","subclass","this",".","Attributes",":","name",":","The","name","of","the","map\/class",".","path",":","Where","to","find","the","map","file",".","directory",":","Directory","for","the","map","filename",":","Actual","filename",".","You","can","skip","the","``",".SC2Map","''","file","ending",".","download",":","Where","to","download","the","map",".","game_steps_per_episode",":","Game","steps","per","episode",",","independent","of","the","step_mul",".","0","(","default",")","means","no","limit",".","step_mul",":","How","many","game","steps","per","agent","step","?","score_index",":","Which","score","to","give","for","this","map",".","-1","means","the","win\/loss","reward",".",">","=0","is","the","index","into","score_cumulative",".","score_multiplier",":","A","score","multiplier","to","allow","make","small","scores","good",".","players",":","Max","number","of","players","for","this","map",".","battle_net",":","The","map","name","on","battle.net",",","if","it","exists","."]
docstr: Return the map data.
docstr_tok: ["Return","the","map","data","."]
code: def data(self, run_config):
      """Return the map data."""
      try:
          return run_config.map_data(self.path, self.players)
      except (
          IOError,
          OSError,
      ) as e:  # Catch both for python 2/3 compatibility.
          if self.download and hasattr(e, "filename"):
              logging.error(
                  "Error reading map '%s' from: %s",
                  self.name,
                  e.filename,
              )
              logging.error("Download the map from: %s", self.download)
          raise
  
file_path: pysc2/pysc2/maps/lib.py
imports: import os
  from absl import logging
label_desc: Use image node_id 2 for calling the Map obj's underlying member method code with example usage: obj.data(run_config) and returns: run_config