Source code for swh.web.api.renderers

# Copyright (C) 2017-2020  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information

import yaml

from rest_framework import renderers


[docs]class YAMLRenderer(renderers.BaseRenderer): """ Renderer which serializes to YAML. """ media_type = "application/yaml" format = "yaml" charset = "utf-8" ensure_ascii = False default_flow_style = False
[docs] def render(self, data, accepted_media_type=None, renderer_context=None): """ Renders `data` into serialized YAML. """ assert yaml, "YAMLRenderer requires pyyaml to be installed" if data is None: return "" return yaml.dump( data, stream=None, encoding=self.charset, allow_unicode=not self.ensure_ascii, default_flow_style=self.default_flow_style, )
[docs]class PlainTextRenderer(renderers.BaseRenderer): """ Renderer which does not perform any serialization to raw text data. """ media_type = "text/plain" format = "text" charset = "utf-8"
[docs] def render(self, data, media_type=None, renderer_context=None): return data