[jToolkit-cvs] jToolkit/data dates.py,1.10,1.11
Brought to you by:
davidfraser,
friedelwolff
From: <dav...@us...> - 2004-03-09 21:53:12
|
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 == '': |