code: def check_preprocessing_options(
      columns_dict,
      features_dict,
      preprocessing=None,
      list_preprocessing=None,
  ):
      """
      Check if preprocessing for ColumnTransformer doesn't have "drop" option otherwise compute several
      informations to adapt the SmartPredictor's actions
  
      Parameters
      ----------
      preprocessing: category_encoders, ColumnTransformer, list or dict (optional)
          The processing apply to the original data.
      columns_dict: dict
          Dictionary mapping integer column number (in the same order of the trained dataset) to technical feature names.
      features_dict: dict
          Dictionary mapping technical feature names to domain names.
      list_preprocessing: list (optional)
           list containing all preprocessing.
      Returns
      -------
      None, dict
          None if there isn't drop options in ColumnTransformer otherwise dict of informations to adapt.
      """
      feature_to_drop = list()
      if preprocessing is not None:
          for enc in list_preprocessing:
              if str(type(enc)) in columntransformer:
                  for options in enc.transformers_:
                      if "drop" in options:
                          feature_to_drop.extend(options[2])
  
      if len(feature_to_drop) != 0:
          feature_to_drop = [
              columns_dict[index] for index in feature_to_drop
          ]
          features_dict_op = {
              key: value
              for key, value in features_dict.items()
              if key not in feature_to_drop
          }
  
          i = 0
          columns_dict_op = dict()
          for value in columns_dict.values():
              if value not in feature_to_drop:
                  columns_dict_op[i] = value
                  i += 1
  
          return {
              "features_to_drop": feature_to_drop,
              "features_dict_op": features_dict_op,
              "columns_dict_op": columns_dict_op,
          }
  
      else:
          return None
  
imports: import copy
  import numpy
  import pandas
  from shapash.utils.category_encoder_backend import no_dummies_category_encoder, supported_category_encoder, dummies_category_encoder
  from shapash.utils.columntransformer_backend import no_dummies_sklearn, supported_sklearn
  from shapash.utils.model import extract_features_model
  from shapash.utils.model_synoptic import dict_model_feature
  from shapash.utils.transform import preprocessing_tolist, check_transformers
  from shapash.utils.columntransformer_backend import columntransformer, get_feature_names, get_list_features_names
label_desc: Use image node_id 8 for calling a global function with example usage: check_preprocessing_options(columns_dict, features_dict, preprocessing, list_preprocessing) and returns: dict, None