gh-106320: Re-add some PyLong/PyDict C-API functions#111162
gh-106320: Re-add some PyLong/PyDict C-API functions#111162encukou merged 2 commits intopython:mainfrom
Conversation
…) and _PyLong_GCD() to the public header files since they are used by third-party packages and there is no efficient replacement. See python#111140 See python#111139
|
I would prefer to take it as an opportunity to add a nice public API for that. In the meanwhile (until next alpha release), you can just use the internal C API. |
|
add a nice public API for that
Oh, I'd be happy to. I see the revert as a way to make sure there *is* an API until we have something to replace it. For which, as Serhiy noted, the design and discussion can take arbitrarily long.
|
|
Just for the record, I micro-benchmarked This suggests to me that making |
|
I would prefer adding these back, so that we can take our time to add a proper replacement. |
…lic one is designed.
There was a problem hiding this comment.
I still don't see the reason why this API was removed. PEP-387 says that it can be removed, not that it should.
We don't have a good replacement for this API. After we add that, it'll be time to start telling people to change their code.
I take @gvanrossum's comment on another issue as support for reverting the removal:
I strongly prefer revert over fix, for removed APIs that cause problems.
Yes, I plan to add public APIs to replace these useful functions. I created multiple issues to track that: issues listed in the PR description. |
…#111162) * pythongh-106320: Re-add _PyLong_FromByteArray(), _PyLong_AsByteArray() and _PyLong_GCD() to the public header files since they are used by third-party packages and there is no efficient replacement. See python#111140 See python#111139 * pythongh-111262: Re-add _PyDict_Pop() to have a C-API until a new public one is designed.
…#111162) * pythongh-106320: Re-add _PyLong_FromByteArray(), _PyLong_AsByteArray() and _PyLong_GCD() to the public header files since they are used by third-party packages and there is no efficient replacement. See python#111140 See python#111139 * pythongh-111262: Re-add _PyDict_Pop() to have a C-API until a new public one is designed.
Re-add _PyLong_FromByteArray(), _PyLong_AsByteArray(),_PyLong_GCD() and _PyDict_Pop() to the public header files.
They are used by third-party packages and there is no efficient replacement.
See #111140
See #111139
See #111262