h .dZddlmZ ddlZn#e$r edwxYwejZejZejZgdZ Gddej Z Gd d e ej Z d Zejd Zd e_eed<GddejZdS)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 CSSSelectorceZdZdZdZdS)LxmlTranslatorzR A custom CSS selector to XPath translator with lxml-specific extensions. c|dgdgfvrtd|jz|jdj}|d||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 ^/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/lxml/cssselect.pyxpath_contains_functionz&LxmlTranslator.xpath_contains_function s  " " $ $hZ',C C C!K$%&& &"1%+"" E  // 011 1N)__name__ __module__ __qualname____doc__rrrr r s- 1 1 1 1 1rr ceZdZdZdS)LxmlHTMLTranslatorz) lxml extensions + HTML support. N)rrrrrrrr r -srr c*|S)N)r)contextss r_make_lower_caser$3s 7799rzhttp://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')] Nxmlc|dkrt}n+|dkrt}n|dkrtd}||}t||||_dS)Nr'htmlxhtmlT)r*) namespaces)r r css_to_xpathsuper__init__css)rr/r+ translatorpath __class__s rr.zCSSSelector.__init__Vs   '))JJ 6 ! !+--JJ 7 " "+$777J&&s++ *555rcdd|jjtt||jfzS)Nz<%s %x for %r>)r2rabsidr/)rs r__repr__zCSSSelector.__repr__as0 N # 4MM H# r)Nr')rrrrr.r6 __classcell__)r2s@rrr;sV4      rr)rr cssselectexternal_cssselect ImportErrorrrr__all__GenericTranslatorr HTMLTranslatorr r$FunctionNamespacensprefixXPathrrrrrCs`3*****333 + 2 3 333 )<$4"0    11111'9111");)J U=>> ! #<*****%+*****s