| import shlex | |
| import subprocess | |
| from typing import Tuple | |
| def execute_and_return(command_string: str) -> Tuple[str, str]: | |
| def _decode(subprocess_err_out_tuple): | |
| return tuple( | |
| to_decode.decode("UTF-8").strip() | |
| for to_decode in subprocess_err_out_tuple | |
| ) | |
| def execute_and_return_decoded_std_streams(command_string): | |
| return _decode( | |
| subprocess.Popen( | |
| shlex.split(command_string), | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE, | |
| ).communicate() | |
| ) | |
| std_out, std_err = execute_and_return_decoded_std_streams(command_string) | |
| return std_out, std_err | |