From: Eric Snow Date: Fri, 25 Apr 2025 21:10:43 +0000 (-0600) Subject: gh-132781: Make NotShareableError a TypeError Subclass (gh-132973) X-Git-Tag: v3.14.0b1~275 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a4d4f37abb9fa639fdc5d7003c4067904cdcc6b;p=thirdparty%2FPython%2Fcpython.git gh-132781: Make NotShareableError a TypeError Subclass (gh-132973) It was a subclass of ValueError. However, shareability is a feature of types, not values. --- diff --git a/Python/crossinterp_exceptions.h b/Python/crossinterp_exceptions.h index 39993648f275..857c4d1e379a 100644 --- a/Python/crossinterp_exceptions.h +++ b/Python/crossinterp_exceptions.h @@ -46,14 +46,13 @@ static PyTypeObject _PyExc_InterpreterNotFoundError = { }; PyObject *PyExc_InterpreterNotFoundError = (PyObject *)&_PyExc_InterpreterNotFoundError; -/* NotShareableError extends ValueError */ +/* NotShareableError extends TypeError */ static int _init_notshareableerror(exceptions_t *state) { const char *name = "interpreters.NotShareableError"; - // XXX Inherit from TypeError. - PyObject *base = PyExc_ValueError; + PyObject *base = PyExc_TypeError; PyObject *ns = NULL; PyObject *exctype = PyErr_NewException(name, base, ns); if (exctype == NULL) { @@ -94,7 +93,7 @@ _ensure_notshareableerror(PyThreadState *tstate, } } else { - exctype = PyExc_ValueError; + exctype = PyExc_TypeError; } _PyErr_SetObject(tstate, exctype, msgobj); // We have to set the context manually since _PyErr_SetObject() doesn't.