o
    Á¿i  ã                   @   s:   d Z ddlZdZdd„ Zejdkreeeedƒƒ dS dS )zS
Decorator `timed` for coroutine methods.

Warning: requires Python 3.5 or higher.
é    NaÏ  
from functools import wraps
try:
    from time import monotonic
except ImportError:
    from time import time as monotonic


def _get_wrapped_co(self, func):
    """
    `timed` wrapper for coroutine methods.
    """
    @wraps(func)
    async def wrapped_co(*args, **kwargs):
        start = monotonic()
        try:
            result = await func(*args, **kwargs)
            return result
        finally:
            self._send(start)
    return wrapped_co
c                 C   s   t dƒ‚)NzWDecorator `timed` compatibility with coroutine functions requires Python 3.5 or higher.)ÚNotImplementedError)ÚselfÚfunc© r   úZ/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/vendor/dogstatsd/context_async.pyÚ_get_wrapped_co-   s   ÿr   )é   é   Úexec)Ú__doc__ÚsysÚASYNC_SOURCEr   Úversion_infor
   ÚcompileÚ__file__r   r   r   r   Ú<module>   s   
ÿ