code: def wait_run_in_executor(func, *args, **kwargs):
      
  
      loop = asyncio.get_event_loop()
      future = loop.run_in_executor(None, functools.partial(func, *args, **kwargs))
      yield from asyncio.wait([future])
      return future.result()
docs: Run blocking code in a different thread and wait
      for the result.
  
      :param func: Run this function in a different thread
      :param args: Parameters of the function
      :param kwargs: Keyword parameters of the function
      :returns: Return the result of the function