From f3406dd28846f4782bec36cb0bd1f834e068147b Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Tue, 5 Oct 2010 20:19:31 -0700 Subject: Fix __getitem__ for DataSmart Ensure it raises KeyError for a missing key, this is required to use this as a mapping in various places, e.g. as locals in an eval. (Bitbake rev: 8d661ce0c303e8d69f17c1d095545d5ed086d1d5) Signed-off-by: Chris Larson Signed-off-by: Richard Purdie --- bitbake/lib/bb/data_smart.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 7de90056d5..17a642ee2d 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -150,7 +150,7 @@ class DataSmart(MutableMapping): for var in vars: name = var[:-l] try: - self[name] = self[var] + self.setVar(name, self.getVar(var, False)) except Exception: logger.info("Untracked delVar") @@ -366,7 +366,11 @@ class DataSmart(MutableMapping): return len(frozenset(self)) def __getitem__(self, item): - return self.getVar(item, False) + value = self.getVar(item, False) + if value is None: + raise KeyError(item) + else: + return value def __setitem__(self, var, value): self.setVar(var, value) -- cgit v1.2.3-54-g00ecf