Torchlight3/Torchlight/SourceModAPI.py

28 lines
590 B
Python
Executable File

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import functools
class SourceModAPI:
def __init__(self, master):
self.Torchlight = master
def __getattr__(self, attr):
try:
return super(SourceModAPI, self).__getattr__(attr)
except AttributeError:
return functools.partial(self._MakeCall, attr)
async def _MakeCall(self, function, *args, **kwargs):
Obj = {
"method": "function",
"function": function,
"args": args
}
Res = await self.Torchlight().Send(Obj)
if Res["error"]:
raise Exception("{0}({1})\n{2}".format(function, args, Res["error"]))
return Res