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

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. 

14 

15"""Load age of air recipes.""" 

16 

17import itertools 

18 

19from CSET.recipes import Config, RawRecipe, get_models 

20 

21 

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()) 

26 

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 )