core (memory/persistent): fixed "items", added "all" + "adel" to LazyPersistentBinaryDict:
- `items` was returning the dict with all values, it now returns a Deferred with actual dict items() - `all` new method does return the dict with all values (in a Deferred) - `adel` has been added to LazyPersistentBinaryDict
This commit is contained in:
parent
7fb86a0af4
commit
68a4d8ea98
2 changed files with 13 additions and 2 deletions
|
|
@ -66,7 +66,7 @@ class PersistentDict:
|
|||
return iter(self._cache.items())
|
||||
|
||||
def items(self):
|
||||
return list(self._cache.items())
|
||||
return self._cache.items()
|
||||
|
||||
def __repr__(self):
|
||||
return self._cache.__repr__()
|
||||
|
|
@ -178,6 +178,11 @@ class LazyPersistentBinaryDict(PersistentBinaryDict):
|
|||
raise NotImplementedError
|
||||
|
||||
def items(self):
|
||||
d = self.storage.getPrivates(self.namespace, binary=self.binary, profile=self.profile)
|
||||
d.addCallback(lambda data_dict: data_dict.items())
|
||||
return d
|
||||
|
||||
def all(self):
|
||||
return self.storage.getPrivates(self.namespace, binary=self.binary, profile=self.profile)
|
||||
|
||||
def __repr__(self):
|
||||
|
|
@ -257,6 +262,12 @@ class LazyPersistentBinaryDict(PersistentBinaryDict):
|
|||
return self.storage.setPrivateValue(self.namespace, key, value,
|
||||
self.binary, self.profile)
|
||||
|
||||
def adel(self, key):
|
||||
"""Async del, return a Deferred fired when value is actually deleted"""
|
||||
# XXX: similar as PersistentDict.adel, but doesn't use cache
|
||||
return self.storage.delPrivateValue(
|
||||
self.namespace, key, self.binary, self.profile)
|
||||
|
||||
def setdefault(self, key, default):
|
||||
raise NotImplementedError
|
||||
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ class InvitationsPlugin(object):
|
|||
C.PROF_KEY_NONE: don't filter invitations
|
||||
@return list(unicode): invitations uids
|
||||
"""
|
||||
invitations = yield self.invitations.items()
|
||||
invitations = yield self.invitations.all()
|
||||
if profile != C.PROF_KEY_NONE:
|
||||
invitations = {id_:data for id_, data in invitations.items()
|
||||
if data.get('profile') == profile}
|
||||
|
|
|
|||
Loading…
Reference in a new issue