gh-119613: Soft deprecate Py_IS_NAN/INFINITY/FINITE (#119701)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Sergey B Kirpichev 2024-05-29 13:45:14 +03:00 committed by GitHub
parent 016a46ab57
commit 0cdc5c8d54
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 0 deletions

View File

@ -231,6 +231,12 @@ Porting to Python 3.14
Deprecated Deprecated
---------- ----------
* Macros :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY`
and :c:macro:`!Py_IS_FINITE` are :term:`soft deprecated`,
use instead :c:macro:`!isnan`, :c:macro:`!isinf` and
:c:macro:`!isfinite` available from :file:`math.h`
since C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)
Removed Removed
------- -------

View File

@ -29,14 +29,17 @@
// Py_IS_NAN(X) // Py_IS_NAN(X)
// Return 1 if float or double arg is a NaN, else 0. // Return 1 if float or double arg is a NaN, else 0.
// Soft deprecated since Python 3.14, use isnan() instead.
#define Py_IS_NAN(X) isnan(X) #define Py_IS_NAN(X) isnan(X)
// Py_IS_INFINITY(X) // Py_IS_INFINITY(X)
// Return 1 if float or double arg is an infinity, else 0. // Return 1 if float or double arg is an infinity, else 0.
// Soft deprecated since Python 3.14, use isinf() instead.
#define Py_IS_INFINITY(X) isinf(X) #define Py_IS_INFINITY(X) isinf(X)
// Py_IS_FINITE(X) // Py_IS_FINITE(X)
// Return 1 if float or double arg is neither infinite nor NAN, else 0. // Return 1 if float or double arg is neither infinite nor NAN, else 0.
// Soft deprecated since Python 3.14, use isfinite() instead.
#define Py_IS_FINITE(X) isfinite(X) #define Py_IS_FINITE(X) isfinite(X)
// Py_INFINITY: Value that evaluates to a positive double infinity. // Py_INFINITY: Value that evaluates to a positive double infinity.

View File

@ -0,0 +1,2 @@
Macros ``Py_IS_NAN``, ``Py_IS_INFINITY`` and ``Py_IS_FINITE``
are :term:`soft deprecated`.