-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Issue
Computation of large CTR data sets requires a lot of time on a single computer. - For a full data set about 10 hours on my laptop, even if the data is processed automatically using the scripting function.
Goal
There should be a way to operate orGUI in a headless mode (without invoking the GUI). This allows to offload the computation onto computation clusters, which typically have no GUI support. Also, the GUI is really only needed to set up the configuration of the integration. The heavy lifting can be done off-screen.
I'd expose the same API available through the orGUI console to a python script script.py, which should be processed through a command like
orGUI ./config -s script.pyIn addition, this would allow to use a pure command line interface mode.
orGUI ./config --cli Essentially the orGUI ipython console without any ui.
Implementation
-
Not invoking any
QWidget.showorQWidget.execcall -
Running orGUI with
os.environ["QT_QPA_PLATFORM"] = "offscreen"- This requires the qoffscreen plugin.
In any case, the ArgumentParser in main.py needs to create a different headless orGUI context.
This means that all code needs to dynamically detect the runtime context and react accordingly.
For example:
Any QMessageBox warning or error message has to be converted to an Exception, which would trigger a termination of the program if not handled with the script.
QProgressBar - convert to a status message - tqdm?
It probably makes sense to use a global logging, which can be set to command line interface or graphical interface.