
    3vj                     D    d Z  G d d      Zd
dZd
dZd Zd Zd Zd	 Zy)zCSS functions parsers.c                   $    e Zd ZdZd Zd ZddZy)FunctionzCSS function.c                     t        |dd      dk(  r#|j                  | _        |j                  | _        ydx| _        | _        y)z$Create Function from function token.typeNfunction)getattr
lower_namename	arguments)selftokens     K/root/.hermes/venv/lib/python3.12/site-packages/weasyprint/css/functions.py__init__zFunction.__init__   s9    5&$':5((DI"__DN)--DI    c                 v    | j                   (| j                   D cg c]  }|j                  dvr| c}S yc c}w )zSplit arguments on spaces.N)
whitespacecomment)r
   r   )r   arguments     r   split_spacezFunction.split_space   sF    >>%)-C%==(AA C C &Cs   6c                    | j                   yg g}| j                   D ]U  }|j                  dk(  r!|j                  dk(  r|j                  g        3|j                  dvsB|d   j                  |       W |rS|r?t	        d |dd D              r:t        |d         dv r*|dd D cg c]  }|r|d   nd c}S t	        |dd       r|S g S |r't	        d	 |D              r|D cg c]  }|d   	 c}S g S t	        |      r|S g S c c}w c c}w )
a%  Split arguments on commas.

        Spaces in parentheses and after commas are removed.

        If ``single_tokens`` is ``True``, check that only a single token is between
        commas and flatten returned list.

        If ``trailing`` is ``True``, allow a bare comma at the end.

        Nliteral,)r   r   c              3   8   K   | ]  }t        |      d k(    yw   Nlen.0parts     r   	<genexpr>z'Function.split_comma.<locals>.<genexpr>/   s     =$s4yA~=   )    r   r#   c              3   8   K   | ]  }t        |      d k(    ywr   r   r   s     r   r!   z'Function.split_comma.<locals>.<genexpr>6   s     8$s4yA~8r"   )r
   r   valueappendallr   )r   single_tokenstrailingpartsr   r    s         r   split_commazFunction.split_comma   s$    >>!^^ 	(EzzY&5;;#+=R zz!::b	  '	( =%*==59~/FKCRjQd4QT 9QQU3BZ 	 8%88056DG66 	 U	  R 7s   %D"DN)TF)__name__
__module____qualname____doc__r   r   r+    r   r   r   r      s    .C#r   r   Nc                    t        |       }|j                  dk7  ry |j                  dd      }t        |      dk(  r|d   d}}nGt        |      dk(  r8|\  }}t        |      dk\  r"|d   j                  d	k(  r|d   j
                  }nd}ny t        d
 |D              ry |d   j
                  }t        |      dk(  r|d   j
                  nd	}|d |fv rd|||ffS y )NattrFT)r(   r)   r   r#       stringc              3   :   K   | ]  }|j                   d k7    yw)identN)r   r   r   s     r   r!   zcheck_attr.<locals>.<genexpr>O   s     
<U5:: 
<s   zattr())r   r	   r+   r   r   r%   any)r   allowed_typer   r*   name_and_typefallbackr	   type_or_units           r   
check_attrr>   =   s    H}}  ut DE
5zQ"'(Bx	Uq"'xx=A(1+"2"2h">{((HH

<m
<< !!D-0-?1-D=#))(Ll++4x899 ,r   c                    ddl m} t        |       }|j                         }|j                  dk(  rt        |      dvry |j                  dk(  rt        |      dvry y g }|j                  d      }|j                  dk7  ry |j                  |j                         |j                  dk(  r<|j                  d      }|j                  d	k7  ry |j                  |j                         |r- ||j                  d      f      }|y |j                  |       n|j                  d
       |j                   dt        |      fS )Nr   )list_style_typecounterr   r4   counters)r4      r#   r7   r5   decimal())validation.propertiesr@   r   r+   r	   r   popr   r&   r%   tuple)	r   r:   r@   r   r
   resultr7   r5   counter_styles	            r   check_counterrL   Y   s   6H$$&I}}	!y>'	*	$y>'FMM!EzzW
MM%++}}
"q!;;("fll#'q)9(;< m$i }}oR %-00r   c                    t        |       }|j                  dk(  rn|j                         }t        |      dk(  ryt        |      dk(  r@|j	                  d      }d}|j
                  dk(  r|j                  |v rd|j                  fS y y y y )Ncontentr#   )	content()textr   )rP   beforeafterzfirst-lettermarkerr7   rO   )r   r	   r+   r   rH   r   lower_value)r   r   r
   r7   valuess        r   check_contentrV   ~   s    H}}	!((*	y>Q(^q MM!$EJFzzW$):):f)D#U%6%677 *E$ !	 "r   c                 b   t        |      }|j                         }|j                  | k(  rt        |      dv rw|j	                  d      }|j
                  dk7  ry |j                  }|r=|j	                  d      }|j
                  dk7  ry |j                  dvry |j                  }nd}|  d||ffS y y )NrB   r#   r7   )firststartlastzfirst-exceptrX   rF   )r   r+   r	   r   rH   r   r%   rT   )string_or_elementr   r   r
   custom_identr7   s         r   check_string_or_elementr]      s    H$$&I}}))c)n.F }}Q''#))MM!$EzzW$  (RR%%EE$%R(<*?@@! /G)r   c                 L   | j                   dk(  rt        d | j                  D              S t        |       }|j                  y |j                         }|j                  dk(  r1|d   }|j                   dk(  xr |j                  j                  d      S t        d |D              S )Nz() blockc              3   2   K   | ]  }t        |        y wN	check_var)r   items     r   r!   zcheck_var.<locals>.<genexpr>   s     =t9T?=   varr#   r7   z--c              3   2   K   | ]  }t        |        y wr`   ra   r   r   s     r   r!   zcheck_var.<locals>.<genexpr>   s     =xy"=rd   )r   r9   rN   r   r	   r   r%   
startswith)r   r   r
   r7   s       r   rb   rb      s    zzZ=u}}===H}}$$&I}}! zzW$E)?)?)EE=9===r   c                    t        |       t        u rt        d | D              S t        |       }|j                  x}y |j                  d      }|dk(  rt        |      dk(  S |dv rt        |      dk\  S |dk(  rt        |      dk(  S |d	k(  rdt        |      cxk  xr dk  S c S |d
v rt        |      dk(  S |dv rt        |      dk(  S |dv rt        |      dk(  S |dk(  rt        |      dk(  S |dk(  rt        |      dk(  S |dk(  rt        |      dk(  S |dk(  rt        |      dk\  S |dk(  rdt        |      cxk  xr dk  S c S |dk(  rt        |      dk(  S |dv rt        |      dk(  S |j                         }t        d |D              S )Nc              3   2   K   | ]  }t        |        y wr`   
check_mathr8   s     r   r!   zcheck_math.<locals>.<genexpr>   s     8:e$8rd   F)r(   calcr   )minmaxclamprD   round)modremr4   )sincostan)asinacosatanatan2powsqrthypotlogexp)abssignc              3   2   K   | ]  }t        |        y wr`   rk   rg   s     r   r!   zcheck_math.<locals>.<genexpr>   s     >z(#>rd   )r   rI   r9   r   r	   r+   r   r   )r   r   r	   r
   s       r   rl   rl      s   E{e8%888H&$$5$9Iv~9~""		9~""	9~""	C	N'a''''		9~""	&	&9~""	)	)9~""	9~""	9~""	9~""	9~""	C	N'a''''	9~""		 9~""$$&I>I>>>r   r`   )r/   r   r>   rL   rV   r]   rb   rl   r0   r   r   <module>r      s3    6 6r:8"1J
8A,>%?r   