Hello community,

here is the log from the commit of package python-celery for openSUSE:Factory 
checked in at 2019-02-27 15:05:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-celery (Old)
 and      /work/SRC/openSUSE:Factory/.python-celery.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-celery"

Wed Feb 27 15:05:59 2019 rev:25 rq:678212 version:4.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-celery/python-celery.changes      
2019-02-01 12:22:50.806339931 +0100
+++ /work/SRC/openSUSE:Factory/.python-celery.new.28833/python-celery.changes   
2019-02-27 15:06:10.322446587 +0100
@@ -1,0 +2,18 @@
+Thu Feb 21 10:48:26 UTC 2019 - John Vandenberg <jay...@gmail.com>
+
+- Replace no-async.patch with three Python 3.7 patches merged upstream
+  python37-1.patch, python37-2.patch & python37-3.patch
+- Replace sed invocation with unpin-pytest.patch for clarity
+
+-------------------------------------------------------------------
+Thu Feb 21 09:44:59 UTC 2019 - John Vandenberg <jay...@gmail.com>
+
+- Add missing dependency on pytz, needed by celery.utils
+- Remove unused build dependency on cl
+
+-------------------------------------------------------------------
+Fri Feb 15 11:07:36 UTC 2019 - John Vandenberg <jay...@gmail.com>
+
+- Add relax-billiard-pin.patch to allow billiard 3.6.0.0
+
+-------------------------------------------------------------------

Old:
----
  no-async.patch

New:
----
  python37-1.patch
  python37-2.patch
  python37-3.patch
  relax-billiard-pin.patch
  unpin-pytest.patch

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

Other differences:
------------------
++++++ python-celery.spec ++++++
--- /var/tmp/diff_new_pack.bQ7FqL/_old  2019-02-27 15:06:14.334445366 +0100
+++ /var/tmp/diff_new_pack.bQ7FqL/_new  2019-02-27 15:06:14.334445366 +0100
@@ -27,11 +27,15 @@
 Source:         
https://files.pythonhosted.org/packages/source/c/celery/celery-%{version}.tar.gz
 Patch0:         disable-pytest-log-capturing.patch
 Patch1:         celery-no-redis.patch
-Patch2:         no-async.patch
+Patch2:         unpin-pytest.patch
+Patch3:         relax-billiard-pin.patch
+# Upstream patches for Python 3.7 support
+Patch4:         python37-1.patch
+Patch5:         python37-2.patch
+Patch6:         python37-3.patch
 BuildRequires:  %{python_module SQLAlchemy}
 BuildRequires:  %{python_module billiard >= 3.5.0.2}
 BuildRequires:  %{python_module case >= 1.3.1}
-BuildRequires:  %{python_module cl}
 BuildRequires:  %{python_module curses}
 BuildRequires:  %{python_module eventlet}
 BuildRequires:  %{python_module gevent}
@@ -39,7 +43,7 @@
 BuildRequires:  %{python_module pyOpenSSL}
 BuildRequires:  %{python_module pytest >= 3.0}
 BuildRequires:  %{python_module python-dateutil}
-BuildRequires:  %{python_module pytz}
+BuildRequires:  %{python_module pytz >= 2016.7}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  netcfg
@@ -47,6 +51,7 @@
 Requires:       python-billiard >= 3.5.0.2
 Requires:       python-kombu >= 4.0.2
 Requires:       python-python-dateutil
+Requires:       python-pytz >= 2016.7
 Requires:       python-vine
 Recommends:     python-curses
 Recommends:     python-pyOpenSSL
@@ -66,7 +71,6 @@
 %prep
 %setup -q -n celery-%{version}
 %autopatch -p1
-sed -i -e 's:,<3.3::g' requirements/test.txt
 
 %build
 %python_build

++++++ python37-1.patch ++++++
>From e7002769211f7340f38df80b3112706a8e07cafb Mon Sep 17 00:00:00 2001
From: Asif Saifuddin Auvi <auv...@gmail.com>
Date: Mon, 9 Jul 2018 11:33:36 +0600
Subject: [PATCH] Python 3.7 compat issues (#4852)

* renamed banckend.async to asynchronous

* adjust redis imports of async

* adjust imports of async

* import style adjust

* renamed doc from async to asynchronous

* renamed doc contents from async to asynchronous
---
 celery/backends/{async.py => asynchronous.py}              | 0
 celery/backends/redis.py                                   | 7 ++++---
 celery/backends/rpc.py                                     | 2 +-
 ...backends.async.rst => celery.backends.asynchronous.rst} | 6 +++---
 t/unit/backends/test_redis.py                              | 4 ++--
 5 files changed, 10 insertions(+), 9 deletions(-)
 rename celery/backends/{async.py => asynchronous.py} (100%)
 rename docs/internals/reference/{celery.backends.async.rst => 
celery.backends.asynchronous.rst} (52%)

diff --git a/celery/backends/async.py b/celery/backends/asynchronous.py
similarity index 100%
rename from celery/backends/async.py
rename to celery/backends/asynchronous.py
diff --git a/celery/backends/redis.py b/celery/backends/redis.py
index 012db0f36e..6c311d8273 100644
--- a/celery/backends/redis.py
+++ b/celery/backends/redis.py
@@ -19,7 +19,8 @@
 from celery.utils.log import get_logger
 from celery.utils.time import humanize_seconds
 
-from . import async, base
+from .asynchronous import AsyncBackendMixin, BaseResultConsumer
+from .base import BaseKeyValueStoreBackend
 
 try:
     from urllib.parse import unquote
@@ -74,7 +75,7 @@
 logger = get_logger(__name__)
 
 
-class ResultConsumer(async.BaseResultConsumer):
+class ResultConsumer(BaseResultConsumer):
     _pubsub = None
 
     def __init__(self, *args, **kwargs):
@@ -138,7 +139,7 @@ def cancel_for(self, task_id):
             self._pubsub.unsubscribe(key)
 
 
-class RedisBackend(base.BaseKeyValueStoreBackend, async.AsyncBackendMixin):
+class RedisBackend(BaseKeyValueStoreBackend, AsyncBackendMixin):
     """Redis task result store."""
 
     ResultConsumer = ResultConsumer
diff --git a/celery/backends/rpc.py b/celery/backends/rpc.py
index 6e31cef75e..5e6e407ce6 100644
--- a/celery/backends/rpc.py
+++ b/celery/backends/rpc.py
@@ -17,7 +17,7 @@
 from celery.five import items, range
 
 from . import base
-from .async import AsyncBackendMixin, BaseResultConsumer
+from .asynchronous import AsyncBackendMixin, BaseResultConsumer
 
 __all__ = ('BacklogLimitExceeded', 'RPCBackend')
 
diff --git a/docs/internals/reference/celery.backends.async.rst 
b/docs/internals/reference/celery.backends.asynchronous.rst
similarity index 52%
rename from docs/internals/reference/celery.backends.async.rst
rename to docs/internals/reference/celery.backends.asynchronous.rst
index 03d10feb33..fef524294e 100644
--- a/docs/internals/reference/celery.backends.async.rst
+++ b/docs/internals/reference/celery.backends.asynchronous.rst
@@ -1,12 +1,12 @@
 =====================================
- ``celery.backends.async``
+ ``celery.backends.asynchronous``
 =====================================
 
 .. contents::
     :local:
-.. currentmodule:: celery.backends.async
+.. currentmodule:: celery.backends.asynchronous
 
-.. automodule:: celery.backends.async
+.. automodule:: celery.backends.asynchronous
     :members:
     :undoc-members:
 
diff --git a/t/unit/backends/test_redis.py b/t/unit/backends/test_redis.py
index 166aa0dc34..6a7dbbd501 100644
--- a/t/unit/backends/test_redis.py
+++ b/t/unit/backends/test_redis.py
@@ -146,7 +146,7 @@ class _RedisBackend(RedisBackend):
     def get_consumer(self):
         return self.get_backend().result_consumer
 
-    @patch('celery.backends.async.BaseResultConsumer.on_after_fork')
+    @patch('celery.backends.asynchronous.BaseResultConsumer.on_after_fork')
     def test_on_after_fork(self, parent_method):
         consumer = self.get_consumer()
         consumer.start('none')
@@ -172,7 +172,7 @@ def test_on_after_fork(self, parent_method):
         parent_method.assert_called_once()
 
     @patch('celery.backends.redis.ResultConsumer.cancel_for')
-    @patch('celery.backends.async.BaseResultConsumer.on_state_change')
+    @patch('celery.backends.asynchronous.BaseResultConsumer.on_state_change')
     def test_on_state_change(self, parent_method, cancel_for):
         consumer = self.get_consumer()
         meta = {'task_id': 'testing', 'status': states.SUCCESS}
++++++ python37-2.patch ++++++
>From 1c3a15938d0b9dde674d4666689d6a6c733d64e4 Mon Sep 17 00:00:00 2001
From: kidoz <cki...@gmail.com>
Date: Thu, 12 Jul 2018 20:02:10 +0300
Subject: [PATCH] Added compatibility with python 3.7 (#4902)

---
 celery/app/routes.py      | 8 +++++++-
 t/unit/app/test_routes.py | 5 +++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/celery/app/routes.py b/celery/app/routes.py
index 9957a4feae..dc06eb988e 100644
--- a/celery/app/routes.py
+++ b/celery/app/routes.py
@@ -17,6 +17,12 @@
 from celery.utils.functional import maybe_evaluate, mlazy
 from celery.utils.imports import symbol_by_name
 
+try:
+    Pattern = re._pattern_type
+except AttributeError:  # pragma: no cover
+    # for support Python 3.7
+    Pattern = re.Pattern
+
 __all__ = ('MapRoute', 'Router', 'prepare')
 
 
@@ -33,7 +39,7 @@ def __init__(self, map):
         self.map = {}
         self.patterns = OrderedDict()
         for k, v in map:
-            if isinstance(k, re._pattern_type):
+            if isinstance(k, Pattern):
                 self.patterns[k] = v
             elif '*' in k:
                 self.patterns[re.compile(glob_to_re(k))] = v
diff --git a/t/unit/app/test_routes.py b/t/unit/app/test_routes.py
index 8d3eac0417..5ed8c53b1c 100644
--- a/t/unit/app/test_routes.py
+++ b/t/unit/app/test_routes.py
@@ -78,12 +78,17 @@ def test_route_for_task(self):
         assert route('celery.awesome') is None
 
     def test_route_for_task__glob(self):
+        from re import compile
+
         route = routes.MapRoute([
             ('proj.tasks.*', 'routeA'),
             ('demoapp.tasks.bar.*', {'exchange': 'routeB'}),
+            (compile(r'(video|image)\.tasks\..*'), {'queue': 'media'}),
         ])
         assert route('proj.tasks.foo') == {'queue': 'routeA'}
         assert route('demoapp.tasks.bar.moo') == {'exchange': 'routeB'}
+        assert route('video.tasks.foo') == {'queue': 'media'}
+        assert route('image.tasks.foo') == {'queue': 'media'}
         assert route('demoapp.foo.bar.moo') is None
 
     def test_expand_route_not_found(self):
++++++ python37-3.patch ++++++
>From 6ab775eb6b5643311af21557fa84d10ce605eb17 Mon Sep 17 00:00:00 2001
From: Omer Katz <omer.d...@gmail.com>
Date: Fri, 4 Jan 2019 07:12:10 +0200
Subject: [PATCH] Avoid raising StopIterator in generators. (#5263)

According to [PEP-479](https://www.python.org/dev/peps/pep-0479/) StopIteration 
should not be used any more to indicate the termination of a generator.
Starting from Python 3.7 this behaviour is always enforced and a RuntimeError 
is raised instead.
Instead of raising a StopIterator exception, we now never execute our yield 
statement.
Since it is present Gen is still a generator but it will never yield any value.
---
 t/unit/worker/test_loops.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/t/unit/worker/test_loops.py b/t/unit/worker/test_loops.py
index f86f730f16..d57b416e47 100644
--- a/t/unit/worker/test_loops.py
+++ b/t/unit/worker/test_loops.py
@@ -383,8 +383,8 @@ def test_poll_write_generator_stopped(self):
         x = X(self.app)
 
         def Gen():
-            raise StopIteration()
-            yield
+            if 0:
+                yield
         gen = Gen()
         x.hub.add_writer(6, gen)
         x.hub.on_tick.add(x.close_then_error(Mock(name='tick'), 2))
++++++ relax-billiard-pin.patch ++++++
--- celery-4.2.1-orig/requirements/default.txt  2018-05-21 14:35:08.000000000 
+0700
+++ celery-4.2.1/requirements/default.txt       2019-02-15 17:25:21.902960298 
+0700
@@ -1,3 +1,3 @@
 pytz>dev
-billiard>=3.5.0.2,<3.6.0
+billiard>=3.5.0.2
 kombu>=4.2.0,<5.0
++++++ unpin-pytest.patch ++++++
--- celery-4.2.1/requirements/test.txt.orig     2019-02-21 17:43:53.252577134 
+0700
+++ celery-4.2.1/requirements/test.txt  2019-02-21 17:44:02.860644766 +0700
@@ -1,2 +1,2 @@
 case>=1.3.1
-pytest>=3.0,<3.3
+pytest>=3.0

Reply via email to