Update of /cvsroot/jtoolkit/jToolkit/data
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9896
Modified Files:
dates.py
Log Message:
Added support in dates module for Python 2.3 datetime object (added a few wrapper classes, changed Format() calls to strftime() calls)
Index: dates.py
===================================================================
RCS file: /cvsroot/jtoolkit/jToolkit/data/dates.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** dates.py 9 Mar 2004 21:25:57 -0000 1.10
--- dates.py 9 Mar 2004 21:27:50 -0000 1.11
***************
*** 20,30 ****
try:
! import mxDateTime
! except ImportError:
! from DateTime import mxDateTime
from jToolkit import cidict
import sre
import time
# TODO: support Python 2.3 datetime
# see http://radio.weblogs.com/0124960/2003/09/11.html
--- 20,57 ----
try:
! import datetime
! PYTHON_DATETIME = 1
! except:
! PYTHON_DATETIME = 0
!
! if not PYTHON_DATETIME:
! try:
! import mxDateTime
! except ImportError:
! from DateTime import mxDateTime
!
! date = mxDateTime.DateTime
! currentdate = mxDateTime.now
! seconds = mxDateTime.DateTimeDeltaFromSeconds
! days = mxDateTime.DateTimeDeltaFromDays
! def datetimedelta(days=0, hours=0, minutes=0, seconds=0):
! return mxDateTime.DateTimeDelta(days, hours, minutes, seconds)
! else:
! date = datetime.datetime
! currentdate = datetime.datetime.now
! datetimedelta = datetime.timedelta
! class seconds(datetime.timedelta):
! def __init__(self, seconds = 0):
! datetime.timedelta.__init__(self, seconds=seconds)
!
! class days(datetime.timedelta):
! def __init__(self, days = 0):
! datetime.timedelta.__init__(self, days=days)
!
from jToolkit import cidict
import sre
import time
+
# TODO: support Python 2.3 datetime
# see http://radio.weblogs.com/0124960/2003/09/11.html
***************
*** 46,53 ****
errortimetype = None
- date = mxDateTime.DateTime
- currentdate = mxDateTime.now
- seconds = mxDateTime.DateTimeDeltaFromSeconds
- days = mxDateTime.DateTimeDeltaFromDays
class ParseError(ValueError):
--- 73,76 ----
***************
*** 77,81 ****
if value is None:
del g[key]
! now = currentdate().tuple()
Y, M, D, h, m, s = [g.get(field,"0") for field in 'Y','M','D','h','m','s']
# for two-digit years, get closest year
--- 100,107 ----
if value is None:
del g[key]
! if PYTHON_DATETIME:
! now = currentdate().timetuple()
! else:
! now = currentdate().tuple()
Y, M, D, h, m, s = [g.get(field,"0") for field in 'Y','M','D','h','m','s']
# for two-digit years, get closest year
***************
*** 107,117 ****
def dbdatestring(obj,dbtype):
if dbtype == 'oracle':
! return "to_date('"+obj.Format("%Y-%m-%d %H:%M:%S")+"','yyyy-mm-dd hh24:mi:ss')"
elif dbtype == 'sqlserver':
! return "'"+obj.Format("%Y-%m-%d %H:%M:%S")+"'"
elif dbtype == 'access':
! return "#"+obj.Format("%Y-%m-%d %H:%M:%S")+"#"
elif dbtype == 'postgres':
! return "to_timestamp('"+obj.Format("%Y-%m-%d %H:%M:%S")+"','yyyy-mm-dd hh24:mi:ss')"
else:
raise ValueError, "unknown dbtype %r" % dbtype
--- 133,143 ----
def dbdatestring(obj,dbtype):
if dbtype == 'oracle':
! return "to_date('"+obj.strftime("%Y-%m-%d %H:%M:%S")+"','yyyy-mm-dd hh24:mi:ss')"
elif dbtype == 'sqlserver':
! return "'"+obj.strftime("%Y-%m-%d %H:%M:%S")+"'"
elif dbtype == 'access':
! return "#"+obj.strftime("%Y-%m-%d %H:%M:%S")+"#"
elif dbtype == 'postgres':
! return "to_timestamp('"+obj.strftime("%Y-%m-%d %H:%M:%S")+"','yyyy-mm-dd hh24:mi:ss')"
else:
raise ValueError, "unknown dbtype %r" % dbtype
***************
*** 126,132 ****
def dbrepr(self):
return dbdatestring(self.obj,self.dbtype)
! def Format(self,*args):
"""allow passthrough to underlying object's Format method"""
! return self.obj.Format(*args)
# generally used date formats
--- 152,158 ----
def dbrepr(self):
return dbdatestring(self.obj,self.dbtype)
! def strftime(self,*args):
"""allow passthrough to underlying object's Format method"""
! return self.obj.strftime(*args)
# generally used date formats
***************
*** 190,194 ****
if type(value) == errortimetype:
value = date(value.year, value.month, value.day, value.hour, value.minute, value.second)
! return value.Format(dateformat)
# handle null values
elif value is None or value == '':
--- 216,220 ----
if type(value) == errortimetype:
value = date(value.year, value.month, value.day, value.hour, value.minute, value.second)
! return value.strftime(dateformat)
# handle null values
elif value is None or value == '':
|