code: def time_should_use(self, fit_level):
      if self._total_time_limit is None:
          return 7 * 24 * 3600  # 7 days
  
      ratios = {
          "default_algorithms": 0.3,
          "not_so_random": 0.35,
          "mix_encoding": 0.05,
          "golden_features": 0.05,
          "kmeans_features": 0.05,
          "insert_random_feature": 0.05,
          "features_selection": 0.05,
          "hill_climbing_1": 0.2,  # enough to have only first step from hill climbing
          "boost_on_errors": 0.05,
          "stack": 0.2,
      }
  
      if (
          fit_level
          in [
              "default_algorithms",
              "not_so_random",
              "boost_on_errors",
              "mix_encoding",
              "golden_features",
              "kmeans_features",
              "insert_random_feature",
              "features_selection",
              "stack",
          ]
          or "hill_climbing" in fit_level
      ):
          ratio = 0
          for k, v in ratios.items():
              if k in self._steps:
                  ratio += v
  
          fl = fit_level
          if "hill_climbing" in fit_level:
              fl = "hill_climbing_1"
  
          ratio = ratios[fl] / ratio
  
          if "hill_climbing" in fit_level:
              # print("before hill climbing scale", ratio)
              hill_climbing_cnt = len(
                  [i for i in self._steps if "hill_climbing" in i]
              )
              ratio /= float(hill_climbing_cnt)
  
          should_use = self._total_time_limit * ratio
  
          return should_use
  
      return 0
  
file_path: mljar-supervised/supervised/tuner/time_controller.py
imports: import json
  import logging
  import time
  import numpy
  import pandas
  from supervised.utils.config import LOG_LEVEL
label_desc: Use image node_id 5 for calling the TimeController obj's underlying member method code with example usage: obj.time_should_use(fit_level) and returns: int, unknown, should_use