def __init__(self, experiment, label=None): """Initialize the SetNormalResourceProperties Action""" super(SetNormalResourceProperties, self).__init__(experiment, name="SetNormalResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint(self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint(self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError("SetNormalResourceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'NormalResource': raise ConfigurationError("SetNormalResourceProperties: Resource '%s' is not a NormalResource" % (self.resource)) self.inflow = self.experiment.config.getfloat(self.config_section, 'inflow') if self.inflow and self.inflow < 0: raise ConfigurationError("SetNormalResourceProperties: Invalid value for inflow '%f'. Must be nonnegative." % (self.inflow)) self.decay = self.experiment.config.getfloat(self.config_section, 'decay') if self.decay and self.decay < 0: raise ConfigurationError("SetNormalResourceProperties: Invalid value for decay '%f'. Must be nonnegative." % (self.decay)) elif self.decay and self.decay > 1: raise ConfigurationError("SetNormalResourceProperties: Invalid value for decay '%f'. Must not be greater than 1." % (self.decay)) self.diffusion = self.experiment.config.getfloat(self.config_section, 'diffusion') if self.diffusion and self.diffusion < 0: raise ConfigurationError("SetNormalResourceProperties: Invalid value for diffusion '%f'. Must be nonnegative." % (self.diffusion)) elif self.diffusion and self.diffusion > 1: raise ConfigurationError("SetNormalResourceProperties: Invalid value for diffusion '%f'. Must not be greater than 1." % (self.diffusion)) self.level = self.experiment.config.getfloat(self.config_section, 'level') if self.level and self.level < 0: raise ConfigurationError("SetNormalResourceProperties: Invalid value for level '%f'. Must be nonnegative." % (self.level)) if not self.inflow and self.inflow != 0 and not self.decay and self.decay != 0 and not self.diffusion and self.diffusion != 0 and not self.level and self.level != 0: raise ConfigurationError("SetNormalResourceProperties: Must specify value for inflow, decay, diffusion, or level") self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError("SetNormalResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))
def __init__(self, experiment, label=None): """Initialize the SetSquareResourceProperties Action""" super(SetSquareResourceProperties, self).__init__(experiment, name="SetSquareResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint(self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint(self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError("SetSquareResourceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'SquareResource': raise ConfigurationError("SetSquareResourceProperties: Resource '%s' is not a SquareResource" % (self.resource)) self.period = self.experiment.config.getfloat(self.config_section, 'period') if self.period and self.period < 0: raise ConfigurationError("SetSquareResourceProperties: Invalid value for period '%f'. Must be nonnegative." % (self.period)) self.high = self.experiment.config.getfloat(self.config_section, 'high') self.low = self.experiment.config.getfloat(self.config_section, 'low') if self.high and self.low and self.high < self.low: raise ConfigurationError("SetSquareResourceProperties: High value must not be greater than low value." % (self.period)) # NOTE: should also make sure that new high or low values (if one is not specified) is valid with the current configuration self.duty_cycle = self.experiment.config.getfloat(self.config_section, 'duty_cycle') if self.duty_cycle and self.duty_cycle < 0: raise ConfigurationError("SetSquareResourceProperties: Invalid value for duty_cycle '%f'. Must be nonnegative." % (self.duty_cycle)) if not self.period and not self.high and not self.low and not self.duty_cycle: raise ConfigurationError("SetSquareResourceProperties: Must specify value for period, high, low, or duty_cycle") self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError("SetSquareResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))
def __init__(self, experiment, label=None): """Initialize the SetSineResourceProperties Action""" super(SetSineResourceProperties, self).__init__(experiment, name="SetSineResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint(self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint(self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError("SetSinSinerceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'SineResource': raise ConfigurationError("SetSineResourceProperties: Resource '%s' is not a SineResource" % (self.resource)) self.period = self.experiment.config.getfloat(self.config_section, 'period') if self.period and self.period <= 0: raise ConfigurationError("SetSineResourceProperties: Invalid value for period '%f'. Must be nonzero and nonnegative." % (self.period)) self.amplitude = self.experiment.config.getfloat(self.config_section, 'amplitude') if self.amplitude and self.amplitude < 0: raise ConfigurationError("SetSineResourceProperties: Invalid value for amplitude '%f'. Must be nonnegative." % (self.amplitude)) self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError("SetSineResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))
def __init__(self, experiment, label=None): """Initialize the SetNormalResourceProperties Action""" super(SetNormalResourceProperties, self).__init__(experiment, name="SetNormalResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint( self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint( self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError( "SetNormalResourceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'NormalResource': raise ConfigurationError( "SetNormalResourceProperties: Resource '%s' is not a NormalResource" % (self.resource)) self.inflow = self.experiment.config.getfloat(self.config_section, 'inflow') if self.inflow and self.inflow < 0: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for inflow '%f'. Must be nonnegative." % (self.inflow)) self.decay = self.experiment.config.getfloat(self.config_section, 'decay') if self.decay and self.decay < 0: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for decay '%f'. Must be nonnegative." % (self.decay)) elif self.decay and self.decay > 1: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for decay '%f'. Must not be greater than 1." % (self.decay)) self.diffusion = self.experiment.config.getfloat( self.config_section, 'diffusion') if self.diffusion and self.diffusion < 0: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for diffusion '%f'. Must be nonnegative." % (self.diffusion)) elif self.diffusion and self.diffusion > 1: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for diffusion '%f'. Must not be greater than 1." % (self.diffusion)) self.level = self.experiment.config.getfloat(self.config_section, 'level') if self.level and self.level < 0: raise ConfigurationError( "SetNormalResourceProperties: Invalid value for level '%f'. Must be nonnegative." % (self.level)) if not self.inflow and self.inflow != 0 and not self.decay and self.decay != 0 and not self.diffusion and self.diffusion != 0 and not self.level and self.level != 0: raise ConfigurationError( "SetNormalResourceProperties: Must specify value for inflow, decay, diffusion, or level" ) self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError( "SetNormalResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))
def __init__(self, experiment, label=None): """Initialize the SetSquareResourceProperties Action""" super(SetSquareResourceProperties, self).__init__(experiment, name="SetSquareResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint( self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint( self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError( "SetSquareResourceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'SquareResource': raise ConfigurationError( "SetSquareResourceProperties: Resource '%s' is not a SquareResource" % (self.resource)) self.period = self.experiment.config.getfloat(self.config_section, 'period') if self.period and self.period < 0: raise ConfigurationError( "SetSquareResourceProperties: Invalid value for period '%f'. Must be nonnegative." % (self.period)) self.high = self.experiment.config.getfloat(self.config_section, 'high') self.low = self.experiment.config.getfloat(self.config_section, 'low') if self.high and self.low and self.high < self.low: raise ConfigurationError( "SetSquareResourceProperties: High value must not be greater than low value." % (self.period)) # NOTE: should also make sure that new high or low values (if one is not specified) is valid with the current configuration self.duty_cycle = self.experiment.config.getfloat( self.config_section, 'duty_cycle') if self.duty_cycle and self.duty_cycle < 0: raise ConfigurationError( "SetSquareResourceProperties: Invalid value for duty_cycle '%f'. Must be nonnegative." % (self.duty_cycle)) if not self.period and not self.high and not self.low and not self.duty_cycle: raise ConfigurationError( "SetSquareResourceProperties: Must specify value for period, high, low, or duty_cycle" ) self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError( "SetSquareResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))
def __init__(self, experiment, label=None): """Initialize the SetSineResourceProperties Action""" super(SetSineResourceProperties, self).__init__(experiment, name="SetSineResourceProperties", label=label) self.threshold = self.experiment.config.getint(self.config_section, 'threshold', 0) self.epoch_start = self.experiment.config.getint( self.config_section, 'epoch_start', 0) self.epoch_end = self.experiment.config.getint( self.config_section, 'epoch_end', default=self.experiment.config.getint('Experiment', 'epochs', default=-1)) self.frequency = self.experiment.config.getint(self.config_section, 'frequency', 1) self.priority = self.experiment.config.getint(self.config_section, 'priority', 0) self.resource = self.experiment.config.get(self.config_section, 'resource') try: self.res = self.experiment.resources[self.resource] except KeyError: raise ConfigurationError( "SetSinSinerceProperties: Resource '%s' is undefined" % (self.resource)) if self.res.type != 'SineResource': raise ConfigurationError( "SetSineResourceProperties: Resource '%s' is not a SineResource" % (self.resource)) self.period = self.experiment.config.getfloat(self.config_section, 'period') if self.period and self.period <= 0: raise ConfigurationError( "SetSineResourceProperties: Invalid value for period '%f'. Must be nonzero and nonnegative." % (self.period)) self.amplitude = self.experiment.config.getfloat( self.config_section, 'amplitude') if self.amplitude and self.amplitude < 0: raise ConfigurationError( "SetSineResourceProperties: Invalid value for amplitude '%f'. Must be nonnegative." % (self.amplitude)) self.cells_str = self.experiment.config.get(self.config_section, 'cells') if not self.cells_str: self.cells = self.res.topology.graph.nodes() else: self.cells = parse_int_rangelist(self.cells_str, sorted=True) nids = self.res.topology.graph.nodes() for c in self.cells: if c not in nids: raise ConfigurationError( "SetSineResourceProperties: Cell %d does not exist in Resource '%s'" % (c, self.resource))