]> granicus.if.org Git - python/commitdiff
Issue 25483: Update dis.rst with FORMAT_VALUE opcode description.
authorEric V. Smith <eric@trueblade.com>
Tue, 3 Nov 2015 18:09:01 +0000 (13:09 -0500)
committerEric V. Smith <eric@trueblade.com>
Tue, 3 Nov 2015 18:09:01 +0000 (13:09 -0500)
Doc/library/dis.rst

index 1bcb3a4a07f4be674fcbca7b0f919aee7828e30c..c6e1656786ee4c9da395953125549ed8bc43c08e 100644 (file)
@@ -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