
    Owg=                        d dl mZ dgZh dZd/dZd0dZd Zd Zd	 Zd
 Z	d Z
d0dZ G d de      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d       Z G d! d"      Z G d# d$      Z G d% d&      Z G d' d(      Z G d) d*      Z G d+ d,      Z G d- d.      Zy)1    )parse_component_value_listparse>   target-textfootnote-callgrammar-errorspelling-errorfootnote-markerfile-selector-buttonafterbeforemarkerprefixshadowcontentpostfix	selectionplaceholder
first-linefirst-letterNc              #   x  K   t        | t              rt        |       } t        |       }|xs i }	 t	        |||       	 |j                         }|y|dk(  r	 t	        |||       n|st        |d|j                   d      F# t
        $ r}|rY d}~y|d}~ww xY w# t
        $ r}|s|Y d}~-d}~ww xY ww)zYield tinycss2 selectors found in given ``input``.

    :param input:
        A string, or an iterable of tinycss2 component values.

    N,unexpected  token.)
isinstancestrr   TokenStreamparse_selectorSelectorErrornexttype)input
namespaces	forgivingrelativetokens	exceptionr   s          H/var/www/horilla/myenv/lib/python3.12/site-packages/cssselect2/parser.pyr   r      s      %*51F!rJVZ::
 {{}<S[$$VZBB
 #DK		{'*JKK 	   ! $ #O !$s]   -B:B B:B  (B:	BBB:BBB: 	B7)B2-B:2B77B:c                 N   | j                          |rC| j                         }|dv r|j                  }| j                          nd}| j                          t	        | |      \  }}	 | j                         }| j                         r%| j                         xs |}| j                         r%t        ||      }|rt        |      }||S | j                         }||dk(  r|S |dv r|j                  }	| j                          n|rd}	n|S t	        | |      \  }
}t        ||	|
      })N)>+~ r   )
skip_whitespace_and_commentpeekvaluer   parse_compound_selectorskip_whitespaceskip_commentSelectorRelativeSelectorCombinedSelector)r%   r"   r$   r.   initial_combinatorresultpseudo_elementhas_whitespaceselector
combinatorcompounds              r'   r   r   1   s%   
&&({{}?"!%KKM!$**,4VZHFN
//1!!##335GN !!#FN3'(:HEH%O{{}<43;O_$JKKMJO#:6:#N .!&*h?)     c                     t        | |      }||ng }	 t        | |      \  }}||n|j                  |       &|s||fdk7  rt        |      |fS | j	                         }|r|j
                  nd}t        |d|       )NNNEOFz"expected a compound selector, got )parse_type_selectorparse_simple_selectorappendCompoundSelectorr.   r    r   )r%   r"   type_selectorssimple_selectorssimple_selectorr8   r.   	peek_types           r'   r0   r0   S   s    (<N)7)C~
*?J+ '%)@0  NN;|K 01>AA;;=D!		uI
 B9+N
OOr=   c                     | j                          t        | |      }|y g }|\  }}||j                  t        |             ||j                  t	        |             |S N)r1   parse_qualified_namerC   LocalNameSelectorNamespaceSelector)r%   r"   qualified_namerF   	namespace
local_names         r'   rA   rA   e   sm    
)&*=N*Iz 1* => 1) <=r=   c                    | j                         }|y|j                  dk(  r3|j                  r'| j                          t	        |j
                        d fS |dk(  rW| j                          | j                         }||j                  dk7  rt        |d|       t        |j
                        d fS |j                  dk(  r3| j                          t        t        |j                        |      }|d fS |dk(  r| j                          | j                         }|dk(  rW| j                         }||j                  dk7  rt        |d|       |j                  }|t        vrt        |d	|       d |fS |0|j                  dk(  r!|j                  }|d
v rd |fS t        |      d fS |F|j                  dk(  r7|j                  }|dv rt        |||      d fS t!        ||j"                        d fS t        |d| d      y)Nr?   hash.identzExpected a class name, got z[] block:z$Expected a pseudo-element name, got z)Expected a supported pseudo-element, got )r   r   r   r   function)iswherenothasr   r   )r.   r    is_identifierr   
IDSelectorr/   r   ClassSelectorparse_attribute_selectorr   r   lower_valueSUPPORTED_PSEUDO_ELEMENTSPseudoClassSelector
lower_nameparse_logical_combinationFunctionalPseudoClassSelector	arguments)r%   r"   r.   r   attrr/   names          r'   rB   rB   t   s   ;;=D|yyFt11$**%t++	{{}<499/(CD6&JKKTZZ($..	j	 'DLL(A:NTz	{{}3;;;=D|tyyG3#@GI I$$E55#EeWMO O;$))w"6##DHHTz!*40$66$))z"9??D440z4H$NN 2$GO O  D6&ABBr=   c                     d}d}|dk(  rt         }n'|dk(  rt        }n|dk(  r	d}t        }n|dk(  rd}t        }t	        | j
                  |||      D cg c]  }|j                  | }} |      S c c}w )NTFrW   rX   rY   rZ   )MatchesAnySelectorSpecificityAdjustmentSelectorNegationSelectorRelationalSelectorr   re   r8   )matches_any_tokenr"   rg   r#   r$   selector_classr:   	selectorss           r'   rc   rc      s    IHt|+	6		)	+ 	)):y(K,""* 	,I , )$$	,s   A1c                    | j                          t        | |d      }|| j                         }t        |d|       |\  }}| j                          | j	                         }|d }d }n|dv rx|j
                  }| j                          | j                          | j                         }||j                  dvr|dn|j                  }	t        |d|	       |j
                  }nt        |d|       | j                          | j                         }|t        |d	|j                         t        ||||      S )
NT)is_attributezexpected attribute name, got )=z~=z|=z^=z$=z*=)rT   stringNonezexpected attribute value, got z*expected attribute selector operator, got zexpected ], got )r1   rK   r   r   r.   r/   r    AttributeSelector)
r%   r"   rN   r   rO   rP   r.   operatorr/   	next_types
             r'   r^   r^      sQ   
)
/N{{}D$A$"HII*Iz
;;=D|	4	4:: {{}<499,??"&,DIII6ykBD D

>tfEG 	G ;;=DD$4TYYK"@AAY
HeDDr=   c                 @   | j                         }|y|j                  dk(  r| j                         }| j                         }|dk7  r0|rdn|j                  dd      }||j                  |j
                  ffS | j                          |j                  |j                        }|t        |d|j                         |dk(  rg| j                         }| j                         }|dk7  r/|rt        |d|j                         |j                  dd      dfS | j                          d}n|dk(  r| j                          d}ny| j                         }|j                  dk(  r||j                  |j
                  ffS |dk(  r|s|dfS t        |d|j                         )zReturn ``(namespace, local)`` for given tokens.

    Can also return ``None`` for a wildcard.

    The empty string for ``namespace`` means "no namespace".

    NrT   | zundefined namespace prefix: *zexpected local name, got )r.   r    r   getr/   r_   r   )r%   r"   rq   r.   first_identrO   r   s          r'   rK   rK      s    ;;=D|yyGkkm{{}3;*
tT0JI{00+2I2IJJJNN;#4#45	.{/@/@.ABD D 
{{}{{}3;#5dii[AC C>>$-t33			 ;;=DyyG4::t'7'7888	\$D$=dii["IJJr=   c                       e Zd ZdZy)r   z3A specialized ``ValueError`` for invalid selectors.N)__name__
__module____qualname____doc__ r=   r'   r   r     s    =r=   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	r   c                 2    t        |      | _        g | _        y rJ   )iterr%   peeked)selfr%   s     r'   __init__zTokenStream.__init__  s    6lr=   c                 z    | j                   r| j                   j                         S t        | j                  d       S rJ   )r   popr   r%   r   s    r'   r   zTokenStream.next  s+    ;;;;??$$T**r=   c                     | j                   s/| j                   j                  t        | j                  d              | j                   d   S )N)r   rC   r   r%   r   s    r'   r.   zTokenStream.peek  s4    {{KKtDKK67{{2r=   c                 t    d}	 | j                         }||j                  |vr	 |S | j                          d}6)NFT)r.   r    r   )r   
skip_typesfoundr.   s       r'   skipzTokenStream.skip"  sD    99;D|tyy
:  IIKE r=   c                 &    | j                  dg      S )N
whitespacer   r   s    r'   r1   zTokenStream.skip_whitespace,  s    yy,((r=   c                 &    | j                  dg      S )Ncommentr   r   s    r'   r2   zTokenStream.skip_comment/  s    yy)%%r=   c                 (    | j                  ddg      S )Nr   r   r   r   s    r'   r-   z'TokenStream.skip_whitespace_and_comment2  s    yy)\233r=   N)
r   r   r   r   r   r.   r   r1   r2   r-   r   r=   r'   r   r     s%    +
)&4r=   r   c                       e Zd ZddZd Zy)r3   Nc                     || _         || _        ||j                  | _        y |j                  \  }}}|||dz   f| _        y )N   )parsed_treer8   specificity)r   treer8   abcs         r'   r   zSelector.__init__7  sI    ,!#//D&&GAq! !QU{Dr=   c                 \    | j                   rd| j                    nd}| j                  | S )Nz::rz   )r8   r   )r   pseudos     r'   __repr__zSelector.__repr__A  s5    /3/B/B2d))*+""%fX..r=   rJ   )r   r   r   r   r   r   r=   r'   r3   r3   6  s    +/r=   r3   c                   8    e Zd Zd Zed        Zed        Zd Zy)r4   c                      || _         || _        y rJ   r;   r:   )r   r;   r:   s      r'   r   zRelativeSelector.__init__G  s    $ r=   c                 .    | j                   j                  S rJ   )r:   r   r   s    r'   r   zRelativeSelector.specificityK  s    }}(((r=   c                 .    | j                   j                  S rJ   )r:   r8   r   s    r'   r8   zRelativeSelector.pseudo_elementO  s    }}+++r=   c                 p    | j                   dk(  r| j                  S | j                    d| j                  S )Nr,   r   r   s    r'   r   zRelativeSelector.__repr__S  s9    $(OOs$:t}}	9OO$Admm%67	9r=   N)r   r   r   r   propertyr   r8   r   r   r=   r'   r4   r4   F  s4    ! ) ) , ,9r=   r4   c                   (    e Zd Zd Zed        Zd Zy)r5   c                 .    || _         || _        || _        y rJ   leftr;   right)r   r   r;   r   s       r'   r   zCombinedSelector.__init__Z  s    	$
r=   c                     | j                   j                  \  }}}| j                  j                  \  }}}||z   ||z   ||z   fS rJ   )r   r   r   )r   a1b1c1a2b2c2s          r'   r   zCombinedSelector.specificityb  sE    YY**
BZZ++
BBwRb((r=   c                 N    | j                   | j                   | j                  S rJ   r   r   s    r'   r   zCombinedSelector.__repr__h  s"    ))t/

~>>r=   Nr   r   r   r   r   r   r   r   r=   r'   r5   r5   Y  s      ) )
?r=   r5   c                   (    e Zd Zd Zed        Zd Zy)rD   c                     || _         y rJ   )rF   )r   rF   s     r'   r   zCompoundSelector.__init__m  s
     0r=   c           	      |    | j                   r0t        t        t        t	        d | j                   D                     S y)Nc              3   4   K   | ]  }|j                     y wrJ   r   .0sels     r'   	<genexpr>z/CompoundSelector.specificity.<locals>.<genexpr>v  s     Cc#//C   r   r   r   )rF   tuplemapsumzipr   s    r'   r   zCompoundSelector.specificityp  sA       S#CT-B-BC#E F G G r=   c                 T    dj                  t        t        | j                              S )Nrz   )joinr   reprrF   r   s    r'   r   zCompoundSelector.__repr__z  s    wws4!6!6788r=   Nr   r   r=   r'   rD   rD   l  s     1  9r=   rD   c                       e Zd ZdZd Zd Zy)rL   )r   r   r   c                 "    |\  | _         | _        y rJ   )rP   lower_local_name)r   rP   s     r'   r   zLocalNameSelector.__init__  s    1;..r=   c                     | j                   S rJ   )rP   r   s    r'   r   zLocalNameSelector.__repr__  s    r=   Nr   r   r   r   r   r   r   r=   r'   rL   rL   ~  s    K<r=   rL   c                       e Zd ZdZd Zd Zy)rM   r   c                     || _         y rJ   rO   r   rO   s     r'   r   zNamespaceSelector.__init__  s     #r=   c                 B    | j                   dk(  ryd| j                    dS )Nrz   ry   {z}|r   r   s    r'   r   zNamespaceSelector.__repr__  s%    >>R's++r=   Nr   r   r=   r'   rM   rM     s    K#
,r=   rM   c                       e Zd ZdZd Zd Zy)r\   )r   r   r   c                     || _         y rJ   rT   )r   rT   s     r'   r   zIDSelector.__init__  s	    
r=   c                      d| j                    S )N#r   r   s    r'   r   zIDSelector.__repr__  s    4::,r=   Nr   r   r=   r'   r\   r\     s    K r=   r\   c                       e Zd ZdZd Zd Zy)r]   r   r   r   c                     || _         y rJ   
class_name)r   r   s     r'   r   zClassSelector.__init__  s	    $r=   c                      d| j                    S )NrS   r   r   s    r'   r   zClassSelector.__repr__  s    4??#$$r=   Nr   r   r=   r'   r]   r]     s    K%%r=   r]   c                       e Zd ZdZd Zd Zy)ru   r   c                 L    || _         |\  | _        | _        || _        || _        y rJ   )rO   rg   rb   rv   r/   )r   rO   rg   rv   r/   s        r'   r   zAttributeSelector.__init__  s%    "%)"	4? 
r=   c                     | j                   dnd| j                    d}d| | j                   | j                   | j                  dS )Nz*|r   }[])rO   rg   rv   r/   r   s     r'   r   zAttributeSelector.__repr__  sG     NN2D"T^^<LB8O	9+dii[

~QGGr=   Nr   r   r=   r'   ru   ru     s    KHr=   ru   c                       e Zd ZdZd Zd Zy)ra   r   c                     || _         y rJ   rg   )r   rg   s     r'   r   zPseudoClassSelector.__init__  s	    	r=   c                      d| j                   z   S NrU   r   r   s    r'   r   zPseudoClassSelector.__repr__  s    TYYr=   Nr   r   r=   r'   ra   ra     s    Kr=   ra   c                       e Zd ZdZd Zd Zy)rd   r   c                      || _         || _        y rJ   )rg   re   )r   rg   re   s      r'   r   z&FunctionalPseudoClassSelector.__init__  s    	"r=   c                 J    d| j                    t        | j                        S r   )rg   r   re   r   s    r'   r   z&FunctionalPseudoClassSelector.__repr__  s!    499+eDNN3677r=   Nr   r   r=   r'   rd   rd     s    K#8r=   rd   c                   (    e Zd Zd Zed        Zd Zy)rk   c                     || _         y rJ   selector_listr   r   s     r'   r   zNegationSelector.__init__  
    *r=   c                 T    | j                   rt        d | j                   D              S y)Nc              3   4   K   | ]  }|j                     y wrJ   r   r   r:   s     r'   r   z/NegationSelector.specificity.<locals>.<genexpr>       Ox++Or   r   r   maxr   s    r'   r   zNegationSelector.specificity  %    OD<N<NOOOr=   c                 N    ddj                  d | j                  D               dS )Nz:not(, c              3   2   K   | ]  }t        |        y wrJ   r   r   s     r'   r   z,NegationSelector.__repr__.<locals>.<genexpr>        Isc I   )r   r   r   s    r'   r   zNegationSelector.__repr__  '    tyy Id6H6H IIJ!LLr=   Nr   r   r=   r'   rk   rk     !    +  Mr=   rk   c                   (    e Zd Zd Zed        Zd Zy)rl   c                     || _         y rJ   r   r   s     r'   r   zRelationalSelector.__init__  r   r=   c                 T    | j                   rt        d | j                   D              S y)Nc              3   4   K   | ]  }|j                     y wrJ   r   r   s     r'   r   z1RelationalSelector.specificity.<locals>.<genexpr>  r   r   r   r   r   s    r'   r   zRelationalSelector.specificity  r   r=   c                 N    ddj                  d | j                  D               dS )Nz:has(r   c              3   2   K   | ]  }t        |        y wrJ   r   r   s     r'   r   z.RelationalSelector.__repr__.<locals>.<genexpr>  r  r  r  r  r   s    r'   r   zRelationalSelector.__repr__  r  r=   Nr   r   r=   r'   rl   rl     r  r=   rl   c                   (    e Zd Zd Zed        Zd Zy)ri   c                     || _         y rJ   r   r   s     r'   r   zMatchesAnySelector.__init__  r   r=   c                 T    | j                   rt        d | j                   D              S y)Nc              3   4   K   | ]  }|j                     y wrJ   r   r   s     r'   r   z1MatchesAnySelector.specificity.<locals>.<genexpr>  r   r   r   r   r   s    r'   r   zMatchesAnySelector.specificity  r   r=   c                 N    ddj                  d | j                  D               dS )Nz:is(r   c              3   2   K   | ]  }t        |        y wrJ   r   r   s     r'   r   z.MatchesAnySelector.__repr__.<locals>.<genexpr>  s     HcS	Hr  r  r  r   s    r'   r   zMatchesAnySelector.__repr__  s'    diiHT5G5GHHIKKr=   Nr   r   r=   r'   ri   ri     s!    +  Lr=   ri   c                   (    e Zd Zd Zed        Zd Zy)rj   c                     || _         y rJ   r   r   s     r'   r   z&SpecificityAdjustmentSelector.__init__  r   r=   c                      y)Nr   r   r   s    r'   r   z)SpecificityAdjustmentSelector.specificity  s    r=   c                 N    ddj                  d | j                  D               dS )Nz:where(r   c              3   2   K   | ]  }t        |        y wrJ   r   r   s     r'   r   z9SpecificityAdjustmentSelector.__repr__.<locals>.<genexpr>  s     "K49"Kr  r  r  r   s    r'   r   z&SpecificityAdjustmentSelector.__repr__  s'    "K8J8J"KKLANNr=   Nr   r   r=   r'   rj   rj     s!    +  Or=   rj   )NFF)F)tinycss2r   __all__r`   r   r   r0   rA   rB   rc   r^   rK   
ValueErrorr   r   r3   r4   r5   rD   rL   rM   r\   r]   ru   ra   rd   rk   rl   ri   rj   r   r=   r'   <module>r     s    /)	 L@@DP$.b%* EF.Kb>J >!4 !4H/ / 9 9&? ?&9 9$ , ,   % %H H  8 8M MM ML L	O 	Or=   