
    Eth$                     :   d Z ddlmZ ddlmZ 	 ddlZn# e$ r  ed          w xY wej        Zej	        Z	ej
        Z
g dZ G d d	ej                  Z G d
 deej                  Zd Z ej        d          Zde_        eed<    G d dej                  ZdS )zCSS Selectors based on XPath.

This module supports selecting XML/HTML tags based on CSS selectors.
See the `CSSSelector` class for details.

This is a thin wrapper around cssselect 0.7 or later.
    )absolute_import   )etreeNzPcssselect does not seem to be installed. See https://pypi.org/project/cssselect/)SelectorSyntaxErrorExpressionErrorSelectorErrorCSSSelectorc                       e Zd ZdZd ZdS )LxmlTranslatorzR
    A custom CSS selector to XPath translator with lxml-specific extensions.
    c                    |                                 dgdgfvrt          d|j        z            |j        d         j        }|                    d|                     |                                          z            S )NSTRINGIDENTz9Expected a single string or ident for :contains(), got %rr   z7contains(__lxml_internal_css:lower-case(string(.)), %s))argument_typesr   	argumentsvalueadd_conditionxpath_literallower)selfxpathfunctionr   s       b/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/lxml/cssselect.pyxpath_contains_functionz&LxmlTranslator.xpath_contains_function!   s     ""$$hZ',CCC!K$%& & & "1%+""E  //01 1 	1    N)__name__
__module____qualname____doc__r    r   r   r   r      s-         
1 
1 
1 
1 
1r   r   c                       e Zd ZdZdS )LxmlHTMLTranslatorz)
    lxml extensions + HTML support.
    N)r   r   r   r   r   r   r   r!   r!   .   s           r   r!   c                 *    |                                 S )N)r   )contextss     r   _make_lower_caser%   4   s    7799r   zhttp://codespeak.net/lxml/css/__lxml_internal_cssz
lower-casec                        e Zd ZdZddZd ZdS )r	   a  A CSS selector.

    Usage::

        >>> from lxml import etree, cssselect
        >>> select = cssselect.CSSSelector("a tag > child")

        >>> root = etree.XML("<a><b><c/><tag><child>TEXT</child></tag></b></a>")
        >>> [ el.tag for el in select(root) ]
        ['child']

    To use CSS namespaces, you need to pass a prefix-to-namespace
    mapping as ``namespaces`` keyword argument::

        >>> rdfns = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
        >>> select_ns = cssselect.CSSSelector('root > rdf|Description',
        ...                                   namespaces={'rdf': rdfns})

        >>> rdf = etree.XML((
        ...     '<root xmlns:rdf="%s">'
        ...       '<rdf:Description>blah</rdf:Description>'
        ...     '</root>') % rdfns)
        >>> [(el.tag, el.text) for el in select_ns(rdf)]
        [('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description', 'blah')]

    Nxmlc                    |dk    rt                      }n+|dk    rt                      }n|dk    rt          d          }|                    |          }t          j                            | ||           || _        d S )Nr(   htmlxhtmlT)r+   )
namespaces)r   r!   css_to_xpathr   XPath__init__css)r   r0   r,   
translatorpaths        r   r/   zCSSSelector.__init__W   s    '))JJ6!!+--JJ7""+$777J&&s++T4J???r   c           
          d| j         j        dt          t          t	          |                               dd          d| j        dS )N<    z for >)	__class__r   hexabsidr0   )r   s    r   __repr__zCSSSelector.__repr__b   sK     N###BtHHqrr"""HHH 	r   )Nr(   )r   r   r   r   r/   r<   r   r   r   r	   r	   <   sA         4	 	 	 	    r   r	   )r   
__future__r    r   	cssselectexternal_cssselectImportErrorr   r   r   __all__GenericTranslatorr   HTMLTranslatorr!   r%   FunctionNamespacensprefixr.   r	   r   r   r   <module>rH      sr    ' & & & & &      3***** 3 3 3
+	23 3 33 )< $4"0  1 1 1 1 1'9 1 1 1"    );)J      U=>>!	#< * * * * *%+ * * * * *s    &