mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
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.
This commit is contained in:
parent
5a76d1be8e
commit
8bea6c411d
22 changed files with 312 additions and 6 deletions
|
@ -8,7 +8,11 @@ extern "C" {
|
|||
|
||||
PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */
|
||||
|
||||
#define Py_Ellipsis (&_Py_EllipsisObject)
|
||||
#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000
|
||||
# define Py_Ellipsis Py_GetConstantBorrowed(Py_CONSTANT_ELLIPSIS)
|
||||
#else
|
||||
# define Py_Ellipsis (&_Py_EllipsisObject)
|
||||
#endif
|
||||
|
||||
/* Slice object interface */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue