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):
16def datetime_parser(h,d):
17    return datetime.strptime(f"{h}_{d}","%H:%M:%S_%d.%m.%Y")
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 of OrderedDict): Data obtained from ReactorManager.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.
keyed_ranges
def ranges_as_keyed(self, x=None):
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))

Converts range list into keyed format.

def ranges_as_list(self, x=None):
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())

Converts range dictionary into list format.