import functools
import asyncio


def coro(func):
    """
    A decorator that runs a command inside asyncio.
    """

    @functools.wraps(func)
    def coro_wrapper(*args, **kwargs):
        loop = asyncio.get_event_loop()
        fut = asyncio.ensure_future(func(*args, **kwargs), loop=loop)
        result = loop.run_until_complete(fut)
        return result

    return coro_wrapper