Xavier Nicolovici - 2004-06-10 - This patch remove the use of the 'datetime' Python module in the SyntacticEngine. This allow users of Python 2.2 to run the software (the 'datetime' module is avalaible in Python >= 2.3) diff -urNb pyatcron-0.1.0/src/lib/syntacticengine.py pyatcron-0.1.0-module-datetime-removed/src/lib/syntacticengine.py --- pyatcron-0.1.0/src/lib/syntacticengine.py 2004-04-29 14:58:51.000000000 +0200 +++ pyatcron-0.1.0-module-datetime-removed/src/lib/syntacticengine.py 2004-06-10 17:11:43.842779792 +0200 @@ -1,4 +1,3 @@ -import datetime import time @@ -14,27 +13,32 @@ # Determine when the task will occur next values = self.scheduler.getAttributes () - baseTimeStamp = time.time () - baseTime = datetime.datetime.fromtimestamp (baseTimeStamp) - nextTimeStamp = -1 + baseTimeStamp = time.time() + baseTime = time.gmtime(baseTimeStamp) + nextTimeStamp = -1 found = False - year = baseTime.year + year = baseTime.tm_year + while (not found): for month in values [3]: for day in values [2]: for weekday in values [4]: weekday = weekday - 1 + try: testTimeStamp = time.mktime ([year, month, day, - baseTime.hour, - baseTime.minute, - baseTime.second, + baseTime.tm_hour, + baseTime.tm_min, + baseTime.tm_sec, weekday, -1, -1]) + except OverflowError, ValueError: + return "Value outside of system limits" + testTimeStamp = testTimeStamp + 1 - test = datetime.datetime.fromtimestamp (testTimeStamp) + test = time.gmtime(testTimeStamp) - if (test.day != day or test.weekday () != weekday): + if (test.tm_mday != day or test.tm_wday != weekday): testTimeStamp = -1 if (testTimeStamp > 0): @@ -44,9 +48,9 @@ nextTimeStamp = testTimeStamp # Now we have the day, try to find a time - nextTime = datetime.datetime.fromtimestamp (nextTimeStamp) - if (nextTime.day == baseTime.day and - nextTime.month == baseTime.month and + nextTime = time.gmtime(nextTimeStamp) + if (nextTime.tm_mday == baseTime.tm_mday and + nextTime.tm_mon == baseTime.tm_mon and nextTime.year == baseTime.year): minMinute = baseTime.minute minHour = baseTime.hour @@ -56,19 +60,25 @@ hour = -1 for val in values [1]: - if (val >= minHour and (val < hour or hour < 0)): + if (val >= minHour and + (val < hour or hour < 0)): hour = val if (hour >= 0): minute = -1 for val in values [0]: - if ((val > minMinute or hour > minHour) and (val < minute or minute < 0)): + if ((val > minMinute or + hour > minHour) and + (val < minute or minute < 0)): minute = val if (minute >= 0): - nextTimeStamp = time.mktime ([nextTime.year, nextTime.month, - nextTime.day, hour, minute, - 0, nextTime.weekday (), -1, -1]) + nextTimeStamp = time.mktime( \ + [nextTime.tm_year, + nextTime.tm_mon, + nextTime.tm_mday, + hour, minute,0, + nextTime.tm_wday, -1, -1]) else: nextTimeStamp = -1 else: @@ -86,3 +96,4 @@ entryNextTime = "Never" return entryNextTime +