From 4054b25d5ec2394fe0ccba349bb90b1845ab6a5d Mon Sep 17 00:00:00 2001 From: Aníbal Limón Date: Fri, 25 Nov 2016 11:36:06 -0600 Subject: oe/data: Add export2json function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The export2json function export the variables contained in the data store to JSON format, the main usage for now will be to provide test data to QA framework. (From OE-Core rev: 57c7bf68ed66a56601e1431bb2db750c5742b5ce) Signed-off-by: Aníbal Limón Signed-off-by: Richard Purdie --- meta/lib/oe/data.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'meta/lib/oe/data.py') diff --git a/meta/lib/oe/data.py b/meta/lib/oe/data.py index 4a67c457b3..39567333f1 100644 --- a/meta/lib/oe/data.py +++ b/meta/lib/oe/data.py @@ -1,3 +1,4 @@ +import json import oe.maketype def typed_value(key, d): @@ -15,3 +16,30 @@ def typed_value(key, d): return oe.maketype.create(d.getVar(key) or '', var_type, **flags) except (TypeError, ValueError) as exc: bb.msg.fatal("Data", "%s: %s" % (key, str(exc))) + +def export2json(d, json_file, expand=True): + data2export = {} + keys2export = [] + + for key in d.keys(): + if key.startswith("_"): + continue + elif key.startswith("BB"): + continue + elif key.startswith("B_pn"): + continue + elif key.startswith("do_"): + continue + elif d.getVarFlag(key, "func", True): + continue + + keys2export.append(key) + + for key in keys2export: + try: + data2export[key] = d.getVar(key, expand) + except bb.data_smart.ExpansionError: + data2export[key] = '' + + with open(json_file, "w") as f: + json.dump(data2export, f, skipkeys=True, indent=4, sort_keys=True) -- cgit v1.2.3-54-g00ecf