|
12 | 12 | )
|
13 | 13 | from collections import namedtuple
|
14 | 14 | from datetime import date, datetime
|
15 |
| -from typing import Dict |
| 15 | +from typing import Dict, List |
16 | 16 |
|
17 | 17 | from .constants import (
|
18 | 18 | CHANGE_DATE,
|
|
48 | 48 | # Be sure to multiply by 100 when using the parameter as a default to a percent widget!
|
49 | 49 |
|
50 | 50 |
|
51 |
| -Disposition = namedtuple("Disposition", ("days", "rate")) |
| 51 | +_Disposition = namedtuple("_Disposition", ("days", "rate")) |
52 | 52 |
|
53 | 53 |
|
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): |
59 | 55 |
|
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) |
62 | 62 |
|
63 | 63 |
|
64 | 64 | class Regions:
|
@@ -230,23 +230,29 @@ def create(
|
230 | 230 |
|
231 | 231 | def __init__(self, **kwargs):
|
232 | 232 | 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 |
238 | 233 |
|
239 | 234 | self.current_date = None
|
| 235 | + self.current_hospitalized = None |
| 236 | + self.date_first_hospitalized = None |
| 237 | + self.doubling_time = None |
240 | 238 | self.hospitalized = None
|
241 | 239 | self.icu = None
|
| 240 | + self.infectious_days = None |
| 241 | + self.market_share = None |
242 | 242 | self.max_y_axis = None
|
243 | 243 | self.mitigation_date = None
|
| 244 | + self.n_days = None |
244 | 245 | self.population = None
|
245 | 246 | self.region = None
|
| 247 | + self.relative_contact_rate = None |
| 248 | + self.recovered = None |
246 | 249 | self.ventilated = None
|
247 | 250 |
|
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 |
250 | 256 |
|
251 | 257 | for key, value in passed_and_default_parameters.items():
|
252 | 258 | validator = ACCEPTED_PARAMETERS[key][0]
|
|
0 commit comments