def wrapper(*args, **kwargs): to_replace = { k: v for k, v in kwargs.items() if k.startswith('env__') } for key in to_replace.keys(): kwargs.pop(key) env_dict_new = env_dict._replace_flatten_keys(to_replace) try: Env._init_from_decorator(env_dict_new, _get_function_name_w_module(fn)) except Exception as e: current = Env.load() raise RuntimeError('Failed to initialize environment using ' '@with_env decorator in function "{}". ' 'Current environment: {}'.format( _get_function_name_w_module(fn), repr(current))) from e Env._ref = _get_function_name_w_module(fn) try: res = fn(Env.load(), *args, **kwargs) except Exception as e: Env.end() raise e Env.end() return res
def wrapper(*args, **kwargs): return fn(Env.load(), *args, **kwargs)