Source code for paco.wraps

# -*- coding: utf-8 -*-
import asyncio
import functools


[docs]def wraps(fn): """ Wraps a given function as coroutine function. This function can be used as decorator. Arguments: fn (function): function object to wrap. Returns: coroutinefunction: wrapped function as coroutine. Usage:: # Use as function wrapper def mult(num, foo=None): return num * 2 coro = paco.wraps(mult) await coro(2, foo='bar') => 4 # Use as decorator @paco.wraps def mult(num): return num * 2 await mult(2) => 4 """ @functools.wraps(fn) @asyncio.coroutine def wrapper(*args, **kw): return fn(*args, **kw) return wrapper