jayasrees commited on
Commit
ccecc05
·
1 Parent(s): 13b71d5

Remove erroneous self-import in pdf_generator.py

Browse files
Files changed (2) hide show
  1. .gitignore +0 -1
  2. output/pdf_generator.py +41 -28
.gitignore CHANGED
@@ -40,7 +40,6 @@ logs/
40
  *.sqlite3
41
 
42
  # Runtime artifacts
43
- output/
44
  tmp/
45
  *.tmp
46
 
 
40
  *.sqlite3
41
 
42
  # Runtime artifacts
 
43
  tmp/
44
  *.tmp
45
 
output/pdf_generator.py CHANGED
@@ -1,12 +1,11 @@
1
-
2
  from reportlab.lib.pagesizes import letter
3
  from reportlab.pdfgen import canvas
4
  from reportlab.lib import colors
5
  from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
6
  from reportlab.lib.styles import getSampleStyleSheet
7
- from .output.pdf_generator import generate_pdf_report
8
  import io
9
 
 
10
  def generate_pdf_report(results):
11
  """
12
  Generates a PDF report from analysis results.
@@ -18,11 +17,11 @@ def generate_pdf_report(results):
18
  buffer = io.BytesIO()
19
  doc = SimpleDocTemplate(buffer, pagesize=letter)
20
  elements = []
21
-
22
  styles = getSampleStyleSheet()
23
- title_style = styles['Title']
24
- heading_style = styles['Heading2']
25
- normal_style = styles['Normal']
26
 
27
  # Title
28
  elements.append(Paragraph("Semantic Integrity Analysis Report", title_style))
@@ -32,47 +31,61 @@ def generate_pdf_report(results):
32
  elements.append(Paragraph("No integrity issues detected.", normal_style))
33
  else:
34
  # Summary
35
- elements.append(Paragraph(f"Total Potential Issues Found: {len(results)}", normal_style))
 
 
36
  elements.append(Spacer(1, 12))
37
 
38
  # Table Header
39
- data = [['S.No', 'Label', 'Loc', 'Reason']]
40
-
41
  # Table Data
42
  for idx, r in enumerate(results):
43
- # Text wrapping for table cells needs explicit Paragraph usage usually,
44
  # but for simplicity we truncate or just list them.
45
  # To make it robust, we'll list details below the table or keep table simple.
46
  row = [
47
  str(idx + 1),
48
- r.get('Label', 'N/A'),
49
- r.get('Location 1', '').replace('Pg ', 'P').replace('Ln ', 'L'),
50
- r.get('Reason', 'N/A')
51
  ]
52
  data.append(row)
53
 
54
  # Create Table
55
  t = Table(data, colWidths=[30, 90, 60, 320])
56
- t.setStyle(TableStyle([
57
- ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
58
- ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
59
- ('ALIGN', (0, 0), (-1, -1), 'LEFT'),
60
- ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
61
- ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
62
- ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
63
- ('GRID', (0, 0), (-1, -1), 1, colors.black),
64
- ]))
 
 
 
 
65
  elements.append(t)
66
-
67
  elements.append(Spacer(1, 24))
68
-
69
  # Detailed Findings
70
  elements.append(Paragraph("Detailed Findings", heading_style))
71
  for idx, r in enumerate(results):
72
- elements.append(Paragraph(f"<b>Issue #{idx + 1}: {r.get('Label')}</b>", normal_style))
73
- elements.append(Paragraph(f"<i>Reason:</i> {r.get('Reason')}", normal_style))
74
- elements.append(Paragraph(f"<i>Clause 1:</i> {r.get('Clause 1')}", normal_style))
75
- elements.append(Paragraph(f"<i>Clause 2:</i> {r.get('Clause 2')}", normal_style))
 
 
 
 
 
 
 
 
76
  elements.append(Spacer(1, 12))
77
  elements.append(Paragraph("-" * 60, normal_style))
78
  elements.append(Spacer(1, 12))
 
 
1
  from reportlab.lib.pagesizes import letter
2
  from reportlab.pdfgen import canvas
3
  from reportlab.lib import colors
4
  from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
5
  from reportlab.lib.styles import getSampleStyleSheet
 
6
  import io
7
 
8
+
9
  def generate_pdf_report(results):
10
  """
11
  Generates a PDF report from analysis results.
 
17
  buffer = io.BytesIO()
18
  doc = SimpleDocTemplate(buffer, pagesize=letter)
19
  elements = []
20
+
21
  styles = getSampleStyleSheet()
22
+ title_style = styles["Title"]
23
+ heading_style = styles["Heading2"]
24
+ normal_style = styles["Normal"]
25
 
26
  # Title
27
  elements.append(Paragraph("Semantic Integrity Analysis Report", title_style))
 
31
  elements.append(Paragraph("No integrity issues detected.", normal_style))
32
  else:
33
  # Summary
34
+ elements.append(
35
+ Paragraph(f"Total Potential Issues Found: {len(results)}", normal_style)
36
+ )
37
  elements.append(Spacer(1, 12))
38
 
39
  # Table Header
40
+ data = [["S.No", "Label", "Loc", "Reason"]]
41
+
42
  # Table Data
43
  for idx, r in enumerate(results):
44
+ # Text wrapping for table cells needs explicit Paragraph usage usually,
45
  # but for simplicity we truncate or just list them.
46
  # To make it robust, we'll list details below the table or keep table simple.
47
  row = [
48
  str(idx + 1),
49
+ r.get("Label", "N/A"),
50
+ r.get("Location 1", "").replace("Pg ", "P").replace("Ln ", "L"),
51
+ r.get("Reason", "N/A"),
52
  ]
53
  data.append(row)
54
 
55
  # Create Table
56
  t = Table(data, colWidths=[30, 90, 60, 320])
57
+ t.setStyle(
58
+ TableStyle(
59
+ [
60
+ ("BACKGROUND", (0, 0), (-1, 0), colors.grey),
61
+ ("TEXTCOLOR", (0, 0), (-1, 0), colors.whitesmoke),
62
+ ("ALIGN", (0, 0), (-1, -1), "LEFT"),
63
+ ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
64
+ ("BOTTOMPADDING", (0, 0), (-1, 0), 12),
65
+ ("BACKGROUND", (0, 1), (-1, -1), colors.beige),
66
+ ("GRID", (0, 0), (-1, -1), 1, colors.black),
67
+ ]
68
+ )
69
+ )
70
  elements.append(t)
71
+
72
  elements.append(Spacer(1, 24))
73
+
74
  # Detailed Findings
75
  elements.append(Paragraph("Detailed Findings", heading_style))
76
  for idx, r in enumerate(results):
77
+ elements.append(
78
+ Paragraph(f"<b>Issue #{idx + 1}: {r.get('Label')}</b>", normal_style)
79
+ )
80
+ elements.append(
81
+ Paragraph(f"<i>Reason:</i> {r.get('Reason')}", normal_style)
82
+ )
83
+ elements.append(
84
+ Paragraph(f"<i>Clause 1:</i> {r.get('Clause 1')}", normal_style)
85
+ )
86
+ elements.append(
87
+ Paragraph(f"<i>Clause 2:</i> {r.get('Clause 2')}", normal_style)
88
+ )
89
  elements.append(Spacer(1, 12))
90
  elements.append(Paragraph("-" * 60, normal_style))
91
  elements.append(Spacer(1, 12))