Skip to content

Commit a8122e0

Browse files
committed
tidy up
1 parent 92e8b42 commit a8122e0

File tree

1 file changed

+36
-18
lines changed
  • src/nwp_consumer/internal/repositories/raw_repositories

1 file changed

+36
-18
lines changed

src/nwp_consumer/internal/repositories/raw_repositories/mo_datahub.py

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,40 @@
123123

124124
log = logging.getLogger("nwp-consumer")
125125

126-
# List of available model names
127-
available_models_names = [
128-
"default",
129-
"um-global-10km-india",
130-
"um-global-10km-uk",
131-
"um-ukv-2km",
132-
]
126+
class AvailableModel:
127+
"""Class to hold information about an available model."""
128+
name: str
129+
delay_minute: int
130+
model: entities.ModelMetadata
131+
132+
def __init__(self, name: str, delay_minute: int, model: entities.ModelMetadata) -> None:
133+
"""Create a new instance."""
134+
self.name = name
135+
self.delay_minute = delay_minute
136+
self.model = model
137+
138+
# set up the available models
139+
available_models = []
140+
available_models.append(AvailableModel(name="default",
141+
delay_minute=300,
142+
model=entities.Models.MO_UM_GLOBAL_10KM.with_region("india")))
143+
available_models.append(AvailableModel(name="um-global-10km-india",
144+
delay_minute=300,
145+
model=entities.Models.MO_UM_GLOBAL_10KM.with_region("india")))
146+
available_models.append(AvailableModel(name="um-global-10km-uk",
147+
delay_minute=300,
148+
model=entities.Models.MO_UM_GLOBAL_10KM.with_region("uk")))
149+
available_models.append(AvailableModel(name="um-ukv-2km",
150+
delay_minute=120,
151+
model=entities.Models.MO_UM_UKV_2KM_LAEA))
152+
153+
# get all model names
154+
available_models_names = [m.name for m in available_models]
155+
# get dict of delay minutes by model name
156+
delay_minutes_dict = {m.name: m.delay_minute for m in available_models}
157+
# get dict of model metadata by model name
158+
models_dict = {m.name: m.model for m in available_models}
159+
133160

134161

135162
class MetOfficeDatahubRawRepository(ports.RawRepository):
@@ -161,27 +188,18 @@ def __init__(self, order_id: str, api_key: str) -> None:
161188
@override
162189
def repository() -> entities.RawRepositoryMetadata:
163190

164-
delay_minutes_all = {"default": 300,
165-
"um-global-10km-india": 300,
166-
"um-global-10km-uk":300,
167-
"um-ukv-2km": 120}
168191
requested_model: str = get_requested_model_name()
169192

170193
return entities.RawRepositoryMetadata(
171194
name="MetOffice-Weather-Datahub",
172195
is_archive=False,
173196
is_order_based=True,
174-
delay_minutes=delay_minutes_all[requested_model],
197+
delay_minutes=delay_minutes_dict[requested_model],
175198
max_connections=10,
176199
required_env=["METOFFICE_API_KEY", "METOFFICE_ORDER_ID"],
177200
optional_env={"METOFFICE_DATASPEC": "1.1.0"},
178201
postprocess_options=entities.PostProcessOptions(),
179-
available_models={
180-
"default": entities.Models.MO_UM_GLOBAL_10KM.with_region("india"),
181-
"um-global-10km-india": entities.Models.MO_UM_GLOBAL_10KM.with_region("india"),
182-
"um-global-10km-uk": entities.Models.MO_UM_GLOBAL_10KM.with_region("uk"),
183-
"um-ukv-2km": entities.Models.MO_UM_UKV_2KM_LAEA,
184-
},
202+
available_models=models_dict,
185203
)
186204

187205
@staticmethod

0 commit comments

Comments
 (0)