File pr_1.patch of Package python-aioeventlet
commit fb25301bd9dc5dbf77a66349b2434ee672868fd2
Author: John Vandenberg <jayvdb@gmail.com>
Date: Wed Aug 19 17:21:53 2020 +0700
aioeventlet: Fix breakage in Python 3.7+ asyncio
Index: aioeventlet-0.5.1/aioeventlet.py
===================================================================
--- aioeventlet-0.5.1.orig/aioeventlet.py
+++ aioeventlet-0.5.1/aioeventlet.py
@@ -10,6 +10,12 @@ logger = logging.getLogger('aioeventlet'
try:
import asyncio
+ try:
+ import selectors
+ except ImportError:
+ pass
+ else:
+ asyncio.selectors = selectors
if sys.platform == 'win32':
from asyncio.windows_utils import socketpair
@@ -212,16 +218,16 @@ class EventLoop(asyncio.SelectorEventLoo
# the selector
self._write_to_self()
- def call_soon(self, callback, *args):
- handle = super(EventLoop, self).call_soon(callback, *args)
+ def call_soon(self, callback, *args, **kwargs):
+ handle = super(EventLoop, self).call_soon(callback, *args, **kwargs)
if self._selector is not None and self._selector._event:
# selector.select() is running: write into the self-pipe to wake up
# the selector
self._write_to_self()
return handle
- def call_at(self, when, callback, *args):
- handle = super(EventLoop, self).call_at(when, callback, *args)
+ def call_at(self, when, callback, *args, **kwargs):
+ handle = super(EventLoop, self).call_at(when, callback, *args, **kwargs)
if self._selector is not None and self._selector._event:
# selector.select() is running: write into the self-pipe to wake up
# the selector
@@ -329,7 +335,11 @@ def yield_future(future, loop=None):
The function must not be called from the greenthread
running the aioeventlet event loop.
"""
- future = asyncio.async(future, loop=loop)
+ if hasattr(asyncio, "ensure_future"):
+ ensure_future = asyncio.ensure_future
+ else: # use of async keyword has been Deprecated since Python 3.4.4
+ ensure_future = getattr(asyncio, "async")
+ future = ensure_future(future, loop=loop)
if future._loop._greenthread == eventlet.getcurrent():
raise RuntimeError("yield_future() must not be called from "
"the greenthread of the aioeventlet event loop")