mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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.) | ||||
| 
 | ||||
| 
 | ||||
| .. 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 | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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())); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Christian Heimes
						Christian Heimes