Skip to content

Commit 562f6a2

Browse files
committed
Accept None for Date[time]Picker widgets
While hard to reproduce, there has been some reports about this being an issue, so we make an explicit check to cover this case.
1 parent 2b2cc27 commit 562f6a2

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

python/ipywidgets/ipywidgets/widgets/widget_date.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ class DatePicker(DescriptionWidget, ValueWidget, CoreWidget):
5454
def _validate_value(self, proposal):
5555
"""Cap and floor value"""
5656
value = proposal["value"]
57+
if value is None:
58+
return value
5759
if self.min and self.min > value:
5860
value = max(value, self.min)
5961
if self.max and self.max < value:
@@ -64,6 +66,8 @@ def _validate_value(self, proposal):
6466
def _validate_min(self, proposal):
6567
"""Enforce min <= value <= max"""
6668
min = proposal["value"]
69+
if min is None:
70+
return min
6771
if self.max and min > self.max:
6872
raise TraitError("Setting min > max")
6973
if self.value and min > self.value:
@@ -74,6 +78,8 @@ def _validate_min(self, proposal):
7478
def _validate_max(self, proposal):
7579
"""Enforce min <= value <= max"""
7680
max = proposal["value"]
81+
if max is None:
82+
return max
7783
if self.min and max < self.min:
7884
raise TraitError("setting max < min")
7985
if self.value and max < self.value:

python/ipywidgets/ipywidgets/widgets/widget_datetime.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ def _validate_tz(self, value):
6161
def _validate_value(self, proposal):
6262
"""Cap and floor value"""
6363
value = proposal["value"]
64+
if value is None:
65+
return value
6466
value = self._validate_tz(value)
6567
if self.min and self.min > value:
6668
value = max(value, self.min)
@@ -72,6 +74,8 @@ def _validate_value(self, proposal):
7274
def _validate_min(self, proposal):
7375
"""Enforce min <= value <= max"""
7476
min = proposal["value"]
77+
if min is None:
78+
return min
7579
min = self._validate_tz(min)
7680
if self.max and min > self.max:
7781
raise TraitError("Setting min > max")
@@ -83,6 +87,8 @@ def _validate_min(self, proposal):
8387
def _validate_max(self, proposal):
8488
"""Enforce min <= value <= max"""
8589
max = proposal["value"]
90+
if max is None:
91+
return max
8692
max = self._validate_tz(max)
8793
if self.min and max < self.min:
8894
raise TraitError("setting max < min")

0 commit comments

Comments
 (0)