bpo-38631: Avoid Py_FatalError() in float.__getformat__() (GH-17232)

Replace Py_FatalError() with a regular RuntimeError exception in
float.__getformat__().
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-11-18-17-10-20.bpo-38631.tRHaAk.rst b/Misc/NEWS.d/next/Core and Builtins/2019-11-18-17-10-20.bpo-38631.tRHaAk.rst
new file mode 100644
index 0000000..d05ad05
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-11-18-17-10-20.bpo-38631.tRHaAk.rst
@@ -0,0 +1,2 @@
+Replace ``Py_FatalError()`` call with a regular :exc:`RuntimeError`
+exception in :meth:`float.__getformat__`.
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 8c08866..3f9bbde 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1726,7 +1726,8 @@
     case ieee_big_endian_format:
         return PyUnicode_FromString("IEEE, big-endian");
     default:
-        Py_FatalError("insane float_format or double_format");
+        PyErr_SetString(PyExc_RuntimeError,
+                        "insane float_format or double_format");
         return NULL;
     }
 }