diff options
| -rw-r--r-- | Lib/test/test_getargs2.py | 17 | ||||
| -rw-r--r-- | Misc/NEWS | 5 | ||||
| -rw-r--r-- | Python/getargs.c | 20 | 
3 files changed, 9 insertions, 33 deletions
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py index 7fa598374e..baf70d1632 100644 --- a/Lib/test/test_getargs2.py +++ b/Lib/test/test_getargs2.py @@ -1,7 +1,6 @@  import unittest  from test import support  from _testcapi import getargs_keywords -import warnings  """  > How about the following counterproposal. This also changes some of @@ -190,21 +189,7 @@ class LongLong_TestCase(unittest.TestCase):          from _testcapi import getargs_L          # L returns 'long long', and does range checking (LLONG_MIN          # ... LLONG_MAX) -        with warnings.catch_warnings(): -            warnings.filterwarnings( -                "ignore", -                category=DeprecationWarning, -                message=".*integer argument expected, got float", -                module=__name__) -            self.assertEqual(3, getargs_L(3.14)) -        with warnings.catch_warnings(): -            warnings.filterwarnings( -                "error", -                category=DeprecationWarning, -                message=".*integer argument expected, got float", -                module="unittest") -            self.assertRaises(DeprecationWarning, getargs_L, 3.14) - +        self.assertRaises(TypeError, getargs_L, 3.14)          self.assertRaises(TypeError, getargs_L, "Hello")          self.assertEqual(99, getargs_L(Int())) @@ -12,6 +12,11 @@ What's New in Python 3.2 Alpha 1?  Core and Builtins  ----------------- +- Issue #8950: (See also issue #5080).  Py_ArgParse*() functions now +  raise TypeError instead of giving a DeprecationWarning when a float +  is parsed using the 'L' code (for long long).  (All other integer +  codes already raise TypeError in this case.) +  - Issue #8922: Normalize the encoding name in PyUnicode_AsEncodedString() to    enable shortcuts for upper case encoding name. Add also a shortcut for    "iso-8859-1" in PyUnicode_AsEncodedString() and PyUnicode_Decode(). diff --git a/Python/getargs.c b/Python/getargs.c index 2a26a8f9f3..127b1473a6 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -582,19 +582,6 @@ converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)  #define CONV_UNICODE "(unicode conversion error)" -/* explicitly check for float arguments when integers are expected.  For now - * signal a warning.  Returns true if an exception was raised. */ -static int -float_argument_warning(PyObject *arg) -{ -    if (PyFloat_Check(arg) && -        PyErr_Warn(PyExc_DeprecationWarning, -                   "integer argument expected, got float" )) -        return 1; -    else -        return 0; -} -  /* Explicitly check for float arguments when integers are expected.     Return 1 for error, 0 if ok. */  static int @@ -791,14 +778,13 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,      case 'L': {/* PY_LONG_LONG */          PY_LONG_LONG *p = va_arg( *p_va, PY_LONG_LONG * );          PY_LONG_LONG ival; -        if (float_argument_warning(arg)) +        if (float_argument_error(arg))              return converterr("long<L>", arg, msgbuf, bufsize);          ival = PyLong_AsLongLong(arg); -        if (ival == (PY_LONG_LONG)-1 && PyErr_Occurred() ) { +        if (ival == (PY_LONG_LONG)-1 && PyErr_Occurred())              return converterr("long<L>", arg, msgbuf, bufsize); -        } else { +        else              *p = ival; -        }          break;      }  | 
