implement 0004_plan_how_to_edit_question_table_from_check_result
This commit is contained in:
55
scripts/fill_review_docx.py
Normal file
55
scripts/fill_review_docx.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT_DIR = Path(__file__).resolve().parent.parent
|
||||
sys.path.insert(0, str(ROOT_DIR))
|
||||
|
||||
from app.review_filler import fill_review_docx_from_analysis, write_decisions_json
|
||||
|
||||
|
||||
def build_arg_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(description="Fill Appendix A DOCX review results from an analysis Markdown file.")
|
||||
parser.add_argument("--analysis-md", type=Path, required=True, help="Path to the analysis Markdown file.")
|
||||
parser.add_argument("--review-docx", type=Path, required=True, help="Path to the Appendix A review DOCX file.")
|
||||
parser.add_argument("--output-docx", type=Path, required=True, help="Path for the filled review DOCX file.")
|
||||
parser.add_argument("--output-json", type=Path, help="Optional path for review decision details.")
|
||||
parser.add_argument("--target-heading", help="Optional review table heading filter, such as A.2.")
|
||||
return parser
|
||||
|
||||
|
||||
def main() -> None:
|
||||
args = build_arg_parser().parse_args()
|
||||
result = fill_review_docx_from_analysis(
|
||||
analysis_markdown_path=args.analysis_md,
|
||||
review_docx_path=args.review_docx,
|
||||
output_docx_path=args.output_docx,
|
||||
target_heading=args.target_heading,
|
||||
)
|
||||
if args.output_json:
|
||||
write_decisions_json(result, args.output_json)
|
||||
|
||||
counts: dict[str, int] = {}
|
||||
for decision in result.decisions:
|
||||
counts[decision.result] = counts.get(decision.result, 0) + 1
|
||||
|
||||
print(f"target_heading={result.target_heading}")
|
||||
print(f"decisions={len(result.decisions)}")
|
||||
for result_name in ("通过", "未通过", "不适用"):
|
||||
print(f"{result_name}={counts.get(result_name, 0)}")
|
||||
print(f"output_docx={result.output_docx}")
|
||||
if args.output_json:
|
||||
print(f"output_json={args.output_json}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
"""
|
||||
python scripts/fill_review_docx.py --analysis-md test/中央处理机正常模式软件任务书V1_00_094006f6_analysis.md --review-docx test/附录A文档审查.docx --output-docx test/中央处理机正
|
||||
│ 常模式软件任务书V1_00_094006f6_附录A文档审查.docx --output-json test/中央处理机正常模式软件任务书V1_00_094006f6_附录A文档审查.json
|
||||
"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user