File size: 730 Bytes
5ee1d2c c4dff93 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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"""
<h1>LabOps Dashboard Report</h1>
<p>Generated on: {pd.Timestamp.now().strftime('%Y-%m-%d')}</p>
<h2>Log Data</h2>
{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 |