U
    ç¥¡c  ã                   @   sX   d dl mZmZ ddlmZ ddlmZ erDddlmZm	Z	m
Z
mZ G dd„ deƒZdS )	é    )ÚOptionalÚTYPE_CHECKINGé   )ÚJupyterMixin)ÚMeasurement)ÚConsoleÚConsoleOptionsÚRenderableTypeÚRenderResultc                   @   sL   e Zd ZdZddee ddœdd„Zdd	d
dœdd„Zdd	ddœdd„ZdS )Ú	ConstrainzêConstrain the width of a renderable to a given number of characters.

    Args:
        renderable (RenderableType): A renderable object.
        width (int, optional): The maximum width (in characters) to render. Defaults to 80.
    éP   r	   N)Ú
renderableÚwidthÚreturnc                 C   s   || _ || _d S ©N)r   r   )Úselfr   r   © r   ú2/tmp/pip-unpacked-wheel-qkhzhrww/rich/constrain.pyÚ__init__   s    zConstrain.__init__r   r   r
   )ÚconsoleÚoptionsr   c                 c   s@   | j d kr| jV  n(| t| j |jƒ¡}| | j|¡E d H  d S r   )r   r   Úupdate_widthÚminÚ	max_widthÚrender)r   r   r   Zchild_optionsr   r   r   Ú__rich_console__   s    

zConstrain.__rich_console__r   c                 C   s*   | j d k	r| | j ¡}t ||| j¡}|S r   )r   r   r   Úgetr   )r   r   r   Zmeasurementr   r   r   Ú__rich_measure__   s    
zConstrain.__rich_measure__)r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úintr   r   r   r   r   r   r   r   
   s    þ
 þr   N)Útypingr   r   Zjupyterr   Zmeasurer   r   r   r   r	   r
   r   r   r   r   r   Ú<module>   s
   