code: def get_available_components(
      self, dataset_properties=None, include=None, exclude=None
  ):
      if dataset_properties is None:
          dataset_properties = {}
  
      if include is not None and exclude is not None:
          raise ValueError(
              "The argument include and exclude cannot be used together."
          )
  
      available_comp = self.get_components()
  
      if include is not None:
          for incl in include:
              if incl not in available_comp:
                  raise ValueError(
                      "Trying to include unknown component: "
                      "%s" % incl
                  )
  
      components_dict = OrderedDict()
      for name in available_comp:
          if include is not None and name not in include:
              continue
          elif exclude is not None and name in exclude:
              continue
  
          if (
              "sparse" in dataset_properties
              and dataset_properties["sparse"]
          ):
              # In case the dataset is sparse, ignore
              # components that do not handle sparse data
              # Auto-sklearn uses SPARSE constant as a mechanism
              # to indicate whether a component can handle sparse data.
              # If SPARSE is not in the input properties of the component, it
              # means SPARSE is not a valid input to this component, so filter it out
              if (
                  SPARSE
                  not in available_comp[name].get_properties()["input"]
              ):
                  continue
  
          components_dict[name] = available_comp[name]
  
      return components_dict
  
imports: from typing import Dict, Optional
  import importlib
  import inspect
  import pkgutil
  import sys
  from collections import OrderedDict
  from sklearn.base import BaseEstimator, TransformerMixin
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.constants import SPARSE
label_desc: Use image node_id 3 for calling the AutoSklearnChoice obj's underlying member method code with example usage: obj.get_available_components(dataset_properties, include, exclude) and returns: components_dict