bpo-37315: Deprecate accepting floats in math.factorial(). (GH-14147)

This commit is contained in:
Serhiy Storchaka 2019-06-17 16:57:27 +03:00 committed by GitHub
parent 1ce2656f13
commit 231aad3849
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 7 deletions

View file

@ -1981,6 +1981,12 @@ math_factorial(PyObject *module, PyObject *arg)
PyObject *result, *odd_part, *pyint_form;
if (PyFloat_Check(arg)) {
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"Using factorial() with floats is deprecated",
1) < 0)
{
return NULL;
}
PyObject *lx;
double dx = PyFloat_AS_DOUBLE((PyFloatObject *)arg);
if (!(Py_IS_FINITE(dx) && dx == floor(dx))) {