diff -r 17ff4d4bfbd0 -r 544609e83317 goa/__init__.py --- a/goa/__init__.py Mon Mar 23 13:07:26 2009 +0100 +++ b/goa/__init__.py Mon Mar 23 17:38:30 2009 +0100 @@ -1,69 +1,12 @@ """cubicweb on google appengine :organization: Logilab -:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr """ __docformat__ = "restructuredtext en" -from datetime import datetime, time, date -from mx.DateTime import DateTime, Date, Time - -def mx2datetime(mxobj, yamstype): - """converts a mx date object (DateTime, Date or Time) into a - regular python datetime object - """ - #if yamstype == 'Datetime': - # don't use date, db model doesn't actually support it, only datetime - return datetime(mxobj.year, mxobj.month, mxobj.day, - mxobj.hour, mxobj.minute, int(mxobj.second)) -# elif yamstype == 'Date': -# return date(mxobj.year, mxobj.month, mxobj.day) -# # XXX don't support time either, what should we do here ? -# return time(mxobj.hour, mxobj.minute, int(mxobj.second)) - -def datetime2mx(datetimeobj, yamstype=None): - """converts a mx date object (DateTime, Date or Time) into a - regular python datetime object - """ - if yamstype is None: - yamstype = guess_yamstype_for_date(datetimeobj) - assert yamstype is not None - if yamstype == 'Datetime': - # don't use date, db model doesn't actually support it, only datetime - return DateTime(datetimeobj.year, datetimeobj.month, datetimeobj.day, - datetimeobj.hour, datetimeobj.minute, int(datetimeobj.second)) - elif yamstype == 'Date': - return Date(datetimeobj.year, datetimeobj.month, datetimeobj.day) - # XXX don't support time either, what should we do here ? - return Time(datetimeobj.hour, datetimeobj.minute, int(datetimeobj.second)) - - -def guess_yamstype_for_date(datetimeobj): - """guesses yams correct type according to `datetimeobj`'s type""" - if isinstance(datetimeobj, datetime): - return 'Datetime' - elif isinstance(datetimeobj, date): - return 'Date' - elif isinstance(datetimeobj, time): - return 'Time' - return None - - -def use_mx_for_dates(func): - """decorator to convert func's return value into mx objects - instead of datetime objects - """ - def wrapper(*args, **kwargs): - value = func(*args, **kwargs) - yamstype = guess_yamstype_for_date(value) - if yamstype is None: - return value - return datetime2mx(value, yamstype) - return wrapper - - try: # WARNING: do not import the google's db module here since it will take # precedence over our own db submodule