def run(cmd: str,<EOL>*paths: str,<EOL>cwd: str = '<STR_LIT:.>',<EOL>mute: bool = False,<EOL>filters: typing.Optional[typing.Union[typing.Iterable[str], str]] = None,<EOL>failure_ok: bool = False,<EOL>timeout: float = _DEFAULT_PROCESS_TIMEOUT,<EOL>) -> typing.Tuple[str, int]:
filters = _sanitize_filters(filters)<EOL>exe_path, args_list = _parse_cmd(cmd, *paths)<EOL>context = RunContext(  <EOL>exe_path=exe_path,<EOL>capture=sarge.Capture(),<EOL>failure_ok=failure_ok,<EOL>mute=mute,<EOL>args_list=args_list,<EOL>paths=paths,<EOL>cwd=cwd,<EOL>timeout=timeout,<EOL>filters=filters,<EOL>)<EOL>if mute:<EOL><INDENT>context.result_buffer += f'<STR_LIT>'<EOL><DEDENT>else:<EOL><INDENT>_LOGGER_PROCESS.info('<STR_LIT>', context.cmd_as_string)<EOL><DEDENT>context.start_process()<EOL>monitor_running_process(context)<EOL>check_error(context)<EOL>return context.process_output_as_str, context.return_code<EOL>
Executes a command and returns the result

Args:
    cmd: command to execute
    paths: paths to search executable in
    cwd: working directory (defaults to ".")
    mute: if true, output will not be printed
    filters: gives a list of partial strings to filter out from the output (stdout or stderr)
    failure_ok: if False (default), a return code different than 0 will exit the application
    timeout: sub-process timeout

Returns: command output