from typing import Dict from .param import Param class MultiParam(Param): def __call__(self, args: Dict) -> Dict: out = {} for a, v in args.items(): if a.startswith(self.name): if self.valid(v): if v is None: out[a] = self.default_value else: out[a] = v else: raise RuntimeError(f"Parameter {a} has invalid value {v}") if self.required and len(out) == 0: raise RuntimeError(f"Parameter(s) {self.name}* missing") return out