summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-24 18:23:30 (GMT)
committerGitHub <noreply@github.com>2024-06-24 18:23:30 (GMT)
commit447e07ab3d569bb4b2209ccfe3889fafa3ad6693 (patch)
tree4922f90e9fedb0b76f7a222815ae10c6699449d6
parenta19a5895b5f8211a85366a1518e9d4f5fb3335c5 (diff)
downloadcpython-447e07ab3d569bb4b2209ccfe3889fafa3ad6693.zip
cpython-447e07ab3d569bb4b2209ccfe3889fafa3ad6693.tar.gz
cpython-447e07ab3d569bb4b2209ccfe3889fafa3ad6693.tar.bz2
[3.13] gh-119521: Rename IncompleteInputError to _IncompleteInputError and remove from public API/ABI (GH-119680, GH-120955) (GH-120944)
- gh-119521: Rename IncompleteInputError to _IncompleteInputError and remove from public API/ABI (GH-119680) (cherry picked from commit ce1064e4c9bcfd673323ad690e60f86e1ab907bb) - gh-119521: Use `PyAPI_DATA`, not `extern`, for `_PyExc_IncompleteInputError` (GH-120955) (cherry picked from commit ac61d58db0753a3b37de21dbc6e86b38f2a93f1b) Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com> Co-authored-by: Petr Viktorin <encukou@gmail.com>
-rw-r--r--Doc/data/stable_abi.dat1
-rw-r--r--Include/internal/pycore_pyerrors.h5
-rw-r--r--Include/pyerrors.h1
-rw-r--r--Lib/codeop.py2
-rw-r--r--Lib/test/exception_hierarchy.txt2
-rw-r--r--Lib/test/test_pickle.py2
-rw-r--r--Lib/test/test_stable_abi_ctypes.py1
-rw-r--r--Misc/stable_abi.toml2
-rw-r--r--Objects/exceptions.c20
-rwxr-xr-xPC/python3dll.c1
-rw-r--r--Parser/pegen.c1
11 files changed, 21 insertions, 17 deletions
diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat
index 76a035f..9c17223 100644
--- a/Doc/data/stable_abi.dat
+++ b/Doc/data/stable_abi.dat
@@ -226,7 +226,6 @@ var,PyExc_GeneratorExit,3.2,,
var,PyExc_IOError,3.2,,
var,PyExc_ImportError,3.2,,
var,PyExc_ImportWarning,3.2,,
-var,PyExc_IncompleteInputError,3.13,,
var,PyExc_IndentationError,3.2,,
var,PyExc_IndexError,3.2,,
var,PyExc_InterruptedError,3.7,,
diff --git a/Include/internal/pycore_pyerrors.h b/Include/internal/pycore_pyerrors.h
index 683d87a..1507163 100644
--- a/Include/internal/pycore_pyerrors.h
+++ b/Include/internal/pycore_pyerrors.h
@@ -167,6 +167,11 @@ void _PyErr_FormatNote(const char *format, ...);
Py_DEPRECATED(3.12) extern void _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
+// implementation detail for the codeop module.
+// Exported for test.test_peg_generator.test_c_parser
+PyAPI_DATA(PyTypeObject) _PyExc_IncompleteInputError;
+#define PyExc_IncompleteInputError ((PyObject *)(&_PyExc_IncompleteInputError))
+
#ifdef __cplusplus
}
#endif
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index 68d7985..5d0028c 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -108,7 +108,6 @@ PyAPI_DATA(PyObject *) PyExc_NotImplementedError;
PyAPI_DATA(PyObject *) PyExc_SyntaxError;
PyAPI_DATA(PyObject *) PyExc_IndentationError;
PyAPI_DATA(PyObject *) PyExc_TabError;
-PyAPI_DATA(PyObject *) PyExc_IncompleteInputError;
PyAPI_DATA(PyObject *) PyExc_ReferenceError;
PyAPI_DATA(PyObject *) PyExc_SystemError;
PyAPI_DATA(PyObject *) PyExc_SystemExit;
diff --git a/Lib/codeop.py b/Lib/codeop.py
index 6ad60e7..a0276b5 100644
--- a/Lib/codeop.py
+++ b/Lib/codeop.py
@@ -65,7 +65,7 @@ def _maybe_compile(compiler, source, filename, symbol):
try:
compiler(source + "\n", filename, symbol)
return None
- except IncompleteInputError as e:
+ except _IncompleteInputError as e:
return None
except SyntaxError as e:
pass
diff --git a/Lib/test/exception_hierarchy.txt b/Lib/test/exception_hierarchy.txt
index 65f5485..5e83faa 100644
--- a/Lib/test/exception_hierarchy.txt
+++ b/Lib/test/exception_hierarchy.txt
@@ -45,7 +45,7 @@ BaseException
├── StopAsyncIteration
├── StopIteration
├── SyntaxError
- │ └── IncompleteInputError
+ │ └── _IncompleteInputError
│ └── IndentationError
│ └── TabError
├── SystemError
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index 19f9779..49aa4b3 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -569,7 +569,7 @@ class CompatPickleTests(unittest.TestCase):
EncodingWarning,
BaseExceptionGroup,
ExceptionGroup,
- IncompleteInputError):
+ _IncompleteInputError):
continue
if exc is not OSError and issubclass(exc, OSError):
self.assertEqual(reverse_mapping('builtins', name),
diff --git a/Lib/test/test_stable_abi_ctypes.py b/Lib/test/test_stable_abi_ctypes.py
index c06c285..21e2c6f 100644
--- a/Lib/test/test_stable_abi_ctypes.py
+++ b/Lib/test/test_stable_abi_ctypes.py
@@ -267,7 +267,6 @@ SYMBOL_NAMES = (
"PyExc_IOError",
"PyExc_ImportError",
"PyExc_ImportWarning",
- "PyExc_IncompleteInputError",
"PyExc_IndentationError",
"PyExc_IndexError",
"PyExc_InterruptedError",
diff --git a/Misc/stable_abi.toml b/Misc/stable_abi.toml
index 7747366..34c3a53 100644
--- a/Misc/stable_abi.toml
+++ b/Misc/stable_abi.toml
@@ -2480,8 +2480,6 @@
[function._Py_SetRefcnt]
added = '3.13'
abi_only = true
-[data.PyExc_IncompleteInputError]
- added = '3.13'
[function.PyList_GetItemRef]
added = '3.13'
[typedef.PyCFunctionFast]
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index f27ca2f..fbc8c6c 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -510,10 +510,10 @@ static PyTypeObject _PyExc_ ## EXCNAME = { \
}; \
PyObject *PyExc_ ## EXCNAME = (PyObject *)&_PyExc_ ## EXCNAME
-#define MiddlingExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCDOC) \
-static PyTypeObject _PyExc_ ## EXCNAME = { \
+#define MiddlingExtendsExceptionEx(EXCBASE, EXCNAME, PYEXCNAME, EXCSTORE, EXCDOC) \
+PyTypeObject _PyExc_ ## EXCNAME = { \
PyVarObject_HEAD_INIT(NULL, 0) \
- # EXCNAME, \
+ # PYEXCNAME, \
sizeof(Py ## EXCSTORE ## Object), \
0, (destructor)EXCSTORE ## _dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, \
@@ -522,8 +522,12 @@ static PyTypeObject _PyExc_ ## EXCNAME = { \
(inquiry)EXCSTORE ## _clear, 0, 0, 0, 0, 0, 0, 0, &_ ## EXCBASE, \
0, 0, 0, offsetof(Py ## EXCSTORE ## Object, dict), \
(initproc)EXCSTORE ## _init, 0, 0, \
-}; \
-PyObject *PyExc_ ## EXCNAME = (PyObject *)&_PyExc_ ## EXCNAME
+};
+
+#define MiddlingExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCDOC) \
+ static MiddlingExtendsExceptionEx( \
+ EXCBASE, EXCNAME, EXCNAME, EXCSTORE, EXCDOC); \
+ PyObject *PyExc_ ## EXCNAME = (PyObject *)&_PyExc_ ## EXCNAME
#define ComplexExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCNEW, \
EXCMETHODS, EXCMEMBERS, EXCGETSET, \
@@ -2573,8 +2577,8 @@ MiddlingExtendsException(PyExc_IndentationError, TabError, SyntaxError,
/*
* IncompleteInputError extends SyntaxError
*/
-MiddlingExtendsException(PyExc_SyntaxError, IncompleteInputError, SyntaxError,
- "incomplete input.");
+MiddlingExtendsExceptionEx(PyExc_SyntaxError, IncompleteInputError, _IncompleteInputError,
+ SyntaxError, "incomplete input.");
/*
* LookupError extends Exception
@@ -3640,7 +3644,7 @@ static struct static_exception static_exceptions[] = {
// Level 4: Other subclasses
ITEM(IndentationError), // base: SyntaxError(Exception)
- ITEM(IncompleteInputError), // base: SyntaxError(Exception)
+ {&_PyExc_IncompleteInputError, "_IncompleteInputError"}, // base: SyntaxError(Exception)
ITEM(IndexError), // base: LookupError(Exception)
ITEM(KeyError), // base: LookupError(Exception)
ITEM(ModuleNotFoundError), // base: ImportError(Exception)
diff --git a/PC/python3dll.c b/PC/python3dll.c
index 86c8884..eb077df 100755
--- a/PC/python3dll.c
+++ b/PC/python3dll.c
@@ -839,7 +839,6 @@ EXPORT_DATA(PyExc_FutureWarning)
EXPORT_DATA(PyExc_GeneratorExit)
EXPORT_DATA(PyExc_ImportError)
EXPORT_DATA(PyExc_ImportWarning)
-EXPORT_DATA(PyExc_IncompleteInputError)
EXPORT_DATA(PyExc_IndentationError)
EXPORT_DATA(PyExc_IndexError)
EXPORT_DATA(PyExc_InterruptedError)
diff --git a/Parser/pegen.c b/Parser/pegen.c
index 2955eab..009e5ba 100644
--- a/Parser/pegen.c
+++ b/Parser/pegen.c
@@ -1,6 +1,7 @@
#include <Python.h>
#include "pycore_ast.h" // _PyAST_Validate(),
#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_pyerrors.h" // PyExc_IncompleteInputError
#include <errcode.h>
#include "lexer/lexer.h"