The rest encodings now use the parse_iso[date|time] functions of wsme.utils

This commit is contained in:
Christophe de Vienne 2013-04-10 12:02:42 +02:00
parent dfaaeaae48
commit 3bbd6544bc
2 changed files with 8 additions and 11 deletions

View File

@ -11,8 +11,10 @@ from simplegeneric import generic
from wsme.types import Unset from wsme.types import Unset
import wsme.types import wsme.types
import wsme.utils
from wsme.exc import UnknownArgument from wsme.exc import UnknownArgument
try: try:
import simplejson as json import simplejson as json
except ImportError: except ImportError:
@ -182,21 +184,21 @@ def decimal_fromjson(datatype, value):
def date_fromjson(datatype, value): def date_fromjson(datatype, value):
if value is None: if value is None:
return None return None
return datetime.datetime.strptime(value, '%Y-%m-%d').date() return wsme.utils.parse_isodate(value)
@fromjson.when_object(datetime.time) @fromjson.when_object(datetime.time)
def time_fromjson(datatype, value): def time_fromjson(datatype, value):
if value is None: if value is None:
return None return None
return datetime.datetime.strptime(value, '%H:%M:%S').time() return wsme.utils.parse_isotime(value)
@fromjson.when_object(datetime.datetime) @fromjson.when_object(datetime.datetime)
def datetime_fromjson(datatype, value): def datetime_fromjson(datatype, value):
if value is None: if value is None:
return 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'): def parse(s, datatypes, bodyarg, encoding='utf8'):

View File

@ -213,26 +213,21 @@ def unicode_fromxml(datatype, element):
def date_fromxml(datatype, element): def date_fromxml(datatype, element):
if element.get('nil') == 'true': if element.get('nil') == 'true':
return None return None
return datetime.datetime.strptime(element.text, '%Y-%m-%d').date() return wsme.utils.parse_isodate(element.text)
@fromxml.when_object(datetime.time) @fromxml.when_object(datetime.time)
def time_fromxml(datatype, element): def time_fromxml(datatype, element):
if element.get('nil') == 'true': if element.get('nil') == 'true':
return None return None
m = time_re.match(element.text) return wsme.utils.parse_isotime(element.text)
if m:
return datetime.time(
int(m.group('h')),
int(m.group('m')),
int(m.group('s')))
@fromxml.when_object(datetime.datetime) @fromxml.when_object(datetime.datetime)
def datetime_fromxml(datatype, element): def datetime_fromxml(datatype, element):
if element.get('nil') == 'true': if element.get('nil') == 'true':
return None 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): def parse(s, datatypes, bodyarg):