@classmethod<EOL><INDENT>def build(cls: Type[T], data: Generic) -> T:<DEDENT>
fields = fields_dict(cls)<EOL>kwargs: Dict[str, Any] = {}<EOL>for key, value in data.items():<EOL><INDENT>if key in fields:<EOL><INDENT>if isinstance(value, Mapping):<EOL><INDENT>t = fields[key].type<EOL>if issubclass(t, Auto):<EOL><INDENT>value = t.build(value)<EOL><DEDENT>else:<EOL><INDENT>value = Auto.generate(value, name=key.title())<EOL><DEDENT><DEDENT>kwargs[key] = value<EOL><DEDENT>else:<EOL><INDENT>log.debug(f"<STR_LIT>")<EOL><DEDENT><DEDENT>return cls(**kwargs)<EOL>
Build objects from dictionaries, recursively.