code: def get_params_key(params):
      key = "key_"
      for main_key in [
          "preprocessing",
          "learner",
          "validation_strategy",
      ]:
          key += "_" + main_key
          for k in sorted(params[main_key]):
              if k in ["seed", "explain_level"]:
                  continue
              key += "_{}_{}".format(k, params[main_key][k])
      return key
  
imports: import copy
  import json
  import logging
  import os
  import numpy
  import pandas
  from sklearn.preprocessing import OneHotEncoder
  from supervised.algorithms.catboost import catboost_eval_metric
  from supervised.algorithms.lightgbm import lightgbm_eval_metric
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION, AlgorithmsRegistry
  from supervised.algorithms.xgboost import xgboost_eval_metric
  from supervised.preprocessing.label_encoder import LabelEncoder
  from supervised.preprocessing.preprocessing_categorical import PreprocessingCategorical
  from supervised.tuner.hill_climbing import HillClimbing
  from supervised.tuner.preprocessing_tuner import PreprocessingTuner
  from supervised.tuner.random_parameters import RandomParameters
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.utils import dump_data, load_data
label_desc: Use image node_id 32 for calling the MljarTuner obj's underlying member method code with example usage: obj.get_params_key(params) and returns: key