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

Function rich_cast

rich/protocol.py:18–41  ·  view source on GitHub ↗

Cast an object to a renderable by calling __rich__ if present. Args: renderable (object): A potentially renderable object Returns: object: The result of recursively calling __rich__.

(renderable: object)

Source from the content-addressed store, hash-verified

16
17
18def rich_cast(renderable: object) -> "RenderableType":
19 """Cast an object to a renderable by calling __rich__ if present.
20
21 Args:
22 renderable (object): A potentially renderable object
23
24 Returns:
25 object: The result of recursively calling __rich__.
26 """
27 from rich.console import RenderableType
28
29 rich_visited_set: Set[type] = set() # Prevent potential infinite loop
30 while hasattr(renderable, "__rich__") and not isinstance(renderable, type):
31 # Detect object which claim to have all the attributes
32 if hasattr(renderable, _GIBBERISH):
33 return repr(renderable)
34 cast_method = getattr(renderable, "__rich__")
35 renderable = cast_method()
36 renderable_type = type(renderable)
37 if renderable_type in rich_visited_set:
38 break
39 rich_visited_set.add(renderable_type)
40
41 return cast(RenderableType, renderable)

Callers 3

renderMethod · 0.85
_collect_renderablesMethod · 0.85
getMethod · 0.85

Calls 1

addMethod · 0.80

Tested by

no test coverage detected