File size: 1,636 Bytes
5e1dfdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from fpdf import FPDF
import pandas as pd

class ComplianceCert:
    def __init__(self, csv_path):
        self.df = pd.read_csv(csv_path)
    
    def _format_risk(self, trend):
        return {
            "↑": ("HIGH", (255,0,0)),
            "→": ("MEDIUM", (255,165,0)),
            "↓": ("LOW", (0,128,0))
        }.get(trend, ("UNKNOWN", (0,0,0)))

    def generate_pdf(self, output_path="compliance_cert.pdf"):
        pdf = FPDF()
        pdf.add_page()
        pdf.set_font("Arial", 'B', 16)
        pdf.cell(0, 10, "Agentic AI Deployment Compliance Certificate", ln=1, align='C')
        pdf.set_font("Arial", size=10)
        col_widths = [40, 30, 30, 30, 40]
        headers = ["Component", "Risk Trend", "Last Audit", "Automation", "Compliance"]
        for i, header in enumerate(headers):
            pdf.cell(col_widths[i], 10, header, border=1)
        pdf.ln()
        for _, row in self.df.iterrows():
            risk_text, risk_color = self._format_risk(row['Predicted_Risk_Trend'])
            pdf.cell(col_widths[0], 10, row['Component'], border=1)
            pdf.set_text_color(*risk_color)
            pdf.cell(col_widths[1], 10, risk_text, border=1)
            pdf.set_text_color(0,0,0)
            pdf.cell(col_widths[2], 10, str(row['Last_Audit_Date']), border=1)
            pdf.cell(col_widths[3], 10, f"Level {row['Automation_Level']}", border=1)
            pdf.cell(col_widths[4], 10, row['Compliance_Frameworks'].split(',')[0], border=1)
            pdf.ln()
        pdf.output(output_path)

if __name__ == "__main__":
    cert = ComplianceCert("master_plan_v3.2.csv")
    cert.generate_pdf()