File: //opt/saltstack/salt/lib/python3.10/site-packages/rich/__pycache__/palette.cpython-310.pyc
o
;j� � @ s� d dl mZ d dlmZ d dlmZmZmZ ddlm Z er$d dl
mZ G dd� d�Ze
d kred d
lZd dlmZ d dlmZ d d
lmZmZ d dlmZ d dlmZ G dd� d�Ze� Ze�e� � d
S d
S )� )�sqrt)� lru_cache)�Sequence�Tuple�
TYPE_CHECKING� )�ColorTriplet��Tablec @ sn e Zd ZdZdeeeeef fdd�Zdedefdd�Z dd
d�Z
edd
�deeeef defdd��ZdS )�PalettezA palette of available colors.�colorsc C s
|| _ d S �N)�_colors)�selfr � r �@/opt/saltstack/salt/lib/python3.10/site-packages/rich/palette.py�__init__ s
zPalette.__init__�number�returnc C s t | j| � S r
)r r )r r r r r �__getitem__ s zPalette.__getitem__r
c
C s� ddl m} ddlm} ddlm} ddlm} |dddd t| j �� d
�ddd
�}t
| j �D ]\}}|�t|�t
|�|d||j|� d�d�� q.|S )Nr ��Color��Style)�Textr �indexZRGBr r z colorsT�right)�titleZcaptionZ highlightZcaption_justifyz )�bgcolor)�style)�
rich.colorr �
rich.styler Z rich.textr �
rich.tabler
�lenr � enumerateZadd_row�str�repr�from_rgb)r r r r r
�tabler �colorr r r �__rich__ s( � �zPalette.__rich__i )�maxsizer) c sN |\���t � | jj�dtdtf� ����fdd�}ttt| j��|d�}|S )z�Find a color from a palette that most closely matches a given color.
Args:
color (Tuple[int, int, int]): RGB components in range 0 > 255.
Returns:
int: Index of closes matching color.
r r c sj �| �\}}}�| d }�| }�| }�| }� d| | | d? d| | d| | | d? �S )zGet the distance to a color.� i � � i� r )r Zred2Zgreen2Zblue2Zred_meanZredZgreenZblue��_sqrtZblue1Z get_colorZgreen1Zred1r r �get_color_distance: s
���z)Palette.match.<locals>.get_color_distance)�key)r r r �int�float�min�ranger# )r r) r1 Z min_indexr r/ r �match, s
z
Palette.matchN)r r
)
�__name__�
__module__�__qualname__�__doc__r r r3 r r r r* r r7 r r r r r s
"r �__main__N)�Iterabler )�Console�ConsoleOptions)�Segmentr c @ s&