MCPcopy
hub / github.com/Textualize/rich / simplify

Method simplify

rich/segment.py:551–575  ·  view source on GitHub ↗

Simplify an iterable of segments by combining contiguous segments with the same style. Args: segments (Iterable[Segment]): An iterable of segments. Returns: Iterable[Segment]: A possibly smaller iterable of segments that will render the same way.

(cls, segments: Iterable["Segment"])

Source from the content-addressed store, hash-verified

549
550 @classmethod
551 def simplify(cls, segments: Iterable["Segment"]) -> Iterable["Segment"]:
552 """Simplify an iterable of segments by combining contiguous segments with the same style.
553
554 Args:
555 segments (Iterable[Segment]): An iterable of segments.
556
557 Returns:
558 Iterable[Segment]: A possibly smaller iterable of segments that will render the same way.
559 """
560 iter_segments = iter(segments)
561 try:
562 last_segment = next(iter_segments)
563 except StopIteration:
564 return
565
566 _Segment = Segment
567 for segment in iter_segments:
568 if last_segment.style == segment.style and not segment.control:
569 last_segment = _Segment(
570 last_segment.text + segment.text, last_segment.style
571 )
572 else:
573 yield last_segment
574 last_segment = segment
575 yield last_segment
576
577 @classmethod
578 def strip_links(cls, segments: Iterable["Segment"]) -> Iterable["Segment"]:

Callers 3

test_simplifyFunction · 0.80
_render_segmentsFunction · 0.80
export_htmlMethod · 0.80

Calls

no outgoing calls

Tested by 1

test_simplifyFunction · 0.64