ó `WôVc @s†ddlZddlZddljZddlZddlZddlZejZdde dddddd„Z de fd„ƒYZ de fd„ƒYZdefd„ƒYZd efd „ƒYZd efd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdddd„Zedkr‚ejejdƒejdƒejdZejeƒZndS(iÿÿÿÿNc CsKtjjjƒ}|r<||_|jjdtƒ|_n|rN||_ n|rx||_ |jjdtƒ|_ n|rŠ||_ n|rœ||_ nd} t} z•yK|rÙt|dƒ} |j| ƒt} n|rõ|j|ƒt} nWnCtk r;} |r5ttdƒi|d6| d6ƒ‚n‚nXWd~ ~X| S(Ntordered_attributest buffer_texttrs Parse failure for '%(f)s': %(e)stfte(txmltparserstexpatt ParserCreatetStartElementHandlert__dict__tgettFalseRtEndElementHandlertCharacterDataHandlerRtCommentHandlertDefaultHandlertNonetopent ParseFiletTruetParset Exceptiont RuntimeErrort_( tfilenametstringtfailmsgt element_startt element_endtcdatatcommenttdefaulttparsertxmlfiletparseOKR((s xml_util.pytxmlParses@           t XMLRenderercBs³eZd„Zd„Zd„Zddd„Zed„Zeddd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„ZRS(cCsgd|_d|_g|_g|_g|_t|_d|_d|_ d|_ i|_ g|_ dS(Nitinputti( t opt_indentRtopt_linelengtht opt_aligntagstopt_runningtagstopt_preformtagsRtopt_fatal_warningstxmlnametouttcurlentctxtt ctxtstack(tself((s xml_util.pyt__init__Ds          cCs)|jj|jƒt|jƒ|_dS(N(R2tappendR1tdict(R3((s xml_util.pytpushQscCs|jjƒ|_dS(N(R2tpopR1(R3((s xml_util.pyR8UsicCsP|j}t|jƒ}||||}|j|d7_|j|7_dS(Nt (R(tlenR2R/R0(R3textratoffsettitdepthtspaces((s xml_util.pytindentXs  cCs”t|ƒ}|jrM|rM|j||jkrM|jdddddƒn|j|7_d|kr||jdƒ|_n|j|7_dS(NR'R;iR<is (R:R)R0t appendlineR/trindex(R3tstcanbreaktslen((s xml_util.pyR5_s  cCsT|jr$|jd7_d|_n|r=|j||ƒn|j|dtƒdS(Ns iRD(R/R0R@R5R (R3RCR@R;R<((s xml_util.pyRAjs   cCs+x!|jD]}|jd|ƒq W|jS(Ntrenderer(tmemberstrenderR/(R3tnodetm((s xml_util.pyt renderdocrsc Csd|j}|j|jkrXd|jdkrBd|jdis<>tnonls(ttagR+R1R5R RAtattrsRHRGR7R*RR,ttypetXMLCDatat leadingnltdataR R8R/( R3RItreptatptagtm0t m0iscdataRJtnl((s xml_util.pyt renderelementwsH          cCsJd|j|j|jƒf}|jd|d|jjdƒ ƒ|jS(Ns%s="%s"R9RDRM(tkeyt attr_safetvalueR5R1R R/(R3RIRW((s xml_util.pyt renderattr s$csÉ|j}|jjdƒrI|jt|jƒ‰|jjdƒs_dtjdd|ƒ}ntjdd|ƒ}tjd|ƒ}|j r.|j r.g|D]7}ˆt|ƒ|j krŸtj d|ƒrŸ|^qŸr.t dƒ|j ˆ|fGHtjd }d |jkr.td |jƒ|_q.nt‡fd †|ƒ}n|jjdƒr|j|j|j|ƒƒd tƒd|jdk|jdºsRDRORPR@(RVR1R R(R:R2tretsubtsplitR)R-tsearchRR.tsystmodulesR tmaxRctreduceR5t data_safettrimR RAR/(R3RIRVtdlsttxtmain((Res xml_util.pyt rendercdata¥s, &   %%cCs,|j}d|jkr°d|kr°tjd|ƒ}d|d}|j|ƒx(|dd!D]}|j|dd ƒq_W|dd }|j|d|dr¦d p©dƒnu|j|ƒrtjd d |ƒ}d|}|j|ƒd }|j|ƒn$dt|jƒd }|j|ƒ|jS( Ns!--s s [^\S ]*ss\s*$R'( RVR*RgRiRAt trailingnlRhtstrR/(R3RIRVtdatalistRWtd((s xml_util.pyt rendercommentÃs$  &   cCs|j|jdtƒ|jS(NR@(RARVR R/(R3RI((s xml_util.pyt renderotherØscCstjd|ƒS(Ns ^\s* \s*\S(RgRj(R3tc((s xml_util.pyRUÜscCstjd|ƒS(Ns \S\s* \s*$(RgRj(R3R{((s xml_util.pyRußscCsXtjdd|ƒ}tjdd|ƒ}tjdd|ƒ}tjdd|ƒ}|S( Nt&s&t"s"RLs<ROs>(RgRh(R3tv((s xml_util.pyR_âs cCsCtjdd|ƒ}tjdd|ƒ}tjdd|ƒ}|S(NR|s&RLs<ROs>(RgRh(R3R~((s xml_util.pyRoêscCs^d|jjdƒkrEtjdd|ƒ}tjdd|ƒ}ntjdd|ƒ}|S(NRLRMs^[ ]*R's^ s\s* \s*$(R1R RgRh(R3R{((s xml_util.pyRpðs (t__name__t __module__R4R7R8R@RR5RARKR]RaRtRyRzRURuR_RoRp(((s xml_util.pyR%Cs"     )        tXMLNodecBseZdd„Zd„ZRS(cCs&||_|r"|jj|ƒndS(N(tparentRGR5(R3R‚((s xml_util.pyR4ûs cCs|stƒ}n|S(N(R%(R3RF((s xml_util.pyt rendererallocs N(RR€RR4Rƒ(((s xml_util.pyRús tXMLDoccBs#eZedd„Zdd„ZRS(cCs3tj||ƒg|_|r/td|ƒndS(Ns&(RR4RGtXMLOther(R3tgenerateR‚((s xml_util.pyR4s cCs|j|ƒ}|j|ƒS(N(RƒRK(R3RF((s xml_util.pyRH sN(RR€R RR4RH(((s xml_util.pyR„stXMLAttrcBs eZdd„Zdd„ZRS(cCs&tj||ƒ||_||_dS(N(RR4R^R`(R3R^R`R‚((s xml_util.pyR4s cCs|j|ƒ}|j|ƒS(N(RƒRa(R3RF((s xml_util.pyRHsN(RR€RR4RH(((s xml_util.pyR‡s t XMLElementcBs#eZddd„Zdd„ZRS(cCstj||ƒ||_g|_xEtdt|ƒdƒD]+}|jjt||||dƒƒq;Wg|_|r‰t ||ƒndS(Niii( RR4RQRRtrangeR:R5R‡RGRT(R3RQRRR‚Rtk((s xml_util.pyR4s  ) cCs|j|ƒ}|j|ƒS(N(RƒR](R3RF((s xml_util.pyRH(sN(RR€RR4RH(((s xml_util.pyRˆs RTcBs eZdd„Zdd„ZRS(cCstj||ƒ||_dS(N(RR4RV(R3RVR‚((s xml_util.pyR4.scCs|j|ƒ}|j|ƒS(N(RƒRt(R3RF((s xml_util.pyRH2sN(RR€RR4RH(((s xml_util.pyRT-s t XMLCommentcBs eZdd„Zdd„ZRS(cCstj||ƒ||_dS(N(RR4RV(R3RVR‚((s xml_util.pyR48scCs|j|ƒ}|j|ƒS(N(RƒRy(R3RF((s xml_util.pyRH<sN(RR€RR4RH(((s xml_util.pyR‹7s R…cBs eZdd„Zdd„ZRS(cCstj||ƒ||_dS(N(RR4RV(R3RVR‚((s xml_util.pyR4BscCs|j|ƒ}|j|ƒS(N(RƒRz(R3RF((s xml_util.pyRHFsN(RR€RR4RH(((s xml_util.pyR…As ic sÚtƒg‰d„‰‡‡‡fd†}t|jd<‡‡‡fd†}‡‡fd†}t|jd<‡‡fd†}‡‡fd†}td |d |d td |d |d|d|d|ƒ}|sÒdSˆdS(s process an XML file cSs)t|ƒdd}|d|dGHdS(NiR9RLRO(R:(tstackttagstrR@((s xml_util.pyttagprintRscs:t||ˆdƒˆd<ˆdkr6ˆˆ|ƒndS(Nii(Rˆ(RQRR(tnodesRŽtverbose(s xml_util.pyt start_elementVs Rcs5ˆdkr ˆˆd|ƒnˆdjˆd s.        (·      7