summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2023-04-01 20:30:23 (GMT)
committerGitHub <noreply@github.com>2023-04-01 20:30:23 (GMT)
commit06249ec89fffdab25f7088c86fcbbfdcebcc3ebd (patch)
treeabab9c08840e3c841b05165a14f9c22a80572e56
parent848bdbe166b71ab2ac2c0c1d88432fb995d1444c (diff)
downloadcpython-06249ec89fffdab25f7088c86fcbbfdcebcc3ebd.zip
cpython-06249ec89fffdab25f7088c86fcbbfdcebcc3ebd.tar.gz
cpython-06249ec89fffdab25f7088c86fcbbfdcebcc3ebd.tar.bz2
gh-102192: deprecate _PyErr_ChainExceptions (#102935)
-rw-r--r--Doc/whatsnew/3.12.rst6
-rw-r--r--Include/cpython/pyerrors.h2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2023-03-31-12-22-25.gh-issue-102192.gYxJP_.rst2
3 files changed, 9 insertions, 1 deletions
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index bd9be53..8ab9613 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -975,6 +975,10 @@ New Features
This is less error prone and a bit more efficient.
(Contributed by Mark Shannon in :gh:`101578`.)
+* Add ``_PyErr_ChainExceptions1``, which takes an exception instance,
+ to replace the legacy-API ``_PyErr_ChainExceptions``, which is now
+ deprecated. (Contributed by Mark Shannon in :gh:`101578`.)
+
* Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs`
as convenience functions for retrieving and modifying
the :attr:`~BaseException.args` passed to the exception's constructor.
@@ -1125,6 +1129,8 @@ Deprecated
* :c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException`
instead. (Contributed by Irit Katriel in :gh:`102755`).
+* ``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1``
+ instead. (Contributed by Irit Katriel in :gh:`102192`.)
Removed
-------
diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h
index 65bdc94..758804a 100644
--- a/Include/cpython/pyerrors.h
+++ b/Include/cpython/pyerrors.h
@@ -98,7 +98,7 @@ PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, Py
/* Context manipulation (PEP 3134) */
-PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
+Py_DEPRECATED(3.12) PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
PyAPI_FUNC(void) _PyErr_ChainExceptions1(PyObject *);
/* Like PyErr_Format(), but saves current exception as __context__ and
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-03-31-12-22-25.gh-issue-102192.gYxJP_.rst b/Misc/NEWS.d/next/Core and Builtins/2023-03-31-12-22-25.gh-issue-102192.gYxJP_.rst
new file mode 100644
index 0000000..10dd72b
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-03-31-12-22-25.gh-issue-102192.gYxJP_.rst
@@ -0,0 +1,2 @@
+Deprecated ``_PyErr_ChainExceptions`` in favour of
+``_PyErr_ChainExceptions1``.