Skip to content

Commit 6ea4cd8

Browse files
committed
Make all the non-OptionalFoo validators explcitly check for None, to get cleaner error reports
1 parent ad577e6 commit 6ea4cd8

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/penn_chime/parameters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def __init__(self, **kwargs):
8585
try:
8686
validator(value=value)
8787
except (TypeError, ValueError) as ve:
88-
raise ValueError(f"For parameter {key}, with value {value}, validation returned error \"{ve}\"")
88+
raise ValueError(f"For parameter '{key}', with value '{value}', validation returned error \"{ve}\"")
8989
setattr(self, key, value)
9090

9191
if self.region is None and self.population is None:

src/penn_chime/validators/validators.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ def __init__(
3232

3333
def validate(self, value):
3434
"""This method implicitly validates isinstance(value, (float, int)) because it will throw a TypeError on comparison"""
35+
if value is None:
36+
raise ValueError(f"This parameter must be set")
3537
if (self.upper_bound is not None and value > self.upper_bound) \
3638
or (self.lower_bound is not None and value < self.lower_bound):
3739
raise ValueError(f"{value} needs to be {self.message[(self.lower_bound, self.upper_bound)]}.")
@@ -56,6 +58,8 @@ def __init__(self) -> None:
5658
pass
5759

5860
def validate(self, value):
61+
if value is None:
62+
raise ValueError(f"This parameter must be set")
5963
if 0 > value or value > 1:
6064
raise ValueError(f"{value} needs to be a rate (i.e. in [0,1]).")
6165

@@ -65,6 +69,8 @@ def __init__(self) -> None:
6569
pass
6670

6771
def validate(self, value):
72+
if value is None:
73+
raise ValueError(f"This parameter must be set")
6874
if not isinstance(value, (date, datetime)):
6975
raise (ValueError(f"{value} must be a date or datetime object."))
7076

@@ -82,5 +88,7 @@ def __init__(self) -> None:
8288
pass
8389

8490
def validate(self, value):
91+
if value is None:
92+
raise ValueError(f"This parameter must be set")
8593
Bounded(lower_bound=EPSILON)(value=value.days)
8694
Rate()(value=value.rate)

0 commit comments

Comments
 (0)