###--------------------------------------------------------------------------
### Python version portability.
+def _iterkeys(dict): return dict.iterkeys()
+def _itervalues(dict): return dict.itervalues()
+def _iteritems(dict): return dict.iteritems()
+
def _bin(text): return text
def _text(bin): return bin
@staticmethod
def classes():
"""Return an iterator over the concrete subclasses."""
- return StorageBackend.CLASSES.itervalues()
+ return _itervalues(StorageBackend.CLASSES)
@staticmethod
def open(file, writep = False):
def _write_meta(me, f, prefix = ''):
"""Write the metadata records to F, each with the given PREFIX."""
f.write('\n## Metadata.\n')
- for k, v in me._meta.iteritems():
+ for k, v in _iteritems(me._meta):
f.write('%s%s=%s\n' % (prefix, _enc_metaname(k), _enc_metaval(v)))
def _get_meta(me, name, default):
me._mark_dirty()
del me._meta[name]
def _iter_meta(me):
- return me._meta.iteritems()
+ return _iteritems(me._meta)
def _parse_passwd(me, line):
"""Parse LINE as a password LABEL=PAYLOAD pair, and updates `_pw'."""
def _write_passwd(me, f, prefix = ''):
"""Write the password records to F, each with the given PREFIX."""
f.write('\n## Password data.\n')
- for k, v in me._pw.iteritems():
+ for k, v in _iteritems(me._pw):
f.write('%s%s=%s\n' % (prefix, _b64(k), _b64(v)))
def _get_passwd(me, label):
me._mark_dirty()
del me._pw[str(label)]
def _iter_passwds(me):
- return me._pw.iteritems()
+ return _iteritems(me._pw)
class FlatFileStorageBackend (PlainTextBackend):
"""