code: def _get_types(self):
  		
  		types = []
  		num_values = []
  		for hp in self.configspace.get_hyperparameters():
  			#print(hp)
  			if isinstance(hp, CS.CategoricalHyperparameter):
  				types.append('U')
  				num_values.append(len(hp.choices))
  			elif isinstance(hp, CS.UniformIntegerHyperparameter):
  				types.append('I')
  				num_values.append((hp.upper - hp.lower + 1))
  			elif isinstance(hp, CS.UniformFloatHyperparameter):
  				types.append('C')
  				num_values.append(np.inf)
  			elif isinstance(hp, CS.OrdinalHyperparameter):
  				types.append('O')
  				num_values.append(len(hp.sequence))
  			else:
  				raise ValueError('Unsupported Parametertype %s'%type(hp))
  		return(types, num_values)
docs: extracts the needed types from the configspace for faster retrival later
  		
  			type = 0 - numerical (continuous or integer) parameter
  			type >=1 - categorical parameter
  			
  			TODO: figure out a way to properly handle ordinal parameters