Spaces:
Sleeping
Sleeping
| from dataclasses import dataclass, is_dataclass | |
| # decorator to wrap original __init__ | |
| def has_nested_dataclass(*args, **kwargs): | |
| def wrapper(check_class): | |
| # passing class to investigate | |
| check_class = dataclass(check_class, **kwargs) | |
| o_init = check_class.__init__ | |
| def __init__(self, *args, **kwargs): | |
| for name, value in kwargs.items(): | |
| # getting field type | |
| ft = check_class.__annotations__.get(name, None) | |
| if is_dataclass(ft) and isinstance(value, dict): | |
| obj = ft(**value) | |
| kwargs[name] = obj | |
| o_init(self, *args, **kwargs) | |
| check_class.__init__ = __init__ | |
| return check_class | |
| return wrapper(args[0]) if args else wrapper | |
| def convert_crlf_to_lf(s: str) -> str: | |
| s = s.replace("\r", "").replace("\r\n", "\n") | |
| return s | |