Structural overview

The program has both a CLI in main.py and a GUI in gui.py. Both the GUI and CLI communicate with the internals of the program using the kvali_interface module. The GUI does this indirectly by using an MVC architecture with the model part being contained in gui_model. The gui_model module is used to store some extra state for the GUI and to inform the GUI about the state of the program via pubsub messages. For more specific information what each module does you can refer to the documentation of the individual modules.