20 lines
528 B
Python
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
|