docstr: Convert all types of para space to DOUBLE(linear), DISCRETE
  config: [{
      "parameterName": "num_layers",
      "type": "DISCRETE",
      "feasiblePoints": "1,2,3,4",
  },{
      "parameterName": "hidden",
      "type": "NUMERICAL_LIST",
      "numericalType": "INTEGER",
      "length": 4,
      "minValue": [4, 4, 4, 4],
      "maxValue": [32, 32, 32, 32],
      "scalingType": "LOG"
  },{
      "parameterName": "dropout",
      "type": "DOUBLE",
      "minValue": 0.1,
      "maxValue": 0.9,
      "scalingType": "LINEAR"
  }]
docstr_tok: ["Convert","all","types","of","para","space","to","DOUBLE","(","linear",")",",","DISCRETE","config",":","[","{","``","parameterName","''",":","``","num_layers","''",",","``","type","''",":","``","DISCRETE","''",",","``","feasiblePoints","''",":","``","1,2,3,4","''",",","}",",","{","``","parameterName","''",":","``","hidden","''",",","``","type","''",":","``","NUMERICAL_LIST","''",",","``","numericalType","''",":","``","INTEGER","''",",","``","length","''",":","4",",","``","minValue","''",":","[","4",",","4",",","4",",","4","]",",","``","maxValue","''",":","[","32",",","32",",","32",",","32","]",",","``","scalingType","''",":","``","LOG","''","}",",","{","``","parameterName","''",":","``","dropout","''",",","``","type","''",":","``","DOUBLE","''",",","``","minValue","''",":","0.1",",","``","maxValue","''",":","0.9",",","``","scalingType","''",":","``","LINEAR","''","}","]"]
code: def _encode_para_convert(self, config):
      """
      Convert all types of para space to DOUBLE(linear), DISCRETE
      config: [{
          "parameterName": "num_layers",
          "type": "DISCRETE",
          "feasiblePoints": "1,2,3,4",
      },{
          "parameterName": "hidden",
          "type": "NUMERICAL_LIST",
          "numericalType": "INTEGER",
          "length": 4,
          "minValue": [4, 4, 4, 4],
          "maxValue": [32, 32, 32, 32],
          "scalingType": "LOG"
      },{
          "parameterName": "dropout",
          "type": "DOUBLE",
          "minValue": 0.1,
          "maxValue": 0.9,
          "scalingType": "LINEAR"
      }]"""
      self._category_map = {}
      self._discrete_map = {}
      self._numerical_map = {}
  
      current_config = []
      for para in config:
          if para["type"] == "DOUBLE" or para["type"] == "INTEGER":
              cur_para = para.copy()
              cur_para["type"] = "DOUBLE"
              if para["scalingType"] == "LOG":
                  cur_para["minValue"] = math.log(para["minValue"])
                  cur_para["maxValue"] = math.log(para["maxValue"])
              current_config.append(cur_para)
              self._numerical_map[para["parameterName"]] = para
          elif (
              para["type"] == "CATEGORICAL"
              or para["type"] == "DISCRETE"
          ):
              if para["type"] == "DISCRETE":
                  cate_list = para["feasiblePoints"].split(",")
                  cate_list = list(map(lambda x: x.strip(), cate_list))
              else:
                  cate_list = para["feasiblePoints"]
              cur_points = ",".join(
                  map(lambda x: str(x), range(len(cate_list)))
              )
              cur_para = para.copy()
              cur_para["feasiblePoints"] = cur_points
              cur_para["type"] = "DISCRETE"
              current_config.append(cur_para)
              if para["type"] == "CATEGORICAL":
                  self._category_map[para["parameterName"]] = cate_list
              else:
                  self._discrete_map[para["parameterName"]] = cate_list
          else:
              current_config.append(para)
      return current_config
  
imports: from ...utils import get_logger
  import hyperopt
  import time
  import math
  import dill
  import multiprocessing
  import copy
  import random
label_desc: Use image node_id 8 for calling the BaseHPOptimizer obj's underlying member method code with example usage: obj._encode_para_convert(config) and returns: current_config