from weasyprint import HTML
import pandas as pd
import logging
import os
logger = logging.getLogger(__name__)
def generate_pdf(df):
"""Generate a PDF report from log data."""
logger.info("Generating PDF report...")
try:
html_content = f"""
LabOps Dashboard Report
Generated on: {pd.Timestamp.now().strftime('%Y-%m-%d')}
Log Data
{df.head().to_html(index=False)}
"""
pdf_path = "/tmp/labops_report.pdf"
HTML(string=html_content).write_pdf(pdf_path)
logger.info(f"PDF report saved to {pdf_path}")
return pdf_path
except Exception as e:
logger.error(f"Failed to generate PDF report: {e}")
raise