summaryrefslogtreecommitdiffstats
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-03-21 16:07:00 (GMT)
committerGitHub <noreply@github.com>2024-03-21 16:07:00 (GMT)
commit8bea6c411d65cd987616b4ecdb86373e4f21f1c6 (patch)
tree962f984417dab800fbf4d21048a1fd8ba39202f0 /Python/pylifecycle.c
parent5a76d1be8ef371b75ca65166726923c249b5f615 (diff)
downloadcpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.zip
cpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.tar.gz
cpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.tar.bz2
gh-115754: Add Py_GetConstant() function (#116883)
Add Py_GetConstant() and Py_GetConstantBorrowed() functions. In the limited C API version 3.13, getting Py_None, Py_False, Py_True, Py_Ellipsis and Py_NotImplemented singletons is now implemented as function calls at the stable ABI level to hide implementation details. Getting these constants still return borrowed references. Add _testlimitedcapi/object.c and test_capi/test_object.py to test Py_GetConstant() and Py_GetConstantBorrowed() functions.
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r--Python/pylifecycle.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 4bd01ad..683534d 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -687,6 +687,10 @@ pycore_init_global_objects(PyInterpreterState *interp)
_PyUnicode_InitState(interp);
+ if (_Py_IsMainInterpreter(interp)) {
+ _Py_GetConstant_Init();
+ }
+
return _PyStatus_OK();
}