Python 3.13 and 3.14 added public functions to replace private functions. For example, a public function PyBytes_Join() was added to replace the private function _PyBytes_Join().
I propose to deprecate the private functions which have a public replacement, and remove them in Python 3.16.
Activity
pythongh-128863: Deprecate private C API functions
pythongh-128863: Deprecate private C API functions
vstinner commented on Jan 15, 2025
Previous discussion: https://discuss.python.org/t/remove-again-private-apis-which-now-have-new-public-replacement/68081
pythongh-128863: Deprecate private C API functions
pythongh-128863: Deprecate private C API functions
pythongh-128863: Deprecate private C API functions
vstinner commented on Jan 16, 2025
Other deprecations to consider:
gh-128863: Deprecate private C API functions (#128864)
pythongh-128863: Deprecate _PyLong_Sign() function
gh-128863: Deprecate _PyLong_Sign() function (#129176)
skirpichev commented on Jan 23, 2025
I'm closing #127937 and #127936 in favor of this issue.
pythongh-128863: deprecate _PyLong_New() function
gh-128863: Deprecate _PyLong_New() function (#129212)
pythongh-128863: Deprecate the private _PyUnicodeWriter API
gh-128863: Deprecate _PyLong_FromDigits() function (#127939)
gh-128863: Deprecate the private _PyUnicodeWriter API (#129245)