File: //usr/lib/python3/dist-packages/pip/_vendor/rich/__pycache__/rule.cpython-310.pyc
o
@%Nee � @ s� d dl mZ ddlmZ ddlmZmZ ddlmZm Z m
Z
ddlmZ ddl
mZ ddlmZ G d d
� d
e�Zedkrfd dlmZ d d
lZzejd ZW n eyX dZY nw e� Ze�eed�� d
S d
S )� )�Union� )�AlignMethod)�cell_len�
set_cell_size)�Console�ConsoleOptions�RenderResult)�JupyterMixin)�Style)�Textc @ sv e Zd ZdZ dddddd�deeef d ed
eeef deded
dfdd�Z d
efdd�Z
deded
e
fdd�ZdS )�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�align�titler r r r �returnNc C sN t |�dk r
td��|dvrtd|�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 �7/usr/lib/python3/dist-packages/pip/_vendor/rich/rule.py�__init__ s �
�
z
Rule.__init__c C s d| j �d| j�d�S )NzRule(z, r )r r )r r r r �__repr__- s z
Rule.__repr__�console�optionsc
c s0 � |j }ttdd �p
dd� }|jr|| j�sdn| j}t|�}| js?t||| d | j�}|� |� t
|j|�|_|V d S t| jt�rI| j}n|j
| jdd�}|j�dd �|_|�� t| jd
�}| jdkr�|j |d d
d� |t|j� d } t|| | d �}
|
� | d � |t|
j� t|j� }t|| | d �}|� |� |�|
jd | j� |�|� |�d |j | j� nL| jdkr�|j |d d
d� |�|� |�d � |�|||j | j� n'| jdk�r|j |d d
d� |�|||j d | j� |�d � |�|� t
|j|�|_|V d S )N�isasciic S s t dd� | D ��S )Nc s s � | ] }t |�d k V qdS )� N)�ord)�.0�cr r r � <genexpr>7 s � z:Rule.__rich_console__.<locals>.<lambda>.<locals>.<genexpr>)�all)�sr r r �<lambda>7 s 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"