a
    Qh+                  	   @   s  d dl Z d dlZd dlmZ ddlmZ G dd de dg dZdd	 Zd
d Z	dd Z
dd Zdd ZdeddejjfdeddejjfdeddejjfdeddejjffZg dZg dZdedddddZe Zedd ee D  dS )    N)
hls_to_rgb   )parse_one_component_valuec                   @   s   e Zd ZdZdS )RGBAa  An RGBA color.

    A tuple of four floats in the 0..1 range: ``(red, green, blue, alpha)``.

    .. attribute:: red

        Convenience access to the red channel. Same as ``rgba[0]``.

    .. attribute:: green

        Convenience access to the green channel. Same as ``rgba[1]``.

    .. attribute:: blue

        Convenience access to the blue channel. Same as ``rgba[2]``.

    .. attribute:: alpha

        Convenience access to the alpha channel. Same as ``rgba[3]``.

    N)__name__
__module____qualname____doc__ r
   r
   H/var/www/sistema_ama/venv/lib/python3.9/site-packages/tinycss2/color3.pyr      s   r   )redgreenbluealphac                    sP  t | trt| dd}n| }|jdkr2t|jS |jdkrtD ]N\ }||j}|r@ fdd|	 D }t
|dkr|d t|   S q@n|jd	krLt|j}|rL|j}|d
krt|ddS |dkr t|dd }|durLt|dd |S nL|dkrt|ddS |dkrLt|dd }|durLt|dd |S dS )a  Parse a color value as defined in CSS Color Level 3.

    https://www.w3.org/TR/css-color-3/

    :type input: :obj:`str` or :term:`iterable`
    :param input: A string or an iterable of :term:`component values`.
    :returns:
        * :obj:`None` if the input is not a valid color value.
          (No exception is raised.)
        * The string ``'currentColor'`` for the ``currentColor`` keyword
        * Or a :class:`RGBA` object for every other values
          (including keywords, HSL and HSLA.)
          The alpha channel is clipped to [0, 1]
          but red, green, or blue can be out of range
          (eg. ``rgb(-10%, 120%, 0%)`` is represented as
          ``(-0.1, 1.2, 0, 1)``.)

    T)skip_commentsidenthashc                    s   g | ]}t |  d d qS )      )int).0group
multiplierr
   r   
<listcomp>=   s   zparse_color.<locals>.<listcomp>         ?functionrgb)r   rgbaNhslhsla)
isinstancestrr   type_COLOR_KEYWORDSgetlower_value_HASH_REGEXPSvaluegroupslenappendr   _parse_comma_separated	arguments
lower_name
_parse_rgb_parse_alpha
_parse_hsl)inputtokenregexpmatchchannelsargsnamer   r
   r   r   parse_color    s>    











r:   c                 C   s4   t | dkr0| d jdkr0tdtd| d jS dS )zParse a list of one alpha value.

    If args is a list of a single INTEGER or NUMBER token,
    return its value clipped to the 0..1 range. Otherwise, return None.

    r   r   numberN)r+   r$   minmaxr)   )r8   r
   r
   r   r1   U   s    r1   c                 C   s   dd | D }|g dkrVt dd | D rVdd | dd D \}}}t||||S |g d	krd
d | dd D \}}}t||||S dS )zParse a list of RGB channels.

    If args is a list of 3 INTEGER tokens or 3 PERCENTAGE tokens, return RGB
    values as a tuple of 3 floats in 0..1. Otherwise, return None.

    c                 S   s   g | ]
}|j qS r
   r$   r   argr
   r
   r   r   g       z_parse_rgb.<locals>.<listcomp>)r;   r;   r;   c                 s   s   | ]}|j V  qd S )N)
is_integer)r   ar
   r
   r   	<genexpr>i   rA   z_parse_rgb.<locals>.<genexpr>c                 S   s   g | ]}|j d  qS )r   )	int_valuer?   r
   r
   r   r   j   rA   Nr   )
percentagerF   rF   c                 S   s   g | ]}|j d  qS )d   )r)   r?   r
   r
   r   r   m   rA   )allr   r8   r   typesrgbr
   r
   r   r0   `   s    r0   c                 C   s\   dd | D }|g dkrXt | d jd | d jd | d jd \}}}t||||S d	S )
zParse a list of HSL channels.

    If args is a list of 1 NUMBER token and 2 PERCENTAGE tokens, return RGB
    values as a tuple of 3 floats in 0..1. Otherwise, return None.

    c                 S   s   g | ]
}|j qS r
   r>   r?   r
   r
   r   r   x   rA   z_parse_hsl.<locals>.<listcomp>)r;   rF   rF   r   ih     rG   r   N)r   r)   r   rI   r
   r
   r   r2   q   s    $
r2   c                 C   sT   dd | D } | sg S t | d dkrPtdd | ddd D rP| ddd S dS )aT  Parse a list of tokens (typically the content of a function token)
    as arguments made of a single token each, separated by mandatory commas,
    with optional white space around each argument.

    return the argument list without commas or white space;
    or None if the function token content do not match the description above.

    c                 S   s   g | ]}|j d vr|qS ))
whitespacecommentr>   r   r4   r
   r
   r   r      s   
z*_parse_comma_separated.<locals>.<listcomp>rN   r   c                 s   s   | ]}|d kV  qdS ),Nr
   rQ   r
   r
   r   rD      rA   z)_parse_comma_separated.<locals>.<genexpr>N)r+   rH   )tokensr
   r
   r   r-      s
    	,r-   rN   z^{}$z$([\da-f])([\da-f])([\da-f])([\da-f])z0([\da-f]{2})([\da-f]{2})([\da-f]{2})([\da-f]{2})z([\da-f])([\da-f])([\da-f])z$([\da-f]{2})([\da-f]{2})([\da-f]{2}))black)r   r   r   silver)   rX   rX   gray   r\   r\   white)r   r   r   maroon)r\   r   r   r   )r   r   r   purple)r\   r   r\   fuchsiar   r   r   r   )r   r\   r   lime)r   r   r   olive)r\   r\   r   yellow)r   r   r   navy)r   r   r\   r   )r   r   r   teal)r   r\   r\   aquar   r   r   ))	aliceblue)      r   )antiquewhite)         rs   )
aquamarine)   r      )azure)rw   r   r   )beige)   r      )bisque)r         rT   )blanchedalmond)r   r{      rp   )
blueviolet)   +      )brown)   *   r   )	burlywood)         )	cadetblue)_         )
chartreuse)r~   r   r   )	chocolate)   i      )coral)r   r~   P   )cornflowerblue)rG         )cornsilk)r   rx   r   )crimson)r      <   )cyanru   )darkblue)r   r      )darkcyan)r   r   r   )darkgoldenrod)r         )darkgray   r   r   )	darkgreen)r   rG   r   )darkgreyr   )	darkkhaki)      k   )darkmagenta)r   r   r   )darkolivegreen)U   r   /   )
darkorange)r      r   )
darkorchid)   2      )darkred)r   r   r   )
darksalmon)      z   )darkseagreen)      r   )darkslateblue)H   =   r   )darkslategrayr   O   r   )darkslategreyr   )darkturquoise)r         )
darkviolet)   r      )deeppink)r   r      )deepskyblue)r      r   )dimgrayr   r   r   )dimgreyr   )
dodgerblue)r      r   )	firebrick)   "   r   )floralwhite)r   rz   rw   )forestgreen)r   r   r   rd   )	gainsboro)r   r   r   )
ghostwhite)rx   rx   r   )gold)r   r|   r   )	goldenrod)   r       rY   rg   )greenyellow)   r   r   )greyr[   )honeydew)rw   r   rw   )hotpink)r   r      )	indianred)r   \   r   )indigo)K   r      )ivory)r   r   rw   )khaki)rw      r   )lavender)r   r   rz   )lavenderblush)r   rw   r   )	lawngreen)|      r   )lemonchiffon)r   rz   r   )	lightblue)r      r   )
lightcoral)rw   r\   r\   )	lightcyan)   r   r   )lightgoldenrodyellow)rz   rz   r   )	lightgrayr   r   r   )
lightgreen)r      r   )	lightgreyr  )	lightpink)r         )lightsalmon)r   r   r   )lightseagreen)r   r      )lightskyblue)r   r   rz   )lightslategrayw      r   )lightslategreyr  )lightsteelblue)   r   r   )lightyellow)r   r   r  rh   )	limegreen)r   r   r   )linen)rz   rw   r   )magentarf   r_   )mediumaquamarine)f   r   r  )
mediumblue)r   r   r   )mediumorchid)   r   r   )mediumpurple)r   p      )mediumseagreen)r      q   )mediumslateblue){   h   r  )mediumspringgreen)r   rz      )mediumturquoise)r   r   r   )mediumvioletred)         )midnightblue)   r0  r   )	mintcream)r   r   rz   )	mistyrose)r   r      )moccasin)r   r      )navajowhite)r   r   r   rn   )oldlace)   r   r   rj   )	olivedrab)r      #   )orange)r   r   r   )	orangered)r   E   r   )orchid)r   r      )palegoldenrod)r     r  )	palegreen)      rD  )paleturquoise)   r  r  )palevioletred)r!  r   r   )
papayawhip)r         )	peachpuff)r   r      )peru)r   r.  ?   )pink)r   rX      )plum)   r   rS  )
powderblue)r  r  r   rb   ra   )	rosybrown)r   r   r   )	royalblue)A   r   r3  )saddlebrown)r   r>     )salmon)rz   r\   r   )
sandybrown)      `   )seagreen).   r   W   )seashell)r   r   r  )sienna)r   R   -   rV   )skyblue)r   r   r{   )	slateblue)j   Z   r   )	slategrayr   r\   r   )	slategreyrl  )snow)r   rz   rz   )springgreen)r   r   r~   )	steelblue)F   r   r   )tan)r   r   r   rq   )thistle)r   r   r   )tomato)r   c   G   )	turquoise)@   r     )violet)r  r   r  )wheat)r   r   r#  r]   )
whitesmoke)r   r   r   rl   )yellowgreen)r)  r   r   ZcurrentColorg        )currentcolortransparentc                 c   s6   | ].\}\}}}|t |d  |d  |d  dfV  qdS )g     o@r   N)r   )r   keywordrK   rL   rM   r
   r
   r   rD   N  s   rD   )collectionsrecolorsysr   parserr   
namedtupler   r:   r1   r0   r2   r-   compileformatIr6   r(   _BASIC_COLOR_KEYWORDS_EXTENDED_COLOR_KEYWORDSZ_SPECIAL_COLOR_KEYWORDScopyr%   updater
   r
   r
   r   <module>   s0   5	 
