diff options
Diffstat (limited to 'meta-xilinx-core/lib/oe/data.py')
| -rw-r--r-- | meta-xilinx-core/lib/oe/data.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-xilinx-core/lib/oe/data.py b/meta-xilinx-core/lib/oe/data.py new file mode 100644 index 00000000..37121cfa --- /dev/null +++ b/meta-xilinx-core/lib/oe/data.py | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | # | ||
| 2 | # Copyright OpenEmbedded Contributors | ||
| 3 | # | ||
| 4 | # SPDX-License-Identifier: GPL-2.0-only | ||
| 5 | # | ||
| 6 | |||
| 7 | import json | ||
| 8 | import oe.maketype | ||
| 9 | |||
| 10 | def typed_value(key, d): | ||
| 11 | """Construct a value for the specified metadata variable, using its flags | ||
| 12 | to determine the type and parameters for construction.""" | ||
| 13 | var_type = d.getVarFlag(key, 'type') | ||
| 14 | flags = d.getVarFlags(key) | ||
| 15 | if flags is not None: | ||
| 16 | flags = dict((flag, d.expand(value)) | ||
| 17 | for flag, value in list(flags.items())) | ||
| 18 | else: | ||
| 19 | flags = {} | ||
| 20 | |||
| 21 | try: | ||
| 22 | return oe.maketype.create(d.getVar(key) or '', var_type, **flags) | ||
| 23 | except (TypeError, ValueError) as exc: | ||
| 24 | bb.msg.fatal("Data", "%s: %s" % (key, str(exc))) | ||
| 25 | |||
| 26 | def export2json(d, json_file, expand=True, searchString="",replaceString=""): | ||
| 27 | data2export = {} | ||
| 28 | keys2export = [] | ||
| 29 | |||
| 30 | for key in d.keys(): | ||
| 31 | if key.startswith("_"): | ||
| 32 | continue | ||
| 33 | elif key.startswith("BB"): | ||
| 34 | continue | ||
| 35 | elif key.startswith("B_pn"): | ||
| 36 | continue | ||
| 37 | elif key.startswith("do_"): | ||
| 38 | continue | ||
| 39 | elif d.getVarFlag(key, "func"): | ||
| 40 | continue | ||
| 41 | |||
| 42 | keys2export.append(key) | ||
| 43 | |||
| 44 | for key in keys2export: | ||
| 45 | try: | ||
| 46 | data2export[key] = d.getVar(key, expand).replace(searchString,replaceString) | ||
| 47 | except bb.data_smart.ExpansionError: | ||
| 48 | data2export[key] = '' | ||
| 49 | except AttributeError: | ||
| 50 | pass | ||
| 51 | |||
| 52 | with open(json_file, "w") as f: | ||
| 53 | json.dump(data2export, f, skipkeys=True, indent=4, sort_keys=True) | ||
