From 74b61de6411eb5dce3bc865cb67a6d3d3d580e33 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 11 Apr 2016 17:44:16 +0200 Subject: [PATCH] replace dateutil by isodate (#10196) isodate has better support for the full ISO8601 specification. --- mellon/utils.py | 11 +++++++---- setup.py | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mellon/utils.py b/mellon/utils.py index b9a810d..a1b5276 100644 --- a/mellon/utils.py +++ b/mellon/utils.py @@ -2,7 +2,7 @@ import logging import datetime import importlib from functools import wraps -import dateutil.parser +import isodate from django.core.urlresolvers import reverse from django.template.loader import render_to_string @@ -115,12 +115,15 @@ def flatten_datetime(d): return d -def iso8601_to_datetime(date_string): - '''Convert a string formatted as an ISO8601 date into a time_t +def iso8601_to_datetime(date_string, default=None): + '''Convert a string formatted as an ISO8601 date into a datetime value. This function ignores the sub-second resolution''' - dt = dateutil.parser.parse(date_string) + try: + dt = isodate.parse_datetime(date_string) + except: + return default if is_aware(dt): if not settings.USE_TZ: dt = make_naive(dt, get_default_timezone()) diff --git a/setup.py b/setup.py index 76bd426..947a79e 100755 --- a/setup.py +++ b/setup.py @@ -93,7 +93,7 @@ setup(name="django-mellon", install_requires=[ 'django>=1.5', 'requests', - 'python-dateutil', + 'isodate', ], setup_requires=[ 'django',