Oc @sdZddkZddklZdddgZy eZWnej o eZnXde fdYZ de fdYZ dei fd YZyeZeZWnej oeZeZnXd efd YZd efd YZdefdYZdefdYZdefdYZdefdYZdZeidZde_eedd>d?gi-Z?d@Z@dAZAei%dBei&ZBdCZCdDefdEYZDdS(FsCSS Selectors based on XPath. This module supports selecting XML/HTML tags based on CSS selectors. See the `CSSSelector` class for details. iN(tetreetSelectorSyntaxErrortExpressionErrort CSSSelectorcBseZRS((t__name__t __module__(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRscBseZRS((RR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRscBs#eZdZddZdZRS(sA 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')] cCs2t|}tii||d|||_dS(Nt namespaces(t css_to_xpathRtXPatht__init__tcss(tselfR Rtpath((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR 2s cCs0d|iittt|d|ifS(Ns<%s %s for %r>i(t __class__RthextabstidR (R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt__repr__7s N(RRt__doc__tNoneR R(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs t _UniTokencBseZdZdZRS(cCsti||}||_|S(N(t_unicodet__new__tpos(tclstcontentsRtobj((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRIs cCs#d|iiti||ifS(Ns %s(%s, %r)(R RRRR(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRNs  (RRRR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRHs tSymbolcBseZRS((RR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRTstStringcBseZRS((RR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRWstTokencBseZRS((RR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRZstClasscBs)eZdZdZdZdZRS(s( Represents selector.class_name cCs||_||_dS(N(tselectort class_name(R RR ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR is cCsd|ii|i|ifS(Ns %s[%r.%s](R RRR (R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRms cCs5|ii}|idtd|id|S(Ns7contains(concat(' ', normalize-space(@class), ' '), %s)t (Rtxpatht add_conditiont xpath_literalR (R t sel_xpath((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"ss(RRRR RR"(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRds  tFunctioncBsweZdZddddgZdZdZdZeedZ d Z d Z d Z d Z d ZRS(s( Represents selector:name(expr) ttargettlangtenabledtdisabledcCs(||_||_||_||_dS(N(Rttypetnametexpr(R RR+R,R-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s   cCs)d|ii|i|i|i|ifS(Ns%s[%r%s%s(%r)](R RRR+R,R-(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs|ii}|i|ijotd|ind|iidd}t||ptd|int||}|||iS(Ns$The pseudo-class %r is not supportedt_xpath_t-t_sThe pseudo-class %r is unknown( RR"R,t unsupportedRtreplacethasattrtgetattrR-(R tsel_pathtmethod((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"scCsut|\}}| o"| o| o|id|S|o|in|i|djo+|od|}n|id||S|o| }| }n|djot| }n d| }|djod||fg}ng}|djo|id|n*|djo|o|id |nd i|}|o|i|n|S( Nsfalse() and position() = 0is last() - %ssposition() = %ss+%sis(position() %s) mod %s = 0sposition() >= %ssposition() < (last() %s)s and (t parse_seriesR#t add_name_testtadd_star_prefixtstrtappendtjoin(R R"R-tlastR8tatbtb_neg((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_nth_childs:        cCs|i||dtS(NR=(RAtTrue(R R"R-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_nth_last_childscCs6|idjotdn|i||dtS(Nt*s"*:nth-of-type() is not implementedR8(telementtNotImplementedErrorRAtFalse(R R"R-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_nth_of_types cCs|i||dtdtS(NR=R8(RARBRG(R R"R-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_nth_last_of_typescCsAt|to|i}n|idt|i|S(Ns'contains(css:lower-case(string(.)), %s)(t isinstancetElementt_format_elementR#R$tlower(R R"R-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_containss  cCs*|i}|i}|id||S(Nsnot(%s)(R"t conditionR#(R R"R-tcond((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt _xpath_nots  (RRRR1R RR"RGRBRARCRHRIRNRQ(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR&ys    *    cCs |iS(N(RM(tcontextts((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_make_lower_casesshttp://codespeak.net/lxml/css/R s lower-casetPseudoc BseZdZddddddddd d d g Zd Zd ZdZdZdZdZ dZ dZ dZ dZ dZdZRS(s# Represents selector:ident t indeterminates first-lines first-lettert selectiontbeforetaftertlinktvisitedtactivetfocusthovercCs3||_|djpt||_||_dS(Nt:s::(R_s::(REtAssertionErrorR+tident(R RER+Ra((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s  cCs#d|ii|i|i|ifS(Ns %s[%r%s%s](R RRER+Ra(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs|ii}|i|ijotd|ind|iidd}t||ptd|int||}||}|S(Ns"The pseudo-class %r is unsupportedR.R/R0sThe pseudo-class %r is unknown(RER"RaR1RR2R3R4(R tel_xpathR6((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"s cCs|id|S(NsE(@selected or @checked) and (name(.) = 'input' or name(.) = 'option')(R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_checked s cCs tdS(N(RF(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt _xpath_rootscCs%|i|i|id|S(Nsposition() = 1(R9R8R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_first_childs   cCs%|i|i|id|S(Nsposition() = last()(R9R8R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_last_childs   cCs;|idjotdn|i|id|S(NRDs"*:first-of-type is not implementedsposition() = 1(RERFR9R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_first_of_types    cCs;|idjotdn|i|id|S(NRDs!*:last-of-type is not implementedsposition() = last()(RERFR9R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_last_of_type's    cCs%|i|i|id|S(Ns last() = 1(R8R9R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_only_child/s   cCs1|idjotdn|id|S(NRDs!*:only-of-type is not implementeds last() = 1(RERFR#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_only_of_type5s   cCs|id|S(Ns!not(*) and not(normalize-space())(R#(R R"((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt _xpath_empty<s (RRRR1R RR"RcRdReRfRgRhRiRjRk(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRUs            tAttribcBs;eZdZdZdZdZdZdZRS(s> Represents selector[namespace|attrib operator value] cCs1||_||_||_||_||_dS(N(Rt namespacetattribtoperatortvalue(R RRmRnRoRp((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR Es     cCsa|idjo!d|ii|i|ifSd|ii|i|i|i|ifSdS(Ntexistss %s[%r[%s]]s%s[%r[%s %s %r]](RoR RRt_format_attribRp(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRLs   cCs0|idjo|iSd|i|ifSdS(NRDs%s|%s(RmRn(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRrZscCs4|idjo d|iSd|i|ifSdS(NRDt@s@%s:%s(RmRn(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt _xpath_attrib`s cCs|ii}|i}|i}|idjo | pt|i|n|idjo!|id|t|fn|idjoL|o$|id||t|fq|id|t|fn6|idjo)|id|td |d fn|id jo1|id |t||t|d fn|id jo!|id|t|fn|idjo1|id||t|dt|fnJ|idjo!|id|t|fndptd|i|S(NRqt=s%s = %ss!=snot(%s) or %s != %ss%s != %ss~=s3contains(concat(' ', normalize-space(%s), ' '), %s)R!s|=s%s = %s or starts-with(%s, %s)R/s^=sstarts-with(%s, %s)s$=s(substring(%s, string-length(%s)-%s) = %sis*=scontains(%s, %s)isUnknown operator: %r( RR"RtRpRoR`R#R$tlen(R R RnRp((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"gs@     )    ( (RRRR RRrRtR"(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRl@s     RKcBs2eZdZdZdZdZdZRS(s& Represents namespace|element cCs||_||_dS(N(RmRE(R RmRE((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s cCsd|ii|ifS(Ns%s[%s](R RRL(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs0|idjo|iSd|i|ifSdS(NRDs%s|%s(RmRE(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRLscCsF|idjo|ii}nd|i|if}td|S(NRDs%s:%sRE(RmRERMt XPathExpr(R tel((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"s(RRRR RRLR"(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRKs    tHashcBs)eZdZdZdZdZRS(s Represents selector#id cCs||_||_dS(N(RR(R RR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s cCsd|ii|i|ifS(Ns %s[%r#%s](R RRR(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs-|ii}|idt|i|S(Ns@id = %s(RR"R#R$R(R R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"s(RRRR RR"(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRys  tOrcBs#eZdZdZdZRS(cCs ||_dS(N(titems(R R{((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR scCsd|ii|ifS(Ns%s(%r)(R RR{(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs4g}|iD]}||iq~}t|S(N(R{R"t XPathExprOr(R t_[1]titemtpaths((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"s*(RRR RR"(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRzs  tCombinedSelectorcBsieZhdd6dd6dd6dd6ZdZd Zd Zd Zd Zd ZdZ RS(t descendantR!tchildt>tdirect_adjacentt+tindirect_adjacentt~cCs3|dj pt||_||_||_dS(N(RR`Rt combinatort subselector(R RRR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s  cCsC|idjo d}n |i}d|ii|i||ifS(NR!s s %s[%r %s %r](RR RRR(R tcomb((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs   cCsl|i|ijotd|ind|i|i}t||}|ii}|||iS(NsUnknown combinator: %rR.(Rt_method_mappingRR4RR"R(R R6R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR"scCs|id|i|S(Ns/descendant-or-self::*/(R<R"(R R"tsub((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_descendantscCs|id|i|S(Nt/(R<R"(R R"R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt _xpath_childscCs1|id|i|i|id|S(Ns/following-sibling::sposition() = 1(R<R"R8R#(R R"R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_direct_adjacents  cCs|id|i|S(Ns/following-sibling::(R<R"(R R"R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt_xpath_indirect_adjacents( RRRR RR"RRRR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs     s^\w+\s*$s^(\w*)#(\w+)\s*$s^(\w*)\.(\w+)\s*$sdescendant-or-self::cCs7t|toti|}|dj od||idifSti|}|dj o+d||idpd|idfSti|}|dj o+d||idpd|idfSt |}n|i }|dj pt dt ||o|i |nt|S( Ns%s%sis%s%s[@id = '%s']iRDisA%s%s[contains(concat(' ', normalize-space(@class), ' '), ' %s ')]s%Got None for xpath expression from %s(RJt _basestringt_el_retsearchRtgrouptstript_id_ret _class_retparseR"R`treprt add_prefixR(tcss_exprtprefixtmatchR-((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s&  ( ( RwcBsheZd d dd edZdZdZdZdZdZ dZ dZ d Z RS( RDcCs1||_||_||_||_||_dS(N(RR REROt star_prefix(R RR REROR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR #s     cCsd}|idj o|t|i7}n|idj o|t|i7}n|t|i7}|io|d|i7}n|S(Nts[%s](RRRR RERO(R R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt__str__+s cCsd|ii|fS(Ns%s[%s](R R(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR6scCs1|iod|i|f|_n ||_dS(Ns %s and (%s)(RO(R RO((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR#:s cCs?|idjo|i|_n|i|i7_||_dS(N(R RRE(R tpart((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pytadd_path@scCs+|io||i|_n ||_dS(N(R(R R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRGs cCs<|idjodS|idt|id|_dS(NRDs name() = %s(RER#R$(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR8MscCs3|io|id7_n d|_t|_dS(s Adds a /* prefix if there is no prefix. This is when you need to keep context's constrained to a single parent. s*/N(R RBR(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR9Ts  cCst|}||7}|ipd|ipd}|io|djo d}n||_||_|i|_|i|_dS(NRs*/(RRR RRERO(R tcombinertotherRR ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR<_s      N( RRRRGR RRR#RRR8R9R<(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRw!s        R|cBs#eZdZddZdZRS(s Represents |'d expressions. Note that unfortunately it isn't the union, it's the sum, so duplicate elements will appear. cCs;x"|D]}|dj ptqW||_||_dS(N(RR`R{R(R R{RR~((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR rs  cCsE|ipd}dig}|iD]}|d||fq$~S(NRs | s%s%s(RR<R{(R RR}ti((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRxsN(RRRRR R(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR|ls s('+)cCst|to|i}n t|}d|jod|}nsd|jod|}nXddig}t|D]0}|o#|d|jodpd|q|q|~}|S(Nt's'%s't"s"%s"s concat(%s)t,(RJRKRLRR<tsplit_at_single_quotes(RSR}R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR$~s    GcCstt|}||_yt|SWntj ozddk}|id}d||i|if}||_ |i djo ||_ nt |g|_ nXdS(Niis%s at %s -> %rii(ii(t TokenStreamttokenizetsourcetparse_selector_groupRtsystexc_infotusedtpeektmsgt version_infotmessagettupletargs(tstringtstreamRteR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs    cCskg}x8|it||idjo|iq Pq t|djo |dSt|SdS(NRii(R;tparse_selectorRtnextRvRz(Rtresult((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCst|}x|i}|djp |djo|S|djo5|i}x,|idjo|iqVWnd}t|i}t|}|t|ijotd|int|||}q|S(NRRRRR!sExpected selector, got '%s'(RRR(tparse_simple_selectorRRRRvRRR(RRRRtconsumedt next_selector((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs$     c CsC|i}|djot|t od}}n|i}|djo%t|t otd|n|idjoR|}|i|i}|djo%t|t otd|qn d}|}t||}t}x@|i}|djo8|oPn|it||i}t}qq|djo&|it ||i}qq|djoM|it ||}|i}|djptd|qqq|d jp |d jo)|i}|i}t|tptd|n|id jo|i|i}t|t o|i} n@t|to#t |ot |i} n t|} |i}|d jptd || fnt|||| }qt|||}qq|djo|inPq|S(NRDsExpected symbol, got '%s't|t#t.t[t]s] expected, got '%s'R_s::t(t)sExpected ')', got '%s' and '%s'R!(RRJRRRRKRGRyRBRt parse_attribRtis_inttintRR&RU( RRRERmRRthas_hashR+RaR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs                     cCs-yt|Wntj otSXtSdS(N(Rt ValueErrorRGRB(tv((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs cCs|i}|idjo |}|i|i}nd}|idjot|||ddS|i}|djotd |n|i}t|ttfptd |nt|||||S(NRRDRRqs^=s$=s*=Rus~=s|=s!=sOperator expected, got '%s's#Expected string or symbol, got '%s'(s^=s$=s*=Rus~=s|=s!=(RRRlRRRJRR(RRRnRmtopRp((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs"     cCsat|to|i}n| p |djod St|to d|fS|djod S|djod S|djodSd|jodt|fS|idd\}}|p d}n;|djp |d jot|d }n t|}|p d}n;|djp |d jot|d }n t|}||fS(sJ Parses things like '1n+2', or 'an+b' generally, returning (a, b) RDitoddiiteventnR/Rt1(ii(ii(ii(ii(RJRKRLRtsplit(RSR>R?((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR7-s4         s\s+s /\*.*?\*/s[+-]?\d*n(?:[+-]\d+)?c cs d}td|}xt|d|}|o|}|i}nd}|t|jodSt|d|}|oG|idjo4|||i!}t||V|i}qn||}|||d!}|djoK|d jo|djotd |Vnt||V|d7}qn|djoK|djo|djotd |Vnt||V|d7}qn|djp |djo0|}t||\}}t ||Vqn|}t ||\}}t||VqqdS(NiRRRis~=s|=s^=s$=s*=s::s!=R!s>+~,.*=[]()|:#s:.#[iRR(s~=s|=s^=s$=s*=s::s!=( t_replace_commentst_match_whitespacetendRvt_match_count_numberRRRttokenize_escaped_stringRttokenize_symbol(RSRRtpreceding_whitespace_postsymtctc2told_pos((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR\sN      s (\\(?:%s))Rs[A-Fa-f0-9]{1,6}(?: |\s)?s [^A-Fa-f0-9]cCsg}xt|D]}|pqnd|jo|ddjoKt|djo8|d}|ddjott|d}qqtd|idd|fn|i|qWdi|S(Ns\iit0123456789ABCDEFabcdefis'Invalid escape sequence %r in string %rR(tsplit_at_string_escapesRvt_unichrRRRR;R<(tliteralt substringst substring((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pytunescape_string_literals  $ !cCs||}|djpt|d}|}x|i||}|djotd|||fn|||!}|ido|d}q1nd|jot|}n||dfSdS(NRRiis%Expected closing %s for string in: %rs\(RR(R`tfindRtendswithR(RSRtquotetstartRR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs"      s[^\w\\-]cCs|}ti|d|}|p||t|fS|i|jo#dptd|||fn|p||}t|}n |||i!}|i}y|iddid}WnEtj o9ddk}|i d}t d ||fnX||fS( NRisUnexpected symbol: %r at %stASCIItbackslashreplacetunicode_escapeiisBad symbol %r: %s( t_illegal_symbolRRvRR`tencodetdecodetUnicodeDecodeErrorRRR(RSRRRRRR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs(    RcBs/eZddZdZdZdZRS(cCsog|_t||_||_d|_t|_y|ii|_ Wn"t j o|ii |_ nXdS(N( RtiterttokensRRtpeekedRGt_peekingRt next_tokentAttributeErrort__next__(R RR((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyR s    cCsm|io$t|_|ii|i|iSy$|i}|ii||SWntj odSXdS(N(RRGRR;RRt StopIterationR(R R((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs   cCst|idS(N(RRR(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyt__iter__scCsH|ip7y|i|_Wntj odSXt|_n|iS(N(RRRRRRB(R ((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs  N(RRRR RRR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pyRs (ERtretlxmlRt__all__t basestringRt NameErrorR:t SyntaxErrorRt RuntimeErrorRRRtunicodeRtunichrRtchrRRRRtobjectRR&RTtFunctionNamespacetnsRRURlRKRyRzRtcompiletUNICODERRRRRwR|RRR$RRRRRRR7RRtDOTALLRRRRR<RRRRRR(((s4/usr/lib/python2.6/vendor-packages/lxml/cssselect.pytsx    (    h   XP < K    L   ) +