def test_func_to_str(): def func1(x): return x**2 # Should be ok with both functions! for f in _func1, func1: f_src = getsource(f) f_recreated = create_function_from_source(f_src) yield assert_equal, f(2.3), f_recreated(2.3)
def test_func_to_str(): def func1(x): return x**2 # Should be ok with both functions! for f in _func1, func1: f_src = getsource(f) f_recreated = create_function_from_source(f_src) yield assert_equal, f(2.3), f_recreated(2.3)
def evaluate_connect_function(function_source, args, first_arg): func = create_function_from_source(function_source) try: output_value = func(first_arg, *list(args)) except NameError as e: if e.args[0].startswith("global name") and e.args[0].endswith( "is not defined"): e.args = (e.args[0], "Due to engine constraints all imports have to be done inside each function definition") raise e return output_value
def evaluate_connect_function(function_source, args, first_arg): func = create_function_from_source(function_source) try: output_value = func(first_arg, *list(args)) except NameError as e: if e.args[0].startswith("global name") and e.args[0].endswith( "is not defined"): e.args = (e.args[0], ("Due to engine constraints all imports have to be done " "inside each function definition")) raise e return output_value
def _run_interface(self, runtime): function_handle = create_function_from_source(self.inputs.function_str) args = {} for name in self._input_names: value = getattr(self.inputs, name) if isdefined(value): args[name] = value out = function_handle(**args) if len(self._output_names) == 1: self._out[self._output_names[0]] = out else: if isinstance(out, tuple) and (len(out) != len(self._output_names)): raise RuntimeError('Mismatch in number of expected outputs') else: for idx, name in enumerate(self._output_names): self._out[name] = out[idx] return runtime
def _run_interface(self, runtime): function_handle = create_function_from_source(self.inputs.function_str) args = {} for name in self._input_names: value = getattr(self.inputs, name) if isdefined(value): args[name] = value out = function_handle(**args) if len(self._output_names) == 1: self._out[self._output_names[0]] = out else: if isinstance(out, tuple) and (len(out) != len(self._output_names)): raise RuntimeError('Mismatch in number of expected outputs') else: for idx, name in enumerate(self._output_names): self._out[name] = out[idx] return runtime
def test_func_to_str_err(): bad_src = "obbledygobbledygook" with pytest.raises(RuntimeError): create_function_from_source(bad_src)
def test_func_to_str_err(): bad_src = "obbledygobbledygook" with pytest.raises(RuntimeError): create_function_from_source(bad_src)