python user interface layer to monitor progress of long-running algorithms