code: def wraps_with_context(func, context):
      
      wrapped = functools.partial(func, context)
      wrapped = functools.wraps(func)(wrapped)
      if asyncio.iscoroutinefunction(func):
          wrapped = asyncio.coroutine(wrapped)
      return wrapped
docs: Return a wrapped partial(func, context)