a
    ¥Q•h�?  ã                   @   sT  d dl mZ dgZh d£Zd7dd„Zd8dd„Zd	d
„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
d9dd„ZG dd„ deƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd „ d ƒZG d!d"„ d"ƒZG d#d$„ d$ƒZG d%d&„ d&ƒZG d'd(„ d(ƒZG d)d*„ d*ƒZG d+d,„ d,ƒZG d-d.„ d.ƒZG d/d0„ d0ƒZG d1d2„ d2ƒZG d3d4„ d4ƒZG d5d6„ d6ƒZdS ):é    )Úparse_component_value_listÚparse>   Úpostfixztarget-textzfootnote-callÚafterzfootnote-markerúfirst-letterÚplaceholderÚcontentzspelling-errorú
first-linezfile-selector-buttonZshadowÚprefixÚbeforezgrammar-errorÚmarkerZ	selectionNFc              
   c   sì   t | tƒrt| ƒ} t| ƒ}|p i }zt|||ƒV  W n: tyn } z"|rVW Y d}~dS |‚W Y d}~n
d}~0 0 | ¡ }|du r„dS |dkrÎzt|||ƒV  W qæ tyÊ } z|s¶|‚W Y d}~qæd}~0 0 qp|spt|d|j› d�ƒ‚qpdS )zŠYield 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   © r   úJ/var/www/sistema_ama/venv/lib/python3.9/site-packages/cssselect2/parser.pyr      s*    
c                 C   sê   |   ¡  |r8|  ¡ }|dv r,|j}|  ¡  nd}|   ¡  t| |ƒ\}}|  ¡ }|  ¡ rd|  ¡ p`|}qNt||ƒ}|r|t||ƒ}|d urˆ|S |  ¡ }|d u s |dkr¤|S |dv r¼|j}	|  ¡  n|rÆd}	n|S t| |ƒ\}
}t	||	|
ƒ}qFd S )N)ú>ú+ú~ú r   )
Úskip_whitespace_and_commentÚpeekÚvaluer   Úparse_compound_selectorÚskip_whitespaceÚskip_commentÚSelectorÚRelativeSelectorÚCombinedSelector)r   r   r   r$   Zinitial_combinatorÚresultÚpseudo_elementZhas_whitespaceÚselectorÚ
combinatorZcompoundr   r   r   r   1   s8    



r   c                 C   sŒ   t | |ƒ}|d ur|ng }t| |ƒ\}}|d usF|d u r:qF| |¡ q|sV||fdkrbt|ƒ|fS |  ¡ }|rt|jnd}t|d|› �ƒ‚d S )N©NNÚEOFz"expected a compound selector, got )Úparse_type_selectorÚparse_simple_selectorÚappendÚCompoundSelectorr$   r   r   )r   r   Ztype_selectorsÚsimple_selectorsÚsimple_selectorr-   r$   Z	peek_typer   r   r   r&   S   s    
ÿr&   c                 C   sZ   |   ¡  t| |ƒ}|d u rd S g }|\}}|d ur@| t|ƒ¡ |d urV| t|ƒ¡ |S ©N)r'   Úparse_qualified_namer4   ÚLocalNameSelectorÚNamespaceSelector)r   r   Úqualified_namer6   Ú	namespaceÚ
local_namer   r   r   r2   e   s    
r2   c                 C   sÄ  |   ¡ }|d u rdS |jdkr:|jr:|  ¡  t|jƒd fS |dkr‚|  ¡  |  ¡ }|d u sd|jdkrtt|d|› �ƒ‚t|jƒd fS |jdkr¬|  ¡  tt	|j
ƒ|ƒ}|d fS |dk�r¼|  ¡  |  ¡ }|dk�r$|  ¡ }|d u sì|jdk� rüt|d|› �ƒ‚|j}|tv�rt|d	|› �ƒ‚d |fS |d u�r`|jdk�r`|j}|d
v �rRd |fS t|ƒd fS nZ|d u�r¨|jdk�r¨|j}|dv �r–t|||ƒd fS t||jƒd fS nt|d|› d�ƒ‚ndS d S )Nr0   Ú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%   Únamer   r   r   r3   t   sR    




ÿ

r3   c                 C   sh   d}d}|dkrt }n0|dkr$t}n"|dkr6d}t}n|dkrFd}t}dd„ t| j|||ƒD ƒ}||ƒS )	NTFrD   rE   rF   rG   c                 S   s   g | ]}|j d u r|‘qS r8   )r-   ©Ú.0r.   r   r   r   Ú
<listcomp>±   s   
þz-parse_logical_combination.<locals>.<listcomp>)ÚMatchesAnySelectorÚSpecificityAdjustmentSelectorÚNegationSelectorÚRelationalSelectorr   rR   )Zmatches_any_tokenr   rT   r   r   Zselector_classÚ	selectorsr   r   r   rP   £   s     þrP   c                 C   sV  |   ¡  t| |dd�}|d u r6|  ¡ }t|d|› �ƒ‚|\}}|   ¡  |  ¡ }|d u r`d }d }nr|dv rÂ|j}|  ¡  |   ¡  |  ¡ }|d u s˜|jdvrº|d u r¤dn|j}	t|d|	› �ƒ‚|j}nt|d|› �ƒ‚|   ¡  |  ¡ }d }
|d u�rF|jd	k�r|j ¡ d
k�rd}
n4|jd	k�r4|j ¡ dk�r4d}
nt|d|j› �ƒ‚t|||||
ƒS )NT)Úis_attributezexpected attribute name, got )ú=z~=z|=z^=z$=z*=)rA   ÚstringÚNonezexpected attribute value, got z*expected attribute selector operator, got rA   ÚiFÚszexpected ], got )	r'   r9   r   r   r$   r%   r   ÚlowerÚAttributeSelector)r   r   r<   r   r=   r>   r$   Úoperatorr%   Z	next_typeÚcase_sensitiver   r   r   rK   ¸   s>    
rK   c                 C   sJ  |   ¡ }|du rdS |jdkrŠ|  ¡ }|   ¡ }|dkrZ|r>dn
| dd¡}||j|jffS |  ¡  | |j¡}|du røt|d|j› �ƒ‚nn|dkrÞ|  ¡ }|   ¡ }|dkrÐ|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�r4|�s4|dfS t|d|j› �ƒ‚dS )z¡Return ``(namespace, local)`` for given tokens.

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

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

    NrA   ú|Ú zundefined namespace prefix: Ú*zexpected local name, got )r$   r   r   Úgetr%   rL   r   )r   r   r]   r$   Zfirst_identr=   r   r   r   r   r9   Þ   sD    
ÿr9   c                   @   s   e Zd ZdZdS )r   z3A specialized ``ValueError`` for invalid selectors.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r     s   r   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )r   c                 C   s   t |ƒ| _g | _d S r8   )Úiterr   Úpeeked)Úselfr   r   r   r   Ú__init__  s    
zTokenStream.__init__c                 C   s    | j r| j  ¡ S t| jd ƒS d S r8   )rp   Úpopr   r   ©rq   r   r   r   r     s    
zTokenStream.nextc                 C   s$   | j s| j  t| jd ƒ¡ | j d S )Néÿÿÿÿ)rp   r4   r   r   rt   r   r   r   r$     s    zTokenStream.peekc                 C   s2   d}|   ¡ }|d u s.|j|vr q.|  ¡  d}q|S )NFT)r$   r   r   )rq   Z
skip_typesÚfoundr$   r   r   r   Úskip!  s    zTokenStream.skipc                 C   s   |   dg¡S )NÚ
whitespace©rw   rt   r   r   r   r'   +  s    zTokenStream.skip_whitespacec                 C   s   |   dg¡S )NÚcommentry   rt   r   r   r   r(   .  s    zTokenStream.skip_commentc                 C   s   |   ddg¡S )Nrz   rx   ry   rt   r   r   r   r#   1  s    z'TokenStream.skip_whitespace_and_commentN)
rk   rl   rm   rr   r   r$   rw   r'   r(   r#   r   r   r   r   r     s   
r   c                   @   s   e Zd Zddd„Zdd„ ZdS )r)   Nc                 C   s>   || _ || _|d u r|j| _n|j\}}}|||d f| _d S )Né   )Úparsed_treer-   Úspecificity)rq   Útreer-   ÚaÚbÚcr   r   r   rr   6  s    
zSelector.__init__c                 C   s$   | j rd| j › �nd}| j›|› �S )Nz::rh   )r-   r|   )rq   Úpseudor   r   r   Ú__repr__@  s    zSelector.__repr__)N)rk   rl   rm   rr   rƒ   r   r   r   r   r)   5  s   

r)   c                   @   s4   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zd	S )
r*   c                 C   s   || _ || _d S r8   ©r/   r.   )rq   r/   r.   r   r   r   rr   F  s    zRelativeSelector.__init__c                 C   s   | j jS r8   )r.   r}   rt   r   r   r   r}   J  s    zRelativeSelector.specificityc                 C   s   | j jS r8   )r.   r-   rt   r   r   r   r-   N  s    zRelativeSelector.pseudo_elementc                 C   s$   | j dkr| j›S | j › d| j›�S )Nr"   r„   rt   r   r   r   rƒ   R  s    þzRelativeSelector.__repr__N)rk   rl   rm   rr   Úpropertyr}   r-   rƒ   r   r   r   r   r*   E  s   

r*   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )r+   c                 C   s   || _ || _|| _d S r8   ©Úleftr/   Úright)rq   r‡   r/   rˆ   r   r   r   rr   Y  s    zCombinedSelector.__init__c                 C   s2   | j j\}}}| jj\}}}|| || || fS r8   )r‡   r}   rˆ   )rq   Úa1Úb1Úc1Úa2Úb2Úc2r   r   r   r}   a  s    zCombinedSelector.specificityc                 C   s   | j ›| j› | j›�S r8   r†   rt   r   r   r   rƒ   g  s    zCombinedSelector.__repr__N©rk   rl   rm   rr   r…   r}   rƒ   r   r   r   r   r+   X  s   
r+   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )r5   c                 C   s
   || _ d S r8   )r6   )rq   r6   r   r   r   rr   l  s    zCompoundSelector.__init__c                 C   s,   | j r$ttttdd„ | j D ƒŽ ƒƒS dS d S )Nc                 s   s   | ]}|j V  qd S r8   ©r}   ©rV   Úselr   r   r   Ú	<genexpr>u  ó    z/CompoundSelector.specificity.<locals>.<genexpr>©r   r   r   )r6   ÚtupleÚmapÚsumÚziprt   r   r   r   r}   o  s
    ÿzCompoundSelector.specificityc                 C   s   d  tt| jƒ¡S )Nrh   )Újoinr—   Úreprr6   rt   r   r   r   rƒ   y  s    zCompoundSelector.__repr__Nr�   r   r   r   r   r5   k  s   
	r5   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )r:   )r   r   r{   c                 C   s   |\| _ | _d S r8   )r>   Úlower_local_name)rq   r>   r   r   r   rr   €  s    zLocalNameSelector.__init__c                 C   s   | j S r8   )r>   rt   r   r   r   rƒ   ƒ  s    zLocalNameSelector.__repr__N©rk   rl   rm   r}   rr   rƒ   r   r   r   r   r:   }  s   r:   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )r;   r•   c                 C   s
   || _ d S r8   ©r=   )rq   r=   r   r   r   rr   Š  s    zNamespaceSelector.__init__c                 C   s   | j dkrdS d| j › d�S )Nrh   rg   Ú{z}|rž   rt   r   r   r   rƒ   �  s    zNamespaceSelector.__repr__Nr�   r   r   r   r   r;   ‡  s   r;   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )rI   )r{   r   r   c                 C   s
   || _ d S r8   ©rA   )rq   rA   r   r   r   rr   –  s    zIDSelector.__init__c                 C   s   d| j › �S )Nú#r    rt   r   r   r   rƒ   ™  s    zIDSelector.__repr__Nr�   r   r   r   r   rI   “  s   rI   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )rJ   ©r   r{   r   c                 C   s
   || _ d S r8   ©Ú
class_name)rq   r¤   r   r   r   rr      s    zClassSelector.__init__c                 C   s   d| j › �S )Nr@   r£   rt   r   r   r   rƒ   £  s    zClassSelector.__repr__Nr�   r   r   r   r   rJ   �  s   rJ   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )rd   r¢   c                 C   s(   || _ |\| _| _|| _|| _|| _d S r8   )r=   rT   rO   re   r%   rf   )rq   r=   rT   re   r%   rf   r   r   r   rr   ª  s
    zAttributeSelector.__init__c                 C   s`   | j d u rdnd| j › d�}| jd u r*dnd| jr6dnd› �}d|› | j› | j› | j›|› d	�S )
Nz*|rŸ   Ú}rh   r"   rb   ra   ú[ú])r=   rf   rT   re   r%   )rq   r=   rf   r   r   r   rƒ   µ  s    þÿÿzAttributeSelector.__repr__Nr�   r   r   r   r   rd   §  s   rd   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )rN   r¢   c                 C   s
   || _ d S r8   ©rT   )rq   rT   r   r   r   rr   Â  s    zPseudoClassSelector.__init__c                 C   s
   d| j  S ©NrB   r¨   rt   r   r   r   rƒ   Å  s    zPseudoClassSelector.__repr__Nr�   r   r   r   r   rN   ¿  s   rN   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )rQ   r¢   c                 C   s   || _ || _d S r8   )rT   rR   )rq   rT   rR   r   r   r   rr   Ì  s    z&FunctionalPseudoClassSelector.__init__c                 C   s   d| j › t| jƒ›�S r©   )rT   r–   rR   rt   r   r   r   rƒ   Ð  s    z&FunctionalPseudoClassSelector.__repr__Nr�   r   r   r   r   rQ   É  s   rQ   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )rZ   c                 C   s
   || _ d S r8   ©Úselector_list©rq   r«   r   r   r   rr   Õ  s    zNegationSelector.__init__c                 C   s"   | j rtdd„ | j D ƒƒS dS d S )Nc                 s   s   | ]}|j V  qd S r8   r�   rU   r   r   r   r“   Û  r”   z/NegationSelector.specificity.<locals>.<genexpr>r•   ©r«   Úmaxrt   r   r   r   r}   Ø  s    zNegationSelector.specificityc                 C   s   dd  dd„ | jD ƒ¡› d�S )Nz:not(ú, c                 s   s   | ]}t |ƒV  qd S r8   ©r›   r‘   r   r   r   r“   à  r”   z,NegationSelector.__repr__.<locals>.<genexpr>ú)©rš   r«   rt   r   r   r   rƒ   ß  s    zNegationSelector.__repr__Nr�   r   r   r   r   rZ   Ô  s   
rZ   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )r[   c                 C   s
   || _ d S r8   rª   r¬   r   r   r   rr   ä  s    zRelationalSelector.__init__c                 C   s"   | j rtdd„ | j D ƒƒS dS d S )Nc                 s   s   | ]}|j V  qd S r8   r�   rU   r   r   r   r“   ê  r”   z1RelationalSelector.specificity.<locals>.<genexpr>r•   r­   rt   r   r   r   r}   ç  s    zRelationalSelector.specificityc                 C   s   dd  dd„ | jD ƒ¡› d�S )Nz:has(r¯   c                 s   s   | ]}t |ƒV  qd S r8   r°   r‘   r   r   r   r“   ï  r”   z.RelationalSelector.__repr__.<locals>.<genexpr>r±   r²   rt   r   r   r   rƒ   î  s    zRelationalSelector.__repr__Nr�   r   r   r   r   r[   ã  s   
r[   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )rX   c                 C   s
   || _ d S r8   rª   r¬   r   r   r   rr   ó  s    zMatchesAnySelector.__init__c                 C   s"   | j rtdd„ | j D ƒƒS dS d S )Nc                 s   s   | ]}|j V  qd S r8   r�   rU   r   r   r   r“   ù  r”   z1MatchesAnySelector.specificity.<locals>.<genexpr>r•   r­   rt   r   r   r   r}   ö  s    zMatchesAnySelector.specificityc                 C   s   dd  dd„ | jD ƒ¡› d�S )Nz:is(r¯   c                 s   s   | ]}t |ƒV  qd S r8   r°   r‘   r   r   r   r“   þ  r”   z.MatchesAnySelector.__repr__.<locals>.<genexpr>r±   r²   rt   r   r   r   rƒ   ý  s    zMatchesAnySelector.__repr__Nr�   r   r   r   r   rX   ò  s   
rX   c                   @   s(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )rY   c                 C   s
   || _ d S r8   rª   r¬   r   r   r   rr     s    z&SpecificityAdjustmentSelector.__init__c                 C   s   dS )Nr•   r   rt   r   r   r   r}     s    z)SpecificityAdjustmentSelector.specificityc                 C   s   dd  dd„ | jD ƒ¡› d�S )Nz:where(r¯   c                 s   s   | ]}t |ƒV  qd S r8   r°   r‘   r   r   r   r“   
  r”   z9SpecificityAdjustmentSelector.__repr__.<locals>.<genexpr>r±   r²   rt   r   r   r   rƒ   	  s    z&SpecificityAdjustmentSelector.__repr__Nr�   r   r   r   r   rY     s   
rY   )NFF)F)F)Útinycss2r   Ú__all__rM   r   r   r&   r2   r3   rP   rK   r9   Ú
ValueErrorr   r   r)   r*   r+   r5   r:   r;   rI   rJ   rd   rN   rQ   rZ   r[   rX   rY   r   r   r   r   Ú<module>   s6   
 
"/&
/$



