Skip to content

Commit 297571e

Browse files
committed
Fix mypy checks
1 parent 873e14c commit 297571e

File tree

2 files changed

+40
-25
lines changed

2 files changed

+40
-25
lines changed

src/penn_chime/parameters.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
)
1313
from collections import namedtuple
1414
from datetime import date, datetime
15-
from typing import Dict
15+
from typing import Dict, List
1616

1717
from .constants import (
1818
CHANGE_DATE,
@@ -48,17 +48,17 @@
4848
# Be sure to multiply by 100 when using the parameter as a default to a percent widget!
4949

5050

51-
Disposition = namedtuple("Disposition", ("days", "rate"))
51+
_Disposition = namedtuple("_Disposition", ("days", "rate"))
5252

5353

54-
def _create_disposition(*, days: int, rate: float):
55-
"""Mandate key word arguments."""
56-
Positive(key='days', value=days)
57-
Rate(key='rate', value=rate)
58-
return Disposition(days, rate)
54+
class Disposition(_Disposition):
5955

60-
61-
Disposition.create = _create_disposition
56+
@classmethod
57+
def create(cls, *, days: int, rate: float):
58+
"""Mandate key word arguments."""
59+
Positive(key='days', value=days)
60+
Rate(key='rate', value=rate)
61+
return cls(days, rate)
6262

6363

6464
class Regions:
@@ -230,23 +230,29 @@ def create(
230230

231231
def __init__(self, **kwargs):
232232
today = date.today()
233-
passed_and_default_parameters = {}
234-
for key, value in kwargs.items():
235-
if key not in ACCEPTED_PARAMETERS:
236-
raise ValueError(f"Unexpected parameter {key}")
237-
passed_and_default_parameters[key] = value
238233

239234
self.current_date = None
235+
self.current_hospitalized = None
236+
self.date_first_hospitalized = None
237+
self.doubling_time = None
240238
self.hospitalized = None
241239
self.icu = None
240+
self.infectious_days = None
241+
self.market_share = None
242242
self.max_y_axis = None
243243
self.mitigation_date = None
244+
self.n_days = None
244245
self.population = None
245246
self.region = None
247+
self.relative_contact_rate = None
248+
self.recovered = None
246249
self.ventilated = None
247250

248-
for key in ACCEPTED_PARAMETERS:
249-
setattr(self, key, None)
251+
passed_and_default_parameters = {}
252+
for key, value in kwargs.items():
253+
if key not in ACCEPTED_PARAMETERS:
254+
raise ValueError(f"Unexpected parameter {key}")
255+
passed_and_default_parameters[key] = value
250256

251257
for key, value in passed_and_default_parameters.items():
252258
validator = ACCEPTED_PARAMETERS[key][0]

src/penn_chime/validators/__init__.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
"""the callable validator design pattern"""
22

3-
from .validators import EPSILON, OptionalValue, Bounded, OptionalBounded, Rate, Date, OptionalDate, ValDisposition
3+
from ..constants import EPSILON
4+
from .validators import (
5+
OptionalValue as ValOptionalValue,
6+
Bounded as ValBounded,
7+
OptionalBounded as ValOptionalBounded,
8+
Rate as ValRate,
9+
Date as ValDate,
10+
OptionalDate as ValOptionalDate,
11+
ValDisposition as ValValDisposition,
12+
)
413

5-
OptionalValue = OptionalValue()
6-
OptionalStrictlyPositive = OptionalBounded(lower_bound=EPSILON)
7-
StrictlyPositive = Bounded(lower_bound=EPSILON)
8-
Positive = Bounded(lower_bound=-EPSILON)
9-
Rate = Rate() # type: ignore
10-
Date = Date() # type: ignore
11-
OptionalDate = OptionalDate() # type: ignore
12-
ValDisposition = ValDisposition()
14+
OptionalValue = ValOptionalValue()
15+
OptionalStrictlyPositive = ValOptionalBounded(lower_bound=EPSILON)
16+
StrictlyPositive = ValBounded(lower_bound=EPSILON)
17+
Positive = ValBounded(lower_bound=-EPSILON)
18+
Rate = ValRate()
19+
Date = ValDate()
20+
OptionalDate = ValOptionalDate()
21+
ValDisposition = ValValDisposition()
1322
# # rolling a custom validator for doubling time in case DS wants to add upper bound
1423
# DoublingTime = OptionalBounded(lower_bound=0-EPSILON, upper_bound=None)

0 commit comments

Comments
 (0)