build_dataclass.py 479 B

123456789101112131415
  1. import argparse
  2. import dataclasses
  3. def build_dataclass(dataclass, args: argparse.Namespace):
  4. """Helper function to build dataclass from 'args'."""
  5. kwargs = {}
  6. for field in dataclasses.fields(dataclass):
  7. if not hasattr(args, field.name):
  8. raise ValueError(
  9. f"args doesn't have {field.name}. You need to set it to ArgumentsParser"
  10. )
  11. kwargs[field.name] = getattr(args, field.name)
  12. return dataclass(**kwargs)