Sync from SUSE:SLFO:Main python-rich revision 94c2264f6ce7f095d70d87017c02e55b

This commit is contained in:
2025-05-17 16:02:56 +02:00
parent 56e3e3deed
commit 5dfd69a7d9
5 changed files with 137 additions and 17 deletions

44
pygments.patch Normal file
View File

@@ -0,0 +1,44 @@
From 08be21dadfd2ce9e96e41e366ab38bd8d7cd0e39 Mon Sep 17 00:00:00 2001
From: Dan Lazin <dlazin@users.noreply.github.com>
Date: Tue, 7 Jan 2025 16:04:56 -0500
Subject: [PATCH] Fix test that changed with Pygments 2.19.
---
tests/test_markdown.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: rich-13.9.4/tests/test_markdown.py
===================================================================
--- rich-13.9.4.orig/tests/test_markdown.py
+++ rich-13.9.4/tests/test_markdown.py
@@ -110,7 +110,7 @@ def test_inline_code():
inline_code_theme="emacs",
)
result = render(markdown)
- expected = "inline \x1b[1;38;2;170;34;255;48;2;248;248;248mimport\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;0;255;48;2;248;248;248mthis\x1b[0m code \n"
+ expected = "inline \x1b[1;38;2;170;34;255;48;2;248;248;248mimport\x1b[0m\x1b[38;2;187;187;187;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;0;255;48;2;248;248;248mthis\x1b[0m code \n"
print(result)
print(repr(result))
assert result == expected
Index: rich-13.9.4/tests/test_syntax.py
===================================================================
--- rich-13.9.4.orig/tests/test_syntax.py
+++ rich-13.9.4/tests/test_syntax.py
@@ -53,7 +53,7 @@ def test_blank_lines():
print(repr(result))
assert (
result
- == "\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m1 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m2 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m3 \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mimport\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;0;255;48;2;248;248;248mthis\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m4 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m5 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n"
+ == "\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m1 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m2 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m3 \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mimport\x1b[0m\x1b[38;2;187;187;187;48;2;248;248;248m \x1b[0m\x1b[1;38;2;0;0;255;48;2;248;248;248mthis\x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m4 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n\x1b[1;38;2;24;24;24;48;2;248;248;248m \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m5 \x1b[0m\x1b[48;2;248;248;248m \x1b[0m\n"
)
@@ -119,7 +119,7 @@ def test_python_render_simple_indent_gui
)
rendered_syntax = render(syntax)
print(repr(rendered_syntax))
- expected = '\x1b[34mdef\x1b[0m \x1b[32mloop_first_last\x1b[0m(values: Iterable[T]) -> Iterable[Tuple[\x1b[36mb\x1b[0m\n\x1b[2;37m│ \x1b[0m\x1b[33m"""Iterate and generate a tuple with a flag for first an\x1b[0m\n\x1b[2m│ \x1b[0miter_values = \x1b[36miter\x1b[0m(values)\n\x1b[2m│ \x1b[0m\x1b[34mtry\x1b[0m:\n\x1b[2m│ │ \x1b[0mprevious_value = \x1b[36mnext\x1b[0m(iter_values)\n\x1b[2m│ \x1b[0m\x1b[34mexcept\x1b[0m \x1b[36mStopIteration\x1b[0m:\n\x1b[2m│ │ \x1b[0m\x1b[34mreturn\x1b[0m\n\x1b[2m│ \x1b[0mfirst = \x1b[34mTrue\x1b[0m\n\x1b[2m│ \x1b[0m\x1b[34mfor\x1b[0m value \x1b[35min\x1b[0m iter_values:\n\x1b[2m│ │ \x1b[0m\x1b[34myield\x1b[0m first, \x1b[34mFalse\x1b[0m, previous_value\n\x1b[2m│ │ \x1b[0mfirst = \x1b[34mFalse\x1b[0m\n\x1b[2m│ │ \x1b[0mprevious_value = value\n\x1b[2m│ \x1b[0m\x1b[34myield\x1b[0m first, \x1b[34mTrue\x1b[0m, previous_value\n'
+ expected = '\x1b[34mdef\x1b[0m\x1b[37m \x1b[0m\x1b[32mloop_first_last\x1b[0m(values: Iterable[T]) -> Iterable[Tuple[\x1b[36mb\x1b[0m\n\x1b[2;37m│ \x1b[0m\x1b[33m"""Iterate and generate a tuple with a flag for first an\x1b[0m\n\x1b[2m│ \x1b[0miter_values = \x1b[36miter\x1b[0m(values)\n\x1b[2m│ \x1b[0m\x1b[34mtry\x1b[0m:\n\x1b[2m│ │ \x1b[0mprevious_value = \x1b[36mnext\x1b[0m(iter_values)\n\x1b[2m│ \x1b[0m\x1b[34mexcept\x1b[0m \x1b[36mStopIteration\x1b[0m:\n\x1b[2m│ │ \x1b[0m\x1b[34mreturn\x1b[0m\n\x1b[2m│ \x1b[0mfirst = \x1b[34mTrue\x1b[0m\n\x1b[2m│ \x1b[0m\x1b[34mfor\x1b[0m value \x1b[35min\x1b[0m iter_values:\n\x1b[2m│ │ \x1b[0m\x1b[34myield\x1b[0m first, \x1b[34mFalse\x1b[0m, previous_value\n\x1b[2m│ │ \x1b[0mfirst = \x1b[34mFalse\x1b[0m\n\x1b[2m│ │ \x1b[0mprevious_value = value\n\x1b[2m│ \x1b[0m\x1b[34myield\x1b[0m first, \x1b[34mTrue\x1b[0m, previous_value\n'
assert rendered_syntax == expected

View File

@@ -1,3 +1,81 @@
-------------------------------------------------------------------
Fri Jan 17 14:55:32 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Add pygments.patch to fix tests with Pygments 2.19
-------------------------------------------------------------------
Thu Dec 5 01:45:25 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Switch to GitHub tarball so we can run the testsuite.
- Correct version guard for typing_extensions Requires.
- Drop Python 3.7 sections.
-------------------------------------------------------------------
Wed Nov 20 17:44:21 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 13.9.4:
* Optimizations to cell_len which may speed up Rich / Textual
output https://github.com/Textualize/rich/pull/3546
- update to 13.9.3:
* Fix a broken regex that resulted in the slow path being
chosen for some operations. This fix should result in notable
speedups for some operations, such as wrapping text.
* Fixed broken regex that may have resulted in poor
performance. https://github.com/Textualize/rich/pull/3535
- update to 13.9.2:
* A hotfix for highlighting in the table, and a fix for
`Segment.split_cells`
* Fixed `Table` columns not highlighting when added by
`add_row` https://github.com/Textualize/rich/issues/3517
* Fixed an issue with Segment.split_cells reported in Textual
https://github.com/Textualize/textual/issues/5090
- update to 13.9.1:
* Fixed typing_extensions dependency
- update to 13.9.0:
* Dropped support for Python3.7
* Rich will display tracebacks with finely grained error
locations on python 3.11+
* Fixed issue with Segment._split_cells
* Fix auto detection of terminal size on Windows
* `Text.style` now respected in Panel title/subtitle
- update to 13.8.1:
* Added support for Python 3.13
* Fixed infinite loop when appending Text to same instance
- update to 13.8.0:
* Fixed `Table` rendering of box elements so "footer" elements
truly appear at bottom of table, "mid" elements in main table
body.
* Fixed styles in Panel when Text objects are used for title
* Fix pretty repr for `collections.deque`
* Thread used in progress.track will exit if an exception
occurs in a generator
* Progress track thread is now a daemon thread
* Fixed cached hash preservation upon clearing meta and links
* Fixed overriding the `background_color` of `Syntax` not
including padding
* Fixed pretty printing of dataclasses with a default repr in
Python 3.13
* Fixed selective enabling of highlighting when disabled in the
`Console`
* Fixed BrokenPipeError writing an error message
* Fixed superfluous space above Markdown tables
* Fixed issue with record and capture interaction
* Fixed control codes breaking in `append_tokens`
* Fixed exception pretty printing a dataclass with missing
* `RichHandler` errors and warnings will now use different
colors (red and yellow)
* Removed the empty line printed in jupyter while using
`Progress`
* Running tests in environment with `FORCE_COLOR` or `NO_COLOR`
environment variables
* ansi decoder will now strip problematic private escape
sequences
* Tree's ASCII_GUIDES and TREE_GUIDES constants promoted to
class attributes
* Adds a `case_sensitive` parameter to `prompt.Prompt`. This
determines if the response is treated as case-sensitive.
* Added `Console.on_broken_pipe`
-------------------------------------------------------------------
Sat Mar 16 09:47:51 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-rich
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2020-2021, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -19,19 +19,20 @@
%{?sle15_python_module_pythons}
Name: python-rich
Version: 13.7.1
Version: 13.9.4
Release: 0
Summary: A Python library for rich text and beautiful formatting in the terminal
License: MIT
Group: Development/Languages/Python
URL: https://github.com/Textualize/rich
Source: https://files.pythonhosted.org/packages/source/r/rich/rich-%{version}.tar.gz
BuildRequires: %{python_module dataclasses >= 0.7 if %python-base < 3.7}
Source: https://github.com/Textualize/rich/archive/refs/tags/v%{version}.tar.gz#/rich-%{version}.tar.gz
# PATCH-FIX-UPSTREAM https://github.com/Textualize/rich/pull/3604 Fix test that changed with Pygments 2.19.
# and https://github.com/Textualize/rich/pull/3608 fix remaining tests with Pygments 2.19 #3604 did not fix
Patch: pygments.patch
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module markdown-it-py >= 2.2.0}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: %{python_module pygments >= 2.13.0}
BuildRequires: %{python_module typing_extensions >= 4.0.0 if %python-base < 3.9}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-markdown-it-py >= 2.2.0
@@ -41,12 +42,6 @@ BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest}
# /SECTION
%if 0%{?python_version_nodots} < 39
Requires: python-typing_extensions >= 4.0.0
%endif
%if 0%{?python_version_nodots} < 37
Requires: python-dataclasses >= 0.7
%endif
%python_subpackages
%description
@@ -54,7 +49,7 @@ Render rich text, tables, progress bars, syntax highlighting,
markdown and more to the terminal.
%prep
%setup -q -n rich-%{version}
%autosetup -p1 -n rich-%{version}
%build
%pyproject_wheel
@@ -63,10 +58,13 @@ markdown and more to the terminal.
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pytest
%files %{python_files}
%license LICENSE
%doc README.md
%{python_sitelib}/rich
%{python_sitelib}/rich-%{version}*-info
%{python_sitelib}/rich-%{version}.dist-info
%changelog

BIN
rich-13.7.1.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
rich-13.9.4.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.