using the stored keys.
"""
- def __init__(me, file, mode = 'r'):
+ def __init__(me, file, writep = False):
"""
Initialize a PW object from the GDBM database in FILE.
- MODE can be `r' for read-only access to the underlying database, or `w'
- for read-write access. Requests the database password from the Pixie,
+ If WRITEP is true, then allow write-access to the database; otherwise
+ allow read access only. Requests the database password from the Pixie,
which may cause interaction.
"""
## Open the database.
- me.db = _G.open(file, mode)
+ me.db = _G.open(file, writep and 'w' or 'r')
## Find out what crypto to use.
c = _C.gcciphers[me.db['cipher']]
if k[0] == '$': yield me.unpack(me.db[k])[0]
k = me.db.nextkey(k)
+ ## Context protocol.
+
+ def __enter__(me):
+ return me
+ def __exit__(me, excty, excval, exctb):
+ me.db.close()
+
###----- That's all, folks --------------------------------------------------