# 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: