refactored subshell execution code for greater readability and moved it to utils
This commit is contained in:
parent
54efd874a8
commit
3fd06fb620
|
@ -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))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user