code: def _list_indexing(X, key, key_dtype):
      """Index a Python list."""
      if np.isscalar(key) or isinstance(key, slice):
          # key is a slice or a scalar
          return X[key]
      if key_dtype == "bool":
          # key is a boolean array-like
          return list(compress(X, key))
      # key is a integer array-like of key
      return [X[idx] for idx in key]
  
imports: from ..preprocessing import FunctionTransformer
  from ....thirdparty_adapters import check_array
  from ..utils.validation import check_is_fitted
  from ..utils.skl_dependencies import TransformerMixin, BaseComposition, BaseEstimator
  from cuml.internals import _deprecate_pos_args
  from cuml.internals.array_sparse import SparseCumlArray
  from cuml.internals.global_settings import _global_settings_data
  import cuml
  from itertools import chain
  from itertools import compress
  from joblib import Parallel
  import functools
  import timeit
  import numbers
  from cuml.internals.import_utils import has_sklearn
  from contextlib import contextmanager
  from collections import defaultdict
  import warnings
  from cuml.internals.safe_imports import cpu_only_import_from
  from cuml.internals.safe_imports import gpu_only_import_from
  from cuml.internals.safe_imports import cpu_only_import
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 7 for calling a global function with example usage: _list_indexing(X, key, key_dtype) and returns: unknown, X, list