From 2633c69fae7e413b2b64b01d8c0c901ae649a225 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Mon, 26 Feb 2007 22:22:47 +0000 Subject: Remove the exceptions builtin module, all the exceptions are already builtin. --- Lib/ctypes/test/test_structures.py | 8 ++++---- Lib/test/output/test_logging | 6 +++--- Lib/test/test_exceptions.py | 11 +---------- Lib/test/test_generators.py | 4 ++-- Lib/test/test_modulefinder.py | 14 +++++++------- Lib/test/test_weakref.py | 6 +++--- Lib/traceback.py | 2 +- Lib/weakref.py | 2 -- Misc/NEWS | 2 ++ Objects/exceptions.c | 36 ++++++++---------------------------- PC/config.c | 1 - PC/os2emx/config.c | 1 - Python/errors.c | 3 ++- Python/pythonrun.c | 3 +-- RISCOS/Modules/config.c | 1 - 15 files changed, 34 insertions(+), 66 deletions(-) diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py index 097e1da..389f937 100644 --- a/Lib/ctypes/test/test_structures.py +++ b/Lib/ctypes/test/test_structures.py @@ -294,20 +294,20 @@ class StructureTestCase(unittest.TestCase): # In Python 2.5, Exception is a new-style class, and the repr changed if issubclass(Exception, object): self.failUnlessEqual(msg, - "(Phone) : " + "(Phone) : " "expected string or Unicode object, int found") else: self.failUnlessEqual(msg, - "(Phone) exceptions.TypeError: " + "(Phone) TypeError: " "expected string or Unicode object, int found") cls, msg = self.get_except(Person, "Someone", ("a", "b", "c")) self.failUnlessEqual(cls, RuntimeError) if issubclass(Exception, object): self.failUnlessEqual(msg, - "(Phone) : too many initializers") + "(Phone) : too many initializers") else: - self.failUnlessEqual(msg, "(Phone) exceptions.ValueError: too many initializers") + self.failUnlessEqual(msg, "(Phone) ValueError: too many initializers") def get_except(self, func, *args): diff --git a/Lib/test/output/test_logging b/Lib/test/output/test_logging index c0d6e06..ebf40c5 100644 --- a/Lib/test/output/test_logging +++ b/Lib/test/output/test_logging @@ -488,12 +488,12 @@ INFO:a.b.c.d:Info 5 -- log_test4 begin --------------------------------------------------- config0: ok. config1: ok. -config2: -config3: +config2: +config3: -- log_test4 end --------------------------------------------------- -- log_test5 begin --------------------------------------------------- ERROR:root:just testing -... Don't panic! +... Don't panic! -- log_test5 end --------------------------------------------------- -- logrecv output begin --------------------------------------------------- ERR -> CRITICAL: Message 0 (via logrecv.tcp.ERR) diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index 4891f4b..0ff3b10 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -15,15 +15,6 @@ from test.test_support import TESTFN, unlink, run_unittest class ExceptionTests(unittest.TestCase): - def testReload(self): - # Reloading the built-in exceptions module failed prior to Py2.2, while it - # should act the same as reloading built-in sys. - try: - import exceptions - reload(exceptions) - except ImportError as e: - self.fail("reloading exceptions: %s" % e) - def raise_catch(self, exc, excname): try: raise exc, "spam" @@ -289,7 +280,7 @@ class ExceptionTests(unittest.TestCase): if type(e) is not exc: raise # Verify module name - self.assertEquals(type(e).__module__, 'exceptions') + self.assertEquals(type(e).__module__, '__builtin__') # Verify no ref leaks in Exc_str() s = str(e) for checkArgName in expected: diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index edfcb65..7999034 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -1691,7 +1691,7 @@ Our ill-behaved code should be invoked during GC: >>> g.next() >>> del g >>> sys.stderr.getvalue().startswith( -... "Exception exceptions.RuntimeError: 'generator ignored GeneratorExit' in " +... "Exception RuntimeError: 'generator ignored GeneratorExit' in " ... ) True >>> sys.stderr = old @@ -1808,7 +1808,7 @@ to test. ... del l ... err = sys.stderr.getvalue().strip() ... err.startswith( -... "Exception exceptions.RuntimeError: RuntimeError() in <" +... "Exception RuntimeError: RuntimeError() in <" ... ) ... err.endswith("> ignored") ... len(err.splitlines()) diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py index 7da241b..3bc22ab 100644 --- a/Lib/test/test_modulefinder.py +++ b/Lib/test/test_modulefinder.py @@ -87,7 +87,7 @@ absolute_import_test = [ "a.module", ["a", "a.module", "b", "b.x", "b.y", "b.z", - "__future__", "sys", "exceptions"], + "__future__", "sys", "gc"], ["blahblah", "z"], [], """\ mymodule.py @@ -96,11 +96,11 @@ a/module.py from __future__ import absolute_import import sys # sys import blahblah # fails - import exceptions # exceptions + import gc # gc import b.x # b.x from b import y # b.y from b.z import * # b.z.* -a/exceptions.py +a/gc.py a/sys.py import mymodule a/b/__init__.py @@ -123,7 +123,7 @@ relative_import_test = [ "a.b.c", "a.b.c.moduleC", "a.b.c.d", "a.b.c.e", "a.b.x", - "exceptions"], + "gc"], [], [], """\ mymodule.py @@ -131,8 +131,8 @@ a/__init__.py from .b import y, z # a.b.y, a.b.z a/module.py from __future__ import absolute_import # __future__ - import exceptions # exceptions -a/exceptions.py + import gc # gc +a/gc.py a/sys.py a/b/__init__.py from ..b import x # a.b.x @@ -170,7 +170,7 @@ a/__init__.py a/another.py a/module.py from .b import y, z # a.b.y, a.b.z -a/exceptions.py +a/gc.py a/sys.py a/b/__init__.py from .c import moduleC # a.b.c.moduleC diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 642af10..46dd5ff 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -104,9 +104,9 @@ class ReferencesTestCase(TestBase): def check(proxy): proxy.bar - self.assertRaises(weakref.ReferenceError, check, ref1) - self.assertRaises(weakref.ReferenceError, check, ref2) - self.assertRaises(weakref.ReferenceError, bool, weakref.proxy(C())) + self.assertRaises(ReferenceError, check, ref1) + self.assertRaises(ReferenceError, check, ref2) + self.assertRaises(ReferenceError, bool, weakref.proxy(C())) self.assert_(self.cbcalled == 2) def check_basic_ref(self, factory): diff --git a/Lib/traceback.py b/Lib/traceback.py index e395ad7..a0d2dcc 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -169,7 +169,7 @@ def format_exception_only(etype, value): stype = etype.__name__ smod = etype.__module__ - if smod not in ("exceptions", "__main__", "__builtin__"): + if smod not in ("__main__", "__builtin__"): stype = smod + '.' + stype if not issubclass(etype, SyntaxError): diff --git a/Lib/weakref.py b/Lib/weakref.py index c20d1b6..33896f5 100644 --- a/Lib/weakref.py +++ b/Lib/weakref.py @@ -20,8 +20,6 @@ from _weakref import ( ProxyType, ReferenceType) -from exceptions import ReferenceError - ProxyTypes = (ProxyType, CallableProxyType) diff --git a/Misc/NEWS b/Misc/NEWS index 8ffbe45..ed921e7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -28,6 +28,8 @@ TO DO Core and Builtins ----------------- +- Remove the exceptions module, all the exceptions are already builtin. + - input() becomes raw_input(): the name input() now implements the functionality formerly known as raw_input(); the name raw_input() is no longer defined. diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 402bcec..cea41f8 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -10,20 +10,11 @@ #include "osdefs.h" #define MAKE_IT_NONE(x) (x) = Py_None; Py_INCREF(Py_None); -#define EXC_MODULE_NAME "exceptions." /* NOTE: If the exception class hierarchy changes, don't forget to update * Lib/test/exception_hierarchy.txt */ -PyDoc_STRVAR(exceptions_doc, "Python's standard exception class hierarchy.\n\ -\n\ -Exceptions found here are defined both in the exceptions module and the\n\ -built-in namespace. It is recommended that user-defined exceptions\n\ -inherit from Exception. See the documentation for the exception\n\ -inheritance hierarchy.\n\ -"); - /* * BaseException */ @@ -282,7 +273,7 @@ static PyGetSetDef BaseException_getset[] = { static PyTypeObject _PyExc_BaseException = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ - EXC_MODULE_NAME "BaseException", /*tp_name*/ + "BaseException", /*tp_name*/ sizeof(PyBaseExceptionObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ (destructor)BaseException_dealloc, /*tp_dealloc*/ @@ -333,7 +324,7 @@ PyObject *PyExc_BaseException = (PyObject *)&_PyExc_BaseException; static PyTypeObject _PyExc_ ## EXCNAME = { \ PyObject_HEAD_INIT(NULL) \ 0, \ - EXC_MODULE_NAME # EXCNAME, \ + # EXCNAME, \ sizeof(PyBaseExceptionObject), \ 0, (destructor)BaseException_dealloc, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, \ @@ -349,7 +340,7 @@ PyObject *PyExc_ ## EXCNAME = (PyObject *)&_PyExc_ ## EXCNAME static PyTypeObject _PyExc_ ## EXCNAME = { \ PyObject_HEAD_INIT(NULL) \ 0, \ - EXC_MODULE_NAME # EXCNAME, \ + # EXCNAME, \ sizeof(Py ## EXCSTORE ## Object), \ 0, (destructor)EXCSTORE ## _dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, \ @@ -365,7 +356,7 @@ PyObject *PyExc_ ## EXCNAME = (PyObject *)&_PyExc_ ## EXCNAME static PyTypeObject _PyExc_ ## EXCNAME = { \ PyObject_HEAD_INIT(NULL) \ 0, \ - EXC_MODULE_NAME # EXCNAME, \ + # EXCNAME, \ sizeof(Py ## EXCSTORE ## Object), 0, \ (destructor)EXCSTORE ## _dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ (reprfunc)EXCSTR, 0, 0, 0, \ @@ -1632,7 +1623,7 @@ UnicodeEncodeError_str(PyObject *self) static PyTypeObject _PyExc_UnicodeEncodeError = { PyObject_HEAD_INIT(NULL) 0, - EXC_MODULE_NAME "UnicodeEncodeError", + "UnicodeEncodeError", sizeof(PyUnicodeErrorObject), 0, (destructor)UnicodeError_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (reprfunc)UnicodeEncodeError_str, 0, 0, 0, @@ -1704,7 +1695,7 @@ UnicodeDecodeError_str(PyObject *self) static PyTypeObject _PyExc_UnicodeDecodeError = { PyObject_HEAD_INIT(NULL) 0, - EXC_MODULE_NAME "UnicodeDecodeError", + "UnicodeDecodeError", sizeof(PyUnicodeErrorObject), 0, (destructor)UnicodeError_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (reprfunc)UnicodeDecodeError_str, 0, 0, 0, @@ -1802,7 +1793,7 @@ UnicodeTranslateError_str(PyObject *self) static PyTypeObject _PyExc_UnicodeTranslateError = { PyObject_HEAD_INIT(NULL) 0, - EXC_MODULE_NAME "UnicodeTranslateError", + "UnicodeTranslateError", sizeof(PyUnicodeErrorObject), 0, (destructor)UnicodeError_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (reprfunc)UnicodeTranslateError_str, 0, 0, 0, @@ -1956,17 +1947,10 @@ SimpleExtendsException(PyExc_Warning, UnicodeWarning, */ PyObject *PyExc_MemoryErrorInst=NULL; -/* module global functions */ -static PyMethodDef functions[] = { - /* Sentinel */ - {NULL, NULL} -}; - #define PRE_INIT(TYPE) if (PyType_Ready(&_PyExc_ ## TYPE) < 0) \ Py_FatalError("exceptions bootstrapping error."); #define POST_INIT(TYPE) Py_INCREF(PyExc_ ## TYPE); \ - PyModule_AddObject(m, # TYPE, PyExc_ ## TYPE); \ if (PyDict_SetItemString(bdict, # TYPE, PyExc_ ## TYPE)) \ Py_FatalError("Module dictionary insertion problem."); @@ -1996,7 +1980,7 @@ InvalidParameterHandler( PyMODINIT_FUNC _PyExc_Init(void) { - PyObject *m, *bltinmod, *bdict; + PyObject *bltinmod, *bdict; PRE_INIT(BaseException) PRE_INIT(Exception) @@ -2053,10 +2037,6 @@ _PyExc_Init(void) PRE_INIT(ImportWarning) PRE_INIT(UnicodeWarning) - m = Py_InitModule4("exceptions", functions, exceptions_doc, - (PyObject *)NULL, PYTHON_API_VERSION); - if (m == NULL) return; - bltinmod = PyImport_ImportModule("__builtin__"); if (bltinmod == NULL) Py_FatalError("exceptions bootstrapping error."); diff --git a/PC/config.c b/PC/config.c index a9a280d..1d142b56 100644 --- a/PC/config.c +++ b/PC/config.c @@ -161,7 +161,6 @@ struct _inittab _PyImport_Inittab[] = { {"__main__", NULL}, {"__builtin__", NULL}, {"sys", NULL}, - {"exceptions", NULL}, {"_types", init_types}, diff --git a/PC/os2emx/config.c b/PC/os2emx/config.c index 696c3bb..07c1783 100644 --- a/PC/os2emx/config.c +++ b/PC/os2emx/config.c @@ -172,7 +172,6 @@ struct _inittab _PyImport_Inittab[] = { {"__main__", NULL}, {"__builtin__", NULL}, {"sys", NULL}, - {"exceptions", NULL}, /* This lives in gcmodule.c */ {"gc", initgc}, diff --git a/Python/errors.c b/Python/errors.c index 0e565c1..e00d3ec 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -612,7 +612,8 @@ PyErr_WriteUnraisable(PyObject *obj) PyFile_WriteString("", f); else { char* modstr = PyString_AsString(moduleName); - if (modstr) + if (modstr && + strcmp(modstr, "__builtin__") != 0) { PyFile_WriteString(modstr, f); PyFile_WriteString(".", f); diff --git a/Python/pythonrun.c b/Python/pythonrun.c index ec1bc42..7501456 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -221,7 +221,6 @@ Py_InitializeEx(int install_sigs) /* initialize builtin exceptions */ _PyExc_Init(); - _PyImport_FixupExtension("exceptions", "exceptions"); /* phase 2 of builtins */ _PyImport_FixupExtension("__builtin__", "__builtin__"); @@ -1168,7 +1167,7 @@ PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) err = PyFile_WriteString("", f); else { char* modstr = PyString_AsString(moduleName); - if (modstr && strcmp(modstr, "exceptions")) + if (modstr && strcmp(modstr, "__builtin__")) { err = PyFile_WriteString(modstr, f); err += PyFile_WriteString(".", f); diff --git a/RISCOS/Modules/config.c b/RISCOS/Modules/config.c index 54fbc79..d4ef205 100644 --- a/RISCOS/Modules/config.c +++ b/RISCOS/Modules/config.c @@ -63,7 +63,6 @@ struct _inittab _PyImport_Inittab[] = { {"__main__", NULL}, {"__builtin__", NULL}, {"sys", NULL}, - {"exceptions", NULL}, /* This lives in gcmodule.c */ {"gc", initgc}, -- cgit v0.12