Skip to content

Refactor application configuration

Rosen Matev requested to merge rmatev-application-config into master
  • Remove the stateful EverythingHandler and replace it with
    1. a mutable options holder (ApplicationOptions), based on ConfigurableUser for the moment, to be redone later
    2. stateless functions (configure*) that use the options and collect component configuration
  • 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. See dst_read.qmt and dst_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.

Edited by Alex Pearce

Merge request reports