INNER CODE UNIT · Python
ErasedHandler
metatypedev/metatype · src/pyrt_wit_wire/main.py:95
class ErasedHandler:
def __init__(self, handler_fn: HandlerFn[T]) -> None:
self.handler_fn = handler_fn
self.param_count = len(inspect.signature(self.handler_fn).parameters)
def handle(self, req: HandleReq):
in_parsed = json.loads(req.in_json)
if self.param_count == 1:
out = self.handler_fn(in_parsed)
else:
out = self.handler_fn(in_parsed, gql_fn)
return json.dumps(out)
def op_to_handler(op: MatInfo) -> ErasedHandler:
data_parsed = json.loads(op.mat_data_json)
if data_parsed["ty"] == "def":
module = types.ModuleType(op.op_name)