a
    ibòfe  ã                   @   sÌ   d dl mZ ddlmZ ddlmZmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ G d	d
„ d
eƒZedkrÈd dlmZ d dlZzejd ZW n ey°   dZY n0 eƒ Ze eed�¡ dS )é    )ÚUnioné   )ÚAlignMethod)Úcell_lenÚset_cell_size)ÚConsoleÚConsoleOptionsÚRenderResult)ÚJupyterMixin)ÚStyle)ÚTextc                	   @   sf   e Zd ZdZddddddœeeef eeeef eedd	œd
d„Z	edœdd„Z
eeedœdd„ZdS )ÚRuleu  A console renderable to draw a horizontal rule (line).

    Args:
        title (Union[str, Text], optional): Text to render in the rule. Defaults to "".
        characters (str, optional): Character(s) used to draw the line. Defaults to "â”€".
        style (StyleType, optional): Style of Rule. Defaults to "rule.line".
        end (str, optional): Character at end of Rule. defaults to "\\n"
        align (str, optional): How to align the title, one of "left", "center", or "right". Defaults to "center".
    Ú u   â”€z	rule.lineÚ
Úcenter)Ú
charactersÚstyleÚendÚalignN)Útitler   r   r   r   Úreturnc                C   sN   t |ƒdk rtdƒ‚|dvr,td|›d�ƒ‚|| _|| _|| _|| _|| _d S )Nr   z:'characters' argument must have a cell width of at least 1)Úleftr   ÚrightzAinvalid value for align, expected "left", "center", "right" (not ú))r   Ú
ValueErrorr   r   r   r   r   )Úselfr   r   r   r   r   © r   úR/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_vendor/rich/rule.pyÚ__init__   s    	ÿ
ÿzRule.__init__)r   c                 C   s   d| j ›d| j›d�S )NzRule(z, r   )r   r   )r   r   r   r   Ú__repr__-   s    zRule.__repr__)ÚconsoleÚoptionsr   c                 c   s2  |j }ttdd ƒpdd„ }|jr.|| jƒs.dn| j}t|ƒ}| js|t||| d  | jƒ}| 	|¡ t
|j|ƒ|_|V  d S t| jtƒr�| j}n|j| jdd�}|j dd	¡|_| ¡  t| jd
�}| jdk�r€|j	|d dd� |t|jƒ d }	t||	| d  ƒ}
|
 	|	d ¡ |t|
jƒ t|jƒ }t||	| d  ƒ}| 	|¡ | |
jd	 | j¡ | |¡ | d	|j | j¡ nš| jdk�rÌ|j	|d dd� | |¡ | d	¡ | |||j  | j¡ nN| jdk�r|j	|d dd� | |||j d  | j¡ | d	¡ | |¡ t
|j|ƒ|_|V  d S )NÚisasciic                 S   s   t dd„ | D ƒƒS )Nc                 s   s   | ]}t |ƒd k V  qdS )é€   N)Úord)Ú.0Úcr   r   r   Ú	<genexpr>7   ó    z:Rule.__rich_console__.<locals>.<lambda>.<locals>.<genexpr>)Úall)Úsr   r   r   Ú<lambda>7   r(   z'Rule.__rich_console__.<locals>.<lambda>ú-r   z	rule.text)r   r   ú )r   r   é   Úellipsis)Úoverflowé   r   r   )Ú	max_widthÚgetattrÚstrÚ
ascii_onlyr   r   r   r   r   Útruncater   ÚplainÚ
isinstanceÚ
render_strÚreplaceÚexpand_tabsr   r   Úappend)r   r    r!   Úwidthr"   r   Z	chars_lenZ	rule_textÚ
title_textZ
side_widthr   Zright_lengthr   r   r   r   Ú__rich_console__0   s\    ÿÿÿý






zRule.__rich_console__)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r4   r   r   r   r   r   r   r   r	   r?   r   r   r   r   r      s&    þù

øþr   Ú__main__)r   NzHello, World)r   )Útypingr   r   r   Úcellsr   r   r    r   r   r	   Újupyterr
   r   r   Útextr   r   r@   Úpip._vendor.rich.consoleÚsysÚargvÚ
IndexErrorÚprintr   r   r   r   Ú<module>   s    _
