;
Êâ"Ic               @   s–   d  Z  d d l Z d Z Gd „  d ƒ Z Gd „  d ƒ Z Gd „  d ƒ Z Gd	 „  d
 e ƒ Z Gd „  d e ƒ Z d d „ Z	 e
 d k o e	 ƒ  n d S(   u  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.
i    Nc             B   sÂ   |  Ee  Z d  Z d d „ Z d „  Z d „  Z d „  Z d 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 d „ Z d d „ Z d S(   u=  A formatter which does nothing.

    If the writer parameter is omitted, a NullWriter instance is created.
    No methods of the writer are called by NullFormatter instances.

    Implementations should inherit from this class if implementing a writer
    interface but don't need to inherit any implementation.

    c             C   s'   | d  k o t ƒ  } n | |  _ d  S(   N(   u   Noneu
   NullWriteru   writer(   u   selfu   writer(    (    u&   /mit/python/lib/python3.0/formatter.pyu   __init__&   s    c             C   s   d  S(   N(    (   u   selfu	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   end_paragraph*   s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_line_break+   s    c             O   s   d  S(   N(    (   u   selfu   argsu   kw(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_hor_rule,   s    c             C   s   d  S(   N(    (   u   selfu   formatu   counteru	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_label_data-   s    c             C   s   d  S(   N(    (   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_flowing_data.   s    c             C   s   d  S(   N(    (   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_literal_data/   s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   flush_softspace0   s    c             C   s   d  S(   N(    (   u   selfu   align(    (    u&   /mit/python/lib/python3.0/formatter.pyu   push_alignment1   s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   pop_alignment2   s    c             C   s   d  S(   N(    (   u   selfu   x(    (    u&   /mit/python/lib/python3.0/formatter.pyu	   push_font3   s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   pop_font4   s    c             C   s   d  S(   N(    (   u   selfu   margin(    (    u&   /mit/python/lib/python3.0/formatter.pyu   push_margin5   s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   pop_margin6   s    c             C   s   d  S(   N(    (   u   selfu   spacing(    (    u&   /mit/python/lib/python3.0/formatter.pyu   set_spacing7   s    c             G   s   d  S(   N(    (   u   selfu   styles(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   push_style8   s    i   c             C   s   d  S(   N(    (   u   selfu   n(    (    u&   /mit/python/lib/python3.0/formatter.pyu	   pop_style9   s    c             C   s   d  S(   N(    (   u   selfu   flag(    (    u&   /mit/python/lib/python3.0/formatter.pyu   assert_line_data:   s    N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   end_paragraphu   add_line_breaku   add_hor_ruleu   add_label_datau   add_flowing_datau   add_literal_datau   flush_softspaceu   push_alignmentu   pop_alignmentu	   push_fontu   pop_fontu   push_marginu
   pop_marginu   set_spacingu
   push_styleu	   pop_styleu   assert_line_data(   u
   __locals__(    (    u&   /mit/python/lib/python3.0/formatter.pyu   NullFormatter   s&   
															u   NullFormatterc             B   sÚ   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d 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 d „  Z d d „ Z d d „ Z d S(   uê   The standard formatter.

    This implementation has demonstrated wide applicability to many writers,
    and may be used directly in most circumstances.  It has been used to
    implement a full-featured World Wide Web browser.

    c             C   sy   | |  _  d  |  _ g  |  _ g  |  _ g  |  _ d  |  _ g  |  _ d |  _ d |  _	 d |  _
 d |  _ d |  _ d |  _ d  S(   Ni   i    (   u   writeru   Noneu   alignu   align_stacku
   font_stacku   margin_stacku   spacingu   style_stacku   nospaceu	   softspaceu   para_endu   parskipu
   hard_breaku
   have_label(   u   selfu   writer(    (    u&   /mit/python/lib/python3.0/formatter.pyu   __init__K   s    												c             C   s   |  j  p |  j j ƒ  d |  _ n |  j | k  o8 |  j o- |  j j | |  j ƒ | |  _ d |  _ n d |  _  |  _ |  _ d |  _ d  S(   Ni    i   (	   u
   hard_breaku   writeru   send_line_breaku
   have_labelu   parskipu   send_paragraphu   nospaceu   para_endu	   softspace(   u   selfu	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   end_paragraphZ   s    
	c             C   sR   |  j  p |  j p! |  j j ƒ  d |  _ |  _ n d |  _  |  _ d |  _ d  S(   Ni    i   (   u
   hard_breaku   para_endu   writeru   send_line_breaku
   have_labelu   parskipu   nospaceu	   softspace(   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_line_breake   s
    c             O   s`   |  j  p |  j j ƒ  n |  j j | | Ž  d |  _  |  _ d |  _ |  _ |  _ |  _ d  S(   Ni   i    (	   u
   hard_breaku   writeru   send_line_breaku   send_hor_ruleu   nospaceu
   have_labelu   para_endu	   softspaceu   parskip(   u   selfu   argsu   kw(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_hor_rulel   s
    
c             C   sÄ   |  j  p |  j o |  j j ƒ  n |  j p" |  j j | o d p d ƒ n t | t ƒ o  |  j j |  j	 | | ƒ ƒ n |  j j | ƒ d |  _
 |  _  |  _ |  _ d |  _ |  _ d  S(   Ni   i    (   u
   have_labelu
   hard_breaku   writeru   send_line_breaku   para_endu   send_paragraphu
   isinstanceu   stru   send_label_datau   format_counteru   nospaceu	   softspaceu   parskip(   u   selfu   formatu   counteru	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_label_datas   s    
" c             C   s´   d } x§ | D]Ÿ } | d k o | d | } q | d k o+ | d k o | |  j  | | ƒ } q¬ q | d k o+ | d k o | |  j | | ƒ } q¬ q | | } q W| S(   Nu    u   1u   %du   aAi    u   iI(   u   format_letteru   format_roman(   u   selfu   formatu   counteru   labelu   c(    (    u&   /mit/python/lib/python3.0/formatter.pyu   format_counter   s     c             C   sX   d } xK | d k o= t  | d d ƒ \ } } t t | ƒ | ƒ } | | } q	 W| S(   Nu    i    i   i   (   u   divmodu   chru   ord(   u   selfu   caseu   counteru   labelu   xu   s(    (    u&   /mit/python/lib/python3.0/formatter.pyu   format_letterŽ   s     c       	      C   s  d d d d g } d d d g } d \ } } xÊ | d	 k o¼ t  | d
 ƒ \ } } | d k o | | | | d | } no | d k o | | | | | } nH | d k o | | } | d } n d } | | | | } | | } | d } q0 W| d k o | j ƒ  S| S(   Nu   iu   xu   cu   mu   vu   lu   du    i    i
   i	   i   i   i   u   I(   u    i    (   u   divmodu   upper(	   u   selfu   caseu   counteru   onesu   fivesu   labelu   indexu   xu   s(    (    u&   /mit/python/lib/python3.0/formatter.pyu   format_roman™   s(     

c             C   sÿ   | p d  S| d  d … j  ƒ  } | d d  … j  ƒ  } d j | j ƒ  ƒ } |  j o | o d  S| p
 |  j oH | p% |  j p d |  _ d |  _ n d  S|  j p d | } q½ n d |  _ |  _ |  _ |  _ |  _ | |  _ |  j	 j
 | ƒ d  S(   Ni   iÿÿÿÿu    i    (   u   isspaceu   joinu   splitu   nospaceu	   softspaceu   parskipu
   hard_breaku   para_endu
   have_labelu   writeru   send_flowing_data(   u   selfu   datau   prespaceu	   postspace(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_flowing_data±   s$     
	
%	c             C   s|   | p d  S|  j  o |  j j d ƒ n | d d  … d k |  _ d |  _ |  _ |  _  |  _ |  _ |  j j | ƒ d  S(   Nu    iÿÿÿÿu   
i    (	   u	   softspaceu   writeru   send_flowing_datau
   hard_breaku   nospaceu   para_endu   parskipu
   have_labelu   send_literal_data(   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   add_literal_dataÅ   s     
%c             C   sP   |  j  oB d |  _ |  _ |  _ |  _ |  _  d |  _ |  j j d ƒ n d  S(   Ni    i   u    (   u	   softspaceu
   hard_breaku   para_endu   parskipu
   have_labelu   nospaceu   writeru   send_flowing_data(   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   flush_softspaceÎ   s    
%	c             C   s[   | o= | |  j  k o- |  j j | ƒ | |  _  |  j j | ƒ n |  j j |  j  ƒ d  S(   N(   u   alignu   writeru   new_alignmentu   align_stacku   append(   u   selfu   align(    (    u&   /mit/python/lib/python3.0/formatter.pyu   push_alignmentÕ   s
    	c             C   sg   |  j  o |  j  d =n |  j  o( |  j  d |  _ } |  j j | ƒ n d  |  _ |  j j d  ƒ d  S(   Niÿÿÿÿ(   u   align_stacku   alignu   writeru   new_alignmentu   None(   u   selfu   align(    (    u&   /mit/python/lib/python3.0/formatter.pyu   pop_alignmentÝ   s    

	c       
      C   s	  | \ } } } } |  j  o4 d |  _ |  _ |  _  d |  _ |  j j d ƒ n |  j oy |  j d \ } } } }	 | t k o
 | } n | t k o
 | } n | t k o
 | } n | t k o
 |	 } qÓ n | | | | f } |  j j | ƒ |  j j	 | ƒ d  S(   Ni    i   u    iÿÿÿÿ(
   u	   softspaceu
   hard_breaku   para_endu   nospaceu   writeru   send_flowing_datau
   font_stacku   AS_ISu   appendu   new_font(
   u   selfu   fontu   sizeu   iu   bu   ttu   csizeu   ciu   cbu   ctt(    (    u&   /mit/python/lib/python3.0/formatter.pyu	   push_fontç   s$    
	
 
 
 
 c             C   sM   |  j  o |  j  d =n |  j  o |  j  d } n d  } |  j j | ƒ d  S(   Niÿÿÿÿ(   u
   font_stacku   Noneu   writeru   new_font(   u   selfu   font(    (    u&   /mit/python/lib/python3.0/formatter.pyu   pop_font÷   s    

c             C   s]   |  j  j | ƒ d „  |  j  Dƒ } | o | o | d } n |  j j | t | ƒ ƒ d  S(   Nc             S   s&   g  } |  ] } | o | | q
 q
 S(    (    (   u   .0u   _[1]u   m(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   <listcomp>  s    iÿÿÿÿ(   u   margin_stacku   appendu   writeru
   new_marginu   len(   u   selfu   marginu   fstack(    (    u&   /mit/python/lib/python3.0/formatter.pyu   push_margin   s
    c             C   sc   |  j  o |  j  d =n d „  |  j  Dƒ } | o | d } n d  } |  j j | t | ƒ ƒ d  S(   Niÿÿÿÿc             S   s&   g  } |  ] } | o | | q
 q
 S(    (    (   u   .0u   _[1]u   m(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   <listcomp>
  s    (   u   margin_stacku   Noneu   writeru
   new_marginu   len(   u   selfu   fstacku   margin(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   pop_margin  s    
c             C   s   | |  _  |  j j | ƒ d  S(   N(   u   spacingu   writeru   new_spacing(   u   selfu   spacing(    (    u&   /mit/python/lib/python3.0/formatter.pyu   set_spacing  s    	c             G   s|   |  j  o4 d |  _ |  _ |  _  d |  _ |  j j d ƒ n x | D] } |  j j | ƒ qE W|  j j t	 |  j ƒ ƒ d  S(   Ni    i   u    (
   u	   softspaceu
   hard_breaku   para_endu   nospaceu   writeru   send_flowing_datau   style_stacku   appendu
   new_stylesu   tuple(   u   selfu   stylesu   style(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   push_style  s    
	 i   c             C   s.   |  j  | d  … =|  j j t |  j  ƒ ƒ d  S(   N(   u   style_stacku   writeru
   new_stylesu   tuple(   u   selfu   n(    (    u&   /mit/python/lib/python3.0/formatter.pyu	   pop_style  s    c             C   s,   | |  _  |  _ d |  _ |  _ |  _ d  S(   Ni    (   u   nospaceu
   hard_breaku   para_endu   parskipu
   have_label(   u   selfu   flag(    (    u&   /mit/python/lib/python3.0/formatter.pyu   assert_line_data"  s    N(   u   __name__u
   __module__u   __doc__u   __init__u   end_paragraphu   add_line_breaku   add_hor_ruleu   Noneu   add_label_datau   format_counteru   format_letteru   format_romanu   add_flowing_datau   add_literal_datau   flush_softspaceu   push_alignmentu   pop_alignmentu	   push_fontu   pop_fontu   push_marginu
   pop_marginu   set_spacingu
   push_styleu	   pop_styleu   assert_line_data(   u
   __locals__(    (    u&   /mit/python/lib/python3.0/formatter.pyu   AbstractFormatter=   s,   
													
					
			u   AbstractFormatterc             B   s‰   |  Ee  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 d „  Z d S(   u  Minimal writer interface to use in testing & inheritance.

    A writer which only provides the interface definition; no actions are
    taken on any methods.  This should be the base class for all writers
    which do not need to inherit any implementation methods.

    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   __init__/  s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   flush0  s    c             C   s   d  S(   N(    (   u   selfu   align(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_alignment1  s    c             C   s   d  S(   N(    (   u   selfu   font(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_font2  s    c             C   s   d  S(   N(    (   u   selfu   marginu   level(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   new_margin3  s    c             C   s   d  S(   N(    (   u   selfu   spacing(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_spacing4  s    c             C   s   d  S(   N(    (   u   selfu   styles(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   new_styles5  s    c             C   s   d  S(   N(    (   u   selfu	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_paragraph6  s    c             C   s   d  S(   N(    (   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_line_break7  s    c             O   s   d  S(   N(    (   u   selfu   argsu   kw(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_hor_rule8  s    c             C   s   d  S(   N(    (   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_label_data9  s    c             C   s   d  S(   N(    (   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_flowing_data:  s    c             C   s   d  S(   N(    (   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_literal_data;  s    N(   u   __name__u
   __module__u   __doc__u   __init__u   flushu   new_alignmentu   new_fontu
   new_marginu   new_spacingu
   new_stylesu   send_paragraphu   send_line_breaku   send_hor_ruleu   send_label_datau   send_flowing_datau   send_literal_data(   u
   __locals__(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   NullWriter'  s   
												u
   NullWriterc             B   sw   |  Ee  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 S(   u°   A writer which can be used in debugging formatters, but not much else.

    Each method simply announces itself by printing its name and
    arguments on standard output.

    c             C   s   t  d | f ƒ d  S(   Nu   new_alignment(%r)(   u   print(   u   selfu   align(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_alignmentF  s    c             C   s   t  d | f ƒ d  S(   Nu   new_font(%r)(   u   print(   u   selfu   font(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_fontI  s    c             C   s   t  d | | f ƒ d  S(   Nu   new_margin(%r, %d)(   u   print(   u   selfu   marginu   level(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   new_marginL  s    c             C   s   t  d | f ƒ d  S(   Nu   new_spacing(%r)(   u   print(   u   selfu   spacing(    (    u&   /mit/python/lib/python3.0/formatter.pyu   new_spacingO  s    c             C   s   t  d | f ƒ d  S(   Nu   new_styles(%r)(   u   print(   u   selfu   styles(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   new_stylesR  s    c             C   s   t  d | f ƒ d  S(   Nu   send_paragraph(%r)(   u   print(   u   selfu	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_paragraphU  s    c             C   s   t  d ƒ d  S(   Nu   send_line_break()(   u   print(   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_line_breakX  s    c             O   s   t  d ƒ d  S(   Nu   send_hor_rule()(   u   print(   u   selfu   argsu   kw(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_hor_rule[  s    c             C   s   t  d | f ƒ d  S(   Nu   send_label_data(%r)(   u   print(   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_label_data^  s    c             C   s   t  d | f ƒ d  S(   Nu   send_flowing_data(%r)(   u   print(   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_flowing_dataa  s    c             C   s   t  d | f ƒ d  S(   Nu   send_literal_data(%r)(   u   print(   u   selfu   data(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_literal_datad  s    N(   u   __name__u
   __module__u   __doc__u   new_alignmentu   new_fontu
   new_marginu   new_spacingu
   new_stylesu   send_paragraphu   send_line_breaku   send_hor_ruleu   send_label_datau   send_flowing_datau   send_literal_data(   u
   __locals__(    (    u&   /mit/python/lib/python3.0/formatter.pyu   AbstractWriter>  s   
										u   AbstractWriterc             B   sY   |  Ee  Z d  Z d	 d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 S(
   u;  Simple writer class which writes output on the file object passed in
    as the file parameter or, if file is omitted, on standard output.  The
    output is simply word-wrapped to the number of columns specified by
    the maxcol parameter.  This class is suitable for reflowing a sequence
    of paragraphs.

    iH   c             C   s7   | p t  j |  _ | |  _ t j |  ƒ |  j ƒ  d  S(   N(   u   sysu   stdoutu   fileu   maxcolu
   NullWriteru   __init__u   reset(   u   selfu   fileu   maxcol(    (    u&   /mit/python/lib/python3.0/formatter.pyu   __init__q  s    	c             C   s   d |  _  d |  _ d  S(   Ni    (   u   colu   atbreak(   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   resetw  s    	c             C   s*   |  j  j d | ƒ d |  _ d |  _ d  S(   Nu   
i    (   u   fileu   writeu   colu   atbreak(   u   selfu	   blankline(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_paragraph{  s    	c             C   s&   |  j  j d ƒ d |  _ d |  _ d  S(   Nu   
i    (   u   fileu   writeu   colu   atbreak(   u   self(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_line_break€  s    	c             O   sM   |  j  j d ƒ |  j  j d |  j ƒ |  j  j d ƒ d |  _ d |  _ d  S(   Nu   
u   -i    (   u   fileu   writeu   maxcolu   colu   atbreak(   u   selfu   argsu   kw(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_hor_rule…  s
    	c             C   s|   |  j  j | ƒ | j d ƒ } | d k o! d |  _ | | d d  … } n | j ƒ  } |  j t | ƒ |  _ d |  _ d  S(   Nu   
i    i   (   u   fileu   writeu   rfindu   colu
   expandtabsu   lenu   atbreak(   u   selfu   datau   i(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_literal_dataŒ  s    	c             C   så   | p d  S|  j  p | d j ƒ  } |  j } |  j } |  j j } x~ | j ƒ  D]p } | oC | t | ƒ | k o | d ƒ d } q¡ | d ƒ | d } n | | ƒ | t | ƒ } d } qQ W| |  _ | d j ƒ  |  _  d  S(   Ni    u   
u    i   iÿÿÿÿ(   u   atbreaku   isspaceu   colu   maxcolu   fileu   writeu   splitu   len(   u   selfu   datau   atbreaku   colu   maxcolu   writeu   word(    (    u&   /mit/python/lib/python3.0/formatter.pyu   send_flowing_data–  s&     		 




	N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   resetu   send_paragraphu   send_line_breaku   send_hor_ruleu   send_literal_datau   send_flowing_data(   u
   __locals__(    (    u&   /mit/python/lib/python3.0/formatter.pyu
   DumbWriterh  s   
					
u
   DumbWriterc             C   s³   t  ƒ  } t | ƒ } |  d  k	 o t |  ƒ } n5 t j d d  … o t t j d ƒ } n
 t j } x9 | D]1 } | d k o | j d ƒ qm | j | ƒ qm W| j d ƒ d  S(   Ni   u   
i    (	   u
   DumbWriteru   AbstractFormatteru   Noneu   openu   sysu   argvu   stdinu   end_paragraphu   add_flowing_data(   u   fileu   wu   fu   fpu   line(    (    u&   /mit/python/lib/python3.0/formatter.pyu   test«  s    		 u   __main__(   u   __doc__u   sysu   Noneu   AS_ISu   NullFormatteru   AbstractFormatteru
   NullWriteru   AbstractWriteru
   DumbWriteru   testu   __name__(    (    (    u&   /mit/python/lib/python3.0/formatter.pyu   <module>   s   "ê*C