g RdZddlmZ ddlZej ZejZejZgdZ GddejZ Gd d e ejZ d Zejd Zd e_eed<Gddej$Zy#e$r edwxYw)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/)SelectorSyntaxErrorExpressionError SelectorError CSSSelectorceZdZdZdZy)LxmlTranslatorzR A custom CSS selector to XPath translator with lxml-specific extensions. c|jdgdgfvrtd|jz|jdj}|j d|j |j zS)NSTRINGIDENTz9Expected a single string or ident for :contains(), got %rrz7contains(__lxml_internal_css:lower-case(string(.)), %s))argument_typesr argumentsvalue add_condition xpath_literallower)selfxpathfunctionrs ?/opt/hc_python/lib64/python3.12/site-packages/lxml/cssselect.pyxpath_contains_functionz&LxmlTranslator.xpath_contains_function s  " " $hZ',C C!K$$%& &""1%++"" E  / 01 1N)__name__ __module__ __qualname____doc__rrrr r s  1rr ceZdZdZy)LxmlHTMLTranslatorz) lxml extensions + HTML support. N)rrrrrrrr r -srr c"|jS)N)r)contextss r_make_lower_caser$3s 779rzhttp://codespeak.net/lxml/css/__lxml_internal_cssz lower-casec*eZdZdZdfd ZdZxZS)raA CSS selector. Usage:: >>> from lxml import etree, cssselect >>> select = cssselect.CSSSelector("a tag > child") >>> root = etree.XML("TEXT") >>> [ 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(( ... '' ... 'blah' ... '') % rdfns) >>> [(el.tag, el.text) for el in select_ns(rdf)] [('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description', 'blah')] c|dk(r t}n!|dk(r t}n|dk(r td}|j|}t|||||_y)NxmlhtmlxhtmlT)r*) namespaces)r r css_to_xpathsuper__init__css)rr/r+ translatorpath __class__s rr.zCSSSelector.__init__Vs^  ')J 6 !+-J 7 "+$7J&&s+ *5rcrd|jjtt||jfzS)Nz<%s %x for %r>)r2rabsidr/)rs r__repr__zCSSSelector.__repr__as3 NN # # 4M HH# r)Nr()rrrrr.r6 __classcell__)r2s@rrr;s4 rr)rr cssselectexternal_cssselect ImportErrorrrr__all__GenericTranslatorr HTMLTranslatorr r$FunctionNamespacensprefixXPathrrrrrCs3*)<<$44"00  1'991");)J)J U=> ! #<*%++*]3  2 333s BB&