B
    oºˆdo  ã               @   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)ÚRenderableTypeÚ-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__Ú__rich_console__)Ú
isinstanceÚstrÚhasattr)r	   © r   úK/var/www/html/venv/lib/python3.7/site-packages/pip/_vendor/rich/protocol.pyÚis_renderable
   s    

r   r   )Ú
renderabler
   c             C   sr   ddl m} tƒ }xTt| dƒrft| ƒsft| tƒr8t| ƒS t| dƒ}|ƒ } t| ƒ}||krZP | 	|¡ qW t
|| ƒS )zÕ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__.
    r   )r   r   )Úpip._vendor.rich.consoler   Úsetr   r   Ú
_GIBBERISHÚreprÚgetattrÚtypeÚaddr   )r   r   Úrich_visited_setÚcast_methodÚ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   	