forked from public/pysim
wip
Change-Id: I0f44d0e90b26b152bcf414ec4497afb8182dd72d
This commit is contained in:
@@ -58,8 +58,8 @@ class BatchPersonalization:
|
||||
|
||||
class ParamAndSrc:
|
||||
'tie a ConfigurableParameter to a source of actual values'
|
||||
def __init__(self, param: ConfigurableParameter, src: param_source.ParamSource):
|
||||
self.param = param
|
||||
def __init__(self, param_cls: ConfigurableParameter, src: param_source.ParamSource):
|
||||
self.param_cls = param_cls
|
||||
self.src = src
|
||||
|
||||
def __init__(self,
|
||||
@@ -85,7 +85,11 @@ class BatchPersonalization:
|
||||
self.csv_rows = csv_rows
|
||||
|
||||
def add_param_and_src(self, param:ConfigurableParameter, src:param_source.ParamSource):
|
||||
self.params.append(BatchPersonalization.ParamAndSrc(param=param, src=src))
|
||||
if isinstance(param, type):
|
||||
param_cls = param
|
||||
else:
|
||||
param_cls = param.__class__
|
||||
self.params.append(BatchPersonalization.ParamAndSrc(param_cls=param_cls, src=src))
|
||||
|
||||
def generate_profiles(self):
|
||||
# get first row of CSV: column names
|
||||
@@ -112,10 +116,10 @@ class BatchPersonalization:
|
||||
try:
|
||||
input_value = p.src.get_next(csv_row=csv_row)
|
||||
assert input_value is not None
|
||||
value = p.param.__class__.validate_val(input_value)
|
||||
p.param.__class__.apply_val(pes, value)
|
||||
value = p.param_cls.validate_val(input_value)
|
||||
p.param_cls.apply_val(pes, value)
|
||||
except Exception as e:
|
||||
raise ValueError(f'{p.param.name} fed by {p.src.name}: {e}') from e
|
||||
raise ValueError(f'{p.param_cls.get_name()} fed by {p.src.name}: {e}') from e
|
||||
|
||||
yield pes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user