mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
gh-105071: add PyUnstable_Exc_PrepReraiseStar to expose except* implementation in the unstable API (#105072)
This commit is contained in:
parent
bd98b65e97
commit
b7aadb4583
7 changed files with 196 additions and 1 deletions
33
Modules/_testcapi/clinic/exceptions.c.h
generated
33
Modules/_testcapi/clinic/exceptions.c.h
generated
|
|
@ -395,4 +395,35 @@ _testcapi_traceback_print(PyObject *module, PyObject *const *args, Py_ssize_t na
|
|||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=ec1b2e62adea9846 input=a9049054013a1b77]*/
|
||||
|
||||
PyDoc_STRVAR(_testcapi_unstable_exc_prep_reraise_star__doc__,
|
||||
"unstable_exc_prep_reraise_star($module, orig, excs, /)\n"
|
||||
"--\n"
|
||||
"\n"
|
||||
"To test PyUnstable_Exc_PrepReraiseStar.");
|
||||
|
||||
#define _TESTCAPI_UNSTABLE_EXC_PREP_RERAISE_STAR_METHODDEF \
|
||||
{"unstable_exc_prep_reraise_star", _PyCFunction_CAST(_testcapi_unstable_exc_prep_reraise_star), METH_FASTCALL, _testcapi_unstable_exc_prep_reraise_star__doc__},
|
||||
|
||||
static PyObject *
|
||||
_testcapi_unstable_exc_prep_reraise_star_impl(PyObject *module,
|
||||
PyObject *orig, PyObject *excs);
|
||||
|
||||
static PyObject *
|
||||
_testcapi_unstable_exc_prep_reraise_star(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
|
||||
{
|
||||
PyObject *return_value = NULL;
|
||||
PyObject *orig;
|
||||
PyObject *excs;
|
||||
|
||||
if (!_PyArg_CheckPositional("unstable_exc_prep_reraise_star", nargs, 2, 2)) {
|
||||
goto exit;
|
||||
}
|
||||
orig = args[0];
|
||||
excs = args[1];
|
||||
return_value = _testcapi_unstable_exc_prep_reraise_star_impl(module, orig, excs);
|
||||
|
||||
exit:
|
||||
return return_value;
|
||||
}
|
||||
/*[clinic end generated code: output=fd6aef54f195c77b input=a9049054013a1b77]*/
|
||||
|
|
|
|||
|
|
@ -288,6 +288,22 @@ _testcapi_traceback_print_impl(PyObject *module, PyObject *traceback,
|
|||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
/*[clinic input]
|
||||
_testcapi.unstable_exc_prep_reraise_star
|
||||
orig: object
|
||||
excs: object
|
||||
/
|
||||
To test PyUnstable_Exc_PrepReraiseStar.
|
||||
[clinic start generated code]*/
|
||||
|
||||
static PyObject *
|
||||
_testcapi_unstable_exc_prep_reraise_star_impl(PyObject *module,
|
||||
PyObject *orig, PyObject *excs)
|
||||
/*[clinic end generated code: output=850cf008e0563c77 input=27fbcda2203eb301]*/
|
||||
{
|
||||
return PyUnstable_Exc_PrepReraiseStar(orig, excs);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Define the PyRecurdingInfinitelyError_Type
|
||||
|
|
@ -328,6 +344,7 @@ static PyMethodDef test_methods[] = {
|
|||
_TESTCAPI_SET_EXCEPTION_METHODDEF
|
||||
_TESTCAPI_TRACEBACK_PRINT_METHODDEF
|
||||
_TESTCAPI_WRITE_UNRAISABLE_EXC_METHODDEF
|
||||
_TESTCAPI_UNSTABLE_EXC_PREP_RERAISE_STAR_METHODDEF
|
||||
{NULL},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue