[Python-checkins] r69269 - sandbox/trunk/dbm_sqlite/alt/dbdict.py
raymond.hettinger
python-checkins at python.org
Wed Feb 4 11:06:10 CET 2009
Author: raymond.hettinger
Date: Wed Feb 4 11:06:10 2009
New Revision: 69269
Log:
Add eval format.
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 Wed Feb 4 11:06:10 2009
@@ -5,7 +5,7 @@
close time's are potentially long because the whole dict must be
read or written to disk.
-File format is selectable between pickle, json, and csv.
+File format is selectable between pickle, json, eval, and csv.
All three are backed by fast C implementations.
'''
@@ -48,16 +48,21 @@
json.dump(self, f, separators=(',',':'))
elif self.format == 'pickle':
pickle.dump(self.items(), f, -1)
+ elif self.format == 'eval':
+ f.write(repr(self))
else:
raise NotImplementedError('Unknown format: %r' % self.format)
def load(self, f):
+ # Use csv or json for untrusted data. Use pickle or eval for trusted.
if self.format == 'csv':
return csv.reader(f)
elif self.format == 'json':
return json.load(f)
elif self.format == 'pickle':
return pickle.load(f)
+ elif self.format == 'eval':
+ return eval(f.read())
else:
raise NotImplementedError('Unknown format: %r' % self.format)
More information about the Python-checkins
mailing list