[gnue] r9896 - in trunk: gnue-common/src/datasources gnue-common/src/datasources/drivers/DBSIG2 gnue-common/src/rpc gnue-common/src/rpc/drivers/xmlrpc gnue-common/src/utils gnue-forms

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
Author: reinhard
Date: 2008-10-23 08:47:44 -0500 (Thu, 23 Oct 2008)
New Revision: 9896

Modified:
   trunk/gnue-common/src/datasources/GConditions.py
   trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
   trunk/gnue-common/src/rpc/client.py
   trunk/gnue-common/src/rpc/drivers/xmlrpc/typeconv.py
   trunk/gnue-common/src/rpc/server.py
   trunk/gnue-common/src/utils/datatypes.py
   trunk/gnue-forms/INSTALL
   trunk/gnue-forms/setup.py
Log:
mx.DateTime is not a hard requirement any more.


Modified: trunk/gnue-common/src/datasources/GConditions.py
===================================================================
--- trunk/gnue-common/src/datasources/GConditions.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/datasources/GConditions.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -26,7 +26,6 @@
 
 import re
 import sys
-import mx.DateTime
 import datetime
 if sys.hexversion >= 0x02040000:
     import decimal
@@ -36,7 +35,18 @@
 from gnue.common.formatting import GTypecast
 from gnue.common.utils import GDateTime
 
+# mx.DateTime is optional - a decreasing number of DBSIG2 modules actually use
+# it, and so we don't want it as a hard dependency. Having less dependencies is
+# sespecially nice on somewhat exotic platforms, like Windows Mobile.
+try:
+    import mx.DateTime
+    mx_DateTimeType = mx.DateTime.DateTimeType
+    mx_DateTimeDeltaType = mx.DateTime.DateTimeDeltaType
+except ImportError:
+    mx_DateTimeType = None
+    mx_DateTimeDeltaType = None
 
+
 # =============================================================================
 # Exceptions
 # =============================================================================
@@ -1656,8 +1666,8 @@
             raise ConversionError, (oldValue, chkValue)
   
       # String to DateTime
-      elif isinstance (chkValue, mx.DateTime.DateTimeType) or \
-           isinstance (chkValue, mx.DateTime.DateTimeDeltaType) or \
+      elif isinstance (chkValue, mx_DateTimeType) or \
+           isinstance (chkValue, mx_DateTimeDeltaType) or \
            isinstance (chkValue, datetime.datetime) or \
            isinstance (chkValue, datetime.time) or \
            isinstance (chkValue, datetime.date):
@@ -1794,14 +1804,14 @@
       if isinstance (chkValue, datetime.date):
         newValue = oldValue.date ()
 
-      elif isinstance (chkValue, mx.DateTime.DateTimeType):
+      elif isinstance (chkValue, mx_DateTimeType):
         newValue = datetime.date (oldValue.year, oldValue.month, oldValue.day)
       else:
         raise ConversionRuleError, (v1, v2)
 
-    elif isinstance (v1, mx.DateTime.DateTimeType) or \
-         isinstance (v2, mx.DateTime.DateTimeType):
-      if isinstance (v1, mx.DateTime.DateTimeType):
+    elif isinstance (v1, mx_DateTimeType) or \
+         isinstance (v2, mx_DateTimeType):
+      if isinstance (v1, mx_DateTimeType):
         oldValue = v1
         chkValue = v2
       else:
@@ -1819,9 +1829,9 @@
       else:
         raise ConversionRuleError, (v1, v2)
 
-    elif isinstance (v1, mx.DateTime.DateTimeDeltaType) or \
-         isinstance (v2, mx.DateTime.DateTimeDeltaType):
-      if isinstance (v1, mx.DateTime.DateTimeDeltaType):
+    elif isinstance (v1, mx_DateTimeDeltaType) or \
+         isinstance (v2, mx_DateTimeDeltaType):
+      if isinstance (v1, mx_DateTimeDeltaType):
         oldValue = v1
         chkValue = v2
       else:

Modified: trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/datasources/drivers/DBSIG2/Connection.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -27,9 +27,8 @@
 
 __all__ = ['Connection']
 
+import datetime
 import sys
-import mx.DateTime
-import datetime
 
 from gnue.common.apps import errors, GDebug
 from gnue.common.datasources import Exceptions
@@ -37,7 +36,18 @@
 
 from ResultSet import ResultSet
 
+# mx.DateTime is optional - a decreasing number of DBSIG2 modules actually use
+# it, and so we don't want it as a hard dependency. Having less dependencies is
+# sespecially nice on somewhat exotic platforms, like Windows Mobile.
+try:
+    import mx.DateTime
+    mx_DateTimeType = mx.DateTime.DateTimeType
+    mx_DateTimeDeltaType = mx.DateTime.DateTimeDeltaType
+except ImportError:
+    mx_DateTimeType = None
+    mx_DateTimeDeltaType = None
 
+
 # =============================================================================
 # Connection class
 # =============================================================================
@@ -387,7 +397,7 @@
       else:
         return self._boolean_false_
 
-    elif isinstance (value, mx.DateTime.DateTimeType) or \
+    elif isinstance (value, mx_DateTimeType) or \
          isinstance (value, datetime.datetime):
 
       second = value.second
@@ -401,7 +411,7 @@
                                       value.hour, value.minute, second,
                                       microsecond)
 
-    elif isinstance (value, mx.DateTime.DateTimeDeltaType) or \
+    elif isinstance (value, mx_DateTimeDeltaType) or \
          isinstance (value, datetime.time):
 
       second = value.second

Modified: trunk/gnue-common/src/rpc/client.py
===================================================================
--- trunk/gnue-common/src/rpc/client.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/rpc/client.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -123,7 +123,6 @@
   import sys
   from gnue.common.apps import errors
   import datetime
-  import mx.DateTime
   
   if len (sys.argv) >= 2 and \
       sys.argv [1] in ['pyro', 'xmlrpc', 'socket', 'soap']:
@@ -185,8 +184,6 @@
        'date': datetime.date.today (),
        'time': datetime.datetime.today ().time (),
        'datetime': datetime.datetime.today (),
-       'mx.DateTime': mx.DateTime.now (),
-       'mx.DateTimeDelta': mx.DateTime.DateTimeDelta (0, 1, 2, 3.456)}
   print "Sending %r (%s) to a roundtrip ..." % (o, type (o))
   v = obj.roundtrip (o)
   print "Result:", repr (v), type (v)

Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/typeconv.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/typeconv.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/typeconv.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -23,10 +23,21 @@
 
 import xmlrpclib
 import datetime
-import mx.DateTime
 
 from gnue.common.lib import iso8601
 
+# mx.DateTime is optional - a decreasing number of DBSIG2 modules actually use
+# it, and so we don't want it as a hard dependency. Having less dependencies is
+# sespecially nice on somewhat exotic platforms, like Windows Mobile.
+try:
+    import mx.DateTime
+    mx_DateTimeType = mx.DateTime.DateTimeType
+    mx_DateTimeDeltaType = mx.DateTime.DateTimeDeltaType
+except ImportError:
+    mx_DateTimeType = None
+    mx_DateTimeDeltaType = None
+
+
 # -----------------------------------------------------------------------------
 # Check wether a given item is an id-dictionary representing a server object
 # -----------------------------------------------------------------------------
@@ -96,11 +107,11 @@
     return value
 
   # Date/Time
-  elif isinstance (value, mx.DateTime.DateTimeType):
+  elif isinstance (value, mx_DateTimeType):
     return xmlrpclib.DateTime ("%04d-%02d-%02d %02d:%02d:%09.6f" % (value.year,
       value.month, value.day, value.hour, value.minute, value.second))
 
-  elif isinstance (value, mx.DateTime.DateTimeDeltaType):
+  elif isinstance (value, mx_DateTimeDeltaType):
     return xmlrpclib.DateTime ("%02d:%02d:%09.6f" % (value.hour, value.minute,
       value.second))
 

Modified: trunk/gnue-common/src/rpc/server.py
===================================================================
--- trunk/gnue-common/src/rpc/server.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/rpc/server.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -111,7 +111,6 @@
 
   import sys
   import time
-  import mx.DateTime
 
   class TestError (Exception):
     pass
@@ -161,9 +160,6 @@
     def floattest (self, f):
       return f * 2
 
-    def datetimetest (self):
-      return mx.DateTime.now ()
-
     def booltest (self):
       return True
 

Modified: trunk/gnue-common/src/utils/datatypes.py
===================================================================
--- trunk/gnue-common/src/utils/datatypes.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-common/src/utils/datatypes.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -27,11 +27,21 @@
 __all__ = ['convert', 'InvalidValueType', 'ConversionError']
 
 import datetime
-import mx.DateTime
 
 from gnue.common.lib import iso8601
 
+# mx.DateTime is optional - a decreasing number of DBSIG2 modules actually use
+# it, and so we don't want it as a hard dependency. Having less dependencies is
+# sespecially nice on somewhat exotic platforms, like Windows Mobile.
+try:
+    import mx.DateTime
+    mx_DateTimeType = mx.DateTime.DateTimeType
+    mx_DateTimeDeltaType = mx.DateTime.DateTimeDeltaType
+except ImportError:
+    mx_DateTimeType = None
+    mx_DateTimeDeltaType = None
 
+
 # =============================================================================
 # Convert a value to a given target datatype
 # =============================================================================
@@ -88,7 +98,7 @@
         elif isinstance(value, datetime.date):
             result = value
 
-        elif isinstance(value, mx.DateTime.DateTimeType):
+        elif isinstance(value, mx_DateTimeType):
             result = datetime.date(value.year, value.month, value.day)
 
         else:
@@ -107,8 +117,8 @@
         elif isinstance(value, datetime.timedelta):
             result = (datetime.datetime(1, 1, 1) + value).time()
 
-        elif isinstance(value, mx.DateTime.DateTimeType) or \
-                isinstance(value, mx.DateTime.DateTimeDeltaType):
+        elif isinstance(value, mx_DateTimeType) or \
+                isinstance(value, mx_DateTimeDeltaType):
             result = datetime.time(value.hour, value.minute, int(value.second),
                 int((value.second - int(value.second)) * 1000000))
 
@@ -133,7 +143,7 @@
             result = datetime.datetime(1900, 1, 1, value.hour, value.minute,
                     value.second, value.microsecond)
 
-        elif isinstance(value, mx.DateTime.DateTimeType):
+        elif isinstance(value, mx_DateTimeType):
             result = datetime.datetime(value.year, value.month, value.day,
                 value.hour, value.minute, int(value.second),
                 int((value.second - int(value.second)) * 1000000))

Modified: trunk/gnue-forms/INSTALL
===================================================================
--- trunk/gnue-forms/INSTALL	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-forms/INSTALL	2008-10-23 13:47:44 UTC (rev 9896)
@@ -10,8 +10,6 @@
 
 * Python 2.3 or greater [python python-dev]
 
-* Egenix MX DateTime tools for Python [python-egenix-mxdatetime]
-
 * GNUe Common 0.6.8 or greater [gnue-common]
 
 * at least one of the following database interfaces, depending on the database

Modified: trunk/gnue-forms/setup.py
===================================================================
--- trunk/gnue-forms/setup.py	2008-09-09 09:37:01 UTC (rev 9895)
+++ trunk/gnue-forms/setup.py	2008-10-23 13:47:44 UTC (rev 9896)
@@ -115,18 +115,6 @@
       sys.exit(1)
 
     # -------------------------------------------------------------------------
-    # mxDateTime
-    try:
-      print "checking mxDateTime library"
-      from mx.DateTime import DateTime
-    except ImportError:
-      print "---"
-      print "Could not import the mx.DateTime package."
-      print "Please install mxDateTime from the mxtools suite."
-      print "The file 'INSTALL' contains more information about dependencies."
-      sys.exit (1)
-
-    # -------------------------------------------------------------------------
     # Verify at least one UI is installed
     UIOK = 0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.