From 4bcc5c5e161e6604dcae7d1cdc33175fa2b6014c47c0042023e672528e2f0668 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 16 May 2022 12:27:45 +0000 Subject: [PATCH] - Update to 0.2.0: - Fallback to basic Source.pieces when there is no Source.tree. - Handle nodes inside f-strings missing location info from asttokens - Add 29-Pygments-2-12.patch (gh#alexmojaki/stack_data#29) making the package compabile with Pygments 2.12. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-stack-data?expand=0&rev=3 --- 29-Pygments-2-12.patch | 146 ++++++++++++++++++++++++++++++++++++++ python-stack-data.changes | 10 +++ python-stack-data.spec | 6 +- stack_data-0.1.3.tar.gz | 3 - stack_data-0.2.0.tar.gz | 3 + 5 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 29-Pygments-2-12.patch delete mode 100644 stack_data-0.1.3.tar.gz create mode 100644 stack_data-0.2.0.tar.gz diff --git a/29-Pygments-2-12.patch b/29-Pygments-2-12.patch new file mode 100644 index 0000000..7ffffe5 --- /dev/null +++ b/29-Pygments-2-12.patch @@ -0,0 +1,146 @@ +From 38ad6d56d587e4411a2ee77d8118fa668f8edcfb Mon Sep 17 00:00:00 2001 +From: Lumir Balhar +Date: Thu, 5 May 2022 11:58:18 +0200 +Subject: [PATCH 1/2] Make test_executing_style_defs parametrized and expect + different colors + +--- + tests/test_core.py | 70 +++++++++++++++++++++++++++-------------------------- + 1 file changed, 36 insertions(+), 34 deletions(-) + +--- a/tests/test_core.py ++++ b/tests/test_core.py +@@ -18,6 +18,7 @@ from stack_data import Source, FrameInfo + from stack_data.utils import line_range + + samples_dir = Path(__file__).parent / "samples" ++pygments_version = tuple(map(int, pygments.__version__.split(".")[:2])) + + + def test_lines_with_gaps(): +@@ -552,20 +553,20 @@ def test_absolute_filename(): + assert frame_info.filename == full_filename + + +-def test_executing_style_defs(): ++@pytest.mark.parametrize("expected", ++ [ ++ r".c { color: #(999999|ababab); font-style: italic }", ++ r".err { color: #a61717; background-color: #e3d2d2 }", ++ r".c-ExecutingNode { color: #(999999|ababab); font-style: italic; background-color: #ffff00 }", ++ r".err-ExecutingNode { color: #a61717; background-color: #ffff00 }", ++ ] ++) ++def test_executing_style_defs(expected): + style = style_with_executing_node("native", "bg:#ffff00") + formatter = HtmlFormatter(style=style) + style_defs = formatter.get_style_defs() + +- expected = """ +- .c { color: #999999; font-style: italic } +- .err { color: #a61717; background-color: #e3d2d2 } +- .c-ExecutingNode { color: #999999; font-style: italic; background-color: #ffff00 } +- .err-ExecutingNode { color: #a61717; background-color: #ffff00 } +- """.strip().splitlines() +- +- for line in expected: +- assert line.strip() in style_defs ++ assert re.search(expected, style_defs) + + + def test_example(): +@@ -613,6 +614,7 @@ x = 1 + """ + + ++@pytest.mark.skipif(pygments_version < (2, 12), reason="Different output in older Pygments") + def test_pygments_example(): + from .samples.pygments_example import bar + result = bar() +@@ -620,14 +622,14 @@ def test_pygments_example(): + assert result == """\ + Terminal256Formatter native: + +- 13 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;68mbar\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m +- 14 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;67m1\x1b[39m +- 15 | \x1b[38;5;252m \x1b[39m\x1b[38;5;31mstr\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m)\x1b[39m ++ 13 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;75mbar\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m ++ 14 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;75m1\x1b[39m ++ 15 | \x1b[38;5;252m \x1b[39m\x1b[38;5;38mstr\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m)\x1b[39m + 17 | \x1b[38;5;252m \x1b[39m\x1b[38;5;214m@deco\x1b[39m +- 18 | \x1b[38;5;252m \x1b[39m\x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;68mfoo\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m ++ 18 | \x1b[38;5;252m \x1b[39m\x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;75mfoo\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m + 19 | \x1b[38;5;252m \x1b[39m\x1b[38;5;70;01mpass\x1b[39;00m + ----- +- 25 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;68mdeco\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m ++ 25 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;75mdeco\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m + 26 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m.\x1b[39m\x1b[38;5;252mresult\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252mprint_stack\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m + 27 | \x1b[38;5;252m \x1b[39m\x1b[38;5;70;01mreturn\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;252mf\x1b[39m + ----- +@@ -636,14 +638,14 @@ Terminal256Formatter native: + + Terminal256Formatter .NewStyle\'>: + +- 13 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;68mbar\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m +- 14 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;67m1\x1b[39m +- 15 | \x1b[38;5;252m \x1b[39m\x1b[38;5;31mstr\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m)\x1b[39m ++ 13 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;75mbar\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m ++ 14 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;75m1\x1b[39m ++ 15 | \x1b[38;5;252m \x1b[39m\x1b[38;5;38mstr\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mx\x1b[39m\x1b[38;5;252m)\x1b[39m + 17 | \x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;214;48;5;58m@deco\x1b[39;49m +- 18 | \x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;70;48;5;58;01mdef\x1b[39;49;00m\x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;68;48;5;58mfoo\x1b[39;49m\x1b[38;5;252;48;5;58m(\x1b[39;49m\x1b[38;5;252;48;5;58m)\x1b[39;49m\x1b[38;5;252;48;5;58m:\x1b[39;49m ++ 18 | \x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;70;48;5;58;01mdef\x1b[39;49;00m\x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;75;48;5;58mfoo\x1b[39;49m\x1b[38;5;252;48;5;58m(\x1b[39;49m\x1b[38;5;252;48;5;58m)\x1b[39;49m\x1b[38;5;252;48;5;58m:\x1b[39;49m + 19 | \x1b[38;5;252;48;5;58m \x1b[39;49m\x1b[38;5;70;48;5;58;01mpass\x1b[39;49;00m + ----- +- 25 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;68mdeco\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m ++ 25 | \x1b[38;5;70;01mdef\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;75mdeco\x1b[39m\x1b[38;5;252m(\x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m)\x1b[39m\x1b[38;5;252m:\x1b[39m + 26 | \x1b[38;5;252m \x1b[39m\x1b[38;5;252mf\x1b[39m\x1b[38;5;252m.\x1b[39m\x1b[38;5;252mresult\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252m=\x1b[39m\x1b[38;5;252m \x1b[39m\x1b[38;5;252;48;5;58mprint_stack\x1b[39;49m\x1b[38;5;252;48;5;58m(\x1b[39;49m\x1b[38;5;252;48;5;58m)\x1b[39;49m + 27 | \x1b[38;5;252m \x1b[39m\x1b[38;5;70;01mreturn\x1b[39;00m\x1b[38;5;252m \x1b[39m\x1b[38;5;252mf\x1b[39m + ----- +@@ -684,32 +686,32 @@ TerminalFormatter .NewStyle\'>: + +- 13 | \x1b[38;2;106;184;37;01mdef\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;68;127;207mbar\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m\x1b[38;2;208;208;208m:\x1b[39m +- 14 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208mx\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208m=\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;54;119;169m1\x1b[39m +- 15 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;36;144;157mstr\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208mx\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m ++ 13 | \x1b[38;2;110;191;38;01mdef\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;113;173;255mbar\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m\x1b[38;2;208;208;208m:\x1b[39m ++ 14 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208mx\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208m=\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;81;178;253m1\x1b[39m ++ 15 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;47;188;205mstr\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208mx\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m + 17 | \x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;255;165;0;48;2;68;68;0m@deco\x1b[39;49m +- 18 | \x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;106;184;37;48;2;68;68;0;01mdef\x1b[39;49;00m\x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;68;127;207;48;2;68;68;0mfoo\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m(\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m)\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m:\x1b[39;49m +- 19 | \x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;106;184;37;48;2;68;68;0;01mpass\x1b[39;49;00m ++ 18 | \x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;110;191;38;48;2;68;68;0;01mdef\x1b[39;49;00m\x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;113;173;255;48;2;68;68;0mfoo\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m(\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m)\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m:\x1b[39;49m ++ 19 | \x1b[38;2;208;208;208;48;2;68;68;0m \x1b[39;49m\x1b[38;2;110;191;38;48;2;68;68;0;01mpass\x1b[39;49;00m + ----- +- 25 | \x1b[38;2;106;184;37;01mdef\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;68;127;207mdeco\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208mf\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m\x1b[38;2;208;208;208m:\x1b[39m ++ 25 | \x1b[38;2;110;191;38;01mdef\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;113;173;255mdeco\x1b[39m\x1b[38;2;208;208;208m(\x1b[39m\x1b[38;2;208;208;208mf\x1b[39m\x1b[38;2;208;208;208m)\x1b[39m\x1b[38;2;208;208;208m:\x1b[39m + 26 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208mf\x1b[39m\x1b[38;2;208;208;208m.\x1b[39m\x1b[38;2;208;208;208mresult\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208m=\x1b[39m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208;48;2;68;68;0mprint_stack\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m(\x1b[39;49m\x1b[38;2;208;208;208;48;2;68;68;0m)\x1b[39;49m +- 27 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;106;184;37;01mreturn\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208mf\x1b[39m ++ 27 | \x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;110;191;38;01mreturn\x1b[39;00m\x1b[38;2;208;208;208m \x1b[39m\x1b[38;2;208;208;208mf\x1b[39m + ----- + + ==================== diff --git a/python-stack-data.changes b/python-stack-data.changes index aba65c8..7eca95f 100644 --- a/python-stack-data.changes +++ b/python-stack-data.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon May 16 12:18:16 UTC 2022 - Matej Cepl + +- Update to 0.2.0: + - Fallback to basic Source.pieces when there is no Source.tree. + - Handle nodes inside f-strings missing location info from + asttokens +- Add 29-Pygments-2-12.patch (gh#alexmojaki/stack_data#29) making + the package compabile with Pygments 2.12. + ------------------------------------------------------------------- Fri Jan 14 21:54:31 UTC 2022 - Matej Cepl diff --git a/python-stack-data.spec b/python-stack-data.spec index 725b04d..2c9d499 100644 --- a/python-stack-data.spec +++ b/python-stack-data.spec @@ -18,12 +18,16 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-stack-data -Version: 0.1.3 +Version: 0.2.0 Release: 0 Summary: Extract data from python stack frames and tracebacks License: MIT URL: https://github.com/alexmojaki/stack_data Source: https://files.pythonhosted.org/packages/source/s/stack_data/stack_data-%{version}.tar.gz +# PATCH-FIX-UPSTREAM 29-Pygments-2-12.patch gh#alexmojaki/stack_data#29 mcepl@suse.com +# Make the package compatible with Pygments 2.12. +Patch0: 29-Pygments-2-12.patch +BuildRequires: %{python_module Cython} BuildRequires: %{python_module setuptools >= 44} BuildRequires: %{python_module setuptools_scm >= 3.4.3} BuildRequires: fdupes diff --git a/stack_data-0.1.3.tar.gz b/stack_data-0.1.3.tar.gz deleted file mode 100644 index 3a6da5a..0000000 --- a/stack_data-0.1.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5cb2aff8164a81901160078ea2f5e39de978f08c96ac69e552a5c5345f892a81 -size 35593 diff --git a/stack_data-0.2.0.tar.gz b/stack_data-0.2.0.tar.gz new file mode 100644 index 0000000..b1071be --- /dev/null +++ b/stack_data-0.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45692d41bd633a9503a5195552df22b583caf16f0b27c4e58c98d88c8b648e12 +size 36618