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 shlex
import subprocess
from os import environ as env
from pathlib import Path
from typing import Set, Union
@ -28,15 +26,6 @@ from typing import Set, Union
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):
if result_val != 0:
cuda.cuGetErrorString(result_val, ctypes.byref(error_str))

View File

@ -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)