Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyperf for openSUSE:Factory 
checked in at 2026-03-04 21:08:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyperf (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyperf.new.561 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyperf"

Wed Mar  4 21:08:18 2026 rev:14 rq:1336211 version:2.10.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyperf/python-pyperf.changes      
2025-04-29 16:41:00.079754848 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyperf.new.561/python-pyperf.changes     
2026-03-04 21:08:47.069291887 +0100
@@ -1,0 +2,12 @@
+Tue Mar  3 20:41:55 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.10.0:
+  * Feature: JIT builds of CPython are now recognized as a JIT
+    implementation by :func:`perf.python_has_jit`. Patch by Ken
+    Jin.
+  * Feature: Memory tracker now supports BSD. Patch by Laurent
+    Cheylus and Victor Stinner.
+  * Maintenance: pyperf now requires Python 3.9 or higher. Patch
+    by Alex Willmer.
+
+-------------------------------------------------------------------

Old:
----
  pyperf-2.9.0.tar.gz

New:
----
  pyperf-2.10.0.tar.gz

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

Other differences:
------------------
++++++ python-pyperf.spec ++++++
--- /var/tmp/diff_new_pack.vYssht/_old  2026-03-04 21:08:48.889367109 +0100
+++ /var/tmp/diff_new_pack.vYssht/_new  2026-03-04 21:08:48.921368432 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pyperf
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pyperf
-Version:        2.9.0
+Version:        2.10.0
 Release:        0
 Summary:        Python module to run and analyze benchmarks
 License:        MIT

++++++ pyperf-2.9.0.tar.gz -> pyperf-2.10.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/PKG-INFO new/pyperf-2.10.0/PKG-INFO
--- old/pyperf-2.9.0/PKG-INFO   2025-03-04 14:45:26.637902000 +0100
+++ new/pyperf-2.10.0/PKG-INFO  2026-02-07 12:34:56.976310700 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: pyperf
-Version: 2.9.0
+Version: 2.10.0
 Summary: Python module to run and analyze benchmarks
 Author-email: Victor Stinner <[email protected]>
 Maintainer-email: Dong-hee Na <[email protected]>
@@ -19,6 +19,7 @@
 Requires-Dist: psutil>=5.9.0
 Provides-Extra: dev
 Requires-Dist: tox; extra == "dev"
+Dynamic: license-file
 
 ******
 pyperf
@@ -28,6 +29,10 @@
    :alt: Latest release on the Python Cheeseshop (PyPI)
    :target: https://pypi.python.org/pypi/pyperf
 
+.. image:: 
https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fpsf%2Fpyperf%2Frefs%2Fheads%2Fmain%2Fpyproject.toml
+   :alt: Supported Python versions
+   :target: https://pypi.python.org/pypi/pyperf
+
 .. image:: https://github.com/psf/pyperf/actions/workflows/build.yml/badge.svg
    :alt: Build status of pyperf on GitHub Actions
    :target: https://github.com/psf/pyperf/actions
@@ -150,7 +155,7 @@
 
     python3 -m pip install pyperf
 
-pyperf requires Python 3.7 or newer.
+pyperf requires Python 3.9 or newer.
 
 Python 2.7 users can use pyperf 1.7.1 which is the last version compatible with
 Python 2.7.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/README.rst new/pyperf-2.10.0/README.rst
--- old/pyperf-2.9.0/README.rst 2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/README.rst        2026-02-07 12:34:50.000000000 +0100
@@ -6,6 +6,10 @@
    :alt: Latest release on the Python Cheeseshop (PyPI)
    :target: https://pypi.python.org/pypi/pyperf
 
+.. image:: 
https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fpsf%2Fpyperf%2Frefs%2Fheads%2Fmain%2Fpyproject.toml
+   :alt: Supported Python versions
+   :target: https://pypi.python.org/pypi/pyperf
+
 .. image:: https://github.com/psf/pyperf/actions/workflows/build.yml/badge.svg
    :alt: Build status of pyperf on GitHub Actions
    :target: https://github.com/psf/pyperf/actions
@@ -128,7 +132,7 @@
 
     python3 -m pip install pyperf
 
-pyperf requires Python 3.7 or newer.
+pyperf requires Python 3.9 or newer.
 
 Python 2.7 users can use pyperf 1.7.1 which is the last version compatible with
 Python 2.7.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/doc/changelog.rst 
new/pyperf-2.10.0/doc/changelog.rst
--- old/pyperf-2.9.0/doc/changelog.rst  2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/doc/changelog.rst 2026-02-07 12:34:50.000000000 +0100
@@ -1,6 +1,16 @@
 Changelog
 =========
 
+Version 2.10.0 (2026-02-07)
+---------------------------
+
+* Feature: JIT builds of CPython are now recognized as a JIT implementation by 
:func:`perf.python_has_jit`.
+  Patch by Ken Jin.
+* Feature: Memory tracker now supports BSD.
+  Patch by Laurent Cheylus and Victor Stinner.
+* Maintenance: ``pyperf`` now requires Python 3.9 or higher.
+  Patch by Alex Willmer.
+
 Version 2.9.0 (2025-03-03)
 --------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/doc/conf.py 
new/pyperf-2.10.0/doc/conf.py
--- old/pyperf-2.9.0/doc/conf.py        2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/doc/conf.py       2026-02-07 12:34:50.000000000 +0100
@@ -50,7 +50,7 @@
 # built documents.
 #
 # The short X.Y version.
-version = release = '2.9.0'
+version = release = '2.10.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/doc/run_benchmark.rst 
new/pyperf-2.10.0/doc/run_benchmark.rst
--- old/pyperf-2.9.0/doc/run_benchmark.rst      2025-03-04 14:45:19.000000000 
+0100
+++ new/pyperf-2.10.0/doc/run_benchmark.rst     2026-02-07 12:34:50.000000000 
+0100
@@ -23,7 +23,7 @@
 * Python module ``psutil``. Install: ``python3 -m pip install -U psutil``.
 * When you are using macOS, you need to install ``psutil`` if you want to use 
``--track-memory`` option.
 
-pyperf requires Python 3.6 or newer.
+pyperf requires Python 3.9 or newer.
 
 Python 2.7 users can use pyperf 1.7.1 which is the last version compatible with
 Python 2.7.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/doc/runner.rst 
new/pyperf-2.10.0/doc/runner.rst
--- old/pyperf-2.9.0/doc/runner.rst     2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/doc/runner.rst    2026-02-07 12:34:50.000000000 +0100
@@ -146,7 +146,7 @@
   There is no time out by default.
 * ``--tracemalloc``: Use the ``tracemalloc`` module to track Python memory
   allocation and get the peak of memory usage in metadata
-  (``tracemalloc_peak``). The module is only available on Python 3.4 and newer.
+  (``tracemalloc_peak``).
   See the `tracemalloc module
   <https://docs.python.org/dev/library/tracemalloc.html>`_.
 * ``--track-memory``: get the memory peak usage. it is less accurate than
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/__init__.py 
new/pyperf-2.10.0/pyperf/__init__.py
--- old/pyperf-2.9.0/pyperf/__init__.py 2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/pyperf/__init__.py        2026-02-07 12:34:50.000000000 
+0100
@@ -1,6 +1,6 @@
 from time import perf_counter
 
-VERSION = (2, 9, 0)
+VERSION = (2, 10, 0)
 __version__ = '.'.join(map(str, VERSION))
 
 # Export pyperf.perf_counter for backward compatibility with pyperf 1.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/_cpu_utils.py 
new/pyperf-2.10.0/pyperf/_cpu_utils.py
--- old/pyperf-2.9.0/pyperf/_cpu_utils.py       2025-03-04 14:45:19.000000000 
+0100
+++ new/pyperf-2.10.0/pyperf/_cpu_utils.py      2026-02-07 12:34:50.000000000 
+0100
@@ -17,20 +17,10 @@
     if psutil is not None:
         # Number of logical CPUs
         cpu_count = psutil.cpu_count()
-    elif hasattr(os, 'cpu_count'):
+    else:
         # Python 3.4
+        # Python 3.13+: capped by -X cpu_count=n or $PYTHON_CPU_COUNT if set
         cpu_count = os.cpu_count()
-    else:
-        cpu_count = None
-        try:
-            import multiprocessing
-        except ImportError:
-            pass
-        else:
-            try:
-                cpu_count = multiprocessing.cpu_count()
-            except NotImplementedError:
-                pass
 
     if cpu_count is not None and cpu_count < 1:
         return None
@@ -148,7 +138,7 @@
 
 
 def set_cpu_affinity(cpus):
-    # Python 3.3 or newer?
+    # Availability: some Unix platforms
     if hasattr(os, 'sched_setaffinity'):
         os.sched_setaffinity(0, cpus)
         return True
@@ -161,6 +151,8 @@
     except ImportError:
         return
 
+    # Availability: Linux, Windows, FreeBSD (psutil 2.2.0+)
+    # https://psutil.rtfd.io/en/latest/index.html#psutil.Process.cpu_affinity
     proc = psutil.Process()
     if not hasattr(proc, 'cpu_affinity'):
         return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/_psutil_memory.py 
new/pyperf-2.10.0/pyperf/_psutil_memory.py
--- old/pyperf-2.9.0/pyperf/_psutil_memory.py   2025-03-04 14:45:19.000000000 
+0100
+++ new/pyperf-2.10.0/pyperf/_psutil_memory.py  2026-02-07 12:34:50.000000000 
+0100
@@ -1,6 +1,6 @@
 import os
 try:
-    from pyperf._utils import USE_PSUTIL
+    from pyperf._utils import USE_PSUTIL, BSD
     if not USE_PSUTIL:
         raise ImportError
     else:
@@ -21,7 +21,12 @@
         self._quit = False
 
     def get(self):
-        usage = self.process.memory_full_info().uss
+        if BSD:
+            # USS (Unique Set Size) is not supported on BSD,
+            # use RSS (Resident Set Size) instead.
+            usage = self.process.memory_info().rss
+        else:
+            usage = self.process.memory_full_info().uss
         self.peak_usage = max(self.peak_usage, usage)
 
     def run(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/_runner.py 
new/pyperf-2.10.0/pyperf/_runner.py
--- old/pyperf-2.9.0/pyperf/_runner.py  2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/pyperf/_runner.py 2026-02-07 12:34:50.000000000 +0100
@@ -12,9 +12,10 @@
                                set_highest_priority)
 from pyperf._formatter import format_timedelta
 from pyperf._hooks import get_hook_names
-from pyperf._utils import (MS_WINDOWS, MAC_OS, abs_executable,
+from pyperf._utils import (MS_WINDOWS, abs_executable,
                            WritePipe, get_python_names,
                            merge_profile_stats)
+from pyperf._system import OS_LINUX
 from pyperf._worker import WorkerProcessTask
 
 
@@ -346,10 +347,10 @@
         if args.track_memory:
             if MS_WINDOWS:
                 from pyperf._win_memory import check_tracking_memory
-            elif MAC_OS:
-                from pyperf._psutil_memory import check_tracking_memory
-            else:
+            elif OS_LINUX:
                 from pyperf._linux_memory import check_tracking_memory
+            else:
+                from pyperf._psutil_memory import check_tracking_memory
             err_msg = check_tracking_memory()
             if err_msg:
                 raise CLIError("unable to track the memory usage "
@@ -415,12 +416,14 @@
         else:
             if not isolated:
                 print("ERROR: CPU affinity not available.", file=sys.stderr)
-                print("Use Python 3.3 or newer, or install psutil dependency")
+                print("Install psutil dependency and check "
+                      "psutil.Process.cpu_affinity is available on your OS.")
                 sys.exit(1)
             elif not self.args.quiet:
                 print("WARNING: unable to pin worker processes to "
                       "isolated CPUs, CPU affinity not available")
-                print("Use Python 3.3 or newer, or install psutil dependency")
+                print("Install psutil dependency and check "
+                      "psutil.Process.cpu_affinity is available on your OS.")
 
     def _process_priority(self):
         if not MS_WINDOWS:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/_utils.py 
new/pyperf-2.10.0/pyperf/_utils.py
--- old/pyperf-2.9.0/pyperf/_utils.py   2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/pyperf/_utils.py  2026-02-07 12:34:50.000000000 +0100
@@ -15,6 +15,7 @@
 USE_PSUTIL = not bool(sysconfig.get_config_var('Py_GIL_DISABLED'))
 MS_WINDOWS = (sys.platform == 'win32')
 MAC_OS = (sys.platform == 'darwin')
+BSD = ('bsd' in sys.platform)
 
 if MS_WINDOWS:
     import msvcrt
@@ -173,22 +174,7 @@
 
 
 def python_implementation():
-    if hasattr(sys, 'implementation'):
-        # PEP 421, Python 3.3
-        name = sys.implementation.name
-    else:
-        # Code extracted from platform.python_implementation().
-        # Don't import platform to avoid the subprocess import.
-        sys_version = sys.version
-        if 'IronPython' in sys_version:
-            name = 'IronPython'
-        elif sys.platform.startswith('java'):
-            name = 'Jython'
-        elif "PyPy" in sys_version:
-            name = "PyPy"
-        else:
-            name = 'CPython'
-    return name.lower()
+    return sys.implementation.name.lower()
 
 
 def python_has_jit():
@@ -197,6 +183,11 @@
         return sys.pypy_translation_info["translation.jit"]
     elif implementation_name in ['graalpython', 'graalpy']:
         return True
+    elif implementation_name == 'cpython':
+        jit_module = getattr(sys, '_jit', None)
+        if jit_module is not None:
+            return jit_module.is_enabled()
+        return False
     elif hasattr(sys, "pyston_version_info") or "pyston_lite" in sys.modules:
         return True
     return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf/_worker.py 
new/pyperf-2.10.0/pyperf/_worker.py
--- old/pyperf-2.9.0/pyperf/_worker.py  2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/pyperf/_worker.py 2026-02-07 12:34:50.000000000 +0100
@@ -7,7 +7,8 @@
 from pyperf._formatter import (format_number, format_value, format_values,
                                format_timedelta)
 from pyperf._hooks import instantiate_selected_hooks
-from pyperf._utils import MS_WINDOWS, MAC_OS, percentile, median_abs_dev
+from pyperf._utils import MS_WINDOWS, percentile, median_abs_dev
+from pyperf._system import OS_LINUX
 
 
 MAX_LOOPS = 2 ** 32
@@ -327,12 +328,12 @@
         if MS_WINDOWS:
             from pyperf._win_memory import get_peak_pagefile_usage
             self.get_peak_profile_usage = get_peak_pagefile_usage
-        elif MAC_OS:
-            from pyperf._psutil_memory import PeakMemoryUsageThread
+        elif OS_LINUX:
+            from pyperf._linux_memory import PeakMemoryUsageThread
             self.mem_thread = PeakMemoryUsageThread()
             self.mem_thread.start()
         else:
-            from pyperf._linux_memory import PeakMemoryUsageThread
+            from pyperf._psutil_memory import PeakMemoryUsageThread
             self.mem_thread = PeakMemoryUsageThread()
             self.mem_thread.start()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyperf.egg-info/PKG-INFO 
new/pyperf-2.10.0/pyperf.egg-info/PKG-INFO
--- old/pyperf-2.9.0/pyperf.egg-info/PKG-INFO   2025-03-04 14:45:26.000000000 
+0100
+++ new/pyperf-2.10.0/pyperf.egg-info/PKG-INFO  2026-02-07 12:34:56.000000000 
+0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: pyperf
-Version: 2.9.0
+Version: 2.10.0
 Summary: Python module to run and analyze benchmarks
 Author-email: Victor Stinner <[email protected]>
 Maintainer-email: Dong-hee Na <[email protected]>
@@ -19,6 +19,7 @@
 Requires-Dist: psutil>=5.9.0
 Provides-Extra: dev
 Requires-Dist: tox; extra == "dev"
+Dynamic: license-file
 
 ******
 pyperf
@@ -28,6 +29,10 @@
    :alt: Latest release on the Python Cheeseshop (PyPI)
    :target: https://pypi.python.org/pypi/pyperf
 
+.. image:: 
https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fpsf%2Fpyperf%2Frefs%2Fheads%2Fmain%2Fpyproject.toml
+   :alt: Supported Python versions
+   :target: https://pypi.python.org/pypi/pyperf
+
 .. image:: https://github.com/psf/pyperf/actions/workflows/build.yml/badge.svg
    :alt: Build status of pyperf on GitHub Actions
    :target: https://github.com/psf/pyperf/actions
@@ -150,7 +155,7 @@
 
     python3 -m pip install pyperf
 
-pyperf requires Python 3.7 or newer.
+pyperf requires Python 3.9 or newer.
 
 Python 2.7 users can use pyperf 1.7.1 which is the last version compatible with
 Python 2.7.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyperf-2.9.0/pyproject.toml 
new/pyperf-2.10.0/pyproject.toml
--- old/pyperf-2.9.0/pyproject.toml     2025-03-04 14:45:19.000000000 +0100
+++ new/pyperf-2.10.0/pyproject.toml    2026-02-07 12:34:50.000000000 +0100
@@ -44,6 +44,7 @@
     "Programming Language :: Python :: 3",
     "Topic :: Software Development :: Libraries :: Python Modules"
 ]
+# Also update: README.rst, docs/run_benchmark.rst
 requires-python = ">=3.9"
 dependencies = ["psutil>=5.9.0"]
 

Reply via email to