summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--lib/loader/kconfig.py11
2 files changed, 13 insertions, 1 deletions
diff --git a/README.md b/README.md
index 1bab437..3e2633d 100644
--- a/README.md
+++ b/README.md
@@ -31,3 +31,6 @@ The following variables may be set to alter the behaviour of dfatool components.
| `DFATOOL_DRIFT_COMPENSATION_PENALTY` | 0 .. 100 (default: majority vote over several penalties) | Specify penalty for ruptures.py PELT changepoint petection |
| `DFATOOL_DTREE_ENABLED` | 0, **1** | Use decision trees in get\_fitted |
| `DFATOOL_DTREE_FUNCTION_LEAVES` | 0, **1** | Use functions (fitted via linear regression) in decision tree leaves when modeling numeric parameters with at least three distinct values. If 0, integer parameters are treated as enums instead. |
+| `DFATOOL_KCONF_WITH_CHOICE_NODES` | 0, **1** | Generate enum parameters from kconfig choice nodes; ignore corresponding boolean config options. |
+| `DFATOOL_KCONF_IGNORE_NUMERIC` | **0**, 1 | Ignore numeric (int/hex) configuration options. Useful for comparison with CART/DECART. |
+| `DFATOOL_KCONF_IGNORE_STRING` | **0**, 1 | Ignore string configuration options. Useful for comparison with CART/DECART. |
diff --git a/lib/loader/kconfig.py b/lib/loader/kconfig.py
index 42181c9..ef0bc65 100644
--- a/lib/loader/kconfig.py
+++ b/lib/loader/kconfig.py
@@ -32,12 +32,21 @@ class KConfigAttributes:
if "/" in kconfig_path:
self.kconfig_dir = kconfig_path.split("/")[-2]
+ accepted_symbol_types = "bool tristate int string hex".split()
+
+ if bool(int(os.getenv("DFATOOL_KCONF_IGNORE_NUMERIC", 0))):
+ accepted_symbol_types.remove("int")
+ accepted_symbol_types.remove("hex")
+
+ if bool(int(os.getenv("DFATOOL_KCONF_IGNORE_STRING", 0))):
+ accepted_symbol_types.remove("string")
+
self.symbol_names = sorted(
map(
lambda sym: sym.name,
filter(
lambda sym: kconfiglib.TYPE_TO_STR[sym.type]
- in ("bool", "tristate", "int", "string", "hex"),
+ in accepted_symbol_types,
kconf.syms.values(),
),
)