Ñò
$8Zc           @   s  d  Z  d d k Z e i d d j Z e i d j od e i d j  oT d d k Z e i o$ e d j o e i d e d ƒ n e i	 d	 d
 e d ƒ n yf e d j o9 e o d d Un d d k
 Z
 e
 Z d d k l Z n d d k Z d d k l Z Wn, e j
 o  d d k Z e i e =‚  n Xe Z Z e i Z e i Z d d k Z d d k Z d d k l Z e i d j  o d d k Z e i Z n d d k Z e i Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d d d d d d d d d „ Z! d d d d d d d d d „ Z" d d d d d d d d d d d „
 Z# d „  Z$ d „  Z% y d d k& Z' [' Wn e j
 o d e _( n Xd S(   s½   Support for Berkeley DB 4.2 through 5.1 with a simple interface.

For the full featured object oriented interface use the bsddb.db module
instead.  It mirrors the Oracle Berkeley DB C API.
iÿÿÿÿNi    i   i   i   t   bsddb3sQ   in 3.x, the bsddb module has been removed; please use the pybsddb project insteadt   ignores   .*CObject.*s   bsddb.__init__s   from . import _pybsddb(   t   DeadlockWrap(   t   reft   _iter_mixinc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sA   t  |  i i ƒ } t | ƒ } t | |  i | ƒ ƒ |  i | <| S(   N(   t   _DeadlockWrapt   dbt   cursort   idR   t   _gen_cref_cleanert   _cursor_refs(   t   selft   curt   key(    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   _make_iter_cursor_   s    c            s   ‡  ‡ f d †  S(   Nc            s   ˆ  i  i ˆ d  ƒ S(   N(   R
   t   popt   None(   R   (   R   R   (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   <lambda>i   s    (    (   R   R   (    (   R   R   s$   /usr/lib/python2.6/bsddb/__init__.pyR	   e   s    c         c   sH  t  |  _ |  i d 7_ yyÏ |  i ƒ  } t | i d d d ƒ d } | Vt | d ƒ } xŒ y" t | d d d ƒ d } | VWq] t i j
 oU |  i o t	 d ƒ ‚ n |  i ƒ  } t | i
 | d d d ƒ t | d ƒ } q] Xq] Wn+ t i j
 o n t i j
 o n XWn |  i d 8_ ‚  n X|  i d 8_ d  S(   Ni   i    t   nexts'   Database changed size during iteration.(   t   Falset   _kill_iterationt   _in_iterR   R   t   firstt   getattrt   _bsddbt   DBCursorClosedErrort   RuntimeErrort   sett   DBNotFoundError(   R   R   R   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   __iter__k   s4    		
	c         c   sQ  |  i  p d  St |  _ |  i d 7_ yû yÉ |  i ƒ  } t | i ƒ } | d } | Vt | d ƒ } x‰ y t | ƒ } | d } | VWqi t i	 j
 oU |  i o t
 d ƒ ‚ n |  i ƒ  } t | i | d d d ƒ t | d ƒ } qi Xqi Wn+ t i j
 o n t i	 j
 o n XWn |  i d 8_ ‚  n X|  i d 8_ d  S(   Ni   i    R   s'   Database changed size during iteration.(   R   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   t   kvR   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt	   iteritems”   s<    
	

	
	(   t   __name__t
   __module__R   R	   R   R   (    (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyR   ^   s   			)t   _DBWithCursorc           B   s÷   e  Z d  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z	 e
 i d j o d „  Z n d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e
 i d d j o
 e Z n d „  Z d „  Z d „  Z d „  Z RS(   s˜   
    A simple wrapper around DB that makes it look like the bsddbobject in
    the old module.  It uses a cursor as needed to provide DB traversal.
    c         C   sJ   | |  _  |  i  i d ƒ d  |  _ d  |  _ h  |  _ d |  _ t |  _ d  S(   Ni    (	   R   t   set_get_returns_noneR   t   dbct   saved_dbc_keyR
   R   R   R   (   R   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   __init__Å   s    					c         C   s   |  i  ƒ  d  S(   N(   t   close(   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   __del__Ý   s    c         C   s`   |  i  d  j oL t |  i i ƒ |  _  |  i d  j	 o# t |  i  i |  i ƒ d  |  _ q\ n d  S(   N(   R$   R   R   R   R   R%   R   (   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   _checkCursorà   s
    i   c         C   s¼   |  i  om |  i  } d  |  _  | o@ y# t | i d d d ƒ d |  _ Wqc t i j
 o qc Xn t | i ƒ ~ n x> |  i i	 ƒ  D]- } | ƒ  } | d  j	 o t | i ƒ q‡ q‡ Wd  S(   Ni    (
   R$   R   R   t   currentR%   R   t   DBErrorR'   R
   t   values(   R   t   savet   ct   cref(    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   _closeCursorsë   s    
		#	 	c         C   s!   |  i  d  j o t d ‚ n d  S(   Ns$   BSDDB object has already been closed(   R   R   t   error(   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt
   _checkOpenû   s    c         C   s   |  i  d  j	 S(   N(   R   R   (   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   isOpenÿ   s    c            s   ˆ  i  ƒ  t ‡  f d †  ƒ S(   Nc              s   t  ˆ  i ƒ S(    (   t   lenR   (    (   R   (    s$   /usr/lib/python2.6/bsddb/__init__.pyR     s    (   R2   R   (   R   (    (   R   s$   /usr/lib/python2.6/bsddb/__init__.pyt   __len__  s    
i   i   c         C   s7   |  i  ƒ  o t t t |  i i ƒ ƒ ƒ St t ƒ  ƒ S(   N(   R3   t   reprt   dictR   R   t   items(   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   __repr__  s    c            s    ˆ  i  ƒ  t ‡  ‡ f d †  ƒ S(   Nc              s   ˆ  i  ˆ S(    (   R   (    (   R   R   (    s$   /usr/lib/python2.6/bsddb/__init__.pyR     s    (   R2   R   (   R   R   (    (   R   R   s$   /usr/lib/python2.6/bsddb/__init__.pyt   __getitem__  s    
c            s[   ˆ  i  ƒ  ˆ  i ƒ  ˆ  i o ˆ ˆ  j o t ˆ  _ n ‡  ‡ ‡ f d †  } t | ƒ d  S(   Nc              s   ˆ ˆ  i  ˆ <d  S(   N(   R   (    (   R   t   valueR   (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   wrapF  s    (   R2   R0   R   t   TrueR   R   (   R   R   R;   R<   (    (   R   R;   R   s$   /usr/lib/python2.6/bsddb/__init__.pyt   __setitem__  s    

c            sX   ˆ  i  ƒ  ˆ  i ƒ  ˆ  i o ˆ ˆ  j o t ˆ  _ n ‡  ‡ f d †  } t | ƒ d  S(   Nc              s   ˆ  i  ˆ =d  S(   N(   R   (    (   R   R   (    s$   /usr/lib/python2.6/bsddb/__init__.pyR<     s    (   R2   R0   R   R=   R   R   (   R   R   R<   (    (   R   R   s$   /usr/lib/python2.6/bsddb/__init__.pyt   __delitem__  s    

c         C   sv   |  i  d d ƒ |  i d  j	 o t |  i i ƒ n d } |  i d  j	 o t |  i i ƒ } n d  |  _ d  |  _ | S(   NR-   i    (   R0   R$   R   R   R'   R   (   R   t   v(    (    s$   /usr/lib/python2.6/bsddb/__init__.pyR'   "  s    		c         C   s   |  i  ƒ  t |  i i ƒ S(   N(   R2   R   R   t   keys(   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRA   -  s    
c         C   s   |  i  ƒ  t |  i i | ƒ S(   N(   R2   R   R   t   has_key(   R   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRB   1  s    
c         C   s'   |  i  ƒ  |  i ƒ  t |  i i | ƒ S(   N(   R2   R)   R   R$   t	   set_range(   R   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   set_location5  s    

c         C   s0   |  i  ƒ  |  i ƒ  t t |  i d ƒ ƒ } | S(   NR   (   R2   R)   R   R   R$   (   R   t   rv(    (    s$   /usr/lib/python2.6/bsddb/__init__.pyR   :  s    

i    i   c         C   s*   |  i  ƒ  |  i ƒ  t |  i i ƒ } | S(   N(   R2   R)   R   R$   t   prev(   R   RE   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   previousC  s    

c         C   s3   |  i  ƒ  d  |  _ |  i ƒ  t |  i i ƒ } | S(   N(   R2   R   R%   R)   R   R$   R   (   R   RE   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyR   I  s
    
	
c         C   s3   |  i  ƒ  d  |  _ |  i ƒ  t |  i i ƒ } | S(   N(   R2   R   R%   R)   R   R$   t   last(   R   RE   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRH   Q  s
    
	
c         C   s   |  i  ƒ  t |  i i ƒ S(   N(   R2   R   R   t   sync(   R   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRI   Y  s    
(   i   i   (   R    R!   t   __doc__R&   R(   R)   R0   R2   R3   R5   t   syst   version_infoR9   R:   R>   R?   R'   RA   RB   RD   R   t   __next__RG   R   RH   RI   (    (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyR"   À   s0   																
			R.   i¶  c	         C   sÒ   t  | |  ƒ }	 t | ƒ }
 t i |
 ƒ } | i | ƒ | d  j	 o | i | ƒ n | d  j	 o | i | ƒ n | d  j	 o | i | ƒ n | d  j	 o | i	 | ƒ n | i
 |  t i |	 | ƒ t | ƒ S(   N(   t
   _checkflagt
   _openDBEnvR   t   DBt	   set_flagsR   t   set_pagesizet
   set_lordert   set_h_ffactort   set_h_nelemt   opent   DB_HASHR"   (   t   filet   flagt   modet   pgsizet   ffactort   nelemt	   cachesizet   lordert   hflagst   flagst   et   d(    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   hashopena  s        c	         C   sÒ   t  | |  ƒ }	 t | ƒ }
 t i |
 ƒ } | d  j	 o | i | ƒ n | d  j	 o | i | ƒ n | i | ƒ | d  j	 o | i | ƒ n | d  j	 o | i	 | ƒ n | i
 |  t i |	 | ƒ t | ƒ S(   N(   RN   RO   R   RP   R   RR   RS   RQ   t   set_bt_minkeyt   set_bt_maxkeyRV   t   DB_BTREER"   (   RX   RY   RZ   t   btflagsR^   t
   maxkeypaget
   minkeypageR[   R_   Ra   Rb   Rc   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   btopenq  s        c         C   s  t  | |  ƒ } t | ƒ } t i | ƒ } | d  j	 o | i | ƒ n | d  j	 o | i | ƒ n | i | ƒ | d  j	 o | i | ƒ n | d  j	 o | i	 | ƒ n |	 d  j	 o | i
 |	 ƒ n |
 d  j	 o | i |
 ƒ n | i |  t i | | ƒ t | ƒ S(   N(   RN   RO   R   RP   R   RR   RS   RQ   t   set_re_delimt
   set_re_lent   set_re_sourcet
   set_re_padRV   t   DB_RECNOR"   (   RX   RY   RZ   t   rnflagsR^   R[   R_   t   rlent   delimt   sourcet   padRa   Rb   Rc   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   rnopenƒ  s$          c         C   sŠ   t  i ƒ  } |  d  j	 o. |  d j o | i d |  ƒ qG t d ‚ n | i t  i ƒ | i d t  i t  i	 Bt  i
 Bt  i Bt  i Bƒ | S(   Ni P  i    s   cachesize must be >= 20480t   .(   R   t   DBEnvR   t   set_cachesizeR1   t   set_lk_detectt   DB_LOCK_DEFAULTRV   t
   DB_PRIVATEt	   DB_CREATEt	   DB_THREADt   DB_INIT_LOCKt   DB_INIT_MPOOL(   R^   Rb   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRO   –  s    /c         C   sÄ   |  d j o t  i } n  |  d j o
 d } n‰ |  d j o t  i } no |  d j o t  i } nU |  d j o> t  i } | d  j	 o$ t i i | ƒ o t i | ƒ q¹ n
 t d ‚ | t  i	 BS(   Nt   rt   rwi    t   wR.   t   ns+   flags should be one of 'r', 'w', 'c' or 'n'(
   R   t	   DB_RDONLYR}   R   t   ost   patht   isfilet   unlinkR1   R~   (   RY   RX   Ra   (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyRN   ¡  s    
	 	(   i   i   (   i   i    (   i   i   ()   RJ   RK   RL   t   absolute_importt   warningst   py3kwarningR    t   warnpy3kt   DeprecationWarningt   filterwarningst   _pybsddbR   t   bsddb3.dbutilsR   R   t   bsddb.dbutilst   ImportErrort   modulesR   t   _dbt   __version__R+   R1   R†   t   weakrefR   t   UserDictt	   DictMixint   MutableMappingt   collectionsR   R"   R   Rd   Rk   Rv   RO   RN   t   threadt   TR~   (    (    (    s$   /usr/lib/python2.6/bsddb/__init__.pyt   <module>(   sb    	

			b¡		