import subprocess from typing import Tuple class CLIExecutor: """Утилита для безопасного выполнения CLI‑команд. Назначение: Инкапсулирует вызов `subprocess.run` и приводит результат к удобному кортежу (код возврата, stdout) без генерации исключений при ошибках. """ @staticmethod def run(command: list) -> Tuple[int, str]: """ Выполняет команду в системе и возвращает код и вывод. Args: command (list): Список аргументов команды для выполнения. Returns: tuple: Код возврата и вывод команды. """ result = subprocess.run( command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False, # Не вызываем исключение при ошибке ) return result.returncode, result.stdout.decode("utf-8")