mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	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
					
				
					 5 changed files with 27 additions and 3 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue