[Python-ideas] Extending traceback to (optionally) format and show locals.

Andrew Barnert abarnert at yahoo.com
Thu Nov 27 02:12:45 CET 2014


On Nov 26, 2014, at 15:45, Robert Collins <robertc at robertcollins.net> wrote:

> For context please see http://bugs.python.org/issue22937 and
> http://bugs.python.org/issue22936.
> 
> I have two questions I'm hoping to get answered through this thread:
> - does the change in question need a PEP? Antoine seemed to think it
> didn't, as long as it was opt-in (via the unittest CLI etc)
> - Is my implementation approach sound (for traceback, unittest I
> think I have covered :))?
> 
> 
> Implementation wise, I think its useful to work in the current
> traceback module layout - that is to alter extract_stack to
> (optionally) include rendered data about locals and then look for that
> and format it in format_list.
> 
> I'm sure there is code out there that depends on the quadruple nature
> of extract_stack though, so I think we need to preserve that. Three
> strategies occured to me; one is to have parallel functions, one
> quadruple, one quintuple. A second one is to have the return value of
> extract_stack be a quintuple when a new keyword parameter
> include_locals is included. Lastly, and this is my preferred one, if
> we return a tuple subclass with an attribute containing a dict with
> the rendered data on the locals; this can be present but None, or even
> just absent when extract_stack was not asked to include locals.

There are lots of other cases in the stdlib where something is usable as a tuple of n fields or as a structseq/namedtuple of >n fields: stat results, struct_tm, etc. So, why not do the same thing here?

> The last option is my preferred one because the other two both imply
> having a data structure which is likely to break existing code - and
> while you'd have to opt into having them it seems likely to require a
> systematic set of upgrades vs having an optional attribute that can be
> looked up.
> 
> So - thoughts?
> 
> -Rob
> 
> 
> -- 
> Robert Collins <rbtcollins at hp.com>
> Distinguished Technologist
> HP Converged Cloud
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/


More information about the Python-ideas mailing list