refactored subshell execution code for greater readability and moved it to utils

This commit is contained in:
Titus von Koeller 2022-08-01 09:30:29 -07:00
parent 54efd874a8
commit 3fd06fb620
2 changed files with 22 additions and 11 deletions

View File

@ -19,8 +19,6 @@ evaluation:
""" """
import ctypes import ctypes
import shlex
import subprocess
from os import environ as env from os import environ as env
from pathlib import Path from pathlib import Path
from typing import Set, Union from typing import Set, Union
@ -28,15 +26,6 @@ from typing import Set, Union
from .utils import print_err, warn_of_missing_prerequisite from .utils import print_err, warn_of_missing_prerequisite
def execute_and_return(strCMD):
proc = subprocess.Popen(
shlex.split(strCMD), stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
out, err = proc.communicate()
out, err = out.decode("UTF-8").strip(), err.decode("UTF-8").strip()
return out, err
def check_cuda_result(cuda, result_val): def check_cuda_result(cuda, result_val):
if result_val != 0: if result_val != 0:
cuda.cuGetErrorString(result_val, ctypes.byref(error_str)) cuda.cuGetErrorString(result_val, ctypes.byref(error_str))

View File

@ -1,6 +1,28 @@
import shlex
import subprocess
import sys 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: def print_err(s: str) -> None:
print(s, file=sys.stderr) print(s, file=sys.stderr)