Files
Fulfillment-Backend/decorators/async_utils.py
2024-09-01 01:05:11 +03:00

20 lines
528 B
Python

import asyncio
from functools import wraps
def async_to_sync(func):
@wraps(func)
def wrapper(*args, **kwargs):
# Get the current event loop
loop = asyncio.get_event_loop()
# If there is no current event loop, create a new one
if loop.is_closed():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
# Run the async function until complete and return the result
return loop.run_until_complete(func(*args, **kwargs))
return wrapper