diff --git a/beat/web/plotters/views.py b/beat/web/plotters/views.py index bb718683fc7d7c5cb5ada0c3bedb4afe590356ce..985333124f213c58b9ab2faa24f63b5f63414acb 100644 --- a/beat/web/plotters/views.py +++ b/beat/web/plotters/views.py @@ -55,6 +55,17 @@ import beat.core.experiment import beat.core.toolchain +def filter_parameters(parameter_dict, reference_keys): + """ + Remove from parameter_dict elements that cannot be found in reference_keys + """ + + to_remove = [key for key in parameter_dict.keys() if key not in reference_keys] + for key in to_remove: + del parameter_dict[key] + return parameter_dict + + def plot(request): """Plots one or more experiment analyzer outputs following the user preference and the plotter @@ -287,9 +298,7 @@ def plot(request): do_b64_encode = bool(extra_parameters.get('base64', False)) # we filter out parameters we can't handle - for key in final_parameters.keys(): - if key not in core_plotter.parameters: del final_parameters[key] - + final_parameters = filter_parameters(final_parameters, core_plotter.parameters) runnable = core_plotter.runner() runnable.setup(final_parameters) @@ -436,8 +445,7 @@ def plot_sample(request): do_b64_encode = bool(extra_parameters.get('base64', False)) # we filter out parameters we can't handle - for key in final_parameters.keys(): - if key not in core_plotter.parameters: del final_parameters[key] + final_parameters = filter_parameters(final_parameters, core_plotter.parameters) runnable = core_plotter.runner() runnable.setup(final_parameters) @@ -568,8 +576,7 @@ def plot_sample_with_params(request): do_b64_encode = bool(extra_parameters.get('base64', False)) # we filter out parameters we can't handle - for key in final_parameters.keys(): - if key not in core_plotter.parameters: del final_parameters[key] + final_parameters = filter_parameters(final_parameters, core_plotter.parameters) runnable= core_plotter.runner() runnable.setup(final_parameters)