
    3vj                         d dl mZ ej                  dhz  ZddhZej                  Zej
                  Z G d dej                        ZddZd	 Zd
 Z	d Z
y)   )color4device-cmyklightdarkc                       e Zd ZdZy)ColorN)__name__
__module____qualname__COLOR_SPACES     B/root/.hermes/venv/lib/python3.12/site-packages/tinycss2/color5.pyr   r      s    Lr   r   Nc                    t        j                  |       }|r|S ||dk(  rd}n|D ]  }|t        v s n d}t        | t              rt        j
                  | d      }n| }|j                  dk(  r|j                  D cg c]  }|j                  dvr| }}j                  }g }|dk(  r|^}}t        d	 |d
dd   D              }	|	r	|ddd   }n't        |      D ]  \  }
}|dk(  s||
d
z   d }|d|
 } n |dk(  r t        |t        j                  |      |	      S |dk(  r t        |t        j                  |            S |dk(  rt        ||      S yyc c}w )a  Parse a color value as defined in CSS Color Level 5.

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

    :type input: :obj:`str` or :term:`iterable`
    :param input: A string or an iterable of :term:`component values`.
    :type color_schemes: :obj:`str` or :term:`iterable`
    :param color_schemes: the ``'normal'`` string, or an iterable of color
        schemes used to resolve the ``light-dark()`` function.
    :returns:
        * :obj:`None` if the input is not a valid color value.
          (No exception is raised.)
        * The string ``'currentcolor'`` for the ``currentcolor`` keyword
        * A :class:`Color` object for every other values, including keywords.

    Nnormalr   T)skip_commentsfunction)
whitespacecommentcolorc              3   &   K   | ]	  }|d k(    yw),Nr   ).0tokens     r   	<genexpr>zparse_color.<locals>.<genexpr>?   s     @%#@s   r      /r   z
light-dark)r   parse_colorCOLOR_SCHEMES
isinstancestrparse_one_component_valuetype	arguments
lower_nameall	enumerate_parse_device_cmyk_parse_alpha_parse_color_parse_light_dark)inputcolor_schemesr   color_schemer   tokensnamealphaspace
old_syntaxindexs              r   r   r      s   " u%E 9) 	#L},	# #L%00dKzzZ$<zz!:: < < 7?#NEF@6!$Q$<@@
CaC[F )& 1 uC<"519:.E#FU^F	 = %ff.A.A%.H*UUW_vv/B/B5/IJJ\!$V\::7  <s   >Ec                    |rt        j                  |       dhk7  ryt        j                  |       ddhk  syt        |       dk7  ry| D cg c]=  }|j                  dk(  r|j                  n|j                  dk(  r|j                  dz  nd? }}|D cg c]!  }t        dt        dt        |                  # }}t        d||      S c c}w c c}w )	zParse a list of CMYK channels.

    If args is a list of 4 NUMBER or PERCENTAGE tokens, return
    device-cmyk :class:`Color`. Otherwise, return None.

    Input C, M, Y, K ranges are [0, 1], output are [0, 1].

    numberN
percentage   d   g        g      ?r   )	r   _typeslenr#   valuemaxminfloatr   )argsr1   r3   argcmykchannels         r   r(   r(   S   s     ==8*,}}T"x&>>
4yA~   XX)		88|3		C	>D  =AACCE'N+,ADAe,, Bs   AC&Cc                     g }| D ]"  }t        ||      x}s|j                  |       $ t        |      dk(  r|dk(  r|d   S |d   S y )Nr   r       r   )r   appendr;   )r@   r.   colorsrA   r   s        r   r+   r+   l   sa    F !\2252MM% ! 6{a7"!9!9
r   c                 V   t        j                  |      ddhk  sy| j                  dk7  s| j                  j	                  d      sy|D cg c]=  }|j                  dk(  r|j                  n|j                  dk(  r|j                  dz  nd? }}t        | j                  ||      S c c}w )zKParse a color space name list of coordinates.

    Ranges are [0, 1].

    r6   r7   Nidentz--r9   )r   r:   r#   r<   
startswithr   )r2   r@   r1   rA   coordinatess        r   r*   r*   y   s     ==8\"::zzWEKK$:$:4$@   XX)		88|3		C	>K  k511	s   AB&)N) r   r   r   D50D65r   r   r(   r+   r*   r   r   r   <module>rO      s]     ""m_4&!jjjjFLL ?D-2
2r   