Refactor application configuration
- Remove the stateful
EverythingHandler
and replace it with- a mutable options holder (
ApplicationOptions
), based onConfigurableUser
for the moment, to be redone later - stateless functions (
configure*
) that use the options and collect component configuration
- a mutable options holder (
- With the new structure, there's effectively a main python script that "runs" the application. Modifying options after that would be impossible.
- It is possible to "override" options like input, by prepending (rather than appending) options files in the list passed to
gaudirun.py
. Seedst_read.qmt
anddst_write.qmt
for an example. - "All" lines in a module are collected more explicitly with a new decorator.
- A macro
default_ft_decoding_version
is defined to streamline setting the value if needed. - Handling of input raw event is more explicit, streamlining the split raw event case, by requesting specific bank types.
- Input configuration is done with a "global bind" (in
configure_input
), lifting the need for the main script to do it. - ...?
WIP because there are bunch of TODOs, leftovers from the refactor and perhaps something I missed in the description. Tests are passing so we should put it in the head slot so we can work on adding the throughput tests.