;ò
j–ù=c               s1  d  k  Z  d  k Z d  k Z d  k Z d k Td k l Z d  k Z d  k Z d  k	 Z	 d  k
 Z
 d  k Z d k l Z e d ƒ d „  Z d f  d „  ƒ  YZ d f  d	 „  ƒ  YZ d
 „  Z d „  Z e e d „ Z d f  d „  ƒ  YZ d e f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d  S(   N(   s   *(   s	   loop_in_C(   s   ST_MTIMEs	   config.pyc            s/   h  } x |  D] } d | | <q W| i ƒ  Sd  S(   Ni   (   s   dicts   ls   ss   keys(   s   ls   ss   dict(    (    s   ./databases.pys   unique_strings   s
     s   EmptyDbc              s#   t  Z d „  Z d „  Z d „  Z RS(   Nc            s   d |  _ | |  _ d  S(   Ns   empty database(   s   selfs   infos   name(   s   selfs   name(    (    s   ./databases.pys   __init__   s    	c            s   g  Sd  S(   N(    (   s   selfs   strats   word(    (    s   ./databases.pys   match   s    c            s   g  Sd  S(   N(    (   s   selfs   word(    (    s   ./databases.pys   define   s    (   s   __name__s
   __module__s   __init__s   matchs   define(    (    (    s   ./databases.pys   EmptyDb   s   		s   FullDbc              s#   t  Z d „  Z d „  Z d „  Z RS(   Nc            s   d |  _ | |  _ d  S(   Ns   full database(   s   selfs   infos   name(   s   selfs   name(    (    s   ./databases.pys   __init__   s    	c            s    |  i d f |  i d f g Sd  S(   Ns   ones   two(   s   selfs   name(   s   selfs   strats   word(    (    s   ./databases.pys   match"   s    c            s   |  i d f g Sd  S(   Ns   bla bla blablabla(   s   selfs   name(   s   selfs   word(    (    s   ./databases.pys   define%   s    (   s   __name__s
   __module__s   __init__s   matchs   define(    (    (    s   ./databases.pys   FullDb   s   		c   
         s5  t  |  ƒ i ƒ  } g  } xÕ t t | ƒ ƒ D]Á } t i	 | | t
 d ƒ }	 t |	 ƒ d j o d G| | GHq+ n |	 \ } } y t | d ƒ } Wn" t j
 o t | d ƒ } n X| i ƒ  } | i d ƒ } | t
 | } | i | ƒ q+ W| i ƒ  t  | d ƒ } x | D] } | i | ƒ qW| i ƒ  d  S(   Ni   i   s   corrupted index entrys   utf-8s
   ISO-8859-1s   w(   s   opens   originals	   readliness   ls   nls   ranges   lens   is   strings   splits   TABs   lines   entrys   rests   unicodes   UnicodeDecodeErrors   lowers   encodes   ns   appends   sorts   sorteds   fs   writes   close(
   s   originals   sorteds   nls   fs   is   ls   ns   rests   entrys   line(    (    s   ./databases.pys
   sort_index(   s.     
 c            sU   t  i |  ƒ i ƒ  } t i i t | d ƒ } t i i t | d ƒ } | | f Sd  S(   Ns   .indexs
   .positions(   s   md5s   news   orig_inxs	   hexdigests   digests   oss   paths   joins   cachedirs   inxs   pos(   s   orig_inxs   inxs   poss   digest(    (    s   ./databases.pys   getcachenames@   s    c            sC  | o |  d } n t i } t i p t i } | | j p
 | | j o d | } n | o |  d } n | | j p
 | | j o t i i d | ƒ } n | d d j o t	 i
 | ƒ }
 n: y t | ƒ }
 Wn& t j
 o t	 i
 | d ƒ }
 n Xd } t | ƒ \ } } t i i | ƒ o t i i | ƒ os t i | ƒ } | t } t i | ƒ } | t } t i | ƒ } | t } | | j o
 | | j o
 d } n n | o t | | ƒ n t | ƒ } | i d d	 ƒ | i ƒ  } t i | i ƒ  | d
 t i  ƒ} | i d ƒ | o´ g  } x] d oU | i ƒ  } | i# ƒ  } | o Pn t% i& | t' d ƒ d } | i( | | f ƒ q4Wt | d ƒ } x+ | D]# } | i+ t, i- d | d ƒ ƒ q§W| i. ƒ  ~ n t | d ƒ } | i d d	 ƒ | i ƒ  }	 t i | i ƒ  |	 d
 t i  ƒ} | |	 t1 | |
 f Sd S(   sb   return tuple of:  mmap object for posittions, mmap for index file, file object for data file 
    s   .dicts   /usr/share/dictd/%ss   .indexs   /usr/share/dictd/iýÿÿÿs   .dzi    i   i   s   prots   ws   is   rN(2   s   datas   names   oss   seps   altseps   sep1s   inxs   paths   normpaths   dictzips   DictzipFiles   datafos   opens   IOErrors   cache_is_goods   getcachenamess   inx_cachenames   positions_cachenames   isfiles   stats   ss   ST_MTIMEs   indexcachetimestamps   indextimestamps   positionstimestamps
   sort_indexs   indexfos   seeks   tells   indexlens   mmaps   filenos	   PROT_READs   indexposs   ps   readlines   ls   strings   splits   TABs   appends   positions_fos   is   writes   structs   packs   closes   positions_lens	   positionss   INT_SIZE(   s   names   datas   inxs   inx_cachenames   seps   indexcachetimestamps   indexposs   ls   positions_cachenames   positions_lens   datafos   is	   positionss   ss   ps   positionstimestamps   indexfos   indexlens   sep1s   indextimestamps   cache_is_goods   positions_fo(    (    s   ./databases.pys   dbargsF   sp     	&


!  !
!s   FileDbc              sV   t  Z d  Z e e e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   s9   Entries in index are in UTF8, sorted byte-after-byte
    c            sU   | o
 | } n | |  _ | |  _  | |  _ t |  _ t |  _ | |  _ d |  _ d  S(   Ni    (	   s   infos   names   selfs   datas   Nones   datafos   indexs   inxs   initialized(   s   selfs   names   datas   inxs   info(    (    s   ./databases.pys   __init__   s    
						c            sO   |  i o@ t |  i |  i |  i ƒ \ |  _ |  _ |  _ |  _	 d |  _ n d  S(   Ni   (
   s   selfs   initializeds   dbargss   names   datas   inxs	   positionss   nrwordss   indexs   datafo(   s   self(    (    s   ./databases.pys
   initializeš   s    3c            s   | Sd  S(   N(   s   s(   s   selfs   s(    (    s   ./databases.pys   transformentryŸ   s    c            sK   | \ } } } |  i i | ƒ |  i |  i i | ƒ ƒ } |  i
 | f Sd  S(   N(   s   args   entrys   sts   lns   selfs   datafos   seeks   transformentrys   reads   rs   name(   s   selfs   args   rs   lns   entrys   st(    (    s   ./databases.pys	   readentry¥   s    c   	   	      sü   |  i ƒ  g  } t |  i |  i |  i | d d ƒ } x« | D]£ } |  i i
 t i d |  i t | t | d !ƒ d ƒ t i |  i i ƒ  ƒ } t i | t ƒ \ } } } t | ƒ t | ƒ f \ } } | i | | | f ƒ q; Wt |  i | ƒ } | Sd  S(   Ni    s   ii   (   s   selfs
   initializes   rs	   loop_in_Cs   indexs	   positionss   nrwordss   words   posss   is   seeks   structs   unpacks   INT_SIZEs   strings   rstrips   readlines   ls   splits   TABs   entrys   sts   lns
   b64_decodes   appends   maps	   readentry(	   s   selfs   words   is   ls   sts   lns   rs   entrys   poss(    (    s   ./databases.pys   define«   s    
$ 6c      	      sª  |  i ƒ  g  } | d j o
 d } n t i | ƒ o t | d } n g  St |  i |  i |  i	 | | d ƒ } xê | D]â } t i d ƒ } |  i i t i d |  i t | t | d !ƒ d ƒ t i |  i i ƒ  ƒ } y" t i | t d ƒ \ }
 } }	 Wn& t j
 o d G| Gd	 G| GHn Xt | ƒ t |	 ƒ f \ } }	 | i |
 | |	 f ƒ qx Wx5 t t  | ƒ ƒ D]! } |  i! | | d f | | <qqWt" | ƒ } | Sd  S(
   Ns   .s   levi    i   s   ii   i   s   bad index file: l=s   i=(#   s   selfs
   initializes   rs   strategys
   strategiess   has_keys	   loop_in_Cs   indexs	   positionss   nrwordss   words   r1s   is   structs   calcsizes   sszs   seeks   unpacks   INT_SIZEs   strings   rstrips   readlines   ls   splits   TABs   entrys   sts   lns
   ValueErrors
   b64_decodes   appends   ranges   lens   names   unique_strings(   s   selfs   strategys   words   sszs   sts   rs   r1s   is   ls   lns   entry(    (    s   ./databases.pys   match¹   s0    

$ 6" c            s:   |  i o |  i i ƒ  n |  i o |  i i ƒ  n d  S(   N(   s   selfs   datafos   closes   index(   s   self(    (    s   ./databases.pys   __del__Õ   s    

(   s   __name__s
   __module__s   __doc__s   Nones   __init__s
   initializes   transformentrys	   readentrys   defines   matchs   __del__(    (    (    s   ./databases.pys   FileDbŒ   s    					s
   FileDbDictc              s   t  Z d  Z d „  Z RS(   sm   Entries in index are in UTF8, sorted byte-after-byte
       Database file is raw dict file (with %h, %d)
    c            sÏ   t  i | d ƒ } g  } d } xP d oH t  i | | ƒ } | d  d j o | i | d ƒ | d 7} n Pq! Wt  i	 | | ƒ d j o d Sn | d 7} | i d ƒ | i
 | | ƒ t  i | d ƒ Sd  S(	   Ns   
i    i   i   s   %hs   %ds   wrong entry, please checks   -----(   s   strings   splits   ss   rss   replys   is   lstrips   srss   appends   strips   extends   join(   s   selfs   ss   srss   rss   is   reply(    (    s   ./databases.pys   transformentryâ   s      
(   s   __name__s
   __module__s   __doc__s   transformentry(    (    (    s   ./databases.pys
   FileDbDictÝ   s    s   Parserc              st   t  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(   Nc            s-   t  i i |  ƒ d |  _ |  _ d |  _ d  S(   Ni    s    (   s   sgmllibs
   SGMLParsers   __init__s   selfs   inorths   intrs   result(   s   self(    (    s   ./databases.pys   __init__ù   s    c            s   d  S(   N(    (   s   selfs   a(    (    s   ./databases.pys   start_entryþ   s    c            s   t  |  i |  i ƒ |  _ d  S(   N(   s   process_entrys   selfs   headers   translationss   result(   s   self(    (    s   ./databases.pys	   end_entry   s    c            s   g  |  _ d  S(   N(   s   selfs   header(   s   selfs   a(    (    s   ./databases.pys
   start_form  s    c            s   d  S(   N(    (   s   self(    (    s   ./databases.pys   end_form  s    c            s   d |  _ d  S(   Ni   (   s   selfs   inorth(   s   selfs   a(    (    s   ./databases.pys
   start_orth  s    c            s   d |  _ d  S(   Ni    (   s   selfs   inorth(   s   self(    (    s   ./databases.pys   end_orth
  s    c            s   d |  _ d  S(   Ni   (   s   selfs   intr(   s   selfs   a(    (    s   ./databases.pys   start_tr  s    c            s   d |  _ d  S(   Ni    (   s   selfs   intr(   s   self(    (    s   ./databases.pys   end_tr  s    c            s   g  |  _ d  S(   N(   s   selfs   translations(   s   selfs   a(    (    s   ./databases.pys   start_trans  s    c            s   d  S(   N(    (   s   self(    (    s   ./databases.pys	   end_trans  s    c            s@   |  i o |  i i | ƒ n |  i o |  i i | ƒ n d  S(   N(   s   selfs   inorths   headers   appends   ds   intrs   translations(   s   selfs   d(    (    s   ./databases.pys   handle_data  s    

(   s   __name__s
   __module__s   __init__s   start_entrys	   end_entrys
   start_forms   end_forms
   start_orths   end_orths   start_trs   end_trs   start_transs	   end_transs   handle_data(    (    (    s   ./databases.pys   Parser÷   s   											c            s<   t  i |  t ƒ d } | d t  i | t ƒ d } | Sd  S(   Ns   
s     (   s   strings   joins   orthss   seporths   rs   trss   septrans(   s   orthss   trss   r(    (    s   ./databases.pys   process_entry  s    s
   FileDbTeitc              s   t  Z d  Z d „  Z RS(   s^   Entries in index are in UTF8, sorted byte-after-byte
       Database file is raw tei file
    c            sZ   t  i | d ƒ } t ƒ  } t t ƒ } x | D] } | i
 | ƒ q. W| i ƒ  | i Sd  S(   Ns   
(   s   strings   splits   ss   rss   Parsers   ps   opens   teifiles   fs   is   feeds   closes   result(   s   selfs   ss   ps   fs   rss   i(    (    s   ./databases.pys   transformentry(  s    	 
(   s   __name__s
   __module__s   __doc__s   transformentry(    (    (    s   ./databases.pys
   FileDbTeit#  s    (   s   strings   mmaps   oss   cPickles   utilss	   searchings	   loop_in_Cs   dictzips   sgmllibs	   cStringIOs   structs   md5s   stats   ST_MTIMEs   execfiles   unique_stringss   EmptyDbs   FullDbs
   sort_indexs   getcachenamess   Nones   dbargss   FileDbs
   FileDbDicts
   SGMLParsers   Parsers   process_entrys
   FileDbTeit(   s	   cStringIOs   cPickles   Parsers
   FileDbTeits   strings   process_entrys   ST_MTIMEs   FileDbs	   loop_in_Cs   EmptyDbs
   sort_indexs   unique_stringss
   FileDbDicts   md5s   sgmllibs   structs   mmaps   getcachenamess   dbargss   dictzips   FullDbs   os(    (    s   ./databases.pys   ?   s"   $$	
			FQ'	