mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-22 10:20:59 +00:00
Add CachingDict dict subclass to dirnode.py
This commit is contained in:
parent
c678e8c77a
commit
903005a528
@ -21,6 +21,23 @@ from allmydata.util.netstring import netstring, split_netstring
|
|||||||
from allmydata.uri import NewDirectoryURI, LiteralFileURI, from_string
|
from allmydata.uri import NewDirectoryURI, LiteralFileURI, from_string
|
||||||
from pycryptopp.cipher.aes import AES
|
from pycryptopp.cipher.aes import AES
|
||||||
|
|
||||||
|
class CachingDict(dict):
|
||||||
|
def __init__(self, *args):
|
||||||
|
super(CachingDict, self).__init__(*args)
|
||||||
|
self.serialized = {}
|
||||||
|
|
||||||
|
def __setitem__(self, k, v):
|
||||||
|
super(CachingDict, self).__setitem__(k, v)
|
||||||
|
self.serialized[k] = None
|
||||||
|
|
||||||
|
def get_both_items(self, k):
|
||||||
|
return (self.serialized.setdefault(k, None),
|
||||||
|
super(CachingDict, self).__getitem__(k))
|
||||||
|
|
||||||
|
def set_both_items(self, key, serialized, t):
|
||||||
|
self.serialized[key] = serialized
|
||||||
|
super(CachingDict, self).__setitem__(key, t)
|
||||||
|
|
||||||
class Deleter:
|
class Deleter:
|
||||||
def __init__(self, node, name, must_exist=True):
|
def __init__(self, node, name, must_exist=True):
|
||||||
self.node = node
|
self.node = node
|
||||||
|
Loading…
x
Reference in New Issue
Block a user