diff options
author | Christian Heimes <christian@cheimes.de> | 2007-11-27 23:16:44 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2007-11-27 23:16:44 (GMT) |
commit | 28104c58d2457e2b74245a49e703d020cc2489df (patch) | |
tree | 32607b7c0a2319ecff83e9ade5613a37d65a18d7 | |
parent | 715ec1818de43836cffea50d5f4b5e53fc68a849 (diff) | |
download | cpython-28104c58d2457e2b74245a49e703d020cc2489df.zip cpython-28104c58d2457e2b74245a49e703d020cc2489df.tar.gz cpython-28104c58d2457e2b74245a49e703d020cc2489df.tar.bz2 |
Expose Py_Py3kWarningFlag as sys.py3kwarning as discussed in #1504
Also added a warning.warnpy3k() as convenient method for Python 3.x related deprecation warnings.
-rw-r--r-- | Doc/library/warnings.rst | 8 | ||||
-rw-r--r-- | Lib/new.py | 6 | ||||
-rw-r--r-- | Lib/warnings.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Python/sysmodule.c | 2 |
5 files changed, 27 insertions, 3 deletions
diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst index 6049f5d..6188195 100644 --- a/Doc/library/warnings.rst +++ b/Doc/library/warnings.rst @@ -200,6 +200,14 @@ Available Functions was added in Python 2.5.) +.. function:: warnpy3k(message[, category[, stacklevel]]) + + Issue a warning related to Python 3.x deprecation. Warnings are only shown + when Python is started with the -3 option. Like func:`warn` *message* must + be a string and *category* a subclass of :exc:`Warning`. :func:`warnpy3k` + is using :exc:`DeprecationWarning` as default warning class. + + .. function:: showwarning(message, category, filename, lineno[, file]) Write a warning to a file. The default implementation calls @@ -3,9 +3,9 @@ This module is no longer required except for backward compatibility. Objects of most types can now be created by calling the type object. """ -from warnings import warn as _warn -_warn("The 'new' module is not supported in 3.x, use the 'types' module " - "instead.", DeprecationWarning, 2) +from warnings import warnpy3k as _warnpy3k +_warnpy3k("The 'new' module is not supported in 3.x, use the 'types' module " + "instead.", stacklevel=2) from types import ClassType as classobj from types import FunctionType as function diff --git a/Lib/warnings.py b/Lib/warnings.py index b7fac69..970d0ff 100644 --- a/Lib/warnings.py +++ b/Lib/warnings.py @@ -125,6 +125,16 @@ def warn_explicit(message, category, filename, lineno, # Print message and context showwarning(message, category, filename, lineno) +def warnpy3k(message, category=None, stacklevel=1): + """Issue a deprecation warning for Python 3.x related changes. + + Warnings are omitted unless Python is started with the -3 option. + """ + if sys.py3kwarning: + if category is None: + category = DeprecationWarning + warn(message, category, stacklevel+1) + def showwarning(message, category, filename, lineno, file=None): """Hook to write a warning to a file; replace if you like.""" if file is None: @@ -12,6 +12,8 @@ What's New in Python 2.6 alpha 1? Core and builtins ----------------- +- Expose the Py_Py3kWarningFlag as sys.py3kwarning. + - Issue #1445: Fix a SystemError when accessing the ``cell_contents`` attribute of an empty cell object. @@ -837,6 +839,8 @@ Library Extension Modules ----------------- +- Added warnpy3k function to the warnings module. + - Marshal.dumps() now expects exact type matches for int, long, float, complex, tuple, list, dict, set, and frozenset. Formerly, it would silently miscode subclasses of those types. Now, it raises a ValueError instead. diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 774a7db..617c38a 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1167,6 +1167,8 @@ _PySys_Init(void) PyString_FromString(Py_GetExecPrefix())); SET_SYS_FROM_STRING("maxint", PyInt_FromLong(PyInt_GetMax())); + SET_SYS_FROM_STRING("py3kwarning", + PyBool_FromLong(Py_Py3kWarningFlag)); #ifdef Py_USING_UNICODE SET_SYS_FROM_STRING("maxunicode", PyInt_FromLong(PyUnicode_GetMax())); |