Hello community,
here is the log from the commit of package python-tenacity for openSUSE:Factory
checked in at 2020-03-03 10:15:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tenacity (Old)
and /work/SRC/openSUSE:Factory/.python-tenacity.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tenacity"
Tue Mar 3 10:15:17 2020 rev:11 rq:780390 version:6.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tenacity/python-tenacity.changes
2019-12-21 12:34:54.099463678 +0100
+++
/work/SRC/openSUSE:Factory/.python-tenacity.new.26092/python-tenacity.changes
2020-03-03 10:15:37.254573469 +0100
@@ -1,0 +2,6 @@
+Fri Feb 28 21:45:23 UTC 2020 - Dirk Mueller <[email protected]>
+
+- update to 6.1.0:
+ * further Python 3.8 fixes
+
+-------------------------------------------------------------------
Old:
----
tenacity-6.0.0.tar.gz
New:
----
tenacity-6.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-tenacity.spec ++++++
--- /var/tmp/diff_new_pack.n4Hswm/_old 2020-03-03 10:15:42.530584386 +0100
+++ /var/tmp/diff_new_pack.n4Hswm/_new 2020-03-03 10:15:42.570584469 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-tenacity
#
-# Copyright (c) 2019 SUSE LLC
+# 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
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without test
Name: python-tenacity
-Version: 6.0.0
+Version: 6.1.0
Release: 0
Summary: Python module for retrying code until it succeeeds
License: Apache-2.0
++++++ tenacity-6.0.0.tar.gz -> tenacity-6.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/PKG-INFO new/tenacity-6.1.0/PKG-INFO
--- old/tenacity-6.0.0/PKG-INFO 2019-11-06 13:12:40.568314800 +0100
+++ new/tenacity-6.1.0/PKG-INFO 2020-02-26 11:39:48.327270300 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: tenacity
-Version: 6.0.0
+Version: 6.1.0
Summary: Retry code until it succeeds
Home-page: https://github.com/jd/tenacity
Author: Julien Danjou
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/README.rst
new/tenacity-6.1.0/README.rst
--- old/tenacity-6.0.0/README.rst 2019-11-06 13:12:32.000000000 +0100
+++ new/tenacity-6.1.0/README.rst 2020-02-26 11:39:39.000000000 +0100
@@ -9,7 +9,7 @@
.. image:: https://img.shields.io/badge/SayThanks.io-%E2%98%BC-1EAEDB.svg
:target: https://saythanks.io/to/jd
-.. image::
https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/jd/tenacity&style=flat
+.. image::
https://img.shields.io/endpoint.svg?url=https://dashboard.mergify.io/badges/jd/tenacity&style=flat
:target: https://mergify.io
:alt: Mergify Status
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/doc/source/api.rst
new/tenacity-6.1.0/doc/source/api.rst
--- old/tenacity-6.0.0/doc/source/api.rst 2019-11-06 13:12:32.000000000
+0100
+++ new/tenacity-6.1.0/doc/source/api.rst 2020-02-26 11:39:39.000000000
+0100
@@ -14,7 +14,7 @@
.. autoclass:: tenacity.AsyncRetrying
:members:
-.. autoclass:: tenacity.TornadoRetrying
+.. autoclass:: tenacity.tornadoweb.TornadoRetrying
:members:
After Functions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/doc/source/conf.py
new/tenacity-6.1.0/doc/source/conf.py
--- old/tenacity-6.0.0/doc/source/conf.py 2019-11-06 13:12:32.000000000
+0100
+++ new/tenacity-6.1.0/doc/source/conf.py 2020-02-26 11:39:39.000000000
+0100
@@ -17,10 +17,14 @@
# limitations under the License.
import os
+import sys
master_doc = 'index'
project = "Tenacity"
+# Add tenacity to the path, so sphinx can find the functions for autodoc.
+sys.path.insert(0, os.path.abspath('../..'))
+
extensions = [
'sphinx.ext.doctest',
'sphinx.ext.autodoc',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/doc/source/index.rst
new/tenacity-6.1.0/doc/source/index.rst
--- old/tenacity-6.0.0/doc/source/index.rst 2019-11-06 13:12:32.000000000
+0100
+++ new/tenacity-6.1.0/doc/source/index.rst 2020-02-26 11:39:39.000000000
+0100
@@ -9,7 +9,7 @@
.. image:: https://img.shields.io/badge/SayThanks.io-%E2%98%BC-1EAEDB.svg
:target: https://saythanks.io/to/jd
-.. image::
https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/jd/tenacity&style=flat
+.. image::
https://img.shields.io/endpoint.svg?url=https://dashboard.mergify.io/badges/jd/tenacity&style=flat
:target: https://mergify.io
:alt: Mergify Status
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/tenacity/__init__.py
new/tenacity-6.1.0/tenacity/__init__.py
--- old/tenacity-6.0.0/tenacity/__init__.py 2019-11-06 13:12:32.000000000
+0100
+++ new/tenacity-6.1.0/tenacity/__init__.py 2020-02-26 11:39:39.000000000
+0100
@@ -18,9 +18,9 @@
# limitations under the License.
try:
- import asyncio
+ from inspect import iscoroutinefunction
except ImportError:
- asyncio = None
+ iscoroutinefunction = None
try:
import tornado
@@ -96,7 +96,7 @@
return retry()(dargs[0])
else:
def wrap(f):
- if asyncio and asyncio.iscoroutinefunction(f):
+ if iscoroutinefunction is not None and iscoroutinefunction(f):
r = AsyncRetrying(*dargs, **dkw)
elif tornado and hasattr(tornado.gen, 'is_coroutine_function') \
and tornado.gen.is_coroutine_function(f):
@@ -479,7 +479,7 @@
self.outcome, self.outcome_timestamp = fut, ts
-if asyncio:
+if iscoroutinefunction:
from tenacity._asyncio import AsyncRetrying
if tornado:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/tenacity/_asyncio.py
new/tenacity-6.1.0/tenacity/_asyncio.py
--- old/tenacity-6.0.0/tenacity/_asyncio.py 2019-11-06 13:12:32.000000000
+0100
+++ new/tenacity-6.1.0/tenacity/_asyncio.py 2020-02-26 11:39:39.000000000
+0100
@@ -16,12 +16,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-try:
- import asyncio
-except ImportError:
- asyncio = None
-
import sys
+from asyncio import sleep
from tenacity import BaseRetrying
from tenacity import DoAttempt
@@ -29,38 +25,30 @@
from tenacity import RetryCallState
-if asyncio:
- class AsyncRetrying(BaseRetrying):
+class AsyncRetrying(BaseRetrying):
- def __init__(self,
- sleep=asyncio.sleep,
- **kwargs):
- super(AsyncRetrying, self).__init__(**kwargs)
- self.sleep = sleep
-
- def wraps(self, fn):
- fn = super().wraps(fn)
- # Ensure wrapper is recognized as a coroutine function.
- fn._is_coroutine = asyncio.coroutines._is_coroutine
- return fn
-
- @asyncio.coroutine
- def call(self, fn, *args, **kwargs):
- self.begin(fn)
-
- retry_state = RetryCallState(
- retry_object=self, fn=fn, args=args, kwargs=kwargs)
- while True:
- do = self.iter(retry_state=retry_state)
- if isinstance(do, DoAttempt):
- try:
- result = yield from fn(*args, **kwargs)
- except BaseException:
- retry_state.set_exception(sys.exc_info())
- else:
- retry_state.set_result(result)
- elif isinstance(do, DoSleep):
- retry_state.prepare_for_next_attempt()
- yield from self.sleep(do)
+ def __init__(self,
+ sleep=sleep,
+ **kwargs):
+ super(AsyncRetrying, self).__init__(**kwargs)
+ self.sleep = sleep
+
+ async def call(self, fn, *args, **kwargs):
+ self.begin(fn)
+
+ retry_state = RetryCallState(
+ retry_object=self, fn=fn, args=args, kwargs=kwargs)
+ while True:
+ do = self.iter(retry_state=retry_state)
+ if isinstance(do, DoAttempt):
+ try:
+ result = await fn(*args, **kwargs)
+ except BaseException:
+ retry_state.set_exception(sys.exc_info())
else:
- return do
+ retry_state.set_result(result)
+ elif isinstance(do, DoSleep):
+ retry_state.prepare_for_next_attempt()
+ await self.sleep(do)
+ else:
+ return do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/tenacity/tests/test_asyncio.py
new/tenacity-6.1.0/tenacity/tests/test_asyncio.py
--- old/tenacity-6.0.0/tenacity/tests/test_asyncio.py 2019-11-06
13:12:32.000000000 +0100
+++ new/tenacity-6.1.0/tenacity/tests/test_asyncio.py 2020-02-26
11:39:39.000000000 +0100
@@ -25,8 +25,6 @@
def asynctest(callable_):
- callable_ = asyncio.coroutine(callable_)
-
@six.wraps(callable_)
def wrapper(*a, **kw):
loop = asyncio.get_event_loop()
@@ -42,27 +40,23 @@
@retry(stop=stop_after_attempt(2))
[email protected]
-def _retryable_coroutine_with_2_attempts(thing):
- yield from asyncio.sleep(0.00001)
+async def _retryable_coroutine_with_2_attempts(thing):
+ await asyncio.sleep(0.00001)
thing.go()
class TestAsync(unittest.TestCase):
@asynctest
- def test_retry(self):
- assert asyncio.iscoroutinefunction(_retryable_coroutine)
+ async def test_retry(self):
thing = NoIOErrorAfterCount(5)
- yield from _retryable_coroutine(thing)
+ await _retryable_coroutine(thing)
assert thing.counter == thing.count
@asynctest
- def test_stop_after_attempt(self):
- assert asyncio.iscoroutinefunction(
- _retryable_coroutine_with_2_attempts)
+ async def test_stop_after_attempt(self):
thing = NoIOErrorAfterCount(2)
try:
- yield from _retryable_coroutine_with_2_attempts(thing)
+ await _retryable_coroutine_with_2_attempts(thing)
except RetryError:
assert thing.counter == 2
@@ -70,7 +64,7 @@
repr(tasyncio.AsyncRetrying())
@asynctest
- def test_attempt_number_is_correct_for_interleaved_coroutines(self):
+ async def test_attempt_number_is_correct_for_interleaved_coroutines(self):
attempts = []
@@ -79,22 +73,21 @@
thing1 = NoIOErrorAfterCount(3)
thing2 = NoIOErrorAfterCount(3)
- future1 = asyncio.ensure_future(
- _retryable_coroutine.retry_with(after=after)(thing1))
- future2 = asyncio.ensure_future(
+
+ await asyncio.gather(
+ _retryable_coroutine.retry_with(after=after)(thing1),
_retryable_coroutine.retry_with(after=after)(thing2))
- yield from asyncio.gather(future1, future2)
# There's no waiting on retry, only a wait in the coroutine, so the
# executions should be interleaved.
- thing1_attempts = attempts[::2]
- things1, attempt_nos1 = zip(*thing1_attempts)
- assert all(thing is thing1 for thing in things1)
+ even_thing_attempts = attempts[::2]
+ things, attempt_nos1 = zip(*even_thing_attempts)
+ assert len(set(things)) == 1
assert list(attempt_nos1) == [1, 2, 3]
- thing2_attempts = attempts[1::2]
- things2, attempt_nos2 = zip(*thing2_attempts)
- assert all(thing is thing2 for thing in things2)
+ odd_thing_attempts = attempts[1::2]
+ things, attempt_nos2 = zip(*odd_thing_attempts)
+ assert len(set(things)) == 1
assert list(attempt_nos2) == [1, 2, 3]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/tenacity.egg-info/PKG-INFO
new/tenacity-6.1.0/tenacity.egg-info/PKG-INFO
--- old/tenacity-6.0.0/tenacity.egg-info/PKG-INFO 2019-11-06
13:12:40.000000000 +0100
+++ new/tenacity-6.1.0/tenacity.egg-info/PKG-INFO 2020-02-26
11:39:48.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: tenacity
-Version: 6.0.0
+Version: 6.1.0
Summary: Retry code until it succeeds
Home-page: https://github.com/jd/tenacity
Author: Julien Danjou
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tenacity-6.0.0/tox.ini new/tenacity-6.1.0/tox.ini
--- old/tenacity-6.0.0/tox.ini 2019-11-06 13:12:32.000000000 +0100
+++ new/tenacity-6.1.0/tox.ini 2020-02-26 11:39:39.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist = py27, py35, py36, py37, pep8, pypy
+envlist = py27, py35, py36, py37, py38, pep8, pypy
[testenv]
usedevelop = True
@@ -9,9 +9,9 @@
pytest
commands =
py{27,py}: pytest --ignore='tenacity/tests/test_asyncio.py' {posargs}
- py3{5,6,7}: pytest {posargs}
- py3{5,6,7}: sphinx-build -a -E -W -b doctest doc/source doc/build
- py3{5,6,7}: sphinx-build -a -E -W -b html doc/source doc/build
+ py3{5,6,7,8}: pytest {posargs}
+ py3{5,6,7,8}: sphinx-build -a -E -W -b doctest doc/source doc/build
+ py3{5,6,7,8}: sphinx-build -a -E -W -b html doc/source doc/build
[testenv:pep8]
basepython = python3