--- /dev/null
+#! python
+
+import collections
+
+class defaultdict(dict):
+ def __init__(self, default_factory):
+ self.default_factory = default_factory
+ def __missing__(self, key):
+ if self.default_factory is None:
+ raise KeyError(key)
+ self[key] = value = self.default_factory()
+ return value
+ def __getitem__(self, key):
+ try:
+ return dict.__getitem__(self, key)
+ except KeyError:
+ return self.__missing__(key)
+
+if not hasattr(collections, 'defaultdict'):
+ collections.defaultdict = defaultdict