Files
ray/python/ray/async_compat.py
T
Siyuan (Ryans) Zhuang f0dba6bd2b Code cleanup about python3 asyncio compat (#11134)
* cleanup python3 compat and others
2020-09-30 14:22:25 -07:00

32 lines
652 B
Python

"""
This file should only be imported from Python 3.
It will raise SyntaxError when importing from Python 2.
"""
import asyncio
import inspect
try:
import uvloop
except ImportError:
uvloop = None
def get_new_event_loop():
"""Construct a new event loop. Ray will use uvloop if it exists"""
if uvloop:
return uvloop.new_event_loop()
else:
return asyncio.new_event_loop()
def sync_to_async(func):
"""Convert a blocking function to async function"""
if inspect.iscoroutinefunction(func):
return func
async def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper