[02:50] <lifeless> wgrant: hey
[02:51] <lifeless> wgrant: is there a good thing around for generating comprehensive per-project stats of bugs?
[02:51] <lifeless> wgrant: specifically # opened/day, # changed state/day # commented on by non-devs/day etc?
[02:52] <wgrant> lifeless: No existing API script that I know of.
[02:56] <lifeless> nuts
[02:56] <lifeless> thanks
[06:21] <stub> wgrant: So I think that @inlineCallbacks decorator is required because, despite having the result tossed away, the yields does let the reactor do its thing and all the processing completes before it returns and gets its result tossed
[06:22] <stub> I seem to be able to hold twisted in my head for about 3 days before I forget how it fits together :-/
[06:27] <wgrant> Hum, that shouldn't work :/
[06:29] <wgrant> stub: Where does the exception show up if you raise one after a yield in resumeProcessing?
[06:42] <stub> wgrant: https://pastebin.canonical.com/101029/
[06:46] <stub> Its all so lovely and magical ;)
[06:47] <stub> I thought I understood how it was working, but that might have just been me rationalising observed behaviour.
[06:59] <stub> The request invokes resumeProcessing for the producer to actually produce something. It doesn't care what it returns, as it is responsible for spitting out the data. It can do this asynchronously if it wants.
[07:00] <wgrant> Yeah, but normally in Twisted you have to return the deferred up to the reactor before it's executed.
[07:41] <lifeless> wgrant: huh? no
[07:41] <lifeless> wgrant: the reactor holds references to things it will fire like protocols and callLaters
[07:42] <lifeless> wgrant: you return defereds so that your caller can attach a callback
[07:43] <wgrant> lifeless: But a deferred won't fire until it has a callback attached, will it?
[07:43] <wgrant> Hm, though I guess that doesn't matter here.
[07:44] <lifeless> no
[07:44] <lifeless> defereds can fire before the callback is attached
[07:45] <wgrant> stub: Anyway, if resumeProducing is allowed to do nothing immediately I suppose that works.
[07:52] <stub> yes, resumeProducing is invoked and expected to eventually produce the result. Its actual return value is ignored.