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