[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r7872 - in trunk/gnue-appserver/src: . generator
From: |
reinhard |
Subject: |
[gnue] r7872 - in trunk/gnue-appserver/src: . generator |
Date: |
Sat, 20 Aug 2005 06:42:03 -0500 (CDT) |
Author: reinhard
Date: 2005-08-20 06:41:58 -0500 (Sat, 20 Aug 2005)
New Revision: 7872
Modified:
trunk/gnue-appserver/src/geasGsdGen.py
trunk/gnue-appserver/src/geasInstance.py
trunk/gnue-appserver/src/generator/classdef.py
trunk/gnue-appserver/src/generator/form.py
trunk/gnue-appserver/src/generator/layout.py
Log:
Fixed datetime conversions and removed a few Python-2.1'isms.
Modified: trunk/gnue-appserver/src/geasGsdGen.py
===================================================================
--- trunk/gnue-appserver/src/geasGsdGen.py 2005-08-20 04:19:03 UTC (rev
7871)
+++ trunk/gnue-appserver/src/geasGsdGen.py 2005-08-20 11:41:58 UTC (rev
7872)
@@ -23,11 +23,9 @@
import sys
import copy
+import datetime
import mx.DateTime
-if sys.version_info [:2] >= (2, 3):
- import datetime
-
from gnue.common.apps import i18n, errors
from gnue.common.apps.i18n import translate as _ # for epydoc
from gnue.common.apps.GClientApp import *
@@ -356,8 +354,7 @@
if isinstance (native, mx.DateTime.DateTimeType):
return native.date
- elif sys.version_info [:2] >= (2, 3) and \
- isinstance (native, datetime.date):
+ elif isinstance (native, datetime.date):
return native.isoformat ()
else:
@@ -371,12 +368,10 @@
elif isinstance (native, mx.DateTime.DateTimeDeltaType):
return str (native)
- elif sys.version_info [:2] >= (2, 3) and \
- isinstance (native, datetime.time):
+ elif isinstance (native, datetime.time):
return native.isoformat ()
- elif sys.version_info [:2] >= (2, 3) and \
- isinstance (native, datetime.timedelta):
+ elif isinstance (native, datetime.timedelta):
return "%s" % native
else:
@@ -387,8 +382,7 @@
if isinstance (native, mx.DateTime.DateTimeType):
return str (native)
- elif sys.version_info [:2] >= (2, 3) and \
- isinstance (native, datetime.datetime):
+ elif isinstance (native, datetime.datetime):
return native.isoformat ()
else:
Modified: trunk/gnue-appserver/src/geasInstance.py
===================================================================
--- trunk/gnue-appserver/src/geasInstance.py 2005-08-20 04:19:03 UTC (rev
7871)
+++ trunk/gnue-appserver/src/geasInstance.py 2005-08-20 11:41:58 UTC (rev
7872)
@@ -22,16 +22,14 @@
# $Id$
import sys
+import datetime
import mx.DateTime
-import mx.DateTime.ISO
-if sys.version_info [:2] >= (2, 3):
- import datetime
-
from gnue import appserver
from gnue.appserver.language import Object, Session
from gnue.common.logic.language import getLanguageAdapter
from gnue.common.apps import errors
+from gnue.common.utils import GDateTime
# =============================================================================
# Exceptions
@@ -140,67 +138,61 @@
raise exception (propertydef.fullName, value)
elif propertydef.dbType == "date":
- # Date property: Must be an mx.DateTime or at least parseable as such
- if isinstance (value, unicode):
- value = mx.DateTime.ISO.ParseDateTime (value.encode ('utf-8') + \
- ' 00:00:00')
- elif isinstance (value, str):
- value = mx.DateTime.ISO.ParseDateTime (value + ' 00:00:00')
+ # Date property: Must be a datetime.date or at least parseable as such
+ if isinstance (value, basestring):
+ value = GDateTime.parseISO (value)
- elif isinstance (value, datetime.datetime):
- value = mx.DateTime.ISO.ParseDateTime ((value.date()).isoformat () \
- + ' 00:00:00')
+ if isinstance (value, datetime.datetime):
+ return value.date ()
elif isinstance (value, datetime.date):
- value = mx.DateTime.ISO.ParseDateTime (value.isoformat () + '
00:00:00')
+ return value
- if isinstance (value, mx.DateTime.DateTimeType):
- return mx.DateTime.DateTime (value.year, value.month, value.day,
- 0, 0, 0)
+ elif isinstance (value, mx.DateTime.DateTimeType):
+ return datetime.date (value.year, value.month, value.day)
+
else:
raise exception (propertydef.fullName, value)
elif propertydef.dbType == "time":
- # Time property: Must be an mx.DateTime or at least parseable as such
- if isinstance (value, unicode):
- value = mx.DateTime.ISO.ParseDateTime ('0001-01-01 ' + \
- value.encode ('utf-8'))
- elif isinstance (value, str):
- value = mx.DateTime.ISO.ParseDateTime ('0001-01-01 ' + value)
+ # Time property: Must be a datetime.time or at least parseable as such
+ if isinstance (value, basestring):
+ value = GDateTime.parseISO (value)
- elif isinstance (value, datetime.datetime):
- value = mx.DateTime.ISO.ParseDateTime ('0001-01-01 ' + \
- (value.time ()).isoformat ())
+ if isinstance (value, datetime.datetime):
+ return value.time ()
elif isinstance (value, datetime.time):
- value = mx.DateTime.ISO.ParseDateTime ('0001-01-01 ' + \
- value.isoformat ())
+ return value
+
elif isinstance (value, datetime.timedelta):
- value = datetime.datetime (1, 1, 1) + value
- value = mx.DateTime.ISO.ParseDateTime (value.isoformat ())
+ return (datetime.datetime (1, 1, 1) + value).time ()
- if isinstance (value, mx.DateTime.DateTimeType) or \
+ elif isinstance (value, mx.DateTime.DateTimeType) or \
isinstance (value, mx.DateTime.DateTimeDeltaType):
- return mx.DateTime.DateTime (1, 1, 1,
- value.hour, value.minute, value.second)
+ return datetime.time (value.hour, value.minute, int (value.second),
+ int ((value.second - int (value.second)) * 1000000))
+
else:
raise exception (propertydef.fullName, value)
elif propertydef.dbType == "datetime":
- # Date/Time property: Must be an mx.DateTime or at least parseable as
- # such
- if isinstance (value, unicode):
- return mx.DateTime.ISO.ParseDateTime (value.encode ('utf-8'))
+ # Date/Time property: Must be a datetime.datetime or at least parseable
+ # as such
+ if isinstance (value, basestring):
+ value = GDateTime.parseISO (value)
- elif isinstance (value, str):
- return mx.DateTime.ISO.ParseDateTime (value)
+ if isinstance (value, datetime.datetime):
+ return value
- elif sys.version_info [:2] >= (2, 3) and \
- isinstance (value, datetime.datetime):
- return mx.DateTime.ISO.ParseDateTime (value.isoformat ())
+ elif isinstance (value, datetime.date):
+ return datetime.datetime (value.year, value.month, value.day)
- if isinstance (value, mx.DateTime.DateTimeType):
- return value
+ elif isinstance (value, mx.DateTime.DateTimeType):
+ return datetime.datetime (value.year, value.month, value.day,
+ value.hour, value.minute, int (value.second),
+ int ((value.second - int (value.second)) * 1000000))
+
else:
raise exception (propertydef.fullName, value)
@@ -254,8 +246,21 @@
else:
value = record.getField (propertydef.column)
- return self.__convert (value, propertydef, DbValueError)
+ value = self.__convert (value, propertydef, DbValueError)
+ # FIXME: For compatibility, return mx.DateTime instead of datetime objects.
+ # Remove this for 0.5
+ if isinstance (value, datetime.datetime):
+ return mx.DateTime.DateTime (value.year, value.month, value.day,
+ value.hour, value.minute, value.second + value.microsecond / 1000000)
+ elif isinstance (value, datetime.date):
+ return mx.DateTime.DateTime (value.year, value.month, value.day, 0, 0, 0)
+ elif isinstance (value, datetime.time):
+ return mx.DateTime.DateTime (1, 1, 1, value.hour, value.minute,
+ value.second + value.microsecond / 1000000)
+ else:
+ return value
+
# ---------------------------------------------------------------------------
# Get the values of a list of properties
# ---------------------------------------------------------------------------
@@ -424,7 +429,7 @@
(datefield, userfield) = [('gnue_modifydate', 'gnue_modifyuser'),
('gnue_createdate', 'gnue_createuser')][creation]
if self.has_key (datefield):
- self.__putValue (datefield, mx.DateTime.now (), False)
+ self.__putValue (datefield, datetime.datetime.now (), False)
if self.has_key (userfield) and self.__session.user is not None:
self.__putValue (userfield, self.__session.user, False)
Modified: trunk/gnue-appserver/src/generator/classdef.py
===================================================================
--- trunk/gnue-appserver/src/generator/classdef.py 2005-08-20 04:19:03 UTC
(rev 7871)
+++ trunk/gnue-appserver/src/generator/classdef.py 2005-08-20 11:41:58 UTC
(rev 7872)
@@ -21,7 +21,7 @@
#
# $Id$
-import mx
+import datetime
from gnue.appserver import repository
from gnue.common.apps import errors
@@ -404,7 +404,8 @@
self.typecast = 'date'
self.inputmask = masks [typeId]
self.displaymask = masks [typeId]
- self.fieldLength = len (mx.DateTime.now ().strftime (self.displaymask))
+ self.fieldLength = \
+ len ((datetime.datetime.now ()).strftime (self.displaymask))
elif propDef.gnue_type == 'number':
self.typecast = 'number'
Modified: trunk/gnue-appserver/src/generator/form.py
===================================================================
--- trunk/gnue-appserver/src/generator/form.py 2005-08-20 04:19:03 UTC (rev
7871)
+++ trunk/gnue-appserver/src/generator/form.py 2005-08-20 11:41:58 UTC (rev
7872)
@@ -211,24 +211,13 @@
for item in self.__classDef.properties:
width.append (max (len (item.label), item.widgetWidth ()))
- if self.__sum (width) + len (width) - 1 <= self.__maxWidth:
+ if sum (width) + len (width) - 1 <= self.__maxWidth:
result = layout.Tabular
return result (self.__classDef, self.__maxWidth, self.__maxHeight)
# ---------------------------------------------------------------------------
- # Create the sum of a sequence of numbers
- # ---------------------------------------------------------------------------
-
- def __sum (self, *args):
- if sys.version_info [0:2] >= (2, 3):
- return sum (*args)
- else:
- return reduce (operator.add, *args)
-
-
- # ---------------------------------------------------------------------------
# Get an XML representation of all blocks and their fields
# ---------------------------------------------------------------------------
Modified: trunk/gnue-appserver/src/generator/layout.py
===================================================================
--- trunk/gnue-appserver/src/generator/layout.py 2005-08-20 04:19:03 UTC
(rev 7871)
+++ trunk/gnue-appserver/src/generator/layout.py 2005-08-20 11:41:58 UTC
(rev 7872)
@@ -342,7 +342,7 @@
result = 0
for (page, properties) in self._classdef.virtualPages:
- need = self.__sum ([i.minHeight or self._MIN_HEIGHT for i in properties])
+ need = sum ([i.minHeight or self._MIN_HEIGHT for i in properties])
# if the needed space exceeds the longest page possible, or a page
# contains stretchable items, use the maximum available space
@@ -355,18 +355,6 @@
# ---------------------------------------------------------------------------
- # Create the sum of a sequence of numbers
- # ---------------------------------------------------------------------------
-
- def __sum (self, *args):
-
- if sys.version_info [0:2] >= (2, 3):
- return sum (*args)
- else:
- return reduce (operator.add, *args)
-
-
- # ---------------------------------------------------------------------------
# Get the next set of properties for a given page
# ---------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7872 - in trunk/gnue-appserver/src: . generator,
reinhard <=