�
U�*Wc @@ s d Z d d l m Z d d l m Z y d d l Z Wn e k
rU e d � � n Xe j Z e j Z e j
Z
d d d d
g Z d e j f d � � YZ
d
e
e j f d � � YZ d � Z e j d � Z d e _ e e d <d
e j f d � � YZ d S( s� 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.
i ( t absolute_importi ( t etreeNsR cssselect does not seem to be installed. See http://packages.python.org/cssselect/t SelectorSyntaxErrort ExpressionErrort
SelectorErrort CSSSelectort LxmlTranslatorc B@ s e Z d Z d � Z RS( sR
A custom CSS selector to XPath translator with lxml-specific extensions.
c C@ sd | j � d g d g f k r4 t d | j � � n | j d j } | j d | j | j � � � S( Nt STRINGt IDENTs9 Expected a single string or ident for :contains(), got %ri s7 contains(__lxml_internal_css:lower-case(string(.)), %s)( t argument_typesR t argumentst valuet
add_conditiont
xpath_literalt lower( t selft xpatht functionR ( ( s4 /usr/lib64/python2.7/site-packages/lxml/cssselect.pyt xpath_contains_function! s ( t __name__t
__module__t __doc__R ( ( ( s4 /usr/lib64/python2.7/site-packages/lxml/cssselect.pyR s t LxmlHTMLTranslatorc B@ s e Z d Z RS( s)
lxml extensions + HTML support.
( R R R ( ( ( s4 /usr/lib64/python2.7/site-packages/lxml/cssselect.pyR . s c C@ s
| j � S( N( R ( t contextt s( ( s4 /usr/lib64/python2.7/site-packages/lxml/cssselect.pyt _make_lower_case4 s s http://codespeak.net/lxml/css/t __lxml_internal_csss
lower-casec B@ s&