'Process worker based on a QProcess for non blocking UI.
Parameters
cmd_list : list of str
Command line arguments to execute.
environ : dict
Process environment,'

def __init__(self, cmd_list, environ=None):

    super(ProcessWorker, self).__init__()
    self._result = None
    self._cmd_list = cmd_list
    self._fired = False
    self._communicate_first = False
    self._partial_stdout = None
    self._started = False
    self._timer = QTimer()
    self._process = QProcess()
    self._set_environment(environ)
    self._timer.setInterval(150)
    self._timer.timeout.connect(self._communicate)
    self._process.readyReadStandardOutput.connect(self._partial)
