diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-17 11:42:28 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-17 23:19:43 +0100 |
commit | 136100dc932c9019737f927d826955425134010f (patch) | |
tree | e3a13e9015333944cf67805a4a8b5078adf02a0a /lib/bb/data_smart.py | |
parent | a039052f9b680eae53f3f12b7381b945f1d69253 (diff) | |
download | bitbake-136100dc932c9019737f927d826955425134010f.tar.gz |
data/data_smart: Allow getVarFlag to return the variable parser object
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/data_smart.py')
-rw-r--r-- | lib/bb/data_smart.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index ecc71bd64..4ad0567c9 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -722,7 +722,7 @@ class DataSmart(MutableMapping): self.dict["__exportlist"]["_content"] = set() self.dict["__exportlist"]["_content"].add(var) - def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False): + def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False): if flag == "_content": cachename = var else: @@ -798,9 +798,11 @@ class DataSmart(MutableMapping): if match: value = r + value + parser = None + if expand or retparser: + parser = self.expandWithRefs(value, cachename) if expand: - self.expand_cache[cachename] = self.expandWithRefs(value, cachename) - value = self.expand_cache[cachename].value + value = parser.value if value and flag == "_content" and local_var is not None and "_remove" in local_var and not parsing: removes = [] @@ -818,8 +820,14 @@ class DataSmart(MutableMapping): filtered = filter(lambda v: v not in removes, __whitespace_split__.split(value)) value = "".join(filtered) - if expand and cachename in self.expand_cache: - self.expand_cache[cachename].value = value + if parser: + parser.value = value + + if parser: + self.expand_cache[cachename] = parser + + if retparser: + return value, parser return value |