Hello community,

here is the log from the commit of package python-vine for openSUSE:Leap:15.2 
checked in at 2020-05-14 06:52:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-vine (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.python-vine.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-vine"

Thu May 14 06:52:00 2020 rev:12 rq:805411 version:1.3.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-vine/python-vine.changes        
2020-01-15 15:54:04.951619885 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.python-vine.new.2738/python-vine.changes      
2020-05-14 06:52:02.227774770 +0200
@@ -1,0 +2,11 @@
+Mon Mar 25 15:15:29 UTC 2019 - pgaj...@suse.com
+
+- version update to 1.3.0
+  * Added the option to ignore the result of a function and simply
+    call the callback without arguments.
+  * Added Python 3.7 support.
+  * Handle bound methods in weak reference promise instances.
+  * Documentation fixes, CI adjustments and cleanups.
+- run tests
+
+-------------------------------------------------------------------

Old:
----
  vine-1.1.4.tar.gz

New:
----
  vine-1.3.0.tar.gz

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

Other differences:
------------------
++++++ python-vine.spec ++++++
--- /var/tmp/diff_new_pack.WhJ2YY/_old  2020-05-14 06:52:02.843776098 +0200
+++ /var/tmp/diff_new_pack.WhJ2YY/_new  2020-05-14 06:52:02.847776106 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-vine
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,27 +12,32 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-vine
-Version:        1.1.4
+Version:        1.3.0
 Release:        0
-Summary:        promise, async, future
+Summary:        Python Promises
 License:        BSD-3-Clause
 Group:          Development/Languages/Python
 Url:            http://github.com/celery/vine/
 Source:         https://pypi.io/packages/source/v/vine/vine-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+# SECTION test requirements
+BuildRequires:  %{python_module case}
+BuildRequires:  %{python_module pytest}
+# /SECTION
 BuildArch:      noarch
 
 %python_subpackages
 
 %description
-promise, async, future
+Promises implementation for python.
 
 %prep
 %setup -q -n vine-%{version}
@@ -42,6 +47,10 @@
 
 %install
 %python_install
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
+
+%check
+%pytest
 
 %files %python_files
 %defattr(-,root,root,-)

++++++ vine-1.1.4.tar.gz -> vine-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/Changelog new/vine-1.3.0/Changelog
--- old/vine-1.1.4/Changelog    2017-07-16 21:43:21.000000000 +0200
+++ new/vine-1.3.0/Changelog    2019-03-19 09:54:40.000000000 +0100
@@ -1,6 +1,39 @@
 Changes
 =======
 
+.. _version-1.3.0:
+:release-date: 2019-03-19 11:00 A.M UTC+2
+:release-by: Omer Katz
+
+- Added the option to ignore the result of a function and simply
+  call the callback without arguments.
+
+  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
+=====
+
+- Added Python 3.7 support.
+
+  Contributed by **Jon Dufresne** & **:github_user:`dequis`**
+
+- Handle bound methods in weak reference promise instances.
+
+  Contributed by **George Psarakis**
+
+Documentation fixes, CI adjustments and cleanups by:
+
+- **Omer Katz**
+- **Jon Dufresne**
+- **Edward Betts**
+- **Jacopo Notarstefano**
+- **Christopher Hoskin**
+- **Fahad Siddiqui**
+
 .. _version-1.1.4:
 
 1.1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/PKG-INFO new/vine-1.3.0/PKG-INFO
--- old/vine-1.1.4/PKG-INFO     2017-07-16 21:45:35.000000000 +0200
+++ new/vine-1.3.0/PKG-INFO     2019-03-19 09:56:05.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: vine
-Version: 1.1.4
+Version: 1.3.0
 Summary: Promises, promises, promises.
 Home-page: http://github.com/celery/vine
 Author: Ask Solem
@@ -12,9 +12,9 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 1.1.4
+        :Version: 1.3.0
         :Web: https://vine.readthedocs.io/
-        :Download: http://pypi.python.org/pypi/vine/
+        :Download: https://pypi.org/project/vine/
         :Source: http://github.com/celery/vine/
         :Keywords: promise, async, future
         
@@ -35,15 +35,15 @@
         
         .. |wheel| image:: https://img.shields.io/pypi/wheel/vine.svg
             :alt: Vine can be installed via wheel
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         .. |pyversion| image:: https://img.shields.io/pypi/pyversions/vine.svg
             :alt: Supported Python versions.
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         .. |pyimp| image:: https://img.shields.io/pypi/implementation/vine.svg
             :alt: Support Python implementations.
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         
 Keywords: promise promises lazy future futures
@@ -56,8 +56,10 @@
 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 :: 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.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/README.rst new/vine-1.3.0/README.rst
--- old/vine-1.1.4/README.rst   2017-07-16 21:44:42.000000000 +0200
+++ new/vine-1.3.0/README.rst   2019-03-19 09:55:28.000000000 +0100
@@ -4,9 +4,9 @@
 
 |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
 
-:Version: 1.1.4
+:Version: 1.3.0
 :Web: https://vine.readthedocs.io/
-:Download: http://pypi.python.org/pypi/vine/
+:Download: https://pypi.org/project/vine/
 :Source: http://github.com/celery/vine/
 :Keywords: promise, async, future
 
@@ -27,13 +27,13 @@
 
 .. |wheel| image:: https://img.shields.io/pypi/wheel/vine.svg
     :alt: Vine can be installed via wheel
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
 
 .. |pyversion| image:: https://img.shields.io/pypi/pyversions/vine.svg
     :alt: Supported Python versions.
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
 
 .. |pyimp| image:: https://img.shields.io/pypi/implementation/vine.svg
     :alt: Support Python implementations.
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
 
Binary files old/vine-1.1.4/docs/images/celery_128.png and 
new/vine-1.3.0/docs/images/celery_128.png differ
Binary files old/vine-1.1.4/docs/images/favicon.ico and 
new/vine-1.3.0/docs/images/favicon.ico differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/docs/includes/introduction.txt 
new/vine-1.3.0/docs/includes/introduction.txt
--- old/vine-1.1.4/docs/includes/introduction.txt       2017-07-16 
21:44:42.000000000 +0200
+++ new/vine-1.3.0/docs/includes/introduction.txt       2019-03-19 
09:55:28.000000000 +0100
@@ -1,6 +1,6 @@
-:Version: 1.1.4
+:Version: 1.3.0
 :Web: https://vine.readthedocs.io/
-:Download: http://pypi.python.org/pypi/vine/
+:Download: https://pypi.org/project/vine/
 :Source: http://github.com/celery/vine/
 :Keywords: promise, async, future
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/docs/reference/index.rst 
new/vine-1.3.0/docs/reference/index.rst
--- old/vine-1.1.4/docs/reference/index.rst     2017-07-16 21:29:07.000000000 
+0200
+++ new/vine-1.3.0/docs/reference/index.rst     2019-01-06 14:48:56.000000000 
+0100
@@ -16,3 +16,4 @@
     vine.abstract
     vine.five
     vine.utils
+    vine.backports.weakref_backports
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/docs/reference/vine.backports.rst 
new/vine-1.3.0/docs/reference/vine.backports.rst
--- old/vine-1.1.4/docs/reference/vine.backports.rst    1970-01-01 
01:00:00.000000000 +0100
+++ new/vine-1.3.0/docs/reference/vine.backports.rst    2019-01-06 
14:48:56.000000000 +0100
@@ -0,0 +1,11 @@
+=====================================================
+ 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.1.4/docs/reference/vine.backports.weakref_backports.rst 
new/vine-1.3.0/docs/reference/vine.backports.weakref_backports.rst
--- old/vine-1.1.4/docs/reference/vine.backports.weakref_backports.rst  
1970-01-01 01:00:00.000000000 +0100
+++ new/vine-1.3.0/docs/reference/vine.backports.weakref_backports.rst  
2019-01-06 14:48:56.000000000 +0100
@@ -0,0 +1,11 @@
+=====================================================
+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.1.4/docs/templates/readme.txt 
new/vine-1.3.0/docs/templates/readme.txt
--- old/vine-1.1.4/docs/templates/readme.txt    2017-07-16 21:29:07.000000000 
+0200
+++ new/vine-1.3.0/docs/templates/readme.txt    2019-01-06 14:48:56.000000000 
+0100
@@ -19,12 +19,12 @@
 
 .. |wheel| image:: https://img.shields.io/pypi/wheel/vine.svg
     :alt: Vine can be installed via wheel
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
 
 .. |pyversion| image:: https://img.shields.io/pypi/pyversions/vine.svg
     :alt: Supported Python versions.
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
 
 .. |pyimp| image:: https://img.shields.io/pypi/implementation/vine.svg
     :alt: Support Python implementations.
-    :target: http://pypi.python.org/pypi/vine/
+    :target: https://pypi.org/project/vine/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/setup.cfg new/vine-1.3.0/setup.cfg
--- old/vine-1.1.4/setup.cfg    2017-07-16 21:45:35.000000000 +0200
+++ new/vine-1.3.0/setup.cfg    2019-03-19 09:56:05.000000000 +0100
@@ -6,11 +6,14 @@
 ignore = N806, N802, N801, N803
 
 [pep257]
-ignore = D102,D104,D203,D105,D213
+ignore = D102,D104,D203,D105,D213,D107
 
 [bdist_wheel]
 universal = 1
 
+[metadata]
+license_file = LICENSE
+
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/setup.py new/vine-1.3.0/setup.py
--- old/vine-1.1.4/setup.py     2017-07-16 21:29:07.000000000 +0200
+++ new/vine-1.3.0/setup.py     2019-01-06 14:48:56.000000000 +0100
@@ -24,6 +24,7 @@
     Programming Language :: Python :: 3.4
     Programming Language :: Python :: 3.5
     Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
     Programming Language :: Python :: Implementation :: CPython
     Programming Language :: Python :: Implementation :: PyPy
     License :: OSI Approved :: BSD License
@@ -80,7 +81,7 @@
 if os.path.exists('README.rst'):
     long_description = codecs.open('README.rst', 'r', 'utf-8').read()
 else:
-    long_description = 'See http://pypi.python.org/pypi/vine'
+    long_description = 'See https://pypi.org/project/vine/'
 
 # -*- Entry Points -*- #
 
@@ -111,6 +112,7 @@
     platforms=['any'],
     classifiers=classifiers,
     license='BSD',
+    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
     install_requires=[],
     tests_require=reqs('test.txt'),
     cmdclass={'test': pytest},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/t/unit/test_promises.py 
new/vine-1.3.0/t/unit/test_promises.py
--- old/vine-1.1.4/t/unit/test_promises.py      2017-07-16 21:29:07.000000000 
+0200
+++ new/vine-1.3.0/t/unit/test_promises.py      2019-03-19 09:48:37.000000000 
+0100
@@ -6,6 +6,7 @@
 
 from collections import deque
 from struct import pack, unpack
+import weakref
 
 from case import Mock
 
@@ -58,7 +59,29 @@
         a = promise()
         a.then(callback)
         a(42)
-        callback.assert_called_with(42)
+        callback.assert_called_once_with(42)
+
+    def test_signal_callback_kwargs(self):
+        callback = Mock(name='callback')
+        a = promise(callback=callback)
+        a(42)
+        callback.assert_called_once_with(42)
+
+    def test_call_ignore_result(self):
+        fun = Mock(name='fun')
+        callback = Mock(name='callback')
+        a = promise(fun=fun, ignore_result=True)
+        a.then(callback)
+        a()
+        fun.assert_called_once_with()
+        callback.assert_called_once_with()
+
+    def test_call_ignore_result_callback_kwarg(self):
+        fun = Mock(name='fun')
+        callback = Mock(name='callback')
+        a = promise(fun=fun, ignore_result=True, callback=callback)
+        a()
+        callback.assert_called_once_with()
 
     def test_chained(self):
 
@@ -323,3 +346,26 @@
         d = promise(Mock(name='d'), on_error=de)
         p2.then(d)
         de.fun.assert_called_with(exc)
+
+    def test_weak_reference_unbound(self):
+        def f(x):
+            return x ** 2
+
+        promise_f = promise(f, weak=True)
+
+        assert isinstance(promise_f.fun, weakref.ref)
+        assert promise_f(2) == 4
+
+    def test_weak_reference_bound(self):
+        class Example(object):
+            def __init__(self, y):
+                self.y = y
+
+            def f(self, x):
+                return self.y + x ** 2
+
+        example = Example(5)
+        promise_f = promise(example.f, weak=True)
+
+        assert isinstance(promise_f.fun, weakref.ref)
+        assert promise_f(2) == 9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine/__init__.py 
new/vine-1.3.0/vine/__init__.py
--- old/vine-1.1.4/vine/__init__.py     2017-07-16 21:44:42.000000000 +0200
+++ new/vine-1.3.0/vine/__init__.py     2019-03-19 09:55:28.000000000 +0100
@@ -14,7 +14,7 @@
 )
 
 
-__version__ = '1.1.4'
+__version__ = '1.3.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.1.4/vine/abstract.py 
new/vine-1.3.0/vine/abstract.py
--- old/vine-1.1.4/vine/abstract.py     2017-07-16 21:29:07.000000000 +0200
+++ new/vine-1.3.0/vine/abstract.py     2019-01-06 14:48:56.000000000 +0100
@@ -3,9 +3,7 @@
 
 import abc
 
-from collections import Callable
-
-from .five import with_metaclass
+from .five import with_metaclass, Callable
 
 __all__ = ['Thenable']
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine/backports/weakref_backports.py 
new/vine-1.3.0/vine/backports/weakref_backports.py
--- old/vine-1.1.4/vine/backports/weakref_backports.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/vine-1.3.0/vine/backports/weakref_backports.py  2019-01-06 
14:48:56.000000000 +0100
@@ -0,0 +1,71 @@
+"""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.1.4/vine/five.py new/vine-1.3.0/vine/five.py
--- old/vine-1.1.4/vine/five.py 2017-07-16 21:29:07.000000000 +0200
+++ new/vine-1.3.0/vine/five.py 2019-01-06 14:48:56.000000000 +0100
@@ -31,6 +31,7 @@
 
 __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',
@@ -63,6 +64,21 @@
 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):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine/promises.py 
new/vine-1.3.0/vine/promises.py
--- old/vine-1.1.4/vine/promises.py     2017-07-16 21:29:07.000000000 +0200
+++ new/vine-1.3.0/vine/promises.py     2019-03-19 09:45:48.000000000 +0100
@@ -4,8 +4,14 @@
 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 .abstract import Thenable
 from .five import python_2_unicode_compatible, reraise
 
@@ -80,14 +86,16 @@
     if not hasattr(sys, 'pypy_version_info'):  # pragma: no cover
         __slots__ = (
             'fun', 'args', 'kwargs', 'ready', 'failed',
-            'value', 'reason', '_svpending', '_lvpending',
+            'value', 'ignore_result', 'reason', '_svpending', '_lvpending',
             'on_error', 'cancelled', 'weak', '__weakref__',
         )
 
     def __init__(self, fun=None, args=None, kwargs=None,
-                 callback=None, on_error=None, weak=False):
+                 callback=None, on_error=None, weak=False,
+                 ignore_result=False):
         self.weak = weak
-        self.fun = ref(fun) if self.weak else fun
+        self.ignore_result = ignore_result
+        self.fun = self._get_fun_or_weakref(fun=fun, weak=weak)
         self.args = args or ()
         self.kwargs = kwargs or {}
         self.ready = False
@@ -109,6 +117,20 @@
         if self.fun:
             assert self.fun and callable(fun)
 
+    @staticmethod
+    def _get_fun_or_weakref(fun, weak):
+        """Return the callable or a weak reference.
+
+        Handles both bound and unbound methods.
+        """
+        if not weak:
+            return fun
+
+        if inspect.ismethod(fun):
+            return WeakMethod(fun)
+        else:
+            return ref(fun)
+
     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,
@@ -137,8 +159,13 @@
         fun = self._fun_is_alive(self.fun)
         if fun is not None:
             try:
-                retval = fun(*final_args, **final_kwargs)
-                self.value = (ca, ck) = (retval,), {}
+                if self.ignore_result:
+                    fun(*final_args, **final_kwargs)
+                    ca = ()
+                    ck = {}
+                else:
+                    retval = fun(*final_args, **final_kwargs)
+                    self.value = (ca, ck) = (retval,), {}
             except Exception:
                 return self.throw()
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine/utils.py new/vine-1.3.0/vine/utils.py
--- old/vine-1.1.4/vine/utils.py        2017-07-16 21:29:07.000000000 +0200
+++ new/vine-1.3.0/vine/utils.py        2019-01-06 14:48:56.000000000 +0100
@@ -1,4 +1,4 @@
-"""Python compatiblity utilities."""
+"""Python compatibility utilities."""
 from __future__ import absolute_import, unicode_literals
 
 from functools import (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine.egg-info/PKG-INFO 
new/vine-1.3.0/vine.egg-info/PKG-INFO
--- old/vine-1.1.4/vine.egg-info/PKG-INFO       2017-07-16 21:45:35.000000000 
+0200
+++ new/vine-1.3.0/vine.egg-info/PKG-INFO       2019-03-19 09:56:05.000000000 
+0100
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: vine
-Version: 1.1.4
+Version: 1.3.0
 Summary: Promises, promises, promises.
 Home-page: http://github.com/celery/vine
 Author: Ask Solem
@@ -12,9 +12,9 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 1.1.4
+        :Version: 1.3.0
         :Web: https://vine.readthedocs.io/
-        :Download: http://pypi.python.org/pypi/vine/
+        :Download: https://pypi.org/project/vine/
         :Source: http://github.com/celery/vine/
         :Keywords: promise, async, future
         
@@ -35,15 +35,15 @@
         
         .. |wheel| image:: https://img.shields.io/pypi/wheel/vine.svg
             :alt: Vine can be installed via wheel
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         .. |pyversion| image:: https://img.shields.io/pypi/pyversions/vine.svg
             :alt: Supported Python versions.
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         .. |pyimp| image:: https://img.shields.io/pypi/implementation/vine.svg
             :alt: Support Python implementations.
-            :target: http://pypi.python.org/pypi/vine/
+            :target: https://pypi.org/project/vine/
         
         
 Keywords: promise promises lazy future futures
@@ -56,8 +56,10 @@
 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 :: 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.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vine-1.1.4/vine.egg-info/SOURCES.txt 
new/vine-1.3.0/vine.egg-info/SOURCES.txt
--- old/vine-1.1.4/vine.egg-info/SOURCES.txt    2017-07-16 21:45:35.000000000 
+0200
+++ new/vine-1.3.0/vine.egg-info/SOURCES.txt    2019-03-19 09:56:05.000000000 
+0100
@@ -16,6 +16,8 @@
 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
@@ -44,4 +46,6 @@
 vine.egg-info/SOURCES.txt
 vine.egg-info/dependency_links.txt
 vine.egg-info/not-zip-safe
-vine.egg-info/top_level.txt
\ No newline at end of file
+vine.egg-info/top_level.txt
+vine/backports/__init__.py
+vine/backports/weakref_backports.py
\ No newline at end of file


Reply via email to