core/homeassistant/components/cloud/utils.py

26 lines
716 B
Python
Raw Normal View History

"""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),
}