From 34709c8846b35a0df0e4c9bfe0c541afdc95facb Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Mon, 29 Feb 2016 12:24:57 -0800 Subject: [PATCH 1/2] Digging into leap year bug and improvming tests --- panoramix/utils.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/panoramix/utils.py b/panoramix/utils.py index 38d6f8bda621c..99a4326fb08b2 100644 --- a/panoramix/utils.py +++ b/panoramix/utils.py @@ -2,6 +2,7 @@ import functools import hashlib import json +import logging from dateutil.parser import parse from sqlalchemy.types import TypeDecorator, TEXT @@ -45,6 +46,7 @@ def parse_human_datetime(s): generated strings >>> from datetime import date, timedelta + >>> from dateutil.relativedelta import relativedelta >>> parse_human_datetime('2015-04-03') datetime.datetime(2015, 4, 3, 0, 0) >>> parse_human_datetime('2/3/1969') @@ -55,12 +57,18 @@ def parse_human_datetime(s): True >>> date.today() - timedelta(1) == parse_human_datetime('yesterday').date() True + >>> parse_human_datetime('one year ago').date() == (datetime.now() - relativedelta(years=1) ).date() + True """ try: dttm = parse(s) except: - cal = parsedatetime.Calendar() - dttm = dttm_from_timtuple(cal.parse(s)[0]) + try: + cal = parsedatetime.Calendar() + dttm = dttm_from_timtuple(cal.parse(s)[0]) + except Exception as e: + logging.exception(e) + raise ValueError("Couldn't parse date string [{}]".format(s)) return dttm From 4fe89a38117963ea45c026d1fa62856d47fa60ca Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Tue, 1 Mar 2016 14:23:54 -0800 Subject: [PATCH 2/2] Pinning parsedatetime to 2.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8c5949f02175b..e1b1d3a6b0a65 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ 'markdown>=2.6.2, <3.0.0', 'numpy>=1.9, <2', 'pandas==0.16.2, <0.17', - 'parsedatetime>=1.5, <2.0.0', + 'parsedatetime==2.0.0', 'pydruid>=0.2.2, <0.3', 'python-dateutil>=2.4.2, <3.0.0', 'requests>=2.7.0, <3.0.0',