You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment the resolving of groups for plotting parameters general_settings [1] and process_settings [2] only works, when giving a single group, e.g. --process-settings my_group resolves the group, but --process-settings my_group:other_process,some_setting=True does not resolve the group, but interprets my_group as another process.
It would be nice, if we could make the resolve_config_default_and_groups function [3] also usable for the SettingsParameter and MultiSettingsParameter.
If there is a single value that could be interpreted as a group, check if it's a group and load its contents if it is indeed a group. But as you already mentioned, this could lead to ambiguities in parameters where a single value, say x, is interpreted as x=True.
We use a "reference-like" syntax to mark a value explicitly as a group. I'm thinking of something similar as the config referencing in law or yaml, i.e. "my_value: &other_value". This would look like --process-settings "&my_group:other_process,some_setting=True".
Thinking about the implications of both paths, I'd definitely vote for 2 as it's far more explicit. However, it does require values to be quoted on the command line, but I think that's a fair trade-off.
I feel like there could be three things to resolve:
resolving full groups of settings, where each group is a dict of processes and their corresponding settings (e.g. --process-settings proc1,some_setting=True:some_setting_group:another_setting_group). This should be the only case where we only pass a single value before adding the next :, since passing a process without settings is useless
resolving groups of processes (e.g. --process-settings top,some_setting=True should be resolved to --process-settings st,some_setting=True:tt,some_setting=True)
resolving settings separately from processes (e.g. --process-settings proc1,some_setting_group). This is probably the most difficult thing to resolve, since this will be parsed as {"proc1": {"some_setting_group": True}}. But I think it is not really necessary to consider this type of resolving because we usually want to use different settings per process anyway. So I'd propose to try to find a solution for only resolving the cases mentioned in 1. and 2.
At the moment the resolving of groups for plotting parameters
general_settings
[1] andprocess_settings
[2] only works, when giving a single group, e.g.--process-settings my_group
resolves the group, but--process-settings my_group:other_process,some_setting=True
does not resolve the group, but interpretsmy_group
as another process.It would be nice, if we could make the
resolve_config_default_and_groups
function [3] also usable for the SettingsParameter and MultiSettingsParameter.[1]
columnflow/columnflow/tasks/framework/plotting.py
Lines 80 to 87 in 5939cb0
[2]
columnflow/columnflow/tasks/framework/plotting.py
Lines 322 to 329 in 5939cb0
[3]
columnflow/columnflow/tasks/framework/base.py
Line 419 in 5939cb0
The text was updated successfully, but these errors were encountered: