*λ
;c       s     d  Z    d k Z  d k Z  d k Z  d k Z  d f  d     YZ W e i Z [ d f  d     YZ z d f  d     YZ d S(   s!  Code for more fancy file handles.


Classes:
UndoHandle     File object decorator with support for undo-like operations.
StringHandle   Wraps a file object around a string.
SGMLHandle     File object that automatically strips SGML tags from data.

SGMLStripper   Object that strips SGML.

Ns
   UndoHandlec      s~    d  Z     d   Z $ d   Z ) d   Z 0 d d  Z < d   Z @ d   Z H d   Z M d	   Z Q d
   Z	 RS(   sι   A Python handle that adds functionality for saving lines.

    Saves lines in a LIFO fashion.

    Added methods:
    saveline    Save a line to be returned next time.
    peekline    Peek at the next line without consuming it.

    c    s     ! | |  _ " g  |  _ d  S(   N(   s   handles   selfs   _handles   _saved(   s   selfs   handle(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __init__  s   c    s<   $ % |  i t |  i i | |  } & g  |  _ ' | Sd  S(   N(   s   selfs   _saveds   applys   _handles	   readliness   argss   keywdss   lines(   s   selfs   argss   keywdss   lines(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys	   readlines$ s   "c    sO   ) * |  i o + |  i i d  } n - t |  i i | |  } . | Sd  S(   Ni    (	   s   selfs   _saveds   pops   lines   applys   _handles   readlines   argss   keywds(   s   selfs   argss   keywdss   line(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   readline) s   i   c    sά   0 1 d } 2 x― 2 | d j o |  i o 3 t |  i d  | j o7 4 | t |  i d  } 5 | |  i i d  } n= 7 | |  i d |  } 8 |  i d | |  i d <9 d } q W: | |  i i |  Sd  S(   Ns    i    (   s   saveds   sizes   selfs   _saveds   lens   pops   _handles   read(   s   selfs   sizes   saved(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   read0 s   	 c    s+   < = | o > | g |  i |  _ n d  S(   N(   s   lines   selfs   _saved(   s   selfs   line(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   saveline< s   
c    sQ   @ A |  i o B |  i d } n# D |  i i   } E |  i |  F | Sd  S(   Ni    (   s   selfs   _saveds   lines   _handles   readlines   saveline(   s   selfs   line(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   peekline@ s
   c    sH   H I t  t |  i  } J t d   | d  } K |  i i   | Sd  S(   Nc    s   J |  | S(   N(   s   xs   y(   s   xs   y(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   <lambda>J s    i    (	   s   maps   lens   selfs   _saveds   lengthss   reduces   sums   _handles   tell(   s   selfs   sums   lengths(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   tellH s   c    s)   M N g  |  _ O t |  i i |  d  S(   N(   s   selfs   _saveds   applys   _handles   seeks   args(   s   selfs   args(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   seekM s   c    s   Q R t  |  i |  Sd  S(   N(   s   getattrs   selfs   _handles   attr(   s   selfs   attr(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __getattr__Q s   (
   s   __doc__s   __init__s	   readliness   readlines   reads   savelines   peeklines   tells   seeks   __getattr__(    (    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys
   UndoHandle s   		s
   SGMLHandlec      sJ   [ d  Z  ^ _ d   Z h d   Z l d   Z p d   Z v d   Z RS(   sD   A Python handle that automatically strips SGML tags from data.

    c    s%   _ d e | |  _ f t   |  _ d S(   s_   SGMLStripper(handle)

        handle is a file handle to SGML-formatted data.
        
        N(   s   handles   selfs   _handles   SGMLStrippers	   _stripper(   s   selfs   handle(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __init___ s   c    s5   h i t  |  i i | |  } j |  i i |  Sd  S(   N(	   s   applys   selfs   _handles   reads   argss   keywdss   datas	   _strippers   strip(   s   selfs   argss   keywdss   data(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   readh s   c    s5   l m t  |  i i | |  } n |  i i |  Sd  S(   N(	   s   applys   selfs   _handles   readlines   argss   keywdss   lines	   _strippers   strip(   s   selfs   argss   keywdss   line(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   readlinel s   c    sg   p q t  |  i i | |  } r x8 t t |   d r r } s |  i
 i t  | | <q6 Wt | Sd  S(   Ni    (   s   applys   selfs   _handles	   readliness   argss   keywdss   liness   ranges   lens   is	   _strippers   strips   str(   s   selfs   argss   keywdss   liness   i(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys	   readlinesp s
    	c    s   v w t  |  i |  Sd  S(   N(   s   getattrs   selfs   _handles   attr(   s   selfs   attr(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __getattr__v s   (   s   __doc__s   __init__s   reads   readlines	   readliness   __getattr__(    (    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys
   SGMLHandle[ s   		s   SGMLStripperc      s9   z { d e  i f d     YZ  d   Z  d   Z RS(   Ns   MyParserc      s   { | d   Z   d   Z RS(   Nc    s&   | } t  i i |   ~ d |  _ d  S(   Ns    (   s   sgmllibs
   SGMLParsers   __init__s   selfs   data(   s   self(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __init__| s   c    s     |  i | |  _ d  S(   N(   s   selfs   data(   s   selfs   data(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   handle_data s   (   s   __init__s   handle_data(    (    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   MyParser{ s   c    s     t  i   |  _ d  S(   N(   s   SGMLStrippers   MyParsers   selfs   _parser(   s   self(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   __init__ s   c    s      | o  d Sn  | d d d g j }  d |  i _  |  i i |   |  i i o  |  i i } n  | o  d } n  | Sd S(   sG   S.strip(str) -> string

        Strip the SGML tags from str.

        s    i   s   
s   N(   s   strs
   is_newlines   selfs   _parsers   datas   feed(   s   selfs   strs
   is_newline(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   strip s   
(   s   sgmllibs
   SGMLParsers   MyParsers   __init__s   strip(    (    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   SGMLStripperz s   (	   s   __doc__s   oss   strings   StringIOs   sgmllibs
   UndoHandles   StringHandles
   SGMLHandles   SGMLStripper(   s   oss   SGMLStrippers
   SGMLHandles   StringIOs   strings
   UndoHandles   sgmllibs   StringHandle(    (    s2   /mit/seven/lib/python2.1/site-packages/Bio/File.pys   ? s   A