aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb
diff options
context:
space:
mode:
authorChris Larson <chris_larson@mentor.com>2011-04-04 09:36:10 -0700
committerChris Larson <chris_larson@mentor.com>2011-04-05 17:17:29 -0700
commita4f62433845c29f98c6a9746d5d2847bf9506ea5 (patch)
tree5ded4b15bf36f92fc329cc2a4cf644fa8da94bf7 /lib/bb
parentf50a22ee1bbe53094b2db3f85e224bb80070f4c8 (diff)
downloadbitbake-a4f62433845c29f98c6a9746d5d2847bf9506ea5.tar.gz
persist_data: raise KeyError on missing elements
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Diffstat (limited to 'lib/bb')
-rw-r--r--lib/bb/fetch/__init__.py15
-rw-r--r--lib/bb/fetch/git.py18
-rw-r--r--lib/bb/fetch2/__init__.py15
-rw-r--r--lib/bb/persist_data.py3
4 files changed, 27 insertions, 24 deletions
diff --git a/lib/bb/fetch/__init__.py b/lib/bb/fetch/__init__.py
index 4cf78779e..5be4c9cae 100644
--- a/lib/bb/fetch/__init__.py
+++ b/lib/bb/fetch/__init__.py
@@ -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)
diff --git a/lib/bb/fetch/git.py b/lib/bb/fetch/git.py
index 981c494b4..9a51ed138 100644
--- a/lib/bb/fetch/git.py
+++ b/lib/bb/fetch/git.py
@@ -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):
"""
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 9768b087b..9cfa3de98 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -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)
diff --git a/lib/bb/persist_data.py b/lib/bb/persist_data.py
index 38ad35490..81f0845dd 100644
--- a/lib/bb/persist_data.py
+++ b/lib/bb/persist_data.py
@@ -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):