Skip to content

Commit 834f7c4

Browse files
committed
Implement .update() for keyfold dicts
1 parent d4eff27 commit 834f7c4

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

plugins/chan_track.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class WeakDict(dict):
2323
pass
2424

2525

26+
# noinspection PyUnresolvedReferences
2627
class KeyFoldMixin:
2728
def __contains__(self, item):
2829
return super().__contains__(item.casefold())
@@ -45,6 +46,18 @@ def get(self, key, default=None):
4546
def setdefault(self, key, default=None):
4647
return super().setdefault(key.casefold(), default)
4748

49+
def update(self, mapping=None, **kwargs):
50+
if mapping is not None:
51+
if hasattr(mapping, 'keys'):
52+
for k in mapping.keys():
53+
self[k] = mapping[k]
54+
else:
55+
for k, v in mapping:
56+
self[k] = v
57+
58+
for k in kwargs:
59+
self[k] = kwargs[k]
60+
4861

4962
class KeyFoldDict(KeyFoldMixin, dict):
5063
pass

0 commit comments

Comments
 (0)