build/parser: adding a method to search default value for an argument into ArgParse._actions
This commit is contained in:
parent
c834387965
commit
35f4913588
|
@ -174,6 +174,8 @@ class LiteXArgumentParser(argparse.ArgumentParser):
|
||||||
# When platform is None try to search for a user input
|
# When platform is None try to search for a user input
|
||||||
if self._platform is None:
|
if self._platform is None:
|
||||||
platform = self.get_value_from_key("--platform", 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:
|
if platform is not None:
|
||||||
self.set_platform(importlib.import_module(platform).Platform)
|
self.set_platform(importlib.import_module(platform).Platform)
|
||||||
self.add_target_group()
|
self.add_target_group()
|
||||||
|
@ -244,3 +246,23 @@ class LiteXArgumentParser(argparse.ArgumentParser):
|
||||||
except IndexError:
|
except IndexError:
|
||||||
value = default
|
value = default
|
||||||
return value
|
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
|
||||||
|
|
Loading…
Reference in New Issue