ó \STc@s­dZddlZddlZddlmZddlmZmZddlmZm Z m Z m Z ddl m Z ddl mZddl mZdd l mZd Zd Zd Zejd eefƒZejdƒZejdƒZidd6dd6dd6Zy2ddlZddlmZd„Zd„ZWn ek r^d„ZeZnXd„Zddded„Z defd „ƒYZ!d!efd"„ƒYZ"dS(#sâ The printing sub-system. WWW: http://4suite.com/4DOM e-mail: support@4suite.com Copyright (c) 2000 Fourthought Inc, USA. All Rights Reserved. See http://4suite.com/COPYRIGHT for license and copyright information iÿÿÿÿN(tNode(tVisitortWalkerInterface(texttXMLNS_NAMESPACEt XML_NAMESPACEtXHTML_NAMESPACE(tTranslateHtmlCdata(tHTML_4_TRANSITIONAL_INLINE(tHTML_FORBIDDEN_END(tHTML_BOOLEAN_ATTRSs [- - -]s[ð-÷][€-¿][€-¿][€-¿]sï¿[¾¿]s%s|%ss([À-Ã])([€-¿])s[&<]|]]>s&t&s<t(t UnicodeTypecCsEtj|ƒd}t|ƒtk r7t|dƒ}n||ƒdS(Nisutf-8(tcodecstlookupttypeR tunicode(ttexttencodingtencoder((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt utf8_to_code)scCsstj|ƒdkr(td|ƒ‚ntj|ƒd}t|ƒtk r_t|dƒ}nt||ƒdƒS(NsUTF-8s ISO-8859-1sLATIN-1sInvalid encoding: %sisutf-8(sUTF-8s ISO-8859-1sLATIN-1( tstringtuppert ValueErrorRRRR Rtstr(RRR((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytstrobj_to_utf8str.s cCsatj|ƒ}|dkr|Sddlm}|jddƒ|j|ƒ}|j|ƒ}|S(NsUTF-8iÿÿÿÿ(twstrings ISO-8859-1sISO_8859-1:1987(RRtxml.unicode.iso8859Rt install_aliast from_utf8tencode(RRRtws((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR7s cCs}|s dSd|kr4d}tjdd|ƒ}nd}tjdd|ƒ}d|krstjdd|ƒ}n||fS( s9Handles normalization and some intelligence about quotingtt't"s"s's s (R!R"(tretsub(t characterst delimitert new_chars((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytTranslateCdataAttrGs  sUTF-8R!icCs¼|s dS|sxtj|ƒr>tjtd„|ƒd}n|}|ddkr~|ddkr~d|d}q~n|}tj|ƒr©tjd „|ƒd}n|||ƒ}|S( sô charsetHandler is a function that takes a string or unicode object as the first argument, representing the string to be procesed, and an encoding specifier as the second argument. It must return a string or unicode object R!cSs||jƒS(N(tgroup(tmtd((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytgsiiþÿÿÿs]]t>s>icSsdt|jƒƒS(Ns&#%i;(tordR*(R+((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR-ts(tg_cdataCharPatterntsearchtsubntg_charToEntitytXML_ILLEGAL_CHAR_PATTERN(R&Rt prev_charst markupSafetcharsetHandlert new_string((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytTranslateCdataZs"  t PrintVisitorcBsÅeZdddddd„Zd„Zd„Zd„Zdd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(R!icCsv||_||_ig|_|p'i|_||_d|_d|_|pQg|_d|_ ||_ ||_ dS(Ni( tstreamRt _namespacest_nsHintst_indentt_deptht_inTextt_plainElementstNonet_htmlt_isXhtmlt force8bit(tselfR;Rtindentt plainElementstnsHintstisXhtmlRE((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt__init__{s         cCsD|jrt||jƒ}nt||jƒ}|jj|ƒdS(N(RERRRR;twrite(RFRtobj((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt_writes  cCs5|j r1|jr1|jd|j|jƒndS(Ns (R@R>RNR?(RF((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt _tryIndent•scCs¾|jdkr't|jdƒ|_n|j}|jtjkrO|j|ƒS|jtjkrn|j |ƒS|jtj kr|j |ƒS|jtj kr¬|j |ƒS|jtjkrË|j|ƒS|jtjkrê|j|ƒS|jtjkr |j|ƒS|jtjkr(|j|ƒS|jtjkrG|j|ƒS|jtjkrf|j|ƒS|jtjkr…|j|ƒS|jtjkr¤|j|ƒStdt|ƒƒ‚dS(NtgetElementsByNamesUnknown node type: %s( RCRBthasattrt ownerDocumenttnodeTypeRt ELEMENT_NODEt visitElementtATTRIBUTE_NODEt visitAttrt TEXT_NODEt visitTexttCDATA_SECTION_NODEtvisitCDATASectiontENTITY_REFERENCE_NODEtvisitEntityReferencet ENTITY_NODEt visitEntitytPROCESSING_INSTRUCTION_NODEtvisitProcessingInstructiont COMMENT_NODEt visitCommentt DOCUMENT_NODEt visitDocumenttDOCUMENT_TYPE_NODEtvisitDocumentTypetDOCUMENT_FRAGMENT_NODEtvisitDocumentFragmentt NOTATION_NODEt visitNotationt Exceptiontrepr(RFtnodeRS((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytvisitšs8             cCs.x'|D]}||k o%|j|ƒqWdS(N(Ro(RFRntexcludetcurr((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt visitNodeListÇs cCs(x!|jƒD]}|j|ƒq WdS(N(tvaluesRo(RFRntitem((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytvisitNamedNodeMapÌscCsˆ|jtkrdS|jd|jƒ|j}|s@|j r„t||jƒ}t|ƒ\}}|j j d|||fƒndS(Nt s=%s%s%s( t namespaceURIRRNtnametvalueRCR9RR)R;RL(RFRnRyRR'((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRWÑs  cCs'|jd|jpdƒd|_dS(Ns#sutf-8i(RNRR@(RF((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt visitPrologÝs  cCsJ|j o|jƒ|jo,|j|jƒ|j|jd|jƒdS(NRp(RCRztdoctypeRgRrt childNodes(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyReäscCs|j|jƒdS(N(RrR|(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRiêsc Cs·|jj|jdjƒƒ|j|jk}| o?|jƒ|jd|jƒ|jsg|j r”d}|jrit d6t d6}nt j |ƒ}|jrÊ|jj|ƒ|j}i|_n|d=x°|jƒD]¢}|jdj|ƒ s|jd|||krkt||ƒ\}}|rKd||||f}nd|||f}||}n|||jd|s/>s>i(R<tappendtcopyttagNameRARORNRDRCRRRBRtGetAllNsR=tupdatetkeysthas_keyR)t attributesRsRWtlenR|R?RrR R@( RFRntinlinet namespacestnsstprefixtnsuriR'txmlnstattr((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRUîsR    2      cCs€|j}|jr*tj|ƒo$|}n|r||jrNt||jƒ}nt||jƒ}|jj |ƒd|_ ndS(Ni( tdataR>RtstripRCRRR9R;RLR@(RFRnR((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRYs    cCs||j r|j rdS|jƒ|jd|jƒ|jr^d|jkr^d|j}n d|j}|jr“d|jkr“d|j}n d|j}|jrÌ|jrÌ|jd||fƒn|jré|jd|ƒn|jsû|jrb|jdƒ|jd|_|j|jƒ|j|jƒ|jd|_|jƒ|jd ƒn |jd ƒd |_ dS( Ns R.i( tsystemIdtpublicIdRORNRxtentitiest notationsR?RuR@(RFR{tsystemtpublic((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRg*s2        cCs†|jƒ|jd|jƒ|jo:|jd|jƒ|joW|jd|jƒ|jot|jd|jƒ|jdƒdS(s+Visited from a NamedNodeMap in DocumentTypes i(RORNRŽR@(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR[]s  cCs+|jƒ|jd|jƒd|_dS(Ns i(RORNRŽR@(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRccs  cCs!|jd|jƒd|_dS(Ns&%s;i(RNR–R@(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR]is cCs4|jƒ|jd|j|jfƒd|_dS(Ns i(RORNttargetRŽR@(RFRn((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRans  N(t__name__t __module__RBRKRNRORoRrRuRWRzReRiRURYRgR_RkR[RcR]Ra(((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR:zs(   -      /   t PrintWalkercBs#eZd„Zd„Zd„ZRS(cCstj||ƒ||_dS(N(RRKt start_node(RFtvisitort startNode((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyRKvs cCs|jj|jƒdS(s?There is really no step to printing. It prints the whole thingN(RRoRœ(RF((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytstep{scCs |jƒS(N(RŸ(RF((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pytrun€s(R™RšRKRŸR (((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyR›us  (#t__doc__RR$txml.domRtxml.dom.ext.VisitorRRRRRRt xml.dom.htmlRRR R tILLEGAL_LOW_CHARStSURROGATE_BLOCKtILLEGAL_HIGH_CHARStcompileR4tg_utf8TwoBytePatternR0R3RttypesR RRt ImportErrorR)R9R:R›(((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Printer.pyt s>"         û