;ò
ôÔAc           @   sú   d  Z  d Z d k Z y d k Z Wn n Xd k l Z d k l Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 d	 e f d
 „  ƒ  YZ
 d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d S(   s„   
I/O classes provide a uniform API for low-level input and output.  Subclasses
will exist for a variety of input/output mechanisms.
s   reStructuredTextN(   s   UnicodeType(   s   TransformSpecs   Inputc           B   sG   t  Z d  Z d Z e Z e e e d „ Z d „  Z d „  Z d „  Z	 RS(   s1   
    Abstract base class for input wrappers.
    s   inputc         C   s7   | |  _  | |  _ | |  _ | o |  i |  _ n d  S(   N(   s   encodings   selfs   sources   source_paths   default_source_path(   s   selfs   sources   source_paths   encoding(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __init__!   s    	 	 	 c         C   s   d |  i |  i |  i f Sd  S(   Ns   %s: source=%r, source_path=%r(   s   selfs	   __class__s   sources   source_path(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __repr__.   s    c         C   s
   t  ‚ d  S(   N(   s   NotImplementedError(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   read2   s    c         C   sg  |  i o |  i i ƒ  d j p t | t ƒ o t | ƒ Sn |  i d g } y | i t	 i
 t	 i ƒ ƒ Wn n Xy | i t	 i ƒ  d ƒ Wn n Xy | i t	 i ƒ  d ƒ Wn n X| i d ƒ xJ | D]B } | o qÒ n y t | | ƒ SWqÒ t t f j
 o qÒ XqÒ Wt d d i g  i } | D]! } | o | t | ƒ ƒ q2q2~ ƒ ƒ ‚ d S(   s   
        Decode a string, `data`, heuristically.
        Raise UnicodeError if unsuccessful.

        The client application should call ``locale.setlocale`` at the
        beginning of processing::

            locale.setlocale(locale.LC_ALL, '')
        s   unicodes   utf-8i   s   latin-1s@   Unable to decode input data.  Tried the following encodings: %s.s   , N(   s   selfs   encodings   lowers
   isinstances   datas   UnicodeTypes   unicodes	   encodingss   appends   locales   nl_langinfos   CODESETs	   getlocales   getdefaultlocales   encs   UnicodeErrors   LookupErrors   joins   _[1]s   repr(   s   selfs   datas   _[1]s   encs	   encodings(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   decode5   s4    	 0 	(
   s   __name__s
   __module__s   __doc__s   component_types   Nones   default_source_paths   __init__s   __repr__s   reads   decode(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   Input   s    		s   Outputc           B   sS   t  Z d  Z d Z e Z e e e d d „ Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   s2   
    Abstract base class for output wrappers.
    s   outputs   strictc         C   sG   | |  _  | p d |  _ | |  _ | |  _ | o |  i |  _ n d  S(   Ns   strict(   s   encodings   selfs   error_handlers   destinations   destination_paths   default_destination_path(   s   selfs   destinations   destination_paths   encodings   error_handler(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __init__f   s    	  	 	 c         C   s   d |  i |  i |  i f Sd  S(   Ns'   %s: destination=%r, destination_path=%r(   s   selfs	   __class__s   destinations   destination_path(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __repr__w   s    c         C   s
   t  ‚ d S(   s;   `data` is a Unicode string, to be encoded by `self.encode`.N(   s   NotImplementedError(   s   selfs   data(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   write{   s     c         C   sª   |  i o |  i i ƒ  d j o | Sn y | i |  i |  i ƒ SWna t j
 oU |  i d j o; d i g  i } | D] } | |  i | ƒ ƒ qw ~ ƒ Sq¦ ‚  n Xd  S(   Ns   unicodes   xmlcharrefreplaces    (   s   selfs   encodings   lowers   datas   encodes   error_handlers
   ValueErrors   joins   appends   _[1]s   chars   xmlcharref_encode(   s   selfs   datas   _[1]s   char(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   encode   s     ;c         C   s?   y | i |  i d ƒ SWn! t j
 o d t | ƒ Sn Xd S(   s@   Emulate Python 2.3's 'xmlcharrefreplace' encoding error handler.s   stricts   &#%i;N(   s   chars   encodes   selfs   encodings   UnicodeErrors   ord(   s   selfs   char(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   xmlcharref_encode   s
     (   s   __name__s
   __module__s   __doc__s   component_types   Nones   default_destination_paths   __init__s   __repr__s   writes   encodes   xmlcharref_encode(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   Output\   s    			s	   FileInputc           B   s8   t  Z d  Z e e e d d d „ Z d „  Z d „  Z RS(   s5   
    Input for single, simple file-like objects.
    i   c         C   s  t  i |  | | | ƒ | |  _ | |  _ | t j o™ | oy y t	 | ƒ |  _ WqÊ t
 j
 oS } | o ‚  n t i d | i i | f IJt i d | IJt i d ƒ qÊ XqÎ t i |  _ t |  _ n | o- y |  i i |  _ Wqt j
 o qXn d S(   s…  
        :Parameters:
            - `source`: either a file-like object (which is read directly), or
              `None` (which implies `sys.stdin` if no `source_path` given).
            - `source_path`: a path to a file, which is opened and then read.
            - `autoclose`: close automatically after read (boolean); always
              false if `sys.stdin` is the source.
        s   %s: %ss6   Unable to open source file for reading (%r).  Exiting.i   N(   s   Inputs   __init__s   selfs   sources   source_paths   encodings	   autocloses   handle_io_errorss   Nones   opens   IOErrors   errors   syss   stderrs	   __class__s   __name__s   exits   stdins   names   AttributeError(   s   selfs   sources   source_paths   encodings	   autocloses   handle_io_errorss   error(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __init__ž   s*    	 		c         C   s8   |  i i ƒ  } |  i o |  i ƒ  n |  i | ƒ Sd S(   sU   
        Read and decode a single file and return the data (Unicode string).
        N(   s   selfs   sources   reads   datas	   autocloses   closes   decode(   s   selfs   data(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   readÁ   s
     
c         C   s   |  i i ƒ  d  S(   N(   s   selfs   sources   close(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   closeÊ   s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   reads   close(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys	   FileInput˜   s    #		s
   FileOutputc           B   sD   t  Z d  Z e e e d d d d „ Z d „  Z d „  Z d „  Z RS(   s6   
    Output for single, simple file-like objects.
    s   stricti   c         C   s§   t  i |  | | | | ƒ d |  _ | |  _ | |  _	 | t
 j o- | o t
 |  _ qn t i |  _ t
 |  _ n | o- y |  i i |  _ Wq£ t j
 o q£ Xn d S(   s½  
        :Parameters:
            - `destination`: either a file-like object (which is written
              directly) or `None` (which implies `sys.stdout` if no
              `destination_path` given).
            - `destination_path`: a path to a file, which is opened and then
              written.
            - `autoclose`: close automatically after write (boolean); always
              false if `sys.stdout` is the destination.
        i   N(   s   Outputs   __init__s   selfs   destinations   destination_paths   encodings   error_handlers   openeds	   autocloses   handle_io_errorss   Nones   syss   stdouts   names   AttributeError(   s   selfs   destinations   destination_paths   encodings   error_handlers	   autocloses   handle_io_errors(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   __init__Ô   s      
			c         C   sŽ   y t  |  i d ƒ |  _ Wne t j
 oY } |  i o ‚  n t i d | i	 i
 | f IJt i d |  i IJt i d ƒ n Xd |  _ d  S(   Ns   ws   %s: %ss;   Unable to open destination file for writing (%r).  Exiting.i   (   s   opens   selfs   destination_paths   destinations   IOErrors   errors   handle_io_errorss   syss   stderrs	   __class__s   __name__s   exits   opened(   s   selfs   error(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   openò   s    c         C   sX   |  i | ƒ } |  i o |  i ƒ  n |  i i | ƒ |  i o |  i	 ƒ  n | Sd S(   s8   Encode `data`, write it to a single file, and return it.N(
   s   selfs   encodes   datas   outputs   openeds   opens   destinations   writes	   autocloses   close(   s   selfs   datas   output(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   writeÿ   s     
c         C   s   |  i i ƒ  t |  _ d  S(   N(   s   selfs   destinations   closes   Nones   opened(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   close	  s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   opens   writes   close(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys
   FileOutputÎ   s
    		
s   StringInputc           B   s   t  Z d  Z d Z d „  Z RS(   s   
    Direct string input.
    s   <string>c         C   s   |  i |  i ƒ Sd S(   s$   Decode and return the source string.N(   s   selfs   decodes   source(   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   read  s     (   s   __name__s
   __module__s   __doc__s   default_source_paths   read(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   StringInput  s    s   StringOutputc           B   s   t  Z d  Z d Z d „  Z RS(   s   
    Direct string output.
    s   <string>c         C   s   |  i | ƒ |  _ |  i Sd S(   s=   Encode `data`, store it in `self.destination`, and return it.N(   s   selfs   encodes   datas   destination(   s   selfs   data(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   write#  s     (   s   __name__s
   __module__s   __doc__s   default_destination_paths   write(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   StringOutput  s    s	   NullInputc           B   s   t  Z d  Z d Z d „  Z RS(   s)   
    Degenerate input: read nothing.
    s
   null inputc         C   s   d Sd S(   s   Return a null string.u    N(    (   s   self(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   read1  s     (   s   __name__s
   __module__s   __doc__s   default_source_paths   read(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys	   NullInput)  s    s
   NullOutputc           B   s   t  Z d  Z d Z d „  Z RS(   s+   
    Degenerate output: write nothing.
    s   null outputc         C   s   d S(   s6   Do nothing ([don't even] send data to the bit bucket).N(    (   s   selfs   data(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   write>  s     (   s   __name__s
   __module__s   __doc__s   default_destination_paths   write(    (    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys
   NullOutput6  s    (   s   __doc__s   __docformat__s   syss   locales   typess   UnicodeTypes   docutilss   TransformSpecs   Inputs   Outputs	   FileInputs
   FileOutputs   StringInputs   StringOutputs	   NullInputs
   NullOutput(   s   locales	   NullInputs	   FileInputs   __docformat__s
   FileOutputs   syss   TransformSpecs   UnicodeTypes   StringInputs   Outputs   Inputs   StringOutputs
   NullOutput(    (    s@   /mit/golem/arch/share/lib/python2.3/site-packages/docutils/io.pys   ?
   s    	E<6@