[kernel] r13397 - dists/trunk/linux-2.6/debian/lib/python/debian_linux
Bastian Blank
waldi at alioth.debian.org
Sun Apr 12 10:28:00 UTC 2009
Author: waldi
Date: Sun Apr 12 10:27:59 2009
New Revision: 13397
Log:
debian/lib/python/debian_linux/utils.py
- Don't implement the complete dict interface.
- Fix get behaviour on non-existant entries.
Modified:
dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py
Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py Sun Apr 12 10:26:17 2009 (r13396)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py Sun Apr 12 10:27:59 2009 (r13397)
@@ -33,15 +33,17 @@
for i in iter(self._list):
yield self[i]
-class Templates(dict):
+class Templates(object):
def __init__(self, dirs = ["debian/templates"]):
self.dirs = dirs
- def __getitem__(self, key):
- return self.get(key)
+ self._cache = {}
- def __setitem__(self, key, value):
- raise NotImplemented()
+ def __getitem__(self, key):
+ ret = self.get(key)
+ if ret is not None:
+ return ret
+ raise KeyError(key)
def _read(self, name):
prefix, id = name.split('.', 1)
@@ -89,16 +91,13 @@
return entries
- def get(self, key, default = _marker):
- ret = super(Templates, self).get(key, _marker)
- if ret is not _marker:
- return ret
- value = self._read(key)
+ def get(self, key, default=None):
+ if key in self._cache:
+ return self._cache[key]
+
+ value = self._cache.setdefault(key, self._read(key))
if value is None:
- if default is _marker:
- raise KeyError(key)
return default
- super(Templates, self).__setitem__(key, value)
return value
class TextWrapper(textwrap.TextWrapper):
More information about the Kernel-svn-changes
mailing list