ACC SHELL
Path : /usr/lib/python/ |
|
Current File : //usr/lib/python/dumbdbm.pyc |
Ñò
nÄMc @ sk d Z d d k Z d d k Z d d k Z e i Z d Z e Z d e i
f d „ ƒ YZ d d d „ Z d S( s A dumb and slow but simple dbm clone.
For database spam, spam.dir contains the index (a text file),
spam.bak *may* contain a backup of the index (also a text file),
while spam.dat contains the data (a binary file).
XXX TO DO:
- seems to contain a bug when updating...
- reclaim free space (currently, space once occupied by deleted or expanded
items is never reused)
- support concurrent access (currently, if two processes take turns making
updates, they can mess up the index)
- support efficient access to large databases (currently, the whole index
is read when the database is opened, and some updates rewrite the whole index)
- support opening for read-only (flag = 'm')
iÿÿÿÿNi t _Databasec B s¶ e Z e Z e Z d „ Z d „ Z d „ Z e Z d „ Z d „ Z d „ Z
d „ Z d „ Z d „ Z
d „ Z d
„ Z d „ Z d „ Z e Z d
„ Z d „ Z e Z d „ Z RS( c C s´ | | _ | t i d | _ | t i d | _ | t i d | _ d | _ y t | i d ƒ } Wn5 t j
o) t | i d ƒ } | i
| i ƒ n X| i ƒ | i ƒ d S( Nt dirt datt bakt rt w(
t _modet _ost extsept _dirfilet _datfilet _bakfilet Nonet _indext _opent IOErrort _chmodt closet _update( t selft filebasenamet modet f( ( s /usr/lib/python2.6/dumbdbm.pyt __init__/ s
c C s| h | _ y t | i ƒ } Wn t j
o nH Xx9 | D]1 } | i ƒ } t | ƒ \ } } | | i | <q9 W| i ƒ d S( N( R
R R R t rstript evalR ( R R t linet keyt pos_and_siz_pair( ( s /usr/lib/python2.6/dumbdbm.pyR M s c C së | i d j o d Sy | i i | i ƒ Wn | i i j
o n Xy | i i | i | i ƒ Wn | i i j
o n X| i | i d ƒ } | i | i ƒ x4 | i i
ƒ D]# \ } } | i d | | f ƒ q¶ W| i ƒ d S( NR s %r, %r
(
R
R R t unlinkR t errort renameR R R t iteritemst writeR ( R R R R ( ( s /usr/lib/python2.6/dumbdbm.pyt _commit] s c C sO | i | \ } } t | i d ƒ } | i | ƒ | i | ƒ } | i ƒ | S( Nt rb( R
R R
t seekt readR ( R R t post sizR R ( ( s /usr/lib/python2.6/dumbdbm.pyt __getitem__v s
c C sŒ t | i d ƒ } | i d d ƒ t | i ƒ ƒ } | t d t t } | i d | | ƒ | } | i | ƒ | i ƒ | t | ƒ f S( Ns rb+i i i t ( R R
R$ t intt tellt
_BLOCKSIZER! R t len( R t valR R&