forked from jpadilla/django-rest-framework-yaml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrenderers.py
40 lines (32 loc) · 957 Bytes
/
renderers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""
Provides YAML rendering support.
"""
from __future__ import unicode_literals
from rest_framework.renderers import BaseRenderer
from .compat import yaml
from .encoders import SafeDumper
class YAMLRenderer(BaseRenderer):
"""
Renderer which serializes to YAML.
"""
media_type = 'application/yaml'
format = 'yaml'
encoder = SafeDumper
charset = 'utf-8'
ensure_ascii = False
default_flow_style = False
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,
Dumper=self.encoder,
allow_unicode=not self.ensure_ascii,
default_flow_style=self.default_flow_style
)