On Fri, 2 May 2008 09:32:49 -0400, Jean-Paul Calderone <[EMAIL PROTECTED]>
wrote:
On Thu, 1 May 2008 19:31:20 -0700, Brett Cannon <[EMAIL PROTECTED]> wrote:
[snip]
I just closed the release blocker I created (the
backwards-compatibility issue with warnings.showwarning() ). I would
like to add a PendingDeprecationWarning (or stronger) to 2.6 for
showwarning() implementations that don't support the optional 'line'
argument. I guess the best way to do it in C code would be to see if
PyFunction_GetDefaults() returns a tuple of length two (since
showwarning() already has a single optional argument as it is).
Hi Brett,
I'm still seeing some strange behavior from the warnings module, This
can be observed on the community buildbot for Twisted, for example:
http://python.org/dev/buildbot/community/trunk/x86%20Ubuntu%20Hardy%20trunk/builds/171
/step-Twisted.zope.stable/0
The log ends with basically all of the warning-related tests in Twisted
failing, reporting that no warnings happened.
Just to follow up on this part, the failures are due to the tests expecting
to be able to override a different function in the warnings module, not
showwarning (warn_explicit). We used warn_explicit because there's no way
to clear way to disable the filtering that gets applied to showwarning.
warn_explicit doesn't claim to be a public hook, so I guess I won't complain
about this. :)
The below behavior still seems wrong to me, though.
There is also some strange behavior that can be easily observed in the REPL:
[EMAIL PROTECTED]:~/Projects/python/trunk$ ./python
/home/exarkun/Projects/Divmod/trunk/Combinator/combinator/xsite.py:7:
DeprecationWarning: the sets module is deprecated
from sets import Set
Python 2.6a2+ (trunk:62636M, May 2 2008, 09:19:41) [GCC 4.1.3
20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import warnings
>>> warnings.warn("foo")
:1: UserWarning: foo # Where'd the module name go?
>>> def f(*a):
... print a
...
>>> warnings.showwarning = f
>>> warnings.warn("foo")
>>> # Where'd the warning go?
Any ideas on this?
Jean-Paul
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com