ruạṛ
� ǁaWc @ s d Z d d l Z d d l Z d d l m Z m Z m Z e j d d k r\ e Z e Z n e Z e Z e d � Z d e e f d � � YZ d e f d � � YZ e j d � j Z e j d � j Z e j d � j Z d e f d � � YZ d e f d � � YZ d S( s cssselect.xpath =============== Translation of parsed CSS selectors to XPath expressions. :copyright: (c) 2007-2012 Ian Bicking and contributors. See AUTHORS for more details. :license: BSD, see LICENSE for more details. i����N( t parset parse_seriest SelectorErrori i c C s+ | j d d � j d � } t | | | � S( Nt asciit replace( t encodet decodet getattr( t objt namet default( ( s3 /usr/lib/python2.7/site-packages/cssselect/xpath.pyt _unicode_safe_getattr s t ExpressionErrorc B s e Z d Z RS( s3 Unknown or unsupported selector (eg. pseudo-class).( t __name__t __module__t __doc__( ( ( s3 /usr/lib/python2.7/site-packages/cssselect/xpath.pyR # s t XPathExprc B sS e Z d d d e d � Z d � Z d � Z d � Z d � Z d � Z d � Z RS( t t *c C s | | _ | | _ | | _ d S( N( t patht elementt condition( t selfR R R t star_prefix( ( s3 /usr/lib/python2.7/site-packages/cssselect/xpath.pyt __init__+ s c C s= t | j � t | j � } | j r9 | d | j 7} n | S( Ns [%s]( t _unicodeR R R ( R R ( ( s3 /usr/lib/python2.7/site-packages/cssselect/xpath.pyt __str__0 s c C s d | j j | f S( Ns %s[%s]( t __class__R ( R ( ( s3 /usr/lib/python2.7/site-packages/cssselect/xpath.pyt __repr__6 s c C s/ | j r"