[Python-Dev] Exception masking/chaining

Guido van Rossum guido@python.org
Thu, 12 Jun 2003 13:37:45 -0400


> > > As an aside, is it planned that sys.exc_traceback,type and value
> > > will start emitting DeprecationWarnings any time soon? [...]
> > 
> > It's hard to put a deprecation warning on these, because they're just
> > module attributes.
> 
> This came up a day or two ago in c.l.py too.  Bernhard Herzog
> suggested:
> 
>     What you could do, I think, is turn sys into an instance of a subclass
>     of module and make exc_traceback and friends properties in that new
>     subclass whose get functions simply return the appropriate value from
>     sys.exc_info(). That would actually solve the bug wrt. threading and the
>     get function could also issue a warning.  [1]
> 
> Seems feasible; but also seems to incur a cost for every attribute
> lookup in sys, and might be a bad precedent for fancy attribute
> access for modules.
> 
> [1]
> <http://groups.google.com/groups?selm=6qn0gp23kr.fsf%40salmakis.intevation.de>

Well, this *is* the recommended trick when you absolutely, really need
to trap module attribute access.  I don't expect access to sys
attributes to be time-critical, with a possible exception for
sys.stdout (which is used internally by the print statement).  But I
think attribute access, even with a warnings check, can be fast
enough.

The big problem is that it would require a major rewrite of the sys
module, wouldn't it?

--Guido van Rossum (home page: http://www.python.org/~guido/)