Thanks Ben! I tried out Tornado's handling of tracebacks on Python 2 and
you're right it's pretty impressive. Prints out exactly as you'd expect
(the entire coroutine chain).

I also noticed that Tornado supports running an entire chain of coroutines
synchronously if they never really yield (
https://github.com/tornadoweb/tornado/blob/master/tornado/gen.py#L182)
which is more similar to the behavior of how "yield from" would behave.
Whereas the trollius backport of asyncio doesn't do so (
https://bitbucket.org/enovance/trollius/src/8cd2101cc9ed75de7ae0c8983833522e0eaca2c0/trollius/tasks.py?at=trollius#cl-296)
but instead queues up the sub-generator to be later executed by the main
event loop.

Am I misinterpreting the difference here?

On Sat, Jan 10, 2015 at 12:40 PM, Andrew Svetlov <[email protected]>
wrote:

> Anyway, your traceback processing is very useful in Python 3 code
> debugging .
> Thanks to much.
>
> On Sat, Jan 10, 2015 at 10:29 PM, Ben Darnell <[email protected]> wrote:
> > FWIW, Tornado's version of Future adds exc_info and set_exc_info methods
> so
> > we can save tracebacks on python 2:
> >
> http://www.tornadoweb.org/en/stable/concurrent.html#tornado.concurrent.Future.set_exc_info
> >
> > This works pretty well for pure-tornado coroutines, although it doesn't
> help
> > if you're interacting with the backported concurrent.futures or trollius.
> >
> > -Ben
> >
> > On Tue, Dec 23, 2014 at 2:49 AM, Victor Stinner <
> [email protected]>
> > wrote:
> >>
> >> Hi,
> >>
> >> Backporting the whole exception feature to Python 2 is not possible.
> >> Develop with Python 3!
> >>
> >> Since the creation of Trollius, I'm trying the enhance debugging. For
> >> example, the latest release of trollius (version 1.0.4) now saves the
> >> traceback object in Future.set_exception() to be able to raise again the
> >> exception with the expected traceback.
> >>
> >> I'm working on a larger project to save the chain of coroutines as a
> large
> >> trabeback (stored as text) in debug mode, but for the "source traceback"
> >> (where rhe object was created), not for the exception traceback. I have
> a
> >> working patch on my PC. The following issue tracks the project:
> >> https://code.google.com/p/tulip/issues/detail?id=212
> >> (The goal changed, the issue title is not correct)
> >>
> >> Victor
> >
> >
>
>
>
> --
> Thanks,
> Andrew Svetlov
>



-- 
Isaac Goldberg

Reply via email to