From 04a29554c1fe0a06cdc657229bb4332eb017e3e9 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Sun, 3 Mar 2013 15:12:44 +0200 Subject: [PATCH] #17032: The "global" in the "NameError: global name 'x' is not defined" error message has been removed. Patch by Ram Rachum. --- Lib/test/test_keywordonlyarg.py | 4 ++-- Misc/ACKS | 1 + Misc/NEWS | 3 +++ Python/ceval.c | 8 +++----- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Lib/test/test_keywordonlyarg.py b/Lib/test/test_keywordonlyarg.py index f0580d36863..e4a44c1d8fd 100644 --- a/Lib/test/test_keywordonlyarg.py +++ b/Lib/test/test_keywordonlyarg.py @@ -182,10 +182,10 @@ class KeywordOnlyArgTestCase(unittest.TestCase): with self.assertRaises(NameError) as err: def f(v=a, x=b, *, y=c, z=d): pass - self.assertEqual(str(err.exception), "global name 'b' is not defined") + self.assertEqual(str(err.exception), "name 'b' is not defined") with self.assertRaises(NameError) as err: f = lambda v=a, x=b, *, y=c, z=d: None - self.assertEqual(str(err.exception), "global name 'b' is not defined") + self.assertEqual(str(err.exception), "name 'b' is not defined") def test_main(): diff --git a/Misc/ACKS b/Misc/ACKS index 3c024274ef9..efe81c240db 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -969,6 +969,7 @@ Fernando Pérez Pierre Quentel Brian Quinlan Anders Qvist +Ram Rachum Jérôme Radix Burton Radons Jeff Ramnani diff --git a/Misc/NEWS b/Misc/NEWS index a8392d5ad03..0f787d2046d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1? Core and Builtins ----------------- +- Issue #17032: The "global" in the "NameError: global name 'x' is not defined" + error message has been removed. Patch by Ram Rachum. + - Issue #17223: array module: Fix a crasher when converting an array containing invalid characters (outside range [U+0000; U+10ffff]) to Unicode: repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob. diff --git a/Python/ceval.c b/Python/ceval.c index d8787d3c228..6132e16ac8d 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -142,8 +142,6 @@ static PyObject * special_lookup(PyObject *, _Py_Identifier *); #define NAME_ERROR_MSG \ "name '%.200s' is not defined" -#define GLOBAL_NAME_ERROR_MSG \ - "global name '%.200s' is not defined" #define UNBOUNDLOCAL_ERROR_MSG \ "local variable '%.200s' referenced before assignment" #define UNBOUNDFREE_ERROR_MSG \ @@ -2140,7 +2138,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) err = PyDict_DelItem(f->f_globals, name); if (err != 0) { format_exc_check_arg( - PyExc_NameError, GLOBAL_NAME_ERROR_MSG, name); + PyExc_NameError, NAME_ERROR_MSG, name); goto error; } DISPATCH(); @@ -2208,7 +2206,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) if (v == NULL) { if (!PyErr_Occurred()) format_exc_check_arg(PyExc_NameError, - GLOBAL_NAME_ERROR_MSG, name); + NAME_ERROR_MSG, name); goto error; } Py_INCREF(v); @@ -2222,7 +2220,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) if (PyErr_ExceptionMatches(PyExc_KeyError)) format_exc_check_arg( PyExc_NameError, - GLOBAL_NAME_ERROR_MSG, name); + NAME_ERROR_MSG, name); goto error; } }