Further Reading: Automated Reporting
Tier 1: Essential Reading
FPDF2 documentation. py-pdf.github.io/fpdf2/ The official FPDF2 documentation with examples for tables, images, multi-page documents, and templates. Essential for PDF generation.
ReportLab documentation. www.reportlab.com/docs/reportlab-userguide.pdf The official ReportLab user guide. More complex than FPDF2's docs but covers advanced layout features.
python-pptx documentation. python-pptx.readthedocs.io The official documentation for python-pptx. Covers slide layouts, slot elements, shapes, and chart embedding.
Tier 2: Recommended Specialized Sources
Jinja2 documentation. jinja.palletsprojects.com The official Jinja2 docs. Template syntax, inheritance, filters, macros, and the Environment API.
WeasyPrint documentation. doc.courtbouillon.org/weasyprint/ For HTML-to-PDF conversion. Good CSS support and no external binary dependencies.
Python email documentation. docs.python.org/3/library/email.html The standard-library email module. Covers MIME, multipart messages, encoding, and smtplib. Essential for building email workflows without third-party dependencies.
SendGrid Python library. github.com/sendgrid/sendgrid-python For production email delivery. SendGrid (now Twilio) is one of the most popular transactional email services. Alternatives: Mailgun, Postmark, AWS SES.
IPCC AR6 figures repository. github.com/IPCC-WG1/AR6-figures Some IPCC chapters published their figure-generation scripts. An interesting example of production scientific figure code.
Crontab Guru. crontab.guru An interactive tool for testing cron expressions. Type a schedule string and see what it means in human-readable form. Useful for avoiding common cron mistakes.
Tier 3: Tools and Online Resources
| Resource | URL / Source | Description |
|---|---|---|
| FPDF2 GitHub | github.com/py-pdf/fpdf2 | The FPDF2 source code. |
| ReportLab GitHub | github.com/Distrib-Tools/reportlab | The ReportLab source (and PyPI mirror). |
| python-pptx GitHub | github.com/scanny/python-pptx | python-pptx source and examples. |
| openpyxl | openpyxl.readthedocs.io | Excel file generation. Alternative to python-pptx for stakeholders who want Excel. |
| xlsxwriter | xlsxwriter.readthedocs.io | Another Excel library with different strengths (faster writes, better formatting). |
| pdfplumber | github.com/jsvine/pdfplumber | For reading PDFs (not generating). Useful for testing generated PDFs or extracting data. |
| pypdf | pypdf.readthedocs.io | General PDF manipulation: merge, split, encrypt, extract pages. |
| Jinja2 template designer docs | jinja.palletsprojects.com/templates/ | The template syntax reference for authors. |
| APScheduler | apscheduler.readthedocs.io | Python scheduling library for in-process scheduling. Alternative to cron. |
| Healthchecks.io | healthchecks.io | Cron monitoring service. Free tier available. Pings you if a scheduled job doesn't run. |
| Cronitor | cronitor.io | Similar to Healthchecks.io with additional features. |
| Prefect | prefect.io | Workflow orchestration for data pipelines. More complex than cron but powerful for multi-step workflows. |
A note on reading order: If you want one additional source, read the FPDF2 examples in the official documentation — they cover most common PDF generation patterns with working code. For email workflows, the Python standard-library email and smtplib documentation is sufficient for most cases; move to SendGrid or similar only when you need production-grade delivery.