Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/bsddb/
Upload File :
Current File : //usr/lib/python2.7/bsddb/__init__.pyc


|_c
@s}dZddlZejddkZejdkrejdkrddlZejrzedkrzejdednej	d	d
ednybedkrerddUnddl
Z
e
Zdd
lm
ZnddlZdd
lm
ZWn*ek
r!ddlZeje=nXeZZejZejZddlZddlZddlmZejdkrddlZejZnddlZejZdefdYZdefdYZdddddddddZ!dddddddddZ"ddddddddddd
Z#dZ$dZ%yddl&Z'['Wnek
rxde_(nXdS(sSupport 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.
iNiiiitbsddb3sQin 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,eZdZdZdZdZRS(cCsAt|jj}t|}t||j||j|<|S(N(t
_DeadlockWraptdbtcursortidRt_gen_cref_cleanert_cursor_refs(tselftcurtkey((s$/usr/lib/python2.7/bsddb/__init__.pyt_make_iter_cursor_scsfdS(NcsjjdS(N(R
tpoptNone(R(RR
(s$/usr/lib/python2.7/bsddb/__init__.pyt<lambda>is((RR
((RR
s$/usr/lib/python2.7/bsddb/__init__.pyR	esccs@t|_|jd7_yy|j}t|jdddd}|Vt|d}xy"t|dddd}|VWq]tjk
r|jrt	dn|j}t|j
|dddt|d}q]Xq]Wn'tjk
rntjk
rnXWn|jd8_nX|jd8_dS(Niitnexts'Database changed size during iteration.(tFalset_kill_iterationt_in_iterRRtfirsttgetattrt_bsddbtDBCursorClosedErrortRuntimeErrortsettDBNotFoundError(RRR
R((s$/usr/lib/python2.7/bsddb/__init__.pyt__iter__ks4			ccsG|js
dSt|_|jd7_yy|j}t|j}|d}|Vt|d}xyt|}|d}|VWqgtj	k
r|jrt
dn|j}t|j|dddt|d}qgXqgWn'tjk
rntj	k
rnXWn|jd8_nX|jd8_dS(NiiRs'Database changed size during iteration.(
RRRRRRRRRRRRR(RRtkvR
R((s$/usr/lib/python2.7/bsddb/__init__.pyt	iteritemss<		

		(t__name__t
__module__RR	RR(((s$/usr/lib/python2.7/bsddb/__init__.pyR^s			)t
_DBWithCursorcBseZdZdZdZdZddZdZdZdZ	e
jdkridZndZ
d
ZdZdZdZdZdZdZe
jddkreZndZdZdZdZRS(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||_|jjdd|_d|_i|_d|_t|_dS(Ni(	Rtset_get_returns_noneRtdbct
saved_dbc_keyR
RRR(RR((s$/usr/lib/python2.7/bsddb/__init__.pyt__init__s	
				cCs|jdS(N(tclose(R((s$/usr/lib/python2.7/bsddb/__init__.pyt__del__scCs\|jdkrXt|jj|_|jdk	rXt|jj|jd|_qXndS(N(R$RRRRR%R(R((s$/usr/lib/python2.7/bsddb/__init__.pyt_checkCursors
icCs|jrq|j}d|_|r^y#t|jdddd|_Wq^tjk
rZq^Xnt|j~nx<|jj	D]+}|}|dk	rt|jqqWdS(Ni(
R$RRtcurrentR%RtDBErrorR'R
tvalues(Rtsavetctcref((s$/usr/lib/python2.7/bsddb/__init__.pyt
_closeCursorss			#
	cCs|jdkrtdndS(Ns$BSDDB object has already been closed(RRterror(R((s$/usr/lib/python2.7/bsddb/__init__.pyt
_checkOpenscCs
|jdk	S(N(RR(R((s$/usr/lib/python2.7/bsddb/__init__.pytisOpenscsjtfdS(Ncs
tjS(N(tlenR((R(s$/usr/lib/python2.7/bsddb/__init__.pyRs(R2R(R((Rs$/usr/lib/python2.7/bsddb/__init__.pyt__len__s
iicCs5|jr(ttt|jjSttS(N(R3treprtdictRRtitems(R((s$/usr/lib/python2.7/bsddb/__init__.pyt__repr__scs jtfdS(NcsjS(N(R((RR
(s$/usr/lib/python2.7/bsddb/__init__.pyRs(R2R(RR
((RR
s$/usr/lib/python2.7/bsddb/__init__.pyt__getitem__s
csXjjjr5kr5t_nfd}t|dS(Ncsj<dS(N(R((RtvalueR
(s$/usr/lib/python2.7/bsddb/__init__.pytwrapFs(R2R0RtTrueRR(RR
R;R<((RR;R
s$/usr/lib/python2.7/bsddb/__init__.pyt__setitem__s

csUjjjr5kr5t_nfd}t|dS(Ncsj=dS(N(R((RR
(s$/usr/lib/python2.7/bsddb/__init__.pyR<s(R2R0RR=RR(RR
R<((RR
s$/usr/lib/python2.7/bsddb/__init__.pyt__delitem__s

cCsr|jdd|jdk	r2t|jjnd}|jdk	r\t|jj}nd|_d|_|S(NR-i(R0R$RRR'R(Rtv((s$/usr/lib/python2.7/bsddb/__init__.pyR'"s		cCs|jt|jjS(N(R2RRtkeys(R((s$/usr/lib/python2.7/bsddb/__init__.pyRA-s
cCs|jt|jj|S(N(R2RRthas_key(RR
((s$/usr/lib/python2.7/bsddb/__init__.pyRB1s
cCs'|j|jt|jj|S(N(R2R)RR$t	set_range(RR
((s$/usr/lib/python2.7/bsddb/__init__.pytset_location5s

cCs0|j|jtt|jd}|S(NR(R2R)RRR$(Rtrv((s$/usr/lib/python2.7/bsddb/__init__.pyR:s

iicCs*|j|jt|jj}|S(N(R2R)RR$tprev(RRE((s$/usr/lib/python2.7/bsddb/__init__.pytpreviousCs

cCs3|jd|_|jt|jj}|S(N(R2RR%R)RR$R(RRE((s$/usr/lib/python2.7/bsddb/__init__.pyRIs

	
cCs3|jd|_|jt|jj}|S(N(R2RR%R)RR$tlast(RRE((s$/usr/lib/python2.7/bsddb/__init__.pyRHQs

	
cCs|jt|jjS(N(R2RRtsync(R((s$/usr/lib/python2.7/bsddb/__init__.pyRIYs
(ii(R R!t__doc__R&R(R)R0R2R3R5tsystversion_infoR9R:R>R?R'RARBRDRt__next__RGRRHRI(((s$/usr/lib/python2.7/bsddb/__init__.pyR"s0																				R.ic	Cst||}	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_ffactortset_h_nelemtopentDB_HASHR"(tfiletflagtmodetpgsizetffactortnelemt	cachesizetlorderthflagstflagstetd((s$/usr/lib/python2.7/bsddb/__init__.pythashopenas
c	Cst||}	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$/usr/lib/python2.7/bsddb/__init__.pytbtopenqs
cCst||}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$/usr/lib/python2.7/bsddb/__init__.pytrnopens$
cCstj}|dk	rC|dkr7|jd|qCtdn|jtj|jdtjtj	Btj
BtjBtj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$/usr/lib/python2.7/bsddb/__init__.pyROs/cCs|dkrtj}n|dkr-d}n|dkrEtj}ng|dkr]tj}nO|dkrtj}|dk	rtjj|rtj|qn	td|tj	BS(NtrtrwitwR.tns+flags should be one of 'r', 'w', 'c' or 'n'(
Rt	DB_RDONLYR}RtostpathtisfiletunlinkR1R~(RYRXRa((s$/usr/lib/python2.7/bsddb/__init__.pyRNs			(ii(ii(ii()RJRKRLtabsolute_importtwarningstpy3kwarningR twarnpy3ktDeprecationWarningtfilterwarningst_pybsddbRtbsddb3.dbutilsRRt
bsddb.dbutilstImportErrortmodulesRt_dbt__version__R+R1RtweakrefRtUserDictt	DictMixintMutableMappingtcollectionsRR"RRdRkRvRORNtthreadtTR~(((s$/usr/lib/python2.7/bsddb/__init__.pyt<module>(sb	




			b