How to create a Python decorator that can wrap either coroutine or function?
May be you can find better way to do it, but, for example, you can just move your wrapping logic to some context manager to prevent code duplication: import asyncio import functools import time from contextlib import contextmanager def duration(func): @contextmanager def wrapping_logic(): start_ts = time.time() yield dur = time.time() – start_ts print(‘{} took {:.2} … Read more