dumbdbm
index
/usr/lib/python1.6/dumbdbm.py

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')

 
Modules
            
__builtin__
os

 
Classes
            
_Database

 
class _Database
       
  
__delitem__(self, key)
__getitem__(self, key)
__init__(self, file)
__len__(self)
__setitem__(self, key, val)
_addkey(self, key, (pos, siz))
_addval(self, val)
_commit(self)
_setval(self, pos, val)
_update(self)
close(self)
has_key(self, key)
keys(self)

 
Functions
            
_open = open(...)
open(filename[, mode[, buffering]]) -> file object
 
Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
writing or appending.  The file will be created if it doesn't exist
when opened for writing or appending; it will be truncated when
opened for writing.  Add a 'b' to the mode for binary files.
Add a '+' to the mode to allow simultaneous reading and writing.
If the buffering argument is given, 0 means unbuffered, 1 means line
buffered, and larger numbers specify the buffer size.
open(file, flag=None, mode=None)

 
Data
             _BLOCKSIZE = 512
__file__ = '/usr/lib/python1.6/dumbdbm.pyc'
__name__ = 'dumbdbm'