1 from functools
import wraps
7 self
.namespace
= {'GPR': self
.gpr
, 'MEM': self
.mem
}
10 """ Decorator factory. """
11 def variable_injector(func
):
13 def decorator(*args
, **kwargs
):
15 func_globals
= func
.__globals
__ # Python 2.6+
16 except AttributeError:
17 func_globals
= func
.func_globals
# Earlier versions.
19 saved_values
= func_globals
.copy() # Shallow copy of dict.
20 func_globals
.update(context
)
22 result
= func(*args
, **kwargs
)
23 #exec (func.__code__, func_globals)
26 # func_globals = saved_values # Undo changes.
32 return variable_injector
34 if __name__
== '__main__':
36 namespace
= {'a': 5, 'b': 3, 'd': d
}