[Python-checkins] r82526 - python/branches/py3k/Demo/classes/Dbm.py

georg.brandl python-checkins at python.org
Sun Jul 4 09:25:18 CEST 2010


Author: georg.brandl
Date: Sun Jul  4 09:25:18 2010
New Revision: 82526

Log:
Remove old and unsafe Dbm demo class.

Removed:
   python/branches/py3k/Demo/classes/Dbm.py

Deleted: python/branches/py3k/Demo/classes/Dbm.py
==============================================================================
--- python/branches/py3k/Demo/classes/Dbm.py	Sun Jul  4 09:25:18 2010
+++ (empty file)
@@ -1,66 +0,0 @@
-# A wrapper around the (optional) built-in class dbm, supporting keys
-# and values of almost any type instead of just string.
-# (Actually, this works only for keys and values that can be read back
-# correctly after being converted to a string.)
-
-
-class Dbm:
-
-    def __init__(self, filename, mode, perm):
-        import dbm.ndbm
-        self.db = dbm.ndbm.open(filename, mode, perm)
-
-    def __repr__(self):
-        s = ''
-        for key in self.keys():
-            t = repr(key) + ': ' + repr(self[key])
-            if s: t = ', ' + t
-            s = s + t
-        return '{' + s + '}'
-
-    def __len__(self):
-        return len(self.db)
-
-    def __getitem__(self, key):
-        return eval(self.db[repr(key)])
-
-    def __setitem__(self, key, value):
-        self.db[repr(key)] = repr(value)
-
-    def __delitem__(self, key):
-        del self.db[repr(key)]
-
-    def keys(self):
-        res = []
-        for key in self.db.keys():
-            res.append(eval(key))
-        return res
-
-    def has_key(self, key):
-        return repr(key) in self.db
-
-
-def test():
-    d = Dbm('@dbm', 'rw', 0o600)
-    print(d)
-    while 1:
-        try:
-            key = eval(input('key: '))
-            if key in d:
-                value = d[key]
-                print('currently:', value)
-            value = eval(input('value: '))
-            if value is None:
-                del d[key]
-            else:
-                d[key] = value
-        except KeyboardInterrupt:
-            print('')
-            print(d)
-        except EOFError:
-            print('[eof]')
-            break
-    print(d)
-
-
-test()


More information about the Python-checkins mailing list