Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-128863: deprecate _PyLong_FromDigits() function #127939

Merged
merged 6 commits into from
Jan 24, 2025

Conversation

skirpichev
Copy link
Member

@skirpichev skirpichev commented Dec 14, 2024

@skirpichev
Copy link
Member Author

Ok, this depend on #127925

@skirpichev skirpichev marked this pull request as draft December 14, 2024 07:30
@skirpichev skirpichev requested a review from vstinner January 23, 2025 03:09
@skirpichev skirpichev changed the title gh-127937: deprecate _PyLong_FromDigits() function gh-128863: deprecate _PyLong_FromDigits() function Jan 23, 2025
@vstinner
Copy link
Member

Ok, this depend on #127925

You can use the macros in _decimal:

    _Py_COMP_DIAG_PUSH
    _Py_COMP_DIAG_IGNORE_DEPR_DECLS
...
    _Py_COMP_DIAG_POP

See examples in Modules/_testcapimodule.c.

@vstinner
Copy link
Member

_PyLong_Copy() emits a deprecation warning. You can rename _PyLong_FromDigits() to long_fromdigits() and use this one in _PyLong_Copy().

@skirpichev
Copy link
Member Author

_PyLong_Copy() emits a deprecation warning.

This is a draft due to #127925.

You can rename _PyLong_FromDigits() to long_fromdigits() and use this one in _PyLong_Copy().

That does make sense if no stdlib module will depend on _PyLong_FromDigits(). Unfortunately, there is no short cut for copy.copy() in C-API.

@vstinner
Copy link
Member

This is a draft due to #127925.

I'm not sure that PR gh-127925 is ever going to be merged :-(

That does make sense if no stdlib module will depend on _PyLong_FromDigits(). Unfortunately, there is no short cut for copy.copy() in C-API.

I didn't understand your comment. I'm only proposing a local "fix" for _PyLong_Copy() to avoid the deprecation warning.

@skirpichev
Copy link
Member Author

I didn't understand your comment.

Nevermind, I was thinking about _PyLong_Copy(), which is also public now.

I'm only proposing a local "fix" for _PyLong_Copy() to avoid the deprecation warning.

That seems fine. But maybe we should just inline code, it's not used anywhere else in the longobject.c.

@skirpichev skirpichev marked this pull request as ready for review January 24, 2025 06:21
@skirpichev
Copy link
Member Author

Ok, I did this ready for review. Once #127925 will be merged - this should pass tests.

After some thinking, the _PyLong_FromDigits() code was inlined in the _PyLong_Copy(). I doubt we need for _PyLong_FromDigits() in future.

@vstinner
Copy link
Member

You should use _Py_COMP_DIAG_IGNORE_DEPR_DECLS in _decimal.c, as I wrote in my previous comment.

@skirpichev
Copy link
Member Author

You should use _Py_COMP_DIAG_IGNORE_DEPR_DECLS in _decimal.c, as I wrote in my previous comment.

No, this rather fits for testing code.

Objects/longobject.c Outdated Show resolved Hide resolved
@skirpichev skirpichev requested a review from vstinner January 24, 2025 11:45
@vstinner vstinner merged commit 233fd00 into python:main Jan 24, 2025
41 checks passed
@vstinner
Copy link
Member

Merged, thanks.

@skirpichev skirpichev deleted the deprecate-_PyLong_FromDigits/127937 branch January 24, 2025 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants