# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-02-12 11:56+0100\n" "PO-Revision-Date: 2019-07-18 21:03+0200\n" "Last-Translator: Aya Keddam \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" #: library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" #: library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" msgstr "**Code source :** :source:`Lib/dis.py`" #: library/dis.rst:17 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 "" "La bibliothèque :mod:`dis` supporte l'analyse du :term:`bytecode` CPython " "en le désassemblant. Le code intermédiaire CPython, que cette bibliothèque " "prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et " "est utilisé par le compilateur et l'interpréteur." #: library/dis.rst:24 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 "" "Le code intermédiaire est un détail d'implémentation de l'interpréteur " "CPython. Il n'y a pas de garantie que le code intermédiaire sera ajouté, " "retiré, ou modifié dans les différentes versions de Python. L'utilisation de " "cette bibliothèque ne fonctionne pas nécessairement sur les machines " "virtuelles Python ni les différentes versions de Python." #: library/dis.rst:29 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." msgstr "" "Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " "par instruction." #: library/dis.rst:33 msgid "" "The argument of jump, exception handling and loop instructions is now the " "instruction offset rather than the byte offset." msgstr "" #: library/dis.rst:37 msgid "" "Some instructions are accompanied by one or more inline cache entries, which " "take the form of :opcode:`CACHE` instructions. These instructions are hidden " "by default, but can be shown by passing ``show_caches=True`` to any :mod:" "`dis` utility. Furthermore, the interpreter now adapts the bytecode to " "specialize it for different runtime conditions. The adaptive bytecode can be " "shown by passing ``adaptive=True``." msgstr "" #: library/dis.rst:46 msgid "Example: Given the function :func:`myfunc`::" msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" #: library/dis.rst:51 #, fuzzy msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`:" msgstr "" "la commande suivante peut-être utilisé pour afficher le désassemblage de :" "func:`myfunc` :" #: library/dis.rst:65 msgid "(The \"2\" is a line number)." msgstr "(Le \"2\" est un numéro de ligne)." #: library/dis.rst:68 msgid "Bytecode analysis" msgstr "Analyse du code intermédiaire" #: library/dis.rst:72 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 "" "L'analyse de l'*API* code intermédiaire permet de rassembler des blocs de " "code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " "aux détails du code compilé." #: library/dis.rst:79 msgid "" "Analyse the bytecode corresponding to a function, generator, asynchronous " "generator, coroutine, method, string of source code, or a code object (as " "returned by :func:`compile`)." msgstr "" "Analyse le code intermédiaire correspondant à une fonction, un générateur, " "un générateur asynchrone, une coroutine, une méthode, une chaîne de " "caractères du code source, ou bien une classe (comme retourne la fonction :" "func:`compile`)." #: library/dis.rst:83 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 "" "Ceci est *wrapper* sur plusieurs fonctions de la liste ci-dessous, " "notamment :func:`get_instructions`, étant donné qu'une itération sur une " "instance de la classe :class:`Bytecode` rend les opérations du code " "intermédiaire des instances de :class:`Instruction`." #: library/dis.rst:276 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 "" "Si *first_line* ne vaut pas ``None``, elle indique le nombre de la ligne qui " "doit être considérée comme première ligne source dans le code désassemblé. " "Autrement, les informations sur la ligne source sont prises directement à " "partir de la classe du code désassemblé." #: library/dis.rst:92 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 "" "Si la valeur de *current_offset* est différente de ``None``, c'est une " "référence à un offset d'une instruction dans le code désassemblé. Cela veut " "dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " "contre le code d'opération donné." #: library/dis.rst:96 msgid "" "If *show_caches* is ``True``, :meth:`.dis` will display inline cache entries " "used by the interpreter to specialize the bytecode." msgstr "" #: library/dis.rst:99 msgid "" "If *adaptive* is ``True``, :meth:`.dis` will display specialized bytecode " "that may be different from the original bytecode." msgstr "" #: library/dis.rst:104 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." msgstr "" "Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " "mettant *current_offet* à l'instruction responsable de l'exception." #: library/dis.rst:109 msgid "The compiled code object." msgstr "Le code compilé objet." #: library/dis.rst:113 msgid "The first source line of the code object (if available)" msgstr "La première ligne source du code objet (si disponible)" #: library/dis.rst:117 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 "" "Retourne une vue formatée des opérations du code intermédiaire (la même que " "celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " "plusieurs lignes )." #: library/dis.rst:122 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." msgstr "" "Retourne une chaîne de caractères de plusieurs lignes formatée avec des " "informations détaillées sur l'objet code comme :func:`code_info`." #: library/dis.rst:166 library/dis.rst:218 msgid "This can now handle coroutine and asynchronous generator objects." msgstr "" "Cette version supporte la coroutine et les objets générateurs asynchrones." #: library/dis.rst:221 library/dis.rst:264 library/dis.rst:285 #, fuzzy msgid "Added the *show_caches* and *adaptive* parameters." msgstr "Ajout du paramètre *file*." #: library/dis.rst:131 #, fuzzy msgid "Example:" msgstr "Exemple :" #: library/dis.rst:148 msgid "Analysis functions" msgstr "Analyse de fonctions" #: library/dis.rst:150 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 "" "La bibliothèque :mod:`dis` comprend également l'analyse des fonctions " "suivantes, qui envoient l'entrée directement à la sortie souhaitée. Elles " "peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " "représentation intermédiaire objet n'étant donc pas utile dans ce cas :" #: library/dis.rst:156 msgid "" "Return a formatted multi-line string with detailed code object information " "for the supplied function, generator, asynchronous generator, coroutine, " "method, source code string or code object." msgstr "" "Retourne une chaîne de caractères de plusieurs lignes formatée avec des " "informations détaillées sur l'objet code pour les fonctions données, les " "générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " "code source ou objet." #: library/dis.rst:160 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 "" "Il est à noter que le contenu exact des chaînes de caractères figurant dans " "les informations du code dépendent fortement sur l'implémentation, et " "peuvent changer arbitrairement sous machines virtuelles Python ou les " "versions de Python." #: library/dis.rst:172 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 "" "Affiche des informations détaillées sur le code de la fonction fournie, la " "méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " "bien ``sys.stdout`` si *file* n'est pas spécifié)." #: library/dis.rst:176 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." msgstr "" "Ceci est un raccourci convenable de ``print(code_info(x), file=file)``, " "principalement fait pour l'exploration interactive sur l'invite de " "l'interpréteur." #: library/dis.rst:212 library/dis.rst:261 msgid "Added *file* parameter." msgstr "Ajout du paramètre *file*." #: library/dis.rst:187 msgid "" "Disassemble the *x* object. *x* can denote either a module, a class, a " "method, a function, a generator, an asynchronous generator, a coroutine, 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. It also " "recursively disassembles nested code objects (the code of comprehensions, " "generator expressions and nested functions, and the code used for building " "nested classes). 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 "" "Désassemble l'objet *x*. *x* peut être une bibliothèque , une classe, une " "méthode, une fonction, un générateur, un générateur asynchrone, une " "coroutine, un code objet, une chaine de caractères du coude source ou une " "séquence de bits du code intermédiaire brut. Pour une bibliothèque , elle " "désassemble toutes les fonctions. Pour une classe, elle désassemble toutes " "les méthodes (y compris les classes et méthodes statiques). Pour un code " "objet ou une séquence de code intermédiaire brut, elle affiche une ligne par " "instruction code intermédiaire. Aussi, elle désassemble les codes objets " "internes récursivement (le code en compréhension, les expressions des " "générateurs et les fonctions imbriquées, et le code utilisé pour la " "construction des classes internes). Les chaînes de caractères sont d'abord " "compilées pour coder des objets avec les fonctions intégrées de :func:" "`compile` avant qu'elles ne soient désassemblées. Si aucun objet n'est " "fourni, cette fonction désassemble les dernières traces d'appel." #: library/dis.rst:231 library/dis.rst:258 msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." msgstr "" "Le désassemblage est envoyé sous forme de texte à l'argument du fichier " "*file* si il est fourni, et à ``sys.stdout`` sinon." #: library/dis.rst:203 msgid "" "The maximal depth of recursion is limited by *depth* unless it is ``None``. " "``depth=0`` means no recursion." msgstr "" "La profondeur maximale de récursion est limitée par *depth* sauf si elle " "correspond à ``None``. ``depth=0`` indique qu'il n'y a pas de récursion." #: library/dis.rst:206 msgid "" "If *show_caches* is ``True``, this function will display inline cache " "entries used by the interpreter to specialize the bytecode." msgstr "" #: library/dis.rst:209 msgid "" "If *adaptive* is ``True``, this function will display specialized bytecode " "that may be different from the original bytecode." msgstr "" #: library/dis.rst:215 msgid "Implemented recursive disassembling and added *depth* parameter." msgstr "" "Le désassemblage récursif a été implémenté, et le paramètre *depth* a été " "ajouté." #: library/dis.rst:227 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 "" "Désassemble la fonction du haut de la pile des traces d'appels, en utilisant " "la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " "de l'exception est indiquée." #: library/dis.rst:244 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" msgstr "" "Désassemble un code objet, en indiquant la dernière instruction si *lasti* " "est fournie. La sortie est répartie sur les colonnes suivantes :" #: library/dis.rst:247 msgid "the line number, for the first instruction of each line" msgstr "le numéro de ligne, pour la première instruction de chaque ligne" #: library/dis.rst:248 msgid "the current instruction, indicated as ``-->``," msgstr "l'instruction en cours, indiquée par ``-->``," #: library/dis.rst:249 msgid "a labelled instruction, indicated with ``>>``," msgstr "une instruction libellée, indiquée par ``> >``," #: library/dis.rst:250 msgid "the address of the instruction," msgstr "l'adresse de l'instruction," #: library/dis.rst:251 msgid "the operation code name," msgstr "le nom de le code d'opération," #: library/dis.rst:252 msgid "operation parameters, and" msgstr "paramètres de l'opération, et" #: library/dis.rst:253 msgid "interpretation of the parameters in parentheses." msgstr "interprétation des paramètres entre parenthèses." #: library/dis.rst:255 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." msgstr "" "L'interprétation du paramètre reconnaît les noms des variables locales et " "globales, des valeurs constantes, des branchements cibles, et des opérateurs " "de comparaison." #: library/dis.rst:270 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." msgstr "" "Retourne un itérateur sur les instructions dans la fonction fournie, la " "méthode, les chaînes de caractères du code source ou objet." #: library/dis.rst:273 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." msgstr "" "Cet itérateur génère une série de *n*-uplets de :class:`Instruction` qui " "donnent les détails de chacune des opérations dans le code fourni." #: library/dis.rst:281 msgid "" "The *show_caches* and *adaptive* parameters work as they do in :func:`dis`." msgstr "" #: library/dis.rst:291 msgid "" "This generator function uses the ``co_lines`` method 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." msgstr "" #: library/dis.rst:295 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" "Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " "croissants." #: library/dis.rst:298 msgid "" "The :pep:`626` ``co_lines`` method is used instead of the ``co_firstlineno`` " "and ``co_lnotab`` attributes of the code object." msgstr "" #: library/dis.rst:305 msgid "" "Detect all offsets in the raw compiled bytecode string *code* which are jump " "targets, and return a list of these offsets." msgstr "" #: library/dis.rst:311 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "" #: library/dis.rst:313 msgid "" "If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " "will return the stack effect of jumping. If *jump* is ``False``, it will " "return the stack effect of not jumping. And if *jump* is ``None`` (default), " "it will return the maximal stack effect of both cases." msgstr "" #: library/dis.rst:320 #, fuzzy msgid "Added *jump* parameter." msgstr "Ajout du paramètre *file*." #: library/dis.rst:327 msgid "Python Bytecode Instructions" msgstr "Les instructions du code intermédiaire en Python" #: library/dis.rst:329 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" msgstr "" "La fonction :func:`get_instructions` et la méthode :class:`Bytecode` fournit " "des détails sur le code intermédiaire des instructions comme :class:" "`Instruction` instances :" #: library/dis.rst:334 msgid "Details for a bytecode operation" msgstr "Détails sur le code intermédiaire de l'opération" #: library/dis.rst:338 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." msgstr "" "code numérique pour l'opération, correspondant aux valeurs de l'*opcode* ci-" "dessous et les valeurs du code intermédiaire dans la :ref:" "`opcode_collections`." #: library/dis.rst:344 msgid "human readable name for operation" msgstr "nom lisible/compréhensible de l'opération" #: library/dis.rst:349 msgid "numeric argument to operation (if any), otherwise ``None``" msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" #: library/dis.rst:354 #, fuzzy msgid "resolved arg value (if any), otherwise ``None``" msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" #: library/dis.rst:359 msgid "" "human readable description of operation argument (if any), otherwise an " "empty string." msgstr "" #: library/dis.rst:365 msgid "start index of operation within bytecode sequence" msgstr "" #: library/dis.rst:370 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" #: library/dis.rst:375 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "" #: library/dis.rst:380 msgid "" ":class:`dis.Positions` object holding the start and end locations that are " "covered by this instruction." msgstr "" #: library/dis.rst:387 msgid "Field ``positions`` is added." msgstr "" #: library/dis.rst:392 msgid "" "In case the information is not available, some fields might be ``None``." msgstr "" #: library/dis.rst:402 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" #: library/dis.rst:405 msgid "**General instructions**" msgstr "" #: library/dis.rst:409 msgid "" "Do nothing code. Used as a placeholder by the bytecode optimizer, and to " "generate line tracing events." msgstr "" #: library/dis.rst:415 msgid "Removes the top-of-stack (TOS) item." msgstr "" #: library/dis.rst:420 msgid "" "Push the *i*-th item to the top of the stack. The item is not removed from " "its original location." msgstr "" #: library/dis.rst:428 msgid "Swap TOS with the item at position *i*." msgstr "" #: library/dis.rst:435 msgid "" "Rather than being an actual instruction, this opcode is used to mark extra " "space for the interpreter to cache useful data directly in the bytecode " "itself. It is automatically hidden by all ``dis`` utilities, but can be " "viewed with ``show_caches=True``." msgstr "" #: library/dis.rst:440 msgid "" "Logically, this space is part of the preceding instruction. Many opcodes " "expect to be followed by an exact number of caches, and will instruct the " "interpreter to skip over them at runtime." msgstr "" #: library/dis.rst:444 msgid "" "Populated caches can look like arbitrary instructions, so great care should " "be taken when reading or modifying raw, adaptive bytecode containing " "quickened data." msgstr "" #: library/dis.rst:451 msgid "**Unary operations**" msgstr "" #: library/dis.rst:453 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" #: library/dis.rst:458 msgid "Implements ``TOS = +TOS``." msgstr "" #: library/dis.rst:463 msgid "Implements ``TOS = -TOS``." msgstr "" #: library/dis.rst:468 msgid "Implements ``TOS = not TOS``." msgstr "" #: library/dis.rst:473 msgid "Implements ``TOS = ~TOS``." msgstr "" #: library/dis.rst:478 msgid "Implements ``TOS = iter(TOS)``." msgstr "" #: library/dis.rst:483 msgid "" "If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " "left as is. Otherwise, implements ``TOS = iter(TOS)``." msgstr "" #: library/dis.rst:489 msgid "**Binary and in-place operations**" msgstr "" #: library/dis.rst:491 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 "" #: library/dis.rst:495 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 "" #: library/dis.rst:503 msgid "" "Implements the binary and in-place operators (depending on the value of " "*op*)." msgstr "" #: library/dis.rst:511 msgid "Implements ``TOS = TOS1[TOS]``." msgstr "" #: library/dis.rst:516 msgid "Implements ``TOS1[TOS] = TOS2``." msgstr "" #: library/dis.rst:521 msgid "Implements ``del TOS1[TOS]``." msgstr "" #: library/dis.rst:524 msgid "**Coroutine opcodes**" msgstr "" #: library/dis.rst:528 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 "" #: library/dis.rst:533 msgid "" "If the ``where`` operand is nonzero, it indicates where the instruction " "occurs:" msgstr "" #: library/dis.rst:536 msgid "``1`` After a call to ``__aenter__``" msgstr "" #: library/dis.rst:537 msgid "``2`` After a call to ``__aexit__``" msgstr "" #: library/dis.rst:541 msgid "Previously, this instruction did not have an oparg." msgstr "" #: library/dis.rst:547 msgid "Implements ``TOS = TOS.__aiter__()``." msgstr "" #: library/dis.rst:550 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "" #: library/dis.rst:557 msgid "" "Pushes ``get_awaitable(TOS.__anext__())`` to the stack. See " "``GET_AWAITABLE`` for details about ``get_awaitable``." msgstr "" #: library/dis.rst:565 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " "awaiting a next item. The stack contains the async iterable in TOS1 and the " "raised exception in TOS. Both are popped. If the exception is not :exc:" "`StopAsyncIteration`, it is re-raised." msgstr "" #: library/dis.rst:650 library/dis.rst:661 msgid "" "Exception representation on the stack now consist of one, not three, items." msgstr "" #: library/dis.rst:577 msgid "" "Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " "stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." msgstr "" #: library/dis.rst:584 msgid "**Miscellaneous opcodes**" msgstr "" #: library/dis.rst:588 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 "" #: library/dis.rst:595 msgid "" "Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." msgstr "" #: library/dis.rst:600 msgid "" "Calls ``list.append(TOS1[-i], TOS)``. Used to implement list comprehensions." msgstr "" #: library/dis.rst:605 msgid "" "Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " "comprehensions." msgstr "" #: library/dis.rst:609 msgid "Map value is TOS and map key is TOS1. Before, those were reversed." msgstr "" #: library/dis.rst:612 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 "" #: library/dis.rst:620 msgid "Returns with TOS to the caller of the function." msgstr "" #: library/dis.rst:625 msgid "Pops TOS and yields it from a :term:`generator`." msgstr "" #: library/dis.rst:631 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 "" #: library/dis.rst:641 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 "" #: library/dis.rst:648 msgid "" "Pops a value from the stack, which is used to restore the exception state." msgstr "" #: library/dis.rst:655 msgid "" "Re-raises the exception currently on top of the stack. If oparg is non-zero, " "pops an additional value from the stack which is used to set ``f_lasti`` of " "the current frame." msgstr "" #: library/dis.rst:666 msgid "" "Pops a value from the stack. Pushes the current exception to the top of the " "stack. Pushes the value originally popped back to the stack. Used in " "exception handlers." msgstr "" #: library/dis.rst:674 msgid "" "Performs exception matching for ``except``. Tests whether the TOS1 is an " "exception matching TOS. Pops TOS and pushes the boolean result of the test." msgstr "" #: library/dis.rst:681 msgid "" "Performs exception matching for ``except*``. Applies ``split(TOS)`` on the " "exception group representing TOS1." msgstr "" #: library/dis.rst:684 msgid "" "In case of a match, pops two items from the stack and pushes the non-" "matching subgroup (``None`` in case of full match) followed by the matching " "subgroup. When there is no match, pops one item (the match type) and pushes " "``None``." msgstr "" #: library/dis.rst:693 msgid "" "Combines the raised and reraised exceptions list from TOS, into an exception " "group to propagate from a try-except* block. Uses the original exception " "group from TOS1 to reconstruct the structure of reraised exceptions. Pops " "two items from the stack and pushes the exception to reraise or ``None`` if " "there isn't one." msgstr "" #: library/dis.rst:703 msgid "" "Calls the function in position 4 on the stack with arguments (type, val, tb) " "representing the exception at the top of the stack. Used to implement the " "call ``context_manager.__exit__(*exc_info())`` when an exception has " "occurred in a :keyword:`with` statement." msgstr "" #: library/dis.rst:710 msgid "" "The ``__exit__`` function is in position 4 of the stack rather than 7. " "Exception representation on the stack now consist of one, not three, items." msgstr "" #: library/dis.rst:717 msgid "" "Pushes :exc:`AssertionError` onto the stack. Used by the :keyword:`assert` " "statement." msgstr "" #: library/dis.rst:725 msgid "" "Pushes :func:`builtins.__build_class__` onto the stack. It is later called " "to construct a class." msgstr "" #: library/dis.rst:731 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_EXCEPT_START`. Then, :meth:" "`~object.__enter__` is called. Finally, the result of calling the " "``__enter__()`` method is pushed onto the stack." msgstr "" #: library/dis.rst:742 msgid "Push ``len(TOS)`` onto the stack." msgstr "" #: library/dis.rst:749 msgid "" "If TOS is an instance of :class:`collections.abc.Mapping` (or, more " "technically: if it has the :const:`Py_TPFLAGS_MAPPING` flag set in its :c:" "member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. Otherwise, " "push ``False``." msgstr "" #: library/dis.rst:759 msgid "" "If TOS is an instance of :class:`collections.abc.Sequence` and is *not* an " "instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, more " "technically: if it has the :const:`Py_TPFLAGS_SEQUENCE` flag set in its :c:" "member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. Otherwise, " "push ``False``." msgstr "" #: library/dis.rst:769 msgid "" "TOS is a tuple of mapping keys, and TOS1 is the match subject. If TOS1 " "contains all of the keys in TOS, push a :class:`tuple` containing the " "corresponding values. Otherwise, push ``None``." msgstr "" #: library/dis.rst:1320 msgid "" "Previously, this instruction also pushed a boolean value indicating success " "(``True``) or failure (``False``)." msgstr "" #: library/dis.rst:782 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 "" #: library/dis.rst:789 msgid "" "Implements ``del name``, where *namei* is the index into :attr:`co_names` " "attribute of the code object." msgstr "" #: library/dis.rst:795 msgid "" "Unpacks TOS into *count* individual values, which are put onto the stack " "right-to-left." msgstr "" #: library/dis.rst:801 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 "" #: library/dis.rst:806 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 "" #: library/dis.rst:813 msgid "" "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" "`co_names`." msgstr "" #: library/dis.rst:819 msgid "" "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." msgstr "" #: library/dis.rst:824 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" #: library/dis.rst:829 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" #: library/dis.rst:834 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" #: library/dis.rst:839 msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." msgstr "" #: library/dis.rst:844 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack." msgstr "" #: library/dis.rst:850 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" #: library/dis.rst:855 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" #: library/dis.rst:860 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 "" #: library/dis.rst:864 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" #: library/dis.rst:871 msgid "" "The version of :opcode:`BUILD_MAP` specialized for constant keys. Pops the " "top element on the stack which contains a tuple of keys, then starting from " "``TOS1``, pops *count* values to form values in the built dictionary." msgstr "" #: library/dis.rst:880 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" #: library/dis.rst:888 msgid "" "Pops a list from the stack and pushes a tuple containing the same values." msgstr "" #: library/dis.rst:895 msgid "Calls ``list.extend(TOS1[-i], TOS)``. Used to build lists." msgstr "" #: library/dis.rst:902 msgid "Calls ``set.update(TOS1[-i], TOS)``. Used to build sets." msgstr "" #: library/dis.rst:909 msgid "Calls ``dict.update(TOS1[-i], TOS)``. Used to build dicts." msgstr "" #: library/dis.rst:916 msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." msgstr "" #: library/dis.rst:923 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." msgstr "" #: library/dis.rst:928 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." msgstr "" #: library/dis.rst:934 msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." msgstr "" #: library/dis.rst:941 msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." msgstr "" #: library/dis.rst:948 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 "" #: library/dis.rst:957 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 "" #: library/dis.rst:964 msgid "Increments bytecode counter by *delta*." msgstr "" #: library/dis.rst:969 msgid "Decrements bytecode counter by *delta*. Checks for interrupts." msgstr "" #: library/dis.rst:976 msgid "Decrements bytecode counter by *delta*. Does not check for interrupts." msgstr "" #: library/dis.rst:983 msgid "" "If TOS is true, increments the bytecode counter by *delta*. TOS is popped." msgstr "" #: library/dis.rst:990 msgid "" "If TOS is true, decrements the bytecode counter by *delta*. TOS is popped." msgstr "" #: library/dis.rst:997 msgid "" "If TOS is false, increments the bytecode counter by *delta*. TOS is popped." msgstr "" #: library/dis.rst:1004 msgid "" "If TOS is false, decrements the bytecode counter by *delta*. TOS is popped." msgstr "" #: library/dis.rst:1011 msgid "" "If TOS is not ``None``, increments the bytecode counter by *delta*. TOS is " "popped." msgstr "" #: library/dis.rst:1018 msgid "" "If TOS is not ``None``, decrements the bytecode counter by *delta*. TOS is " "popped." msgstr "" #: library/dis.rst:1025 msgid "" "If TOS is ``None``, increments the bytecode counter by *delta*. TOS is " "popped." msgstr "" #: library/dis.rst:1032 msgid "" "If TOS is ``None``, decrements the bytecode counter by *delta*. TOS is " "popped." msgstr "" #: library/dis.rst:1039 msgid "" "If TOS is true, increments the bytecode counter by *delta* and leaves TOS on " "the stack. Otherwise (TOS is false), TOS is popped." msgstr "" #: library/dis.rst:1054 msgid "The oparg is now a relative delta rather than an absolute target." msgstr "" #: library/dis.rst:1049 msgid "" "If TOS is false, increments the bytecode counter by *delta* and leaves TOS " "on the stack. Otherwise (TOS is true), TOS is popped." msgstr "" #: library/dis.rst:1060 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 "" #: library/dis.rst:1068 msgid "Loads the global named ``co_names[namei>>1]`` onto the stack." msgstr "" #: library/dis.rst:1070 msgid "" "If the low bit of ``namei`` is set, then a ``NULL`` is pushed to the stack " "before the global variable." msgstr "" #: library/dis.rst:1076 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" #: library/dis.rst:1081 msgid "Stores TOS into the local ``co_varnames[var_num]``." msgstr "" #: library/dis.rst:1086 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" #: library/dis.rst:1091 msgid "" "Creates a new cell in slot ``i``. If that slot is empty then that value is " "stored into the new cell." msgstr "" #: library/dis.rst:1099 msgid "" "Pushes a reference to the cell contained in slot ``i`` of the \"fast " "locals\" storage. The name of the variable is ``co_fastlocalnames[i]``." msgstr "" #: library/dis.rst:1102 msgid "" "Note that ``LOAD_CLOSURE`` is effectively an alias for ``LOAD_FAST``. It " "exists to keep bytecode a little more readable." msgstr "" #: library/dis.rst:1114 library/dis.rst:1135 library/dis.rst:1146 msgid "``i`` is no longer offset by the length of ``co_varnames``." msgstr "" #: library/dis.rst:1111 msgid "" "Loads the cell contained in slot ``i`` of the \"fast locals\" storage. " "Pushes a reference to the object the cell contains on the stack." msgstr "" #: library/dis.rst:1120 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 "" #: library/dis.rst:1132 msgid "" "Stores TOS into the cell contained in slot ``i`` of the \"fast locals\" " "storage." msgstr "" #: library/dis.rst:1141 msgid "" "Empties the cell contained in slot ``i`` of the \"fast locals\" storage. " "Used by the :keyword:`del` statement." msgstr "" #: library/dis.rst:1152 msgid "" "Copies the ``n`` free variables from the closure into the frame. Removes the " "need for special code on the caller's side when calling closures." msgstr "" #: library/dis.rst:1161 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" msgstr "" #: library/dis.rst:1164 msgid "0: ``raise`` (re-raise previous exception)" msgstr "" #: library/dis.rst:1165 msgid "1: ``raise TOS`` (raise exception instance or type at ``TOS``)" msgstr "" #: library/dis.rst:1166 msgid "" "2: ``raise TOS1 from TOS`` (raise exception instance or type at ``TOS1`` " "with ``__cause__`` set to ``TOS``)" msgstr "" #: library/dis.rst:1172 msgid "" "Calls a callable object with the number of arguments specified by ``argc``, " "including the named arguments specified by the preceding :opcode:`KW_NAMES`, " "if any. On the stack are (in ascending order), either:" msgstr "" #: library/dis.rst:1177 msgid "NULL" msgstr "" #: library/dis.rst:1184 msgid "The callable" msgstr "" #: library/dis.rst:1179 msgid "The positional arguments" msgstr "" #: library/dis.rst:1187 msgid "The named arguments" msgstr "" #: library/dis.rst:1182 msgid "or:" msgstr "" #: library/dis.rst:1185 msgid "``self``" msgstr "" #: library/dis.rst:1186 msgid "The remaining positional arguments" msgstr "" #: library/dis.rst:1189 msgid "" "``argc`` is the total of the positional and named arguments, excluding " "``self`` when a ``NULL`` is not present." msgstr "" #: library/dis.rst:1192 msgid "" "``CALL`` pops all arguments and the callable object off the stack, calls the " "callable object with those arguments, and pushes the return value returned " "by the callable object." msgstr "" #: library/dis.rst:1201 msgid "" "Calls a callable object with variable set of positional and keyword " "arguments. If the lowest bit of *flags* is set, the top of the stack " "contains a mapping object containing additional keyword arguments. Before " "the callable is called, the mapping object and iterable object are each " "\"unpacked\" and their contents passed in as keyword and positional " "arguments respectively. ``CALL_FUNCTION_EX`` pops all arguments and the " "callable object off the stack, calls the callable object with those " "arguments, and pushes the return value returned by the callable object." msgstr "" #: library/dis.rst:1216 msgid "" "Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. " "This bytecode distinguishes two cases: if TOS has a method with the correct " "name, the bytecode pushes the unbound method and TOS. TOS will be used as " "the first argument (``self``) by :opcode:`CALL` when calling the unbound " "method. Otherwise, ``NULL`` and the object return by the attribute lookup " "are pushed." msgstr "" #: library/dis.rst:1228 msgid "" "Prefixes :opcode:`CALL`. Logically this is a no op. It exists to enable " "effective specialization of calls. ``argc`` is the number of arguments as " "described in :opcode:`CALL`." msgstr "" #: library/dis.rst:1237 msgid "" "Pushes a ``NULL`` to the stack. Used in the call sequence to match the " "``NULL`` pushed by :opcode:`LOAD_METHOD` for non-method calls." msgstr "" #: library/dis.rst:1246 msgid "" "Prefixes :opcode:`PRECALL`. Stores a reference to ``co_consts[consti]`` into " "an internal variable for use by :opcode:`CALL`. ``co_consts[consti]`` must " "be a tuple of strings." msgstr "" #: library/dis.rst:1255 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 "" #: library/dis.rst:1258 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" msgstr "" #: library/dis.rst:1260 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" #: library/dis.rst:1261 msgid "``0x04`` a tuple of strings containing parameters' annotations" msgstr "" #: library/dis.rst:1262 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" #: library/dis.rst:1263 msgid "the code associated with the function (at TOS1)" msgstr "" #: library/dis.rst:1264 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" #: library/dis.rst:1266 msgid "Flag value ``0x04`` is a tuple of strings instead of dictionary" msgstr "" #: library/dis.rst:1273 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 "" #: library/dis.rst:1280 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "one byte. *ext* holds an additional byte which act as higher bits in the " "argument. For each opcode, at most three prefixal ``EXTENDED_ARG`` are " "allowed, forming an argument from two-byte to four-byte." msgstr "" #: library/dis.rst:1288 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 "" #: library/dis.rst:1292 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" #: library/dis.rst:1293 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" #: library/dis.rst:1295 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" #: library/dis.rst:1297 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" #: library/dis.rst:1299 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" #: library/dis.rst:1302 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" #: library/dis.rst:1310 msgid "" "TOS is a tuple of keyword attribute names, TOS1 is the class being matched " "against, and TOS2 is the match subject. *count* is the number of positional " "sub-patterns." msgstr "" #: library/dis.rst:1314 msgid "" "Pop TOS, TOS1, and TOS2. If TOS2 is an instance of TOS1 and has the " "positional and keyword attributes required by *count* and TOS, push a tuple " "of extracted attributes. Otherwise, push ``None``." msgstr "" #: library/dis.rst:1327 msgid "A no-op. Performs internal tracing, debugging and optimization checks." msgstr "" #: library/dis.rst:1329 msgid "The ``where`` operand marks where the ``RESUME`` occurs:" msgstr "" #: library/dis.rst:1331 msgid "``0`` The start of a function" msgstr "" #: library/dis.rst:1332 msgid "``1`` After a ``yield`` expression" msgstr "" #: library/dis.rst:1333 msgid "``2`` After a ``yield from`` expression" msgstr "" #: library/dis.rst:1334 msgid "``3`` After an ``await`` expression" msgstr "" #: library/dis.rst:1341 msgid "" "Create a generator, coroutine, or async generator from the current frame. " "Clear the current frame and return the newly created generator." msgstr "" #: library/dis.rst:1349 msgid "" "Sends ``None`` to the sub-generator of this generator. Used in ``yield " "from`` and ``await`` statements." msgstr "" #: library/dis.rst:1357 msgid "" "Wraps the value on top of the stack in an ``async_generator_wrapped_value``. " "Used to yield in async generators." msgstr "" #: library/dis.rst:1365 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 "" #: library/dis.rst:1369 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." msgstr "" #: library/dis.rst:1377 msgid "Opcode collections" msgstr "" #: library/dis.rst:1379 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" #: library/dis.rst:1384 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" #: library/dis.rst:1389 msgid "Dictionary mapping operation names to bytecodes." msgstr "" #: library/dis.rst:1394 msgid "Sequence of all compare operation names." msgstr "" #: library/dis.rst:1399 msgid "Sequence of bytecodes that access a constant." msgstr "" #: library/dis.rst:1404 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 "" #: library/dis.rst:1412 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" #: library/dis.rst:1417 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" #: library/dis.rst:1422 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" #: library/dis.rst:1427 msgid "Sequence of bytecodes that access a local variable." msgstr "" #: library/dis.rst:1432 msgid "Sequence of bytecodes of Boolean operations." msgstr ""