Tipragot
628be439b8
Cela permet de ne pas avoir de problèmes de compatibilité car python est dans le git.
31 lines
749 B
Python
31 lines
749 B
Python
from __future__ import annotations
|
|
|
|
import subprocess
|
|
|
|
CREATE_NO_WINDOW = 0x80000000
|
|
|
|
|
|
def run_cmd(cmd):
|
|
try:
|
|
process = subprocess.Popen(
|
|
cmd, # noqa: S603
|
|
universal_newlines=True,
|
|
stdin=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
stdout=subprocess.PIPE,
|
|
encoding="utf-8",
|
|
)
|
|
out, err = process.communicate() # input disabled
|
|
code = process.returncode
|
|
except OSError as error:
|
|
code, out, err = error.errno, "", error.strerror
|
|
if code == 2 and "file" in err: # noqa: PLR2004
|
|
err = str(error) # FileNotFoundError in Python >= 3.3
|
|
return code, out, err
|
|
|
|
|
|
__all__ = (
|
|
"run_cmd",
|
|
"CREATE_NO_WINDOW",
|
|
)
|