On Tuesday, 6 May 2014 13:08:23 UTC-7, Jonathan Vanasco wrote: > > This doesn't make much sense to me. > > Wouldn't there be much more utility to have the response_callback AFTER > the response is created, this way it can operate on the response object? > > I did some digging in the source, and came across this change: > > > https://github.com/Pylons/pyramid/commit/fc477b2e4b20ae2788e468e45b2831e774be8ced > > and this issue: > > https://github.com/Pylons/pyramid/issues/1116 > So now it makes perfect sense. > It's probably worth discussing this in the docs near the "Response > Callbacks" and "NewResponse" sections. > > Chris's text in the commit is perfect: > > The ``pyramid.events.NewResponse`` event is now sent **after** response > callbacks are executed. It previously executed before response callbacks > were executed. Rationale: it's more useful to be able to inspect the > response after response callbacks have done their jobs instead of before. > > Including more hooks, I think this is the execution order:
1. request extensions 2. tween in 3. NewRequest 4. ContextFound 5. view 6. BeforeRender (if view did not return a Response) 7. renderer (if view did not return a Response) 8. tween out 9. request.response_callbacks 10. NewResponse 11. request.finished_callbacks I was a little surprised by the placement of NewResponse in the list too, I haven't used it yet and assumed it would be notified during the response_factory. Though if that were the case, it would not be notified for exceptions or explicit responses. If it went before tween out, then it would not be notified on exception views. Given NewRequest and NewResponse are not notified symmetrically, perhaps BeforeDispatch and BeforeEgress would be better names? We should also fix the order in http://docs.pylonsproject.org/projects/pyramid/en/latest/api/events.html as NewResponse comes between ContextFound and BeforeRender in that list. Laurence -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
