a
    hbòfj  ã                	   @   sÎ   d dl mZmZmZmZmZmZ er<ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZ eeee eeef eeeeef f ZG dd	„ d	eƒZed
krÊd dlmZ eedddd�ƒ dS )é    )ÚcastÚListÚOptionalÚTupleÚTYPE_CHECKINGÚUnioné   )ÚConsoleÚConsoleOptionsÚRenderableTypeÚRenderResult)ÚJupyterMixin)ÚMeasurement)ÚStyle)ÚSegmentc                   @   sž   e Zd ZdZddddœddeeef edœd	d
„Ze	de
d dœdd„ƒZedee
e
e
e
f dœdd„ƒZedœdd„Zddddœdd„Zddddœdd„ZdS )ÚPaddinga
  Draw space around content.

    Example:
        >>> print(Padding("Hello", (2, 4), style="on blue"))

    Args:
        renderable (RenderableType): String or other renderable.
        pad (Union[int, Tuple[int]]): Padding for top, right, bottom, and left borders.
            May be specified with 1, 2, or 4 integers (CSS style).
        style (Union[str, Style], optional): Style for padding characters. Defaults to "none".
        expand (bool, optional): Expand padding to fit available width. Defaults to True.
    ©r   r   r   r   ÚnoneT)ÚstyleÚexpandr   ÚPaddingDimensions)Ú
renderableÚpadr   r   c                C   s0   || _ |  |¡\| _| _| _| _|| _|| _d S )N)r   ÚunpackÚtopÚrightÚbottomÚleftr   r   )Úselfr   r   r   r   © r   úU/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_vendor/rich/padding.pyÚ__init__!   s    zPadding.__init__)r   ÚlevelÚreturnc                 C   s   t |ddd|fdd�S )zûMake padding instance to render an indent.

        Args:
            renderable (RenderableType): String or other renderable.
            level (int): Number of characters to indent.

        Returns:
            Padding: A Padding instance.
        r   F)r   r   )r   )Úclsr   r"   r   r   r    Úindent.   s    zPadding.indent)r   r#   c                 C   s²   t | tƒr| | | | fS t| ƒdkr6| d }||||fS t| ƒdkrdttttf | ƒ\}}||||fS t| ƒdkršttttttf | ƒ\}}}}||||fS tdt| ƒ› d�ƒ‚dS )z&Unpack padding specified in CSS style.r   r   é   é   z)1, 2 or 4 integers required for padding; z givenN)Ú
isinstanceÚintÚlenr   r   Ú
ValueError)r   Ú_padÚpad_topÚ	pad_rightr   r   r   r   r   r   r    r   <   s    
zPadding.unpack)r#   c                 C   s.   d| j ›d| j› d| j› d| j› d| j› d�S )NzPadding(z, (ú,z)))r   r   r   r   r   )r   r   r   r    Ú__repr__L   s    zPadding.__repr__r	   r
   r   )ÚconsoleÚoptionsr#   c                 c   sŽ  |  | j¡}| jr|j}n&tt ||| j¡j| j	 | j
 |jƒ}| || j	 | j
 ¡}|jd urz|j|j| j | j d�}|j| j||dd�}t}| j	r¨|d| j	 |ƒnd }| j
rÌ|d| j
 › |ƒ| ¡ gn| ¡ g}	d }
| j�r|d| › d�|ƒg}
|
| j E d H  |�r6|D ] }|V  |E d H  |	E d H  �qn |D ]}|E d H  |	E d H  �q:| j�rŠ|
�px|d| › d�|ƒg}
|
| j E d H  d S )N)ÚheightT)r   r   ú Ú
)Ú	get_styler   r   Ú	max_widthÚminr   Úgetr   Úmaximumr   r   Úupdate_widthr3   Úupdate_heightr   r   Úrender_linesr   Úline)r   r1   r2   r   ÚwidthÚrender_optionsÚlinesÚ_Segmentr   r   Ú
blank_liner>   r   r   r    Ú__rich_console__O   sP    ÿþü
ÿ
ÿÿý

zPadding.__rich_console__r   c                 C   s\   |j }| j| j }|| dk r(t||ƒS t ||| j¡\}}t|| || ƒ}| |¡}|S )Nr   )r7   r   r   r   r9   r   Úwith_maximum)r   r1   r2   r7   Úextra_widthÚmeasure_minÚmeasure_maxÚmeasurementr   r   r    Ú__rich_measure__}   s    

zPadding.__rich_measure__N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   Úboolr!   Úclassmethodr)   r%   Ústaticmethodr   r   r0   rD   rJ   r   r   r   r    r      s,    ýú
úþ/þr   Ú__main__)ÚprintzHello, World)r&   r'   zon blue)r   N)Útypingr   r   r   r   r   r   r1   r	   r
   r   r   Újupyterr   Úmeasurer   r   r   Úsegmentr   r)   r   r   rK   Úpip._vendor.richrT   r   r   r   r    Ú<module>   s    (w