| 1234567891011121314151617 |
- 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)
|