| import argparse | |
| import dataclasses | |
| from typeguard import check_type | |
| def build_dataclass(dataclass, args: argparse.Namespace): | |
| """Helper function to build dataclass from 'args'.""" | |
| kwargs = {} | |
| for field in dataclasses.fields(dataclass): | |
| if not hasattr(args, field.name): | |
| raise ValueError( | |
| f"args doesn't have {field.name}. You need to set it to ArgumentsParser" | |
| ) | |
| check_type(field.name, getattr(args, field.name), field.type) | |
| kwargs[field.name] = getattr(args, field.name) | |
| return dataclass(**kwargs) | |