Hello community,

here is the log from the commit of package python-aioeventlet for 
openSUSE:Factory checked in at 2020-08-28 21:20:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aioeventlet (Old)
 and      /work/SRC/openSUSE:Factory/.python-aioeventlet.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-aioeventlet"

Fri Aug 28 21:20:30 2020 rev:4 rq:828003 version:0.5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aioeventlet/python-aioeventlet.changes    
2019-11-06 14:05:50.884769835 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-aioeventlet.new.3399/python-aioeventlet.changes
  2020-08-28 21:21:31.352328900 +0200
@@ -1,0 +2,6 @@
+Wed Aug 19 10:34:12 UTC 2020 - John Vandenberg <jay...@gmail.com>
+
+- Add pr_1.patch for Python 3.7+ support
+- Activate test suite on Python 3.7+
+
+-------------------------------------------------------------------

New:
----
  pr_1.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-aioeventlet.spec ++++++
--- /var/tmp/diff_new_pack.OV8rfL/_old  2020-08-28 21:21:31.980329205 +0200
+++ /var/tmp/diff_new_pack.OV8rfL/_new  2020-08-28 21:21:31.984329207 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-aioeventlet
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -26,6 +26,10 @@
 License:        Apache-2.0
 URL:            https://pypi.org/project/aioeventlet/
 Source:         
https://files.pythonhosted.org/packages/source/a/aioeventlet/aioeventlet-%{version}.tar.gz
+# pr_1.patch is Python 3.7+ support
+Patch0:         pr_1.patch
+BuildRequires:  %{python_module eventlet}
+BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  python-rpm-macros
 Requires:       python-eventlet
@@ -51,6 +55,7 @@
 
 %prep
 %setup -q -n aioeventlet-%{intver}
+%patch0 -p1
 
 %build
 %python_build
@@ -58,6 +63,15 @@
 %install
 %python_install
 
+%check
+# Python 2 requires trollius which is not in devel project,
+# and test setup fails on Python 3.6 as it tries to reach live DNS server
+%{python_expand PYTHON_VERSION=%{$python_version_nodots}
+if [[ ${PYTHON_VERSION:0:1} -eq 3 && ${PYTHON_VERSION:1:2} -gt 6 ]]; then
+  # Some tests in test_eventlet.py halt
+  $python -m pytest -k 'EventletTests or test_wrap_invalid_type or 
test_wrap_greenlet_dead or test_wrap_greenlet_running or test_greenlet'
+fi}
+
 %files %{python_files}
 %license COPYING
 %doc README

++++++ pr_1.patch ++++++
commit fb25301bd9dc5dbf77a66349b2434ee672868fd2
Author: John Vandenberg <jay...@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")

Reply via email to