Coverage report: 94%

Files Functions Classes

coverage.py v7.12.0, created at 2025-11-28 16:33 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src / CSET / __init__.py main   100% 19 0 0   100% 4 0   100%
src / CSET / __init__.py setup_argument_parser   100% 26 0 0   100% 0 0   100%
src / CSET / __init__.py setup_logging   100% 16 0 0   100% 4 0   100%
src / CSET / __init__.py setup_logging.NoFontMessageFilter.filter   100% 1 0 0   100% 0 0   100%
src / CSET / __init__.py _bake_command   100% 5 0 0   100% 0 0   100%
src / CSET / __init__.py _graph_command   100% 2 0 0   100% 0 0   100%
src / CSET / __init__.py _cookbook_command   80% 10 2 0   100% 4 0   86%
src / CSET / __init__.py _extract_workflow_command   100% 2 0 0   100% 0 0   100%
src / CSET / __init__.py (no function)   100% 15 0 0   100% 0 0   100%
src / CSET / _common.py parse_recipe   100% 16 0 0   100% 6 0   100%
src / CSET / _common.py check_recipe_has_steps   100% 9 0 0   100% 6 0   100%
src / CSET / _common.py slugify   100% 1 0 0   100% 0 0   100%
src / CSET / _common.py get_recipe_metadata   100% 8 0 0   100% 0 0   100%
src / CSET / _common.py parse_variable_options   100% 24 0 0   100% 10 0   100%
src / CSET / _common.py template_variables   100% 11 0 0   100% 10 0   100%
src / CSET / _common.py replace_template_variable   100% 13 0 0   100% 10 0   100%
src / CSET / _common.py render   100% 6 0 0   100% 2 0   100%
src / CSET / _common.py render.isidentifier   100% 1 0 0   100% 0 0   100%
src / CSET / _common.py render.extract_placeholders   100% 3 0 0   100% 0 0   100%
src / CSET / _common.py render.substitute_placeholder   100% 6 0 0   100% 0 0   100%
src / CSET / _common.py render_file   100% 3 0 0   100% 0 0   100%
src / CSET / _common.py iter_maybe   100% 3 0 0   100% 2 0   100%
src / CSET / _common.py human_sorted   100% 2 0 0   100% 0 0   100%
src / CSET / _common.py human_sorted.alphanum_key   100% 4 0 0   100% 0 0   100%
src / CSET / _common.py combine_dicts   100% 7 0 0   100% 6 0   100%
src / CSET / _common.py sort_dict   100% 1 0 0   100% 0 0   100%
src / CSET / _common.py sstrip   100% 1 0 0   100% 0 0   100%
src / CSET / _common.py is_increasing   100% 1 0 0   100% 0 0   100%
src / CSET / _common.py (no function)   100% 27 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py FileRetrieverABC.__enter__   100% 2 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py FileRetrieverABC.__exit__   100% 1 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py FileRetrieverABC.get_file   100% 0 0 22   100% 0 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py FilesystemFileRetriever.get_file   100% 13 0 0   100% 4 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py HTTPFileRetriever.get_file   100% 13 0 0   100% 2 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py _get_needed_environment_variables   100% 9 0 0   100% 2 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py _template_file_path   100% 24 0 0   100% 14 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py fetch_data   100% 11 0 0   100% 2 0   100%
src / CSET / cset_workflow / app / fetch_fcst / bin / fetch_data.py (no function)   100% 24 0 2   100% 0 0   100%
src / CSET / cset_workflow / app / finish_website / bin / finish_website.py construct_index   100% 17 0 0   100% 2 0   100%
src / CSET / cset_workflow / app / finish_website / bin / finish_website.py update_workflow_status   100% 4 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / finish_website / bin / finish_website.py copy_rose_config   100% 3 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / finish_website / bin / finish_website.py run   100% 3 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / finish_website / bin / finish_website.py (no function)   100% 13 0 2   100% 0 0   100%
src / CSET / cset_workflow / app / parbake_recipes / bin / parbake.py parbake_all   100% 6 0 0   100% 4 0   100%
src / CSET / cset_workflow / app / parbake_recipes / bin / parbake.py main   100% 5 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / parbake_recipes / bin / parbake.py (no function)   100% 7 0 2   100% 0 0   100%
src / CSET / cset_workflow / app / send_email / bin / send_email.py get_home_page_address   100% 15 0 0   100% 4 0   100%
src / CSET / cset_workflow / app / send_email / bin / send_email.py run   100% 6 0 0   100% 0 0   100%
src / CSET / cset_workflow / app / send_email / bin / send_email.py (no function)   100% 4 0 2   100% 0 0   100%
src / CSET / cset_workflow / lib / python / jinja_utils.py get_models   100% 8 0 0   100% 4 0   100%
src / CSET / cset_workflow / lib / python / jinja_utils.py b64json   100% 5 0 0   100% 2 0   100%
src / CSET / cset_workflow / lib / python / jinja_utils.py (no function)   100% 4 0 0   100% 0 0   100%
src / CSET / extract_workflow.py make_script_executable   100% 16 0 0   100% 8 0   100%
src / CSET / extract_workflow.py install_workflow   100% 20 0 0   100% 8 0   100%
src / CSET / extract_workflow.py (no function)   100% 14 0 0   100% 2 0   100%
src / CSET / graph.py save_graph   100% 19 0 0   100% 6 0   100%
src / CSET / graph.py save_graph.step_parser   100% 15 0 0   100% 8 0   100%
src / CSET / graph.py (no function)   100% 9 0 0   100% 0 0   100%
src / CSET / operators / __init__.py get_operator   100% 11 0 0   100% 4 0   100%
src / CSET / operators / __init__.py _write_metadata   100% 8 0 0   100% 2 0   100%
src / CSET / operators / __init__.py _step_parser   100% 19 0 0   100% 8 0   100%
src / CSET / operators / __init__.py create_diagnostic_archive   100% 6 0 0   100% 4 0   100%
src / CSET / operators / __init__.py execute_recipe   100% 27 0 0   100% 8 0   100%
src / CSET / operators / __init__.py (no function)   100% 18 0 0   100% 0 0   100%
src / CSET / operators / _stash_to_lfric.py (no function)   100% 3 0 0   100% 0 0   100%
src / CSET / operators / _utils.py pdt_fromisoformat   89% 44 5 0   85% 26 4   87%
src / CSET / operators / _utils.py pdt_fromisoformat.make_offset   86% 7 1 0   75% 4 1   82%
src / CSET / operators / _utils.py get_cube_yxcoordname   100% 15 0 0   100% 8 0   100%
src / CSET / operators / _utils.py get_cube_coordindex   100% 5 0 0   100% 2 0   100%
src / CSET / operators / _utils.py is_spatialdim   100% 8 0 0   100% 2 0   100%
src / CSET / operators / _utils.py is_transect   100% 10 0 0   100% 4 0   100%
src / CSET / operators / _utils.py fully_equalise_attributes   100% 20 0 0   100% 6 0   100%
src / CSET / operators / _utils.py is_time_aggregatable   100% 4 0 0   100% 0 0   100%
src / CSET / operators / _utils.py (no function)   100% 15 0 0   100% 0 0   100%
src / CSET / operators / ageofair.py _calc_dist   100% 11 0 0   100% 0 0   100%
src / CSET / operators / ageofair.py _aoa_core   100% 46 0 0   96% 28 1   99%
src / CSET / operators / ageofair.py compute_ageofair   100% 70 0 0   100% 36 0   100%
src / CSET / operators / ageofair.py (no function)   100% 14 0 0   100% 0 0   100%
src / CSET / operators / aggregate.py time_aggregate   100% 6 0 0   100% 0 0   100%
src / CSET / operators / aggregate.py ensure_aggregatable_across_cases   100% 23 0 0   100% 10 0   100%
src / CSET / operators / aggregate.py ensure_aggregatable_across_cases.Buckets.__init__   100% 1 0 0   100% 0 0   100%
src / CSET / operators / aggregate.py ensure_aggregatable_across_cases.Buckets.add   100% 5 0 0   100% 4 0   100%
src / CSET / operators / aggregate.py ensure_aggregatable_across_cases.Buckets.get_buckets   100% 1 0 0   100% 0 0   100%
src / CSET / operators / aggregate.py add_hour_coordinate   100% 9 0 0   100% 4 0   100%
src / CSET / operators / aggregate.py rolling_window_time_aggregation   100% 7 0 0   100% 4 0   100%
src / CSET / operators / aggregate.py (no function)   100% 12 0 0   100% 0 0   100%
src / CSET / operators / aviation.py aviation_colour_state   100% 9 0 0   100% 4 0   100%
src / CSET / operators / aviation.py aviation_colour_state_visibility   100% 16 0 0   100% 4 0   100%
src / CSET / operators / aviation.py aviation_colour_state_cloud_base   100% 27 0 0   100% 10 0   100%
src / CSET / operators / aviation.py (no function)   100% 8 0 0   100% 0 0   100%
src / CSET / operators / collapse.py collapse   85% 27 4 0   89% 18 2   87%
src / CSET / operators / collapse.py collapse_by_hour_of_day   100% 35 0 0   95% 20 1   98%
src / CSET / operators / collapse.py collapse_by_validity_time   100% 35 0 0   100% 12 0   100%
src / CSET / operators / collapse.py proportion   78% 36 8 0   73% 22 2   76%
src / CSET / operators / collapse.py (no function)   100% 17 0 0   100% 0 0   100%
src / CSET / operators / constraints.py generate_stash_constraint   100% 2 0 0   100% 0 0   100%
src / CSET / operators / constraints.py generate_var_constraint   100% 4 0 0   100% 2 0   100%
src / CSET / operators / constraints.py generate_level_constraint   100% 9 0 0   100% 6 0   100%
src / CSET / operators / constraints.py generate_cell_methods_constraint   100% 12 0 0   83% 6 1   94%
src / CSET / operators / constraints.py generate_cell_methods_constraint.check_no_aggregation   100% 1 0 0   100% 0 0   100%
src / CSET / operators / constraints.py generate_cell_methods_constraint.check_cell_sum   0% 1 1 0   100% 0 0   0%
src / CSET / operators / constraints.py generate_time_constraint   100% 16 0 0   100% 10 0   100%
src / CSET / operators / constraints.py generate_area_constraint   90% 10 1 0   83% 6 1   88%
src / CSET / operators / constraints.py generate_area_constraint.bound_lat   0% 1 1 0   100% 0 0   0%
src / CSET / operators / constraints.py generate_area_constraint.bound_lon   0% 3 3 0   0% 2 0   0%
src / CSET / operators / constraints.py generate_remove_single_ensemble_member_constraint   100% 1 0 0   100% 0 0   100%
src / CSET / operators / constraints.py generate_realization_constraint   100% 2 0 0   100% 0 0   100%
src / CSET / operators / constraints.py generate_hour_constraint   100% 6 0 0   100% 4 0   100%
src / CSET / operators / constraints.py combine_constraints   100% 6 0 1   100% 4 0   100%
src / CSET / operators / constraints.py (no function)   100% 19 0 0   100% 0 0   100%
src / CSET / operators / convection.py cape_ratio   100% 16 0 0   100% 4 0   100%
src / CSET / operators / convection.py inflow_layer_properties   100% 15 0 0   100% 6 0   100%
src / CSET / operators / convection.py (no function)   100% 6 0 0   100% 0 0   100%
src / CSET / operators / ensembles.py DKE   100% 23 0 0   100% 14 0   100%
src / CSET / operators / ensembles.py (no function)   100% 4 0 0   100% 0 0   100%
src / CSET / operators / filters.py apply_mask   100% 7 0 0   100% 0 0   100%
src / CSET / operators / filters.py filter_cubes   100% 6 0 0   100% 4 0   100%
src / CSET / operators / filters.py filter_multiple_cubes   100% 9 0 0   100% 4 0   100%
src / CSET / operators / filters.py generate_mask   100% 26 0 0   100% 16 0   100%
src / CSET / operators / filters.py (no function)   100% 10 0 0   100% 0 0   100%
src / CSET / operators / imageprocessing.py _SSIM_cube_preparation   100% 20 0 0   100% 8 0   100%
src / CSET / operators / imageprocessing.py spatial_structural_similarity_model_comparisons   100% 12 0 0   100% 4 0   100%
src / CSET / operators / imageprocessing.py mean_structural_similarity_model_comparisons   100% 12 0 0   100% 4 0   100%
src / CSET / operators / imageprocessing.py (no function)   100% 12 0 0   100% 0 0   100%
src / CSET / operators / mesoscale.py spatial_perturbation_field   100% 12 0 0   100% 2 0   100%
src / CSET / operators / mesoscale.py (no function)   100% 5 0 0   100% 0 0   100%
src / CSET / operators / misc.py noop   100% 1 0 0   100% 0 0   100%
src / CSET / operators / misc.py remove_attribute   100% 6 0 0   100% 6 0   100%
src / CSET / operators / misc.py addition   100% 1 0 0   100% 0 0   100%
src / CSET / operators / misc.py subtraction   100% 1 0 0   100% 0 0   100%
src / CSET / operators / misc.py division   100% 1 0 0   100% 0 0   100%
src / CSET / operators / misc.py multiplication   100% 1 0 0   100% 0 0   100%
src / CSET / operators / misc.py combine_cubes_into_cubelist   100% 6 0 1   100% 4 0   100%
src / CSET / operators / misc.py difference   100% 23 0 0   100% 8 0   100%
src / CSET / operators / misc.py _extract_common_time_points   100% 21 0 0   100% 6 0   100%
src / CSET / operators / misc.py convert_units   100% 8 0 0   100% 4 0   100%
src / CSET / operators / misc.py (no function)   100% 19 0 0   100% 0 0   100%
src / CSET / operators / plot.py _append_to_plot_index   100% 13 0 0   100% 2 0   100%
src / CSET / operators / plot.py _check_single_cube   100% 6 0 0   100% 6 0   100%
src / CSET / operators / plot.py _py312_importlib_resources_files_shim   100% 5 0 0   100% 2 0   100%
src / CSET / operators / plot.py _make_plot_html_page   100% 10 0 0   100% 0 0   100%
src / CSET / operators / plot.py _load_colorbar_map   100% 13 0 0   100% 2 0   100%
src / CSET / operators / plot.py _get_model_colors_map   90% 10 1 0   75% 4 1   86%
src / CSET / operators / plot.py _colorbar_map_levels   97% 67 2 0   95% 22 1   97%
src / CSET / operators / plot.py _setup_spatial_map   100% 33 0 0   100% 12 0   100%
src / CSET / operators / plot.py _get_plot_resolution   100% 1 0 0   100% 0 0   100%
src / CSET / operators / plot.py _plot_and_save_spatial_plot   97% 38 1 0   88% 16 2   94%
src / CSET / operators / plot.py _plot_and_save_postage_stamp_spatial_plot   92% 26 2 0   90% 10 1   92%
src / CSET / operators / plot.py _plot_and_save_line_series   84% 37 6 0   71% 14 2   80%
src / CSET / operators / plot.py _plot_and_save_vertical_line_series   83% 41 7 0   64% 14 3   78%
src / CSET / operators / plot.py _plot_and_save_scatter_plot   100% 21 0 0   100% 6 0   100%
src / CSET / operators / plot.py _plot_and_save_vector_plot   47% 38 20 0   21% 14 3   40%
src / CSET / operators / plot.py _plot_and_save_histogram_series   76% 46 11 0   69% 16 5   74%
src / CSET / operators / plot.py _plot_and_save_postage_stamp_histogram_series   100% 13 0 0   100% 2 0   100%
src / CSET / operators / plot.py _plot_and_save_postage_stamps_in_single_plot_histogram_series   100% 11 0 0   100% 2 0   100%
src / CSET / operators / plot.py _plot_and_save_power_spectrum_series   91% 45 4 0   70% 10 3   87%
src / CSET / operators / plot.py _plot_and_save_postage_stamp_power_spectrum_series   100% 13 0 0   100% 2 0   100%
src / CSET / operators / plot.py _plot_and_save_postage_stamps_in_single_plot_power_spectrum_series   100% 11 0 0   100% 2 0   100%
src / CSET / operators / plot.py _spatial_plot   100% 28 0 0   100% 10 0   100%
src / CSET / operators / plot.py _custom_colormap_mask   100% 19 0 0   100% 6 0   100%
src / CSET / operators / plot.py _custom_beaufort_scale   100% 17 0 0   100% 6 0   100%
src / CSET / operators / plot.py _custom_colormap_celsius   100% 9 0 0   100% 2 0   100%
src / CSET / operators / plot.py _custom_colormap_probability   100% 7 0 0   100% 2 0   100%
src / CSET / operators / plot.py _custom_colourmap_precipitation   100% 11 0 0   100% 2 0   100%
src / CSET / operators / plot.py _custom_colormap_aviation_colour_state   100% 5 0 0   100% 0 0   100%
src / CSET / operators / plot.py _custom_colourmap_visibility_in_air   100% 12 0 0   100% 2 0   100%
src / CSET / operators / plot.py _get_num_models   100% 5 0 0   100% 2 0   100%
src / CSET / operators / plot.py _validate_cube_shape   50% 2 1 0   50% 2 1   50%
src / CSET / operators / plot.py _validate_cubes_coords   50% 2 1 0   50% 2 1   50%
src / CSET / operators / plot.py spatial_contour_plot   100% 2 0 0   100% 0 0   100%
src / CSET / operators / plot.py spatial_pcolormesh_plot   100% 2 0 0   100% 0 0   100%
src / CSET / operators / plot.py plot_line_series   100% 19 0 0   100% 6 0   100%
src / CSET / operators / plot.py plot_vertical_line_series   87% 47 6 0   62% 16 4   81%
src / CSET / operators / plot.py plot_vertical_line_series.filter_cube_iterables   100% 1 0 0   100% 0 0   100%
src / CSET / operators / plot.py qq_plot   100% 22 0 0   100% 6 0   100%
src / CSET / operators / plot.py scatter_plot   100% 16 0 0   100% 10 0   100%
src / CSET / operators / plot.py vector_plot   89% 19 2 0   67% 6 2   84%
src / CSET / operators / plot.py plot_histogram_series   83% 54 9 0   62% 26 6   76%
src / CSET / operators / plot.py plot_power_spectrum_series   82% 39 7 0   67% 18 4   77%
src / CSET / operators / plot.py _DCT_ps   100% 15 0 0   100% 4 0   100%
src / CSET / operators / plot.py _create_alpha_matrix   100% 4 0 0   100% 0 0   100%
src / CSET / operators / plot.py (no function)   100% 74 0 0   100% 0 0   100%
src / CSET / operators / read.py read_cube   100% 4 0 0   100% 2 0   100%
src / CSET / operators / read.py read_cubes   100% 21 0 0   100% 12 0   100%
src / CSET / operators / read.py _load_model   100% 10 0 0   100% 6 0   100%
src / CSET / operators / read.py _check_input_files   100% 16 0 0   100% 10 0   100%
src / CSET / operators / read.py _cutout_cubes   100% 31 0 0   100% 14 0   100%
src / CSET / operators / read.py _is_ensemble   100% 11 0 0   100% 6 0   100%
src / CSET / operators / read.py _create_callback   100% 2 0 0   100% 0 0   100%
src / CSET / operators / read.py _create_callback.callback   100% 17 0 0   100% 2 0   100%
src / CSET / operators / read.py _ensemble_callback   100% 6 0 0   100% 4 0   100%
src / CSET / operators / read.py _deterministic_callback   100% 2 0 0   100% 2 0   100%
src / CSET / operators / read.py _warn_once   100% 1 0 0   100% 0 0   100%
src / CSET / operators / read.py _um_normalise_callback   100% 7 0 0   100% 2 0   100%
src / CSET / operators / read.py _lfric_normalise_callback   100% 6 0 0   100% 2 0   100%
src / CSET / operators / read.py _lfric_time_coord_fix_callback   100% 5 0 0   100% 4 0   100%
src / CSET / operators / read.py _grid_longitude_fix_callback   90% 21 2 0   88% 8 1   90%
src / CSET / operators / read.py _fix_spatial_coords_callback   71% 28 8 0   83% 18 3   76%
src / CSET / operators / read.py _fix_pressure_coord_callback   100% 6 0 0   100% 8 0   100%
src / CSET / operators / read.py _fix_um_radtime   95% 22 1 0   80% 10 2   91%
src / CSET / operators / read.py _fix_cell_methods   100% 7 0 0   83% 6 1   92%
src / CSET / operators / read.py _convert_cube_units_callback   100% 15 0 0   80% 10 2   92%
src / CSET / operators / read.py _fix_lfric_cloud_base_altitude   100% 4 0 0   100% 2 0   100%
src / CSET / operators / read.py _fix_um_winds   50% 10 5 0   25% 4 1   43%
src / CSET / operators / read.py _add_wind_speed_um   0% 5 5 0   100% 0 0   0%
src / CSET / operators / read.py _convert_wind_true_dirn_um   0% 5 5 0   100% 0 0   0%
src / CSET / operators / read.py _normalise_var0_varname   82% 11 2 0   83% 12 2   83%
src / CSET / operators / read.py _proleptic_gregorian_fix   100% 7 0 0   100% 2 0   100%
src / CSET / operators / read.py _lfric_time_callback   91% 32 3 0   75% 8 2   88%
src / CSET / operators / read.py _lfric_forecast_period_standard_name_callback   100% 6 0 0   100% 2 0   100%
src / CSET / operators / read.py (no function)   100% 48 0 0   100% 0 0   100%
src / CSET / operators / regrid.py regrid_onto_cube   100% 15 0 0   100% 10 0   100%
src / CSET / operators / regrid.py regrid_onto_xyspacing   100% 20 0 0   100% 10 0   100%
src / CSET / operators / regrid.py regrid_to_single_point   100% 35 0 0   96% 24 1   98%
src / CSET / operators / regrid.py transform_lat_long_points   100% 7 0 0   100% 0 0   100%
src / CSET / operators / regrid.py (no function)   100% 12 0 0   100% 0 0   100%
src / CSET / operators / transect.py _check_within_bounds   100% 6 0 0   100% 2 0   100%
src / CSET / operators / transect.py calc_transect   96% 45 2 0   88% 16 2   93%
src / CSET / operators / transect.py (no function)   100% 6 0 0   100% 0 0   100%
src / CSET / operators / wind.py convert_to_beaufort_scale   100% 12 0 0   100% 4 0   100%
src / CSET / operators / wind.py (no function)   100% 5 0 0   100% 0 0   100%
src / CSET / operators / write.py write_cube_to_nc   100% 9 0 0   100% 6 0   100%
src / CSET / operators / write.py (no function)   100% 6 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py _version_agnostic_importlib_resources_file   100% 5 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py _recipe_files_in_tree   100% 8 0 0   100% 8 0   100%
src / CSET / recipes / __init__.py _get_recipe_file   100% 7 0 0   100% 4 0   100%
src / CSET / recipes / __init__.py unpack_recipe   100% 9 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py list_available_recipes   100% 3 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py detail_recipe   100% 5 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py RawRecipe.__init__   100% 4 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py RawRecipe.__str__   100% 7 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py RawRecipe.__eq__   100% 3 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py RawRecipe.parbake   100% 13 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py Config.__init__   100% 1 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py Config.__getattr__   100% 1 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py Config.asdict   100% 1 0 0   100% 0 0   100%
src / CSET / recipes / __init__.py load_recipes   100% 6 0 0   100% 2 0   100%
src / CSET / recipes / __init__.py (no function)   100% 26 0 0   100% 0 0   100%
Total     96% 3116 139 32   91% 1064 69   94%

No items found using the specified filter.