Gee, it sounds like I’ve changed my sexual orientation or something. But it’s not like that at all. As I noted in my previous post, I’ve found significant flow issues with Geraldo Reports which I have found rather more intractable than I then thought. So I got to thinking, in my best Jeremy Clarkson mode, “how hard can it be?”
This morning I hacked out the first version of PollyReports.py. You can see it here:
The current version handles detail bands and page headers and footers. I intend to add grandtotal and subtotal bands shortly.
With this module I’m taking a different approach than that applied by the developer(s) of Geraldo Reports. First of all, PollyReports will never be as ambitious. If I can manage to do so at all, PollyReports will always be contained within a single source file. I am a bear of little brain and prefer my code small and simple. In fact, I’m trying to follow the adage to create the “simplest thing that can possibly work.”
By contrast, Geraldo Reports has numerous source files, with the generator modules separated from the formatting modules. I’ve felt from the start that this was not necessary. PollyReports is designed around Reportlab, but does not import it at all; rather, it assumes that the Canvas object you pass into it will follow the Reportlab Canvas interface. Pure duck typing. Creating a wrapper that implements that interface adequately for PollyReports’ purposes shouldn’t be all that difficult; though I have no current plans to do so, I can easily imagine wrapping my MSWinPrint.py module in that way.
Right now, in fact, PollyReports.py imports nothing (except in the test rig, where Reportlab’s Canvas is imported). Though it’s not really a good idea, doing:
from PollyReports import *
would likely work just fine for most people… there’s just not that much in PollyReports’ namespace, and I don’t plan to put much there. I’m trying to implement all my utility functions as methods to avoid any excess names being imported.
So anyway, sayonara, Geraldo Reports. It was fun while it lasted. Well, not so much there at the end… like many relationships, this one is ending on a sour note.