-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
gh-128813: deprecate cval field of the PyComplexObject struct #137271
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
Conversation
7cb20b1
to
7b72948
Compare
7b72948
to
40fc415
Compare
Per PEP-387, the preferred deprecation period is 5 years (so the removal would be in 3.20). Is there a reason to accelerate that? |
Misc/NEWS.d/next/C_API/2025-07-31-11-53-38.gh-issue-128813.axQIxb.rst
Outdated
Show resolved
Hide resolved
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Hmm, probably not soo much. I would bet, that M$ compiler will not have complex types in 3.17 nor in 3.20. Though, maybe we could keep legacy code with Quick search on GH give me very few project (two), that use this undocumented field: |
I don't think we want to maintain two implementations. |
One of them will be trivial, much like PyFloatObject now. I think that this opportunity could be at least explored. Unless we aren't going into introduction of the imaginary type (which I think is The Right Thing), Annex G double _Complex type - is the future. I'm fine to delay removal to 3.20. But impact of this deprecation looks to be low and I prefer if it will add as less constraints on us as possible. CC @vstinner |
BTW, I can do planned reorganization of docs (#137261 (comment)) here. But, probably, it worth a separate pr. |
IMO it's fine to only deprecate for 2 releases since it's rare to use the C API to access PyComplex objects. I'm not suprised that a code search only finds 2 projects. |
If we already need to keep the existing implementation (for MS, and any other compilers without Annex G support), I don't see any benefit in adding a second implementation -- even if it's trivial.
I still see no strong reason to use a shorter-than-default deprecation period. |
Ok, removal deferred to 3.20. |
Thanks! A wording nitpick; but this is ready to go. @vstinner, do you agree? |
Co-authored-by: Petr Viktorin <encukou@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
📚 Documentation preview 📚: https://cpython-previews--137271.org.readthedocs.build/en/137271/c-api/complex.html