diff --git a/more-aggressive-location-stripping.patch b/more-aggressive-location-stripping.patch new file mode 100644 index 0000000..e260f95 --- /dev/null +++ b/more-aggressive-location-stripping.patch @@ -0,0 +1,44 @@ +From 66e14cdd101e4214cca6acca8f48b9abe4f75729 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ionel=20Cristian=20M=C4=83rie=C8=99?= +Date: Fri, 15 Dec 2023 16:52:07 +0200 +Subject: [PATCH] More aggressive location stripping. Ref #74. + +--- + tests/test_pickle_exception.py | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +Index: tblib-3.0.0/tests/test_pickle_exception.py +=================================================================== +--- tblib-3.0.0.orig/tests/test_pickle_exception.py ++++ tblib-3.0.0/tests/test_pickle_exception.py +@@ -29,6 +29,10 @@ class CustomError(Exception): + pass + + ++def strip_locations(tb_text): ++ return tb_text.replace(' ~~^~~\n', '').replace(' ^^^^^^^^^^^^^^^^^\n', '') ++ ++ + @pytest.mark.parametrize('protocol', [None, *list(range(1, pickle.HIGHEST_PROTOCOL + 1))]) + @pytest.mark.parametrize('how', ['global', 'instance', 'class']) + def test_install(clear_dispatch_table, how, protocol): +@@ -58,8 +62,8 @@ def test_install(clear_dispatch_table, h + else: + raise AssertionError + +- expected_format_exception = ''.join(format_exception(type(exc), exc, exc.__traceback__)) +- print(expected_format_exception) ++ expected_format_exception = strip_locations(''.join(format_exception(type(exc), exc, exc.__traceback__))) ++ + # Populate Exception.__dict__, which is used in some cases + exc.x = 1 + exc.__cause__.x = 2 +@@ -88,7 +92,7 @@ def test_install(clear_dispatch_table, h + if has_python311: + assert exc.__notes__ == ['note 1', 'note 2'] + +- assert expected_format_exception == ''.join(format_exception(type(exc), exc, exc.__traceback__)) ++ assert expected_format_exception == strip_locations(''.join(format_exception(type(exc), exc, exc.__traceback__))) + + + @tblib.pickling_support.install diff --git a/python-tblib.changes b/python-tblib.changes index c5718d6..0b49517 100644 --- a/python-tblib.changes +++ b/python-tblib.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Fri May 31 22:34:24 UTC 2024 - Matej Cepl + +- Clean up SPEC file. + +------------------------------------------------------------------- +Fri May 17 09:22:14 UTC 2024 - Markéta Machová + +- Update to 3.0.0 + * Removed support for legacy Pythons (2.7 up to 3.7) and added Pythons + 3.11 and 3.12 in the test grid. + * Added support for __context__, __suppress_context__ and __notes__. + * Added the get_locals argument to tblib.pickling_support.install(), + tblib.Traceback and tblib.Frame. +- Add vendore-reraise-from-six.patch to get rid of six +- Add more-aggressive-location-stripping.patch to fix test failure +- Standardize multibuild + ------------------------------------------------------------------- Fri Jun 9 11:45:42 UTC 2023 - ecsos diff --git a/python-tblib.spec b/python-tblib.spec index c184b76..93fa21e 100644 --- a/python-tblib.spec +++ b/python-tblib.spec @@ -1,7 +1,7 @@ # -# spec file for package python +# spec file for package python-tblib # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,36 +18,36 @@ %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "test" +%define psuffix -%{flavor} %bcond_without test -%bcond_without test_twisted -%define psuffix -test %else -%bcond_without test -%bcond_with test_twisted +%define psuffix %{nil} +%bcond_with test %endif %{?sle15_python_module_pythons} Name: python-tblib%{?psuffix} -Version: 1.7.0 +Version: 3.0.0 Release: 0 Summary: Traceback serialization library License: BSD-2-Clause Group: Development/Languages/Python URL: https://github.com/ionelmc/python-tblib Source: https://files.pythonhosted.org/packages/source/t/tblib/tblib-%{version}.tar.gz +# PATCH-FIX-UPSTREAM https://github.com/ionelmc/python-tblib/pull/77 vendore reraise() from six +Patch0: vendore-reraise-from-six.patch +# PATCH-FIX-UPSTREAM https://github.com/ionelmc/python-tblib/issues/74 More aggressive location stripping. Ref #74. +Patch1: more-aggressive-location-stripping.patch +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros -%if %{with test_twisted} +BuildArch: noarch +%if %{with test} BuildRequires: %{python_module Twisted} +BuildRequires: %{python_module pytest} BuildRequires: %{python_module tblib == %{version}} %endif -%if %{with test} -BuildRequires: %{python_module pytest} -BuildRequires: %{python_module six} -%endif -Requires: python-six -BuildArch: noarch - %python_subpackages %description @@ -70,14 +70,14 @@ are solely responsible for security problems should you decide to use the pickle support. %prep -%setup -q -n tblib-%{version} +%autosetup -p1 -n tblib-%{version} %build -%python_build +%pyproject_wheel %install -%if "%{flavor}" != "test" -%python_install +%if !%{with test} +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %endif @@ -86,11 +86,12 @@ the pickle support. %pytest %endif -%if "%{flavor}" != "test" +%if !%{with test} %files %{python_files} %doc AUTHORS.rst CHANGELOG.rst README.rst %license LICENSE -%{python_sitelib}/* +%{python_sitelib}/tblib +%{python_sitelib}/tblib-%{version}*-info %endif %changelog diff --git a/tblib-1.7.0.tar.gz b/tblib-1.7.0.tar.gz deleted file mode 100644 index 27a4c31..0000000 --- a/tblib-1.7.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c -size 33074 diff --git a/tblib-3.0.0.tar.gz b/tblib-3.0.0.tar.gz new file mode 100644 index 0000000..a155a91 --- /dev/null +++ b/tblib-3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6 +size 30616 diff --git a/vendore-reraise-from-six.patch b/vendore-reraise-from-six.patch new file mode 100644 index 0000000..7a7722f --- /dev/null +++ b/vendore-reraise-from-six.patch @@ -0,0 +1,63 @@ +From 9f6f864f7de6ce6640bab6d962f00b956da75361 Mon Sep 17 00:00:00 2001 +From: Alexandre Detiste +Date: Wed, 1 May 2024 13:43:53 +0200 +Subject: [PATCH] vendore reraise() from six + +--- + ci/requirements.txt | 1 - + setup.py | 2 +- + src/tblib/decorators.py | 14 ++++++++++++-- + 3 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/ci/requirements.txt b/ci/requirements.txt +index a1708f4..b4f1852 100644 +--- a/ci/requirements.txt ++++ b/ci/requirements.txt +@@ -1,6 +1,5 @@ + virtualenv>=16.6.0 + pip>=19.1.1 + setuptools>=18.0.1 +-six>=1.14.0 + tox + twine +diff --git a/setup.py b/setup.py +index c5364a1..c09d4c3 100755 +--- a/setup.py ++++ b/setup.py +@@ -64,7 +64,7 @@ def read(*names, **kwargs): + ], + python_requires='>=3.8', + install_requires=[ +- # eg: "aspectlib==1.1.1", "six>=1.7", ++ # eg: "aspectlib==1.1.1", + ], + extras_require={ + # eg: +diff --git a/src/tblib/decorators.py b/src/tblib/decorators.py +index 38d0675..a1ace45 100644 +--- a/src/tblib/decorators.py ++++ b/src/tblib/decorators.py +@@ -1,11 +1,21 @@ + import sys + from functools import wraps + +-from six import reraise +- + from . import Traceback + + ++def reraise(tp, value, tb=None): ++ try: ++ if value is None: ++ value = tp() ++ if value.__traceback__ is not tb: ++ raise value.with_traceback(tb) ++ raise value ++ finally: ++ value = None ++ tb = None ++ ++ + class Error: + def __init__(self, exc_type, exc_value, traceback): + self.exc_type = exc_type