pyduino.data_parser
1import yaml 2from collections import OrderedDict 3from datetime import datetime 4import numpy as np 5 6def yaml_genetic_algorithm(filename): 7 """ 8 Loads hyperparameters for the genetic algorithm from a YAML file. 9 """ 10 y = None 11 with open(filename) as f: 12 y = yaml.load(f.read(),yaml.Loader) 13 return y 14 15def datetime_parser(h,d): 16 return datetime.strptime(f"{h}_{d}","%H:%M:%S_%d.%m.%Y") 17 18def get_datetimes(X,h_name,d_name): 19 """ 20 Parses timestamp from `ReactorManager.log_dados` into an array. 21 22 Args: 23 X (:obj:`dict` of :obj:`OrderedDict`): Data obtained from `ReactorManager.log_dados`. 24 h_name (str): Parameter name for time. 25 d_name (str): Parameter name for date. 26 """ 27 return np.array(list(map(lambda x: datetime_parser(x[1][h_name],x[1][d_name]),sorted(X.items(),key=lambda x: x[0])))) 28 29class RangeParser: 30 def __init__(self,ranges,parameter_list): 31 """ 32 Args: 33 ranges (:obj:dict of :obj:list): Dictionary of parameters with a two element list containing the 34 its minimum and maximum attainable values respectively. 35 parameter_list (list): List of parameter names. 36 """ 37 self.keyed_ranges = OrderedDict(ranges) 38 if 'others' in self.keyed_ranges.keys(): 39 for p in list(set(parameter_list)-self.keyed_ranges.keys()): 40 self.keyed_ranges[p] = self.keyed_ranges['others'] 41 del self.keyed_ranges['others'] 42 43 def ranges_as_keyed(self,x=None): 44 """ 45 Converts range list into keyed format. 46 """ 47 if x is None: 48 return self.keyed_ranges 49 else: 50 return OrderedDict(zip(self.keyed_ranges.keys(),x)) 51 def ranges_as_list(self,x=None): 52 """ 53 Converts range dictionary into list format. 54 """ 55 if x is None: 56 return self.ranges_as_list(self.keyed_ranges) 57 else: 58 return list(x.values())
def
yaml_genetic_algorithm(filename):
7def yaml_genetic_algorithm(filename): 8 """ 9 Loads hyperparameters for the genetic algorithm from a YAML file. 10 """ 11 y = None 12 with open(filename) as f: 13 y = yaml.load(f.read(),yaml.Loader) 14 return y
Loads hyperparameters for the genetic algorithm from a YAML file.
def
datetime_parser(h, d):
def
get_datetimes(X, h_name, d_name):
19def get_datetimes(X,h_name,d_name): 20 """ 21 Parses timestamp from `ReactorManager.log_dados` into an array. 22 23 Args: 24 X (:obj:`dict` of :obj:`OrderedDict`): Data obtained from `ReactorManager.log_dados`. 25 h_name (str): Parameter name for time. 26 d_name (str): Parameter name for date. 27 """ 28 return np.array(list(map(lambda x: datetime_parser(x[1][h_name],x[1][d_name]),sorted(X.items(),key=lambda x: x[0]))))
Parses timestamp from ReactorManager.log_dados
into an array.
Arguments:
- X (
dict
ofOrderedDict
): Data obtained fromReactorManager.log_dados
. - h_name (str): Parameter name for time.
- d_name (str): Parameter name for date.
class
RangeParser:
30class RangeParser: 31 def __init__(self,ranges,parameter_list): 32 """ 33 Args: 34 ranges (:obj:dict of :obj:list): Dictionary of parameters with a two element list containing the 35 its minimum and maximum attainable values respectively. 36 parameter_list (list): List of parameter names. 37 """ 38 self.keyed_ranges = OrderedDict(ranges) 39 if 'others' in self.keyed_ranges.keys(): 40 for p in list(set(parameter_list)-self.keyed_ranges.keys()): 41 self.keyed_ranges[p] = self.keyed_ranges['others'] 42 del self.keyed_ranges['others'] 43 44 def ranges_as_keyed(self,x=None): 45 """ 46 Converts range list into keyed format. 47 """ 48 if x is None: 49 return self.keyed_ranges 50 else: 51 return OrderedDict(zip(self.keyed_ranges.keys(),x)) 52 def ranges_as_list(self,x=None): 53 """ 54 Converts range dictionary into list format. 55 """ 56 if x is None: 57 return self.ranges_as_list(self.keyed_ranges) 58 else: 59 return list(x.values())
RangeParser(ranges, parameter_list)
31 def __init__(self,ranges,parameter_list): 32 """ 33 Args: 34 ranges (:obj:dict of :obj:list): Dictionary of parameters with a two element list containing the 35 its minimum and maximum attainable values respectively. 36 parameter_list (list): List of parameter names. 37 """ 38 self.keyed_ranges = OrderedDict(ranges) 39 if 'others' in self.keyed_ranges.keys(): 40 for p in list(set(parameter_list)-self.keyed_ranges.keys()): 41 self.keyed_ranges[p] = self.keyed_ranges['others'] 42 del self.keyed_ranges['others']
Arguments:
- ranges (: obj:dict of :obj:list): Dictionary of parameters with a two element list containing the its minimum and maximum attainable values respectively.
- parameter_list (list): List of parameter names.