code: def type_generic(
      self, db_type_str: Optional[str]
  ) -> Optional[utils.GenericDataType]:
      column_spec = self.db_engine_spec.get_column_spec(db_type_str)
      if column_spec is None:
          return None
  
      if column_spec.is_dttm:
          return GenericDataType.TEMPORAL
  
      return column_spec.generic_type
  
imports: import datetime
  import json
  import logging
  from typing import Any, Optional
  import numpy
  import pandas
  import pyarrow
  from numpy.typing import NDArray
  from superset.db_engine_specs import BaseEngineSpec
  from superset.superset_typing import DbapiDescription, DbapiResult, ResultSetColumnType
  from superset.utils import core
  from superset.utils.core import GenericDataType
label_desc: Use image node_id 6 for calling the SupersetResultSet obj's underlying member method code with example usage: obj.type_generic(db_type_str) and returns: column_spec, None, GenericDataType