Skill Tracer
Skills › Scientific Agent Skills › pptx-posters › inspect_pptx.py

inspect_pptx.py

40 lines · skills/pptx-posters/scripts/inspect_pptx.py at 5f2bc03

1#!/usr/bin/env python3
2"""Inspect a PPTX ZIP/XML package without opening or executing it."""
3
4from __future__ import annotations
5
6import argparse
7import sys
8
9from _common import CliError, emit_json
10from _pptx import inspect_pptx
13def build_parser() -> argparse.ArgumentParser:
14 parser = argparse.ArgumentParser(
15 description=(
16 "Boundedly inspect a local .pptx against the strict one-slide generated "
17 "poster profile: package parts, macros, relationships, linked images, "
18 "OLE/embedded content, ZIP paths/expansion, image signatures, title, "
19 "text language, and picture alt text. Nothing is extracted, opened in "
20 "PowerPoint, or executed."
21 )
22 )
23 parser.add_argument("pptx", help="local .pptx file")
24 parser.add_argument("--output", help="optional new JSON report path")
25 return parser
28def main(argv: list[str] | None = None) -> int:
29 parser = build_parser()
30 try:
31 args = parser.parse_args(argv)
32 report = inspect_pptx(args.pptx)
33 emit_json(report, output=args.output)
34 return 0 if report["safe"] else 1
35 except CliError as exc:
36 parser.exit(2, f"error: {exc}\n")
39if __name__ == "__main__":
40 sys.exit(main())