# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2016, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" msgstr "" #: ../Doc/library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" msgstr "**Code source :** :source:`Lib/dis.py`" #: ../Doc/library/dis.rst:11 msgid "" "The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by " "disassembling it. The CPython bytecode which this module takes as an input " "is defined in the file :file:`Include/opcode.h` and used by the compiler and " "the interpreter." msgstr "" #: ../Doc/library/dis.rst:18 msgid "" "Bytecode is an implementation detail of the CPython interpreter. No " "guarantees are made that bytecode will not be added, removed, or changed " "between versions of Python. Use of this module should not be considered to " "work across Python VMs or Python releases." msgstr "" #: ../Doc/library/dis.rst:23 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." msgstr "" #: ../Doc/library/dis.rst:28 msgid "Example: Given the function :func:`myfunc`::" msgstr "" #: ../Doc/library/dis.rst:33 msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`::" msgstr "" #: ../Doc/library/dis.rst:42 msgid "(The \"2\" is a line number)." msgstr "" #: ../Doc/library/dis.rst:45 msgid "Bytecode analysis" msgstr "" #: ../Doc/library/dis.rst:49 msgid "" "The bytecode analysis API allows pieces of Python code to be wrapped in a :" "class:`Bytecode` object that provides easy access to details of the compiled " "code." msgstr "" #: ../Doc/library/dis.rst:56 msgid "" "Analyse the bytecode corresponding to a function, generator, method, string " "of source code, or a code object (as returned by :func:`compile`)." msgstr "" #: ../Doc/library/dis.rst:59 msgid "" "This is a convenience wrapper around many of the functions listed below, " "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " "instance yields the bytecode operations as :class:`Instruction` instances." msgstr "" #: ../Doc/library/dis.rst:63 ../Doc/library/dis.rst:204 msgid "" "If *first_line* is not ``None``, it indicates the line number that should be " "reported for the first source line in the disassembled code. Otherwise, the " "source line information (if any) is taken directly from the disassembled " "code object." msgstr "" #: ../Doc/library/dis.rst:68 msgid "" "If *current_offset* is not ``None``, it refers to an instruction offset in " "the disassembled code. Setting this means :meth:`.dis` will display a " "\"current instruction\" marker against the specified opcode." msgstr "" #: ../Doc/library/dis.rst:74 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." msgstr "" #: ../Doc/library/dis.rst:79 msgid "The compiled code object." msgstr "" #: ../Doc/library/dis.rst:83 msgid "The first source line of the code object (if available)" msgstr "" #: ../Doc/library/dis.rst:87 msgid "" "Return a formatted view of the bytecode operations (the same as printed by :" "func:`dis.dis`, but returned as a multi-line string)." msgstr "" #: ../Doc/library/dis.rst:92 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." msgstr "" #: ../Doc/library/dis.rst:95 msgid "Example::" msgstr "Exemples ::" #: ../Doc/library/dis.rst:108 msgid "Analysis functions" msgstr "" #: ../Doc/library/dis.rst:110 msgid "" "The :mod:`dis` module also defines the following analysis functions that " "convert the input directly to the desired output. They can be useful if only " "a single operation is being performed, so the intermediate analysis object " "isn't useful:" msgstr "" #: ../Doc/library/dis.rst:116 msgid "" "Return a formatted multi-line string with detailed code object information " "for the supplied function, generator, method, source code string or code " "object." msgstr "" #: ../Doc/library/dis.rst:119 msgid "" "Note that the exact contents of code info strings are highly implementation " "dependent and they may change arbitrarily across Python VMs or Python " "releases." msgstr "" #: ../Doc/library/dis.rst:128 msgid "" "Print detailed code object information for the supplied function, method, " "source code string or code object to *file* (or ``sys.stdout`` if *file* is " "not specified)." msgstr "" #: ../Doc/library/dis.rst:132 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." msgstr "" #: ../Doc/library/dis.rst:137 ../Doc/library/dis.rst:155 #: ../Doc/library/dis.rst:168 ../Doc/library/dis.rst:192 msgid "Added *file* parameter." msgstr "" #: ../Doc/library/dis.rst:143 msgid "" "Disassemble the *x* object. *x* can denote either a module, a class, a " "method, a function, a generator, a code object, a string of source code or a " "byte sequence of raw bytecode. For a module, it disassembles all functions. " "For a class, it disassembles all methods (including class and static " "methods). For a code object or sequence of raw bytecode, it prints one line " "per bytecode instruction. Strings are first compiled to code objects with " "the :func:`compile` built-in function before being disassembled. If no " "object is provided, this function disassembles the last traceback." msgstr "" #: ../Doc/library/dis.rst:152 ../Doc/library/dis.rst:165 #: ../Doc/library/dis.rst:189 msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." msgstr "" #: ../Doc/library/dis.rst:161 msgid "" "Disassemble the top-of-stack function of a traceback, using the last " "traceback if none was passed. The instruction causing the exception is " "indicated." msgstr "" #: ../Doc/library/dis.rst:175 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" msgstr "" #: ../Doc/library/dis.rst:178 msgid "the line number, for the first instruction of each line" msgstr "" #: ../Doc/library/dis.rst:179 msgid "the current instruction, indicated as ``-->``," msgstr "" #: ../Doc/library/dis.rst:180 msgid "a labelled instruction, indicated with ``>>``," msgstr "" #: ../Doc/library/dis.rst:181 msgid "the address of the instruction," msgstr "" #: ../Doc/library/dis.rst:182 msgid "the operation code name," msgstr "" #: ../Doc/library/dis.rst:183 msgid "operation parameters, and" msgstr "" #: ../Doc/library/dis.rst:184 msgid "interpretation of the parameters in parentheses." msgstr "" #: ../Doc/library/dis.rst:186 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." msgstr "" #: ../Doc/library/dis.rst:198 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." msgstr "" #: ../Doc/library/dis.rst:201 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." msgstr "" #: ../Doc/library/dis.rst:214 msgid "" "This generator function uses the ``co_firstlineno`` and ``co_lnotab`` " "attributes of the code object *code* to find the offsets which are starts of " "lines in the source code. They are generated as ``(offset, lineno)`` pairs. " "See :source:`Objects/lnotab_notes.txt` for the ``co_lnotab`` format and how " "to decode it." msgstr "" #: ../Doc/library/dis.rst:220 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" #: ../Doc/library/dis.rst:226 msgid "" "Detect all offsets in the code object *code* which are jump targets, and " "return a list of these offsets." msgstr "" #: ../Doc/library/dis.rst:232 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "" #: ../Doc/library/dis.rst:239 msgid "Python Bytecode Instructions" msgstr "" #: ../Doc/library/dis.rst:241 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" msgstr "" #: ../Doc/library/dis.rst:246 msgid "Details for a bytecode operation" msgstr "" #: ../Doc/library/dis.rst:250 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." msgstr "" #: ../Doc/library/dis.rst:256 msgid "human readable name for operation" msgstr "" #: ../Doc/library/dis.rst:261 msgid "numeric argument to operation (if any), otherwise ``None``" msgstr "" #: ../Doc/library/dis.rst:266 msgid "resolved arg value (if known), otherwise same as arg" msgstr "" #: ../Doc/library/dis.rst:271 msgid "human readable description of operation argument" msgstr "" #: ../Doc/library/dis.rst:276 msgid "start index of operation within bytecode sequence" msgstr "" #: ../Doc/library/dis.rst:281 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" #: ../Doc/library/dis.rst:286 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "" #: ../Doc/library/dis.rst:291 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" #: ../Doc/library/dis.rst:294 msgid "**General instructions**" msgstr "" #: ../Doc/library/dis.rst:298 msgid "Do nothing code. Used as a placeholder by the bytecode optimizer." msgstr "" #: ../Doc/library/dis.rst:303 msgid "Removes the top-of-stack (TOS) item." msgstr "" #: ../Doc/library/dis.rst:308 msgid "Swaps the two top-most stack items." msgstr "" #: ../Doc/library/dis.rst:313 msgid "" "Lifts second and third stack item one position up, moves top down to " "position three." msgstr "" #: ../Doc/library/dis.rst:319 msgid "Duplicates the reference on top of the stack." msgstr "" #: ../Doc/library/dis.rst:326 msgid "" "Duplicates the two references on top of the stack, leaving them in the same " "order." msgstr "" #: ../Doc/library/dis.rst:332 msgid "**Unary operations**" msgstr "" #: ../Doc/library/dis.rst:334 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" #: ../Doc/library/dis.rst:339 msgid "Implements ``TOS = +TOS``." msgstr "" #: ../Doc/library/dis.rst:344 msgid "Implements ``TOS = -TOS``." msgstr "" #: ../Doc/library/dis.rst:349 msgid "Implements ``TOS = not TOS``." msgstr "" #: ../Doc/library/dis.rst:354 msgid "Implements ``TOS = ~TOS``." msgstr "" #: ../Doc/library/dis.rst:359 msgid "Implements ``TOS = iter(TOS)``." msgstr "" #: ../Doc/library/dis.rst:364 msgid "" "If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " "left as is. Otherwise, implements ``TOS = iter(TOS)``." msgstr "" #: ../Doc/library/dis.rst:370 msgid "**Binary operations**" msgstr "" #: ../Doc/library/dis.rst:372 msgid "" "Binary operations remove the top of the stack (TOS) and the second top-most " "stack item (TOS1) from the stack. They perform the operation, and put the " "result back on the stack." msgstr "" #: ../Doc/library/dis.rst:378 msgid "Implements ``TOS = TOS1 ** TOS``." msgstr "" #: ../Doc/library/dis.rst:383 msgid "Implements ``TOS = TOS1 * TOS``." msgstr "" #: ../Doc/library/dis.rst:388 msgid "Implements ``TOS = TOS1 @ TOS``." msgstr "" #: ../Doc/library/dis.rst:395 msgid "Implements ``TOS = TOS1 // TOS``." msgstr "" #: ../Doc/library/dis.rst:400 msgid "Implements ``TOS = TOS1 / TOS``." msgstr "" #: ../Doc/library/dis.rst:405 msgid "Implements ``TOS = TOS1 % TOS``." msgstr "" #: ../Doc/library/dis.rst:410 msgid "Implements ``TOS = TOS1 + TOS``." msgstr "" #: ../Doc/library/dis.rst:415 msgid "Implements ``TOS = TOS1 - TOS``." msgstr "" #: ../Doc/library/dis.rst:420 msgid "Implements ``TOS = TOS1[TOS]``." msgstr "" #: ../Doc/library/dis.rst:425 msgid "Implements ``TOS = TOS1 << TOS``." msgstr "" #: ../Doc/library/dis.rst:430 msgid "Implements ``TOS = TOS1 >> TOS``." msgstr "" #: ../Doc/library/dis.rst:435 msgid "Implements ``TOS = TOS1 & TOS``." msgstr "" #: ../Doc/library/dis.rst:440 msgid "Implements ``TOS = TOS1 ^ TOS``." msgstr "" #: ../Doc/library/dis.rst:445 msgid "Implements ``TOS = TOS1 | TOS``." msgstr "" #: ../Doc/library/dis.rst:448 msgid "**In-place operations**" msgstr "" #: ../Doc/library/dis.rst:450 msgid "" "In-place operations are like binary operations, in that they remove TOS and " "TOS1, and push the result back on the stack, but the operation is done in-" "place when TOS1 supports it, and the resulting TOS may be (but does not have " "to be) the original TOS1." msgstr "" #: ../Doc/library/dis.rst:457 msgid "Implements in-place ``TOS = TOS1 ** TOS``." msgstr "" #: ../Doc/library/dis.rst:462 msgid "Implements in-place ``TOS = TOS1 * TOS``." msgstr "" #: ../Doc/library/dis.rst:467 msgid "Implements in-place ``TOS = TOS1 @ TOS``." msgstr "" #: ../Doc/library/dis.rst:474 msgid "Implements in-place ``TOS = TOS1 // TOS``." msgstr "" #: ../Doc/library/dis.rst:479 msgid "Implements in-place ``TOS = TOS1 / TOS``." msgstr "" #: ../Doc/library/dis.rst:484 msgid "Implements in-place ``TOS = TOS1 % TOS``." msgstr "" #: ../Doc/library/dis.rst:489 msgid "Implements in-place ``TOS = TOS1 + TOS``." msgstr "" #: ../Doc/library/dis.rst:494 msgid "Implements in-place ``TOS = TOS1 - TOS``." msgstr "" #: ../Doc/library/dis.rst:499 msgid "Implements in-place ``TOS = TOS1 << TOS``." msgstr "" #: ../Doc/library/dis.rst:504 msgid "Implements in-place ``TOS = TOS1 >> TOS``." msgstr "" #: ../Doc/library/dis.rst:509 msgid "Implements in-place ``TOS = TOS1 & TOS``." msgstr "" #: ../Doc/library/dis.rst:514 msgid "Implements in-place ``TOS = TOS1 ^ TOS``." msgstr "" #: ../Doc/library/dis.rst:519 msgid "Implements in-place ``TOS = TOS1 | TOS``." msgstr "" #: ../Doc/library/dis.rst:524 msgid "Implements ``TOS1[TOS] = TOS2``." msgstr "" #: ../Doc/library/dis.rst:529 msgid "Implements ``del TOS1[TOS]``." msgstr "" #: ../Doc/library/dis.rst:532 msgid "**Coroutine opcodes**" msgstr "" #: ../Doc/library/dis.rst:536 msgid "" "Implements ``TOS = get_awaitable(TOS)``, where ``get_awaitable(o)`` returns " "``o`` if ``o`` is a coroutine object or a generator object with the " "CO_ITERABLE_COROUTINE flag, or resolves ``o.__await__``." msgstr "" #: ../Doc/library/dis.rst:546 msgid "" "Implements ``TOS = get_awaitable(TOS.__aiter__())``. See ``GET_AWAITABLE`` " "for details about ``get_awaitable``" msgstr "" #: ../Doc/library/dis.rst:554 msgid "" "Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` " "for details about ``get_awaitable``" msgstr "" #: ../Doc/library/dis.rst:562 msgid "" "Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " "stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." msgstr "" #: ../Doc/library/dis.rst:570 msgid "Creates a new frame object." msgstr "" #: ../Doc/library/dis.rst:576 msgid "**Miscellaneous opcodes**" msgstr "" #: ../Doc/library/dis.rst:580 msgid "" "Implements the expression statement for the interactive mode. TOS is " "removed from the stack and printed. In non-interactive mode, an expression " "statement is terminated with :opcode:`POP_TOP`." msgstr "" #: ../Doc/library/dis.rst:587 msgid "Terminates a loop due to a :keyword:`break` statement." msgstr "" #: ../Doc/library/dis.rst:592 msgid "" "Continues a loop due to a :keyword:`continue` statement. *target* is the " "address to jump to (which should be a :opcode:`FOR_ITER` instruction)." msgstr "" #: ../Doc/library/dis.rst:598 msgid "" "Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." msgstr "" #: ../Doc/library/dis.rst:603 msgid "" "Calls ``list.append(TOS[-i], TOS)``. Used to implement list comprehensions." msgstr "" #: ../Doc/library/dis.rst:608 msgid "" "Calls ``dict.setitem(TOS1[-i], TOS, TOS1)``. Used to implement dict " "comprehensions." msgstr "" #: ../Doc/library/dis.rst:613 msgid "" "For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` and :opcode:" "`MAP_ADD` instructions, while the added value or key/value pair is popped " "off, the container object remains on the stack so that it is available for " "further iterations of the loop." msgstr "" #: ../Doc/library/dis.rst:621 msgid "Returns with TOS to the caller of the function." msgstr "" #: ../Doc/library/dis.rst:626 msgid "Pops TOS and yields it from a :term:`generator`." msgstr "" #: ../Doc/library/dis.rst:631 msgid "Pops TOS and delegates to it as a subiterator from a :term:`generator`." msgstr "" #: ../Doc/library/dis.rst:638 msgid "" "Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " "set up to an empty ``dict``. This opcode is only emitted if a class or " "module body contains :term:`variable annotations ` " "statically." msgstr "" #: ../Doc/library/dis.rst:648 msgid "" "Loads all symbols not starting with ``'_'`` directly from the module TOS to " "the local namespace. The module is popped after loading all names. This " "opcode implements ``from module import *``." msgstr "" #: ../Doc/library/dis.rst:655 msgid "" "Removes one block from the block stack. Per frame, there is a stack of " "blocks, denoting nested loops, try statements, and such." msgstr "" #: ../Doc/library/dis.rst:661 msgid "" "Removes one block from the block stack. The popped block must be an " "exception handler block, as implicitly created when entering an except " "handler. In addition to popping extraneous values from the frame stack, the " "last three popped values are used to restore the exception state." msgstr "" #: ../Doc/library/dis.rst:669 msgid "" "Terminates a :keyword:`finally` clause. The interpreter recalls whether the " "exception has to be re-raised, or whether the function returns, and " "continues with the outer-next block." msgstr "" #: ../Doc/library/dis.rst:676 msgid "" "Pushes :func:`builtins.__build_class__` onto the stack. It is later called " "by :opcode:`CALL_FUNCTION` to construct a class." msgstr "" #: ../Doc/library/dis.rst:682 msgid "" "This opcode performs several operations before a with block starts. First, " "it loads :meth:`~object.__exit__` from the context manager and pushes it " "onto the stack for later use by :opcode:`WITH_CLEANUP`. Then, :meth:" "`~object.__enter__` is called, and a finally block pointing to *delta* is " "pushed. Finally, the result of calling the enter method is pushed onto the " "stack. The next opcode will either ignore it (:opcode:`POP_TOP`), or store " "it in (a) variable(s) (:opcode:`STORE_FAST`, :opcode:`STORE_NAME`, or :" "opcode:`UNPACK_SEQUENCE`)." msgstr "" #: ../Doc/library/dis.rst:696 msgid "" "Cleans up the stack when a :keyword:`with` statement block exits. TOS is " "the context manager's :meth:`__exit__` bound method. Below TOS are 1--3 " "values indicating how/why the finally clause was entered:" msgstr "" #: ../Doc/library/dis.rst:700 msgid "SECOND = ``None``" msgstr "" #: ../Doc/library/dis.rst:701 msgid "(SECOND, THIRD) = (``WHY_{RETURN,CONTINUE}``), retval" msgstr "" #: ../Doc/library/dis.rst:702 msgid "SECOND = ``WHY_*``; no retval below it" msgstr "" #: ../Doc/library/dis.rst:703 msgid "(SECOND, THIRD, FOURTH) = exc_info()" msgstr "" #: ../Doc/library/dis.rst:705 msgid "" "In the last case, ``TOS(SECOND, THIRD, FOURTH)`` is called, otherwise " "``TOS(None, None, None)``. Pushes SECOND and result of the call to the " "stack." msgstr "" #: ../Doc/library/dis.rst:712 msgid "Pops exception type and result of 'exit' function call from the stack." msgstr "" #: ../Doc/library/dis.rst:714 msgid "" "If the stack represents an exception, *and* the function call returns a " "'true' value, this information is \"zapped\" and replaced with a single " "``WHY_SILENCED`` to prevent :opcode:`END_FINALLY` from re-raising the " "exception. (But non-local gotos will still be resumed.)" msgstr "" #: ../Doc/library/dis.rst:722 msgid "All of the following opcodes use their arguments." msgstr "" #: ../Doc/library/dis.rst:726 msgid "" "Implements ``name = TOS``. *namei* is the index of *name* in the attribute :" "attr:`co_names` of the code object. The compiler tries to use :opcode:" "`STORE_FAST` or :opcode:`STORE_GLOBAL` if possible." msgstr "" #: ../Doc/library/dis.rst:733 msgid "" "Implements ``del name``, where *namei* is the index into :attr:`co_names` " "attribute of the code object." msgstr "" #: ../Doc/library/dis.rst:739 msgid "" "Unpacks TOS into *count* individual values, which are put onto the stack " "right-to-left." msgstr "" #: ../Doc/library/dis.rst:745 msgid "" "Implements assignment with a starred target: Unpacks an iterable in TOS into " "individual values, where the total number of values can be smaller than the " "number of items in the iterable: one of the new values will be a list of all " "leftover items." msgstr "" #: ../Doc/library/dis.rst:750 msgid "" "The low byte of *counts* is the number of values before the list value, the " "high byte of *counts* the number of values after it. The resulting values " "are put onto the stack right-to-left." msgstr "" #: ../Doc/library/dis.rst:757 msgid "" "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" "`co_names`." msgstr "" #: ../Doc/library/dis.rst:763 msgid "" "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." msgstr "" #: ../Doc/library/dis.rst:768 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" #: ../Doc/library/dis.rst:773 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" #: ../Doc/library/dis.rst:778 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" #: ../Doc/library/dis.rst:783 msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." msgstr "" #: ../Doc/library/dis.rst:788 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack." msgstr "" #: ../Doc/library/dis.rst:794 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" #: ../Doc/library/dis.rst:799 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" #: ../Doc/library/dis.rst:804 msgid "" "Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " "that the dictionary holds *count* entries: ``{..., TOS3: TOS2, TOS1: TOS}``." msgstr "" #: ../Doc/library/dis.rst:808 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" #: ../Doc/library/dis.rst:815 msgid "" "The version of :opcode:`BUILD_MAP` specialized for constant keys. *count* " "values are consumed from the stack. The top element on the stack contains a " "tuple of keys." msgstr "" #: ../Doc/library/dis.rst:824 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" #: ../Doc/library/dis.rst:832 msgid "" "Pops *count* iterables from the stack, joins them in a single tuple, and " "pushes the result. Implements iterable unpacking in tuple displays ``(*x, " "*y, *z)``." msgstr "" #: ../Doc/library/dis.rst:841 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but is used for ``f(*x, *y, " "*z)`` call syntax. The stack item at position ``count + 1`` should be the " "corresponding callable ``f``." msgstr "" #: ../Doc/library/dis.rst:850 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a list instead " "of tuple. Implements iterable unpacking in list displays ``[*x, *y, *z]``." msgstr "" #: ../Doc/library/dis.rst:859 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a set instead of " "tuple. Implements iterable unpacking in set displays ``{*x, *y, *z}``." msgstr "" #: ../Doc/library/dis.rst:868 msgid "" "Pops *count* mappings from the stack, merges them into a single dictionary, " "and pushes the result. Implements dictionary unpacking in dictionary " "displays ``{**x, **y, **z}``." msgstr "" #: ../Doc/library/dis.rst:877 msgid "" "This is similar to :opcode:`BUILD_MAP_UNPACK`, but is used for ``f(**x, **y, " "**z)`` call syntax. The stack item at position ``count + 2`` should be the " "corresponding callable ``f``." msgstr "" #: ../Doc/library/dis.rst:882 msgid "" "The position of the callable is determined by adding 2 to the opcode " "argument instead of encoding it in the second byte of the argument." msgstr "" #: ../Doc/library/dis.rst:889 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." msgstr "" #: ../Doc/library/dis.rst:894 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." msgstr "" #: ../Doc/library/dis.rst:900 msgid "" "Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide " "the *fromlist* and *level* arguments of :func:`__import__`. The module " "object is pushed onto the stack. The current namespace is not affected: for " "a proper import statement, a subsequent :opcode:`STORE_FAST` instruction " "modifies the namespace." msgstr "" #: ../Doc/library/dis.rst:909 msgid "" "Loads the attribute ``co_names[namei]`` from the module found in TOS. The " "resulting object is pushed onto the stack, to be subsequently stored by a :" "opcode:`STORE_FAST` instruction." msgstr "" #: ../Doc/library/dis.rst:916 msgid "Increments bytecode counter by *delta*." msgstr "" #: ../Doc/library/dis.rst:921 msgid "If TOS is true, sets the bytecode counter to *target*. TOS is popped." msgstr "" #: ../Doc/library/dis.rst:928 msgid "If TOS is false, sets the bytecode counter to *target*. TOS is popped." msgstr "" #: ../Doc/library/dis.rst:935 msgid "" "If TOS is true, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is false), TOS is popped." msgstr "" #: ../Doc/library/dis.rst:943 msgid "" "If TOS is false, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is true), TOS is popped." msgstr "" #: ../Doc/library/dis.rst:951 msgid "Set bytecode counter to *target*." msgstr "" #: ../Doc/library/dis.rst:956 msgid "" "TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " "this yields a new value, push it on the stack (leaving the iterator below " "it). If the iterator indicates it is exhausted TOS is popped, and the byte " "code counter is incremented by *delta*." msgstr "" #: ../Doc/library/dis.rst:964 msgid "Loads the global named ``co_names[namei]`` onto the stack." msgstr "" #: ../Doc/library/dis.rst:969 msgid "" "Pushes a block for a loop onto the block stack. The block spans from the " "current instruction with a size of *delta* bytes." msgstr "" #: ../Doc/library/dis.rst:975 msgid "" "Pushes a try block from a try-except clause onto the block stack. *delta* " "points to the first except block." msgstr "" #: ../Doc/library/dis.rst:981 msgid "" "Pushes a try block from a try-except clause onto the block stack. *delta* " "points to the finally block." msgstr "" #: ../Doc/library/dis.rst:987 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" #: ../Doc/library/dis.rst:992 msgid "Stores TOS into the local ``co_varnames[var_num]``." msgstr "" #: ../Doc/library/dis.rst:997 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" #: ../Doc/library/dis.rst:1002 msgid "Stores TOS as ``locals()['__annotations__'][co_names[namei]] = TOS``." msgstr "" #: ../Doc/library/dis.rst:1009 msgid "" "Pushes a reference to the cell contained in slot *i* of the cell and free " "variable storage. The name of the variable is ``co_cellvars[i]`` if *i* is " "less than the length of *co_cellvars*. Otherwise it is ``co_freevars[i - " "len(co_cellvars)]``." msgstr "" #: ../Doc/library/dis.rst:1017 msgid "" "Loads the cell contained in slot *i* of the cell and free variable storage. " "Pushes a reference to the object the cell contains on the stack." msgstr "" #: ../Doc/library/dis.rst:1023 msgid "" "Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before " "consulting the cell. This is used for loading free variables in class " "bodies." msgstr "" #: ../Doc/library/dis.rst:1032 msgid "" "Stores TOS into the cell contained in slot *i* of the cell and free variable " "storage." msgstr "" #: ../Doc/library/dis.rst:1038 msgid "" "Empties the cell contained in slot *i* of the cell and free variable " "storage. Used by the :keyword:`del` statement." msgstr "" #: ../Doc/library/dis.rst:1046 msgid "" "Raises an exception. *argc* indicates the number of parameters to the raise " "statement, ranging from 0 to 3. The handler will find the traceback as " "TOS2, the parameter as TOS1, and the exception as TOS." msgstr "" #: ../Doc/library/dis.rst:1053 msgid "" "Calls a function. *argc* indicates the number of positional arguments. The " "positional arguments are on the stack, with the right-most argument on top. " "Below the arguments, the function object to call is on the stack. Pops all " "function arguments, and the function itself off the stack, and pushes the " "return value." msgstr "" #: ../Doc/library/dis.rst:1059 msgid "This opcode is used only for calls with positional arguments." msgstr "" #: ../Doc/library/dis.rst:1065 msgid "" "Calls a function. *argc* indicates the number of arguments (positional and " "keyword). The top element on the stack contains a tuple of keyword argument " "names. Below the tuple, keyword arguments are on the stack, in the order " "corresponding to the tuple. Below the keyword arguments, the positional " "arguments are on the stack, with the right-most parameter on top. Below the " "arguments, the function object to call is on the stack. Pops all function " "arguments, and the function itself off the stack, and pushes the return " "value." msgstr "" #: ../Doc/library/dis.rst:1074 msgid "" "Keyword arguments are packed in a tuple instead of a dictionary, *argc* " "indicates the total number of arguments" msgstr "" #: ../Doc/library/dis.rst:1081 msgid "" "Calls a function. The lowest bit of *flags* indicates whether the var-" "keyword argument is placed at the top of the stack. Below the var-keyword " "argument, the var-positional argument is on the stack. Below the arguments, " "the function object to call is placed. Pops all function arguments, and the " "function itself off the stack, and pushes the return value. Note that this " "opcode pops at most three items from the stack. Var-positional and var-" "keyword arguments are packed by :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` and :" "opcode:`BUILD_MAP_UNPACK_WITH_CALL`." msgstr "" #: ../Doc/library/dis.rst:1096 msgid "" "Pushes a new function object on the stack. From bottom to top, the consumed " "stack must consist of values if the argument carries a specified flag value" msgstr "" #: ../Doc/library/dis.rst:1099 msgid "``0x01`` a tuple of default argument objects in positional order" msgstr "" #: ../Doc/library/dis.rst:1100 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" #: ../Doc/library/dis.rst:1101 msgid "``0x04`` an annotation dictionary" msgstr "" #: ../Doc/library/dis.rst:1102 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" #: ../Doc/library/dis.rst:1103 msgid "the code associated with the function (at TOS1)" msgstr "" #: ../Doc/library/dis.rst:1104 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" #: ../Doc/library/dis.rst:1111 msgid "" "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " "``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " "pushed. See the :func:`slice` built-in function for more information." msgstr "" #: ../Doc/library/dis.rst:1118 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "two bytes. *ext* holds two additional bytes which, taken together with the " "subsequent opcode's argument, comprise a four-byte argument, *ext* being the " "two most-significant bytes." msgstr "" #: ../Doc/library/dis.rst:1126 msgid "" "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:" msgstr "" #: ../Doc/library/dis.rst:1130 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" #: ../Doc/library/dis.rst:1131 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" #: ../Doc/library/dis.rst:1133 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" #: ../Doc/library/dis.rst:1135 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" #: ../Doc/library/dis.rst:1137 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" #: ../Doc/library/dis.rst:1140 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" #: ../Doc/library/dis.rst:1148 msgid "" "This is not really an opcode. It identifies the dividing line between " "opcodes which don't use their argument and those that do (``< " "HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." msgstr "" #: ../Doc/library/dis.rst:1152 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." msgstr "" #: ../Doc/library/dis.rst:1160 msgid "Opcode collections" msgstr "" #: ../Doc/library/dis.rst:1162 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" #: ../Doc/library/dis.rst:1167 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" #: ../Doc/library/dis.rst:1172 msgid "Dictionary mapping operation names to bytecodes." msgstr "" #: ../Doc/library/dis.rst:1177 msgid "Sequence of all compare operation names." msgstr "" #: ../Doc/library/dis.rst:1182 msgid "Sequence of bytecodes that have a constant parameter." msgstr "" #: ../Doc/library/dis.rst:1187 msgid "" "Sequence of bytecodes that access a free variable (note that 'free' in this " "context refers to names in the current scope that are referenced by inner " "scopes or names in outer scopes that are referenced from this scope. It " "does *not* include references to global or builtin scopes)." msgstr "" #: ../Doc/library/dis.rst:1195 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" #: ../Doc/library/dis.rst:1200 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" #: ../Doc/library/dis.rst:1205 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" #: ../Doc/library/dis.rst:1210 msgid "Sequence of bytecodes that access a local variable." msgstr "" #: ../Doc/library/dis.rst:1215 msgid "Sequence of bytecodes of Boolean operations." msgstr ""