From 6755dce9a2d1a943afc3e800add9bb5ccdc42e07ba3a47b6fed576e7a7fda9d2 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Mon, 15 Dec 2025 03:45:49 +0000 Subject: [PATCH] - Add patch support-pytest-9.patch: * Use shiny new pathlib arguments for the collection hooks. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-boltons?expand=0&rev=32 --- .gitattributes | 23 +++++ .gitignore | 1 + boltons-25.0.0.tar.gz | 3 + python-boltons.changes | 202 +++++++++++++++++++++++++++++++++++++++++ python-boltons.spec | 61 +++++++++++++ support-pytest-9.patch | 31 +++++++ 6 files changed, 321 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 boltons-25.0.0.tar.gz create mode 100644 python-boltons.changes create mode 100644 python-boltons.spec create mode 100644 support-pytest-9.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/boltons-25.0.0.tar.gz b/boltons-25.0.0.tar.gz new file mode 100644 index 0000000..d5af92a --- /dev/null +++ b/boltons-25.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e110fbdc30b7b9868cb604e3f71d4722dd8f4dcb4a5ddd06028ba8f1ab0b5ace +size 246294 diff --git a/python-boltons.changes b/python-boltons.changes new file mode 100644 index 0000000..df30416 --- /dev/null +++ b/python-boltons.changes @@ -0,0 +1,202 @@ +------------------------------------------------------------------- +Mon Dec 15 03:45:13 UTC 2025 - Steve Kowalik + +- Add patch support-pytest-9.patch: + * Use shiny new pathlib arguments for the collection hooks. + +------------------------------------------------------------------- +Fri Feb 21 12:30:09 UTC 2025 - Markéta Machová + +- Update to 25.0.0 + * Added Python 3.13 support + * Replace deprecated utcnow() + * Add fsync to fileutils.atomic_save + * Add fileutils.rotate_file + +------------------------------------------------------------------- +Tue Nov 19 10:31:59 UTC 2024 - Markéta Machová + +- Update to 24.1.0 + * Added max_depth parameter to fileutils.iter_find_files + * Added enter parameter to iterutils.research to support traversing + custom data types + * Add optional print tracing for iterutils.remap for easier debugging + * Fixed typeutils.Sentinel copy behavior to return self + * Tentative Python 3.13 support + +------------------------------------------------------------------- +Sat Apr 20 13:54:31 UTC 2024 - Dirk Müller + +- update to 24.0.0: + * Per the RFC in issue [#365][i339], boltons is now **Python 3 + only**. 3.7+ for now. + * Added Python 3.12 support ([#361][i361]) + * Fix [dictutils.OneToOne][dictutils.OneToOne]'s `update()` + behavior with empty iterables + +------------------------------------------------------------------- +Tue Dec 26 15:18:11 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Thu Dec 14 09:16:30 UTC 2023 - Petr Gajdos + +- update to 23.0.0: + * Overdue update for Python 3.10 and 3.11 support + * Add [iterutils.chunk_ranges][iterutils.chunk_ranges] + * Improvements to `SpooledBytesIO`/`SpooledStringIO` + * Bugfix for infinite daterange issue when start and stop is + the same ([#302][i302]) + * Fix `Bits.as_list` behavior ([#315][i315]) +- deleted patches + - fix-ecoutil-imports.patch (upstreamed) + - getstate-to-through-methods.patch (upstreamed) + +------------------------------------------------------------------- +Mon Jan 23 14:33:24 UTC 2023 - Markéta Machová + +- Add patch getstate-to-through-methods.patch + * Adds support for Python 3.11 + +------------------------------------------------------------------- +Mon Dec 13 00:04:19 UTC 2021 - Steve Kowalik + +- Update to 21.0.0: + * Fix OMD.addlist when the added list is empty + * Add funcutils.noop, satisfying PEP 559 + * Support lists for iterutils.bucketize + * Python 3.9 test fixes for OMD (PEP 584, see #271) + * Make typeutils.make_sentinel more pickleable + * jsonutils.reverse_iter_lines now works on Py3 and Windows +- Drop boltons-pr271-py39-frozendict.patch: + * Included upstream. +- Add patch fix-ecoutil-imports.patch: + * Support Python 3.10. + +------------------------------------------------------------------- +Fri Mar 19 19:53:55 UTC 2021 - Ben Greiner + +- Add boltons-pr271-py39-frozendict.patch + * gh#mahmoud/boltons#271 + * gh#mahmoud/boltons#283 + +------------------------------------------------------------------- +Sat Jan 30 07:06:02 UTC 2021 - John Vandenberg + +- Include CHANGELOG.md & docs/*.rst +- Update to v20.2.1 + * Improve import time of iterutils + * Add custom repr parameter to funcutils.format_invocation +- from v20.2.0 + * Added iterutils.lstrip, iterutils.rstrip, iterutils.strip + * More robust and complete strutils.strip_ansi + * Add iterutils.untyped_sorted + * Fixes to IndexedSet rsub and index methods + * Expose text mode flag in fileutils.AtomicSaver + * Add strutils.int_list_complement and + strutils.int_list_to_int_tuples to the int_list suite + * Docs: intersphinx links finally point to Python 3 docs +- from v20.1.0 + * Add funcutils.update_wrapper, used to make a wrapper function + reflect various aspects of the wrapped function's API + * Fix FunctionBuilder handling of functions without __module__ + * Add partial support to FunctionBuilder + * Fix NetstringSocket's handling of arguments in read_ns + * Fix IndexedSet's index() method to account for removals + * Add seekable, readable, and writable to SpooledIOBase + * Add a special case to singularize + * Fix various warnings for Py3.9 + +------------------------------------------------------------------- +Wed Jan 22 15:50:52 UTC 2020 - Marketa Calabkova + +- update to 20.0.0 + * New module pathutils + * add strutils.unwrap_text which does what you think to wrapped text + * iterutils.chunked to work with the bytes type + * funcutils.format_invocation for formatting simple function calls func(pos1, pos2, kw_k=kw_v) + * A bunch of small fixes and enhancements. + * many more in upstream CHANGELOG.md + +------------------------------------------------------------------- +Sat Mar 9 08:12:17 UTC 2019 - John Vandenberg + +- Activate test suite, using GitHub as sdist +- Update to v19.1.0 + * Quick release to enhance funcutils.FunctionBuilder and funcutils.wraps + to maintain function annotations on Python 3+ +- from v19.0.0 + * New types and utilities + + dictutils.ManyToMany, complement of dictutils.OneToOne + + dictutils.FrozenDict, immutable mapping + + setutils.complement(), "negative" sets, useful for exclusion and + many other set operations + + iterutils.soft_sorted(), more flexible sorting of sequences + + iterutils.flatten_iter() and .flatten(), collapse nested iterables + + mathutils.Bits type, representing a bitstring and translating + between integer, bytestring, hex, and boolean sequence representations + * funcutils improvements + + FunctionBuilder funcutils.wraps now support coroutines/async + + FunctionBuilder.add_arg() allows the addition of arguments to the + signature, to match FunctionBuilder.remove_arg() + + Similarly funcutils.wraps() now takes an "expected" argument, to + complement "injected" + * Other bugfixes and improvements + + cacheutils.LRI is now threadsafe and correctly handles duplicate keys + + dictutils.subdict() returns the same type of dictionary it was passed + + urlutils, better IPv6 support and URL behave more natively like strings + + Improve singularization in strutils + + Fix some deprecation warnings in Python 3.7 + + Document the change in dict constructor behavior affecting + dictutils.OMD under Python 3.7+ +- from v18.0.1 + * A few bugfixes and a handy text utility. + * Add MultiSub for multiple string substitutions in a single call + * `tableutils.Table.to_text()` is more Markdown compatible + * `atomic_save` works better with `overwrite=True` + * Reduced memory footprint on `tbutils._DeferredLine` with `__slots__` + +------------------------------------------------------------------- +Tue Dec 4 12:46:17 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Thu Jun 7 20:48:58 UTC 2018 - jengelh@inai.de + +- Use a description that actually says what the package is about. + +------------------------------------------------------------------- +Thu May 3 14:07:08 UTC 2018 - toddrme2178@gmail.com + +- Add license file +- Package readme file +- Use %license tag + +------------------------------------------------------------------- +Thu May 3 07:16:06 UTC 2018 - toddrme2178@gmail.com + +- Update to 18.0.0 + * Add and structure to tableutils.Table HTML output, which helps with styling and other functionality (e.g., jQuery datatables). + * Add dictutils.subdict() to get a filtered version of a dictionary based on a subset of keys. + * Add beta version of cacheutils.MinIDMap. + +------------------------------------------------------------------- +Sat Apr 15 23:00:34 UTC 2017 - toddrme2178@gmail.com + +- Update to 17.1.0 + * No upstream changelog +- Implement single-spec version + +------------------------------------------------------------------- +Mon Mar 21 20:02:23 UTC 2016 - toddrme2178@gmail.com + +- Update t0 16.1.1 + * No upstream changelog + +------------------------------------------------------------------- +Wed May 20 14:10:33 UTC 2015 - toddrme2178@gmail.com + +- Initial version + diff --git a/python-boltons.spec b/python-boltons.spec new file mode 100644 index 0000000..9e70227 --- /dev/null +++ b/python-boltons.spec @@ -0,0 +1,61 @@ +# +# spec file for package python-boltons +# +# Copyright (c) 2025 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 +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-boltons +Version: 25.0.0 +Release: 0 +Summary: The "Boltons" utility package for Python +License: BSD-3-Clause +URL: https://github.com/mahmoud/boltons +Source: https://files.pythonhosted.org/packages/source/b/boltons/boltons-%{version}.tar.gz +# PATCH-FIX-UPSTREAM gh#mahmoud/boltons#391 +Patch0: support-pytest-9.patch +BuildRequires: %{python_module flit-core} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pytest} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildArch: noarch +%python_subpackages + +%description +Boltons is a package containing over 160 utility types and functions +that can be used as a package or independently. Documentation is on +http://boltons.readthedocs.org. + +%prep +%autosetup -p1 -n boltons-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +%pytest + +%files %{python_files} +%license LICENSE +%doc README.md CHANGELOG.md docs/*.rst +%{python_sitelib}/boltons +%{python_sitelib}/boltons-%{version}.dist-info + +%changelog diff --git a/support-pytest-9.patch b/support-pytest-9.patch new file mode 100644 index 0000000..51addcc --- /dev/null +++ b/support-pytest-9.patch @@ -0,0 +1,31 @@ +From 5bf0e99182fc910f641a0849fa209940d68bce32 Mon Sep 17 00:00:00 2001 +From: Steve Kowalik +Date: Mon, 15 Dec 2025 14:38:06 +1100 +Subject: [PATCH] Support pytest 9 changes + +Starting from pytest 7, the py.path arguments to pytest's hook functions +have been deprecated, replaced with pathlib.Path equivalents. Since +pytest 7 is the minimum version we support, move to using it. +--- + tests/conftest.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/conftest.py b/tests/conftest.py +index d4d2192c..e2c9a0cf 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -5,12 +5,12 @@ + _VERSION_MARKER = re.compile(r'_py(?P\d)(?P\d)?') + + +-def pytest_ignore_collect(path, config): ++def pytest_ignore_collect(collection_path, config): + """ + Ignore tests that end with _pyX, where X does not equal this + interpreter's major version. + """ +- filename = path.basename ++ filename = collection_path.name + modulename = filename.split('.', 1)[0] + match = _VERSION_MARKER.search(modulename) + if not match: