From: Chris Larson Date: Wed, 6 Oct 2010 03:19:31 +0000 (-0700) Subject: Fix __getitem__ for DataSmart X-Git-Tag: 2011-1~3148 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=f3406dd28846f4782bec36cb0bd1f834e068147b;p=openembedded-core.git 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 --- 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)