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 2025-07-15 16:43:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-jaraco.functools (Old) and /work/SRC/openSUSE:Factory/.python-jaraco.functools.new.7373 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jaraco.functools" Tue Jul 15 16:43:03 2025 rev:19 rq:1292508 version:4.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-jaraco.functools/python-jaraco.functools.changes 2025-04-11 16:45:34.572189827 +0200 +++ /work/SRC/openSUSE:Factory/.python-jaraco.functools.new.7373/python-jaraco.functools.changes 2025-07-15 16:43:40.291459893 +0200 @@ -1,0 +2,7 @@ +Sun Jul 13 13:36:31 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 4.2.1: + * Add 'passthrough' function. + * Added missing splat in stubs -- by :user:`Avasam` + +------------------------------------------------------------------- Old: ---- jaraco_functools-4.1.0.tar.gz New: ---- jaraco_functools-4.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-jaraco.functools.spec ++++++ --- /var/tmp/diff_new_pack.58eaBN/_old 2025-07-15 16:43:40.939483992 +0200 +++ /var/tmp/diff_new_pack.58eaBN/_new 2025-07-15 16:43:40.943484141 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-jaraco.functools -Version: 4.1.0 +Version: 4.2.1 Release: 0 Summary: Tools to work with functools License: MIT ++++++ jaraco_functools-4.1.0.tar.gz -> jaraco_functools-4.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/.github/dependabot.yml new/jaraco_functools-4.2.1/.github/dependabot.yml --- old/jaraco_functools-4.1.0/.github/dependabot.yml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "daily" - allow: - - dependency-type: "all" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/.github/workflows/main.yml new/jaraco_functools-4.2.1/.github/workflows/main.yml --- old/jaraco_functools-4.1.0/.github/workflows/main.yml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/.github/workflows/main.yml 2025-06-21 21:21:42.000000000 +0200 @@ -21,7 +21,6 @@ # Suppress noisy pip warnings PIP_DISABLE_PIP_VERSION_CHECK: 'true' - PIP_NO_PYTHON_VERSION_WARNING: 'true' PIP_NO_WARN_SCRIPT_LOCATION: 'true' # Ensure tests can sense settings about the environment @@ -35,15 +34,13 @@ # https://blog.jaraco.com/efficient-use-of-ci-resources/ matrix: python: - - "3.8" + - "3.9" - "3.13" platform: - ubuntu-latest - macos-latest - windows-latest include: - - python: "3.9" - platform: ubuntu-latest - python: "3.10" platform: ubuntu-latest - python: "3.11" @@ -58,8 +55,15 @@ continue-on-error: ${{ matrix.python == '3.14' }} 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' + run: | + sudo apt update + sudo apt install -y libxml2-dev libxslt-dev - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} allow-prereleases: true @@ -81,7 +85,7 @@ with: fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.x - name: Install tox @@ -115,7 +119,7 @@ steps: - uses: actions/checkout@v4 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.x - name: Install tox diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/.pre-commit-config.yaml new/jaraco_functools-4.2.1/.pre-commit-config.yaml --- old/jaraco_functools-4.1.0/.pre-commit-config.yaml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/.pre-commit-config.yaml 2025-06-21 21:21:42.000000000 +0200 @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.6 + rev: v0.9.9 hooks: - id: ruff args: [--fix, --unsafe-fixes] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/.readthedocs.yaml new/jaraco_functools-4.2.1/.readthedocs.yaml --- old/jaraco_functools-4.1.0/.readthedocs.yaml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/.readthedocs.yaml 2025-06-21 21:21:42.000000000 +0200 @@ -5,6 +5,9 @@ extra_requirements: - doc +sphinx: + configuration: docs/conf.py + # required boilerplate readthedocs/readthedocs.org#10401 build: os: ubuntu-lts-latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/LICENSE new/jaraco_functools-4.2.1/LICENSE --- old/jaraco_functools-4.1.0/LICENSE 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/LICENSE 2025-06-21 21:21:58.000000000 +0200 @@ -1,17 +1,18 @@ -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 without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +MIT License -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Copyright (c) 2025 <copyright holders> -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. +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 +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/NEWS.rst new/jaraco_functools-4.2.1/NEWS.rst --- old/jaraco_functools-4.1.0/NEWS.rst 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/NEWS.rst 2025-06-21 21:21:42.000000000 +0200 @@ -1,3 +1,24 @@ +v4.2.1 +====== + +No significant changes. + + +v4.2.0 +====== + +Features +-------- + +- Add 'passthrough' function. + + +Bugfixes +-------- + +- Added missing `splat` in stubs -- by :user:`Avasam` (#29) + + v4.1.0 ====== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/PKG-INFO new/jaraco_functools-4.2.1/PKG-INFO --- old/jaraco_functools-4.1.0/PKG-INFO 2024-09-27 21:47:04.518915200 +0200 +++ new/jaraco_functools-4.2.1/PKG-INFO 2025-06-21 21:21:59.165620000 +0200 @@ -1,15 +1,15 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: jaraco.functools -Version: 4.1.0 +Version: 4.2.1 Summary: Functools like those found in stdlib Author-email: "Jason R. Coombs" <jar...@jaraco.com> +License-Expression: MIT Project-URL: Source, https://github.com/jaraco/jaraco.functools Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Requires-Python: >=3.8 +Requires-Python: >=3.9 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: more_itertools @@ -32,6 +32,7 @@ Requires-Dist: pytest-enabler>=2.2; extra == "enabler" Provides-Extra: type Requires-Dist: pytest-mypy; extra == "type" +Dynamic: license-file .. image:: https://img.shields.io/pypi/v/jaraco.functools.svg :target: https://pypi.org/project/jaraco.functools @@ -42,14 +43,14 @@ :target: https://github.com/jaraco/jaraco.functools/actions?query=workflow%3A%22tests%22 :alt: tests -.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json +.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://github.com/astral-sh/ruff :alt: Ruff .. 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-2024-informational +.. image:: https://img.shields.io/badge/skeleton-2025-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.1.0/README.rst new/jaraco_functools-4.2.1/README.rst --- old/jaraco_functools-4.1.0/README.rst 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/README.rst 2025-06-21 21:21:42.000000000 +0200 @@ -7,14 +7,14 @@ :target: https://github.com/jaraco/jaraco.functools/actions?query=workflow%3A%22tests%22 :alt: tests -.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json +.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://github.com/astral-sh/ruff :alt: Ruff .. 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-2024-informational +.. image:: https://img.shields.io/badge/skeleton-2025-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.1.0/jaraco/functools/__init__.py new/jaraco_functools-4.2.1/jaraco/functools/__init__.py --- old/jaraco_functools-4.1.0/jaraco/functools/__init__.py 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/jaraco/functools/__init__.py 2025-06-21 21:21:42.000000000 +0200 @@ -8,7 +8,6 @@ import time import types import warnings - from typing import Callable, TypeVar import more_itertools @@ -291,6 +290,26 @@ return f +_T = TypeVar('_T') + + +def passthrough(func: Callable[..., object]) -> Callable[[_T], _T]: + """ + Wrap the function to always return the first parameter. + + >>> passthrough(print)('3') + 3 + '3' + """ + + @functools.wraps(func) + def wrapper(first: _T, *args, **kwargs) -> _T: + func(first, *args, **kwargs) + return first + + return wrapper + + class Throttler: """Rate-limit a function (or other callable).""" @@ -488,7 +507,7 @@ >>> my_ob._saved_method.args () """ - args_and_kwargs = collections.namedtuple('args_and_kwargs', 'args kwargs') + args_and_kwargs = collections.namedtuple('args_and_kwargs', 'args kwargs') # noqa: PYI024 # Internal; stubs used for typing @functools.wraps(method) def wrapper(self, /, *args, **kwargs): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/jaraco/functools/__init__.pyi new/jaraco_functools-4.2.1/jaraco/functools/__init__.pyi --- old/jaraco_functools-4.1.0/jaraco/functools/__init__.pyi 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/jaraco/functools/__init__.pyi 2025-06-21 21:21:42.000000000 +0200 @@ -1,7 +1,6 @@ from collections.abc import Callable, Hashable, Iterator from functools import partial from operator import methodcaller -import sys from typing import ( Any, Generic, @@ -10,14 +9,12 @@ overload, ) -if sys.version_info >= (3, 10): - from typing import Concatenate, ParamSpec -else: - from typing_extensions import Concatenate, ParamSpec +from typing_extensions import Concatenate, ParamSpec, TypeVarTuple, Unpack _P = ParamSpec('_P') _R = TypeVar('_R') _T = TypeVar('_T') +_Ts = TypeVarTuple('_Ts') _R1 = TypeVar('_R1') _R2 = TypeVar('_R2') _V = TypeVar('_V') @@ -66,10 +63,10 @@ cache_wrapper: Callable[[Callable[..., _R]], _MethodCacheWrapper[_R]] = ..., ) -> _MethodCacheWrapper[_R] | _ProxyMethodCacheWrapper[_R]: ... def apply( - transform: Callable[[_R], _T] + transform: Callable[[_R], _T], ) -> Callable[[Callable[_P, _R]], Callable[_P, _T]]: ... def result_invoke( - action: Callable[[_R], Any] + action: Callable[[_R], Any], ) -> Callable[[Callable[_P, _R]], Callable[_P, _R]]: ... def invoke( f: Callable[_P, _R], /, *args: _P.args, **kwargs: _P.kwargs @@ -95,23 +92,23 @@ def retry_call( func: Callable[..., _R], cleanup: Callable[..., None] = ..., - retries: int | float = ..., + retries: float = ..., trap: type[BaseException] | tuple[type[BaseException], ...] = ..., ) -> _R: ... def retry( cleanup: Callable[..., None] = ..., - retries: int | float = ..., + retries: float = ..., trap: type[BaseException] | tuple[type[BaseException], ...] = ..., ) -> Callable[[Callable[..., _R]], Callable[..., _R]]: ... def print_yielded(func: Callable[_P, Iterator[Any]]) -> Callable[_P, None]: ... def pass_none( - func: Callable[Concatenate[_T, _P], _R] + func: Callable[Concatenate[_T, _P], _R], ) -> Callable[Concatenate[_T, _P], _R]: ... def assign_params( func: Callable[..., _R], namespace: dict[str, Any] ) -> partial[_R]: ... def save_method_args( - method: Callable[Concatenate[_S, _P], _R] + method: Callable[Concatenate[_S, _P], _R], ) -> Callable[Concatenate[_S, _P], _R]: ... def except_( *exceptions: type[BaseException], replace: Any = ..., use: Any = ... @@ -123,3 +120,4 @@ def bypass_unless( check: Any, ) -> Callable[[Callable[[_T], _R]], Callable[[_T], _T | _R]]: ... +def splat(func: Callable[[Unpack[_Ts]], _R]) -> Callable[[tuple[Unpack[_Ts]]], _R]: ... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/jaraco.functools.egg-info/PKG-INFO new/jaraco_functools-4.2.1/jaraco.functools.egg-info/PKG-INFO --- old/jaraco_functools-4.1.0/jaraco.functools.egg-info/PKG-INFO 2024-09-27 21:47:04.000000000 +0200 +++ new/jaraco_functools-4.2.1/jaraco.functools.egg-info/PKG-INFO 2025-06-21 21:21:59.000000000 +0200 @@ -1,15 +1,15 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: jaraco.functools -Version: 4.1.0 +Version: 4.2.1 Summary: Functools like those found in stdlib Author-email: "Jason R. Coombs" <jar...@jaraco.com> +License-Expression: MIT Project-URL: Source, https://github.com/jaraco/jaraco.functools Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Requires-Python: >=3.8 +Requires-Python: >=3.9 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: more_itertools @@ -32,6 +32,7 @@ Requires-Dist: pytest-enabler>=2.2; extra == "enabler" Provides-Extra: type Requires-Dist: pytest-mypy; extra == "type" +Dynamic: license-file .. image:: https://img.shields.io/pypi/v/jaraco.functools.svg :target: https://pypi.org/project/jaraco.functools @@ -42,14 +43,14 @@ :target: https://github.com/jaraco/jaraco.functools/actions?query=workflow%3A%22tests%22 :alt: tests -.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json +.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://github.com/astral-sh/ruff :alt: Ruff .. 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-2024-informational +.. image:: https://img.shields.io/badge/skeleton-2025-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.1.0/jaraco.functools.egg-info/SOURCES.txt new/jaraco_functools-4.2.1/jaraco.functools.egg-info/SOURCES.txt --- old/jaraco_functools-4.1.0/jaraco.functools.egg-info/SOURCES.txt 2024-09-27 21:47:04.000000000 +0200 +++ new/jaraco_functools-4.2.1/jaraco.functools.egg-info/SOURCES.txt 2025-06-21 21:21:59.000000000 +0200 @@ -15,7 +15,6 @@ towncrier.toml tox.ini .github/FUNDING.yml -.github/dependabot.yml .github/workflows/main.yml docs/conf.py docs/history.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/pyproject.toml new/jaraco_functools-4.2.1/pyproject.toml --- old/jaraco_functools-4.1.0/pyproject.toml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/pyproject.toml 2025-06-21 21:21:42.000000000 +0200 @@ -1,5 +1,10 @@ [build-system] -requires = ["setuptools>=61.2", "setuptools_scm[toml]>=3.4.1"] +requires = [ + "setuptools>=77", + "setuptools_scm[toml]>=3.4.1", + # jaraco/skeleton#174 + "coherent.licensed", +] build-backend = "setuptools.build_meta" [project] @@ -12,11 +17,11 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", ] -requires-python = ">=3.8" +requires-python = ">=3.9" +license = "MIT" dependencies = [ "more_itertools", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaraco_functools-4.1.0/ruff.toml new/jaraco_functools-4.2.1/ruff.toml --- old/jaraco_functools-4.1.0/ruff.toml 2024-09-27 21:46:46.000000000 +0200 +++ new/jaraco_functools-4.2.1/ruff.toml 2025-06-21 21:21:42.000000000 +0200 @@ -1,10 +1,31 @@ [lint] extend-select = [ - "C901", - "PERF401", - "W", + # upstream + + "C901", # complex-structure + "I", # isort + "PERF401", # manual-list-comprehension + + # Ensure modern type annotation syntax and best practices + # Not including those covered by type-checkers or exclusive to Python 3.11+ + "FA", # flake8-future-annotations + "F404", # late-future-import + "PYI", # flake8-pyi + "UP006", # non-pep585-annotation + "UP007", # non-pep604-annotation + "UP010", # unnecessary-future-import + "UP035", # deprecated-import + "UP037", # quoted-annotation + "UP043", # unnecessary-default-type-args + + # local ] ignore = [ + # upstream + + # Typeshed rejects complex or non-literal defaults for maintenance and testing reasons, + # irrelevant to this project. + "PYI011", # typed-argument-default-in-stub # https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules "W191", "E111", @@ -18,8 +39,8 @@ "Q003", "COM812", "COM819", - "ISC001", - "ISC002", + + # local ] [format]