Source code for daemon.clients.mixin
from functools import partialmethod
from jina.helper import run_async
[docs]class AsyncToSyncMixin:
"""Mixin to convert `async def`s to `def`"""
[docs] def func(self, func_name, *args, **kwargs):
"""convert async method `func_name` to a normal method
:param func_name: name of method in super
:param args: positional args
:param kwargs: keyword args
:return: run func_name from super
"""
f = getattr(super(), func_name, None)
if f:
return run_async(f, any_event_loop=True, *args, **kwargs)
alive = partialmethod(func, 'alive')
status = partialmethod(func, 'status')
get = partialmethod(func, 'get')
list = partialmethod(func, 'list')
arguments = partialmethod(func, 'arguments')
create = partialmethod(func, 'create')
update = partialmethod(func, 'update')
rolling_update = partialmethod(func, 'rolling_update')
scale = partialmethod(func, 'scale')
delete = partialmethod(func, 'delete')