# 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: 2020-05-23 11:38+0200\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: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 "" "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: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 "" "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:23 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:28 msgid "Example: Given the function :func:`myfunc`::" msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" #: library/dis.rst:33 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:42 msgid "(The \"2\" is a line number)." msgstr "(Le \"2\" est un numéro de ligne)." #: library/dis.rst:45 msgid "Bytecode analysis" msgstr "Analyse du code intermédiaire" #: 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 "" "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:56 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:60 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:225 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:69 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:75 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:80 msgid "The compiled code object." msgstr "Le code compilé objet." #: library/dis.rst:84 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:88 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:93 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:130 library/dis.rst:176 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:99 msgid "Example::" msgstr "Exemple ::" #: library/dis.rst:112 msgid "Analysis functions" msgstr "Analyse de fonctions" #: library/dis.rst:114 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:120 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:124 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:136 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:140 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:170 library/dis.rst:213 msgid "Added *file* parameter." msgstr "Ajout du paramètre *file*." #: library/dis.rst:151 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:186 library/dis.rst:210 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:167 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:173 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:182 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:196 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:199 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:200 msgid "the current instruction, indicated as ``-->``," msgstr "l'instruction en cours, indiquée par ``-->``," #: library/dis.rst:201 msgid "a labelled instruction, indicated with ``>>``," msgstr "une instruction libellée, indiquée par ``> >``," #: library/dis.rst:202 msgid "the address of the instruction," msgstr "l'adresse de l'instruction," #: library/dis.rst:203 msgid "the operation code name," msgstr "le nom de le code d'opération," #: library/dis.rst:204 msgid "operation parameters, and" msgstr "paramètres de l'opération, et" #: library/dis.rst:205 msgid "interpretation of the parameters in parentheses." msgstr "interprétation des paramètres entre parenthèses." #: library/dis.rst:207 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:219 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:222 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:235 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 "" #: library/dis.rst:241 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:247 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:253 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "" #: library/dis.rst:255 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:262 #, fuzzy msgid "Added *jump* parameter." msgstr "Ajout du paramètre *file*." #: library/dis.rst:269 msgid "Python Bytecode Instructions" msgstr "Les instructions du code intermédiaire en Python" #: library/dis.rst:271 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:276 msgid "Details for a bytecode operation" msgstr "Détails sur le code intermédiaire de l'opération" #: library/dis.rst:280 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:286 msgid "human readable name for operation" msgstr "nom lisible/compréhensible de l'opération" #: library/dis.rst:291 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:296 msgid "resolved arg value (if known), otherwise same as arg" msgstr "" #: library/dis.rst:301 msgid "human readable description of operation argument" msgstr "" #: library/dis.rst:306 msgid "start index of operation within bytecode sequence" msgstr "" #: library/dis.rst:311 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" #: library/dis.rst:316 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "" #: library/dis.rst:321 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" #: library/dis.rst:324 msgid "**General instructions**" msgstr "" #: library/dis.rst:328 msgid "Do nothing code. Used as a placeholder by the bytecode optimizer." msgstr "" #: library/dis.rst:333 msgid "Removes the top-of-stack (TOS) item." msgstr "" #: library/dis.rst:338 msgid "Swaps the two top-most stack items." msgstr "" #: library/dis.rst:343 msgid "" "Lifts second and third stack item one position up, moves top down to " "position three." msgstr "" #: library/dis.rst:349 msgid "" "Lifts second, third and forth stack items one position up, moves top down to " "position four." msgstr "" #: library/dis.rst:357 msgid "Duplicates the reference on top of the stack." msgstr "" #: library/dis.rst:364 msgid "" "Duplicates the two references on top of the stack, leaving them in the same " "order." msgstr "" #: library/dis.rst:370 msgid "**Unary operations**" msgstr "" #: library/dis.rst:372 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" #: library/dis.rst:377 msgid "Implements ``TOS = +TOS``." msgstr "" #: library/dis.rst:382 msgid "Implements ``TOS = -TOS``." msgstr "" #: library/dis.rst:387 msgid "Implements ``TOS = not TOS``." msgstr "" #: library/dis.rst:392 msgid "Implements ``TOS = ~TOS``." msgstr "" #: library/dis.rst:397 msgid "Implements ``TOS = iter(TOS)``." msgstr "" #: library/dis.rst:402 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:408 msgid "**Binary operations**" msgstr "" #: library/dis.rst:410 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:416 msgid "Implements ``TOS = TOS1 ** TOS``." msgstr "" #: library/dis.rst:421 msgid "Implements ``TOS = TOS1 * TOS``." msgstr "" #: library/dis.rst:426 msgid "Implements ``TOS = TOS1 @ TOS``." msgstr "" #: library/dis.rst:433 msgid "Implements ``TOS = TOS1 // TOS``." msgstr "" #: library/dis.rst:438 msgid "Implements ``TOS = TOS1 / TOS``." msgstr "" #: library/dis.rst:443 msgid "Implements ``TOS = TOS1 % TOS``." msgstr "" #: library/dis.rst:448 msgid "Implements ``TOS = TOS1 + TOS``." msgstr "" #: library/dis.rst:453 msgid "Implements ``TOS = TOS1 - TOS``." msgstr "" #: library/dis.rst:458 msgid "Implements ``TOS = TOS1[TOS]``." msgstr "" #: library/dis.rst:463 msgid "Implements ``TOS = TOS1 << TOS``." msgstr "" #: library/dis.rst:468 msgid "Implements ``TOS = TOS1 >> TOS``." msgstr "" #: library/dis.rst:473 msgid "Implements ``TOS = TOS1 & TOS``." msgstr "" #: library/dis.rst:478 msgid "Implements ``TOS = TOS1 ^ TOS``." msgstr "" #: library/dis.rst:483 msgid "Implements ``TOS = TOS1 | TOS``." msgstr "" #: library/dis.rst:486 msgid "**In-place operations**" msgstr "" #: library/dis.rst:488 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:495 msgid "Implements in-place ``TOS = TOS1 ** TOS``." msgstr "" #: library/dis.rst:500 msgid "Implements in-place ``TOS = TOS1 * TOS``." msgstr "" #: library/dis.rst:505 msgid "Implements in-place ``TOS = TOS1 @ TOS``." msgstr "" #: library/dis.rst:512 msgid "Implements in-place ``TOS = TOS1 // TOS``." msgstr "" #: library/dis.rst:517 msgid "Implements in-place ``TOS = TOS1 / TOS``." msgstr "" #: library/dis.rst:522 msgid "Implements in-place ``TOS = TOS1 % TOS``." msgstr "" #: library/dis.rst:527 msgid "Implements in-place ``TOS = TOS1 + TOS``." msgstr "" #: library/dis.rst:532 msgid "Implements in-place ``TOS = TOS1 - TOS``." msgstr "" #: library/dis.rst:537 msgid "Implements in-place ``TOS = TOS1 << TOS``." msgstr "" #: library/dis.rst:542 msgid "Implements in-place ``TOS = TOS1 >> TOS``." msgstr "" #: library/dis.rst:547 msgid "Implements in-place ``TOS = TOS1 & TOS``." msgstr "" #: library/dis.rst:552 msgid "Implements in-place ``TOS = TOS1 ^ TOS``." msgstr "" #: library/dis.rst:557 msgid "Implements in-place ``TOS = TOS1 | TOS``." msgstr "" #: library/dis.rst:562 msgid "Implements ``TOS1[TOS] = TOS2``." msgstr "" #: library/dis.rst:567 msgid "Implements ``del TOS1[TOS]``." msgstr "" #: library/dis.rst:570 msgid "**Coroutine opcodes**" msgstr "" #: library/dis.rst:574 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:584 msgid "Implements ``TOS = TOS.__aiter__()``." msgstr "" #: library/dis.rst:587 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "" #: library/dis.rst:594 msgid "" "Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` " "for details about ``get_awaitable``" msgstr "" #: library/dis.rst:602 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " "awaiting a next item. If TOS is :exc:`StopAsyncIteration` pop 7 values from " "the stack and restore the exception state using the second three of them. " "Otherwise re-raise the exception using the three values from the stack. An " "exception handler block is removed from the block stack." msgstr "" #: library/dis.rst:613 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:621 msgid "Creates a new frame object." msgstr "" #: library/dis.rst:627 msgid "**Miscellaneous opcodes**" msgstr "" #: library/dis.rst:631 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:638 msgid "" "Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." msgstr "" #: library/dis.rst:643 msgid "" "Calls ``list.append(TOS[-i], TOS)``. Used to implement list comprehensions." msgstr "" #: library/dis.rst:648 msgid "" "Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " "comprehensions." msgstr "" #: library/dis.rst:652 msgid "Map value is TOS and map key is TOS1. Before, those were reversed." msgstr "" #: library/dis.rst:655 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:663 msgid "Returns with TOS to the caller of the function." msgstr "" #: library/dis.rst:668 msgid "Pops TOS and yields it from a :term:`generator`." msgstr "" #: library/dis.rst:673 msgid "Pops TOS and delegates to it as a subiterator from a :term:`generator`." msgstr "" #: library/dis.rst:680 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:690 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:697 msgid "" "Removes one block from the block stack. Per frame, there is a stack of " "blocks, denoting :keyword:`try` statements, and such." msgstr "" #: library/dis.rst:703 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 "" #: library/dis.rst:711 msgid "" "Cleans up the value stack and the block stack. If *preserve_tos* is not " "``0`` TOS first is popped from the stack and pushed on the stack after " "performing other stack operations:" msgstr "" #: library/dis.rst:715 msgid "" "If TOS is ``NULL`` or an integer (pushed by :opcode:`BEGIN_FINALLY` or :" "opcode:`CALL_FINALLY`) it is popped from the stack." msgstr "" #: library/dis.rst:717 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the last three popped values are used to " "restore the exception state. An exception handler block is removed from the " "block stack." msgstr "" #: library/dis.rst:722 msgid "" "It is similar to :opcode:`END_FINALLY`, but doesn't change the bytecode " "counter nor raise an exception. Used for implementing :keyword:`break`, :" "keyword:`continue` and :keyword:`return` in the :keyword:`finally` block." msgstr "" #: library/dis.rst:731 msgid "" "Pushes ``NULL`` onto the stack for using it in :opcode:`END_FINALLY`, :" "opcode:`POP_FINALLY`, :opcode:`WITH_CLEANUP_START` and :opcode:" "`WITH_CLEANUP_FINISH`. Starts the :keyword:`finally` block." msgstr "" #: library/dis.rst:740 msgid "" "Terminates a :keyword:`finally` clause. The interpreter recalls whether the " "exception has to be re-raised or execution has to be continued depending on " "the value of TOS." msgstr "" #: library/dis.rst:744 msgid "" "If TOS is ``NULL`` (pushed by :opcode:`BEGIN_FINALLY`) continue from the " "next instruction. TOS is popped." msgstr "" #: library/dis.rst:746 msgid "" "If TOS is an integer (pushed by :opcode:`CALL_FINALLY`), sets the bytecode " "counter to TOS. TOS is popped." msgstr "" #: library/dis.rst:748 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the first three popped values are used to " "re-raise the exception and the last three popped values are used to restore " "the exception state. An exception handler block is removed from the block " "stack." msgstr "" #: library/dis.rst:757 msgid "" "Pushes :func:`builtins.__build_class__` onto the stack. It is later called " "by :opcode:`CALL_FUNCTION` to construct a class." msgstr "" #: library/dis.rst:763 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_START`. 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 "" #: library/dis.rst:777 msgid "" "Starts cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" #: library/dis.rst:779 msgid "" "At the top of the stack are either ``NULL`` (pushed by :opcode:" "`BEGIN_FINALLY`) or 6 values pushed if an exception has been raised in the " "with block. Below is the context manager's :meth:`~object.__exit__` or :" "meth:`~object.__aexit__` bound method." msgstr "" #: library/dis.rst:784 msgid "" "If TOS is ``NULL``, calls ``SECOND(None, None, None)``, removes the function " "from the stack, leaving TOS, and pushes ``None`` to the stack. Otherwise " "calls ``SEVENTH(TOP, SECOND, THIRD)``, shifts the bottom 3 values of the " "stack down, replaces the empty spot with ``NULL`` and pushes TOS. Finally " "pushes the result of the call." msgstr "" #: library/dis.rst:793 msgid "" "Finishes cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" #: library/dis.rst:795 msgid "" "TOS is result of ``__exit__()`` or ``__aexit__()`` function call pushed by :" "opcode:`WITH_CLEANUP_START`. SECOND is ``None`` or an exception type " "(pushed when an exception has been raised)." msgstr "" #: library/dis.rst:799 msgid "" "Pops two values from the stack. If SECOND is not None and TOS is true " "unwinds the EXCEPT_HANDLER block which was created when the exception was " "caught and pushes ``NULL`` to the stack." msgstr "" #: library/dis.rst:804 msgid "All of the following opcodes use their arguments." msgstr "" #: library/dis.rst:808 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:815 msgid "" "Implements ``del name``, where *namei* is the index into :attr:`co_names` " "attribute of the code object." msgstr "" #: library/dis.rst:821 msgid "" "Unpacks TOS into *count* individual values, which are put onto the stack " "right-to-left." msgstr "" #: library/dis.rst:827 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:832 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:839 msgid "" "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" "`co_names`." msgstr "" #: library/dis.rst:845 msgid "" "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." msgstr "" #: library/dis.rst:850 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" #: library/dis.rst:855 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" #: library/dis.rst:860 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" #: library/dis.rst:865 msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." msgstr "" #: library/dis.rst:870 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack." msgstr "" #: library/dis.rst:876 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" #: library/dis.rst:881 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" #: library/dis.rst:886 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:890 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" #: library/dis.rst:897 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:906 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" #: library/dis.rst:914 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 "" #: library/dis.rst:923 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 "" #: library/dis.rst:932 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 "" #: library/dis.rst:941 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 "" #: library/dis.rst:950 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 "" #: library/dis.rst:959 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 "" #: library/dis.rst:964 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 "" #: library/dis.rst:971 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." msgstr "" #: library/dis.rst:976 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." msgstr "" #: library/dis.rst:982 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:991 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:998 msgid "Increments bytecode counter by *delta*." msgstr "" #: library/dis.rst:1003 msgid "If TOS is true, sets the bytecode counter to *target*. TOS is popped." msgstr "" #: library/dis.rst:1010 msgid "If TOS is false, sets the bytecode counter to *target*. TOS is popped." msgstr "" #: library/dis.rst:1017 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 "" #: library/dis.rst:1025 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 "" #: library/dis.rst:1033 msgid "Set bytecode counter to *target*." msgstr "" #: library/dis.rst:1038 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:1046 msgid "Loads the global named ``co_names[namei]`` onto the stack." msgstr "" #: library/dis.rst:1051 msgid "" "Pushes a try block from a try-finally or try-except clause onto the block " "stack. *delta* points to the finally block or the first except block." msgstr "" #: library/dis.rst:1057 msgid "" "Pushes the address of the next instruction onto the stack and increments " "bytecode counter by *delta*. Used for calling the finally block as a " "\"subroutine\"." msgstr "" #: library/dis.rst:1066 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" #: library/dis.rst:1071 msgid "Stores TOS into the local ``co_varnames[var_num]``." msgstr "" #: library/dis.rst:1076 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" #: library/dis.rst:1081 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 "" #: library/dis.rst:1089 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 "" #: library/dis.rst:1095 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:1104 msgid "" "Stores TOS into the cell contained in slot *i* of the cell and free variable " "storage." msgstr "" #: library/dis.rst:1110 msgid "" "Empties the cell contained in slot *i* of the cell and free variable " "storage. Used by the :keyword:`del` statement." msgstr "" #: library/dis.rst:1118 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" msgstr "" #: library/dis.rst:1121 msgid "0: ``raise`` (re-raise previous exception)" msgstr "" #: library/dis.rst:1122 msgid "1: ``raise TOS`` (raise exception instance or type at ``TOS``)" msgstr "" #: library/dis.rst:1123 msgid "" "2: ``raise TOS1 from TOS`` (raise exception instance or type at ``TOS1`` " "with ``__cause__`` set to ``TOS``)" msgstr "" #: library/dis.rst:1129 msgid "" "Calls a callable object with positional arguments. *argc* indicates the " "number of positional arguments. The top of the stack contains positional " "arguments, with the right-most argument on top. Below the arguments is a " "callable object to call. ``CALL_FUNCTION`` 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:1137 msgid "This opcode is used only for calls with positional arguments." msgstr "" #: library/dis.rst:1143 msgid "" "Calls a callable object with positional (if any) and keyword arguments. " "*argc* indicates the total number of positional and keyword arguments. The " "top element on the stack contains a tuple of keyword argument names. Below " "that are keyword arguments in the order corresponding to the tuple. Below " "that are positional arguments, with the right-most parameter on top. Below " "the arguments is a callable object to call. ``CALL_FUNCTION_KW`` 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:1153 msgid "" "Keyword arguments are packed in a tuple instead of a dictionary, *argc* " "indicates the total number of arguments." msgstr "" #: library/dis.rst:1160 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. Below " "that is an iterable object containing positional arguments and a callable " "object to call. :opcode:`BUILD_MAP_UNPACK_WITH_CALL` and :opcode:" "`BUILD_TUPLE_UNPACK_WITH_CALL` can be used for merging multiple mapping " "objects and iterables containing 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:1179 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_METHOD` when calling the " "unbound method. Otherwise, ``NULL`` and the object return by the attribute " "lookup are pushed." msgstr "" #: library/dis.rst:1191 msgid "" "Calls a method. *argc* is the number of positional arguments. Keyword " "arguments are not supported. This opcode is designed to be used with :" "opcode:`LOAD_METHOD`. Positional arguments are on top of the stack. Below " "them, the two items described in :opcode:`LOAD_METHOD` are on the stack " "(either ``self`` and an unbound method object or ``NULL`` and an arbitrary " "callable). All of them are popped and the return value is pushed." msgstr "" #: library/dis.rst:1203 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:1206 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" msgstr "" #: library/dis.rst:1208 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" #: library/dis.rst:1209 msgid "``0x04`` an annotation dictionary" msgstr "" #: library/dis.rst:1210 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" #: library/dis.rst:1211 msgid "the code associated with the function (at TOS1)" msgstr "" #: library/dis.rst:1212 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" #: library/dis.rst:1219 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:1226 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:1234 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:1238 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" #: library/dis.rst:1239 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" #: library/dis.rst:1241 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" #: library/dis.rst:1243 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" #: library/dis.rst:1245 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" #: library/dis.rst:1248 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" #: library/dis.rst:1256 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:1260 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:1268 msgid "Opcode collections" msgstr "" #: library/dis.rst:1270 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" #: library/dis.rst:1275 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" #: library/dis.rst:1280 msgid "Dictionary mapping operation names to bytecodes." msgstr "" #: library/dis.rst:1285 msgid "Sequence of all compare operation names." msgstr "" #: library/dis.rst:1290 msgid "Sequence of bytecodes that access a constant." msgstr "" #: library/dis.rst:1295 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:1303 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" #: library/dis.rst:1308 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" #: library/dis.rst:1313 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" #: library/dis.rst:1318 msgid "Sequence of bytecodes that access a local variable." msgstr "" #: library/dis.rst:1323 msgid "Sequence of bytecodes of Boolean operations." msgstr ""