[Python-checkins] r73775 - in python/branches/release26-maint: Lib/test/test_py3kwarn.py Misc/NEWS Objects/methodobject.c

benjamin.peterson python-checkins at python.org
Thu Jul 2 19:19:23 CEST 2009


Author: benjamin.peterson
Date: Thu Jul 2 19:19:22 2009
New Revision: 73775
Log:
Merged revisions 73774 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk
........
 r73774 | benjamin.peterson | 2009年07月02日 12:06:17 -0500 (2009年7月02日) | 1 line
 
 only order comparisons are removed in py3k #6119
........
Modified:
 python/branches/release26-maint/ (props changed)
 python/branches/release26-maint/Lib/test/test_py3kwarn.py
 python/branches/release26-maint/Misc/NEWS
 python/branches/release26-maint/Objects/methodobject.c
Modified: python/branches/release26-maint/Lib/test/test_py3kwarn.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_py3kwarn.py	(original)
+++ python/branches/release26-maint/Lib/test/test_py3kwarn.py	Thu Jul 2 19:19:22 2009
@@ -22,6 +22,9 @@
 def assertWarning(self, _, warning, expected_message):
 self.assertEqual(str(warning.message), expected_message)
 
+ def assertNoWarning(self, _, recorder):
+ self.assertEqual(len(recorder.warnings), 0)
+
 def test_backquote(self):
 expected = 'backquote not supported in 3.x; use repr()'
 with check_warnings() as w:
@@ -132,7 +135,7 @@
 
 def test_builtin_function_or_method_comparisons(self):
 expected = ('builtin_function_or_method '
- 'inequality comparisons not supported in 3.x')
+ 'order comparisons not supported in 3.x')
 func = eval
 meth = {}.get
 with check_warnings() as w:
@@ -143,6 +146,12 @@
 self.assertWarning(meth <= func, w, expected)
 w.reset()
 self.assertWarning(meth >= func, w, expected)
+ w.reset()
+ self.assertNoWarning(meth == func, w)
+ self.assertNoWarning(meth != func, w)
+ lam = lambda x: x
+ self.assertNoWarning(lam == func, w)
+ self.assertNoWarning(lam != func, w)
 
 def test_sort_cmp_arg(self):
 expected = "the cmp argument is not supported in 3.x"
Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Thu Jul 2 19:19:22 2009
@@ -15,6 +15,9 @@
 - Issue #4547: When debugging a very large function, it was not always
 possible to update the lineno attribute of the current frame.
 
+- Issue #6119: Fixed a incorrect Py3k warning about order comparisons of builtin
+ functions and methods.
+
 - Issue #5330: C functions called with keyword arguments were not reported by
 the various profiling modules (profile, cProfile). Patch by Hagen F�rstenau.
 
Modified: python/branches/release26-maint/Objects/methodobject.c
==============================================================================
--- python/branches/release26-maint/Objects/methodobject.c	(original)
+++ python/branches/release26-maint/Objects/methodobject.c	Thu Jul 2 19:19:22 2009
@@ -230,12 +230,9 @@
 	PyObject *res;
 	int eq;
 
-	if ((op != Py_EQ && op != Py_NE) ||
-	 !PyCFunction_Check(self) ||
-	 !PyCFunction_Check(other))
-	{
-		/* Py3K warning if types are not equal and comparison isn't == or != */
-		if (PyErr_WarnPy3k("builtin_function_or_method inequality "
+	if (op != Py_EQ && op != Py_NE) {
+		/* Py3K warning if comparison isn't == or !=. */
+		if (PyErr_WarnPy3k("builtin_function_or_method order "
 				 "comparisons not supported in 3.x", 1) < 0) {
 			return NULL;
 		}
@@ -243,6 +240,10 @@
 		Py_INCREF(Py_NotImplemented);
 		return Py_NotImplemented;
 	}
+	else if (!PyCFunction_Check(self) || !PyCFunction_Check(other)) {
+		Py_INCREF(Py_NotImplemented);
+		return Py_NotImplemented;
+	}
 	a = (PyCFunctionObject *)self;
 	b = (PyCFunctionObject *)other;
 	eq = a->m_self == b->m_self;


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /