*λ
<΅χ8c       s     d  Z    d k Z  d k Z  d k Z  d k Z  d k Z  d k Z  d e i f d     YZ D d e i f d     YZ  e Z	 d S(   sψ   Index.py

This module provides a way to create indexes to text files.

Classes:
Index     Dictionary-like class used to store index information.

_ShelveIndex    An Index class based on the shelve module.
_InMemoryIndex  An in-memory Index class.

Ns   _ShelveIndexc      s;    d  Z   ! d Z " d Z $ e d  Z @ d   Z RS(   s*   An index file wrapped around shelve.

    i   s	   __versionc    s]  $ % t  i  i |   & y ' | on * | d | d | d g } . x= | d . r0 } / t i i	 |  o 0 t i
 |  n qP W1 d  n 2 t i | d d |  _ Wn; 3 5 t i | d d |  _ 6 |  i |  i |  i <nl X9 |  i i |  i t  } : | t j o ; t d	  n1 < | |  i j o = t d
 | |  i f  n d  S(   Ns   .dirs   .dats   .baki    s   open a new shelfs   flags   rs   ns   Unrecognized index formats&   Version %s doesn't match my version %s(   s   UserDicts   __init__s   selfs   truncates	   indexnames   filess   files   oss   paths   existss   unlinks   shelves   opens   datas   _ShelveIndex__versions   _ShelveIndex__version_keys   gets   Nones   versions   IOError(   s   selfs	   indexnames   truncates   files   versions   files(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __init__$ s$   
 	c    s1   @ A |  i i d  o B |  i i   n d  S(   Ns   data(   s   selfs   __dict__s   has_keys   datas   close(   s   self(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __del__@ s   (   s   __doc__s   _ShelveIndex__versions   _ShelveIndex__version_keys   Nones   __init__s   __del__(    (    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   _ShelveIndex s
   			s   _InMemoryIndexc      s   D d  Z  G M d Z N d Z P e d  Z h d   Z k d   Z n d   Z q d   Z u d   Z	 ~ d	   Z
  d
   Z RS(   s+   This creates an in-memory index file.

    i   s	   __versionc    sl  P Q | |  _ R t i i |   S d |  _ V | o t i i	 |  o  W t i
 |  X d |  _ n [ t i i	 |  oη \ t |  } ] |  i t i | i     } ^ | |  i j o _ t d | |  i f  n a | i   } b t t i |  } c xM | d c r@ \ } } d |  i |  |  i |  f \ } } e | |  | <qWf d |  _ n d  S(   Ni    i   s&   Version %s doesn't match my version %s(   s	   indexnames   selfs
   _indexnames   UserDicts   __init__s   _InMemoryIndex__changeds   truncates   oss   paths   existss   unlinks   opens   handles   _toobjs   strings   rstrips   readlines   versions   _InMemoryIndex__versions   IOErrors	   readliness   liness   maps   splits   keys   value(   s   selfs	   indexnames   truncates   keys   versions   values   liness   handle(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __init__P s$   ! 'c    s)   h i d |  _ j t i i |  |  d  S(   Ni   (   s   selfs   _InMemoryIndex__changeds   UserDicts   updates   dict(   s   selfs   dict(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   updateh s   c    s,   k l d |  _ m t i i |  | |  d  S(   Ni   (   s   selfs   _InMemoryIndex__changeds   UserDicts   __setitem__s   keys   value(   s   selfs   keys   value(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __setitem__k s   c    s)   n o d |  _ p t i i |  |  d  S(   Ni   (   s   selfs   _InMemoryIndex__changeds   UserDicts   __delitem__s   key(   s   selfs   key(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __delitem__n s   c    s&   q r d |  _ s t i i |   d  S(   Ni   (   s   selfs   _InMemoryIndex__changeds   UserDicts   clear(   s   self(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   clearq s   c    s«   u v |  i o w t |  i d  } x | i d |  i |  i   y xK |  i   d y r8 \ } } z | i d |  i |  |  i |  f  qW W| | i   n d  S(   Ns   ws   %s
i    s   %s %s
(   s   selfs   _InMemoryIndex__changeds   opens
   _indexnames   handles   writes   _tostrs   _InMemoryIndex__versions   itemss   keys   values   close(   s   selfs   keys   values   handle(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   __del__u s     0c    sS   ~  t  i |  }  t i d |  }  t t |  }  t	 i
 | d  Sd  S(   Ns   bs   ,(   s   cPickles   dumpss   objs   ss   arrays   intlists   maps   strs   strlists   strings   join(   s   selfs   objs   strlists   intlists   s(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   _tostr~ s   c    sh     t  t t i | d   }  t i d |  }  t  t |  }  t	 i
 t i | d   Sd  S(   Ns   ,s   bs    (   s   maps   ints   strings   splits   strs   intlists   arrays   chrs   strlists   cPickles   loadss   join(   s   selfs   strs   intlists   strlist(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   _toobj s   (   s   __doc__s   _InMemoryIndex__versions   _InMemoryIndex__version_keys   Nones   __init__s   updates   __setitem__s   __delitem__s   clears   __del__s   _tostrs   _toobj(    (    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   _InMemoryIndexD s   				(
   s   __doc__s   oss   arrays   strings   cPickles   shelves   UserDicts   _ShelveIndexs   _InMemoryIndexs   Index(	   s   oss   arrays   UserDicts   shelves   _ShelveIndexs   strings   _InMemoryIndexs   cPickles   Index(    (    s3   /mit/seven/lib/python2.1/site-packages/Bio/Index.pys   ? s   ,M