Hi! On Sun, 2008-03-09 at 20:54 -0400, Gary Poster wrote:
I did have one somewhat trivial thought. I generally prefer durations and intervals expressed as datetime.timedeltas myself, because they convey their meaning without having to look it up docs (is that number value a number of seconds? milliseconds? minutes?). There might even be a zcml built in for schema field for that; I believe I remember that there is in ZConfig.
Minor detail - yes it has warts - there are other things that will need doing to, its just time that this code was put out there.
Also, some variety of doctest would be nice. Even when a package is not using doctests, I add new tests as doctest unless there's a really good reason not to.
It was the only way I could debug and introspect the problems from the Unit tests - the python debugger does not run properly from the doctests, and the original test are all unit tests...
In this case, it looks like you've made the code significantly more robust, which has added some probably necessary complexity. The code looks readable, but I recommend a maintainer-oriented overview/ introduction as a doctest, at the least. For instance, perhaps you could think about documentation about the rationale for the approach and about the dance that this code participates in (with the lock files and all the possible SMTP error conditions and the code's responses). Of course, even more friendly docs than that would be nice, but I'm only asking for what I myself tend to give, unfortunately.
A little does need adding there - I have scanned state machine diagrams and the design rationale. I will go and put those in the checkin when I have a spare moment. Regards, Matthew