"""Точка входа: `python -m sysdevcleaner` открывает GUI, с аргументами — консоль.""" from __future__ import annotations import sys from .winui import NO_ELEVATE_ENV, ensure_admin, is_admin def launch_gui(argv: list[str] | None = None) -> int: """Dear PyGui — основной интерфейс; tkinter остаётся запасным вариантом. Перед запуском поднимаем права: без них недоступны Windows\\Temp, кеш обновлений, Prefetch и Windows.old — а это обычно самая крупная добыча. Отказ в UAC не фатален: приложение просто запустится с обычными правами и честно скажет об этом в заголовке и шапке. """ if ensure_admin(): return 0 # работать дальше будет повышенная копия try: from .gui.app import main as gui_main except ImportError as e: print(f"Dear PyGui недоступен ({e}).", file=sys.stderr) print("Установите его командой: python -m pip install dearpygui", file=sys.stderr) print("Пока запускаю запасной интерфейс на tkinter.", file=sys.stderr) from .gui.app_tk import main as gui_main # type: ignore[assignment] gui_main() return 0 def main() -> int: args = sys.argv[1:] if not args: return launch_gui() if args == ["--gui"]: return launch_gui([]) from .cli import main as cli_main return cli_main() __all__ = ["main", "launch_gui", "is_admin", "NO_ELEVATE_ENV"] if __name__ == "__main__": raise SystemExit(main())