From: Victor Stinner Date: Wed, 8 Oct 2025 20:33:45 +0000 (+0200) Subject: gh-70030: Remove _PyCode_ConstantKey() function (#139735) X-Git-Tag: v3.15.0a1~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a2850a3a91a1515cbdd9440463c78bdf2e0bd3cf;p=thirdparty%2FPython%2Fcpython.git gh-70030: Remove _PyCode_ConstantKey() function (#139735) Move the function to the internal C API and no longer export it. --- diff --git a/Include/cpython/code.h b/Include/cpython/code.h index 3f0dce034555..84456a709a6a 100644 --- a/Include/cpython/code.h +++ b/Include/cpython/code.h @@ -282,15 +282,6 @@ typedef struct _line_offsets { */ PyAPI_FUNC(int) _PyCode_CheckLineNumber(int lasti, PyCodeAddressRange *bounds); -/* Create a comparable key used to compare constants taking in account the - * object type. It is used to make sure types are not coerced (e.g., float and - * complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms - * - * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items) - * depending on the type and the value. The type is the first item to not - * compare bytes and str which can raise a BytesWarning exception. */ -PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj); - PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, PyObject *lnotab); diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 0ec47f0014bf..2d7d81d491c1 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -663,6 +663,15 @@ PyAPI_FUNC(int) _PyCode_VerifyStateless( PyAPI_FUNC(int) _PyCode_CheckPureFunction(PyCodeObject *, const char **); PyAPI_FUNC(int) _PyCode_ReturnsOnlyNone(PyCodeObject *); +/* Create a comparable key used to compare constants taking in account the + * object type. It is used to make sure types are not coerced (e.g., float and + * complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms + * + * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items) + * depending on the type and the value. The type is the first item to not + * compare bytes and str which can raise a BytesWarning exception. */ +extern PyObject* _PyCode_ConstantKey(PyObject *obj); + #ifdef __cplusplus }