Issue #1588: Add complex.__format__.
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index acd885b..691809f 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -681,6 +681,23 @@
return Py_BuildValue("(dd)", c.real, c.imag);
}
+PyDoc_STRVAR(complex__format__doc,
+"complex.__format__() -> str\n"
+"\n"
+"Converts to a string according to format_spec.");
+
+static PyObject *
+complex__format__(PyObject* self, PyObject* args)
+{
+ PyObject *format_spec;
+
+ if (!PyArg_ParseTuple(args, "U:__format__", &format_spec))
+ return NULL;
+ return _PyComplex_FormatAdvanced(self,
+ PyUnicode_AS_UNICODE(format_spec),
+ PyUnicode_GET_SIZE(format_spec));
+}
+
#if 0
static PyObject *
complex_is_finite(PyObject *self)
@@ -705,6 +722,8 @@
complex_is_finite_doc},
#endif
{"__getnewargs__", (PyCFunction)complex_getnewargs, METH_NOARGS},
+ {"__format__", (PyCFunction)complex__format__,
+ METH_VARARGS, complex__format__doc},
{NULL, NULL} /* sentinel */
};