From: Eric V. Smith Date: Tue, 3 Nov 2015 18:09:01 +0000 (-0500) Subject: Issue 25483: Update dis.rst with FORMAT_VALUE opcode description. X-Git-Tag: v3.6.0a1~1131 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=281d5321a3bdee1fd7091e439855c0358371216c;p=python Issue 25483: Update dis.rst with FORMAT_VALUE opcode description. --- diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 1bcb3a4a07..c6e1656786 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -989,6 +989,25 @@ the more significant byte last. arguments. +.. opcode:: FORMAT_VALUE (flags) + + Used for implementing formatted literal strings (f-strings). Pops + an optional *fmt_spec* from the stack, then a required *value*. + *flags* is interpreted as follows: + + * ``(flags & 0x03) == 0x00``: *value* is formattedd as-is. + * ``(flags & 0x03) == 0x01``: call :func:`str` on *value* before + formatting it. + * ``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before + formatting it. + * ``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before + formatting it. + * ``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use + it, else use an empty *fmt_spec*. + + Formatting is performed using the :c:func:`PyObject_Format` function. + + .. opcode:: HAVE_ARGUMENT This is not really an opcode. It identifies the dividing line between