# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1236673392 -3600 # Tue Mar 10 09:23:12 2009 +0100 # Node ID cbbf68aafdf4ae267189d2efaf6eea4d7b1add37 # Parent 3a26ac60e6f4f9073c48de86c3adc9372e8fa700 fix behaviour if mx.DateTime not available diff --git a/nodes.py b/nodes.py --- a/nodes.py +++ b/nodes.py @@ -13,11 +13,6 @@ from decimal import Decimal from datetime import datetime, date, time, timedelta from time import localtime - -try: - from mx.DateTime import DateTimeType, DateTimeDeltaType, today, now -except: - pass from rql import CoercionError from rql.base import BaseNode, Node, BinaryNode, LeafNode @@ -27,8 +22,6 @@ CONSTANT_TYPES = frozenset((None, 'Date', 'Datetime', 'Boolean', 'Float', 'Int', 'String', 'Substitute', 'etype')) -KEYWORD_MAP = {'NOW' : now, - 'TODAY': today} # keep using mx DateTime by default for bw compat def use_py_datetime(): @@ -47,10 +40,18 @@ date: 'Date', time: 'Time', timedelta: 'Interval', - DateTimeType: 'Datetime', - DateTimeDeltaType: 'Datetime', } + +try: + from mx.DateTime import DateTimeType, DateTimeDeltaType, today, now + KEYWORD_MAP = {'NOW' : now, + 'TODAY': today} + ETYPE_PYOBJ_MAP[DateTimeType] = 'Datetime' + ETYPE_PYOBJ_MAP[DateTimeDeltaType] = 'Datetime' +except: + use_py_datetime() + def etype_from_pyobj(value): """guess yams type from python value""" # note: