From 6ecf7599a942fa97ee39be528f0e9e38c7e1a7b6 Mon Sep 17 00:00:00 2001 From: Juan Riaza Date: Sat, 5 Jan 2013 23:46:41 +0100 Subject: [PATCH] only parse date objects if dateutil is available --- rest_framework/parsers.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/rest_framework/parsers.py b/rest_framework/parsers.py index 801a9229b..05b144e26 100644 --- a/rest_framework/parsers.py +++ b/rest_framework/parsers.py @@ -102,16 +102,16 @@ class MessagePackParser(BaseParser): raise ParseError('MessagePack parse error - %s' % unicode(exc)) def _decode_object(self, obj): - if '__datetime__' in obj: - return dateutil_parser.parse(obj['as_str']) - elif b'__date__' in obj: - return dateutil_parser.parse(obj['as_str']).date() - elif b'__time__' in obj: - return dateutil_parser.parse(obj['as_str']).time() - elif b'__decimal__' in obj: - return decimal.Decimal(obj['as_str']) - else: - return obj + if dateutil_parser: + if '__datetime__' in obj: + return dateutil_parser.parse(obj['as_str']) + elif b'__date__' in obj: + return dateutil_parser.parse(obj['as_str']).date() + elif b'__time__' in obj: + return dateutil_parser.parse(obj['as_str']).time() + if b'__decimal__' in obj: + return decimal.Decimal(obj['as_str']) + return obj class FormParser(BaseParser):