code: def get_params_to_insert_random_feature(
      self, current_models, total_time_limit
  ):
      time_needed = self.time_features_selection(
          current_models, total_time_limit
      )
  
      if (
          total_time_limit is not None
          and time_needed > 0.1 * total_time_limit
      ):
          print("Not enough time to perform features selection. Skip")
          print(
              "Time needed for features selection ~",
              np.round(time_needed),
              "seconds",
          )
          print(
              f"Please increase total_time_limit to at least ({int(np.round(10.0*time_needed))+60} seconds) to have features selection"
          )
          return None
  
      model_selection_time_limit = (
          None if total_time_limit is None else 0.1 * total_time_limit
      )
      df_models, algorithms = self.df_models_algorithms(
          current_models, time_limit=model_selection_time_limit
      )
      if df_models.shape[0] == 0:
          return None
  
      m = df_models.iloc[0]["model"]
  
      params = copy.deepcopy(m.params)
      params["preprocessing"]["add_random_feature"] = True
      params["name"] += "_RandomFeature"
      params["status"] = "initialized"
      params["final_loss"] = None
      params["train_time"] = None
      params["explain_level"] = 1
      if "model_architecture_json" in params["learner"]:
          del params["learner"]["model_architecture_json"]
      if self._optuna_time_budget is not None:
          # dont tune algorithm with random feature inserted
          # algorithm will be tuned after feature selection
          params["optuna_time_budget"] = None
          params["optuna_init_params"] = {}
  
      unique_params_key = MljarTuner.get_params_key(params)
      if unique_params_key not in self._unique_params_keys:
          return [params]
      return None
  
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 29 for calling the MljarTuner obj's underlying member method code with example usage: obj.get_params_to_insert_random_feature(current_models, total_time_limit) and returns: None, None, None, list