[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

AltStyle によって変換されたページ (->オリジナル) /