code: def _find_concrete_subclasses(module, base_class):
      ret = []
      for attr_name in dir(module):
          attr = getattr(module, attr_name)
          if (
              isinstance(attr, type)
              and issubclass(attr, base_class)
              and not inspect.isabstract(attr)
          ):
              ret.append(attr)
      if len(ret) == 0:
          raise RuntimeError(
              f"Found 0 concrete subclasses of {base_class} in {module}: {ret}"
          )
      if len(ret) > 1:
          raise RuntimeError(
              f"Found >1 concrete subclasses of {base_class} in {module}: {ret}"
          )
      return ret[0]
  
file_path: triton/python/triton/backends/__init__.py
imports: import os
  import importlib.util
  import inspect
  from dataclasses import dataclass
  from .driver import DriverBase
  from .compiler import BaseBackend
label_desc: Use image node_id 2 for calling a global function with example usage: _find_concrete_subclasses(module, base_class) and returns: ret