1 # A wrapper around the (optional) built-in class dbm, supporting keys
2 # and values of almost any type instead of just string.
3 # (Actually, this works only for keys and values that can be read back
4 # correctly after being converted to a string.)
9 def __init__(self, filename, mode, perm):
11 self.db = dbm.open(filename, mode, perm)
15 for key in self.keys():
16 t = repr(key) + ': ' + repr(self[key])
24 def __getitem__(self, key):
25 return eval(self.db[repr(key)])
27 def __setitem__(self, key, value):
28 self.db[repr(key)] = repr(value)
30 def __delitem__(self, key):
31 del self.db[repr(key)]
35 for key in self.db.keys():
39 def has_key(self, key):
40 return self.db.has_key(repr(key))
44 d = Dbm('@dbm', 'rw', 0600)
51 print 'currently:', value
52 value = input('value: ')
57 except KeyboardInterrupt: