DatePickerCtrl crashes on windows - Invalid date in wxDateTime::Set()

Hi,

I’m trying to use a DatePickerCtrl, but I cannot create one unless I use the style DP_ALLOWNONE.

The only way I can use one is if I set DP_ALLOWNONE, and then use SetRange. Otherwise it crashes the app with:

wx._core.PyAssertionError: C++ assertion “(0 < day) && (day <= GetNumberOfDays(month, year))” failed at …\src\common\datetime.cpp(1221) in wxDateTime::Set(): Invalid date in wxDateTime::Set()

import wx

app = wx.App()
frame = wx.Frame(parent=None, title=‘Test’)

Crashes

wx.DatePickerCtrl(frame, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition,
wx.Size( 105, -1 ), wx.DP_DROPDOWN)

Crashes

wx.DatePickerCtrl(frame, wx.ID_ANY, wx.DateTimeFromDMY(1, wx.DateTime.Jan, 2010),
wx.DefaultPosition, wx.Size( 105, -1 ),
wx.DP_DROPDOWN|wx.DP_ALLOWNONE)

OK

dp = wx.DatePickerCtrl(frame, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition,
wx.Size( 105, -1 ), wx.DP_DROPDOWN|wx.DP_ALLOWNONE)

But then setting any value crashes

dp.SetValue(wx.DateTimeFromDMY(1, wx.DateTime.Jan, 2010))

However, if we set range first

dp.SetRange(wx.DateTimeFromDMY(1, wx.DateTime.Jan, 2000), wx.DefaultDateTime)

Then it’s OK

dp.SetValue(wx.DateTimeFromDMY(1, wx.DateTime.Jan, 2010))

frame.Show(True)
app.MainLoop()

``

Everything worked fine in wxPython 2.8. I tried 3.0.2 and 3.0.3 and get the same results. It works fine on Linux.

Also,I’m using Python 2.7.

Does anyone have any idea on how I can work around this?

Thanks