Coverage for src/CSET/loaders/aoa.py: 55%
7 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-05 21:08 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-05 21:08 +0000
1# © Crown copyright, Met Office (2022-2025) and CSET contributors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
15"""Load age of air recipes."""
17import itertools
19from CSET.recipes import Config, RawRecipe, get_models
22def load(conf: Config):
23 """Yield recipes from the given workflow configuration."""
24 # Load a list of model detail dictionaries.
25 models = get_models(conf.asdict())
27 # Age of air diagnostic
28 if conf.AOA_DIAG: 28 ↛ 29line 28 didn't jump to line 29 because the condition on line 28 was never true
29 for model, plev in itertools.product(models, conf.AOA_PLEV):
30 yield RawRecipe(
31 recipe="ageofair.yaml",
32 variables={
33 "AOA_PLEV": plev,
34 "AOA_CYCLIC": conf.AOA_CYCLIC,
35 "MODEL_NAME": model["name"],
36 "SUBAREA_TYPE": conf.SUBAREA_TYPE if conf.SELECT_SUBAREA else None,
37 "SUBAREA_EXTENT": conf.SUBAREA_EXTENT
38 if conf.SELECT_SUBAREA
39 else None,
40 },
41 model_ids=model["id"],
42 aggregation=False,
43 )