b64 encode keys in PersistentContainer

master
Stefan Krulj 14 years ago
parent de2ef57c41
commit 31c55f2238
  1. 5
      sys/persistent.py

@ -1,4 +1,5 @@
import shelve import shelve
import base64
from threading import Lock from threading import Lock
class PersistentContainer(object): class PersistentContainer(object):
@ -83,6 +84,7 @@ class PersistentContainer(object):
def __getitem__(self, name): def __getitem__(self, name):
key = name+"."+self.namespace key = name+"."+self.namespace
key = base64.b64encode(key)
if key in self.dic: if key in self.dic:
return self.dic[key] return self.dic[key]
return None return None
@ -103,17 +105,20 @@ class PersistentContainer(object):
def __contains__(self,name): def __contains__(self,name):
key = name+"."+self.namespace key = name+"."+self.namespace
key = base64.b64encode(key)
return key in self.dic return key in self.dic
def _write(self): def _write(self):
for name in self.trans_cache.keys(): for name in self.trans_cache.keys():
key = name+"."+self.namespace key = name+"."+self.namespace
key = base64.b64encode(key)
val = self.trans_cache[name] val = self.trans_cache[name]
self.dic[key]=val self.dic[key]=val
del self.trans_cache[name] del self.trans_cache[name]
while len(self.trans_del): while len(self.trans_del):
name = self.trans_del.pop() name = self.trans_del.pop()
key = name+"."+self.namespace key = name+"."+self.namespace
key = base64.b64encode(key)
del self.dic[key] del self.dic[key]
self.dic.sync() self.dic.sync()

Loading…
Cancel
Save