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:
Christian Heimes 2007-11-27 23:16:44 +00:00
parent 715ec1818d
commit 28104c58d2
5 changed files with 27 additions and 3 deletions

View file

@ -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

View file

@ -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: