mirror of https://github.com/python/cpython.git
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.
This commit is contained in:
parent
715ec1818d
commit
28104c58d2
|
@ -200,6 +200,14 @@ Available Functions
|
||||||
was added in Python 2.5.)
|
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])
|
.. function:: showwarning(message, category, filename, lineno[, file])
|
||||||
|
|
||||||
Write a warning to a file. The default implementation calls
|
Write a warning to a file. The default implementation calls
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
This module is no longer required except for backward compatibility.
|
This module is no longer required except for backward compatibility.
|
||||||
Objects of most types can now be created by calling the type object.
|
Objects of most types can now be created by calling the type object.
|
||||||
"""
|
"""
|
||||||
from warnings import warn as _warn
|
from warnings import warnpy3k as _warnpy3k
|
||||||
_warn("The 'new' module is not supported in 3.x, use the 'types' module "
|
_warnpy3k("The 'new' module is not supported in 3.x, use the 'types' module "
|
||||||
"instead.", DeprecationWarning, 2)
|
"instead.", stacklevel=2)
|
||||||
|
|
||||||
from types import ClassType as classobj
|
from types import ClassType as classobj
|
||||||
from types import FunctionType as function
|
from types import FunctionType as function
|
||||||
|
|
|
@ -125,6 +125,16 @@ def warn_explicit(message, category, filename, lineno,
|
||||||
# Print message and context
|
# Print message and context
|
||||||
showwarning(message, category, filename, lineno)
|
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):
|
def showwarning(message, category, filename, lineno, file=None):
|
||||||
"""Hook to write a warning to a file; replace if you like."""
|
"""Hook to write a warning to a file; replace if you like."""
|
||||||
if file is None:
|
if file is None:
|
||||||
|
|
|
@ -12,6 +12,8 @@ What's New in Python 2.6 alpha 1?
|
||||||
Core and builtins
|
Core and builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Expose the Py_Py3kWarningFlag as sys.py3kwarning.
|
||||||
|
|
||||||
- Issue #1445: Fix a SystemError when accessing the ``cell_contents``
|
- Issue #1445: Fix a SystemError when accessing the ``cell_contents``
|
||||||
attribute of an empty cell object.
|
attribute of an empty cell object.
|
||||||
|
|
||||||
|
@ -837,6 +839,8 @@ Library
|
||||||
Extension Modules
|
Extension Modules
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Added warnpy3k function to the warnings module.
|
||||||
|
|
||||||
- Marshal.dumps() now expects exact type matches for int, long, float, complex,
|
- Marshal.dumps() now expects exact type matches for int, long, float, complex,
|
||||||
tuple, list, dict, set, and frozenset. Formerly, it would silently miscode
|
tuple, list, dict, set, and frozenset. Formerly, it would silently miscode
|
||||||
subclasses of those types. Now, it raises a ValueError instead.
|
subclasses of those types. Now, it raises a ValueError instead.
|
||||||
|
|
|
@ -1167,6 +1167,8 @@ _PySys_Init(void)
|
||||||
PyString_FromString(Py_GetExecPrefix()));
|
PyString_FromString(Py_GetExecPrefix()));
|
||||||
SET_SYS_FROM_STRING("maxint",
|
SET_SYS_FROM_STRING("maxint",
|
||||||
PyInt_FromLong(PyInt_GetMax()));
|
PyInt_FromLong(PyInt_GetMax()));
|
||||||
|
SET_SYS_FROM_STRING("py3kwarning",
|
||||||
|
PyBool_FromLong(Py_Py3kWarningFlag));
|
||||||
#ifdef Py_USING_UNICODE
|
#ifdef Py_USING_UNICODE
|
||||||
SET_SYS_FROM_STRING("maxunicode",
|
SET_SYS_FROM_STRING("maxunicode",
|
||||||
PyInt_FromLong(PyUnicode_GetMax()));
|
PyInt_FromLong(PyUnicode_GetMax()));
|
||||||
|
|
Loading…
Reference in New Issue