class_docstr: A scenario represents a (task, data distribution).
  It is usually based on some raw dataset and is converted into a list of `Instance`s.
  Override this class.
  
  Note: the constructor should be lightweight, `get_instances` should do all
  the heavy lifting.
docstr: Does the main work in the `Scenario` (e.g., download datasets, convert
  it into a list of instances).
docstr_tok: ["Does","the","main","work","in","the","`","Scenario","`","(","e.g.",",","download","datasets",",","convert","it","into","a","list","of","instances",")","."]
code: def get_instances(self) -> List[Instance]:
      """
      Does the main work in the `Scenario` (e.g., download datasets, convert
      it into a list of instances).
      """
      pass
  
imports: from abc import ABC, abstractmethod
  from dataclasses import dataclass, field, replace
  from typing import List, Optional, Tuple
  import re
  import inspect
  from helm.common.object_spec import ObjectSpec, create_object
  from helm.common.general import format_text, format_split, format_tags, indent_lines
  from helm.benchmark.augmentations.perturbation_description import PerturbationDescription
label_desc: Use image node_id 2 for calling the Scenario obj's underlying member method code with example usage: obj.get_instances() without return types