提交 5b5f672d authored 作者: Frederic's avatar Frederic

Fix _metadict to allow removing un hashable value.

_metadict is a dict that work with not hashable type. This is needed for the SliceType.
上级 dc32d57a
...@@ -380,9 +380,12 @@ class _metadict: ...@@ -380,9 +380,12 @@ class _metadict:
self.l.append((item, value)) self.l.append((item, value))
def __delitem__(self, item): def __delitem__(self, item):
try:
if item in self.d: if item in self.d:
del self.d[item] del self.d[item]
else: return
except TypeError, e:
assert "unhashable type" in str(e)
for i, (key, val) in enumerate(self.l): for i, (key, val) in enumerate(self.l):
if key == item: if key == item:
del self.l[i] del self.l[i]
...@@ -390,9 +393,12 @@ class _metadict: ...@@ -390,9 +393,12 @@ class _metadict:
raise KeyError(item) raise KeyError(item)
def discard(self, item): def discard(self, item):
try:
if item in self.d: if item in self.d:
del self.d[item] del self.d[item]
else: return
except TypeError, e:
assert "unhashable type" in str(e)
for i, (key, val) in enumerate(self.l): for i, (key, val) in enumerate(self.l):
if key == item: if key == item:
del self.l[i] del self.l[i]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论