def __call__(self, **params): p = ParamOverrides(self, params, allow_extra_keywords=True) self._apply_cmd_overrides(p) for fn in p.metadata_fns: self.metadata = AttrDict(p.metadata, **fn(p.inputs, p.outputs)) output_names = self.metadata['outputs'].keys() input_names = self.metadata.inputs.keys() inputs = dict.fromkeys(input_names) for k in inputs.keys(): inputs[k] = copy.deepcopy(p.pattern_generator) responses = p.pattern_response_fn(inputs, output_names, durations=p.durations) results = self._collate_results(responses) if p.measurement_storage_hook: p.measurement_storage_hook(results) return results
def __call__(self, **params): p = ParamOverrides(self, params, allow_extra_keywords=True) self._apply_cmd_overrides(p) self.metadata = AttrDict(p.metadata) for fn in p.metadata_fns: self.metadata.update(fn(p.inputs, p.outputs)) output_names = self.metadata.outputs.keys() input_names = self.metadata.inputs.keys() inputs = dict.fromkeys(input_names) if p.input_patterns: for k, ip in p.input_patterns.items(): inputs[k] = ip for name in [k for k, ip in inputs.items() if ip is None]: self.warning("No pattern specified for input %s, defaulting" "to blank Constant pattern." % name) inputs[name] = imagen.Constant(scale=0) else: for k in inputs.keys(): inputs[k] = copy.deepcopy(p.pattern_generator) for f in p.pre_presentation_hooks: f() responses = p.pattern_response_fn(inputs, output_names, durations=p.durations) for f in p.post_presentation_hooks: f() label = inputs.values()[0].__class__.__name__ results = self._collate_results(responses, label) if p.measurement_storage_hook: p.measurement_storage_hook(results) return results