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 <dmuel...@suse.com>
+
+- 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__ = 'python-...@python.org'
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())
+        )

Reply via email to