utils.py
changeset 2009 b1e2b9e4c809
parent 1977 606923dff11b
child 2258 79bc598c6411
equal deleted inserted replaced
2008:640a59bf5c68 2009:b1e2b9e4c809
     8 __docformat__ = "restructuredtext en"
     8 __docformat__ = "restructuredtext en"
     9 
     9 
    10 import locale
    10 import locale
    11 from md5 import md5
    11 from md5 import md5
    12 from datetime import datetime, timedelta, date
    12 from datetime import datetime, timedelta, date
    13 from time import time
    13 from time import time, mktime
    14 from random import randint, seed
    14 from random import randint, seed
    15 from calendar import monthrange
    15 from calendar import monthrange
    16 
    16 
    17 # initialize random seed from current time
    17 # initialize random seed from current time
    18 seed()
    18 seed()
    35     # take care, datetime is a subclass of date
    35     # take care, datetime is a subclass of date
    36     if isinstance(somedate, datetime):
    36     if isinstance(somedate, datetime):
    37         return somedate
    37         return somedate
    38     assert isinstance(somedate, date), repr(somedate)
    38     assert isinstance(somedate, date), repr(somedate)
    39     return datetime(somedate.year, somedate.month, somedate.day)
    39     return datetime(somedate.year, somedate.month, somedate.day)
       
    40 
       
    41 def datetime2ticks(date):
       
    42     return mktime(date.timetuple()) * 1000
    40 
    43 
    41 ONEDAY = timedelta(days=1)
    44 ONEDAY = timedelta(days=1)
    42 ONEWEEK = timedelta(days=7)
    45 ONEWEEK = timedelta(days=7)
    43 
    46 
    44 def days_in_month(date_):
    47 def days_in_month(date_):
    98     encoding = locale.getpreferredencoding(do_setlocale=False) or 'UTF-8'
   101     encoding = locale.getpreferredencoding(do_setlocale=False) or 'UTF-8'
    99     return unicode(date.strftime(str(fmt)), encoding)
   102     return unicode(date.strftime(str(fmt)), encoding)
   100 
   103 
   101 def make_uid(key):
   104 def make_uid(key):
   102     """forge a unique identifier"""
   105     """forge a unique identifier"""
   103     msg = str(key) + "%.10f"%time() + str(randint(0, 1000000))
   106     msg = str(key) + "%.10f" % time() + str(randint(0, 1000000))
   104     return md5(msg).hexdigest()
   107     return md5(msg).hexdigest()
   105 
   108 
   106 
   109 
   107 def dump_class(cls, clsname):
   110 def dump_class(cls, clsname):
   108     """create copy of a class by creating an empty class inheriting
   111     """create copy of a class by creating an empty class inheriting