
     h=                        d dl mZ dgZh dZd0dZd1dZd Zd	 Zd
 Zd Z	d Z
d1d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dS )2    )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-letterNFc              #     K   t          | t                    rt          |           } t          |           }|pi }	 t	          |||          V  n# t
          $ r}|rY d}~dS |d}~ww xY w	 |                                }|dS |dk    r0	 t	          |||          V  n6# t
          $ r}|s|Y d}~n#d}~ww xY w|st          |d|j         d          j)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          M/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cssselect2/parser.pyr   r      sQ      % 2*511F!rJVZ::::::    	FFFFFL{{}}<FS[[$$VZBBBBBB  $ $ $  $#O$ $ $ $ $$  L#D*J	*J*J*JKKKLs5   A 
A(A#!A##A(B 
B7)B22B7c                    |                                   |rJ|                                 }|dv r|j        }|                                  nd}|                                   t	          | |          \  }}	 |                                 }|                                 r*|                                 p|}|                                 *t          ||          }|rt          ||          }||S |                                 }||dk    r|S |dv r|j        }	|                                  n|rd}	n|S t	          | |          \  }
}t          ||	|
          })N)>+~ r   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   
&&((( -{{}}?""!%KKMMMM!$**,,,4VZHHFN@//11!!## 	H#3355GN !!## 	HFN33 	F'(:HEEH%O{{}}<43;;O_$$JKKMMMM 	JJO#:6:#N#N .!&*h??)@    c                 &   t          | |          }||ng }	 t          | |          \  }}||n|                    |           .|s||fdk    rt          |          |fS |                                 }|r|j        nd}t          |d|           )Nr   NNEOFz"expected a compound selector, got )parse_type_selectorparse_simple_selectorappendCompoundSelectorr/   r!   r   )r&   r#   type_selectorssimple_selectorssimple_selectorr9   r/   	peek_types           r(   r1   r1   S   s    (<<N)7)C~~1*?J+  + '%)@0001  BNN;|KK 011>AA;;==D!,		uI
N9NN
O
OOr>   c                     |                                   t          | |          }|d S g }|\  }}|"|                    t          |                     |"|                    t	          |                     |S N)r2   parse_qualified_namerD   LocalNameSelectorNamespaceSelector)r&   r#   qualified_namerG   	namespace
local_names         r(   rB   rB   e   s    
)&*==Nt*Iz 1* = =>>> 1) < <===r>   c                 &   |                                  }|dS |j        dk    r1|j        r*|                                  t	          |j                  d fS |dk    r^|                                  |                                 }||j        dk    rt          |d|           t          |j                  d fS |j        dk    r:|                                  t          t          |j
                  |          }|d fS |dk    r|                                  |                                 }|dk    r[|                                 }||j        dk    rt          |d|           |j        }|t          vrt          |d	|           d |fS |+|j        dk    r |j        }|d
v rd |fS t          |          d fS |@|j        dk    r5|j        }|dv rt          |||          d fS t!          ||j                  d fS t          |d| d          dS )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    
IDSelectorr0   r   ClassSelectorparse_attribute_selectorr   r   lower_valueSUPPORTED_PSEUDO_ELEMENTSPseudoClassSelector
lower_nameparse_logical_combinationFunctionalPseudoClassSelector	arguments)r&   r#   r/   r    attrr0   names          r(   rC   rC   t   s^   ;;==D|zyFt1$*%%t++	{{}}<49//&JD&J&JKKKTZ(($..	j	 	 'DL(A(A:NNTz	{{}}3;;;;==D|tyG33#GGGI I I$E555#MeMMO O O;$)w"6"6#DHHHTz!*400$66$)z"9"9?D4440z4HH$NN 2$GGO O  &AD&A&A&ABBBzr>   c                     d}d}|dk    rt           }n-|dk    rt          }n|dk    r
d}t          }n|dk    r	d}t          }d t	          | j        |||          D             } ||          S )NTFrX   rY   rZ   r[   c                      g | ]}|j         	|S rK   )r9   .0r;   s     r(   
<listcomp>z-parse_logical_combination.<locals>.<listcomp>   s+     , , ,"* 	***r>   )MatchesAnySelectorSpecificityAdjustmentSelectorNegationSelectorRelationalSelectorr   rf   )matches_any_tokenr#   rh   r$   r%   selector_class	selectorss          r(   rd   rd      s    IHt||+	6		)	+, ,):y(KK, , ,I >)$$$r>   c                    |                                   t          | |d          }|'|                                 }t          |d|           |\  }}|                                   |                                 }|d }d }n|dv rt|j        }|                                  |                                   |                                 }|	|j        dvr|dn|j        }	t          |d|	           |j        }nt          |d|           |                                   |                                 }|t          |d	|j                   t          ||||          S )
NT)is_attributezexpected attribute name, got )=z~=z|=z^=z$=z*=)rU   stringNonezexpected attribute value, got z*expected attribute selector operator, got zexpected ], got )r2   rL   r    r   r/   r0   r!   AttributeSelector)
r&   r#   rO   r    rP   rQ   r/   operatorr0   	next_types
             r(   r_   r_      s   
)
/ / /N{{}}D"H$"H"HIII*Iz
;;==D|	4	4	4:   {{}}<49,???"&,DIIByBBD D D
EtEEG G 	G ;;==DD"@TY"@"@AAAY
HeDDDr>   c                 h   |                                  }|dS |j        dk    r|                                 }|                                  }|dk    r*|rdn|                    dd          }||j        |j        ffS |                                  |                    |j                  }|t          |d|j                   n|dk    rw|                                 }|                                  }|dk    r2|rt          |d|j                   |                    dd          dfS |                                  d}n|dk    r|                                  d}ndS |                                 }|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".

    NrU   | zundefined namespace prefix: *zexpected local name, got )r/   r!   r    getr0   r`   r   )r&   r#   rv   r/   first_identrP   r    s          r(   rL   rL      s    ;;==D|tyGkkmm{{}}3;;*J
tT0J0JI{0+2IJJJNN;#455	B{/@BBD D D  
{{}}{{}}3;; C#AdiAAC C C>>$--t33					t ;;==DyG4:t'7888	\$D"Idi"I"IJJJr>   c                       e Zd ZdZdS )r   z3A specialized ``ValueError`` for invalid selectors.N)__name__
__module____qualname____doc__ r>   r(   r   r     s        ====r>   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	r   c                 <    t          |          | _        g | _        d S rK   )iterr&   peeked)selfr&   s     r(   __init__zTokenStream.__init__  s    6llr>   c                 l    | j         r| j                                         S t          | j        d           S rK   )r   popr    r&   r   s    r(   r    zTokenStream.next  s0    ; 	+;??$$$T***r>   c                     | j         s-| j                             t          | j        d                      | j         d         S )N)r   rD   r    r&   r   s    r(   r/   zTokenStream.peek  s:    { 	8KtDK66777{2r>   c                 z    d}	 |                                  }|	|j        |vrn|                                  d}7|S )NFr   T)r/   r!   r    )r   
skip_typesfoundr/   s       r(   skipzTokenStream.skip"  sK    	99;;D|ty
::IIKKKE	 r>   c                 .    |                      dg          S )N
whitespacer   r   s    r(   r2   zTokenStream.skip_whitespace,  s    yy,(((r>   c                 .    |                      dg          S )Ncommentr   r   s    r(   r3   zTokenStream.skip_comment/  s    yy)%%%r>   c                 0    |                      ddg          S )Nr   r   r   r   s    r(   r.   z'TokenStream.skip_whitespace_and_comment2  s    yy)\2333r>   N)
r   r   r   r   r    r/   r   r2   r3   r.   r   r>   r(   r   r     s}          + + +  
  ) ) )& & &4 4 4 4 4r>   r   c                       e Zd ZddZd ZdS )r4   Nc                 r    || _         || _        ||j        | _        d S |j        \  }}}|||dz   f| _        d S )Nr   )parsed_treer9   specificity)r   treer9   abcs         r(   r   zSelector.__init__7  sO    ,!#/D&GAq! !QU{Dr>   c                 >    | j         r
d| j          nd}| j        | S )Nz::r   )r9   r   )r   pseudos     r(   __repr__zSelector.__repr__A  s4    /3/BJ+d)+++".f...r>   rK   )r   r   r   r   r   r   r>   r(   r4   r4   6  s7        + + + +/ / / / /r>   r4   c                   F    e Zd Zd Zed             Zed             Zd ZdS )r5   c                 "    || _         || _        d S rK   r<   r;   )r   r<   r;   s      r(   r   zRelativeSelector.__init__G  s    $ r>   c                     | j         j        S rK   )r;   r   r   s    r(   r   zRelativeSelector.specificityK  s    }((r>   c                     | j         j        S rK   )r;   r9   r   s    r(   r9   zRelativeSelector.pseudo_elementO  s    }++r>   c                 J    | j         dk    r| j        n| j          d| j        S )Nr-   r   r   s    r(   r   zRelativeSelector.__repr__S  s3    $(Os$:$:t}  O77dm77	9r>   N)r   r   r   r   propertyr   r9   r   r   r>   r(   r5   r5   F  sh        ! ! ! ) ) X) , , X,9 9 9 9 9r>   r5   c                   0    e Zd Zd Zed             Zd ZdS )r6   c                 0    || _         || _        || _        d S rK   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 rK   )r   r   r   )r   a1b1c1a2b2c2s          r(   r   zCombinedSelector.specificityb  s;    Y*
BZ+
BBwRb((r>   c                 0    | j         | j         | j        S rK   r   r   s    r(   r   zCombinedSelector.__repr__h  s    )>t>
>>>r>   Nr   r   r   r   r   r   r   r   r>   r(   r6   r6   Y  sM           ) ) X)
? ? ? ? ?r>   r6   c                   0    e Zd Zd Zed             Zd ZdS )rE   c                     || _         d S rK   )rG   )r   rG   s     r(   r   zCompoundSelector.__init__m  s     0r>   c           	          | j         r8t          t          t          t	          d | j         D                                  S dS )Nc              3   $   K   | ]}|j         V  d S rK   r   rl   sels     r(   	<genexpr>z/CompoundSelector.specificity.<locals>.<genexpr>v  s$      CCc#/CCCCCCr>   r   r   r   )rG   tuplemapsumzipr   s    r(   r   zCompoundSelector.specificityp  sW      	 S#CCT-BCCC#E F F G G G 7r>   c                 \    d                     t          t          | j                            S )Nr   )joinr   reprrG   r   s    r(   r   zCompoundSelector.__repr__z  s!    wws4!677888r>   Nr   r   r>   r(   rE   rE   l  sM        1 1 1   X9 9 9 9 9r>   rE   c                       e Zd ZdZd Zd ZdS )rM   )r   r   r   c                 $    |\  | _         | _        d S rK   )rQ   lower_local_name)r   rQ   s     r(   r   zLocalNameSelector.__init__  s    1;....r>   c                     | j         S rK   )rQ   r   s    r(   r   zLocalNameSelector.__repr__  s
    r>   Nr   r   r   r   r   r   r   r>   r(   rM   rM   ~  s7        K< < <    r>   rM   c                       e Zd ZdZd Zd ZdS )rN   r   c                     || _         d S rK   rP   r   rP   s     r(   r   zNamespaceSelector.__init__  s     #r>   c                 2    | j         dk    rdS d| j          dS )Nr   r~   {z}|r   r   s    r(   r   zNamespaceSelector.__repr__  s'    >R3+++++r>   Nr   r   r>   r(   rN   rN     s7        K# # #
, , , , ,r>   rN   c                       e Zd ZdZd Zd ZdS )r]   )r   r   r   c                     || _         d S rK   rU   )r   rU   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]     s7        K           r>   r]   c                       e Zd ZdZd Zd ZdS )r^   r   r   r   c                     || _         d S rK   
class_name)r   r   s     r(   r   zClassSelector.__init__  s    $r>   c                     d| j          S )NrT   r   r   s    r(   r   zClassSelector.__repr__  s    $4?$$$r>   Nr   r   r>   r(   r^   r^     s7        K% % %% % % % %r>   r^   c                       e Zd ZdZd Zd ZdS )rz   r   c                 N    || _         |\  | _        | _        || _        || _        d S rK   )rP   rh   rc   r{   r0   )r   rP   rh   r{   r0   s        r(   r   zAttributeSelector.__init__  s)    "%)"	4? 


r>   c                 `    | j         dn
d| j          d}d| | j         | j         | j        dS )Nz*|r   }[])rP   rh   r{   r0   r   s     r(   r   zAttributeSelector.__repr__  sF     N2DD8OT^8O8O8O	G9GdiGG
GGGGr>   Nr   r   r>   r(   rz   rz     s<        K  H H H H Hr>   rz   c                       e Zd ZdZd Zd ZdS )rb   r   c                     || _         d S rK   rh   )r   rh   s     r(   r   zPseudoClassSelector.__init__  s    			r>   c                     d| j         z   S NrV   r   r   s    r(   r   zPseudoClassSelector.__repr__  s    TYr>   Nr   r   r>   r(   rb   rb     s7        K      r>   rb   c                       e Zd ZdZd Zd ZdS )re   r   c                 "    || _         || _        d S rK   )rh   rf   )r   rh   rf   s      r(   r   z&FunctionalPseudoClassSelector.__init__  s    	"r>   c                 >    d| j          t          | j                  S r   )rh   r   rf   r   s    r(   r   z&FunctionalPseudoClassSelector.__repr__  s!    7497eDN33777r>   Nr   r   r>   r(   re   re     s7        K# # #8 8 8 8 8r>   re   c                   0    e Zd Zd Zed             Zd ZdS )rp   c                     || _         d S rK   selector_listr   r   s     r(   r   zNegationSelector.__init__      *r>   c                 P    | j         rt          d | j         D                       S dS )Nc              3   $   K   | ]}|j         V  d S rK   r   rk   s     r(   r   z/NegationSelector.specificity.<locals>.<genexpr>  %      OOx+OOOOOOr>   r   r   maxr   s    r(   r   zNegationSelector.specificity  2     	OOD<NOOOOOO9r>   c                 R    dd                     d | j        D                        dS )Nz:not(, c              3   4   K   | ]}t          |          V  d S rK   r   r   s     r(   r   z,NegationSelector.__repr__.<locals>.<genexpr>  (       I Isc I I I I I Ir>   )r   r   r   s    r(   r   zNegationSelector.__repr__  1    Ltyy I Id6H I I IIILLLLr>   Nr   r   r>   r(   rp   rp     R        + + +   XM M M M Mr>   rp   c                   0    e Zd Zd Zed             Zd ZdS )rq   c                     || _         d S rK   r   r   s     r(   r   zRelationalSelector.__init__  r   r>   c                 P    | j         rt          d | j         D                       S dS )Nc              3   $   K   | ]}|j         V  d S rK   r   rk   s     r(   r   z1RelationalSelector.specificity.<locals>.<genexpr>  r   r>   r   r   r   s    r(   r   zRelationalSelector.specificity  r   r>   c                 R    dd                     d | j        D                        dS )Nz:has(r   c              3   4   K   | ]}t          |          V  d S rK   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(   rq   rq     r  r>   rq   c                   0    e Zd Zd Zed             Zd ZdS )rn   c                     || _         d S rK   r   r   s     r(   r   zMatchesAnySelector.__init__  r   r>   c                 P    | j         rt          d | j         D                       S dS )Nc              3   $   K   | ]}|j         V  d S rK   r   rk   s     r(   r   z1MatchesAnySelector.specificity.<locals>.<genexpr>  r   r>   r   r   r   s    r(   r   zMatchesAnySelector.specificity  r   r>   c                 R    dd                     d | j        D                        dS )Nz:is(r   c              3   4   K   | ]}t          |          V  d S rK   r  r   s     r(   r   z.MatchesAnySelector.__repr__.<locals>.<genexpr>  s(      HHcS		HHHHHHr>   r  r  r   s    r(   r   zMatchesAnySelector.__repr__  s1    KdiiHHT5GHHHHHKKKKr>   Nr   r   r>   r(   rn   rn     sR        + + +   XL L L L Lr>   rn   c                   0    e Zd Zd Zed             Zd ZdS )ro   c                     || _         d S rK   r   r   s     r(   r   z&SpecificityAdjustmentSelector.__init__  r   r>   c                     dS )Nr   r   r   s    r(   r   z)SpecificityAdjustmentSelector.specificity  s    yr>   c                 R    dd                     d | j        D                        dS )Nz:where(r   c              3   4   K   | ]}t          |          V  d S rK   r  r   s     r(   r   z9SpecificityAdjustmentSelector.__repr__.<locals>.<genexpr>  s(      "K"K499"K"K"K"K"K"Kr>   r  r  r   s    r(   r   z&SpecificityAdjustmentSelector.__repr__  s1    N"K"K8J"K"K"KKKNNNNr>   Nr   r   r>   r(   ro   ro     sR        + + +   XO O O O Or>   ro   )NFF)F)tinycss2r   __all__ra   r   r   r1   rB   rC   rd   r_   rL   
ValueErrorr   r   r4   r5   r6   rE   rM   rN   r]   r^   rz   rb   re   rp   rq   rn   ro   r   r>   r(   <module>r     s   / / / / / /)	 	 	 L L L L@@ @ @ @DP P P$  . . .b% % %* E  E  EF.K .K .K .Kb> > > > >J > > >!4 !4 !4 !4 !4 !4 !4 !4H/ / / / / / / / 9 9 9 9 9 9 9 9&? ? ? ? ? ? ? ?&9 9 9 9 9 9 9 9$       , , , , , , , ,               % % % % % % % %H H H H H H H H        8 8 8 8 8 8 8 8M M M M M M M MM M M M M M M ML L L L L L L L	O 	O 	O 	O 	O 	O 	O 	O 	O 	Or>   