Hello community,

here is the log from the commit of package python-vine for openSUSE:Factory 
checked in at 2020-12-12 20:28:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-vine (Old)
 and      /work/SRC/openSUSE:Factory/.python-vine.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-vine"

Sat Dec 12 20:28:26 2020 rev:4 rq:847012 version:5.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-vine/python-vine.changes  2019-04-02 
09:20:45.916625013 +0200
+++ /work/SRC/openSUSE:Factory/.python-vine.new.2328/python-vine.changes        
2020-12-12 20:30:34.961740505 +0100
@@ -1,0 +2,8 @@
+Mon Nov  9 05:32:32 UTC 2020 - Steve Kowalik <steven.kowa...@suse.com>
+
+- Update to 5.0.0:
+  * Dropped Python 2.x, 3.4 and 3.5 support.
+  * Removed the :mod:`vine.five` module.
+  * Removed the :mod:`vine.backports.weakref_backports` module.
+
+-------------------------------------------------------------------

Old:
----
  vine-1.3.0.tar.gz

New:
----
  vine-5.0.0.tar.gz

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

Other differences:
------------------
++++++ python-vine.spec ++++++
--- /var/tmp/diff_new_pack.GDV5v8/_old  2020-12-12 20:30:36.153741749 +0100
+++ /var/tmp/diff_new_pack.GDV5v8/_new  2020-12-12 20:30:36.157741753 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-vine
 #
-# 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
@@ -17,13 +17,13 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
 Name:           python-vine
-Version:        1.3.0
+Version:        5.0.0
 Release:        0
 Summary:        Python Promises
 License:        BSD-3-Clause
-Group:          Development/Languages/Python
-Url:            http://github.com/celery/vine/
+URL:            http://github.com/celery/vine/
 Source:         https://pypi.io/packages/source/v/vine/vine-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
@@ -54,7 +54,8 @@
 
 %files %python_files
 %defattr(-,root,root,-)
-%doc Changelog LICENSE README.rst
+%doc Changelog README.rst
+%license LICENSE
 %{python_sitelib}/*
 
 %changelog

++++++ vine-1.3.0.tar.gz -> vine-5.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/Changelog new/vine-5.0.0/Changelog
--- old/vine-1.3.0/Changelog    2019-03-19 09:54:40.000000000 +0100
+++ new/vine-5.0.0/Changelog    2020-09-06 16:59:24.000000000 +0200
@@ -1,7 +1,44 @@
 Changes
 =======
 
+.. _version-5.0.0:
+
+5.0.0
+=====
+:release-date: 2020-09-06 6:10 P.M UTC+3:00
+:release-by: Omer Katz
+
+- Dropped Python 3.5 support.
+
+  Contributed by **Omer Katz**
+
+.. _version-5.0.0a1:
+
+5.0.0a1
+=======
+:release-date: 2019-04-01 4:30 P.M UTC+3:00
+:release-by: Omer Katz
+
+- Dropped Python 2.x support.
+
+  Contributed by **Omer Katz**
+
+- Dropped Python 3.4 support.
+
+  Contributed by **Omer Katz**
+
+- Removed the :mod:`vine.five` module.
+
+  Contributed by **Omer Katz**
+
+- Removed the :mod:`vine.backports.weakref_backports` module.
+
+  Contributed by **Omer Katz**
+
 .. _version-1.3.0:
+
+1.3.0
+=====
 :release-date: 2019-03-19 11:00 A.M UTC+2
 :release-by: Omer Katz
 
@@ -11,11 +48,11 @@
   Contributed by **Omer Katz**
 
 .. _version-1.2.0:
-:release-date: 2018-01-06 4:30 P.M UTC+2
-:release-by: Omer Katz
 
 1.2.0
 =====
+:release-date: 2018-01-06 4:30 P.M UTC+2
+:release-by: Omer Katz
 
 - Added Python 3.7 support.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/PKG-INFO new/vine-5.0.0/PKG-INFO
--- old/vine-1.3.0/PKG-INFO     2019-03-19 09:56:05.000000000 +0100
+++ new/vine-5.0.0/PKG-INFO     2020-09-06 17:00:20.518080200 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: vine
-Version: 1.3.0
+Version: 5.0.0
 Summary: Promises, promises, promises.
 Home-page: http://github.com/celery/vine
 Author: Ask Solem
@@ -12,7 +12,7 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 1.3.0
+        :Version: 5.0.0
         :Web: https://vine.readthedocs.io/
         :Download: https://pypi.org/project/vine/
         :Source: http://github.com/celery/vine/
@@ -50,16 +50,14 @@
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Intended Audience :: Developers
 Classifier: Operating System :: OS Independent
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/README.rst new/vine-5.0.0/README.rst
--- old/vine-1.3.0/README.rst   2019-03-19 09:55:28.000000000 +0100
+++ new/vine-5.0.0/README.rst   2020-09-06 16:59:52.000000000 +0200
@@ -4,7 +4,7 @@
 
 |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
 
-:Version: 1.3.0
+:Version: 5.0.0
 :Web: https://vine.readthedocs.io/
 :Download: https://pypi.org/project/vine/
 :Source: http://github.com/celery/vine/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/docs/conf.py new/vine-5.0.0/docs/conf.py
--- old/vine-1.3.0/docs/conf.py 2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/docs/conf.py 2020-09-03 14:03:18.000000000 +0200
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import, unicode_literals
-
 from sphinx_celery import conf
 
 globals().update(conf.build_config(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/docs/includes/introduction.txt 
new/vine-5.0.0/docs/includes/introduction.txt
--- old/vine-1.3.0/docs/includes/introduction.txt       2019-03-19 
09:55:28.000000000 +0100
+++ new/vine-5.0.0/docs/includes/introduction.txt       2020-09-06 
16:59:52.000000000 +0200
@@ -1,4 +1,4 @@
-:Version: 1.3.0
+:Version: 5.0.0
 :Web: https://vine.readthedocs.io/
 :Download: https://pypi.org/project/vine/
 :Source: http://github.com/celery/vine/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/docs/reference/index.rst 
new/vine-5.0.0/docs/reference/index.rst
--- old/vine-1.3.0/docs/reference/index.rst     2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/docs/reference/index.rst     2020-09-03 14:03:18.000000000 
+0200
@@ -14,6 +14,4 @@
     vine.synchronization
     vine.funtools
     vine.abstract
-    vine.five
     vine.utils
-    vine.backports.weakref_backports
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/docs/reference/vine.backports.rst 
new/vine-5.0.0/docs/reference/vine.backports.rst
--- old/vine-1.3.0/docs/reference/vine.backports.rst    2019-01-06 
14:48:56.000000000 +0100
+++ new/vine-5.0.0/docs/reference/vine.backports.rst    1970-01-01 
01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-=====================================================
- vine.backports
-=====================================================
-
-.. contents::
-    :local:
-.. currentmodule:: vine.backports
-
-.. automodule:: vine.backports
-    :members:
-    :undoc-members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vine-1.3.0/docs/reference/vine.backports.weakref_backports.rst 
new/vine-5.0.0/docs/reference/vine.backports.weakref_backports.rst
--- old/vine-1.3.0/docs/reference/vine.backports.weakref_backports.rst  
2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/docs/reference/vine.backports.weakref_backports.rst  
1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-=====================================================
-vine.backports.weakref_backports
-=====================================================
-
-.. contents::
-    :local:
-.. currentmodule:: vine.backports.weakref_backports
-
-.. automodule:: vine.backports.weakref_backports
-    :members:
-    :undoc-members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/docs/reference/vine.five.rst 
new/vine-5.0.0/docs/reference/vine.five.rst
--- old/vine-1.3.0/docs/reference/vine.five.rst 2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/docs/reference/vine.five.rst 1970-01-01 01:00:00.000000000 
+0100
@@ -1,11 +0,0 @@
-=====================================================
- vine.five
-=====================================================
-
-.. contents::
-    :local:
-.. currentmodule:: vine.five
-
-.. automodule:: vine.five
-    :members:
-    :undoc-members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/requirements/pkgutils.txt 
new/vine-5.0.0/requirements/pkgutils.txt
--- old/vine-1.3.0/requirements/pkgutils.txt    2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/requirements/pkgutils.txt    2020-09-03 14:03:18.000000000 
+0200
@@ -1,7 +1,6 @@
 setuptools>=20.6.7
 wheel>=0.29.0
 flake8>=2.5.4
-flakeplus>=1.1
 tox>=2.3.1
 sphinx2rst>=1.0
 bumpversion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/setup.cfg new/vine-5.0.0/setup.cfg
--- old/vine-1.3.0/setup.cfg    2019-03-19 09:56:05.000000000 +0100
+++ new/vine-5.0.0/setup.cfg    2020-09-06 17:00:20.518080200 +0200
@@ -2,12 +2,12 @@
 testpaths = t/unit/
 python_classes = test_*
 
+[pydocstyle]
+ignore = D102,D104,D203,D105,D213,D107,D407,D412,D413
+
 [flake8]
 ignore = N806, N802, N801, N803
 
-[pep257]
-ignore = D102,D104,D203,D105,D213,D107
-
 [bdist_wheel]
 universal = 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/setup.py new/vine-5.0.0/setup.py
--- old/vine-1.3.0/setup.py     2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/setup.py     2020-09-03 14:03:18.000000000 +0200
@@ -1,5 +1,4 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
 import os
 import re
 import sys
@@ -8,9 +7,6 @@
 import setuptools
 import setuptools.command.test
 
-if sys.version_info < (2, 7):
-    raise Exception('vine requires Python 2.7 or higher.')
-
 NAME = 'vine'
 
 # -*- Classifiers -*-
@@ -18,13 +14,11 @@
 classes = """
     Development Status :: 5 - Production/Stable
     Programming Language :: Python
-    Programming Language :: Python :: 2
-    Programming Language :: Python :: 2.7
     Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.4
-    Programming Language :: Python :: 3.5
     Programming Language :: Python :: 3.6
     Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3 :: Only
     Programming Language :: Python :: Implementation :: CPython
     Programming Language :: Python :: Implementation :: PyPy
     License :: OSI Approved :: BSD License
@@ -112,7 +106,7 @@
     platforms=['any'],
     classifiers=classifiers,
     license='BSD',
-    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
+    python_requires=">=3.6",
     install_requires=[],
     tests_require=reqs('test.txt'),
     cmdclass={'test': pytest},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/t/unit/conftest.py 
new/vine-5.0.0/t/unit/conftest.py
--- old/vine-1.3.0/t/unit/conftest.py   2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/t/unit/conftest.py   2020-09-03 14:03:18.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
 import pytest
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/t/unit/test_abstract.py 
new/vine-5.0.0/t/unit/test_abstract.py
--- old/vine-1.3.0/t/unit/test_abstract.py      2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/t/unit/test_abstract.py      2020-09-03 14:03:18.000000000 
+0200
@@ -1,16 +1,14 @@
-from __future__ import absolute_import, unicode_literals
-
 from vine.abstract import Thenable
 from vine.promises import promise
 
 
-class CanThen(object):
+class CanThen:
 
     def then(self, x, y):
         pass
 
 
-class CannotThen(object):
+class CannotThen:
     pass
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/t/unit/test_funtools.py 
new/vine-5.0.0/t/unit/test_funtools.py
--- old/vine-1.3.0/t/unit/test_funtools.py      2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/t/unit/test_funtools.py      2020-09-03 14:03:18.000000000 
+0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
 import pytest
 
 from case import Mock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/t/unit/test_promises.py 
new/vine-5.0.0/t/unit/test_promises.py
--- old/vine-1.3.0/t/unit/test_promises.py      2019-03-19 09:48:37.000000000 
+0100
+++ new/vine-5.0.0/t/unit/test_promises.py      2020-09-03 14:03:18.000000000 
+0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
 import pytest
 import sys
 import traceback
@@ -20,7 +18,7 @@
 
         _pending = deque()
 
-        class Protocol(object):
+        class Protocol:
 
             def __init__(self):
                 self.buffer = []
@@ -357,7 +355,7 @@
         assert promise_f(2) == 4
 
     def test_weak_reference_bound(self):
-        class Example(object):
+        class Example:
             def __init__(self, y):
                 self.y = y
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/t/unit/test_synchronization.py 
new/vine-5.0.0/t/unit/test_synchronization.py
--- old/vine-1.3.0/t/unit/test_synchronization.py       2019-01-06 
14:48:56.000000000 +0100
+++ new/vine-5.0.0/t/unit/test_synchronization.py       2020-09-03 
14:03:18.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
 import pytest
 
 from case import Mock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/__init__.py 
new/vine-5.0.0/vine/__init__.py
--- old/vine-1.3.0/vine/__init__.py     2019-03-19 09:55:28.000000000 +0100
+++ new/vine-5.0.0/vine/__init__.py     2020-09-06 16:59:52.000000000 +0200
@@ -1,6 +1,4 @@
 """Promises, promises, promises."""
-from __future__ import absolute_import, unicode_literals
-
 import re
 
 from collections import namedtuple
@@ -14,7 +12,7 @@
 )
 
 
-__version__ = '1.3.0'
+__version__ = '5.0.0'
 __author__ = 'Ask Solem'
 __contact__ = 'a...@celeryproject.org'
 __homepage__ = 'http://github.com/celery/vine'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/abstract.py 
new/vine-5.0.0/vine/abstract.py
--- old/vine-1.3.0/vine/abstract.py     2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/vine/abstract.py     2020-09-03 14:03:18.000000000 +0200
@@ -1,15 +1,11 @@
 """Abstract classes."""
-from __future__ import absolute_import, unicode_literals
-
 import abc
-
-from .five import with_metaclass, Callable
+from collections.abc import Callable
 
 __all__ = ['Thenable']
 
 
-@with_metaclass(abc.ABCMeta)
-class Thenable(Callable):  # pragma: no cover
+class Thenable(Callable, metaclass=abc.ABCMeta):  # pragma: no cover
     """Object that supports ``.then()``."""
 
     __slots__ = ()
@@ -41,7 +37,7 @@
 
 
 @Thenable.register
-class ThenableProxy(object):
+class ThenableProxy:
     """Proxy to object that supports ``.then()``."""
 
     def _set_promise_target(self, p):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/backports/weakref_backports.py 
new/vine-5.0.0/vine/backports/weakref_backports.py
--- old/vine-1.3.0/vine/backports/weakref_backports.py  2019-01-06 
14:48:56.000000000 +0100
+++ new/vine-5.0.0/vine/backports/weakref_backports.py  1970-01-01 
01:00:00.000000000 +0100
@@ -1,71 +0,0 @@
-"""Weakref compatibility.
-
-weakref_backports is a partial backport of the weakref module for Python
-versions below 3.4.
-
-Copyright (C) 2013 Python Software Foundation, see LICENSE.python for details.
-
-The following changes were made to the original sources during backporting:
-
-* Added ``self`` to ``super`` calls.
-* Removed ``from None`` when raising exceptions.
-"""
-from __future__ import absolute_import, unicode_literals
-
-from weakref import ref
-
-
-class WeakMethod(ref):
-    """Weak reference to bound method.
-
-    A custom :class:`weakref.ref` subclass which simulates a weak reference
-    to a bound method, working around the lifetime problem of bound methods.
-    """
-
-    __slots__ = '_func_ref', '_meth_type', '_alive', '__weakref__'
-
-    def __new__(cls, meth, callback=None):
-        try:
-            obj = meth.__self__
-            func = meth.__func__
-        except AttributeError:
-            raise TypeError(
-                "Argument should be a bound method, not {0}".format(
-                    type(meth)))
-
-        def _cb(arg):
-            # The self-weakref trick is needed to avoid creating a
-            # reference cycle.
-            self = self_wr()
-            if self._alive:
-                self._alive = False
-                if callback is not None:
-                    callback(self)
-        self = ref.__new__(cls, obj, _cb)
-        self._func_ref = ref(func, _cb)
-        self._meth_type = type(meth)
-        self._alive = True
-        self_wr = ref(self)
-        return self
-
-    def __call__(self):
-        obj = super(WeakMethod, self).__call__()
-        func = self._func_ref()
-        if obj is not None and func is not None:
-            return self._meth_type(func, obj)
-
-    def __eq__(self, other):
-        if not isinstance(other, WeakMethod):
-            return False
-        if not self._alive or not other._alive:
-            return self is other
-        return ref.__eq__(self, other) and self._func_ref == other._func_ref
-
-    def __ne__(self, other):
-        if not isinstance(other, WeakMethod):
-            return True
-        if not self._alive or not other._alive:
-            return self is not other
-        return ref.__ne__(self, other) or self._func_ref != other._func_ref
-
-    __hash__ = ref.__hash__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/five.py new/vine-5.0.0/vine/five.py
--- old/vine-1.3.0/vine/five.py 2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/vine/five.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,374 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Python 2/3 compatibility.
-
-Compatibility implementations of features
-only available in newer Python versions.
-"""
-from __future__ import absolute_import, unicode_literals
-
-import errno
-import io
-import sys
-
-try:
-    from collections import Counter
-except ImportError:  # pragma: no cover
-    from collections import defaultdict
-
-    def Counter():  # noqa
-        """Create counter."""
-        return defaultdict(int)
-
-try:
-    buffer_t = buffer
-except NameError:  # pragma: no cover
-    # Py3 does not have buffer, only use this for isa checks.
-
-    class buffer_t(object):  # noqa
-        """Python 3 does not have a buffer type."""
-
-bytes_t = bytes
-
-__all__ = [
-    'Counter', 'reload', 'UserList', 'UserDict',
-    'Callable', 'Iterable', 'Mapping',
-    'Queue', 'Empty', 'Full', 'LifoQueue', 'builtins', 'array',
-    'zip_longest', 'map', 'zip', 'string', 'string_t', 'bytes_t',
-    'bytes_if_py2', 'long_t', 'text_t', 'int_types', 'module_name_t',
-    'range', 'items', 'keys', 'values', 'nextfun', 'reraise',
-    'WhateverIO', 'with_metaclass', 'StringIO', 'getfullargspec',
-    'THREAD_TIMEOUT_MAX', 'format_d', 'monotonic', 'buffer_t',
-    'python_2_unicode_compatible',
-]
-
-
-#  ############# py3k ########################################################
-PY3 = sys.version_info[0] >= 3
-PY2 = sys.version_info[0] < 3
-
-try:
-    reload = reload                         # noqa
-except NameError:                           # pragma: no cover
-    try:
-        from importlib import reload        # noqa
-    except ImportError:                     # pragma: no cover
-        from imp import reload              # noqa
-
-try:
-    from collections import UserList        # noqa
-except ImportError:                         # pragma: no cover
-    from UserList import UserList           # noqa
-
-try:
-    from collections import UserDict        # noqa
-except ImportError:                         # pragma: no cover
-    from UserDict import UserDict           # noqa
-
-try:
-    from collections.abc import Callable    # noqa
-except ImportError:                         # pragma: no cover
-    from collections import Callable        # noqa
-
-try:
-    from collections.abc import Iterable    # noqa
-except ImportError:                         # pragma: no cover
-    from collections import Iterable        # noqa
-
-try:
-    from collections.abc import Mapping     # noqa
-except ImportError:                         # pragma: no cover
-    from collections import Mapping         # noqa
-
-#  ############# time.monotonic #############################################
-
-if sys.version_info < (3, 3):
-
-    import platform
-    SYSTEM = platform.system()
-
-    try:
-        import ctypes
-    except ImportError:  # pragma: no cover
-        ctypes = None  # noqa
-
-    if SYSTEM == 'Darwin' and ctypes is not None:
-        from ctypes.util import find_library
-        libSystem = ctypes.CDLL(find_library('libSystem.dylib'))
-        CoreServices = ctypes.CDLL(find_library('CoreServices'),
-                                   use_errno=True)
-        mach_absolute_time = libSystem.mach_absolute_time
-        mach_absolute_time.restype = ctypes.c_uint64
-        absolute_to_nanoseconds = CoreServices.AbsoluteToNanoseconds
-        absolute_to_nanoseconds.restype = ctypes.c_uint64
-        absolute_to_nanoseconds.argtypes = [ctypes.c_uint64]
-
-        def _monotonic():
-            return absolute_to_nanoseconds(mach_absolute_time()) * 1e-9
-
-    elif SYSTEM == 'Linux' and ctypes is not None:
-        # from stackoverflow:
-        # questions/1205722/how-do-i-get-monotonic-time-durations-in-python
-        import os
-
-        CLOCK_MONOTONIC = 1  # see <linux/time.h>
-
-        class timespec(ctypes.Structure):
-            _fields_ = [
-                ('tv_sec', ctypes.c_long),
-                ('tv_nsec', ctypes.c_long),
-            ]
-
-        try:
-            librt = ctypes.CDLL('librt.so.1', use_errno=True)
-        except Exception:
-            try:
-                librt = ctypes.CDLL('librt.so.0', use_errno=True)
-            except Exception as exc:
-                error = OSError(
-                    "Could not detect working librt library: {0}".format(
-                        exc))
-                error.errno = errno.ENOENT
-                raise error
-        clock_gettime = librt.clock_gettime
-        clock_gettime.argtypes = [
-            ctypes.c_int, ctypes.POINTER(timespec),
-        ]
-
-        def _monotonic():  # noqa
-            t = timespec()
-            if clock_gettime(CLOCK_MONOTONIC, ctypes.pointer(t)) != 0:
-                errno_ = ctypes.get_errno()
-                raise OSError(errno_, os.strerror(errno_))
-            return t.tv_sec + t.tv_nsec * 1e-9
-    else:
-        from time import time as _monotonic
-try:
-    from time import monotonic
-except ImportError:
-    monotonic = _monotonic  # noqa
-
-# ############# Py3 <-> Py2 #################################################
-
-if PY3:  # pragma: no cover
-    import builtins
-
-    from array import array
-    from queue import Queue, Empty, Full, LifoQueue
-    from itertools import zip_longest
-
-    map = map
-    zip = zip
-    string = str
-    string_t = str
-    long_t = int
-    text_t = str
-    range = range
-    int_types = (int,)
-    module_name_t = str
-
-    def bytes_if_py2(s):
-        """Convert str to bytes if running under Python 2."""
-        return s
-
-    def items(d):
-        """Get dict items iterator."""
-        return d.items()
-
-    def keys(d):
-        """Get dict keys iterator."""
-        return d.keys()
-
-    def values(d):
-        """Get dict values iterator."""
-        return d.values()
-
-    def nextfun(it):
-        """Get iterator next method."""
-        return it.__next__
-
-    exec_ = getattr(builtins, 'exec')
-
-    def reraise(tp, value, tb=None):
-        """Reraise exception."""
-        if value.__traceback__ is not tb:
-            raise value.with_traceback(tb)
-        raise value
-
-else:
-    import __builtin__ as builtins  # noqa
-    from array import array as _array
-    from Queue import Queue, Empty, Full, LifoQueue  # noqa
-    from itertools import (               # noqa
-        imap as map,
-        izip as zip,
-        izip_longest as zip_longest,
-    )
-
-    string = unicode                # noqa
-    string_t = basestring           # noqa
-    text_t = unicode
-    long_t = long                   # noqa
-    range = xrange
-    module_name_t = str
-    int_types = (int, long)
-
-    def array(typecode, *args, **kwargs):
-        """Create array."""
-        if isinstance(typecode, unicode):
-            typecode = typecode.encode()
-        return _array(typecode, *args, **kwargs)
-
-    def bytes_if_py2(s):
-        """Convert str to bytes if running under Python 2."""
-        if isinstance(s, unicode):
-            return s.encode()
-        return s
-
-    def items(d):                   # noqa
-        """Return dict items iterator."""
-        return d.iteritems()
-
-    def keys(d):                    # noqa
-        """Return dict key iterator."""
-        return d.iterkeys()
-
-    def values(d):                  # noqa
-        """Return dict values iterator."""
-        return d.itervalues()
-
-    def nextfun(it):                # noqa
-        """Return iterator next method."""
-        return it.next
-
-    def exec_(code, globs=None, locs=None):  # pragma: no cover
-        """Execute code in a namespace."""
-        if globs is None:
-            frame = sys._getframe(1)
-            globs = frame.f_globals
-            if locs is None:
-                locs = frame.f_locals
-            del frame
-        elif locs is None:
-            locs = globs
-        exec("""exec code in globs, locs""")
-
-    exec_("""def reraise(tp, value, tb=None): raise tp, value, tb""")
-
-
-def with_metaclass(Type, skip_attrs=None):
-    """Class decorator to set metaclass.
-
-    Works with both Python 2 and Python 3 and it does not add
-    an extra class in the lookup order like ``six.with_metaclass`` does
-    (that is -- it copies the original class instead of using inheritance).
-
-    """
-    if skip_attrs is None:
-        skip_attrs = {'__dict__', '__weakref__'}
-
-    def _clone_with_metaclass(Class):
-        attrs = {key: value for key, value in items(vars(Class))
-                 if key not in skip_attrs}
-        return Type(Class.__name__, Class.__bases__, attrs)
-
-    return _clone_with_metaclass
-
-
-# ############# threading.TIMEOUT_MAX ########################################
-try:
-    from threading import TIMEOUT_MAX as THREAD_TIMEOUT_MAX
-except ImportError:
-    THREAD_TIMEOUT_MAX = 1e10  # noqa
-
-# ############# format(int, ',d') ############################################
-
-if sys.version_info >= (2, 7):  # pragma: no cover
-    def format_d(i):
-        """Format number."""
-        return format(i, ',d')
-else:  # pragma: no cover
-    def format_d(i):  # noqa
-        """Format number."""
-        s = '%d' % i
-        groups = []
-        while s and s[-1].isdigit():
-            groups.append(s[-3:])
-            s = s[:-3]
-        return s + ','.join(reversed(groups))
-
-StringIO = io.StringIO
-_SIO_write = StringIO.write
-_SIO_init = StringIO.__init__
-
-
-class WhateverIO(StringIO):
-    """StringIO that takes bytes or str."""
-
-    def __init__(self, v=None, *a, **kw):
-        _SIO_init(self, v.decode() if isinstance(v, bytes) else v, *a, **kw)
-
-    def write(self, data):
-        _SIO_write(self, data.decode() if isinstance(data, bytes) else data)
-
-
-def python_2_unicode_compatible(cls):
-    """Class decorator to ensure class is compatible with Python 2."""
-    return python_2_non_unicode_str(python_2_non_unicode_repr(cls))
-
-
-def python_2_non_unicode_repr(cls):
-    """Ensure cls.__repr__ returns unicode.
-
-    A class decorator that ensures ``__repr__`` returns non-unicode
-    when running under Python 2.
-    """
-    if PY2:
-        try:
-            cls.__dict__['__repr__']
-        except KeyError:
-            pass
-        else:
-            def __repr__(self, *args, **kwargs):
-                return self.__unicode_repr__(*args, **kwargs).encode(
-                    'utf-8', 'replace')
-            cls.__unicode_repr__, cls.__repr__ = cls.__repr__, __repr__
-    return cls
-
-
-def python_2_non_unicode_str(cls):
-    """Python 2 class string compatibility.
-
-    A class decorator that defines ``__unicode__`` and ``__str__`` methods
-    under Python 2.  Under Python 3 it does nothing.
-
-    To support Python 2 and 3 with a single code base, define a ``__str__``
-    method returning text and apply this decorator to the class.
-    """
-    if PY2:
-        try:
-            cls.__dict__['__str__']
-        except KeyError:
-            pass
-        else:
-            def __str__(self, *args, **kwargs):
-                return self.__unicode__(*args, **kwargs).encode(
-                    'utf-8', 'replace')
-            cls.__unicode__, cls.__str__ = cls.__str__, __str__
-    return cls
-
-
-try:  # pragma: no cover
-    from inspect import formatargspec, getfullargspec
-except ImportError:  # Py2
-    from collections import namedtuple
-    from inspect import formatargspec, getargspec as _getargspec  # noqa
-
-    FullArgSpec = namedtuple('FullArgSpec', (
-        'args', 'varargs', 'varkw', 'defaults',
-        'kwonlyargs', 'kwonlydefaults', 'annotations',
-    ))
-
-    def getfullargspec(fun, _fill=(None, ) * 3):  # noqa
-        """For compatibility with Python 3."""
-        s = _getargspec(fun)
-        return FullArgSpec(*s + _fill)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/funtools.py 
new/vine-5.0.0/vine/funtools.py
--- old/vine-1.3.0/vine/funtools.py     2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/vine/funtools.py     2020-09-03 14:03:18.000000000 +0200
@@ -1,6 +1,4 @@
 """Functional utilities."""
-from __future__ import absolute_import, unicode_literals
-
 from .abstract import Thenable
 from .promises import promise
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/promises.py 
new/vine-5.0.0/vine/promises.py
--- old/vine-1.3.0/vine/promises.py     2019-03-19 09:45:48.000000000 +0100
+++ new/vine-5.0.0/vine/promises.py     2020-09-03 14:03:18.000000000 +0200
@@ -1,26 +1,18 @@
 """Promise implementation."""
-from __future__ import absolute_import, unicode_literals
-
 import sys
 
 from collections import deque
 import inspect
-from weakref import ref
-
-try:
-    from weakref import WeakMethod
-except ImportError:
-    from vine.backports.weakref_backports import WeakMethod
+from weakref import ref, WeakMethod
 
 from .abstract import Thenable
-from .five import python_2_unicode_compatible, reraise
+from .utils import reraise
 
 __all__ = ['promise']
 
 
 @Thenable.register
-@python_2_unicode_compatible
-class promise(object):
+class promise:
     """Promise of future evaluation.
 
     This is a special implementation of promises in that it can
@@ -32,7 +24,6 @@
 
     .. code-block:: python
 
-        >>> from __future__ import print_statement  # noqa
         >>> p = promise()
         >>> p.then(promise(print, ('OK',)))  # noqa
         >>> p.on_error = promise(print, ('ERROR',))  # noqa
@@ -52,7 +43,6 @@
         >>> p(30)
 
     Example:
-
     .. code-block:: python
 
         from vine import promise, wrap
@@ -133,7 +123,7 @@
 
     def __repr__(self):
         return ('<{0} --> {1!r}>' if self.fun else '<{0}>').format(
-            '{0}@0x{1:x}'.format(type(self).__name__, id(self)), self.fun,
+            f'{type(self).__name__}@0x{id(self):x}', self.fun,
         )
 
     def cancel(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/synchronization.py 
new/vine-5.0.0/vine/synchronization.py
--- old/vine-1.3.0/vine/synchronization.py      2019-01-06 14:48:56.000000000 
+0100
+++ new/vine-5.0.0/vine/synchronization.py      2020-09-03 14:03:18.000000000 
+0200
@@ -1,13 +1,11 @@
 """Synchronization primitives."""
-from __future__ import absolute_import, unicode_literals
-
 from .abstract import Thenable
 from .promises import promise
 
 __all__ = ['barrier']
 
 
-class barrier(object):
+class barrier:
     """Barrier.
 
     Synchronization primitive to call a callback after a list
@@ -93,4 +91,6 @@
         if not self.cancelled:
             self.p.throw(*args, **kwargs)
     throw1 = throw
+
+
 Thenable.register(barrier)  # noqa: E305
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine/utils.py new/vine-5.0.0/vine/utils.py
--- old/vine-1.3.0/vine/utils.py        2019-01-06 14:48:56.000000000 +0100
+++ new/vine-5.0.0/vine/utils.py        2020-09-03 14:03:18.000000000 +0200
@@ -1,6 +1,4 @@
 """Python compatibility utilities."""
-from __future__ import absolute_import, unicode_literals
-
 from functools import (
     WRAPPER_ASSIGNMENTS, WRAPPER_UPDATES,
     update_wrapper as _update_wrapper,
@@ -23,3 +21,10 @@
     """Backport of Python 3.5 wraps that adds .__wrapped__."""
     return partial(update_wrapper, wrapped=wrapped,
                    assigned=assigned, updated=updated)
+
+
+def reraise(tp, value, tb=None):
+    """Reraise exception."""
+    if value.__traceback__ is not tb:
+        raise value.with_traceback(tb)
+    raise value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine.egg-info/PKG-INFO 
new/vine-5.0.0/vine.egg-info/PKG-INFO
--- old/vine-1.3.0/vine.egg-info/PKG-INFO       2019-03-19 09:56:05.000000000 
+0100
+++ new/vine-5.0.0/vine.egg-info/PKG-INFO       2020-09-06 17:00:20.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: vine
-Version: 1.3.0
+Version: 5.0.0
 Summary: Promises, promises, promises.
 Home-page: http://github.com/celery/vine
 Author: Ask Solem
@@ -12,7 +12,7 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 1.3.0
+        :Version: 5.0.0
         :Web: https://vine.readthedocs.io/
         :Download: https://pypi.org/project/vine/
         :Source: http://github.com/celery/vine/
@@ -50,16 +50,14 @@
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Intended Audience :: Developers
 Classifier: Operating System :: OS Independent
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.3.0/vine.egg-info/SOURCES.txt 
new/vine-5.0.0/vine.egg-info/SOURCES.txt
--- old/vine-1.3.0/vine.egg-info/SOURCES.txt    2019-03-19 09:56:05.000000000 
+0100
+++ new/vine-5.0.0/vine.egg-info/SOURCES.txt    2020-09-06 17:00:20.000000000 
+0200
@@ -16,9 +16,6 @@
 docs/includes/introduction.txt
 docs/reference/index.rst
 docs/reference/vine.abstract.rst
-docs/reference/vine.backports.rst
-docs/reference/vine.backports.weakref_backports.rst
-docs/reference/vine.five.rst
 docs/reference/vine.funtools.rst
 docs/reference/vine.promises.rst
 docs/reference/vine.synchronization.rst
@@ -37,7 +34,6 @@
 t/unit/test_synchronization.py
 vine/__init__.py
 vine/abstract.py
-vine/five.py
 vine/funtools.py
 vine/promises.py
 vine/synchronization.py
@@ -46,6 +42,4 @@
 vine.egg-info/SOURCES.txt
 vine.egg-info/dependency_links.txt
 vine.egg-info/not-zip-safe
-vine.egg-info/top_level.txt
-vine/backports/__init__.py
-vine/backports/weakref_backports.py
\ No newline at end of file
+vine.egg-info/top_level.txt
\ No newline at end of file
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to