[07:20] <mwhudson> lifeless: did you think about
[07:20] <mwhudson> 278	+ request = get_current_browser_request()
[07:20] <mwhudson> 279	+ timeline = get_request_timeline(request)
[07:20] <mwhudson> a helper for that ^ ?
[07:20] <lifeless> yes
[07:20] <lifeless> I felt it coupled things a little to much
[07:20] <lifeless> really we want the IAnnotations context thing
[07:21] <mwhudson> ah yeah
[07:21] <lifeless> this is at least clear that the context is 'a request' (for now)
[07:21] <lifeless> and if you have one, just passing it in and using it is ok
[07:21] <mwhudson> yeah, fair enough
[07:21] <mwhudson> another general comment: make actions context managers?
[07:22] <lifeless> definitely not
[07:22] <lifeless> you could make timeline a context manager
[07:22] <lifeless> and timedaction a context
[07:22] <lifeless> (__enter__ on timeline, returns a new TimedAction, __exit__ on TimedAction)
[07:23] <lifeless> the definitely not is because
[07:23] <lifeless> with action:
[07:23] <lifeless>  ...
[07:23] <lifeless> with action:
[07:23] <lifeless>  ...
[07:23] <lifeless> would not have any hope of DTRT cleanly
[07:23] <lifeless> with timeline as action:
[07:23] <lifeless>  ...
[07:23] <lifeless> would
[07:23] <lifeless> or
[07:23] <mwhudson> yeah, i guess that would be better
[07:23] <lifeless> with timeline.start('foo', 'bar'):
[07:23] <lifeless>  ...
[07:24] <lifeless> is probably what would work well.
[07:24] <lifeless> we can revisit and do this, I think its a reasonable train of thought
[07:24] <lifeless> but - for SQL, due to the way tracers are done, certainly not complete.
[07:24] <lifeless> and the first cut of this was to replace request_statements
[07:26] <mwhudson> lifeless: branch reviewed
[07:26] <lifeless> thank you
[07:26] <mwhudson> lifeless: it's clear you've thought about this much more than me, so i'm happy :-)
[07:27] <mwhudson> heh, stupid braino in the review comment
[07:27] <mwhudson> oh well
[07:27] <mwhudson> s/database/librarian/
[07:28] <lifeless> database almost matter
[07:28] <lifeless> I've answer there for posterity
[07:30] <lifeless> login() should really be 'start_request()'
[07:30] <lifeless> given what it does
[07:30] <lifeless> or something
[07:33] <mwhudson> set_participation() would be more confusing but would encourage understanding of what it does
[07:34] <lifeless> true
[07:34] <mwhudson> personally, i prefer calling it a participation in general and a request in the appserver, but this idea may not have caught on yet