Files
PowerToys/PythonHome/Lib/bsddb/dbshelve.pyc

38 lines
12 KiB
Plaintext
Raw Normal View History

2014-07-09 18:15:23 +08:00
<03>
<EFBFBD>W`Sc@s<>dZddlZejddkZer6ddUn ddlZejddkrdddlZnzejdkr<>ddlZn\ddlZej<00>Zej <00>z)ej
dd d
d e <00>ddlZWdej <00>X[ej Z d <00>Zejdkrdd lmZnddlZejZejdejddd<00>Zdejfd<00><00>YZdefd<00><00>YZddd<00><00>YZdS(sNManage shelves of pickled objects using bsddb database files for the
storage.
i<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Niisfrom . import dbiitignoretmessages1the cPickle module has been removed in Python 3.0tcategorycCstj|d|<00>S(Ntprotocol(tcPickletdumps(tobjectR((s.\Lib\bsddb\dbshelve.pyt_dumpsDs(t DictMixini<6E>cCs<>t|<00>td<00>kr<>|}|dkr6tj}q<>|dkrKd}q<>|dkrctj}q<>|dkr{tj}q<>|dkr<>tjtjB}q<>tjd<00>nt|<00>}|j|||||<00>|S( s(
A simple factory function for compatibility with the standard
shleve.py module. It can be used like this, where key is a string
and data is a pickleable object:
from bsddb import dbshelve
db = dbshelve.open(filename)
db[key] = data
db.close()
ttrtrwitwtctnsJflags should be one of 'r', 'w', 'c' or 'n' or use the bsddb.db.DB_* flags(ttypetdbt DB_RDONLYt DB_CREATEt DB_TRUNCATEtDBErrortDBShelftopen(tfilenametflagstmodetfiletypetdbenvtdbnametsflagtd((s.\Lib\bsddb\dbshelve.pyRPs           t DBShelveErrorcBseZRS((t__name__t
__module__(((s.\Lib\bsddb\dbshelve.pyRssRcBseZdZdd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Z d<00>Z
dd<00>Z e j dkrud <00>Znd <00>Zd <00>Zd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zd<00>Zddd<00>Zddd<00>Zddd<00>Zdd<00>ZRS(s<>A shelf to hold pickled objects, built upon a bsddb DB object. It
automatically pickles/unpickles data objects going to/from the DB.
cCs:tj|<00>|_t|_tr-t|_n d|_dS(Ni(RtDBtTruet_closedtHIGHEST_PROTOCOLR(tselfR((s.\Lib\bsddb\dbshelve.pyt__init__zs
  cCs|j<00>dS(N(tclose(R&((s.\Lib\bsddb\dbshelve.pyt__del__<5F>scCst|j|<00>S(sTMany methods we can just pass through to the DB object.
(See below)
(tgetattrR(R&tname((s.\Lib\bsddb\dbshelve.pyt __getattr__<5F>scCs t|j<00>S(N(tlenR(R&((s.\Lib\bsddb\dbshelve.pyt__len__<5F>scCs|j|}tj|<00>S(N(RRtloads(R&tkeytdata((s.\Lib\bsddb\dbshelve.pyt __getitem__<5F>s cCs#t||j<00>}||j|<dS(N(RRR(R&R0tvalueR1((s.\Lib\bsddb\dbshelve.pyt __setitem__<5F>scCs|j|=dS(N(R(R&R0((s.\Lib\bsddb\dbshelve.pyt __delitem__<5F>scCs-|dk r|jj|<00>S|jj<00>SdS(N(tNoneRtkeys(R&ttxn((s.\Lib\bsddb\dbshelve.pyR7<00>s iiccs#x|jj<00>D] }|VqWdS(N(RR7(R&tk((s.\Lib\bsddb\dbshelve.pyt__iter__<5F>scOs |jj||<00>t|_dS(N(RRtFalseR$(R&targstkwargs((s.\Lib\bsddb\dbshelve.pyR<00>scOs |jj||<00>t|_dS(N(RR(R#R$(R&R<R=((s.\Lib\bsddb\dbshelve.pyR(<00>scCs1|jrdt|<00>Stt|j<00><00><00>SdS(Ns<DBShelf @ 0x%x - closed>(R$tidtreprtdictt iteritems(R&((s.\Lib\bsddb\dbshelve.pyt__repr__<5F>s cCsm|dk r!|jj|<00>}n|jj<00>}g}x0|D](\}}|j|tj|<00>f<00>q=W|S(N(R6RtitemstappendRR/(R&R8RCtnewitemsR9tv((s.\Lib\bsddb\dbshelve.pyRC<00>s  cCs@|dk r!|jj|<00>}n|jj<00>}ttj|<00>S(N(R6RtvaluestmapRR/(R&R8RG((s.\Lib\bsddb\dbshelve.pyRG<00>s cCs%t||j<00>}|jj||<00>S(N(RRRRD(R&R3R8R1((s.\Lib\bsddb\dbshelve.pyt__append<6E>scCs5|j<00>tjkr(|j|d|<00>Std<00>dS(NR8sOappend() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO(tget_typeRtDB_RECNOt_DBShelf__appendR(R&R3R8((s.\Lib\bsddb\dbshelve.pyRD<00>sicCs"|d<00>}|jj|||<00>S(NcSsYtjddks"t|t<00>r4tj|<00>}ntjt|d<00><00>}|||<00>S(Niis iso8859-1(tsyst version_infot
isinstancetbytesRR/(tpriKeytpriDatat realCallbackR1((s.\Lib\bsddb\dbshelve.pyt_shelf_callback<63>s"(Rt associate(R&t secondaryDBtcallbackRRT((s.\Lib\bsddb\dbshelve.pyRU<00>s cOsK|jj||<00>}ytj|<00>SWntttjfk
rF|SXdS(N(RtgetRR/tEOFErrort TypeErrortUnpicklingError(R&R<tkwR1((s.\Lib\bsddb\dbshelve.pyRX<00>s
cCs:t||j<00>}|jj||||<00>}tj|<00>S(N(RRRRXRR/(R&R0R3R8RR1((s.\Lib\bsddb\dbshelve.pytget_both<74>scCs+t|jj||<00><00>}|j|_|S(N(t DBShelfCursorRtcursorR(R&R8RR ((s.\Lib\bsddb\dbshelve.pyR_s cCs+t||j<00>}|jj||||<00>S(N(RRRtput(R&R0R3R8RR1((s.\Lib\bsddb\dbshelve.pyR` scCs
t<00>dS(N(tNotImplementedError(R&t
cursorListR((s.\Lib\bsddb\dbshelve.pytjoinsN(ii(R R!t__doc__R6R'R)R,R.R2R4R5R7RMRNR:RR(RBRCRGRLRDRURXR]R_R`Rc(((s.\Lib\bsddb\dbshelve.pyRvs0 
          R^cBseZdZd<00>Zd<00>Zd<00>Zdd<00>Zdd<00>Zd<00>Zd<00>Z d <00>Z
d
<00>Z dd <00>Z dd <00>Z dd <00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>Zdd<00>ZeZd<00>ZRS(s
cCs ||_dS(N(tdbc(R&R_((s.\Lib\bsddb\dbshelve.pyR'!scCs|j<00>dS(N(R((R&((s.\Lib\bsddb\dbshelve.pyR)$scCst|j|<00>S(sHSome methods we can just pass through to the cursor object. (See below)(R*Re(R&R+((s.\Lib\bsddb\dbshelve.pyR,(sicCs(t|jj|<00><00>}|j|_|S(N(R^RetdupR(R&RR ((s.\Lib\bsddb\dbshelve.pyRf/s cCs(t||j<00>}|jj|||<00>S(N(RRReR`(R&R0R3RR1((s.\Lib\bsddb\dbshelve.pyR`5scGs-t|<00>}t|d|<16>}||<00>dS(Nsget_%d(R-R*(R&R<tcounttmethod((s.\Lib\bsddb\dbshelve.pyRX:s cCs|jj|<00>}|j|<00>S(N(ReRXt_extract(R&Rtrec((s.\Lib\bsddb\dbshelve.pytget_1?scCs"|jj||<00>}|j|<00>S(N(ReRXRi(R&R0RRj((s.\Lib\bsddb\dbshelve.pytget_2CscCs4t||j<00>}|jj||<00>}|j|<00>S(N(RRReRXRi(R&R0R3RR1Rj((s.\Lib\bsddb\dbshelve.pytget_3GscCs|j|tjB<>S(N(RkRt
DB_CURRENT(R&R((s.\Lib\bsddb\dbshelve.pytcurrentMscCs|j|tjB<>S(N(RkRtDB_FIRST(R&R((s.\Lib\bsddb\dbshelve.pytfirstNscCs|j|tjB<>S(N(RkRtDB_LAST(R&R((s.\Lib\bsddb\dbshelve.pytlastOscCs|j|tjB<>S(N(RkRtDB_NEXT(R&R((s.\Lib\bsddb\dbshelve.pytnextPscCs|j|tjB<>S(N(RkRtDB_PREV(R&R((s.\Lib\bsddb\dbshelve.pytprevQscCs|j|tjB<>S(N(RkRt
DB_CONSUME(R&R((s.\Lib\bsddb\dbshelve.pytconsumeRscCs|j|tjB<>S(N(RkRt DB_NEXT_DUP(R&R((s.\Lib\bsddb\dbshelve.pytnext_dupSscCs|j|tjB<>S(N(RkRt DB_NEXT_NODUP(R&R((s.\Lib\bsddb\dbshelve.pyt
next_nodupTscCs|j|tjB<>S(N(RkRt DB_PREV_NODUP(R&R((s.\Lib\bsddb\dbshelve.pyt
prev_nodupUscCs4t||j<00>}|jj||<00>}|j|<00>S(N(RRReR]Ri(R&R0R3RR1Rj((s.\Lib\bsddb\dbshelve.pyR]XscCs"|jj||<00>}|j|<00>S(N(RetsetRi(R&R0RRj((s.\Lib\bsddb\dbshelve.pyR<79>^scCs"|jj||<00>}|j|<00>S(N(Ret set_rangeRi(R&R0RRj((s.\Lib\bsddb\dbshelve.pyR<79>bscCs"|jj||<00>}|j|<00>S(N(Ret set_recnoRi(R&trecnoRRj((s.\Lib\bsddb\dbshelve.pyR<79>fscCsq|dkrdS|\}}tjddks>t|t<00>rQ|tj|<00>fS|tjt|d<00><00>fSdS(Niis iso8859-1(R6RMRNRORPRR/(R&RjR0R1((s.\Lib\bsddb\dbshelve.pyRils   "(R R!RdR'R)R,RfR`RXRkRlRmRoRqRsRuRwRyR{R}RR]R<>R<>R<>tset_bothRi(((s.\Lib\bsddb\dbshelve.pyR^s2                      (ii(ii((RdRMRNtabsolute_importRRtwarningstcatch_warningsR t __enter__tfilterwarningstDeprecationWarningt__exit__R%RtUserDictRtMutableMappingt collectionsRtDB_HASHR6RRRRR^(((s.\Lib\bsddb\dbshelve.pyt<module>s<     
      "<16>