[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