ó Û¶eTc@s~dZddlZddlZejdƒZejdƒZejdƒjZdefd„ƒYZ de fd „ƒYZ dS( s:SourceReader class for Cheetah's Parser and CodeGenerator iÿÿÿÿNs[ \f\t]*(?:\r\n|\r|\n)s(?:\r\n|\r|\n|\Z)scoding[=:]\s*([-\w.]+)tErrorcBseZRS((t__name__t __module__(((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR st SourceReadercBsÁeZd-d-d-d„Zd„Zd„Zd„Zd„Zd„Zd„Z d-d„Z d-d„Z d-d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd-d„Zdd„Zdd„Zd„Zd-d„Zd-e d„Z!d-d „Z"d-d!„Z#d"„Z$d-d#„Z%d-e&d$„Z'd-d%„Z(d&„Z)d'd(„Z*d-d'd)„Z+d*d+„Z,d*d,„Z-RS(.cCs||_||_t|ƒ|_|dkr<|j|_n |j|ƒd|_i|_i|_ g|_ d}xJ|t|ƒkr¿t j ||ƒ}|j j |jƒƒ|jƒ}qvWg|_x0|j D]%}|j|ƒ}|jj |ƒqÓWdS(Ni(t_srct _filenametlent_srcLentNonet _breakPointt setBreakPointt_post _bookmarkst_posTobookmarkMapt_EOLstEOLZretsearchtappendtstarttendt_BOLstfindBOL(tselftsrctfilenamet breakPointtencodingtpostEOLmatchtBOLpos((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt__init__s&         cCs|jS(N(R(R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR'scCs|jS(N(R(R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR*scCs|jS(N(R (R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt__len__-scCs:t|tƒs"|j|jƒn |j|ƒ|j|S(N(t isinstancetinttcheckPoststopR(Rti((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt __getitem__0s cCs,t|dƒ}t|dƒ}|j||!S(Ni(tmaxR(RR$tj((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt __getslice__7scCs+t|dƒs$|jjƒ|_n|jS(Nt _srcLines(thasattrRt splitlinesR)(R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR+;scCsf|dkr|j}nxGtt|jƒƒD]0}||j|kr.||j|kr.|Sq.WdS(N(RR trangeRRR(RRR$((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytlineNum@s   &cCsX|dkr|j}n|j|ƒ}|j||j|}}|d||dfS(Ni(RR R-RR(RRR-tBOLtEOL((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt getRowColHs   cCsH|dkr|j}n|j|ƒ\}}|||jƒ|dfS(Ni(RR R0R+(RRtrowtcol((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt getRowColLineOs  cCs5|dkr|j}n|j|ƒ}|jƒ|S(N(RR R-R+(RRR-((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytgetLineUs  cCs|jS(N(R (R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyRcCs|j|ƒ||_dS(N(R"R (RR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytsetPos^s cCs||jko|dkS(Ni(R (RR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytvalidPoscscCsn||jksAtdt|ƒdt|jdƒdƒ‚n)|dksjtdt|ƒdƒ‚ndS(Nspos (s') is invalid: beyond the stream's end (it)is) is invalid: less than 0(R Rtstr(RR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR"fs / cCs|jS(N(R (R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyRmscCss||jkr=tdt|ƒdt|jƒdƒ‚n)|dksftdt|ƒdƒ‚n||_dS(NsNew breakpoint (s8) is invalid: beyond the end of stream's source string (R7is) is invalid: less than 0(RRR8R (RR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR ps + cCs$|j|j|<||j|jRR RR(Rtc((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytungetc›s   icCs'|j|j|ƒ|j|7_dS(N(R"R (RR?((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytadvance£scCs'|j|j|ƒ|j|8_dS(N(R"R (RR?((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytrev§scCs=|j|j|ƒ|j}|j|7_|j||j!S(N(R"R R(RR?R((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytread«s cCs<|j|ƒ|dkr%|j}n||_|j||!S(N(R"RR R(RttoR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytreadTo±s     cCsUtj|jƒ|jƒƒ}|r3|jƒ}n |jƒ}|jd|d|ƒS(NRGR(RRRRRRRH(RRtgobbleRR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt readToEOL¹s  cCs+|dkr|j}n|jj||ƒS(N(RR Rtfind(RtitR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyRKÂs  cCs*|j||ƒ|jƒkr"tStSdS(N(RKRtTruetFalse(RRLR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt startswithÇscCs+|dkr|j}n|jj||ƒS(N(RR Rtrfind(RRLR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyRPÍs  cCsZ|dkr|j}n|jƒ}t|jdd|ƒd|jdd|ƒddƒS(Ns iis (RR RR&RP(RRR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyRÒs   cCsN|dkr|j}ntj|jƒ|ƒ}|r@|jƒS|jƒSdS(N(RR RRRRR(RRRItmatch((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytfindEOLØs    cCs]|dkr|jƒ}n|j|ƒ|jƒ}|jƒ}||kp\|||!jƒS(N(RRR"RRtisspace(RRRR.((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytisLineClearToPosâs     cCsNt|ttfƒr.|j|d|jƒƒS|j|jƒ|jƒƒSdS(NR(R R8tunicodeRORRQR(RtstrOrRE((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytmatchesêss cCs|jƒ o|jƒ|kS(N(R=R@(RtWSchars((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytmatchWhiteSpaceðscCs |j|ƒsdS|jƒ}|jƒ}|dk rSt||jƒ|ƒ}nx3|jƒ|krˆ|jƒ|j|ƒsVPqVqVW|jƒ||jƒ!S(Nt(RYRRRtminRDR(RR&RXRR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyt getWhiteSpaceós    s cCs|jƒp|jƒ|kS(N(R=R@(RRX((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytmatchNonWhiteSpacescCsr|j|ƒsdS|jƒ}x9|jƒ|jƒkrZ|jƒ|j|ƒs"Pq"q"W|jƒ||jƒ!S(NRZ(R]RRRDR(RRXR((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pytgetNonWhiteSpaces  N(.RRRRRRRR%R(R+R-R0R3R4RR5R6R"RR R:R;R<R=R>R@RARCRDRERFRHRMRJRKRORPRRNRRRTRWRYR\R]R^(((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyR sR                                  ( t__doc__tretsystcompiletEOLreRRtENCODINGsearcht ExceptionRtobjectR(((sC/opt/freeware/lib64/python2.7/site-packages/Cheetah/SourceReader.pyts