# Common from collections import defaultdict from typing import Any, Union from fansifter_common.exceptions import FansifterError def response_errors(*errors: type[FansifterError]) -> dict[int | str, dict[str, Any]]: errors_by_status_code: dict[int, list[type[FansifterError]]] = defaultdict(list) for error in errors: errors_by_status_code[error.status_code].append(error) return { status_code: { "model": ( Union[*[error.model() for error in errors]] # type: ignore[reportInvalidTypeForm, unused-ignore] # ty: ignore[invalid-type-form] if len(errors) > 1 else errors[0].model() ) } for status_code, errors in errors_by_status_code.items() }