GeezerVison is showing github.com — Deprecate Py_IS_NAN/INFINITY/FINITE? · Issue #119613 · python/cpython
Deprecate Py_IS_NAN/INFINITY/FINITE? #119613DescriptionFeature or enhancement
Proposal:
isnan(), isinf() and isfinite() are part of C99, which is a requirement for 3.11+. Probably, it does make sense to deprecate (undocumented) public macros and switch codebase to use C stdlib functions.
JFR: #119457 (comment)
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs
Activityskirpichev commented on May 27, 2024 skirpichev commented on May 28, 2024 vstinner commented on May 28, 2024
isnan(), isinf() and isfinite() are part of C99, which is a requirement for 3.11+. Probably, it does make sense to deprecate (undocumented) public macros and switch codebase to use C stdlib functions.
A code search on PyPI top 7,500 projects found 10 projects using these macros:
- Nuitka (2.1.2)
- aim (3.19.1)
- fastcluster (1.2.6)
- gmpy2 (2.1.5)
- msgspec (0.18.6)
- numba (0.59.0)
- pandas (2.2.1)
- python-rapidjson (1.16)
- simplejson (3.19.2)
- vowpalwabbit (9.9.0)
I suggest to update all of these projects before considering to deprecate these macros.
I would be fine with a soft deprecation. It's the kind of the issue which fall into PEP 743 – Add Py_COMPAT_API_VERSION to the Python C API territory: having a way to opt-out from deprecated macros, without forcing all projects to update their code. skirpichev commented on May 28, 2024 @vstinner, these macroses were undocumented. Should we (1) document them (with "deprecated" statement) and (2) add news entry? Or (2) is enough?
I would be fine with a soft deprecation.
If we don't announce removal (e.g. deprecated-removed statement) wouldn't this be a soft deprecation?
vstinner commented on May 28, 2024 You can announce the soft deprecation in What's New in Python 3.14 and add a comment to explain that these macros are soft deprecated. skirpichev commented on May 28, 2024 Maybe this could go to 3.13? vstinner commented on May 28, 2024
Maybe this could go to 3.13?
Deprecations cannot be added after beta1. Reacted by Alex Waygood, Eric V. Smith, Erlend E. Aasland and Sergey B Kirpichev skirpichev commented on May 29, 2024
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|