def to_table(obj): if type(obj) in [tuple, list]: return list_to_table(list(to_table(e) for e in obj)) if type(obj) is dict: return dict_to_table(as_attrgetter( dict((k, to_table(v)) for k, v in obj.items()))) return obj
def to_table(obj): if type(obj) in [tuple, list]: return list_to_table(list(to_table(e) for e in obj)) if type(obj) is dict: return dict_to_table( as_attrgetter(dict((k, to_table(v)) for k, v in obj.items()))) return obj
def query(cls, queries, doc, **kwargs): result = [] for query in queries: lua = LuaRuntime(unpack_returned_tuples=False) handle_func = lua.eval(query) ret = handle_func(lupa.as_attrgetter(doc), kwargs) result.extend(ret) return result
def make_table(dict): return lua.eval(""" function(d) local t = {} for key, value in python.iterex(d.items()) do t[key] = value end return t end """)(lupa.as_attrgetter(dict))
def make_table(dict): return lua.eval(""" function(d) local t = {} for key, value in python.iterex(d.items()) do t[key] = value end return t end """)(lupa.as_attrgetter(dict))
def test_python_iter_dict_items(self): values = self.lua.eval(''' function(d) local t = {} for key, value in python.iterex(d.items()) do t[key] = value end return t end ''') table = values(lupa.as_attrgetter(dict(a=1, b=2, c=3))) self.assertEqual(1, table['a']) self.assertEqual(2, table['b']) self.assertEqual(3, table['c'])
def test_python_iter_dict_items(self): values = self.lua.eval(''' function(d) local t = {} for key, value in python.iterex(d.items()) do t[key] = value end return t end ''') table = values(lupa.as_attrgetter(dict(a=1, b=2, c=3))) self.assertEqual(1, table['a']) self.assertEqual(2, table['b']) self.assertEqual(3, table['c'])
def act(self): env_factory = namedtuple('Env', [ method_name for method_name in dir(self.env) if callable(getattr(self.env, method_name)) and not method_name.startswith("_") ]) env = env_factory( **{ method_name: getattr(self.env, method_name) for method_name in dir(self.env) if callable(getattr(self.env, method_name)) and not method_name.startswith("_") }) ret_val = sandbox.lua_run(lupa.as_attrgetter(env), self.script) try: if len(ret_val) > 2: self.actions[ret_val[1]](int(ret_val[2])) else: self.actions[ret_val[1]]() self.player.have_acted = True except (TypeError, KeyError) as e: print(ret_val) print(traceback.print_exc()) self.player.fold()
_G[k] = v end {0} end """.format(source)) except Exception, e: raise e #return "Bad source", 400 globals = _export_globals() globals['request'] = adapt_request(request) globals['require'] = lua.eval(""" function(name) return loadstring(http.load(name))() end""") return adapt_response(app(lupa.as_attrgetter(globals))) def adapt_request(request): """ builds a request object for lua from a flask request """ def _default_table(input, filter=None): """ converts mapping to lua table """ table = {} for k, v in input.items(): if filter is None: table[k] = v else: table[k] = filter(v) return make_table(table) def _file_adaptor(file):
end {0} end """.format(source)) except Exception, e: raise e #return "Bad source", 400 globals = _export_globals() globals['request'] = adapt_request(request) globals['require'] = lua.eval(""" function(name) return loadstring(http.load(name))() end""") return adapt_response( app(lupa.as_attrgetter(globals))) def adapt_request(request): """ builds a request object for lua from a flask request """ def _default_table(input, filter=None): """ converts mapping to lua table """ table = {} for k,v in input.items(): if filter is None: table[k] = v else: table[k] = filter(v) return make_table(table) def _file_adaptor(file): return make_table(dict( type=file.content_type,