File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed
sphinxnotes/snippet/utils Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 1919K = TypeVar ('K' )
2020V = TypeVar ('V' )
2121
22+ # FIXME: PDict is buggy
2223class PDict (MutableMapping ):
2324 """A persistent dict with event handlers."""
2425
@@ -53,18 +54,19 @@ def __getitem__(self, key:K) -> Optional[V]:
5354
5455 def __setitem__ (self , key :K , value :V ) -> None :
5556 assert value is not None
56- self ._store [key ] = value
57+ if key in self ._store :
58+ self .__delitem__ (key )
5759 self ._dirty_items [key ] = value
58- if key in self ._orphan_items :
59- del self ._orphan_items [key ]
60+ self ._store [key ] = value
6061
6162
6263 def __delitem__ (self , key :K ) -> None :
6364 value = self .__getitem__ (key )
6465 del self ._store [key ]
65- self ._orphan_items [key ] = value
6666 if key in self ._dirty_items :
6767 del self ._dirty_items [key ]
68+ else :
69+ self ._orphan_items [key ] = value
6870
6971
7072 def __iter__ (self ) -> Iterable :
You can’t perform that action at this time.
0 commit comments