blob: bada634d1c0cb5260aef133ea11155c3a1bde627 [file] [log] [blame]
from functools import partial
def _local_invoke(rref, func_name, args, kwargs):
return getattr(rref.local_value(), func_name)(*args, **kwargs)
def _invoke_rpc(rref, rpc_api, func_name, *args, **kwargs):
return rpc_api(
rref.owner(),
_local_invoke,
args=(rref, func_name, args, kwargs)
)
class RRefProxy:
def __init__(self, rref, rpc_api):
self.rref = rref
self.rpc_api = rpc_api
def __getattr__(self, func_name):
return partial(_invoke_rpc, self.rref, self.rpc_api, func_name)