code: def get_preprocessing_mapping(x_encoded, preprocessing=None):
      """
      Get the columns mapping from preprocessing.
  
      Parameters
      ----------
      x_encoded : pd.DataFrame
          Pandas dataframe after encoder transformations
      preprocessing : category_encoders or ColumnTransformer or list or dict or list of dict
          The processing apply to the original data
  
      Returns
      -------
      dict
          the mapping between columns names before and after preprocessing.
      """
      if preprocessing is None:
          return {}
  
      # To avoid recursion error as dict are converted to list of dict when using preprocessing_tolist function
      if isinstance(preprocessing, dict):
          return (
              {}
          )  # The names of the columns are not changing when using dict
  
      # Transform preprocessing into a list
      list_encoding = preprocessing_tolist(preprocessing)
  
      # Check encoding are supported
      check_transformers(list_encoding)
  
      dict_col_mapping = dict()
      for enc in list_encoding:
          if str(type(enc)) == columntransformer:
              dict_col_mapping.update(
                  get_col_mapping_ct(enc, x_encoded)
              )
  
          elif str(type(enc)) in supported_category_encoder:
              dict_col_mapping.update(get_col_mapping_ce(enc))
  
          elif isinstance(enc, dict):
              pass  # The names of the columns are not changing when using dict
  
          elif isinstance(enc, list):
              for sub_enc in enc:
                  # Recursive call
                  dict_col_mapping.update(
                      get_preprocessing_mapping(
                          preprocessing=sub_enc, x_encoded=x_encoded
                      )
                  )
  
      return dict_col_mapping
  
file_path: shapash/shapash/utils/transform.py
imports: from shapash.utils.columntransformer_backend import columntransformer, inv_transform_ct, supported_sklearn, transform_ct, get_col_mapping_ct
  from shapash.utils.category_encoder_backend import transform_ce, inv_transform_ce, supported_category_encoder, get_col_mapping_ce
  import re
  import numpy
  import pandas
label_desc: Use image node_id 7 for calling a global function with example usage: get_preprocessing_mapping(x_encoded, preprocessing) and returns: dict_col_mapping, dict, dict