Skip to content

Enable an orGUI headless mode #41

@tifuchs

Description

@tifuchs

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.py

In addition, this would allow to use a pure command line interface mode.

orGUI ./config --cli 

Essentially the orGUI ipython console without any ui.

Implementation

  1. Not invoking any QWidget.show or QWidget.exec call

  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions