aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--djangorestframework/parsers.py42
-rw-r--r--djangorestframework/renderers.py35
2 files changed, 38 insertions, 39 deletions
diff --git a/djangorestframework/parsers.py b/djangorestframework/parsers.py
index c8a014ae..099abe9a 100644
--- a/djangorestframework/parsers.py
+++ b/djangorestframework/parsers.py
@@ -92,28 +92,25 @@ class JSONParser(BaseParser):
{'detail': 'JSON parse error - %s' % unicode(exc)})
-if yaml:
- class YAMLParser(BaseParser):
- """
- Parses YAML-serialized data.
- """
+class YAMLParser(BaseParser):
+ """
+ Parses YAML-serialized data.
+ """
- media_type = 'application/yaml'
+ media_type = 'application/yaml'
- def parse(self, stream):
- """
- Returns a 2-tuple of `(data, files)`.
+ def parse(self, stream):
+ """
+ Returns a 2-tuple of `(data, files)`.
- `data` will be an object which is the parsed content of the response.
- `files` will always be `None`.
- """
- try:
- return (yaml.safe_load(stream), None)
- except ValueError, exc:
- raise ErrorResponse(status.HTTP_400_BAD_REQUEST,
- {'detail': 'YAML parse error - %s' % unicode(exc)})
-else:
- YAMLParser = None
+ `data` will be an object which is the parsed content of the response.
+ `files` will always be `None`.
+ """
+ try:
+ return (yaml.safe_load(stream), None)
+ except (ValueError, yaml.parser.ParserError), exc:
+ content = {'detail': 'YAML parse error - %s' % unicode(exc)}
+ raise ErrorResponse(status.HTTP_400_BAD_REQUEST, content)
class PlainTextParser(BaseParser):
@@ -248,5 +245,8 @@ DEFAULT_PARSERS = (
XMLParser
)
-if YAMLParser:
- DEFAULT_PARSERS += (YAMLParser,)
+if yaml:
+ DEFAULT_PARSERS += (YAMLParser, )
+else:
+ YAMLParser = None
+
diff --git a/djangorestframework/renderers.py b/djangorestframework/renderers.py
index de9a01ec..71c381f7 100644
--- a/djangorestframework/renderers.py
+++ b/djangorestframework/renderers.py
@@ -152,25 +152,22 @@ class XMLRenderer(BaseRenderer):
return dict2xml(obj)
-if yaml:
- class YAMLRenderer(BaseRenderer):
- """
- Renderer which serializes to YAML.
- """
+class YAMLRenderer(BaseRenderer):
+ """
+ Renderer which serializes to YAML.
+ """
- media_type = 'application/yaml'
- format = 'yaml'
+ media_type = 'application/yaml'
+ format = 'yaml'
- def render(self, obj=None, media_type=None):
- """
- Renders *obj* into serialized YAML.
- """
- if obj is None:
- return ''
+ def render(self, obj=None, media_type=None):
+ """
+ Renders *obj* into serialized YAML.
+ """
+ if obj is None:
+ return ''
- return yaml.safe_dump(obj)
-else:
- YAMLRenderer = None
+ return yaml.safe_dump(obj)
class TemplateRenderer(BaseRenderer):
@@ -409,5 +406,7 @@ DEFAULT_RENDERERS = (
XMLRenderer
)
-if YAMLRenderer:
- DEFAULT_RENDERERS += (YAMLRenderer,)
+if yaml:
+ DEFAULT_RENDERERS += (YAMLRenderer, )
+else:
+ YAMLRenderer = None