gh-96526: Clarify format and __format__ docstrings (gh-96648)

This commit is contained in:
Michael 2022-10-04 00:28:02 +02:00 committed by GitHub
parent 0ea8b925d0
commit 07b8e85d0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 16 deletions

View File

@ -88,7 +88,8 @@ int___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(int___format____doc__, PyDoc_STRVAR(int___format____doc__,
"__format__($self, format_spec, /)\n" "__format__($self, format_spec, /)\n"
"--\n" "--\n"
"\n"); "\n"
"Convert to a string according to format_spec.");
#define INT___FORMAT___METHODDEF \ #define INT___FORMAT___METHODDEF \
{"__format__", (PyCFunction)int___format__, METH_O, int___format____doc__}, {"__format__", (PyCFunction)int___format__, METH_O, int___format____doc__},
@ -466,4 +467,4 @@ skip_optional_kwonly:
exit: exit:
return return_value; return return_value;
} }
/*[clinic end generated code: output=b29b4afc65e3290e input=a9049054013a1b77]*/ /*[clinic end generated code: output=bf6074ecf2f32cf4 input=a9049054013a1b77]*/

View File

@ -204,7 +204,9 @@ PyDoc_STRVAR(object___format____doc__,
"__format__($self, format_spec, /)\n" "__format__($self, format_spec, /)\n"
"--\n" "--\n"
"\n" "\n"
"Default object formatter."); "Default object formatter.\n"
"\n"
"Return str(self) if format_spec is empty. Raise TypeError otherwise.");
#define OBJECT___FORMAT___METHODDEF \ #define OBJECT___FORMAT___METHODDEF \
{"__format__", (PyCFunction)object___format__, METH_O, object___format____doc__}, {"__format__", (PyCFunction)object___format__, METH_O, object___format____doc__},
@ -267,4 +269,4 @@ object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored))
{ {
return object___dir___impl(self); return object___dir___impl(self);
} }
/*[clinic end generated code: output=3312f873c970bfd1 input=a9049054013a1b77]*/ /*[clinic end generated code: output=d2fc52440a89f2fa input=a9049054013a1b77]*/

View File

@ -5528,11 +5528,13 @@ int.__format__
format_spec: unicode format_spec: unicode
/ /
Convert to a string according to format_spec.
[clinic start generated code]*/ [clinic start generated code]*/
static PyObject * static PyObject *
int___format___impl(PyObject *self, PyObject *format_spec) int___format___impl(PyObject *self, PyObject *format_spec)
/*[clinic end generated code: output=b4929dee9ae18689 input=e31944a9b3e428b7]*/ /*[clinic end generated code: output=b4929dee9ae18689 input=d5e1254a47e8d1dc]*/
{ {
_PyUnicodeWriter writer; _PyUnicodeWriter writer;
int ret; int ret;

View File

@ -5824,11 +5824,13 @@ object.__format__
/ /
Default object formatter. Default object formatter.
Return str(self) if format_spec is empty. Raise TypeError otherwise.
[clinic start generated code]*/ [clinic start generated code]*/
static PyObject * static PyObject *
object___format___impl(PyObject *self, PyObject *format_spec) object___format___impl(PyObject *self, PyObject *format_spec)
/*[clinic end generated code: output=34897efb543a974b input=7c3b3bc53a6fb7fa]*/ /*[clinic end generated code: output=34897efb543a974b input=b94d8feb006689ea]*/
{ {
/* Issue 7994: If we're converting to a string, we /* Issue 7994: If we're converting to a string, we
should reject format specifications */ should reject format specifications */

View File

@ -677,16 +677,19 @@ format as builtin_format
format_spec: unicode(c_default="NULL") = '' format_spec: unicode(c_default="NULL") = ''
/ /
Return value.__format__(format_spec) Return type(value).__format__(value, format_spec)
format_spec defaults to the empty string. Many built-in types implement format_spec according to the
See the Format Specification Mini-Language section of help('FORMATTING') for Format Specification Mini-language. See help('FORMATTING').
details.
If type(value) does not supply a method named __format__
and format_spec is empty, then str(value) is returned.
See also help('SPECIALMETHODS').
[clinic start generated code]*/ [clinic start generated code]*/
static PyObject * static PyObject *
builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec) builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec)
/*[clinic end generated code: output=2f40bdfa4954b077 input=88339c93ea522b33]*/ /*[clinic end generated code: output=2f40bdfa4954b077 input=45ef3934b86d5624]*/
{ {
return PyObject_Format(value, format_spec); return PyObject_Format(value, format_spec);
} }

View File

@ -183,11 +183,14 @@ PyDoc_STRVAR(builtin_format__doc__,
"format($module, value, format_spec=\'\', /)\n" "format($module, value, format_spec=\'\', /)\n"
"--\n" "--\n"
"\n" "\n"
"Return value.__format__(format_spec)\n" "Return type(value).__format__(value, format_spec)\n"
"\n" "\n"
"format_spec defaults to the empty string.\n" "Many built-in types implement format_spec according to the\n"
"See the Format Specification Mini-Language section of help(\'FORMATTING\') for\n" "Format Specification Mini-language. See help(\'FORMATTING\').\n"
"details."); "\n"
"If type(value) does not supply a method named __format__\n"
"and format_spec is empty, then str(value) is returned.\n"
"See also help(\'SPECIALMETHODS\').");
#define BUILTIN_FORMAT_METHODDEF \ #define BUILTIN_FORMAT_METHODDEF \
{"format", _PyCFunction_CAST(builtin_format), METH_FASTCALL, builtin_format__doc__}, {"format", _PyCFunction_CAST(builtin_format), METH_FASTCALL, builtin_format__doc__},
@ -1212,4 +1215,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit: exit:
return return_value; return return_value;
} }
/*[clinic end generated code: output=f3da5510745785af input=a9049054013a1b77]*/ /*[clinic end generated code: output=3c9497e0ffeb8a30 input=a9049054013a1b77]*/