]> granicus.if.org Git - python/commitdiff
Issue 9856: Change object.__format__ with a non-empty format string from a PendingDep...
authorEric V. Smith <eric@trueblade.com>
Sat, 12 Mar 2011 15:08:48 +0000 (10:08 -0500)
committerEric V. Smith <eric@trueblade.com>
Sat, 12 Mar 2011 15:08:48 +0000 (10:08 -0500)
Lib/test/test_builtin.py
Lib/test/test_unicode.py
Misc/NEWS
Objects/typeobject.c

index 61d40464990d2e247ff76e3ded0710b917dd3f6f..b094a65f248750be311ad2be0718c0e2f3297dec 100644 (file)
@@ -1279,14 +1279,14 @@ class BuiltinTest(unittest.TestCase):
 
         # --------------------------------------------------------------------
         # Issue #7994: object.__format__ with a non-empty format string is
-        #  pending deprecated
+        #  deprecated
         def test_deprecated_format_string(obj, fmt_str, should_raise_warning):
             with warnings.catch_warnings(record=True) as w:
-                warnings.simplefilter("always", PendingDeprecationWarning)
+                warnings.simplefilter("always", DeprecationWarning)
                 format(obj, fmt_str)
             if should_raise_warning:
                 self.assertEqual(len(w), 1)
-                self.assertIsInstance(w[0].message, PendingDeprecationWarning)
+                self.assertIsInstance(w[0].message, DeprecationWarning)
                 self.assertIn('object.__format__ with a non-empty format '
                               'string', str(w[0].message))
             else:
index 5fc30db4d375c36b89b49bc8f1dbb3656834e5ca..ace3736abe8914e50ece10a86210ef0a2bb1152d 100644 (file)
@@ -614,7 +614,7 @@ class UnicodeTest(string_tests.CommonTest,
         self.assertEqual('{0!s}'.format(G('data')), 'string is data')
 
         msg = 'object.__format__ with a non-empty format string is deprecated'
-        with support.check_warnings((msg, PendingDeprecationWarning)):
+        with support.check_warnings((msg, DeprecationWarning)):
             self.assertEqual('{0:^10}'.format(E('data')), ' E(data)  ')
             self.assertEqual('{0:^10s}'.format(E('data')), ' E(data)  ')
             self.assertEqual('{0:>15s}'.format(G('data')), ' string is data')
index 3b426465f0378a3d35ee1e2745adcf11cab4c64c..7cfd3fc10bd95dbce0830d8d951544351404f5a1 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,10 @@ What's New in Python 3.3 Alpha 1?
 Core and Builtins
 -----------------
 
+- Issue #9856: Change object.__format__ with a non-empty format string
+  to be a DeprecationWarning. In 3.2 it was a PendingDeprecationWarning.
+  In 3.4 it will be a TypeError.
+
 - Issue #11244: The peephole optimizer is now able to constant-fold
   arbitrarily complex expressions.  This also fixes a 3.2 regression where
   operations involving negative numbers were not constant-folded.
index efeaa9d43a43cac5a19e6e6c675e3af9d88d0bbe..91a8a8b5537152a5e3a21ff1d41b7fc7785bbd5c 100644 (file)
@@ -3401,21 +3401,21 @@ object_format(PyObject *self, PyObject *args)
     self_as_str = PyObject_Str(self);
     if (self_as_str != NULL) {
         /* Issue 7994: If we're converting to a string, we
-          should reject format specifications */
+           should reject format specifications */
         if (PyUnicode_GET_SIZE(format_spec) > 0) {
-           if (PyErr_WarnEx(PyExc_PendingDeprecationWarning,
-                            "object.__format__ with a non-empty format "
-                            "string is deprecated", 1) < 0) {
-             goto done;
-           }
-           /* Eventually this will become an error:
-              PyErr_Format(PyExc_TypeError,
-              "non-empty format string passed to object.__format__");
-              goto done;
-           */
-       }
+            if (PyErr_WarnEx(PyExc_DeprecationWarning,
+                             "object.__format__ with a non-empty format "
+                             "string is deprecated", 1) < 0) {
+              goto done;
+            }
+            /* Eventually this will become an error:
+               PyErr_Format(PyExc_TypeError,
+               "non-empty format string passed to object.__format__");
+               goto done;
+            */
+        }
 
-       result = PyObject_Format(self_as_str, format_spec);
+        result = PyObject_Format(self_as_str, format_spec);
     }
 
 done: