BlockState setitem() fix for overwrite arg
This commit is contained in:
@@ -71,8 +71,8 @@ class BlockData:
|
|||||||
raise KeyError
|
raise KeyError
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def delitem(self, item, overwrite=True):
|
def delitem(self, item):
|
||||||
self.setitem(item, DELETE, overwrite)
|
self.setitem(item, DELETE)
|
||||||
|
|
||||||
def unload(self, item):
|
def unload(self, item):
|
||||||
"""
|
"""
|
||||||
@@ -134,7 +134,7 @@ class BlockSet(Generic[T], Iterable[T], BlockData):
|
|||||||
self.setitem(item, None, overwrite=False)
|
self.setitem(item, None, overwrite=False)
|
||||||
|
|
||||||
def remove(self, item: T):
|
def remove(self, item: T):
|
||||||
self.delitem(item, overwrite=False)
|
self.delitem(item)
|
||||||
|
|
||||||
def __contains__(self, item: T) -> bool:
|
def __contains__(self, item: T) -> bool:
|
||||||
return self.contains(item)
|
return self.contains(item)
|
||||||
@@ -172,6 +172,9 @@ class BlockDict(Generic[K,V], BlockData):
|
|||||||
def get(self, item: K, default: V = None) -> V:
|
def get(self, item: K, default: V = None) -> V:
|
||||||
return self.getitem(item, default)
|
return self.getitem(item, default)
|
||||||
|
|
||||||
|
def setdefault(self, item: K, value: V):
|
||||||
|
return self.setitem(item, value, overwrite=False)
|
||||||
|
|
||||||
def modify(self, item: K, func: Callable[[V],V], default: V=NARG) -> V:
|
def modify(self, item: K, func: Callable[[V],V], default: V=NARG) -> V:
|
||||||
result = func(self.getitem(item, default))
|
result = func(self.getitem(item, default))
|
||||||
self.setitem(item, result)
|
self.setitem(item, result)
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class BlockState:
|
|||||||
|
|
||||||
def set(self, fork: Optional[Fork], series, key, value, overwrite=True):
|
def set(self, fork: Optional[Fork], series, key, value, overwrite=True):
|
||||||
diffs = self.diffs_by_series[series][key]
|
diffs = self.diffs_by_series[series][key]
|
||||||
if overwrite or self._get_from_diffs(fork, diffs) != value:
|
if overwrite or self._get_from_diffs(fork, diffs) is DELETE and value is not DELETE:
|
||||||
diff = DiffEntry(value,
|
diff = DiffEntry(value,
|
||||||
fork.height if fork is not None else self.root_block.height,
|
fork.height if fork is not None else self.root_block.height,
|
||||||
fork.hash if fork is not None else self.root_block.hash)
|
fork.hash if fork is not None else self.root_block.hash)
|
||||||
|
|||||||
Reference in New Issue
Block a user