U
    >ho                     @   s\   d dl mZmZmZmZ d dlmZ er4d dlmZ dZ	ee
dddZedd	d
dZdS )    )AnycastSetTYPE_CHECKING)isclassRenderableTypeZ-aihwerij235234ljsdnp34ksodfipwoe234234jlskjdf)check_objectreturnc                 C   s   t | tpt| dpt| dS )z+Check if an object may be rendered by Rich.__rich__Z__rich_console__)
isinstancestrhasattr)r	    r   =/tmp/pip-unpacked-wheel-zvxvnq2j/pip/_vendor/rich/protocol.pyis_renderable
   s
    
r   r   )
renderabler
   c                 C   sn   ddl m} t }t| drdt| sdt| tr6t| S t| d}| } t| }||krXqd|	| qt
|| S )zCast 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__.
    r   r   r   )pip._vendor.rich.consoler   setr   r   
_GIBBERISHreprgetattrtypeaddr   )r   r   Zrich_visited_setZcast_methodZrenderable_typer   r   r   	rich_cast   s    	

r   N)typingr   r   r   r   inspectr   r   r   r   boolr   objectr   r   r   r   r   <module>   s   	