5
""" pickled dicts of dicts """
7
__copyright__ = 'this file is in the public domain'
9
from gozerbot.persist import Persist
10
from gozerbot.generic import lockdec
13
pdodlock = thread.allocate_lock()
14
locked = lockdec(pdodlock)
18
""" pickled dicts of dicts """
20
def __init__(self, filename):
21
Persist.__init__(self, filename)
25
def __getitem__(self, name):
26
""" return item with name """
27
if self.data.has_key(name):
28
return self.data[name]
35
def __delitem__(self, name):
36
""" delete name item """
37
if self.data.has_key(name):
38
return self.data.__delitem__(name)
41
def __setitem__(self, name, item):
43
self.data[name] = item
45
def __contains__(self, name):
46
return self.data.__contains__(name)
49
def setdefault(self, name, default):
50
""" set default of name """
51
return self.data.setdefault(name, default)
53
def has_key(self, name):
55
return self.data.has_key(name)
57
def has_key2(self, name1, name2):
58
""" has [name1][name2] key """
59
if self.data.has_key(name1):
60
return self.data[name1].has_key(name2)
62
def get(self, name1, name2):
63
""" get data[name1][name2] """
65
result = self.data[name1][name2]
71
def set(self, name1, name2, item):
72
""" set name, name2 item """
73
if not self.data.has_key(name1):
75
self.data[name1][name2] = item