summaryrefslogtreecommitdiff
path: root/bitsandbytes/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitsandbytes/utils.py')
-rw-r--r--bitsandbytes/utils.py22
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)