this was super confusing to me for a while too, until i looked at some of
my debug info and really understood the tweens.
iirc, the callstack is essentially:
* tween start
* `handler(request)` ( which can wrap other tweens )
* tween end
* response callback
* finished callback
the tweens are ba
Since anything you do with request.response is ignored if a view returns a
response I found myself needing to use a request response callback. This did
not quite work as planned though: if you use pyramid_tm the pyramid router
will invoke commit the transaction before the response callbacks are