"""Helper functions for cloud components.""" from typing import Any, Dict from aiohttp import web, payload def aiohttp_serialize_response(response: web.Response) -> Dict[str, Any]: """Serialize an aiohttp response to a dictionary.""" body = response.body if body is None: pass elif isinstance(body, payload.StringPayload): # pylint: disable=protected-access body = body._value.decode(body.encoding) elif isinstance(body, bytes): body = body.decode(response.charset or 'utf-8') else: raise ValueError("Unknown payload encoding") return { 'status': response.status, 'body': body, 'headers': dict(response.headers), }