15
0

Accepting request 828003 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/828003
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aioeventlet?expand=0&rev=4
This commit is contained in:
2020-08-28 19:20:30 +00:00
committed by Git OBS Bridge
3 changed files with 78 additions and 1 deletions

57
pr_1.patch Normal file
View File

@@ -0,0 +1,57 @@
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")

View File

@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Aug 19 10:34:12 UTC 2020 - John Vandenberg <jayvdb@gmail.com>
- Add pr_1.patch for Python 3.7+ support
- Activate test suite on Python 3.7+
-------------------------------------------------------------------
Tue Nov 5 09:20:03 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>

View File

@@ -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 @@ Summary: Asyncio event loop scheduling callbacks in eventlet
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 @@ parallel.
%prep
%setup -q -n aioeventlet-%{intver}
%patch0 -p1
%build
%python_build
@@ -58,6 +63,15 @@ parallel.
%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