File size: 901 Bytes
c3837c5
 
 
 
efdc12d
c3837c5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ef1d021
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import asyncio
from functools import wraps
import time


def time_execution(func):
    if asyncio.iscoroutinefunction(func):
        @wraps(func)
        async def async_wrapper(*args, **kwargs):
            start_time = time.time()
            result = await func(*args, **kwargs)
            end_time = time.time()
            execution_time = end_time - start_time
            print(f"Function '{func.__name__}' executed in {execution_time:.4f} seconds")
            return result
        return async_wrapper
    else:
        @wraps(func)
        def sync_wrapper(*args, **kwargs):
            start_time = time.time()
            result = func(*args, **kwargs)
            end_time = time.time()
            execution_time = end_time - start_time
            print(f"Function '{func.__name__}' executed in {execution_time:.4f} seconds")
            return result
        return sync_wrapper