ó ÄAic @ sk d Z d d l Z d d l Z d d l Z e j Z d Z e Z d e j 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 j d | _ | t j d | _ | t j d | _ d | _ y t | j d ƒ } Wn3 t k r™ t | j d ƒ } | j | j ƒ n X| j ƒ | j ƒ 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/lib64/python2.7/dumbdbm.pyt __init__/ s c C sz i | _ y t | j ƒ } Wn t k r/ nG Xx9 | D]1 } | j ƒ } t | ƒ \ } } | | j |