diff --git a/python/dune/perftool/options.py b/python/dune/perftool/options.py index 028e160fb23fb6d937d3e9bf19b6a3456a46c2e3..0d7ee593ff79ed40d1de8c9e6e6fe3f3e95b6b49 100644 --- a/python/dune/perftool/options.py +++ b/python/dune/perftool/options.py @@ -94,12 +94,14 @@ def update_options_from_commandline(opt): def update_options_from_inifile(opt): """ Return an options array object with updated values from an inifile """ if opt.ini_file: - def _fix_bool(k, v): + def _fix_types(k, v): if hasattr(type(opt), k) and getattr(type(opt), k).type is bool: return bool(eval(v)) + if hasattr(type(opt), k): + return getattr(type(opt), k).type(v) return v ini = parse_ini_file(opt.ini_file).get("formcompiler", {}) - ini = {k: _fix_bool(k, v) for k, v in ini.items()} + ini = {k: _fix_types(k, v) for k, v in ini.items()} opt = opt.copy(**ini) return opt