Skip to content

Commit 8e3e4af

Browse files
committed
Add freezable dict
1 parent 99f83cf commit 8e3e4af

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

importlib_metadata/_collections.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import collections
2+
3+
4+
class freezable_defaultdict(collections.defaultdict):
5+
"""
6+
Mix-in to freeze a defaultdict.
7+
8+
>>> dd = freezable_defaultdict(list)
9+
>>> dd[0].append('1')
10+
>>> dd.freeze()
11+
>>> dd[1]
12+
[]
13+
>>> len(dd)
14+
1
15+
"""
16+
17+
def __missing__(self, key):
18+
return getattr(self, '_frozen', super().__missing__)(key)
19+
20+
def freeze(self):
21+
self._frozen = lambda key: self.default_factory()

0 commit comments

Comments
 (0)