CodeTribunal / src /code_tribunal /ui /exports.py
amine-yagoub's picture
feat: introduce gradio-based interface for courtroom trials
ca2b985
"""Report export: Markdown and PDF."""
import tempfile
import time
from pathlib import Path
from markdown_pdf import MarkdownPdf, Section
from code_tribunal.ui.helpers import evidence_html
def export_md(ctx: dict) -> str:
"""Export trial context as a Markdown file. Returns the file path."""
md = [
"# CodeTribunal — Trial Report\n",
f"**Generated**: {time.strftime('%Y-%m-%d %H:%M:%S')}\n",
"---\n",
]
for key in ["evidence", "verdict", "report"]:
value = ctx.get(key, "")
if value:
md.append(f"## {key.title()}\n\n{value}\n\n")
fp = tempfile.mktemp(suffix="_CodeTribunal_Report.md")
Path(fp).write_text("\n".join(md))
return fp
def export_pdf(ctx: dict) -> str:
"""Export trial context as a PDF file. Returns the file path."""
sections = []
for key in ["evidence", "verdict", "report"]:
value = ctx.get(key, "")
if value:
sections.append(f"## {key.title()}\n\n{value}")
full_md = (
f"# CodeTribunal - Trial Report\n\n"
f"*Generated: {time.strftime('%Y-%m-%d %H:%M:%S')}*\n\n---\n\n"
+ "\n".join(sections)
)
pdf = MarkdownPdf()
pdf.add_section(Section(full_md))
fp = tempfile.mktemp(suffix="_CodeTribunal_Report.pdf")
pdf.save(fp)
return fp