parse arguments from dict (#4869)

* add parse_dict to parse arguments from dict

* add unit test for parse_dict
This commit is contained in:
Suraj Patil
2020-07-31 14:14:23 +05:30
committed by GitHub
parent cf3cf304ca
commit 838dc06ff5
2 changed files with 27 additions and 0 deletions

View File

@@ -158,3 +158,16 @@ class HfArgumentParser(ArgumentParser):
obj = dtype(**inputs)
outputs.append(obj)
return (*outputs,)
def parse_dict(self, args: dict) -> Tuple[DataClass, ...]:
"""
Alternative helper method that does not use `argparse` at all,
instead uses a dict and populating the dataclass types.
"""
outputs = []
for dtype in self.dataclass_types:
keys = {f.name for f in dataclasses.fields(dtype)}
inputs = {k: v for k, v in args.items() if k in keys}
obj = dtype(**inputs)
outputs.append(obj)
return (*outputs,)