Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-billiard for openSUSE:Factory
checked in at 2023-11-13 22:18:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-billiard (Old)
and /work/SRC/openSUSE:Factory/.python-billiard.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-billiard"
Mon Nov 13 22:18:01 2023 rev:24 rq:1124875 version:4.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-billiard/python-billiard.changes
2023-06-12 15:27:23.711387003 +0200
+++
/work/SRC/openSUSE:Factory/.python-billiard.new.17445/python-billiard.changes
2023-11-13 22:20:39.087018026 +0100
@@ -1,0 +2,15 @@
+Fri Nov 10 12:21:25 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 4.2.0:
+ * Update process.py to close during join only if process has
+ completed.
+ * Adjust the __repr__ in ApplyResult.
+ * Remove python 3.7 from CI.
+ * Added Python 3.12 support.
+ * Fixed (co_positions): resolve issue caused by absence
+ co_positions (#395).
+ * Fixed: Replaced mktemp usage for Python 3 from python 2.
+ * Changed nose test to pytest (#397) in Integration test.
+ * Changed nose dependency for unit test (#383).
+
+-------------------------------------------------------------------
Old:
----
billiard-4.1.0.tar.gz
New:
----
billiard-4.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-billiard.spec ++++++
--- /var/tmp/diff_new_pack.b933Y2/_old 2023-11-13 22:20:39.667039382 +0100
+++ /var/tmp/diff_new_pack.b933Y2/_new 2023-11-13 22:20:39.667039382 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-billiard
-Version: 4.1.0
+Version: 4.2.0
Release: 0
Summary: Python multiprocessing fork
License: BSD-3-Clause
++++++ billiard-4.1.0.tar.gz -> billiard-4.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/CHANGES.txt
new/billiard-4.2.0/CHANGES.txt
--- old/billiard-4.1.0/CHANGES.txt 2022-12-14 09:30:30.000000000 +0100
+++ new/billiard-4.2.0/CHANGES.txt 2023-11-06 06:15:36.000000000 +0100
@@ -1,3 +1,15 @@
+4.2.0 - 2023-11-06
+--------------------
+- Update process.py to close during join only if process has completed.
+- Adjust the __repr__ in ApplyResult.
+- Remove python 3.7 from CI.
+- Added Python 3.12 support.
+- Fixed (co_positions): resolve issue caused by absence co_positions (#395).
+- Fixed: Replaced mktemp usage for Python 3 from python 2.
+- Changed nose test to pytest (#397) in Integration test.
+- Changed nose dependency for unit test (#383).
+
+
4.1.0 - 2022-12-14
--------------------
- Fixed a python 2 to 3 compat issue which was missed earlier (#374).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/PKG-INFO new/billiard-4.2.0/PKG-INFO
--- old/billiard-4.1.0/PKG-INFO 2022-12-14 09:36:35.346751700 +0100
+++ new/billiard-4.2.0/PKG-INFO 2023-11-06 06:22:31.922458000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: billiard
-Version: 4.1.0
+Version: 4.2.0
Summary: Python multiprocessing fork with improvements and bugfixes
Home-page: https://github.com/celery/billiard
Author: R Oudkerk / Python Software Foundation
@@ -15,7 +15,7 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
@@ -33,15 +33,15 @@
========
billiard
========
-:version: 4.1.0
+:version: 4.2.0
|build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp|
-.. |build-status-lin| image::
https://secure.travis-ci.org/celery/billiard.png?branch=master
+.. |build-status-lin| image::
https://github.com/celery/billiard/actions/workflows/ci.yaml/badge.svg
:alt: Build status on Linux
- :target: https://travis-ci.org/celery/billiard
+ :target: https://github.com/celery/billiard/actions/workflows/ci.yaml
-.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=master
+.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=main
:alt: Build status on Windows
:target: https://ci.appveyor.com/project/ask/billiard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/README.rst
new/billiard-4.2.0/README.rst
--- old/billiard-4.1.0/README.rst 2022-12-14 09:32:30.000000000 +0100
+++ new/billiard-4.2.0/README.rst 2023-11-06 06:19:56.000000000 +0100
@@ -1,15 +1,15 @@
========
billiard
========
-:version: 4.1.0
+:version: 4.2.0
|build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp|
-.. |build-status-lin| image::
https://secure.travis-ci.org/celery/billiard.png?branch=master
+.. |build-status-lin| image::
https://github.com/celery/billiard/actions/workflows/ci.yaml/badge.svg
:alt: Build status on Linux
- :target: https://travis-ci.org/celery/billiard
+ :target: https://github.com/celery/billiard/actions/workflows/ci.yaml
-.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=master
+.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=main
:alt: Build status on Windows
:target: https://ci.appveyor.com/project/ask/billiard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard/__init__.py
new/billiard-4.2.0/billiard/__init__.py
--- old/billiard-4.1.0/billiard/__init__.py 2022-12-14 09:33:32.000000000
+0100
+++ new/billiard-4.2.0/billiard/__init__.py 2023-11-06 06:17:54.000000000
+0100
@@ -21,7 +21,7 @@
import sys
from . import context
-VERSION = (4, 1, 0)
+VERSION = (4, 2, 0)
__version__ = '.'.join(map(str, VERSION[0:4])) + "".join(VERSION[4:])
__author__ = 'R Oudkerk / Python Software Foundation'
__author_email__ = '[email protected]'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard/einfo.py
new/billiard-4.2.0/billiard/einfo.py
--- old/billiard-4.1.0/billiard/einfo.py 2022-12-14 09:21:04.000000000
+0100
+++ new/billiard-4.2.0/billiard/einfo.py 2023-11-05 10:14:38.000000000
+0100
@@ -57,12 +57,32 @@
# don't want to hit https://bugs.python.org/issue21967
self.f_restricted = False
+ if sys.version_info >= (3, 11):
+ @property
+ def co_positions(self):
+ return self.f_code.co_positions
+
class _Object:
def __init__(self, **kw):
[setattr(self, k, v) for k, v in kw.items()]
+ if sys.version_info >= (3, 11):
+ __default_co_positions__ = ((None, None, None, None),)
+
+ @property
+ def co_positions(self):
+ return getattr(
+ self,
+ "_co_positions",
+ self.__default_co_positions__
+ ).__iter__
+
+ @co_positions.setter
+ def co_positions(self, value):
+ self._co_positions = value # noqa
+
class _Truncated:
@@ -79,6 +99,11 @@
self.tb_next = None
self.tb_lasti = 0
+ if sys.version_info >= (3, 11):
+ @property
+ def co_positions(self):
+ return self.tb_frame.co_positions
+
class Traceback:
Frame = _Frame
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard/heap.py
new/billiard-4.2.0/billiard/heap.py
--- old/billiard-4.1.0/billiard/heap.py 2022-04-24 10:15:51.000000000 +0200
+++ new/billiard-4.2.0/billiard/heap.py 2023-11-05 10:14:38.000000000 +0100
@@ -90,15 +90,12 @@
f.write(b'\0' * (size % bs))
assert f.tell() == size
else:
- name = tempfile.mktemp(
+ self.fd, name = tempfile.mkstemp(
prefix='pym-%d-' % (os.getpid(),),
dir=util.get_temp_dir(),
)
- self.fd = os.open(
- name, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0o600,
- )
- util.Finalize(self, os.close, (self.fd,))
os.unlink(name)
+ util.Finalize(self, os.close, (self.fd,))
os.ftruncate(self.fd, size)
self.buffer = mmap.mmap(self.fd, self.size)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard/pool.py
new/billiard-4.2.0/billiard/pool.py
--- old/billiard-4.1.0/billiard/pool.py 2022-12-14 09:21:04.000000000 +0100
+++ new/billiard-4.2.0/billiard/pool.py 2023-11-05 10:14:38.000000000 +0100
@@ -1741,8 +1741,8 @@
cache[self._job] = self
def __repr__(self):
- return '<%s: {id} ack:{ack} ready:{ready}>'.format(
- self.__class__.__name__,
+ return '<{name}: {id} ack:{ack} ready:{ready}>'.format(
+ name=self.__class__.__name__,
id=self._job, ack=self._accepted, ready=self.ready(),
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard/process.py
new/billiard-4.2.0/billiard/process.py
--- old/billiard-4.1.0/billiard/process.py 2022-04-24 10:15:51.000000000
+0200
+++ new/billiard-4.2.0/billiard/process.py 2023-11-05 10:14:38.000000000
+0100
@@ -144,7 +144,7 @@
res = self._popen.wait(timeout)
if res is not None:
_children.discard(self)
- self.close()
+ self.close()
def is_alive(self):
'''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/billiard.egg-info/PKG-INFO
new/billiard-4.2.0/billiard.egg-info/PKG-INFO
--- old/billiard-4.1.0/billiard.egg-info/PKG-INFO 2022-12-14
09:36:34.000000000 +0100
+++ new/billiard-4.2.0/billiard.egg-info/PKG-INFO 2023-11-06
06:22:31.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: billiard
-Version: 4.1.0
+Version: 4.2.0
Summary: Python multiprocessing fork with improvements and bugfixes
Home-page: https://github.com/celery/billiard
Author: R Oudkerk / Python Software Foundation
@@ -15,7 +15,7 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
@@ -33,15 +33,15 @@
========
billiard
========
-:version: 4.1.0
+:version: 4.2.0
|build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp|
-.. |build-status-lin| image::
https://secure.travis-ci.org/celery/billiard.png?branch=master
+.. |build-status-lin| image::
https://github.com/celery/billiard/actions/workflows/ci.yaml/badge.svg
:alt: Build status on Linux
- :target: https://travis-ci.org/celery/billiard
+ :target: https://github.com/celery/billiard/actions/workflows/ci.yaml
-.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=master
+.. |build-status-win| image::
https://ci.appveyor.com/api/projects/status/github/celery/billiard?png=true&branch=main
:alt: Build status on Windows
:target: https://ci.appveyor.com/project/ask/billiard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/setup.py new/billiard-4.2.0/setup.py
--- old/billiard-4.1.0/setup.py 2022-12-14 09:23:25.000000000 +0100
+++ new/billiard-4.2.0/setup.py 2023-11-06 06:19:39.000000000 +0100
@@ -213,7 +213,7 @@
'Programming Language :: Python',
'Programming Language :: C',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/t/integration/setup.py
new/billiard-4.2.0/t/integration/setup.py
--- old/billiard-4.1.0/t/integration/setup.py 2022-04-24 08:20:04.000000000
+0200
+++ new/billiard-4.2.0/t/integration/setup.py 2023-11-05 10:56:20.000000000
+0100
@@ -40,9 +40,9 @@
data_files=[],
zip_safe=False,
cmdclass={'install': no_install},
- test_suite='nose.collector',
+ test_suite='pytest',
build_requires=[
- 'nose',
+ 'pytest',
'coverage>=3.0',
],
classifiers=[
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/billiard-4.1.0/t/integration/tests/test_multiprocessing.py
new/billiard-4.2.0/t/integration/tests/test_multiprocessing.py
--- old/billiard-4.1.0/t/integration/tests/test_multiprocessing.py
2022-04-24 08:20:04.000000000 +0200
+++ new/billiard-4.2.0/t/integration/tests/test_multiprocessing.py
2023-11-06 06:05:25.000000000 +0100
@@ -13,13 +13,15 @@
import array
import random
import logging
-from nose import SkipTest
-from test import test_support
from StringIO import StringIO
+
+import pytest
+from test import test_support
+
try:
from billiard._ext import _billiard
except ImportError as exc:
- raise SkipTest(exc)
+ raise pytest.skip(exc)
# import threading after _billiard to raise a more revelant error
# message: "No module named _billiard". _billiard is not compiled
# without thread support.
@@ -29,7 +31,7 @@
try:
import billiard.synchronize
except ImportError as exc:
- raise SkipTest(exc)
+ raise pytest.skip(exc)
import billiard.dummy
import billiard.connection
@@ -508,7 +510,7 @@
queue = self.JoinableQueue()
if sys.version_info < (2, 5) and not hasattr(queue, 'task_done'):
- self.skipTest("requires 'queue.task_done()' method")
+ pytest.skip("requires 'queue.task_done()' method")
workers = [self.Process(target=self._test_task_done, args=(queue,))
for i in xrange(4)]
@@ -1987,7 +1989,7 @@
try:
billiard.RLock()
except OSError:
- raise SkipTest("OSError raises on RLock creation, see issue 3111!")
+ raise pytest.skip("OSError raises on RLock creation, see issue
3111!")
if run is None:
from test.test_support import run_unittest as run
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/billiard-4.1.0/t/unit/test_einfo.py
new/billiard-4.2.0/t/unit/test_einfo.py
--- old/billiard-4.1.0/t/unit/test_einfo.py 2022-08-03 07:05:40.000000000
+0200
+++ new/billiard-4.2.0/t/unit/test_einfo.py 2023-11-05 10:14:38.000000000
+0100
@@ -1,6 +1,12 @@
-import pickle
import logging
-from billiard.einfo import ExceptionInfo
+import pickle
+import sys
+
+from billiard.einfo import _Code # noqa
+from billiard.einfo import _Frame # noqa
+from billiard.einfo import _Object # noqa
+from billiard.einfo import _Truncated # noqa
+from billiard.einfo import ExceptionInfo, Traceback
logger = logging.getLogger(__name__)
@@ -26,3 +32,87 @@
logger.exception("failed", exc_info=exception)
assert ' raise RuntimeError("some message")' in caplog.text
assert "RuntimeError: some message" in caplog.text
+
+
+def test_exception_info():
+ try:
+ raise ValueError("Test Exception")
+ except ValueError:
+ exc_info = sys.exc_info()
+ e_info = ExceptionInfo(exc_info)
+ assert isinstance(e_info.type, type)
+ assert isinstance(e_info.exception, Exception)
+ assert isinstance(e_info.tb, Traceback)
+ assert isinstance(e_info.traceback, str)
+
+
+def test_traceback():
+ try:
+ raise ValueError("Test Exception")
+ except ValueError:
+ tb = sys.exc_info()[2]
+ trace = Traceback(tb)
+ assert isinstance(trace.tb_frame, _Frame)
+ assert isinstance(trace.tb_lineno, int)
+ assert isinstance(trace.tb_lasti, int)
+ assert trace.tb_next is None or isinstance(trace.tb_next, Traceback)
+
+
+def test_frame():
+ try:
+ raise ValueError("Test Exception")
+ except ValueError:
+ tb = sys.exc_info()[2]
+ frame = _Frame(tb.tb_frame)
+ assert isinstance(frame.f_code, _Code)
+ assert isinstance(frame.f_lineno, int)
+ assert isinstance(frame.f_lasti, int)
+ assert frame.f_globals == {
+ "__file__": frame.f_globals.get("__file__", "__main__"),
+ "__name__": frame.f_globals.get("__name__"),
+ "__loader__": None,
+ }
+
+
+def test_code():
+ try:
+ raise ValueError("Test Exception")
+ except ValueError:
+ tb = sys.exc_info()[2]
+ frame = tb.tb_frame
+ code = _Code(frame.f_code)
+ assert isinstance(code.co_filename, str)
+ assert isinstance(code.co_name, str)
+ assert isinstance(code.co_argcount, int)
+ if sys.version_info >= (3, 11):
+ assert callable(code.co_positions)
+ assert next(code.co_positions()) == (77, 77, 0, 0)
+
+
+def test_object_init():
+ obj = _Object(a=1, b=2, c=3)
+ assert obj.a == 1
+ assert obj.b == 2
+ assert obj.c == 3
+
+
+if sys.version_info >= (3, 11):
+
+ def test_object_co_positions():
+ obj = _Object()
+
+ default = ((None, None, None, None),)
+ # Test that it returns the default co_positions
+ assert list(iter(obj.co_positions())) == list(default)
+
+ # Test setting co_positions
+ new_value = ((1, 2, 3, 4),)
+ obj.co_positions = new_value
+ assert list(iter(obj.co_positions())) == list(new_value)
+
+ def test_truncated_co_positions():
+ truncated = _Truncated()
+
+ assert list(iter(truncated.co_positions())) == list(
+ iter(truncated.tb_frame.co_positions())
+ )