Restarts the current program.
    Note: this function does not return. Any cleanup action (like
    saving data) must be done before calling this function.

def restart_program():
    """
    Restarts the current program.
    Note: this function does not return. Any cleanup action (like
    saving data) must be done before calling this function.
    """
    logging.debug("Restarting program...")
    python = sys.executable
    os.execl(python, python, * sys.argv)