diff options
author | Titus von Koeller <titus@vonkoeller.com> | 2022-08-01 09:30:29 -0700 |
---|---|---|
committer | Titus von Koeller <titus@vonkoeller.com> | 2022-08-01 09:30:29 -0700 |
commit | 3fd06fb6206f46b6d18fbb8a512da63832dea98b (patch) | |
tree | 508f4a024c1101674d445ce64d18bcb79f5232d1 /bitsandbytes/utils.py | |
parent | 54efd874a8b180baa132cde118d963eca98e0d87 (diff) |
refactored subshell execution code for greater readability and moved it to utils
Diffstat (limited to 'bitsandbytes/utils.py')
-rw-r--r-- | bitsandbytes/utils.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/bitsandbytes/utils.py b/bitsandbytes/utils.py index 29b9c90..6797407 100644 --- a/bitsandbytes/utils.py +++ b/bitsandbytes/utils.py @@ -1,6 +1,28 @@ +import shlex +import subprocess import sys +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() + return std_out, std_err + + def print_err(s: str) -> None: print(s, file=sys.stderr) |