[kernel] r10135 - dists/trunk/linux-2.6/debian/lib/python/debian_linux
Bastian Blank
waldi at alioth.debian.org
Fri Jan 18 22:45:56 UTC 2008
Author: waldi
Date: Fri Jan 18 22:45:56 2008
New Revision: 10135
Log:
debian/lib/python/debian_linux/utils.py (Templates)
- Add get method.
- Handle KeyError like dict.
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 (original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py Fri Jan 18 22:45:56 2008
@@ -1,5 +1,7 @@
import debian, re, os, textwrap
+_marker = object
+
class SortedDict(dict):
__slots__ = '_list',
@@ -36,12 +38,7 @@
self.dirs = dirs
def __getitem__(self, key):
- try:
- return super(Templates, self).__getitem__(key)
- except KeyError: pass
- value = self._read(key)
- super(Templates, self).__setitem__(key, value)
- return value
+ return self.get(key)
def __setitem__(self, key, value):
raise NotImplemented()
@@ -56,7 +53,6 @@
if prefix == 'control':
return self._read_control(f)
return f.read()
- raise KeyError(name)
def _read_control(self, f):
entries = []
@@ -93,6 +89,18 @@
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)
+ 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):
wordsep_re = re.compile(
r'(\s+|' # any whitespace
More information about the Kernel-svn-changes
mailing list