Files
arma-modlist-tools/arma_modlist_tools/__init__.py
Tran G. (Revernomad) Khoa 90cc6c00ff feat: add orphan mod cleanup tool with GUI integration and live-server tests
- Add arma_modlist_tools/cleaner.py: find_orphan_folders() detects @ModName
  folders no longer referenced in comparison.json; uses _normalize_name from
  fetcher for consistent three-level matching
- Add clean_orphans.py: CLI with --dry-run and --yes/-y flags; junction-safe
  deletion via _is_junction() guard before shutil.rmtree
- Add Clean Orphans tab to gui/views/tools.py: scrollable checkbox list,
  background scan/delete threads, pending-done-msg pattern for post-scan
  status, EN/VI localization strings in gui/locales.py
- Add 23 unit tests (section 12), 6 E2E subprocess tests (section 13),
  23 coverage-gap tests (section 14), 9 live-server fetcher tests (section 15)
- Fix leaked builtins.open mock in _test_read_os_release_parses_file
- Overall coverage: 84% → 93%; fetcher.py: 36% → 72%
2026-04-08 20:02:42 +07:00

36 lines
1.3 KiB
Python

from .parser import parse_mod_entry, parse_modlist_html, parse_modlist_dir
from .compare import compare_presets
from .fetcher import (
make_session, build_server_index, find_mod_folder,
list_mod_files, list_mod_updates, download_file, download_mod_folder,
)
from .linker import (
get_mod_folders, get_link_status, create_junction,
remove_junction, link_group, unlink_group,
)
from .config import load_config, Config
from .compat import is_windows, is_linux, get_os_label, fix_console_encoding
from .reporter import build_missing_report, save_missing_report
from .cleaner import find_orphan_folders, folder_size
__all__ = [
# parser
"parse_mod_entry", "parse_modlist_html", "parse_modlist_dir",
# compare
"compare_presets",
# fetcher
"make_session", "build_server_index", "find_mod_folder",
"list_mod_files", "list_mod_updates", "download_file", "download_mod_folder",
# linker
"get_mod_folders", "get_link_status", "create_junction",
"remove_junction", "link_group", "unlink_group",
# config
"load_config", "Config",
# compat
"is_windows", "is_linux", "get_os_label", "fix_console_encoding",
# reporter
"build_missing_report", "save_missing_report",
# cleaner
"find_orphan_folders", "folder_size",
]