From 50b42eefc4345b832a9c1ed1d08434cfe0a4d551 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 13 Sep 2004 23:18:17 +0000 Subject: [PATCH] check that the wxDateTime is valid before converting to datetime git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/src/calendar.i | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/wxPython/src/calendar.i b/wxPython/src/calendar.i index e9bfb8bc4d..b28a58bf7a 100644 --- a/wxPython/src/calendar.i +++ b/wxPython/src/calendar.i @@ -122,11 +122,11 @@ public: %pythoncode { def PySetDate(self, date): """takes datetime.datetime or datetime.date object""" - self.SetDate(_py2wx(date)) + self.SetDate(_pydate2wxdate(date)) def PyGetDate(self): """returns datetime.date object""" - return _wx2py(self.GetDate()) + return _wxdate2pydate(self.GetDate()) } }; @@ -422,19 +422,19 @@ The result codes are: %pythoncode { def PySetDate(self, date): """takes datetime.datetime or datetime.date object""" - self.SetDate(_py2wx(date)) + self.SetDate(_pydate2wxdate(date)) def PyGetDate(self): """returns datetime.date object""" - return _wx2py(self.GetDate()) + return _wxdate2pydate(self.GetDate()) def PySetLowerDateLimit(self, date): """takes datetime.datetime or datetime.date object""" - self.SetLowerDateLimit(_py2wx(date)) + self.SetLowerDateLimit(_pydate2wxdate(date)) def PySetUpperDateLimit(self, date): """takes datetime.datetime or datetime.date object""" - self.SetUpperDateLimit(_py2wx(date)) + self.SetUpperDateLimit(_pydate2wxdate(date)) def PySetDateRange(self, lowerdate, upperdate): """takes datetime.datetime or datetime.date objects""" @@ -443,27 +443,30 @@ The result codes are: def PyGetLowerDateLimit(self): """returns datetime.date object""" - return _wx2py(self.GetLowerDateLimit()) + return _wxdate2pydate(self.GetLowerDateLimit()) def PyGetUpperDateLimit(self): """returns datetime.date object""" - return _wx2py(self.GetUpperDateLimit()) + return _wxdate2pydate(self.GetUpperDateLimit()) } }; %pythoncode { -def _py2wx(date): +def _pydate2wxdate(date): import datetime assert isinstance(date, (datetime.datetime, datetime.date)) tt = date.timetuple() dmy = (tt[2], tt[1]-1, tt[0]) return wx.DateTimeFromDMY(*dmy) -def _wx2py(date): +def _wxdate2pydate(date): import datetime assert isinstance(date, wx.DateTime) - ymd = map(int, date.FormatISODate().split('-')) - return datetime.date(*ymd) + if date.IsValid(): + ymd = map(int, date.FormatISODate().split('-')) + return datetime.date(*ymd) + else: + return None } //--------------------------------------------------------------------------- -- 2.45.2