The 3rd party libs generate console output which should be supressed. Below a piece of example code how this could be done.
A recipe for redirecting std output:
original_stdout = sys.stdout
original_stderr = sys.stderr
sys.stdout = sys.stderr = out_string = io.StringIO()
if self.__silent:
try: self.__no_key_options[0](*self.__no_key_options[1:], **self.__options) except Exception: sys.stdout = original_stdout sys.stderr = original_stderr raise sys.stdout = original_stdout sys.stderr = original_stderr return try: proc = ThreadWithReturn(target=self.__no_key_options[0], args=self.__no_key_options[1:], kwargs=self.__options) proc.start() while proc.is_alive(): if self.__nested: print(out_string.getvalue(), end='') else: self.__log['command']['text_output'] = out_string.getvalue().split('\n') self.update_log() time.sleep(5) self.__py_function_return, exception = proc.get_retval() except Exception as err: exception = err sys.stdout = original_stdout
sys.stderr = original_stderr