On Dec 24, 2003, at 1:37 AM, Gavrie Philipson wrote:
Christopher's workaround is fine, but doesn't solve the problem when using freeform.configure to render the form instead of my own form layout.
Yes. Supporting Deferred attribute values needs to happen.
Anyway, I just did a 'cvs update' to get the latest HEAD, and guess what? Now my test script doesn't work at all! When I run twistd -ony /tmp/formpost-defer.tac (the same script that I previously posted to this list), I get a traceback (see below).
Is this a bug? I did a clean install of the Quotient package and kept no old files around.
This is not a bug. However, it arises because of the really, really bad semantics of __implements__. Basically, you subclassed Renderer and didn't declare that your subclass implemented the interfaces which Renderer declares it implements. This didn't matter before, so you didn't notice that there was a problem. Now it matters, and boom. When declaring that a subclass implements some interfaces, don't forget to declare that it implements the super interfaces, too: class Foo(Renderer): __implements__ = IBar, Renderer.__implements__ Someone, can we please please switch to the better semantics for declaring implementation used by either z3 now or PyProtocols? dp