code: def resolve_cpu_gpu_engine(
      engine: DBSCANEngine,
  ) -> DBSCANEngineConcrete:  # noqa
      if engine in [CUML, UMAP_LEARN, "sklearn"]:
          return engine  # type: ignore
      if engine in ["auto"]:
          (
              has_min_dependency,
              _,
              has_cuml_dependency,
              _,
          ) = lazy_dbscan_import_has_dependency()
          if has_cuml_dependency:
              return "cuml"
          if has_min_dependency:
              return "umap_learn"
  
      raise ValueError(  # noqa
          f'engine expected to be "auto", '
          '"umap_learn", "pandas", "sklearn", or  "cuml" '
          f"but received: {engine} :: {type(engine)}"
      )
  
imports: import logging
  import pandas
  import numpy
  from typing import Any, List, Union, TYPE_CHECKING, Tuple, Optional
  from typing_extensions import Literal
  from collections import Counter
  from graphistry.Plottable import Plottable
  from graphistry.constants import CUML, UMAP_LEARN, DBSCAN
  from graphistry.features import ModelDict
  from graphistry.feature_utils import get_matrix_by_column_parts
label_desc: Use image node_id 3 for calling a global function with example usage: resolve_cpu_gpu_engine(engine) and returns: engine, str, str