o
    ½Ùøi�?  ã                   @   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
d8d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 )9é    )Ú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              
   c   sÞ   � t | tƒr
t| ƒ} t| ƒ}|pi }z	t|||ƒV  W n ty2 } z|r,W Y d}~dS |‚d}~ww 	 | ¡ }|du r>dS |dkrbz	t|||ƒV  W n" tya } z
|sW|‚W Y d}~nd}~ww |snt|d|j› d�ƒ‚q4)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&   ú^/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/cssselect2/parser.pyr      s:   €
€ýÿ€ÿôc                 C   sî   |   ¡  |r|  ¡ }|dv r|j}|  ¡  nd}|   ¡  t| |ƒ\}}	 |  ¡ }|  ¡ r6|  ¡ p1|}|  ¡ s,t||ƒ}|rBt||ƒ}|d urH|S |  ¡ }|d u sT|dkrV|S |dv rb|j}	|  ¡  n|rgd}	n|S t| |ƒ\}
}t	||	|
ƒ}q$)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Úcompoundr&   r&   r'   r   1   s>   
ÿ


ìr   c                 C   sŠ   t | |ƒ}|d ur|ng }	 t| |ƒ\}}|d us|d u rn| |¡ q|s,||fdkr2t|ƒ|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_selectorr7   r-   Ú	peek_typer&   r&   r'   r/   S   s   
ÿ
ûr/   c                 C   sZ   |   ¡  t| |ƒ}|d u rd S g }|\}}|d ur | t|ƒ¡ |d ur+| t|ƒ¡ |S ©N)r0   Úparse_qualified_namer@   ÚLocalNameSelectorÚNamespaceSelector)r$   r!   Úqualified_namerC   Ú	namespaceÚ
local_namer&   r&   r'   r>   e   s   
r>   c                 C   s¦  |   ¡ }|d u r
dS |jdkr|jr|  ¡  t|jƒd fS |dkrA|  ¡  |  ¡ }|d u s2|jdkr:t|d|› �ƒ‚t|jƒd fS |jdkrV|  ¡  tt	|j
ƒ|ƒ}|d fS |dkrÑ|  ¡  |  ¡ }|dkrŽ|  ¡ }|d u ss|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 r¢d |fS t|ƒd fS |d urÈ|jdkrÈ|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   Ú
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'   r?   t   sR   

ÿr?   c                 C   sh   d}d}|dkrt }n|dkrt}n|dkrd}t}n|dkr#d}t}dd„ t| j|||ƒD ƒ}||ƒS )	NTFrR   rS   rT   rU   c                 S   s   g | ]	}|j d u r|‘qS rF   )r7   ©Ú.0r9   r&   r&   r'   Ú
<listcomp>±   s
    
þz-parse_logical_combination.<locals>.<listcomp>)ÚMatchesAnySelectorÚSpecificityAdjustmentSelectorÚNegationSelectorÚRelationalSelectorr   r`   )Úmatches_any_tokenr!   rb   r"   r#   Úselector_classÚ	selectorsr&   r&   r'   r^   £   s    þr^   c                 C   sL  |   ¡  t| |dd�}|d u r|  ¡ }t|d|› �ƒ‚|\}}|   ¡  |  ¡ }|d u r0d }d }n9|dv ra|j}|  ¡  |   ¡  |  ¡ }|d u sL|jdvr]|d u rRdn|j}	t|d|	› �ƒ‚|j}nt|d|› �ƒ‚|   ¡  |  ¡ }d }
|d urž|jd	kr†|j ¡ d
kr†d}
n|jd	kr•|j ¡ dkr•d}
n	t|d|j› �ƒ‚t|||||
ƒS )NT)Úis_attributezexpected attribute name, got )ú=z~=z|=z^=z$=z*=)rO   ÚstringÚNonezexpected attribute value, got z*expected attribute selector operator, got rO   ÚiFÚszexpected ], got )	r0   rG   r   r   r-   r.   r   ÚlowerÚAttributeSelector)r$   r!   rJ   r   rK   rL   r-   Úoperatorr.   Ú	next_typeÚcase_sensitiver&   r&   r'   rY   ¸   s>   rY   c                 C   s@  |   ¡ }|du r
dS |jdkrE|  ¡ }|   ¡ }|dkr-|rdn| dd¡}||j|jffS |  ¡  | |j¡}|du rDt|d|j› �ƒ‚n7|dkro|  ¡ }|   ¡ }|dkrh|r`t|d|j› �ƒ‚| dd¡dfS |  ¡  d}n|dkrz|  ¡  d}ndS |  ¡ }|jdkr�||j|jffS |dkr—|s—|dfS t|d|j› �ƒ‚)z¡Return ``(namespace, local)`` for given tokens.

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

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

    NrO   ú|Ú zundefined namespace prefix: Ú*zexpected local name, got )r-   r   r   Úgetr.   rZ   r   )r$   r!   rm   r-   Úfirst_identrK   r   r&   r&   r'   rG   Þ   sF   
ÿÿ
rG   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 rF   )Úiterr$   Úpeeked)Úselfr$   r&   r&   r'   Ú__init__  s   

zTokenStream.__init__c                 C   s   | j r| j  ¡ S t| jd ƒS rF   )r‚   Úpopr   r$   ©rƒ   r&   r&   r'   r     s   
zTokenStream.nextc                 C   s$   | j s| j  t| jd ƒ¡ | j d S )Néÿÿÿÿ)r‚   r@   r   r$   r†   r&   r&   r'   r-     s   
zTokenStream.peekc                 C   s4   d}	 |   ¡ }|d u s|j|vr	 |S |  ¡  d}q)NFr   T)r-   r   r   )rƒ   Ú
skip_typesÚfoundr-   r&   r&   r'   Úskip!  s   þûzTokenStream.skipc                 C   ó   |   dg¡S )NÚ
whitespace©rŠ   r†   r&   r&   r'   r0   +  ó   zTokenStream.skip_whitespacec                 C   r‹   )NÚcommentr�   r†   r&   r&   r'   r1   .  rŽ   zTokenStream.skip_commentc                 C   s   |   ddg¡S )Nr�   rŒ   r�   r†   r&   r&   r'   r,   1  s   z'TokenStream.skip_whitespace_and_commentN)
r}   r~   r   r„   r   r-   rŠ   r0   r1   r,   r&   r&   r&   r'   r     s    
r   c                   @   s   e Zd Zddd„Zdd„ ZdS )r2   Nc                 C   s@   || _ || _|d u r|j| _d S |j\}}}|||d f| _d S )Nr   )Úparsed_treer7   Úspecificity)rƒ   Útreer7   ÚaÚbÚcr&   r&   r'   r„   6  s   zSelector.__init__c                 C   s$   | j r	d| j › �nd}| j›|› �S )Nz::ry   )r7   r�   )rƒ   Úpseudor&   r&   r'   Ú__repr__@  s   zSelector.__repr__rF   )r}   r~   r   r„   r—   r&   r&   r&   r'   r2   5  s    

r2   c                   @   s4   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zd	S )
r3   c                 C   ó   || _ || _d S rF   ©r:   r9   )rƒ   r:   r9   r&   r&   r'   r„   F  ó   
zRelativeSelector.__init__c                 C   ó   | j jS rF   )r9   r‘   r†   r&   r&   r'   r‘   J  ó   zRelativeSelector.specificityc                 C   r›   rF   )r9   r7   r†   r&   r&   r'   r7   N  rœ   zRelativeSelector.pseudo_elementc                 C   s$   | j dkr	| j›S | j › d| j›�S )Nr+   r™   r†   r&   r&   r'   r—   R  s   ÿþzRelativeSelector.__repr__N)r}   r~   r   r„   Úpropertyr‘   r7   r—   r&   r&   r&   r'   r3   E  s    

r3   c                   @   ó(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )r4   c                 C   s   || _ || _|| _d S rF   ©Úleftr:   Úright)rƒ   r    r:   r¡   r&   r&   r'   r„   Y  s   
zCombinedSelector.__init__c                 C   s2   | j j\}}}| jj\}}}|| || || fS rF   )r    r‘   r¡   )rƒ   Úa1Úb1Úc1Úa2Úb2Úc2r&   r&   r'   r‘   a  s   zCombinedSelector.specificityc                 C   s   | j ›| j› | j›�S rF   rŸ   r†   r&   r&   r'   r—   g  ó   zCombinedSelector.__repr__N©r}   r~   r   r„   r�   r‘   r—   r&   r&   r&   r'   r4   X  s
    
r4   c                   @   rž   )rA   c                 C   ó
   || _ d S rF   )rC   )rƒ   rC   r&   r&   r'   r„   l  ó   
zCompoundSelector.__init__c                 C   s(   | j rttttdd„ | j D ƒŽ ƒƒS dS )Nc                 s   ó   � | ]}|j V  qd S rF   ©r‘   ©rd   Úselr&   r&   r'   Ú	<genexpr>u  ó   € z/CompoundSelector.specificity.<locals>.<genexpr>©r   r   r   )rC   ÚtupleÚmapÚsumÚzipr†   r&   r&   r'   r‘   o  s
   ÿzCompoundSelector.specificityc                 C   s   d  tt| jƒ¡S )Nry   )Újoinr´   ÚreprrC   r†   r&   r&   r'   r—   y  s   zCompoundSelector.__repr__Nr©   r&   r&   r&   r'   rA   k  s
    
	rA   c                   @   ó    e Zd ZdZdd„ Zdd„ ZdS )rH   )r   r   r   c                 C   s   |\| _ | _d S rF   )rL   Úlower_local_name)rƒ   rL   r&   r&   r'   r„   €  s   zLocalNameSelector.__init__c                 C   s   | j S rF   )rL   r†   r&   r&   r'   r—   ƒ  s   zLocalNameSelector.__repr__N©r}   r~   r   r‘   r„   r—   r&   r&   r&   r'   rH   }  ó    rH   c                   @   r¹   )rI   r²   c                 C   rª   rF   ©rK   )rƒ   rK   r&   r&   r'   r„   Š  s   
zNamespaceSelector.__init__c                 C   s   | j dkrdS d| j › d�S )Nry   rx   Ú{z}|r½   r†   r&   r&   r'   r—   �  s   zNamespaceSelector.__repr__Nr»   r&   r&   r&   r'   rI   ‡  s    rI   c                   @   r¹   )rW   )r   r   r   c                 C   rª   rF   ©rO   )rƒ   rO   r&   r&   r'   r„   –  r«   zIDSelector.__init__c                 C   ó   d| j › �S )Nú#r¿   r†   r&   r&   r'   r—   ™  rŽ   zIDSelector.__repr__Nr»   r&   r&   r&   r'   rW   “  r¼   rW   c                   @   r¹   )rX   ©r   r   r   c                 C   rª   rF   ©Ú
class_name)rƒ   rÄ   r&   r&   r'   r„      r«   zClassSelector.__init__c                 C   rÀ   )NrN   rÃ   r†   r&   r&   r'   r—   £  rŽ   zClassSelector.__repr__Nr»   r&   r&   r&   r'   rX   �  r¼   rX   c                   @   r¹   )rt   rÂ   c                 C   s(   || _ |\| _| _|| _|| _|| _d S rF   )rK   rb   r]   ru   r.   rw   )rƒ   rK   rb   ru   r.   rw   r&   r&   r'   r„   ª  s
   
zAttributeSelector.__init__c                 C   s`   | j d u rdnd| j › d�}| jd u rdn	d| jrdnd› �}d|› | j› | j› | j›|› d	�S )
Nz*|r¾   Ú}ry   r+   rr   rq   ú[ú])rK   rw   rb   ru   r.   )rƒ   rK   rw   r&   r&   r'   r—   µ  s   þÿÿzAttributeSelector.__repr__Nr»   r&   r&   r&   r'   rt   §  s    rt   c                   @   r¹   )r\   rÂ   c                 C   rª   rF   ©rb   )rƒ   rb   r&   r&   r'   r„   Â  r«   zPseudoClassSelector.__init__c                 C   s
   d| j  S ©NrP   rÈ   r†   r&   r&   r'   r—   Å  r«   zPseudoClassSelector.__repr__Nr»   r&   r&   r&   r'   r\   ¿  r¼   r\   c                   @   r¹   )r_   rÂ   c                 C   r˜   rF   )rb   r`   )rƒ   rb   r`   r&   r&   r'   r„   Ì  rš   z&FunctionalPseudoClassSelector.__init__c                 C   s   d| j › t| jƒ›�S rÉ   )rb   r³   r`   r†   r&   r&   r'   r—   Ð  r¨   z&FunctionalPseudoClassSelector.__repr__Nr»   r&   r&   r&   r'   r_   É  s    r_   c                   @   rž   )rh   c                 C   rª   rF   ©Úselector_list©rƒ   rË   r&   r&   r'   r„   Õ  r«   zNegationSelector.__init__c                 C   ó   | j rtdd„ | j D ƒƒS dS )Nc                 s   r¬   rF   r­   rc   r&   r&   r'   r°   Û  r±   z/NegationSelector.specificity.<locals>.<genexpr>r²   ©rË   Úmaxr†   r&   r&   r'   r‘   Ø  ó   zNegationSelector.specificityc                 C   ó   dd  dd„ | jD ƒ¡› d�S )Nz:not(ú, c                 s   ó   � | ]}t |ƒV  qd S rF   ©r¸   r®   r&   r&   r'   r°   à  ó   € z,NegationSelector.__repr__.<locals>.<genexpr>ú)©r·   rË   r†   r&   r&   r'   r—   ß  ó   zNegationSelector.__repr__Nr©   r&   r&   r&   r'   rh   Ô  ó
    
rh   c                   @   rž   )ri   c                 C   rª   rF   rÊ   rÌ   r&   r&   r'   r„   ä  r«   zRelationalSelector.__init__c                 C   rÍ   )Nc                 s   r¬   rF   r­   rc   r&   r&   r'   r°   ê  r±   z1RelationalSelector.specificity.<locals>.<genexpr>r²   rÎ   r†   r&   r&   r'   r‘   ç  rÐ   zRelationalSelector.specificityc                 C   rÑ   )Nz:has(rÒ   c                 s   rÓ   rF   rÔ   r®   r&   r&   r'   r°   ï  rÕ   z.RelationalSelector.__repr__.<locals>.<genexpr>rÖ   r×   r†   r&   r&   r'   r—   î  rØ   zRelationalSelector.__repr__Nr©   r&   r&   r&   r'   ri   ã  rÙ   ri   c                   @   rž   )rf   c                 C   rª   rF   rÊ   rÌ   r&   r&   r'   r„   ó  r«   zMatchesAnySelector.__init__c                 C   rÍ   )Nc                 s   r¬   rF   r­   rc   r&   r&   r'   r°   ù  r±   z1MatchesAnySelector.specificity.<locals>.<genexpr>r²   rÎ   r†   r&   r&   r'   r‘   ö  rÐ   zMatchesAnySelector.specificityc                 C   rÑ   )Nz:is(rÒ   c                 s   rÓ   rF   rÔ   r®   r&   r&   r'   r°   þ  rÕ   z.MatchesAnySelector.__repr__.<locals>.<genexpr>rÖ   r×   r†   r&   r&   r'   r—   ý  rØ   zMatchesAnySelector.__repr__Nr©   r&   r&   r&   r'   rf   ò  rÙ   rf   c                   @   rž   )rg   c                 C   rª   rF   rÊ   rÌ   r&   r&   r'   r„     r«   z&SpecificityAdjustmentSelector.__init__c                 C   s   dS )Nr²   r&   r†   r&   r&   r'   r‘     s   z)SpecificityAdjustmentSelector.specificityc                 C   rÑ   )Nz:where(rÒ   c                 s   rÓ   rF   rÔ   r®   r&   r&   r'   r°   
  rÕ   z9SpecificityAdjustmentSelector.__repr__.<locals>.<genexpr>rÖ   r×   r†   r&   r&   r'   r—   	  rØ   z&SpecificityAdjustmentSelector.__repr__Nr©   r&   r&   r&   r'   rg     s
    
rg   )NFF)F)Útinycss2r   Ú__all__r[   r   r   r/   r>   r?   r^   rY   rG   Ú
ValueErrorr   r   r2   r3   r4   rA   rH   rI   rW   rX   rt   r\   r_   rh   ri   rf   rg   r&   r&   r&   r'   Ú<module>   s8    

 "/
&/$



