I'm trying to write Pyton 3 wrapper for eval() function for Lua source strings.
For executing Lua expressions in Python I use eval() from Lupa library. But signature of eval() in Lupa is differ from Python built-in eval():
- Lupa eval:
eval(source: str), - Python eval:
eval(source: str, globals: dict, locals: dict).
Of course, if globals and locals are None, I can simply write my function. Calling Lupa's eval within self-wrintten eval is enough for this:
import lupa
lua_run = lupa.LuaRuntime(unpack_returned_tuples=True)
def eval(expression, globals=None, locals=None):
return lua_run.eval(expression)
But what I have to do if I want to transfer non-empty globals and locals dictionaries?
Maybe, it isn't possible in Lupa and I have to use some other libraries?