From c3e0f7de579849dbed180d2fe5d3d608d4452330 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 14 Dec 2021 21:56:30 +0000 Subject: [PATCH] optimization --- rich/text.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/rich/text.py b/rich/text.py index ec5cd10f4..8061f8d1a 100644 --- a/rich/text.py +++ b/rich/text.py @@ -1058,7 +1058,7 @@ def divide(self, offsets: Iterable[int]) -> Lines: if not self._spans: return new_lines - _lines = [line._spans.append for line in new_lines._lines] + _line_appends = [line._spans.append for line in new_lines._lines] line_count = len(line_ranges) _Span = Span @@ -1091,14 +1091,12 @@ def divide(self, offsets: Iterable[int]) -> Lines: break end_line_no = (lower_bound + upper_bound) // 2 - for line, (line_start, line_end) in zip( - _lines[start_line_no : end_line_no + 1], - line_ranges[start_line_no : end_line_no + 1], - ): + for line_no in range(start_line_no, end_line_no + 1): + line_start, line_end = line_ranges[line_no] new_start = max(0, span_start - line_start) new_end = min(span_end - line_start, line_end - line_start) if new_end > new_start: - line(_Span(new_start, new_end, style)) + _line_appends[line_no](_Span(new_start, new_end, style)) return new_lines