import asyncio async def get_macbook_battery_level(): """ Асинхронная функция для получения уровня заряда батареи на macOS. Использует утилиту pmset. """ # Запускаем команду pmset -g batt process = await asyncio.create_subprocess_exec( "pmset", "-g", "batt", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE ) stdout, stderr = await process.communicate() if process.returncode != 0: raise RuntimeError(f"Ошибка при выполнении pmset: {stderr.decode().strip()}") output = stdout.decode().strip() # Пример строки: " - InternalBattery-0 (id=1234567) 85%; charging; ..." for part in output.splitlines(): if "%" in part: percent_str = part.split("\t")[-1].split(";")[0].strip() return int(percent_str.replace("%", "")) raise ValueError("Не удалось определить уровень заряда")