code: def get_class(cls, name_or_sl):
          
          try:
              return cls.sl_map[int(name_or_sl)]
  
          except TypeError as e:
              raise TypeError("Bad name or sl: {} : {}".format(name_or_sl, e))
          except ValueError:
              try:
                  return cls.class_map[name_or_sl.lower()]
              except (KeyError, ValueError):
                  raise NotASummaryName("Value '{}' is not a valid summary level".format(name_or_sl))
docs: Return a derived class based on the class name or the summary_level