diff -r 26387b836099 -r bb96289257bf utils.py --- a/utils.py Tue Mar 10 11:35:52 2009 +0100 +++ b/utils.py Tue Mar 10 15:17:40 2009 +0100 @@ -8,9 +8,12 @@ import locale from md5 import md5 -from datetime import datetime, timedelta +from datetime import datetime, timedelta, date from time import time from random import randint, seed + +# initialize random seed from current time +seed() try: strptime = datetime.strptime @@ -18,23 +21,14 @@ from time import strptime as time_strptime def strptime(value, format): return datetime(*time_strptime(value, format)[:6]) - -# initialize random seed from current time -seed() - -def make_uid(key): - """forge a unique identifier""" - msg = str(key) + "%.10f"%time() + str(randint(0, 1000000)) - return md5(msg).hexdigest() -def working_hours(mxdate): - """ - Predicate returning True is the date's hour is in working hours (8h->20h) - """ - if mxdate.hour > 7 and mxdate.hour < 21: - return True - return False - +def todate(somedate): + """return a date from a date (leaving unchanged) or a datetime""" + if isinstance(somedate, datetime): + return date(somedate.year, somedate.month, somedate.day) + assert isinstance(somedate, date) + return date + def date_range(begin, end, incr=1, include=None): """yields each date between begin and end :param begin: the start date @@ -62,6 +56,11 @@ encoding = locale.getpreferredencoding(do_setlocale=False) or 'UTF-8' return unicode(date.strftime(fmt), encoding) +def make_uid(key): + """forge a unique identifier""" + msg = str(key) + "%.10f"%time() + str(randint(0, 1000000)) + return md5(msg).hexdigest() + def dump_class(cls, clsname): """create copy of a class by creating an empty class inheriting