Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jaraco.functools for
openSUSE:Factory checked in at 2026-05-20 16:47:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jaraco.functools (Old)
and /work/SRC/openSUSE:Factory/.python-jaraco.functools.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jaraco.functools"
Wed May 20 16:47:48 2026 rev:22 rq:1353618 version:4.5.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jaraco.functools/python-jaraco.functools.changes
2025-12-29 15:16:26.394113168 +0100
+++
/work/SRC/openSUSE:Factory/.python-jaraco.functools.new.1966/python-jaraco.functools.changes
2026-05-20 16:47:51.448527183 +0200
@@ -1,0 +2,8 @@
+Sun May 17 19:28:27 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 4.5.0:
+ * bypass_when and bypass_unless now accept callable checks and
+ evaluate them on each invocation instead of binding only at
+ decoration time.
+
+-------------------------------------------------------------------
Old:
----
jaraco_functools-4.4.0.tar.gz
New:
----
jaraco_functools-4.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jaraco.functools.spec ++++++
--- /var/tmp/diff_new_pack.w07c4K/_old 2026-05-20 16:47:53.296603537 +0200
+++ /var/tmp/diff_new_pack.w07c4K/_new 2026-05-20 16:47:53.308604033 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jaraco.functools
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# 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-jaraco.functools
-Version: 4.4.0
+Version: 4.5.0
Release: 0
Summary: Tools to work with functools
License: MIT
++++++ jaraco_functools-4.4.0.tar.gz -> jaraco_functools-4.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/.github/workflows/main.yml
new/jaraco_functools-4.5.0/.github/workflows/main.yml
--- old/jaraco_functools-4.4.0/.github/workflows/main.yml 2025-12-21
10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/.github/workflows/main.yml 2026-05-15
23:33:48.000000000 +0200
@@ -34,31 +34,34 @@
# https://blog.jaraco.com/efficient-use-of-ci-resources/
matrix:
python:
- - "3.9"
- - "3.13"
+ - "3.10"
+ - "3.14"
+ - "3.14t"
platform:
- ubuntu-latest
- macos-latest
- windows-latest
include:
- - python: "3.10"
- platform: ubuntu-latest
- python: "3.11"
platform: ubuntu-latest
- python: "3.12"
platform: ubuntu-latest
- - python: "3.14"
+ - python: "3.13"
+ platform: ubuntu-latest
+ - python: "3.13t"
+ platform: ubuntu-latest
+ - python: "3.15"
platform: ubuntu-latest
- python: pypy3.10
platform: ubuntu-latest
runs-on: ${{ matrix.platform }}
- continue-on-error: ${{ matrix.python == '3.14' }}
+ continue-on-error: ${{ matrix.python == '3.15' }}
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
# Install dependencies for building packages on pre-release Pythons
# jaraco/skeleton#161
- if: matrix.python == '3.14' && matrix.platform == 'ubuntu-latest'
+ if: matrix.python == '3.15' && matrix.platform == 'ubuntu-latest'
run: |
sudo apt update
sudo apt install -y libxml2-dev libxslt-dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/.pre-commit-config.yaml
new/jaraco_functools-4.5.0/.pre-commit-config.yaml
--- old/jaraco_functools-4.4.0/.pre-commit-config.yaml 2025-12-21
10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/.pre-commit-config.yaml 2026-05-15
23:33:48.000000000 +0200
@@ -2,6 +2,6 @@
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.12.0
hooks:
- - id: ruff
+ - id: ruff-check
args: [--fix, --unsafe-fixes]
- id: ruff-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/AGENTS.md
new/jaraco_functools-4.5.0/AGENTS.md
--- old/jaraco_functools-4.4.0/AGENTS.md 1970-01-01 01:00:00.000000000
+0100
+++ new/jaraco_functools-4.5.0/AGENTS.md 2026-05-15 23:33:48.000000000
+0200
@@ -0,0 +1,3 @@
+This project follows the [skeleton](https://blog.jaraco.com/skeleton); please
read for context on development.
+
+Before committing, ensure .git/info/exclude is populated from jaraco/dotfiles
.gitignore_global so that generated artifacts are never staged.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/LICENSE
new/jaraco_functools-4.5.0/LICENSE
--- old/jaraco_functools-4.4.0/LICENSE 2025-12-21 10:29:38.000000000 +0100
+++ new/jaraco_functools-4.5.0/LICENSE 2026-05-15 23:34:05.000000000 +0200
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2025 <copyright holders>
+Copyright (c) 2026 <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and
associated documentation files (the "Software"), to deal in the Software
without restriction, including
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/NEWS.rst
new/jaraco_functools-4.5.0/NEWS.rst
--- old/jaraco_functools-4.4.0/NEWS.rst 2025-12-21 10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/NEWS.rst 2026-05-15 23:33:48.000000000 +0200
@@ -1,3 +1,13 @@
+v4.5.0
+======
+
+Features
+--------
+
+- ``bypass_when`` and ``bypass_unless`` now accept callable checks and evaluate
+ them on each invocation instead of binding only at decoration time. (#36)
+
+
v4.4.0
======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/PKG-INFO
new/jaraco_functools-4.5.0/PKG-INFO
--- old/jaraco_functools-4.4.0/PKG-INFO 2025-12-21 10:29:38.567340900 +0100
+++ new/jaraco_functools-4.5.0/PKG-INFO 2026-05-15 23:34:05.487042400 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: jaraco.functools
-Version: 4.4.0
+Version: 4.5.0
Summary: Functools like those found in stdlib
Author-email: "Jason R. Coombs" <[email protected]>
License-Expression: MIT
@@ -9,7 +9,7 @@
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.9
+Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: more_itertools
@@ -24,15 +24,14 @@
Requires-Dist: sphinx-lint; extra == "doc"
Requires-Dist: jaraco.tidelift>=1.4; extra == "doc"
Provides-Extra: check
-Requires-Dist: pytest-checkdocs>=2.4; extra == "check"
+Requires-Dist: pytest-checkdocs>=2.14; extra == "check"
Requires-Dist: pytest-ruff>=0.2.1; sys_platform != "cygwin" and extra ==
"check"
Provides-Extra: cover
Requires-Dist: pytest-cov; extra == "cover"
Provides-Extra: enabler
Requires-Dist: pytest-enabler>=3.4; extra == "enabler"
Provides-Extra: type
-Requires-Dist: pytest-mypy>=1.0.1; extra == "type"
-Requires-Dist: mypy<1.19; platform_python_implementation == "PyPy" and extra
== "type"
+Requires-Dist: pytest-mypy>=1.0.1; platform_python_implementation != "PyPy"
and extra == "type"
Dynamic: license-file
.. image:: https://img.shields.io/pypi/v/jaraco.functools.svg
@@ -51,7 +50,7 @@
.. image::
https://readthedocs.org/projects/jaracofunctools/badge/?version=latest
:target: https://jaracofunctools.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2025-informational
+.. image:: https://img.shields.io/badge/skeleton-2026-informational
:target: https://blog.jaraco.com/skeleton
.. image:: https://tidelift.com/badges/package/pypi/jaraco.functools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/README.rst
new/jaraco_functools-4.5.0/README.rst
--- old/jaraco_functools-4.4.0/README.rst 2025-12-21 10:29:20.000000000
+0100
+++ new/jaraco_functools-4.5.0/README.rst 2026-05-15 23:33:48.000000000
+0200
@@ -14,7 +14,7 @@
.. image::
https://readthedocs.org/projects/jaracofunctools/badge/?version=latest
:target: https://jaracofunctools.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2025-informational
+.. image:: https://img.shields.io/badge/skeleton-2026-informational
:target: https://blog.jaraco.com/skeleton
.. image:: https://tidelift.com/badges/package/pypi/jaraco.functools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/jaraco/functools/__init__.py
new/jaraco_functools-4.5.0/jaraco/functools/__init__.py
--- old/jaraco_functools-4.4.0/jaraco/functools/__init__.py 2025-12-21
10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/jaraco/functools/__init__.py 2026-05-15
23:33:48.000000000 +0200
@@ -8,7 +8,8 @@
import time
import types
import warnings
-from typing import Callable, TypeVar
+from collections.abc import Callable
+from typing import TypeVar
import more_itertools
@@ -297,6 +298,8 @@
"""
Wrap the function to always return the first parameter.
+ Useful for wrapping functions called for their side effects.
+
>>> passthrough(print)('3')
3
'3'
@@ -580,6 +583,16 @@
return x
[email protected]
+def _as_invocable(check):
+ return lambda: check
+
+
+@_as_invocable.register(collections.abc.Callable)
+def _(check):
+ return check
+
+
def bypass_when(check, *, _op=identity):
"""
Decorate a function to return its parameter when ``check``.
@@ -594,12 +607,24 @@
>>> bypassed[:] = [object()] # True
>>> double(2)
2
+
+ ``check`` may also be a callable returning the condition.
+
+ >>> enabled = False
+ >>> @bypass_when(lambda: enabled)
+ ... def double(x):
+ ... return x * 2
+ >>> double(2)
+ 4
+ >>> enabled = True
+ >>> double(2)
+ 2
"""
def decorate(func):
@functools.wraps(func)
def wrapper(param, /):
- return param if _op(check) else func(param)
+ return param if _op(_as_invocable(check)()) else func(param)
return wrapper
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/jaraco/functools/__init__.pyi
new/jaraco_functools-4.5.0/jaraco/functools/__init__.pyi
--- old/jaraco_functools-4.4.0/jaraco/functools/__init__.pyi 2025-12-21
10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/jaraco/functools/__init__.pyi 2026-05-15
23:33:48.000000000 +0200
@@ -3,13 +3,14 @@
from operator import methodcaller
from typing import (
Any,
+ Concatenate,
Generic,
Protocol,
TypeVar,
overload,
)
-from typing_extensions import Concatenate, ParamSpec, TypeVarTuple, Unpack
+from typing_extensions import ParamSpec, TypeVarTuple, Unpack
_P = ParamSpec('_P')
_R = TypeVar('_R')
@@ -115,7 +116,7 @@
) -> Callable[[Callable[_P, Any]], Callable[_P, Any]]: ...
def identity(x: _T) -> _T: ...
def bypass_when(
- check: _V, *, _op: Callable[[_V], Any] = ...
+ check: _V | Callable[[], _V], *, _op: Callable[[_V], Any] = ...
) -> Callable[[Callable[[_T], _R]], Callable[[_T], _T | _R]]: ...
def bypass_unless(
check: Any,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco_functools-4.4.0/jaraco.functools.egg-info/PKG-INFO
new/jaraco_functools-4.5.0/jaraco.functools.egg-info/PKG-INFO
--- old/jaraco_functools-4.4.0/jaraco.functools.egg-info/PKG-INFO
2025-12-21 10:29:38.000000000 +0100
+++ new/jaraco_functools-4.5.0/jaraco.functools.egg-info/PKG-INFO
2026-05-15 23:34:05.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: jaraco.functools
-Version: 4.4.0
+Version: 4.5.0
Summary: Functools like those found in stdlib
Author-email: "Jason R. Coombs" <[email protected]>
License-Expression: MIT
@@ -9,7 +9,7 @@
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.9
+Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: more_itertools
@@ -24,15 +24,14 @@
Requires-Dist: sphinx-lint; extra == "doc"
Requires-Dist: jaraco.tidelift>=1.4; extra == "doc"
Provides-Extra: check
-Requires-Dist: pytest-checkdocs>=2.4; extra == "check"
+Requires-Dist: pytest-checkdocs>=2.14; extra == "check"
Requires-Dist: pytest-ruff>=0.2.1; sys_platform != "cygwin" and extra ==
"check"
Provides-Extra: cover
Requires-Dist: pytest-cov; extra == "cover"
Provides-Extra: enabler
Requires-Dist: pytest-enabler>=3.4; extra == "enabler"
Provides-Extra: type
-Requires-Dist: pytest-mypy>=1.0.1; extra == "type"
-Requires-Dist: mypy<1.19; platform_python_implementation == "PyPy" and extra
== "type"
+Requires-Dist: pytest-mypy>=1.0.1; platform_python_implementation != "PyPy"
and extra == "type"
Dynamic: license-file
.. image:: https://img.shields.io/pypi/v/jaraco.functools.svg
@@ -51,7 +50,7 @@
.. image::
https://readthedocs.org/projects/jaracofunctools/badge/?version=latest
:target: https://jaracofunctools.readthedocs.io/en/latest/?badge=latest
-.. image:: https://img.shields.io/badge/skeleton-2025-informational
+.. image:: https://img.shields.io/badge/skeleton-2026-informational
:target: https://blog.jaraco.com/skeleton
.. image:: https://tidelift.com/badges/package/pypi/jaraco.functools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco_functools-4.4.0/jaraco.functools.egg-info/SOURCES.txt
new/jaraco_functools-4.5.0/jaraco.functools.egg-info/SOURCES.txt
--- old/jaraco_functools-4.4.0/jaraco.functools.egg-info/SOURCES.txt
2025-12-21 10:29:38.000000000 +0100
+++ new/jaraco_functools-4.5.0/jaraco.functools.egg-info/SOURCES.txt
2026-05-15 23:34:05.000000000 +0200
@@ -2,6 +2,7 @@
.editorconfig
.pre-commit-config.yaml
.readthedocs.yaml
+AGENTS.md
LICENSE
NEWS.rst
README.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco_functools-4.4.0/jaraco.functools.egg-info/requires.txt
new/jaraco_functools-4.5.0/jaraco.functools.egg-info/requires.txt
--- old/jaraco_functools-4.4.0/jaraco.functools.egg-info/requires.txt
2025-12-21 10:29:38.000000000 +0100
+++ new/jaraco_functools-4.5.0/jaraco.functools.egg-info/requires.txt
2026-05-15 23:34:05.000000000 +0200
@@ -1,7 +1,7 @@
more_itertools
[check]
-pytest-checkdocs>=2.4
+pytest-checkdocs>=2.14
[check:sys_platform != "cygwin"]
pytest-ruff>=0.2.1
@@ -25,7 +25,6 @@
jaraco.classes
[type]
-pytest-mypy>=1.0.1
-[type:platform_python_implementation == "PyPy"]
-mypy<1.19
+[type:platform_python_implementation != "PyPy"]
+pytest-mypy>=1.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/pyproject.toml
new/jaraco_functools-4.5.0/pyproject.toml
--- old/jaraco_functools-4.4.0/pyproject.toml 2025-12-21 10:29:20.000000000
+0100
+++ new/jaraco_functools-4.5.0/pyproject.toml 2026-05-15 23:33:48.000000000
+0200
@@ -20,7 +20,7 @@
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
]
-requires-python = ">=3.9"
+requires-python = ">=3.10"
license = "MIT"
dependencies = [
"more_itertools",
@@ -54,7 +54,7 @@
]
check = [
- "pytest-checkdocs >= 2.4",
+ "pytest-checkdocs >= 2.14",
"pytest-ruff >= 0.2.1; sys_platform != 'cygwin'",
]
@@ -68,10 +68,9 @@
type = [
# upstream
- "pytest-mypy >= 1.0.1",
-
- ## workaround for python/mypy#20454
- "mypy < 1.19; python_implementation == 'PyPy'",
+
+ # Exclude PyPy from type checks (python/mypy#20454 jaraco/skeleton#187)
+ "pytest-mypy >= 1.0.1; platform_python_implementation != 'PyPy'",
# local
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/test_functools.py
new/jaraco_functools-4.5.0/test_functools.py
--- old/jaraco_functools-4.4.0/test_functools.py 2025-12-21
10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/test_functools.py 2026-05-15
23:33:48.000000000 +0200
@@ -13,7 +13,12 @@
import pytest
from jaraco.classes import properties
-from jaraco.functools import Throttler, method_cache, retry, retry_call
+from jaraco.functools import (
+ Throttler,
+ method_cache,
+ retry,
+ retry_call,
+)
_T = TypeVar("_T")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco_functools-4.4.0/tox.ini
new/jaraco_functools-4.5.0/tox.ini
--- old/jaraco_functools-4.4.0/tox.ini 2025-12-21 10:29:20.000000000 +0100
+++ new/jaraco_functools-4.5.0/tox.ini 2026-05-15 23:33:48.000000000 +0200
@@ -22,7 +22,7 @@
diff-cover
commands =
pytest {posargs} --cov-report xml
- diff-cover coverage.xml --compare-branch=origin/main --html-report
diffcov.html
+ diff-cover coverage.xml --compare-branch=origin/main --format
html:diffcov.html
diff-cover coverage.xml --compare-branch=origin/main --fail-under=100
[testenv:docs]