Spaces:
Sleeping
Sleeping
| __all__ = ["assert_", "prepare_locals_for_super", "json_str"] | |
| def assert_(*values, info: str = ""): | |
| if not len(set(values)) == 1: | |
| txt = f"{' != '.join(f'{v=}' for v in values)}" | |
| if info is not None and len(info) > 0: | |
| txt = info + " " + txt | |
| raise AssertionError(txt) | |
| def prepare_locals_for_super( | |
| local_vars, args_name="args", kwargs_name="kwargs", ignore_kwargs=False | |
| ): | |
| assert ( | |
| args_name not in local_vars | |
| ), "`prepare_locals_for_super` does not support {}.".format(args_name) | |
| new_locals = {k: v for k, v in local_vars.items() if k != "self" and "__" not in k} | |
| if kwargs_name in new_locals: | |
| if ignore_kwargs: | |
| new_locals.pop(kwargs_name) | |
| else: | |
| kwargs = new_locals.pop(kwargs_name) | |
| kwargs.update(new_locals) | |
| new_locals = kwargs | |
| return new_locals | |
| def json_str(data: dict, indent: int = 4) -> str: | |
| def _serialize(item, level=0): | |
| if isinstance(item, dict): | |
| return "\n" + "\n".join( | |
| [ | |
| f'{" " * (level + 1) * indent}{k}: {_serialize(v, level + 1)}' | |
| for k, v in item.items() | |
| ] | |
| ) | |
| elif hasattr(item, "to_dict"): | |
| return item.to_dict() | |
| elif hasattr(item, "__class__"): | |
| if hasattr(item, "__repr__"): | |
| return item.__repr__() | |
| else: | |
| return item.__class__.__name__ | |
| else: | |
| return item | |
| return "\n" + "\n".join( | |
| [f'{" " * indent}{k}: {_serialize(v)}' for k, v in data.items()] | |
| ) | |