File: //usr/local/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-310.pyc
o
��i� � @ s� d dl mZ ddlmZ ddlmZmZ ddlmZm Z m
Z
ddlmZ ddl
mZ ddlmZ dd lmZ G d
d� de�Zedkrxd d
lZd dlmZ zejd ZW n ey^ dZY nw e� Ze�eed�� e� Zejed�dd� d
S d
S )� )�Union� )�AlignMethod)�cell_len�
set_cell_size)�Console�ConsoleOptions�RenderResult)�JupyterMixin��Measurement)�Style)�Textc @ s� e Zd ZdZ dddddd�deeef d ed
eeef deded
dfdd�Z d
efdd�Z
deded
e
fdd�Zdeded
efdd�Zdeded
efdd�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 �@/usr/local/lib/python3.10/site-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 s2 � |j }ttdd �p
dd� }|jr|| j�sdn| j}t|�}| js+| �||�V d S t| jt �r5| j}n|j
| jdd�}|j�dd�|_|�
� | jd krPd
nd}td|| �} | sd| �||�V d S t | jd
�}
| jd kr�|j| dd� |t|j� d }t ||| d �}|�|d � |t|j� t|j� }
t ||| d �}|�|
� |
�|jd | j� |
�|� |
�d|j | j� nH| jdkr�|j| dd� |
�|� |
�d� |
�|||
j | j� n%| jdk�r
|j| dd� |
�|||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>8 s � z:Rule.__rich_console__.<locals>.<lambda>.<locals>.<genexpr>)�all)�sr r r �<lambda>8 s z'Rule.__rich_console__.<locals>.<lambda>�-z rule.text)r r � r � � r )r �ellipsis)�overflowr r r )� max_width�getattr�str�
ascii_onlyr r r �
_rule_line�
isinstancer �
render_str�plain�replace�expand_tabsr �maxr �truncate�appendr r )r r"