ó }®¸Qc @s}dZddlZejddkZejdkr“ejdkr“ddlZejrzedkrzejdedƒnej d d ed ƒnybedkrØer³d dUn ddl Z e Z dd l m Znddl Z dd lm ZWn*ek r!ddlZeje=‚nXe ZZejZejZddlZddlZddlmZejdkrddlZejZnddlZejZdefd„ƒYZdefd„ƒYZddddddddd„Z!ddddddddd„Z"ddddddddddd„ Z#d„Z$d„Z%yddl&Z'['Wnek rxde_(nXdS(s½Support for Berkeley DB 4.3 through 5.3 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ÿÿÿÿNiiiitbsddb3sQin 3.x, the bsddb module has been removed; please use the pybsddb project insteadtignores .*CObject.*sbsddb.__init__sfrom . import _pybsddb(t DeadlockWrap(treft _iter_mixincBs,eZd„Zd„Zd„Zd„ZRS(cCsAt|jjƒ}t|ƒ}t||j|ƒƒ|j|<|S(N(t _DeadlockWraptdbtcursortidRt_gen_cref_cleanert _cursor_refs(tselftcurtkey((s$/sys/lib/python2.7/bsddb/__init__.pyt_make_iter_cursor_s cs‡‡fd†S(NcsˆjjˆdƒS(N(R tpoptNone(R(R R (s$/sys/lib/python2.7/bsddb/__init__.pytis((R R ((R R s$/sys/lib/python2.7/bsddb/__init__.pyR esccs@t|_|jd7_yùyË|jƒ}t|jdddƒd}|Vt|dƒ}xˆy"t|dddƒd}|VWq]tjk rá|jrªt dƒ‚n|jƒ}t|j |dddƒt|dƒ}q]Xq]Wn'tj k rüntjk rnXWn|jd8_‚nX|jd8_dS(Niitnexts'Database changed size during iteration.( tFalset_kill_iterationt_in_iterRRtfirsttgetattrt_bsddbtDBCursorClosedErrort RuntimeErrortsettDBNotFoundError(R R R R((s$/sys/lib/python2.7/bsddb/__init__.pyt__iter__ks4     ccsG|js dSt|_|jd7_yóyÅ|jƒ}t|jƒ}|d}|Vt|dƒ}x…yt|ƒ}|d}|VWqgtj k rè|jr±t dƒ‚n|jƒ}t|j |dddƒt|dƒ}qgXqgWn'tj k rntj k rnXWn|jd8_‚nX|jd8_dS(NiiRs'Database changed size during iteration.( RRRRRRRRRRRRR(R R tkvR R((s$/sys/lib/python2.7/bsddb/__init__.pyt iteritems”s<         (t__name__t __module__RR RR(((s$/sys/lib/python2.7/bsddb/__init__.pyR^s   )t _DBWithCursorcBsóeZdZd„Zd„Zd„Zdd„Zd„Zd„Zd„Z e j dkrid „Z nd „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Ze j ddkrÍeZnd„Zd„Zd„Zd„ZRS(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. cCsJ||_|jjdƒd|_d|_i|_d|_t|_dS(Ni( Rtset_get_returns_noneRtdbct saved_dbc_keyR RRR(R R((s$/sys/lib/python2.7/bsddb/__init__.pyt__init__Ås     cCs|jƒdS(N(tclose(R ((s$/sys/lib/python2.7/bsddb/__init__.pyt__del__ÝscCs\|jdkrXt|jjƒ|_|jdk rXt|jj|jƒd|_qXndS(N(R$RRRRR%R(R ((s$/sys/lib/python2.7/bsddb/__init__.pyt _checkCursoràs icCs´|jrq|j}d|_|r^y#t|jdddƒd|_Wq^tjk rZq^Xnt|jƒ~nx<|jj ƒD]+}|ƒ}|dk rt|jƒqqWdS(Ni( R$RRtcurrentR%RtDBErrorR'R tvalues(R tsavetctcref((s$/sys/lib/python2.7/bsddb/__init__.pyt _closeCursorsës   #   cCs|jdkrtd‚ndS(Ns$BSDDB object has already been closed(RRterror(R ((s$/sys/lib/python2.7/bsddb/__init__.pyt _checkOpenûscCs |jdk S(N(RR(R ((s$/sys/lib/python2.7/bsddb/__init__.pytisOpenÿscsˆjƒt‡fd†ƒS(Ncs tˆjƒS(N(tlenR((R (s$/sys/lib/python2.7/bsddb/__init__.pyRs(R2R(R ((R s$/sys/lib/python2.7/bsddb/__init__.pyt__len__s iicCs5|jƒr(ttt|jjƒƒƒSttƒƒS(N(R3treprtdictRRtitems(R ((s$/sys/lib/python2.7/bsddb/__init__.pyt__repr__s cs ˆjƒt‡‡fd†ƒS(Ncs ˆjˆS(N(R((R R (s$/sys/lib/python2.7/bsddb/__init__.pyRs(R2R(R R ((R R s$/sys/lib/python2.7/bsddb/__init__.pyt __getitem__ s csXˆjƒˆjƒˆjr5ˆˆkr5tˆ_n‡‡‡fd†}t|ƒdS(NcsˆˆjˆR?R'RARBRDRt__next__RGRRHRI(((s$/sys/lib/python2.7/bsddb/__init__.pyR"Às0                R.i¶c CsÊt||ƒ} t|ƒ} tj| ƒ} | j|ƒ|dk rS| j|ƒn|dk ro| j|ƒn|dk r‹| j|ƒn|dk r§| j |ƒn| j |tj | |ƒt | ƒS(N( t _checkflagt _openDBEnvRtDBt set_flagsRt set_pagesizet set_lordert set_h_ffactort set_h_nelemtopentDB_HASHR"( tfiletflagtmodetpgsizetffactortnelemt cachesizetlorderthflagstflagstetd((s$/sys/lib/python2.7/bsddb/__init__.pythashopenas      c CsÊt||ƒ} t|ƒ} tj| ƒ} |dk rF| j|ƒn|dk rb| j|ƒn| j|ƒ|dk r‹| j|ƒn|dk r§| j |ƒn| j |tj | |ƒt | ƒS(N( RNRORRPRRRRSRQt set_bt_minkeyt set_bt_maxkeyRVtDB_BTREER"( RXRYRZtbtflagsR^t maxkeypaget minkeypageR[R_RaRbRc((s$/sys/lib/python2.7/bsddb/__init__.pytbtopenqs      c Cst||ƒ} t|ƒ} tj| ƒ} |dk rF| j|ƒn|dk rb| j|ƒn| j|ƒ|dk r‹| j|ƒn|dk r§| j |ƒn| dk rÃ| j | ƒn| dk rß| j | ƒn| j |tj | |ƒt| ƒS(N(RNRORRPRRRRSRQt set_re_delimt set_re_lent set_re_sourcet set_re_padRVtDB_RECNOR"(RXRYRZtrnflagsR^R[R_trlentdelimtsourcetpadRaRbRc((s$/sys/lib/python2.7/bsddb/__init__.pytrnopenƒs$        cCs†tjƒ}|dk rC|dkr7|jd|ƒqCtd‚n|jtjƒ|jdtjtj Btj Btj Btj Bƒ|S(NiPiscachesize must be >= 20480t.( RtDBEnvRt set_cachesizeR1t set_lk_detecttDB_LOCK_DEFAULTRVt DB_PRIVATEt DB_CREATEt DB_THREADt DB_INIT_LOCKt DB_INIT_MPOOL(R^Rb((s$/sys/lib/python2.7/bsddb/__init__.pyRO–s    /cCs·|dkrtj}n”|dkr-d}n|dkrEtj}ng|dkr]tj}nO|dkr£tj}|dk r¬tjj|ƒr¬tj|ƒq¬n td‚|tj BS(NtrtrwitwR.tns+flags should be one of 'r', 'w', 'c' or 'n'( Rt DB_RDONLYR}RtostpathtisfiletunlinkR1R~(RYRXRa((s$/sys/lib/python2.7/bsddb/__init__.pyRN¡s           (ii(ii(ii()RJRKRLtabsolute_importtwarningst py3kwarningR twarnpy3ktDeprecationWarningtfilterwarningst_pybsddbRtbsddb3.dbutilsRRt bsddb.dbutilst ImportErrortmodulesRt_dbt __version__R+R1R†tweakrefRtUserDictt DictMixintMutableMappingt collectionsRR"RRdRkRvRORNtthreadtTR~(((s$/sys/lib/python2.7/bsddb/__init__.pyt(sb                   b¡