本文整理汇总了Python中asyncio.WindowsSelectorEventLoopPolicy方法的典型用法代码示例。如果您正苦于以下问题:Python asyncio.WindowsSelectorEventLoopPolicy方法的具体用法?Python asyncio.WindowsSelectorEventLoopPolicy怎么用?Python asyncio.WindowsSelectorEventLoopPolicy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类asyncio
的用法示例。
在下文中一共展示了asyncio.WindowsSelectorEventLoopPolicy方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _init_asyncio_patch
# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import WindowsSelectorEventLoopPolicy [as 别名]
def _init_asyncio_patch():
"""
Select compatible event loop for Tornado 5+.
As of Python 3.8, the default event loop on Windows is `proactor`,
however Tornado requires the old default "selector" event loop.
As Tornado has decided to leave this to users to set, MkDocs needs
to set it. See https://github.com/tornadoweb/tornado/issues/2608.
"""
if sys.platform.startswith("win") and sys.version_info >= (3, 8):
import asyncio
try:
from asyncio import WindowsSelectorEventLoopPolicy
except ImportError:
pass # Can't assign a policy which doesn't exist.
else:
if not isinstance(asyncio.get_event_loop_policy(), WindowsSelectorEventLoopPolicy):
asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
示例2: event_loop
# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import WindowsSelectorEventLoopPolicy [as 别名]
def event_loop(request):
"""Overwrite `pytest_asyncio` eventloop to fix Windows issue.
Default implementation causes `NotImplementedError` on Windows with
Python 3.8, because they changed default eventloop in 3.8.
NOTE: We do the same thing in the `example/settings.py` because it
imports (and fails) before we have a chance to invoke this fixture.
So, we could avoid adding this fixture, but I feel it is better to
keep the proper solution here as well.
"""
if sys.platform == "win32" and sys.version_info.minor >= 8:
asyncio.set_event_loop_policy(
asyncio.WindowsSelectorEventLoopPolicy() # pylint: disable=no-member
)
loop = asyncio.get_event_loop_policy().new_event_loop()
yield loop
loop.close()
示例3: _init_asyncio_patch
# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import WindowsSelectorEventLoopPolicy [as 别名]
def _init_asyncio_patch():
"""
Select compatible event loop for Tornado 5+.
As of Python 3.8, the default event loop on Windows is `proactor`,
however Tornado requires the old default "selector" event loop.
As Tornado has decided to leave this to users to set, MkDocs needs
to set it. See https://github.com/tornadoweb/tornado/issues/2608.
"""
if sys.platform.startswith("win") and sys.version_info >= (3, 8):
import asyncio
try:
from asyncio import WindowsSelectorEventLoopPolicy
except ImportError:
pass # Can't assign a policy which doesn't exist.
else:
if not isinstance(asyncio.get_event_loop_policy(), WindowsSelectorEventLoopPolicy):
asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
示例4: main
# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import WindowsSelectorEventLoopPolicy [as 别名]
def main():
# To avoid 'Event loop is closed' RuntimeError due to compatibility issue with aiohttp
if sys.platform.startswith("win") and sys.version_info >= (3, 8):
try:
from asyncio import WindowsSelectorEventLoopPolicy
except ImportError:
pass
else:
if not isinstance(asyncio.get_event_loop_policy(), WindowsSelectorEventLoopPolicy):
asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
if sys.version_info >= (3, 7):
asyncio.run(cli.main())
else:
loop = asyncio.get_event_loop()
loop.run_until_complete(cli.main())