utils.py
changeset 4737 64143d458495
parent 4693 1eaf5ce04844
child 4830 10e8bc190695
child 4833 41a78fb4107c
child 4859 f65208c9dbdc
equal deleted inserted replaced
4622:790181bfd19c 4737:64143d458495
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     7 """
     7 """
     8 __docformat__ = "restructuredtext en"
     8 __docformat__ = "restructuredtext en"
     9 
     9 
    10 from logilab.mtconverter import xml_escape
       
    11 
       
    12 import locale
       
    13 import sys
    10 import sys
    14 import decimal
    11 import decimal
    15 import datetime
    12 import datetime
    16 from md5 import md5
    13 import random
    17 from time import time
    14 
    18 from random import randint, seed
    15 from logilab.mtconverter import xml_escape
       
    16 from logilab.common.deprecation import deprecated
    19 
    17 
    20 # initialize random seed from current time
    18 # initialize random seed from current time
    21 seed()
    19 random.seed()
    22 
    20 
    23 if sys.version_info[:2] < (2, 5):
    21 if sys.version_info[:2] < (2, 5):
       
    22 
       
    23     from time import time
       
    24     from md5 import md5
       
    25     from random import randint
       
    26 
    24     def make_uid(key):
    27     def make_uid(key):
    25         """forge a unique identifier
    28         """forge a unique identifier
    26         not that unique on win32"""
    29         XXX not that unique on win32
    27         msg = str(key) + "%.10f" % time() + str(randint(0, 1000000))
    30         """
    28         return md5(msg).hexdigest()
    31         key = str(key)
       
    32         msg = key + "%.10f" % time() + str(randint(0, 1000000))
       
    33         return key + md5(msg).hexdigest()
       
    34 
    29 else:
    35 else:
       
    36 
    30     from uuid import uuid4
    37     from uuid import uuid4
       
    38 
    31     def make_uid(key):
    39     def make_uid(key):
    32         # remove dash, generated uid are used as identifier sometimes (sql table
    40         # remove dash, generated uid are used as identifier sometimes (sql table
    33         # names at least)
    41         # names at least)
    34         return str(key) + str(uuid4()).replace('-', '')
    42         return str(key) + str(uuid4()).replace('-', '')
    35 
    43 
   326                 return JSONEncoder.default(self, obj)
   334                 return JSONEncoder.default(self, obj)
   327             except TypeError:
   335             except TypeError:
   328                 # we never ever want to fail because of an unknown type,
   336                 # we never ever want to fail because of an unknown type,
   329                 # just return None in those cases.
   337                 # just return None in those cases.
   330                 return None
   338                 return None
       
   339 
       
   340 from logilab.common import date
       
   341 _THIS_MOD_NS = globals()
       
   342 for funcname in ('date_range', 'todate', 'todatetime', 'datetime2ticks',
       
   343                  'days_in_month', 'days_in_year', 'previous_month',
       
   344                  'next_month', 'first_day', 'last_day', 'ustrftime',
       
   345                  'strptime'):
       
   346     msg = '[3.6] %s has been moved to logilab.common.date' % funcname
       
   347     _THIS_MOD_NS[funcname] = deprecated(msg)(getattr(date, funcname))