Fix YAML parser bug

This commit is contained in:
Tom Christie 2012-02-21 22:09:05 +00:00
parent ca9465f11e
commit 9277f438cb
2 changed files with 39 additions and 40 deletions

View File

@ -92,7 +92,6 @@ class JSONParser(BaseParser):
{'detail': 'JSON parse error - %s' % unicode(exc)})
if yaml:
class YAMLParser(BaseParser):
"""
Parses YAML-serialized data.
@ -109,11 +108,9 @@ if yaml:
"""
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
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:
if yaml:
DEFAULT_PARSERS += (YAMLParser, )
else:
YAMLParser = None

View File

@ -152,7 +152,6 @@ class XMLRenderer(BaseRenderer):
return dict2xml(obj)
if yaml:
class YAMLRenderer(BaseRenderer):
"""
Renderer which serializes to YAML.
@ -169,8 +168,6 @@ if yaml:
return ''
return yaml.safe_dump(obj)
else:
YAMLRenderer = None
class TemplateRenderer(BaseRenderer):
@ -409,5 +406,7 @@ DEFAULT_RENDERERS = (
XMLRenderer
)
if YAMLRenderer:
if yaml:
DEFAULT_RENDERERS += (YAMLRenderer, )
else:
YAMLRenderer = None