Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
method=method,
args=_make_reference_for_native(self, args),
)
)
if isinstance(promise, Callback):
promise = _callback_till_result(self, promise, BeginResponse)
callbacks = self.provider.callbacks(CallbacksRequest()).callbacks
while callbacks:
for callback in callbacks:
try:
result = _handle_callback(self, callback)
except Exception as exc:
# TODO: Maybe we want to print the whole traceback here?
complete = self.provider.complete(
CompleteRequest(cbid=callback.cbid, err=str(exc))
)
else:
complete = self.provider.complete(
CompleteRequest(cbid=callback.cbid, result=result)
)
assert complete.cbid == callback.cbid
callbacks = self.provider.callbacks(CallbacksRequest()).callbacks
return self.provider.end(EndRequest(promiseid=promise.promiseid)).result
if isinstance(promise, Callback):
promise = _callback_till_result(self, promise, BeginResponse)
callbacks = self.provider.callbacks(CallbacksRequest()).callbacks
while callbacks:
for callback in callbacks:
try:
result = _handle_callback(self, callback)
except Exception as exc:
# TODO: Maybe we want to print the whole traceback here?
complete = self.provider.complete(
CompleteRequest(cbid=callback.cbid, err=str(exc))
)
else:
complete = self.provider.complete(
CompleteRequest(cbid=callback.cbid, result=result)
)
assert complete.cbid == callback.cbid
callbacks = self.provider.callbacks(CallbacksRequest()).callbacks
return self.provider.end(EndRequest(promiseid=promise.promiseid)).result
StaticInvokeRequest,
_with_api_key("sinvoke", self._serializer.unstructure_attrs_asdict),
)
self._serializer.register_unstructure_hook(
BeginRequest,
_with_api_key("begin", self._serializer.unstructure_attrs_asdict),
)
self._serializer.register_unstructure_hook(
EndRequest, _with_api_key("end", self._serializer.unstructure_attrs_asdict)
)
self._serializer.register_unstructure_hook(
CallbacksRequest,
_with_api_key("callbacks", self._serializer.unstructure_attrs_asdict),
)
self._serializer.register_unstructure_hook(
CompleteRequest,
_with_api_key("complete", self._serializer.unstructure_attrs_asdict),
)
self._serializer.register_unstructure_hook(
StatsRequest,
_with_api_key("stats", self._serializer.unstructure_attrs_asdict),
)
self._serializer.register_unstructure_hook(
Override, self._serializer.unstructure_attrs_asdict
)
self._serializer.register_unstructure_hook(ObjRef, _unstructure_ref)
self._serializer.register_structure_hook(ObjRef, _with_reference)
self._ctx_stack = contextlib.ExitStack()
def sync_complete(
self, cbid: str, err: Optional[str], result: Any, response_type: Type[KernelResponse]
) -> Any:
return self.provider.sync_complete(
CompleteRequest(
cbid=cbid,
err=err,
result=_make_reference_for_native(self, result)),
response_type=response_type
)
def complete(
self, cbid: str, err: Optional[str], result: Any
) -> Any:
return self.provider.complete(
CompleteRequest(
cbid=cbid,
err=err,
result=_make_reference_for_native(self, result)
)