-
H=c       s    d  Z    d k Z d k Z  d k l Z  d k l Z l Z  d k l Z l	 Z	 l
 Z
 l Z  d k l Z  d k l Z  d k l Z  d k l Z  d	 Z  d
 Z  d Z  e i d e e f  Z  e i d  Z  e i d  Z   h  d d <d d <d d <Z & y8 ( d k Z ) d k l Z * d   Z / d   Z Wn+ 7 e j
 o 8 d   Z E e Z n XH d   Z [ d d d e d  Z  { d e f d     YZ! vd  e f d!     YZ" d S("   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
N(   s   Node(   s   Visitors   WalkerInterface(   s   exts   XMLNS_NAMESPACEs   XML_NAMESPACEs   XHTML_NAMESPACE(   s   TranslateHtmlCdata(   s   HTML_4_TRANSITIONAL_INLINE(   s   HTML_FORBIDDEN_END(   s   HTML_BOOLEAN_ATTRSs   [---]s   [-][-][-][-]s   []s   %s|%ss   ([-])([-])s   [&<]|]]>s   &amp;s   &s   &lt;s   <s   ]]&gt;s   ]]>(   s   UnicodeTypec    sZ   * + t  i |  d } , t |   t j	 o - t |  d  }  n . | |   d Sd  S(   Ni    s   utf-8(   s   codecss   lookups   encodings   encoders   types   texts   UnicodeTypes   unicode(   s   texts   encodings   encoder(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   utf8_to_code* s   c    s   / 0 t  i |  d d d g j o 1 t d |   n 2 t i |  d } 3 t |   t	 j	 o 4 t
 |  d  }  n 6 t | |   d  Sd  S(   Ns   UTF-8s
   ISO-8859-1s   LATIN-1s   Invalid encoding: %si    s   utf-8(   s   strings   uppers   encodings
   ValueErrors   codecss   lookups   encoders   types   texts   UnicodeTypes   unicodes   str(   s   texts   encodings   encoder(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   strobj_to_utf8str/ s   "c    s   8 9 t  i |  } : | d j o ; |  Sn < d k l } = | i d d  @ | i |   } A | i	 |  }  D |  Sd  S(   Ns   UTF-8(   s   wstrings
   ISO-8859-1s   ISO_8859-1:1987(
   s   strings   uppers   encodings   texts   xml.unicode.iso8859s   wstrings   install_aliass	   from_utf8s   wss   encode(   s   texts   encodings   wstrings   ws(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   utf8_to_code8 s   c    s   H I J |  o K d d f Sn L d |  j o% M d } N t i d d |   } n" P d } Q t i d d |   } U d |  j o V t i d d |  } n W | | f Sd S(	   s9   Handles normalization and some intelligence about quotings    s   's   "s   &quot;s   &apos;s   
s   &#10;N(   s
   characterss	   delimiters   res   subs	   new_chars(   s
   characterss	   new_charss	   delimiter(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   TranslateCdataAttrH s   		s   UTF-8s    i    c    s  [ b c |  o d d Sn e | o f t i |   o& g t i t d  i |   d } n
 k |  } l | d d j o |  d d j o m d | d } n n
 o |  } s t i |  o# t t i d	   v |  d } n w | | |  } x | Sd
 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
    s    c    s   h | |  i   S(   N(   s   ds   ms   group(   s   ms   d(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   <lambda>h s    i    is   ]]s   >s   &gt;i   c    s   u d t  |  i    S(   Ns   &#%i;(   s   ords   ms   group(   s   m(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   <lambda>u s    N(   s
   characterss
   markupSafes   g_cdataCharPatterns   searchs   subns   g_charToEntitys
   new_strings
   prev_charss   XML_ILLEGAL_CHAR_PATTERNs   charsetHandlers   encoding(   s
   characterss   encodings
   prev_charss
   markupSafes   charsetHandlers
   new_string(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   TranslateCdata[ s    	%	s   PrintVisitorc      s   { | d e  e  d d d  Z  d   Z  d   Z  d   Z  e  d  Z  d   Z  d	   Z  d
   Z  d   Z	  d   Z
  d   Z d   Z +d   Z Kd   Z Ud   Z ^d   Z dd   Z jd   Z od   Z RS(   Ns    i    c    s   | ~ | |  _   | |  _  h  g |  _  | p h  |  _  | |  _  d |  _  d |  _	  | p g  |  _  t |  _  | |  _  | |  _  d  Sd  S(   Ni    (   s   streams   selfs   encodings   _namespacess   nsHintss   _nsHintss   indents   _indents   _depths   _inTexts   plainElementss   _plainElementss   Nones   _htmls   isXhtmls   _isXhtmls	   force8bit(   s   selfs   streams   encodings   indents   plainElementss   nsHintss   isXhtmls	   force8bit(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   __init__| s   c    s\     |  i o  t | |  i  } n  t | |  i  }  |  i i |   d  Sd  S(   N(	   s   selfs	   force8bits   strobj_to_utf8strs   texts   encodings   objs   utf8_to_codes   streams   write(   s   selfs   texts   obj(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   _write s
   c    sH     |  i o |  i o"  |  i d |  i |  i  n  d  Sd  S(   Ns   
(   s   selfs   _inTexts   _indents   _writes   _depth(   s   self(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys
   _tryIndent s   "c    sS    |  i t j o  t | i d  |  _ n  | i }  | i t i j o  |  i	 |  Sn | i t i
 j o  |  i |  Sn | i t i j o  |  i |  Sn{ | i t i j o  |  i |  SnQ | i t i j o  |  i |  Sn' | i t i j o  |  i |  Sn  | i t i j o  |  i |  Sn  | i t i j o  |  i |  Sn  | i t i j o  |  i |  Sn  | i t i j o  |  i |  SnU  | i t i j o  |  i |  Sn+  | i t i j o  |  i |  Sn  t  d t! |    d  S(   Ns   getElementsByNames   Unknown node type: %s("   s   selfs   _htmls   Nones   hasattrs   nodes   ownerDocuments   nodeTypes   Nodes   ELEMENT_NODEs   visitElements   ATTRIBUTE_NODEs	   visitAttrs	   TEXT_NODEs	   visitTexts   CDATA_SECTION_NODEs   visitCDATASections   ENTITY_REFERENCE_NODEs   visitEntityReferences   ENTITY_NODEs   visitEntitys   PROCESSING_INSTRUCTION_NODEs   visitProcessingInstructions   COMMENT_NODEs   visitComments   DOCUMENT_NODEs   visitDocuments   DOCUMENT_TYPE_NODEs   visitDocumentTypes   DOCUMENT_FRAGMENT_NODEs   visitDocumentFragments   NOTATION_NODEs   visitNotations	   Exceptions   repr(   s   selfs   nodes   nodeType(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visit s8   c    sB     x. | D ]# }  | | j	 o |  i |  q W d  Sd  S(   N(   s   nodes   currs   excludes   selfs   visit(   s   selfs   nodes   excludes   curr(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitNodeList s   
 	!c    s;     x' | i   D ] }  |  i |  q W d  Sd  S(   N(   s   nodes   valuess   items   selfs   visit(   s   selfs   nodes   item(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitNamedNodeMap s    	c    s     | i t j o  d  Sn  |  i d | i   | i }  | p |  i oN  t | |  i	  }  t |  \ } }  |  i i d | | | f  n  d  Sd  S(   Ns    s   =%s%s%s(   s   nodes   namespaceURIs   XMLNS_NAMESPACEs   selfs   _writes   names   values   _htmls   TranslateCdatas   encodings   texts   TranslateCdataAttrs	   delimiters   streams   write(   s   selfs   nodes	   delimiters   texts   value(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys	   visitAttr s   $c    s8     |  i d |  i p d   d |  _  d  Sd  S(   Ns#   <?xml version='1.0' encoding='%s'?>s   utf-8i    (   s   selfs   _writes   encodings   _inText(   s   self(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitProlog s   c    s_     |  i o
 |  i    | i o |  i | i   |  i | i d | i  d  Sd  S(   Ns   exclude(   s   selfs   _htmls   visitPrologs   nodes   doctypes   visitDocumentTypes   visitNodeLists
   childNodes(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitDocument s   c    s!     |  i | i   d  Sd  S(   N(   s   selfs   visitNodeLists   nodes
   childNodes(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitDocumentFragment s   c 
   s\    |  i i |  i d i     | i |  i j }  | o
 |  i    |  i	 d | i   |  i
 p |  i ot d }  |  i
 o  h  t d <t t <} n  t i |  }  |  i o/  |  i i |   |  i }  h  |  _ n  | d = x | i   D ] }  |  i d i |  p |  i d | | | j og t | |  \ } } | o d | | | | f } n d | | | f } | | } n | | |  i d | <qW	|  i	 |  n 
x* | i i   D
] }	 |  i |	  qWt  | i!  o |  i	 d  |  i" d |  _" |  i# | i!  |  i" d |  _" |  i p | i t$ j o: |  i% o | o
 |  i   |  i	 d	 | i  n na |  i o |  i	 d
  n? | i t$ j o |  i	 d | i  n |  i	 d  |  i d =d |  _% d  Sd  S(   Nis   <%ss    s   xmls    xmlns:%s=%s%s%ss    xmlns=%s%s%ss   >i   s   </%s>s   />s   ></%s>i    (&   s   selfs   _namespacess   appends   copys   nodes   tagNames   _plainElementss   inlines
   _tryIndents   _writes   _isXhtmls   _htmls
   namespacess   XML_NAMESPACEs   XHTML_NAMESPACEs   Nones   nsss   exts   GetAllNss   _nsHintss   updates   keyss   prefixs   has_keys   TranslateCdataAttrs   nsuris	   delimiters   xmlnss
   attributess   valuess   attrs	   visitAttrs   lens
   childNodess   _depths   visitNodeLists   HTML_FORBIDDEN_ENDs   _inText(
   s   selfs   nodes   xmlnss	   delimiters   prefixs   nsuris
   namespacess   inlines   nsss   attr(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitElement sV    	
 	7
 	c    s   | i }  |  i o !t i |  o | } n "| o^ #|  i o $t | |  i	  } n &t
 | |  i	  } '|  i i |  (d |  _ n )d  Sd  S(   Ni   (   s   nodes   datas   texts   selfs   _indents   strings   strips   _htmls   TranslateHtmlCdatas   encodings   TranslateCdatas   streams   writes   _inText(   s   selfs   nodes   text(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys	   visitTexts   
c    s  +,| i o | i o ,d  Sn -|  i   .|  i d | i  /| i o d | i j o 0d | i } n 2d | i } 3| i o d | i j o 7d | i } n 9d | i } :| i o | i o ;|  i d | | f  n& <| i o =|  i d |  n >| i	 p | i
 o} ?|  i d  @|  i d |  _ A|  i | i	  B|  i | i
  C|  i d |  _ D|  i   E|  i d	  n G|  i d
  Hd |  _ Id  Sd  S(   Ns   <!DOCTYPE %ss   "s   '%s's   "%s"s    PUBLIC %s %ss
    SYSTEM %ss    [i   s   ]>s   >i    (   s   doctypes   systemIds   publicIds   selfs
   _tryIndents   _writes   names   systems   publics   entitiess	   notationss   _depths   visitNamedNodeMaps   _inText(   s   selfs   doctypes   publics   system(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitDocumentType+s2    c    s   KLM|  i   N|  i d | i  O| i o |  i d | i  P| i o |  i d | i  Q| i o |  i d | i  R|  i d  Sd Sd S(   s+   Visited from a NamedNodeMap in DocumentTypes   <!ENTITY %ss
    PUBLIC %ss
    SYSTEM %ss	    NDATA %ss   >N(   s   selfs
   _tryIndents   _writes   nodes   nodeNames   publicIds   systemIds   notationName(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitEntityKs   !!!c    s   UVW|  i   X|  i d | i  Y| i o |  i d | i  Z| i o |  i d | i  [|  i d  \d Sd S(   s+   Visited from a NamedNodeMap in DocumentTypes   <!NOTATION %ss
    PUBLIC %ss
    SYSTEM %ss   >N(   s   selfs
   _tryIndents   _writes   nodes   nodeNames   publicIds   systemId(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitNotationUs   !!c    s>   ^_|  i   `|  i d | i  ad |  _ bd  Sd  S(   Ns   <![CDATA[%s]]>i    (   s   selfs
   _tryIndents   _writes   nodes   datas   _inText(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitCDATASection^s   c    s>   de|  i   f|  i d | i  gd |  _ hd  Sd  S(   Ns	   <!--%s-->i    (   s   selfs
   _tryIndents   _writes   nodes   datas   _inText(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitCommentds   c    s1   jk|  i d | i  ld |  _ md  Sd  S(   Ns   &%s;i   (   s   selfs   _writes   nodes   nodeNames   _inText(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitEntityReferencejs   c    sG   op|  i   q|  i d | i | i f  rd |  _ sd  Sd  S(   Ns	   <?%s %s?>i    (   s   selfs
   _tryIndents   _writes   nodes   targets   datas   _inText(   s   selfs   node(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   visitProcessingInstructionos    (   s   Nones   __init__s   _writes
   _tryIndents   visits   visitNodeLists   visitNamedNodeMaps	   visitAttrs   visitPrologs   visitDocuments   visitDocumentFragments   visitElements	   visitTexts   visitDocumentTypes   visitEntitys   visitNotations   visitCDATASections   visitComments   visitEntityReferences   visitProcessingInstruction(    (    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   PrintVisitor{ s&   -/ 
	s   PrintWalkerc      s)   vwd   Z  |d   Z d   Z RS(   Nc    s-   wxt  i |  |  y| |  _ zd  Sd  S(   N(   s   WalkerInterfaces   __init__s   selfs   visitors	   startNodes
   start_node(   s   selfs   visitors	   startNode(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   __init__ws   c    s'   |}~|  i i |  i  d Sd S(   s?   There is really no step to printing.  It prints the whole thingN(   s   selfs   visitors   visits
   start_node(   s   self(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   step|s   c    s   |  i   Sd  S(   N(   s   selfs   step(   s   self(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   runs   (   s   __init__s   steps   run(    (    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   PrintWalkervs   (#   s   __doc__s   strings   res   xml.doms   Nodes   xml.dom.ext.Visitors   Visitors   WalkerInterfaces   exts   XMLNS_NAMESPACEs   XML_NAMESPACEs   XHTML_NAMESPACEs   xml.dom.htmls   TranslateHtmlCdatas   HTML_4_TRANSITIONAL_INLINEs   HTML_FORBIDDEN_ENDs   HTML_BOOLEAN_ATTRSs   ILLEGAL_LOW_CHARSs   SURROGATE_BLOCKs   ILLEGAL_HIGH_CHARSs   compiles   XML_ILLEGAL_CHAR_PATTERNs   g_utf8TwoBytePatterns   g_cdataCharPatterns   g_charToEntitys   codecss   typess   UnicodeTypes   utf8_to_codes   strobj_to_utf8strs   ImportErrors   TranslateCdataAttrs   TranslateCdatas   PrintVisitors   PrintWalker(   s   exts   utf8_to_codes   strings   HTML_FORBIDDEN_ENDs   ILLEGAL_HIGH_CHARSs   SURROGATE_BLOCKs   PrintVisitors   codecss   TranslateCdataAttrs   PrintWalkers   g_charToEntitys   g_cdataCharPatterns   Nodes   XMLNS_NAMESPACEs   TranslateCdatas   HTML_BOOLEAN_ATTRSs   HTML_4_TRANSITIONAL_INLINEs   Visitors   TranslateHtmlCdatas   XML_ILLEGAL_CHAR_PATTERNs   res   UnicodeTypes   WalkerInterfaces   XML_NAMESPACEs   XHTML_NAMESPACEs   g_utf8TwoBytePatterns   strobj_to_utf8strs   ILLEGAL_LOW_CHARS(    (    sF   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/dom/ext/Printer.pys   ? s6   "			$ 