]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
persist_data: raise KeyError on missing elements
authorChris Larson <chris_larson@mentor.com>
Mon, 4 Apr 2011 16:36:10 +0000 (09:36 -0700)
committerChris Larson <chris_larson@mentor.com>
Wed, 6 Apr 2011 00:17:29 +0000 (17:17 -0700)
Signed-off-by: Chris Larson <chris_larson@mentor.com>
lib/bb/fetch/__init__.py
lib/bb/fetch/git.py
lib/bb/fetch2/__init__.py
lib/bb/persist_data.py

index 4cf78779eecb7bb560741672fa48f0257c2bca60..5be4c9caea3244d5fb62d8875f4191042c3ac22d 100644 (file)
@@ -757,12 +757,11 @@ class Fetch(object):
 
         revs = persist_data.persist('BB_URI_HEADREVS', d)
         key = self.generate_revision_key(url, ud, d)
-        rev = revs[key]
-        if rev != None:
-            return str(rev)
-
-        revs[key] = rev = self._latest_revision(url, ud, d)
-        return rev
+        try:
+            return revs[key]
+        except KeyError:
+            revs[key] = rev = self._latest_revision(url, ud, d)
+            return rev
 
     def sortable_revision(self, url, ud, d):
         """
@@ -775,13 +774,13 @@ class Fetch(object):
         key = self.generate_revision_key(url, ud, d)
 
         latest_rev = self._build_revision(url, ud, d)
-        last_rev = localcounts[key + '_rev']
+        last_rev = localcounts.get(key + '_rev')
         uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False
         count = None
         if uselocalcount:
             count = Fetch.localcount_internal_helper(ud, d)
         if count is None:
-            count = localcounts[key + '_count']
+            count = localcounts.get(key + '_count')
 
         if last_rev == latest_rev:
             return str(count + "+" + latest_rev)
index 981c494b497aa013be01fed8cad798382edb1202..9a51ed1387dbe1a9c7cd2f61f63225ddb025d194 100644 (file)
@@ -245,18 +245,20 @@ class Git(Fetch):
         revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
 
         key = self.generate_revision_key(url, ud, d, branch=True)
-        rev = revs[key]
-        if rev is None:
+
+        try:
+            return revs[key]
+        except KeyError:
             # Compatibility with old key format, no branch included
             oldkey = self.generate_revision_key(url, ud, d, branch=False)
-            rev = revs[oldkey]
-            if rev is not None:
-                del revs[oldkey]
-            else:
+            try:
+                rev = revs[oldkey]
+            except KeyError:
                 rev = self._latest_revision(url, ud, d)
+            else:
+                del revs[oldkey]
             revs[key] = rev
-
-        return str(rev)
+            return rev
 
     def sortable_revision(self, url, ud, d):
         """
index 9768b087b279d81f570db84ce0bc06c052668250..9cfa3de9830a89c24e1b8099f205a4159efc5576 100644 (file)
@@ -804,12 +804,11 @@ class FetchMethod(object):
 
         revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
         key = self.generate_revision_key(url, ud, d, name)
-        rev = revs[key]
-        if rev != None:
-            return str(rev)
-
-        revs[key] = rev = self._latest_revision(url, ud, d, name)
-        return rev
+        try:
+            return revs[key]
+        except KeyError:
+            revs[key] = rev = self._latest_revision(url, ud, d, name)
+            return rev
 
     def sortable_revision(self, url, ud, d, name):
         """
@@ -822,13 +821,13 @@ class FetchMethod(object):
         key = self.generate_revision_key(url, ud, d, name)
 
         latest_rev = self._build_revision(url, ud, d, name)
-        last_rev = localcounts[key + '_rev']
+        last_rev = localcounts.get(key + '_rev')
         uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False
         count = None
         if uselocalcount:
             count = FetchMethod.localcount_internal_helper(ud, d, name)
         if count is None:
-            count = localcounts[key + '_count'] or "0"
+            count = localcounts.get(key + '_count') or "0"
 
         if last_rev == latest_rev:
             return str(count + "+" + latest_rev)
index 38ad354900d2d599e7110c71e54ef7e733766962..81f0845dda18dfae438436c59e0b21a492eb8f26 100644 (file)
@@ -60,8 +60,11 @@ class SQLTable(collections.MutableMapping):
                              self.table, [key])
         for row in data:
             return row[1]
+        raise KeyError(key)
 
     def __delitem__(self, key):
+        if key not in self:
+            raise KeyError(key)
         self._execute("DELETE from %s where key=?;" % self.table, [key])
 
     def __setitem__(self, key, value):