[core] Support kwargs and positionals in Ray remote calls (#5606)

This commit is contained in:
Richard Liaw
2019-10-20 22:40:54 -07:00
committed by GitHub
parent fc56872012
commit 26a724c5e6
9 changed files with 387 additions and 179 deletions
+5 -5
View File
@@ -75,9 +75,9 @@ class RemoteFunction(object):
self._decorator = getattr(function, "__ray_invocation_decorator__",
None)
ray.signature.check_signature_supported(self._function)
self._function_signature = ray.signature.extract_signature(
self._function)
self._last_export_session_and_job = None
# Override task.remote's signature and docstring
@wraps(function)
@@ -140,17 +140,17 @@ class RemoteFunction(object):
memory, object_store_memory, resources)
def invocation(args, kwargs):
args = ray.signature.extend_args(self._function_signature, args,
kwargs)
list_args = ray.signature.flatten_args(self._function_signature,
args, kwargs)
if worker.mode == ray.worker.LOCAL_MODE:
object_ids = worker.local_mode_manager.execute(
self._function, self._function_descriptor, args,
self._function, self._function_descriptor, args, kwargs,
num_return_vals)
else:
object_ids = worker.core_worker.submit_task(
self._function_descriptor.get_function_descriptor_list(),
args, num_return_vals, resources)
list_args, num_return_vals, resources)
if len(object_ids) == 1:
return object_ids[0]