‡Æ
ÕMö9c       sâ     d  Z    d k Z  d k Z  d k l Z  e Z  d f  d „  ƒ  YZ 6 d f  d „  ƒ  YZ d f  d „  ƒ  YZ	 .d	 e	 f d
 „  ƒ  YZ
 Ud e	 f d „  ƒ  YZ ‘e d „ Z ¥e d j o ¦e ƒ  n d S(   s
  Generic output formatting.

Formatter objects transform an abstract flow of formatting events into
specific output events on writer objects. Formatters manage several stack
structures to allow various properties of a writer object to be changed and
restored; writers need not be able to handle relative changes nor any sort
of ``change back'' operation. Specific writer properties which may be
controlled via formatter objects are horizontal alignment, font, and left
margin indentations. A mechanism is provided which supports providing
arbitrary, non-exclusive style settings to a writer as well. Additional
interfaces facilitate formatting events which are not reversible, such as
paragraph separation. 

Writer objects encapsulate device interfaces. Abstract devices, such as
file formats, are supported as well as physical devices. The provided
implementations all work with abstract devices. The interface makes
available mechanisms for setting the properties which formatter objects
manage and inserting data into the output. 
N(   s
   StringTypes   NullFormatterc      sé     e  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 / d „  Z 0 d „  Z 1 d „  Z 2 d d „ Z 3 d d „ Z RS(   Nc    s.      | o ! t ƒ  } n " | |  _  d  S(   N(   s   writers
   NullWriters   self(   s   selfs   writers&   /mit/python/lib/python2.0/formatter.pys   __init__ s   c    s
   # # d  S(   N(    (   s   selfs	   blanklines&   /mit/python/lib/python2.0/formatter.pys   end_paragraph# s    c    s
   $ $ d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   add_line_break$ s    c    s
   % % d  S(   N(    (   s   selfs   argss   kws&   /mit/python/lib/python2.0/formatter.pys   add_hor_rule% s    c    s
   & & d  S(   N(    (   s   selfs   formats   counters	   blanklines&   /mit/python/lib/python2.0/formatter.pys   add_label_data& s    c    s
   ' ' d  S(   N(    (   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   add_flowing_data' s    c    s
   ( ( d  S(   N(    (   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   add_literal_data( s    c    s
   ) ) d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   flush_softspace) s    c    s
   * * d  S(   N(    (   s   selfs   aligns&   /mit/python/lib/python2.0/formatter.pys   push_alignment* s    c    s
   + + d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   pop_alignment+ s    c    s
   , , d  S(   N(    (   s   selfs   xs&   /mit/python/lib/python2.0/formatter.pys	   push_font, s    c    s
   - - d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   pop_font- s    c    s
   . . d  S(   N(    (   s   selfs   margins&   /mit/python/lib/python2.0/formatter.pys   push_margin. s    c    s
   / / d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys
   pop_margin/ s    c    s
   0 0 d  S(   N(    (   s   selfs   spacings&   /mit/python/lib/python2.0/formatter.pys   set_spacing0 s    c    s
   1 1 d  S(   N(    (   s   selfs   styless&   /mit/python/lib/python2.0/formatter.pys
   push_style1 s    c    s
   2 2 d  S(   N(    (   s   selfs   ns&   /mit/python/lib/python2.0/formatter.pys	   pop_style2 s    i   c    s
   3 3 d  S(   N(    (   s   selfs   flags&   /mit/python/lib/python2.0/formatter.pys   assert_line_data3 s    (   s   Nones   __init__s   end_paragraphs   add_line_breaks   add_hor_rules   add_label_datas   add_flowing_datas   add_literal_datas   flush_softspaces   push_alignments   pop_alignments	   push_fonts   pop_fonts   push_margins
   pop_margins   set_spacings
   push_styles	   pop_styles   assert_line_data(    s&   /mit/python/lib/python2.0/formatter.pys   NullFormatter s$   s   AbstractFormatterc      s  6 = d „  Z  L d „  Z W d „  Z ^ d „  Z e e d „ Z q d „  Z ƒ d „  Z ‹ d „  Z £ e	 i
 e	 i e	 i d	 „ Z ¼ d
 „  Z Å d „  Z Ì d „  Z Ô d „  Z Þ d „  Z í d „  Z ö d „  Z ý d „  Z d „  Z d „  Z d d „ Z d d „ Z RS(   Nc    s£   = > | |  _  ? t |  _ @ g  |  _ A g  |  _ B g  |  _ C t |  _ D g  |  _ E d |  _	 F d |  _
 G d |  _ H d |  _ I d |  _ J d |  _ d  S(   Ni   i    (   s   writers   selfs   Nones   aligns   align_stacks
   font_stacks   margin_stacks   spacings   style_stacks   nospaces	   softspaces   para_ends   parskips
   hard_breaks
   have_label(   s   selfs   writers&   /mit/python/lib/python2.0/formatter.pys   __init__= s   c    s¯   L M |  i o  N |  i i ƒ  O d |  _ n P |  i | j  o |  i o6 Q |  i i | |  i ƒ R | |  _ S d |  _ n T d |  _ |  _ |  _	 U d |  _
 d  S(   Ni    i   (   s   selfs
   hard_breaks   writers   send_line_breaks
   have_labels   parskips	   blanklines   send_paragraphs   nospaces   para_ends	   softspace(   s   selfs	   blanklines&   /mit/python/lib/python2.0/formatter.pys   end_paragraphL s   c    se   W X |  i p |  i o' Y |  i i ƒ  Z d |  _ |  _ n [ d |  _ |  _ \ d |  _ d  S(   Ni    i   (	   s   selfs
   hard_breaks   para_ends   writers   send_line_breaks
   have_labels   parskips   nospaces	   softspace(   s   selfs&   /mit/python/lib/python2.0/formatter.pys   add_line_breakW s
   c    sv   ^ _ |  i o ` |  i i ƒ  n a t |  i i | | ƒ b d |  _ |  _ c d |  _	 |  _
 |  _ |  _ d  S(   Ni   i    (   s   selfs
   hard_breaks   writers   send_line_breaks   applys   send_hor_rules   argss   kws   nospaces
   have_labels   para_ends	   softspaces   parskip(   s   selfs   argss   kws&   /mit/python/lib/python2.0/formatter.pys   add_hor_rule^ s
   c    sæ   e f |  i p |  i o g |  i i ƒ  n h |  i o% i |  i i | o d p d ƒ n j t | ƒ t
 j o# k |  i i |  i | | ƒ ƒ n m |  i i | ƒ n d |  _ |  _ |  _ |  _ o d |  _ |  _ d  S(   Ni   i    (   s   selfs
   have_labels
   hard_breaks   writers   send_line_breaks   para_ends   send_paragraphs	   blanklines   types   formats
   StringTypes   send_label_datas   format_counters   counters   nospaces	   softspaces   parskip(   s   selfs   formats   counters	   blanklines&   /mit/python/lib/python2.0/formatter.pys   add_label_datae s   %#!c    s  q r d } s xè | d s rÛ } t y¸ u | d j o v | d | } n w | d j o1 x | d j o y | |  i | | ƒ } n nO z | d j o1 { | d j o | | |  i | | ƒ } n n ~ | | } Wn  € | | } n Xq W | Sd  S(   Ns    i    s   1s   %ds   aAs   iI(   s   labels   formats   cs   counters   selfs   format_letters   format_roman(   s   selfs   formats   counters   labels   cs&   /mit/python/lib/python2.0/formatter.pys   format_counterq s    	 	!!c    st   ƒ „ d } … xW … | d j oF † t | d d ƒ \ } } ‡ t t | ƒ | ƒ } ˆ | | } q W‰ | Sd  S(   Ns    i    i   i   (   s   labels   counters   divmods   xs   chrs   ords   cases   s(   s   selfs   cases   counters   labels   xs   ss&   /mit/python/lib/python2.0/formatter.pys   format_letterƒ s   	 c 	   se  ‹ Œ d d d d g }  d d d g } Ž d d	 f \ } }  xñ  | d	 j oà ‘ t | d
 ƒ \ } } ’ | d j o! “ | | | | d | } n‡ ” | d j o • | | | | | } nZ — | d j o ˜ | | } ™ | d } n
 › d } œ | | | | }  | | } ž | d } qE WŸ | d j o   t	 i
 | ƒ Sn ¡ | Sd  S(   Ns   is   xs   cs   ms   vs   ls   ds    i    i
   i	   i   i   i   s   I(   s   oness   fivess   labels   indexs   counters   divmods   xs   ss   cases   strings   upper(	   s   selfs   cases   counters   oness   fivess   labels   indexs   xs   ss&   /mit/python/lib/python2.0/formatter.pys   format_roman‹ s(    !	c    s7  £ § | o § d  Sn ª | d  | j } « | d | j } ¬ | | | ƒ ƒ } ­ |  i o | o ® d  Snx ¯ | p |  i oc ° | o5 ± |  i o ² d |  _ ³ d |  _	 n ´ d  Sn µ |  i o ¶ d | } n n · d |  _
 |  _ |  _ |  _	 |  _ ¹ | |  _ º |  i i | ƒ d  S(   Ni   i    s    (   s   datas
   whitespaces   prespaces	   postspaces   joins   splits   selfs   nospaces	   softspaces   parskips
   hard_breaks   para_ends
   have_labels   writers   send_flowing_data(   s   selfs   datas
   whitespaces   joins   splits   prespaces	   postspaces&   /mit/python/lib/python2.0/formatter.pys   add_flowing_data£ s$    (c    s“   ¼ ½ | o ½ d  Sn ¾ |  i o ¿ |  i i d ƒ n À | d d j |  _ Á d |  _ |  _ |  _ |  _ |  _	 Ã |  i i
 | ƒ d  S(   Ns    i   s   
i    (   s   datas   selfs	   softspaces   writers   send_flowing_datas
   hard_breaks   nospaces   para_ends   parskips
   have_labels   send_literal_data(   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   add_literal_data¼ s    (c    s_   Å Æ |  i oK Ç d |  _ |  _ |  _ |  _ |  _ É d |  _ Ê |  i i d ƒ n d  S(   Ni    i   s    (	   s   selfs	   softspaces
   hard_breaks   para_ends   parskips
   have_labels   nospaces   writers   send_flowing_data(   s   selfs&   /mit/python/lib/python2.0/formatter.pys   flush_softspaceÅ s   (c    sm   Ì Í | o | |  i  j o6 Î |  i i | ƒ Ï | |  _  Ð |  i i | ƒ n Ò |  i i |  i  ƒ d  S(   N(   s   aligns   selfs   writers   new_alignments   align_stacks   append(   s   selfs   aligns&   /mit/python/lib/python2.0/formatter.pys   push_alignmentÌ s
   c    s   Ô Õ |  i o Ö |  i d =n × |  i o/ Ø |  i d |  _ } Ù |  i i | ƒ n  Û t |  _ Ü |  i i t ƒ d  S(   Ni   (   s   selfs   align_stacks   aligns   writers   new_alignments   None(   s   selfs   aligns&   /mit/python/lib/python2.0/formatter.pys   pop_alignmentÔ s   c    s@  Þ | \ } } } } ß |  i o= à d |  _ |  _ |  _ á d |  _ â |  i i d ƒ n ã |  i o• ä |  i d \ } } } }	 å | t j o å | } n æ | t j o æ | } n ç | t j o ç | } n è | t j o è |	 } n n é | | | | f }
 ê |  i i |
 ƒ ë |  i i |
 ƒ d  S(   Ni    i   s    (   s   selfs	   softspaces
   hard_breaks   para_ends   nospaces   writers   send_flowing_datas
   font_stacks   csizes   cis   cbs   ctts   sizes   AS_ISs   is   bs   tts   fonts   appends   new_font(   s   selfs   .2s   sizes   is   bs   tts   csizes   cis   cbs   ctts   fonts&   /mit/python/lib/python2.0/formatter.pys	   push_fontÞ s"       c    sd   í î |  i o ï |  i d =n ð |  i o ñ |  i d } n
 ó t } ô |  i i | ƒ d  S(   Ni   (   s   selfs
   font_stacks   fonts   Nones   writers   new_font(   s   selfs   fonts&   /mit/python/lib/python2.0/formatter.pys   pop_fontí s   	c    so   ö ÷ |  i i | ƒ ø t t |  i ƒ } ù | o | o ú | d } n û |  i i | t	 | ƒ ƒ d  S(   Ni   (
   s   selfs   margin_stacks   appends   margins   filters   Nones   fstacks   writers
   new_margins   len(   s   selfs   margins   fstacks&   /mit/python/lib/python2.0/formatter.pys   push_marginö s
   c    s|   ý þ |  i o ÿ |  i d =n  t t |  i ƒ } | o | d } n
 t } |  i i | t | ƒ ƒ d  S(   Ni   (	   s   selfs   margin_stacks   filters   Nones   fstacks   margins   writers
   new_margins   len(   s   selfs   fstacks   margins&   /mit/python/lib/python2.0/formatter.pys
   pop_marginý s   
	c    s&   | |  _  	|  i i | ƒ d  S(   N(   s   spacings   selfs   writers   new_spacing(   s   selfs   spacings&   /mit/python/lib/python2.0/formatter.pys   set_spacings   c    s™   |  i o= d |  _ |  _ |  _ d |  _ |  i i d ƒ n x& | d r } |  i	 i
 | ƒ qY W|  i i t |  i	 ƒ ƒ d  S(   Ni    i   s    (   s   selfs	   softspaces
   hard_breaks   para_ends   nospaces   writers   send_flowing_datas   styless   styles   style_stacks   appends
   new_styless   tuple(   s   selfs   styless   styles&   /mit/python/lib/python2.0/formatter.pys
   push_styles    	c    s1   |  i | 3|  i i t |  i ƒ ƒ d  S(   N(   s   selfs   style_stacks   ns   writers
   new_styless   tuple(   s   selfs   ns&   /mit/python/lib/python2.0/formatter.pys	   pop_styles   i   c    s5   | |  _ |  _ d |  _ |  _ |  _ d  S(   Ni    (   s   flags   selfs   nospaces
   hard_breaks   para_ends   parskips
   have_label(   s   selfs   flags&   /mit/python/lib/python2.0/formatter.pys   assert_line_datas   (   s   __init__s   end_paragraphs   add_line_breaks   add_hor_rules   Nones   add_label_datas   format_counters   format_letters   format_romans   strings
   whitespaces   joins   splits   add_flowing_datas   add_literal_datas   flush_softspaces   push_alignments   pop_alignments	   push_fonts   pop_fonts   push_margins
   pop_margins   set_spacings
   push_styles	   pop_styles   assert_line_data(    s&   /mit/python/lib/python2.0/formatter.pys   AbstractFormatter6 s*   	
	
	s
   NullWriterc      sª   d  Z  d „  Z  d „  Z !d „  Z "d „  Z #d „  Z $d „  Z %d „  Z &d „  Z 'd	 „  Z	 (d
 „  Z
 )d „  Z *d „  Z +d „  Z RS(   s9   Minimal writer interface to use in testing & inheritance.c    s
   d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   __init__s    c    s
     d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   flush s    c    s
   !!d  S(   N(    (   s   selfs   aligns&   /mit/python/lib/python2.0/formatter.pys   new_alignment!s    c    s
   ""d  S(   N(    (   s   selfs   fonts&   /mit/python/lib/python2.0/formatter.pys   new_font"s    c    s
   ##d  S(   N(    (   s   selfs   margins   levels&   /mit/python/lib/python2.0/formatter.pys
   new_margin#s    c    s
   $$d  S(   N(    (   s   selfs   spacings&   /mit/python/lib/python2.0/formatter.pys   new_spacing$s    c    s
   %%d  S(   N(    (   s   selfs   styless&   /mit/python/lib/python2.0/formatter.pys
   new_styles%s    c    s
   &&d  S(   N(    (   s   selfs	   blanklines&   /mit/python/lib/python2.0/formatter.pys   send_paragraph&s    c    s
   ''d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   send_line_break's    c    s
   ((d  S(   N(    (   s   selfs   argss   kws&   /mit/python/lib/python2.0/formatter.pys   send_hor_rule(s    c    s
   ))d  S(   N(    (   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_label_data)s    c    s
   **d  S(   N(    (   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_flowing_data*s    c    s
   ++d  S(   N(    (   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_literal_data+s    (   s   __doc__s   __init__s   flushs   new_alignments   new_fonts
   new_margins   new_spacings
   new_styless   send_paragraphs   send_line_breaks   send_hor_rules   send_label_datas   send_flowing_datas   send_literal_data(    s&   /mit/python/lib/python2.0/formatter.pys
   NullWriters   	s   AbstractWriterc      s•   .0d „  Z  3d „  Z 6d „  Z 9d „  Z <d „  Z ?d „  Z Bd „  Z Ed „  Z Hd	 „  Z Kd
 „  Z	 Nd „  Z
 Qd „  Z RS(   Nc    s
   01d  S(   N(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   __init__0s   c    s   34d | GHd  S(   Ns   new_alignment(%s)(   s   align(   s   selfs   aligns&   /mit/python/lib/python2.0/formatter.pys   new_alignment3s   c    s   67d | GHd  S(   Ns   new_font(%s)(   s   font(   s   selfs   fonts&   /mit/python/lib/python2.0/formatter.pys   new_font6s   c    s   9:d | | f GHd  S(   Ns   new_margin(%s, %d)(   s   margins   level(   s   selfs   margins   levels&   /mit/python/lib/python2.0/formatter.pys
   new_margin9s   c    s   <=d | GHd  S(   Ns   new_spacing(%s)(   s   spacing(   s   selfs   spacings&   /mit/python/lib/python2.0/formatter.pys   new_spacing<s   c    s   ?@d | GHd  S(   Ns   new_styles(%s)(   s   styles(   s   selfs   styless&   /mit/python/lib/python2.0/formatter.pys
   new_styles?s   c    s   BCd | GHd  S(   Ns   send_paragraph(%s)(   s	   blankline(   s   selfs	   blanklines&   /mit/python/lib/python2.0/formatter.pys   send_paragraphBs   c    s   EFd GHd  S(   Ns   send_line_break()(    (   s   selfs&   /mit/python/lib/python2.0/formatter.pys   send_line_breakEs   c    s   HId GHd  S(   Ns   send_hor_rule()(    (   s   selfs   argss   kws&   /mit/python/lib/python2.0/formatter.pys   send_hor_ruleHs   c    s   KLd | GHd  S(   Ns   send_label_data(%s)(   s   data(   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_label_dataKs   c    s   NOd | GHd  S(   Ns   send_flowing_data(%s)(   s   data(   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_flowing_dataNs   c    s   QRd | GHd  S(   Ns   send_literal_data(%s)(   s   data(   s   selfs   datas&   /mit/python/lib/python2.0/formatter.pys   send_literal_dataQs   (   s   __init__s   new_alignments   new_fonts
   new_margins   new_spacings
   new_styless   send_paragraphs   send_line_breaks   send_hor_rules   send_label_datas   send_flowing_datas   send_literal_data(    s&   /mit/python/lib/python2.0/formatter.pys   AbstractWriter.s   s
   DumbWriterc      s_   UWe  d d „ Z ]d „  Z ad „  Z fd „  Z kd „  Z rd „  Z |d „  Z RS(	   Nc    sF   WX| p t i |  _  Y| |  _ Zt i |  ƒ [|  i ƒ  d  S(   N(   s   files   syss   stdouts   selfs   maxcols
   NullWriters   __init__s   reset(   s   selfs   files   maxcols&   /mit/python/lib/python2.0/formatter.pys   __init__Ws   iH   c    s   ]^d |  _ _d |  _ d  S(   Ni    (   s   selfs   cols   atbreak(   s   selfs&   /mit/python/lib/python2.0/formatter.pys   reset]s   c    s6   ab|  i i d | ƒ cd |  _ dd |  _ d  S(   Ns   
i    (   s   selfs   files   writes	   blanklines   cols   atbreak(   s   selfs	   blanklines&   /mit/python/lib/python2.0/formatter.pys   send_paragraphas   c    s2   fg|  i i d ƒ hd |  _ id |  _ d  S(   Ns   
i    (   s   selfs   files   writes   cols   atbreak(   s   selfs&   /mit/python/lib/python2.0/formatter.pys   send_line_breakfs   c    s_   kl|  i i d ƒ m|  i i d |  i ƒ n|  i i d ƒ od |  _ pd |  _ d  S(   Ns   
s   -i    (   s   selfs   files   writes   maxcols   cols   atbreak(   s   selfs   argss   kws&   /mit/python/lib/python2.0/formatter.pys   send_hor_ruleks
   c    s—   rs|  i i | ƒ tt i | d ƒ } u| d j o! vd |  _ w| | d } n xt i | ƒ } y|  i t	 | ƒ |  _ zd |  _
 d  S(   Ns   
i    i   (   s   selfs   files   writes   datas   strings   rfinds   is   cols
   expandtabss   lens   atbreak(   s   selfs   datas   is&   /mit/python/lib/python2.0/formatter.pys   send_literal_datars   c    s1  |}| o }d  Sn ~|  i p | d t i j } |  i } €|  i } |  i i } ‚x¡ t i	 | ƒ d ‚r‹ } ƒ| oR „| t | ƒ | j o …| d ƒ †d } n ˆ| d ƒ ‰| d } n Š| | ƒ ‹| t | ƒ } Œd } qu W| |  _ Ž| d t i j |  _ d  S(   Ni    s   
s    i   (   s   datas   selfs   atbreaks   strings
   whitespaces   cols   maxcols   files   writes   splits   words   len(   s   selfs   datas   atbreaks   cols   maxcols   writes   words&   /mit/python/lib/python2.0/formatter.pys   send_flowing_data|s&      	
(   s   Nones   __init__s   resets   send_paragraphs   send_line_breaks   send_hor_rules   send_literal_datas   send_flowing_data(    s&   /mit/python/lib/python2.0/formatter.pys
   DumbWriterUs   
c    sñ   ‘’t  ƒ  } “t | ƒ } ”|  o •t |  ƒ } n8 –t i d o —t t i d ƒ } n ™t i	 } šxe šd oZ ›| i
 ƒ  } œ| o Pn ž| d j o Ÿ| i d ƒ n ¡| i | ƒ qx W¢| i d ƒ d  S(   Ni   s   
i    (   s
   DumbWriters   ws   AbstractFormatters   fs   files   opens   fps   syss   argvs   stdins   readlines   lines   end_paragraphs   add_flowing_data(   s   files   ws   fs   fps   lines&   /mit/python/lib/python2.0/formatter.pys   test‘s    
 
s   __main__(   s   __doc__s   strings   syss   typess
   StringTypes   Nones   AS_ISs   NullFormatters   AbstractFormatters
   NullWriters   AbstractWriters
   DumbWriters   tests   __name__(    s&   /mit/python/lib/python2.0/formatter.pys   ? s   	ç'<