HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.8/site-packages/lxml/__pycache__/cssselect.cpython-38.pyc
U

O��i��@s�dZddlmZzddlZWnek
r8ed��YnXejZejZejZdddd	gZ	Gd
d�dej
�ZGdd
�d
eej�Z
dd�Ze�d�Zde_eed<Gdd	�d	ej�ZdS)z�CSS 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.
�)�etree�NzPcssselect does not seem to be installed. See https://pypi.org/project/cssselect/�SelectorSyntaxError�ExpressionError�
SelectorError�CSSSelectorc@seZdZdZdd�ZdS)�LxmlTranslatorzR
    A custom CSS selector to XPath translator with lxml-specific extensions.
    cCsF|��dgdgfkr"td|j��|jdj}|�d|�|����S)N�STRINGZIDENTz9Expected a single string or ident for :contains(), got %rrz7contains(__lxml_internal_css:lower-case(string(.)), %s))Zargument_typesr�	arguments�valueZ
add_conditionZ
xpath_literal�lower)�selfZxpath�functionr�r�0/tmp/pip-install-gdmoqxf6/lxml/lxml/cssselect.py�xpath_contains_function s����z&LxmlTranslator.xpath_contains_functionN)�__name__�
__module__�__qualname__�__doc__rrrrrrsrc@seZdZdZdS)�LxmlHTMLTranslatorz)
    lxml extensions + HTML support.
    N)rrrrrrrrr-srcCs|��S)N)r)�context�srrr�_make_lower_case3srzhttp://codespeak.net/lxml/css/Z__lxml_internal_cssz
lower-casecs*eZdZdZd�fdd�	Zdd�Z�ZS)	ra�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�xmlcsV|dkrt�}n"|dkr t�}n|dkr2tdd�}|�|�}t�j||d�||_dS)Nr�html�xhtmlT)r)�
namespaces)rrZcss_to_xpath�super�__init__�css)r
r rZ
translator�path��	__class__rrrVs

zCSSSelector.__init__cCsd|jjtt|��|jfS)Nz<%s %x for %r>)r#r�abs�idr )r
rrr�__repr__as

�zCSSSelector.__repr__)Nr)rrrrrr&�
__classcell__rrr"rr;s)r�rZ	cssselectZexternal_cssselect�ImportErrorrrr�__all__ZGenericTranslatorrZHTMLTranslatorrrZFunctionNamespace�ns�prefixZXPathrrrrr�<module>s(	�
�