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