File: //usr/local/lib/python3.10/dist-packages/pip/_vendor/rich/__pycache__/rule.cpython-310.pyc
o
��h� � @ 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/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 s � |j }|jr| j�� sdn| j}t|�}| js!| �||�V d S t| jt�r+| j}n|j | jdd�}|j
�dd�|_
|�� | j
dkrFdnd}td || �}|sZ| �||�V d S t| jd
�} | j
dkr�|j|dd� |t|j
� d }
t||
| d
�}|�|
d
� |t|j
� t|j
� }t||
| d
�}
|
�|� | �|j
d | j� | �|� | �d|
j
| j� nH| j
dkr�|j|dd� | �|� | �d� | �||| j | j� n%| j
dk�r|j|dd� | �|||j d
| j� | �d� | �|� t| j
|�| _
| V d S )N�-z rule.text)r r � r � � r )r �ellipsis)�overflowr r r )� max_width�
ascii_onlyr �isasciir r �
_rule_line�
isinstancer �
render_str�plain�replace�expand_tabsr �maxr �truncate�appendr r )r r"