conex / espnet2 /utils /build_dataclass.py
tobiasc's picture
Initial commit
ad16788
raw
history blame contribute delete
No virus
582 Bytes
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)