"""Download official Graphviz win64 portable into md2gost/vendor/graphviz (for exe builds).""" from __future__ import annotations import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[1] if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) from md2gost.dfd import ( # noqa: E402 GRAPHVIZ_VERSION, GRAPHVIZ_ZIP_URL, fetch_graphviz, resolve_graphviz_engine, strip_graphviz_tcl_libs, vendor_graphviz_root, ) def main() -> int: dest = vendor_graphviz_root() print(f"Graphviz {GRAPHVIZ_VERSION}: {GRAPHVIZ_ZIP_URL}") print(f"Куда: {dest}") if resolve_graphviz_engine(False) and (dest / "bin").is_dir(): n = strip_graphviz_tcl_libs(dest) hit = resolve_graphviz_engine(False) extra = f", снял Tcl/Tk DLL Graphviz: {n}" if n else "" print(f"Уже есть: {hit}{extra}") return 0 if fetch_graphviz(dest): hit = resolve_graphviz_engine(False) print(f"Готово: {hit or dest}") return 0 print( "Не удалось скачать Graphviz " "(exe соберётся; DFD пойдёт через kroki.io или системный PATH)." ) return 0 if __name__ == "__main__": raise SystemExit(main())