+
     h  c                   sX   R t ^RIHt  ^ RIt]P                  t]P                  t]P                  t. ROt	 ! R R]P                  4      t ! R R]]P                  4      tR	 t]P                  ! R
4      tR]n        ]]R&    ! R R]P$                  4      tR#   ] d
    ]! R4      hi ; i)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.
)etreeNzPcssselect does not seem to be installed. See https://pypi.org/project/cssselect/CSSSelectorc                   s*   a  ] tR t^t o RtR tRtV tR# )LxmlTranslatorzJ
A custom CSS selector to XPath translator with lxml-specific extensions.
c                s   VP                  4       R .R.39  d   \        RVP                  ,          4      hVP                  ^ ,          P                  pVP	                  RV P                  VP                  4       4      ,          4      # )ZSTRINGZIDENTz9Expected a single string or ident for :contains(), got %rz7contains(__lxml_internal_css:lower-case(string(.)), %s))Zargument_typesExpressionErrorZ	argumentsvalueZadd_conditionZxpath_literallower)selfZxpathZfunctionr   s   &&& 5/usr/lib64/python3.14/site-packages/lxml/cssselect.pyxpath_contains_functionZ&LxmlTranslator.xpath_contains_function    s     ""$hZ',CC!K$$%& & ""1%++""E  /01 	1     N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     
1 
1r	   r   c                   s    ] tR t^-tRtRtR# )LxmlHTMLTranslatorz!
lxml extensions + HTML support.
r
   N)r   r   r   r   r   r   r
   r	   r   r   r   -   s    r	   r   c                 s"    VP                  4       # )N)r   )ZcontextZss   &&r   _make_lower_caser   3   s    779r	   zhttp://codespeak.net/lxml/css/Z__lxml_internal_cssz
lower-casec                   s@   a a ] tR t^;t oRtRV 3R lltR tRtVtV ;t	# )r   aN  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')]

c                s   < VR 8X  d   \        4       pM%VR8X  d   \        4       pMVR8X  d   \        RR7      pVP                  V4      p\        SV `  WBR7       Wn        R# )xmlZhtmlxhtmlT)r   )
namespacesN)r   r   Zcss_to_xpathZsuper__init__css)r   r   r   Z
translatorZpath	__class__s   &&&& r   r   ZCSSSelector.__init__V   sZ    ')J6!+-J7"+$7J&&s+5r	   c                sz    R V P                   P                  \        \        V 4      4      V P                  3,          # )z<%s %x for %r>)r   r   ZabsZidr   )r   s   &r   __repr__ZCSSSelector.__repr__a   s3    NN##4MHH#  	r	   )r   )Nr   )
r   r   r   r   r   r   r   r   r   Z__classcell__)r   r   s   @@r   r   r   ;   s     4	 r	   )SelectorSyntaxErrorr   SelectorErrorr   )r   Z r    Z	cssselectZexternal_cssselectZImportErrorr   r   r   Z__all__ZGenericTranslatorr   ZHTMLTranslatorr   r   ZFunctionNamespaceZnsZprefixZXPathr   r
   r	   r   <module>r      s    3* )<< $44"001'99 1");)J)J  =>!	#< *%++ *]  3
	23 33s   B B)