def condition_func(self, condition_func): if condition_func is None: self._condition_func = lambda reference_params: reference_params else: self._condition_func = condition_func self._required_variables = infer_parameters_from_function( self.condition_func)
def __init__(self, model_functions=None): """ Parameters ---------- model_functions: list List of functions to compute. """ self.models = model_functions self.parameters = dict() for func in self.models: param_keys = infer_parameters_from_function(func) for key in param_keys: self.parameters[key] = None
def test_both(self): expected = ['a', 'b'] actual = utils.infer_parameters_from_function(self.source3) self.assertListEqual(expected, actual)
def test_args_kwargs_handling(self): expected = ['a', 'b'] actual = utils.infer_parameters_from_function(self.source2) self.assertListEqual(expected, actual)
def test_type_hinting(self): expected = ['a', 'b'] actual = utils.infer_parameters_from_function(self.source1) self.assertListEqual(expected, actual)
def test_self_handling_method_as_function(self): expected = ["a", "b"] actual = utils.infer_parameters_from_function(self.source3) self.assertListEqual(expected, actual)
def _get_function_parameters(self, func): param_keys = infer_parameters_from_function(func) parameters = {key: self.parameters[key] for key in param_keys} return parameters