From 35f49135881162c9f72dcf28015dfe1929d9f515 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Wed, 11 Jan 2023 18:31:31 +0100 Subject: [PATCH] build/parser: adding a method to search default value for an argument into ArgParse._actions --- litex/build/parser.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/litex/build/parser.py b/litex/build/parser.py index 87ef6bf4f..520b50d73 100644 --- a/litex/build/parser.py +++ b/litex/build/parser.py @@ -174,6 +174,8 @@ class LiteXArgumentParser(argparse.ArgumentParser): # When platform is None try to search for a user input if self._platform is None: platform = self.get_value_from_key("--platform", None) + if platform is None: # no user selection: try default + platform = self.get_default_value_from_actions("platform", None) if platform is not None: self.set_platform(importlib.import_module(platform).Platform) self.add_target_group() @@ -244,3 +246,23 @@ class LiteXArgumentParser(argparse.ArgumentParser): except IndexError: value = default return value + + def get_default_value_from_actions(self, key, default=None): + """ + search key into ArgumentParser _actions list + + Parameters + ========== + key: str + key to search + default: str + default value when key is not in _actions list + + Return + ====== + default value or default when key is not present + """ + for act in self._actions: + if act.dest == key: + return act.default + return default