From 3bbd6544bcc8cba3fad6d88ce15337e85b1983d7 Mon Sep 17 00:00:00 2001 From: Christophe de Vienne Date: Wed, 10 Apr 2013 12:02:42 +0200 Subject: [PATCH] The rest encodings now use the parse_iso[date|time] functions of wsme.utils --- wsme/rest/json.py | 8 +++++--- wsme/rest/xml.py | 11 +++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/wsme/rest/json.py b/wsme/rest/json.py index 0bc29e6..1b567d6 100644 --- a/wsme/rest/json.py +++ b/wsme/rest/json.py @@ -11,8 +11,10 @@ from simplegeneric import generic from wsme.types import Unset import wsme.types +import wsme.utils from wsme.exc import UnknownArgument + try: import simplejson as json except ImportError: @@ -182,21 +184,21 @@ def decimal_fromjson(datatype, value): def date_fromjson(datatype, value): if value is None: return None - return datetime.datetime.strptime(value, '%Y-%m-%d').date() + return wsme.utils.parse_isodate(value) @fromjson.when_object(datetime.time) def time_fromjson(datatype, value): if value is None: return None - return datetime.datetime.strptime(value, '%H:%M:%S').time() + return wsme.utils.parse_isotime(value) @fromjson.when_object(datetime.datetime) def datetime_fromjson(datatype, value): if value is None: return None - return datetime.datetime.strptime(value, '%Y-%m-%dT%H:%M:%S') + return wsme.utils.parse_isodatetime(value) def parse(s, datatypes, bodyarg, encoding='utf8'): diff --git a/wsme/rest/xml.py b/wsme/rest/xml.py index 01ffaed..eb8ce7e 100644 --- a/wsme/rest/xml.py +++ b/wsme/rest/xml.py @@ -213,26 +213,21 @@ def unicode_fromxml(datatype, element): def date_fromxml(datatype, element): if element.get('nil') == 'true': return None - return datetime.datetime.strptime(element.text, '%Y-%m-%d').date() + return wsme.utils.parse_isodate(element.text) @fromxml.when_object(datetime.time) def time_fromxml(datatype, element): if element.get('nil') == 'true': return None - m = time_re.match(element.text) - if m: - return datetime.time( - int(m.group('h')), - int(m.group('m')), - int(m.group('s'))) + return wsme.utils.parse_isotime(element.text) @fromxml.when_object(datetime.datetime) def datetime_fromxml(datatype, element): if element.get('nil') == 'true': return None - return datetime.datetime.strptime(element.text, '%Y-%m-%dT%H:%M:%S') + return wsme.utils.parse_isodatetime(element.text) def parse(s, datatypes, bodyarg):