File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/rich/__pycache__/align.cpython-310.pyc
Back
o ;j�) � @ s@ d dl mZ d dlmZmZmZmZ ddlmZ ddl m Z ddlmZ ddl mZ ddlmZ er>dd lmZmZmZmZ ed Zed ZG dd � d e �ZG dd� de �Zedkr�d dlmZmZ d dlmZ d dlm Z e� Z!e� Ze ee�"e!d��e�#e!d��e�$e!d���ddd d�Z%e�&ej#e%ddej'd�� dS dS )� )�chain)� TYPE_CHECKING�Iterable�Optional�Literal� )� Constrain)�JupyterMixin)�Measurement)�Segment)� StyleType)�Console�ConsoleOptions�RenderableType�RenderResult��left�center�right��top�middleZbottomc @ st e Zd ZdZ d"ddddd�ddded ee d ee dedee d ee ddfdd�Z defdd�Ze d#ddddd�ddd ee d ee dedee d ee dd fdd��Ze d#ddddd�ddd ee d ee dedee d ee dd fdd��Ze d#ddddd�ddd ee d ee dedee d ee dd fdd��Z d$dd�Zdddddefd d!�ZdS )%�Aligna� Align a renderable by adding spaces if necessary. Args: renderable (RenderableType): A console renderable. align (AlignMethod): One of "left", "center", or "right"" style (StyleType, optional): An optional style to apply to the background. vertical (Optional[VerticalAlignMethod], optional): Optional vertical align, one of "top", "middle", or "bottom". Defaults to None. pad (bool, optional): Pad the right with spaces. Defaults to True. width (int, optional): Restrict contents to given width, or None to use default width. Defaults to None. height (int, optional): Set height of align renderable, or None to fit to contents. Defaults to None. Raises: ValueError: if ``align`` is not one of the expected values. Example: .. code-block:: python from rich.console import Console from rich.align import Align from rich.panel import Panel console = Console() # Create a panel 20 characters wide p = Panel("Hello, [b]World[/b]!", style="on green", width=20) # Renders the panel centered in the terminal console.print(Align(p, align="center")) r NT)�vertical�pad�width�height� renderabler �align�styler r r r �returnc C sf |dvrt d|�d���|d ur|dvrt d|�d���|| _|| _|| _|| _|| _|| _|| _d S )Nr zDinvalid value for align, expected "left", "center", or "right" (not �)r zGinvalid value for vertical, expected "top", "middle", or "bottom" (not )� ValueErrorr r r r r r r )�selfr r r r r r r � r$ �>/opt/saltstack/salt/lib/python3.10/site-packages/rich/align.py�__init__/ s � � zAlign.__init__c C s d| j �d| j�d�S )NzAlign(z, r! )r r �r# r$ r$ r% �__repr__J s zAlign.__repr__c C � | |d|||||d�S )zAlign a renderable to the left.r �r r r r r r$ ��clsr r r r r r r$ r$ r% r M � �z Align.leftc C r) )z!Align a renderable to the center.r r* r$ r+ r$ r$ r% r c r- zAlign.centerc C r) )z Align a renderable to the right.r r* r$ r+ r$ r$ r% r y r- zAlign.right�consoler �optionsr r c # s� � �j � |j�j|d�j}|�t�j�jd u r|nt|�j��|jd d��}t t �|���t ���\}}t � �||��t �� �|j| ��jd urO|��j�nd �dtt f� �����fdd�}�jrrt d�jpk|j � d���nt d��dtdtt f�fd d �}�jp�|j}�jr�|d ur̈jdkr�|| } t|� || ��} n-�jdkr�|| d }|| | } t||�|� || ��} n|| }t||�|� �} n|� } �jr�|��j��t �| ��} | E d H d S )N)r/ �r r c 3 s � �dkr�D ] } | E d H �V qd S � dkr8�j r"td� ��nd }�D ]} | E d H |r2|V �V q&d S � dkrn�d }td| ��}�j rStd�| ��nd }�D ]} |r^|V | E d H |rh|V �V qWd S � dkr�td� ��}�D ]} |V | E d H �V q{d S d S )Nr r � r � r )r r )�liner r Z pad_right)r �excess_space�lines�new_liner# r r$ r% �generate_segments� sF � � �� � �z1Align.__rich_console__.<locals>.generate_segmentsr1 � �countc 3 s&