[Python-checkins] r69341 - sandbox/trunk/dbm_sqlite/alt/dbdict.py

raymond.hettinger python-checkins at python.org
Fri Feb 6 02:11:00 CET 2009


Author: raymond.hettinger
Date: Fri Feb  6 02:11:00 2009
New Revision: 69341

Log:
Small cleanups.

Modified:
   sandbox/trunk/dbm_sqlite/alt/dbdict.py

Modified: sandbox/trunk/dbm_sqlite/alt/dbdict.py
==============================================================================
--- sandbox/trunk/dbm_sqlite/alt/dbdict.py	(original)
+++ sandbox/trunk/dbm_sqlite/alt/dbdict.py	Fri Feb  6 02:11:00 2009
@@ -16,13 +16,10 @@
 
 class DictDB(dict):
 
-    def __init__(self, filename, flag='c', mode=None, format=None, *args, **kwds):
-        # flags:    r=readonly   c=create   n=new
-        # mode:     None or an octal triple like 0x666
-        # format:  csv, json, or pickle (default is csv)
-        self.flag = flag
-        self.mode = mode
-        self.format = format or 'csv'
+    def __init__(self, filename, flag=None, mode=None, format=None, *args, **kwds):
+        self.flag = flag or 'c'             # r=readonly, c=create, or n=new
+        self.mode = mode                    # None or octal triple like 0x666
+        self.format = format or 'csv'       # csv, json, or pickle
         self.filename = filename
         if flag != 'n' and os.access(filename, os.R_OK):
             file = __builtins__.open(filename, 'rb')
@@ -33,20 +30,21 @@
         self.update(*args, **kwds)
 
     def sync(self):
-        if self.flag != 'r':
-            filename = self.filename
-            tempname = filename + '.tmp'
-            file = __builtins__.open(tempname, 'wb')
-            try:
-                self.dump(file)
-            except Exception:
-                file.close()
-                os.remove(tempname)
-                raise
+        if self.flag == 'r':
+            return
+        filename = self.filename
+        tempname = filename + '.tmp'
+        file = __builtins__.open(tempname, 'wb')
+        try:
+            self.dump(file)
+        except Exception:
             file.close()
-            shutil.move(tempname, self.filename)     # atomic commit
-            if self.mode is not None:
-                os.chmod(self.filename, self.mode)
+            os.remove(tempname)
+            raise
+        file.close()
+        shutil.move(tempname, self.filename)    # atomic commit
+        if self.mode is not None:
+            os.chmod(self.filename, self.mode)
 
     def close(self):
         self.sync()
@@ -55,7 +53,7 @@
         if self.format == 'csv':
             csv.writer(file).writerows(self.iteritems())
         elif self.format == 'json':
-            json.dump(self, file, separators=(',',':'))
+            json.dump(self, file, separators=(',', ':'))
         elif self.format == 'pickle':
             pickle.dump(self.items(), file, -1)
         else:
@@ -72,7 +70,7 @@
         raise ValueError('File not in recognized format')
 
 
-def dbopen(filename, flag='c', mode=None, format=None):
+def dbopen(filename, flag=None, mode=None, format=None):
     return DictDB(filename, flag, mode, format)
 
 


More information about the Python-checkins mailing list