Skip to content
Snippets Groups Projects
Commit ae976d21 authored by Samuel GAIST's avatar Samuel GAIST
Browse files

[plotters][views] Fix mutating OrderedDict while iterating

parent 382f50ce
No related branches found
No related tags found
2 merge requests!2551.4.x,!243Various fixes
...@@ -55,6 +55,17 @@ import beat.core.experiment ...@@ -55,6 +55,17 @@ import beat.core.experiment
import beat.core.toolchain 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): def plot(request):
"""Plots one or more experiment analyzer outputs following the user """Plots one or more experiment analyzer outputs following the user
preference and the plotter preference and the plotter
...@@ -287,9 +298,7 @@ def plot(request): ...@@ -287,9 +298,7 @@ def plot(request):
do_b64_encode = bool(extra_parameters.get('base64', False)) do_b64_encode = bool(extra_parameters.get('base64', False))
# we filter out parameters we can't handle # we filter out parameters we can't handle
for key in final_parameters.keys(): final_parameters = filter_parameters(final_parameters, core_plotter.parameters)
if key not in core_plotter.parameters: del final_parameters[key]
runnable = core_plotter.runner() runnable = core_plotter.runner()
runnable.setup(final_parameters) runnable.setup(final_parameters)
...@@ -436,8 +445,7 @@ def plot_sample(request): ...@@ -436,8 +445,7 @@ def plot_sample(request):
do_b64_encode = bool(extra_parameters.get('base64', False)) do_b64_encode = bool(extra_parameters.get('base64', False))
# we filter out parameters we can't handle # we filter out parameters we can't handle
for key in final_parameters.keys(): final_parameters = filter_parameters(final_parameters, core_plotter.parameters)
if key not in core_plotter.parameters: del final_parameters[key]
runnable = core_plotter.runner() runnable = core_plotter.runner()
runnable.setup(final_parameters) runnable.setup(final_parameters)
...@@ -568,8 +576,7 @@ def plot_sample_with_params(request): ...@@ -568,8 +576,7 @@ def plot_sample_with_params(request):
do_b64_encode = bool(extra_parameters.get('base64', False)) do_b64_encode = bool(extra_parameters.get('base64', False))
# we filter out parameters we can't handle # we filter out parameters we can't handle
for key in final_parameters.keys(): final_parameters = filter_parameters(final_parameters, core_plotter.parameters)
if key not in core_plotter.parameters: del final_parameters[key]
runnable= core_plotter.runner() runnable= core_plotter.runner()
runnable.setup(final_parameters) runnable.setup(final_parameters)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment