equal
deleted
inserted
replaced
9 |
9 |
10 from logilab.mtconverter import xml_escape |
10 from logilab.mtconverter import xml_escape |
11 |
11 |
12 import locale |
12 import locale |
13 from md5 import md5 |
13 from md5 import md5 |
|
14 import datetime as pydatetime |
14 from datetime import datetime, timedelta, date |
15 from datetime import datetime, timedelta, date |
15 from time import time, mktime |
16 from time import time, mktime |
16 from random import randint, seed |
17 from random import randint, seed |
17 from calendar import monthrange |
18 from calendar import monthrange |
|
19 import decimal |
|
20 |
|
21 import simplejson |
18 |
22 |
19 # initialize random seed from current time |
23 # initialize random seed from current time |
20 seed() |
24 seed() |
21 try: |
25 try: |
22 strptime = datetime.strptime |
26 strptime = datetime.strptime |
346 print e |
350 print e |
347 __answer[0] = False |
351 __answer[0] = False |
348 return False |
352 return False |
349 __answer[0] = True |
353 __answer[0] = True |
350 return True |
354 return True |
|
355 |
|
356 |
|
357 class CubicWebJsonEncoder(simplejson.JSONEncoder): |
|
358 """define a simplejson encoder to be able to encode yams std types""" |
|
359 def default(self, obj): |
|
360 if isinstance(obj, pydatetime.datetime): |
|
361 return obj.strftime('%Y/%m/%d %H:%M:%S') |
|
362 elif isinstance(obj, pydatetime.date): |
|
363 return obj.strftime('%Y/%m/%d') |
|
364 elif isinstance(obj, pydatetime.time): |
|
365 return obj.strftime('%H:%M:%S') |
|
366 elif isinstance(obj, decimal.Decimal): |
|
367 return float(obj) |
|
368 try: |
|
369 return simplejson.JSONEncoder.default(self, obj) |
|
370 except TypeError: |
|
371 # we never ever want to fail because of an unknown type, |
|
372 # just return None in those cases. |
|
373 return None |