templateHtml.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. templateHtml.py - 生成 Trace 执行流程可视化 HTML
  5. 参考 visualize.py 的样式设计
  6. """
  7. import json
  8. import os
  9. from pathlib import Path
  10. def generate_trace_visualization_html(output_path: str = None):
  11. """
  12. 生成 Trace 可视化 HTML 文件
  13. Args:
  14. output_path: 输出的 HTML 文件路径
  15. """
  16. # 读取 mock 数据
  17. mock_dir = Path(__file__).parent / "mock_data"
  18. with open(mock_dir / "trace_list.json", "r", encoding="utf-8") as f:
  19. trace_list_data = json.load(f)
  20. with open(mock_dir / "trace_detail.json", "r", encoding="utf-8") as f:
  21. trace_detail_data = json.load(f)
  22. # 读取 HTML 模板
  23. template_path = Path(__file__).parent / "trace_template.html"
  24. with open(template_path, "r", encoding="utf-8") as f:
  25. template_content = f.read()
  26. html_content = template_content.replace(
  27. '"__TRACE_LIST_DATA__"',
  28. json.dumps(trace_list_data, ensure_ascii=False)
  29. ).replace(
  30. '"__TRACE_DETAIL_DATA__"',
  31. json.dumps(trace_detail_data, ensure_ascii=False)
  32. )
  33. # 确定输出路径
  34. if output_path is None:
  35. output_path = Path(__file__).parent / "trace_visualization.html"
  36. else:
  37. output_path = Path(output_path)
  38. # 写入 HTML 文件
  39. with open(output_path, 'w', encoding='utf-8') as f:
  40. f.write(html_content)
  41. print(f"可视化文件已生成: {output_path}")
  42. return output_path
  43. if __name__ == "__main__":
  44. generate_trace_visualization_html()