"""MiniTIAS 照明均一性評価 HTML レポート生成スクリプト.
使い方:
python scripts/generate_report.py
python scripts/generate_report.py --output output/
python scripts/generate_report.py --output output/ \\
--template config/templates/report.html
"""
import argparse
import sys
from pathlib import Path
# プロジェクトルートを sys.path に追加(スクリプトを任意の場所から実行できるよう)
PROJECT_ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(PROJECT_ROOT))
from src.export.report import build_report_context, render_html_report # noqa: E402
def main() -> None:
"""エントリーポイント."""
parser = argparse.ArgumentParser(
description="MiniTIAS 照明均一性評価の HTML レポートを生成する."
)
parser.add_argument(
"--output",
default=str(PROJECT_ROOT / "output"),
help="出力ディレクトリのパス(デフォルト: output/)",
)
parser.add_argument(
"--template",
default=str(PROJECT_ROOT / "config" / "templates" / "report.html"),
help="Jinja2 テンプレートのパス(デフォルト: config/templates/report.html)",
)
args = parser.parse_args()
output_base = Path(args.output)
summary_csv = str(output_base / "results" / "summary_uniformity.csv")
spatial_csv = str(output_base / "results" / "summary_spatial.csv")
figures_dir = str(output_base / "figures")
report_output = str(output_base / "reports" / "uniformity_report.html")
print("HTML レポートを生成します...")
print(f" 均一性 CSV : {summary_csv}")
print(f" 空間解析 CSV: {spatial_csv}")
print(f" 図ディレクトリ: {figures_dir}")
print(f" テンプレート: {args.template}")
try:
context = build_report_context(summary_csv, spatial_csv, figures_dir)
except FileNotFoundError as e:
print(f"エラー: {e}")
print("先に run_uniformity.py でバッチ解析を実行してください.")
sys.exit(1)
render_html_report(context, args.template, report_output)
print(f"レポート生成完了: {report_output}")
if __name__ == "__main__":
main()