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"]
