diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index c0093e1f..87138b01 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -8,18 +8,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-10-13 22:28+0200\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" +"PO-Revision-Date: 2018-06-09 21:25+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \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 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/reference/simple_stmts.rst:6 msgid "Simple statements" -msgstr "" +msgstr "Les instructions simples" #: ../Doc/reference/simple_stmts.rst:10 msgid "" @@ -27,10 +27,13 @@ msgid "" "statements may occur on a single line separated by semicolons. The syntax " "for simple statements is:" msgstr "" +"Une instruction simple est contenue dans une seule ligne logique. Plusieurs " +"instructions simples peuvent être écrites sur une seule ligne, séparées par " +"des points-virgules. La syntaxe d'une instruction simple est :" #: ../Doc/reference/simple_stmts.rst:35 msgid "Expression statements" -msgstr "" +msgstr "Les instructions expressions" #: ../Doc/reference/simple_stmts.rst:42 msgid "" @@ -40,12 +43,20 @@ msgid "" "uses of expression statements are allowed and occasionally useful. The " "syntax for an expression statement is:" msgstr "" +"Les instructions expressions sont utilisées (généralement de manière " +"interactive) pour calculer et écrire des valeurs, appeler une procédure (une " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"procédures renvoient la valeur ``None``). D'autres utilisations des " +"instructions expressions sont autorisées et parfois utiles. La syntaxe pour " +"une instruction expression est :" #: ../Doc/reference/simple_stmts.rst:51 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." msgstr "" +"Une instruction expression évalue la liste d'expressions (qui peut se " +"limiter à une seule expression)." #: ../Doc/reference/simple_stmts.rst:63 msgid "" @@ -54,22 +65,30 @@ msgid "" "written to standard output on a line by itself (except if the result is " "``None``, so that procedure calls do not cause any output.)" msgstr "" +"En mode interactif, si la valeur n'est pas ``None``, elle est convertie en " +"chaîne en utilisant la fonction native :func:`repr` et la chaîne résultante " +"est écrite sur la sortie standard sur sa propre ligne. Si le résultat est " +"``None``, rien n'est écrit ce qui est usuel pour les appels de procédures." #: ../Doc/reference/simple_stmts.rst:71 msgid "Assignment statements" -msgstr "" +msgstr "Les instructions assignations" #: ../Doc/reference/simple_stmts.rst:81 msgid "" "Assignment statements are used to (re)bind names to values and to modify " "attributes or items of mutable objects:" msgstr "" +"Les instructions assignations sont utilisées pour (re-)lier des noms à des " +"valeurs et modifier des attributs ou des éléments d'objets muables :" #: ../Doc/reference/simple_stmts.rst:95 msgid "" "(See section :ref:`primaries` for the syntax definitions for *attributeref*, " "*subscription*, and *slicing*.)" msgstr "" +"Voir la section :ref:`primaries` pour la définition de la syntaxe pour " +"*attributeref*, *subscription*, and *slicing*." #: ../Doc/reference/simple_stmts.rst:98 msgid "" @@ -78,6 +97,10 @@ msgid "" "tuple) and assigns the single resulting object to each of the target lists, " "from left to right." msgstr "" +"Une instruction assignation évalue la liste d'expressions (gardez en mémoire " +"que ce peut être une simple expression ou une liste dont les éléments sont " +"séparés par des virgules, cette dernière produisant un n-uplet) et assigne " +"l'unique objet résultant à chaque liste cible, de la gauche vers la droite." #: ../Doc/reference/simple_stmts.rst:107 msgid "" @@ -89,22 +112,33 @@ msgid "" "exceptions raised are given with the definition of the object types (see " "section :ref:`types`)." msgstr "" +"Une assignation est définie récursivement en fonction de la forme de la " +"cible (une liste). Quand la cible est une partie d'un objet muable (une " +"référence à un attribut, une sélection ou une tranche), l'objet muable doit " +"effectuer l'assignation au final et décider de sa validité, voire lever une " +"exception si l'assignation n'est pas acceptable. Les règles suivies par les " +"différents types et les exceptions levées sont données dans les définitions " +"des types d'objets (voir la section :ref:`types`)." #: ../Doc/reference/simple_stmts.rst:116 msgid "" "Assignment of an object to a target list, optionally enclosed in parentheses " "or square brackets, is recursively defined as follows." msgstr "" +"L'assignation d'un objet à une liste cible, optionnellement entourée par des " +"parenthèses ou des crochets, est définie récursivement comme suit." #: ../Doc/reference/simple_stmts.rst:119 msgid "If the target list is empty: The object must also be an empty iterable." -msgstr "" +msgstr "si la liste cible est vide : l'objet doit aussi être un itérable vide." #: ../Doc/reference/simple_stmts.rst:121 msgid "" "If the target list is a single target in parentheses: The object is assigned " "to that target." msgstr "" +"si la liste cible est une simple cible en parenthèses : l'objet est assigné " +"à cette cible." #: ../Doc/reference/simple_stmts.rst:124 msgid "" @@ -113,6 +147,11 @@ msgid "" "items as there are targets in the target list, and the items are assigned, " "from left to right, to the corresponding targets." msgstr "" +"Si la liste cible est une liste de cibles dont les éléments sont séparés par " +"des virgules, ou une cible unique entourée par des crochets : l'objet doit " +"être un itérable avec le même nombre d'éléments qu'il y a de cibles dans la " +"liste cible ; les éléments sont alors assignés, de la gauche vers la droite, " +"aux cibles correspondantes." #: ../Doc/reference/simple_stmts.rst:129 msgid "" @@ -124,6 +163,14 @@ msgid "" "after the starred target. A list of the remaining items in the iterable is " "then assigned to the starred target (the list can be empty)." msgstr "" +"Si la liste cible contient une cible préfixée par un astérisque, appelée " +"cible *étoilée* (*starred target* en anglais) : l'objet doit être un " +"itérable avec au moins autant d'éléments qu'il y a de cibles dans la liste " +"cible, moins un. Les premiers éléments de l'itérable sont assignés, de la " +"gauche vers la droite, aux cibles avant la cible étoilée. Les éléments de " +"queue de l'itérable sont assignés aux cibles après la cible étoilée. Une " +"liste des éléments restants dans l'itérable est alors assignée à la cible " +"étoilée (cette liste peut être vide)." #: ../Doc/reference/simple_stmts.rst:137 msgid "" @@ -131,15 +178,20 @@ msgid "" "are targets in the target list, and the items are assigned, from left to " "right, to the corresponding targets." msgstr "" +"Sinon : l'objet doit être un itérable avec le même nombre d'éléments qu'il y " +"a de cibles dans la liste cible ; les éléments sont assignés, de la gauche " +"vers la droite, vers les cibles correspondantes." #: ../Doc/reference/simple_stmts.rst:141 msgid "" "Assignment of an object to a single target is recursively defined as follows." msgstr "" +"L'assignation d'un objet vers une cible unique est définie récursivement " +"comme suit." #: ../Doc/reference/simple_stmts.rst:143 msgid "If the target is an identifier (name):" -msgstr "" +msgstr "Si la cible est une variable (un nom) :" #: ../Doc/reference/simple_stmts.rst:145 msgid "" @@ -147,12 +199,17 @@ msgid "" "statement in the current code block: the name is bound to the object in the " "current local namespace." msgstr "" +"si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" +"`nonlocal` (respectivement) du bloc de code courant : le nom est lié à " +"l'objet dans l'espace courant des noms locaux." #: ../Doc/reference/simple_stmts.rst:149 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" +"Sinon : le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"espace de noms plus large déterminé par :keyword:`nonlocal`, respectivement." #: ../Doc/reference/simple_stmts.rst:154 msgid "" @@ -160,6 +217,10 @@ msgid "" "count for the object previously bound to the name to reach zero, causing the " "object to be deallocated and its destructor (if it has one) to be called." msgstr "" +"Le lien du nom est modifié si le nom était déjà lié. Ceci peut faire que le " +"compteur de références de l'objet auquel le nom était précédemment lié tombe " +"à zéro, entrainant la dé-allocation de l'objet et l'appel de son destructeur " +"(s'il existe)." #: ../Doc/reference/simple_stmts.rst:160 msgid "" @@ -170,6 +231,12 @@ msgid "" "if it cannot perform the assignment, it raises an exception (usually but not " "necessarily :exc:`AttributeError`)." msgstr "" +"Si la cible est une référence à un attribut : l'expression primaire de la " +"référence est évaluée. Elle doit produire un objet avec des attributs que " +"l'on peut assigner : si ce n'est pas le cas, une :exc:`TypeError` est levée. " +"Python demande alors à cet objet d'assigner l'attribut donné ; si ce n'est " +"pas possible, une exception est levée (habituellement, mais pas " +"nécessairement, :exc:`AttributeError`)." #: ../Doc/reference/simple_stmts.rst:169 msgid "" @@ -182,12 +249,24 @@ msgid "" "to a class attribute, the LHS creates a new instance attribute as the target " "of the assignment::" msgstr "" +"Note : si l'objet est une instance de classe et que la référence à " +"l'attribut apparaît des deux côtés de l'opérateur d'assignation, " +"l'expression \"à droite\", ``a.x`` peut accéder soit à l'attribut d'instance " +"ou (si cet attribut d'instance n'existe pas) à l'attribut de classe. " +"L'expression cible \"à gauche\" ``a.x`` est toujours définie comme un " +"attribut d'instance, en le créant si nécessaire. Ainsi, les deux occurrences " +"de ``a.x`` ne font pas nécessairement référence au même attribut : si " +"l'expression \"à droite\" fait référence à un attribut de classe, " +"l'expression \"à gauche\" crée un nouvel attribut d'instance comme cible de " +"l'assignation ::" #: ../Doc/reference/simple_stmts.rst:183 msgid "" "This description does not necessarily apply to descriptor attributes, such " "as properties created with :func:`property`." msgstr "" +"Cette description ne s'applique pas nécessairement aux attributs des " +"descripteurs, telles que les propriétés créées avec :func:`property`." #: ../Doc/reference/simple_stmts.rst:190 msgid "" @@ -196,6 +275,10 @@ msgid "" "list) or a mapping object (such as a dictionary). Next, the subscript " "expression is evaluated." msgstr "" +"Si la cible est une sélection : l'expression primaire de la référence est " +"évaluée. Elle doit produire soit un objet séquence mutable (telle qu'une " +"liste) ou un objet tableau de correspondances (tel qu'un dictionnaire). " +"Ensuite, l'expression de la sélection est évaluée." #: ../Doc/reference/simple_stmts.rst:199 msgid "" @@ -207,6 +290,14 @@ msgid "" "`IndexError` is raised (assignment to a subscripted sequence cannot add new " "items to a list)." msgstr "" +"Si la primaire est un objet séquence mutable (telle qu'une liste), la " +"sélection doit produire un entier. S'il est négatif, la longueur de la " +"séquence lui est ajoutée. La valeur résultante doit être un entier positif " +"ou nul, plus petit que la longueur de la séquence, et Python demande à la " +"séquence d'assigner l'objet à l'élément se trouvant à cet indice. Si " +"l'indice est hors limites, une :exc:`IndexError` est levée (une assignation " +"à une sélection dans une séquence ne peut pas ajouter de nouveaux éléments à " +"une liste)." #: ../Doc/reference/simple_stmts.rst:210 msgid "" @@ -217,12 +308,20 @@ msgid "" "the same key value, or insert a new key/value pair (if no key with the same " "value existed)." msgstr "" +"Si la primaire est un objet tableau de correspondances (tel qu'un " +"dictionnaire), la sélection doit être d'un type compatible avec le type des " +"clés ; Python demande alors au tableau de correspondances de créer un couple " +"clé-valeur qui associe la sélection à l'objet assigné. Ceci peut remplacer " +"une correspondance déjà existante pour une clé donnée ou insérer un nouveau " +"couple clé-valeur." #: ../Doc/reference/simple_stmts.rst:216 msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"les arguments appropriés." #: ../Doc/reference/simple_stmts.rst:221 msgid "" @@ -238,6 +337,18 @@ msgid "" "be different from the length of the assigned sequence, thus changing the " "length of the target sequence, if the target sequence allows it." msgstr "" +"Si la cible est une tranche : l'expression primaire de la référence est " +"évaluée. Elle doit produire un objet séquence mutable (telle qu'une liste). " +"L'objet assigné doit être un objet séquence du même type. Ensuite, les " +"expressions de la borne inférieure et de la borne supérieure sont évaluées, " +"dans la mesure où elles sont spécifiées (les valeurs par défaut sont zéro et " +"la longueur de la séquence). Les bornes doivent être des entiers. Si une " +"borne est négative, la longueur de la séquence lui est ajoutée. Les bornes " +"résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " +"séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " +"la tranche avec les éléments de la séquence à assigner. La longueur de la " +"tranche peut être différent de la longueur de la séquence à assigner, ce qui " +"modifie alors la longueur de la séquence cible, si celle-ci le permet." #: ../Doc/reference/simple_stmts.rst:235 msgid "" @@ -245,6 +356,9 @@ msgid "" "same as for expressions, and invalid syntax is rejected during the code " "generation phase, causing less detailed error messages." msgstr "" +"Dans l'implémentation actuelle, la syntaxe pour les cibles est similaire à " +"celle des expressions. Toute syntaxe invalide est rejetée pendant la phase " +"de génération de code, ce qui produit des messages d'erreurs moins détaillés." #: ../Doc/reference/simple_stmts.rst:239 msgid "" @@ -254,30 +368,40 @@ msgid "" "variables occur left-to-right, sometimes resulting in confusion. For " "instance, the following program prints ``[0, 2]``::" msgstr "" +"Bien que la définition de l'assignation implique que le passage entre le " +"côté gauche et le côté droit soient \"simultanés\" (par exemple, ``a, b = b, " +"a`` permute les deux variables), le passage *à l'intérieur* des collections " +"de variables que l'on assigne intervient de la gauche vers la droite, ce qui " +"peut entraîner quelques confusions. Par exemple, le programme suivant " +"affiche ``[0, 2]`` ::" #: ../Doc/reference/simple_stmts.rst:253 msgid ":pep:`3132` - Extended Iterable Unpacking" -msgstr "" +msgstr ":pep:`3132` -- dépaquetage étendu d'itérable" #: ../Doc/reference/simple_stmts.rst:254 msgid "The specification for the ``*target`` feature." -msgstr "" +msgstr "Spécification de la fonctionnalité ``*cible``." #: ../Doc/reference/simple_stmts.rst:260 msgid "Augmented assignment statements" -msgstr "" +msgstr "Les instructions d'assignations augmentées" #: ../Doc/reference/simple_stmts.rst:278 msgid "" "Augmented assignment is the combination, in a single statement, of a binary " "operation and an assignment statement:" msgstr "" +"Une assignation augmentée est la combinaison, dans une seule instruction, " +"d'une opération binaire et d'une instruction d'assignation :" #: ../Doc/reference/simple_stmts.rst:287 msgid "" "(See section :ref:`primaries` for the syntax definitions of the last three " "symbols.)" msgstr "" +"Voir la section :ref:`primaries` pour la définition des syntaxes des trois " +"derniers symboles." #: ../Doc/reference/simple_stmts.rst:290 msgid "" @@ -287,6 +411,11 @@ msgid "" "operands, and assigns the result to the original target. The target is only " "evaluated once." msgstr "" +"Une assignation augmentée évalue la cible (qui, au contraire des " +"instructions d'assignation normales, ne peut pas être un dépaquetage) et la " +"liste d'expressions, effectue l'opération binaire (spécifique au type " +"d'assignation) sur les deux opérandes et assigne le résultat à la cible " +"originale. La cible n'est évaluée qu'une seule fois." #: ../Doc/reference/simple_stmts.rst:295 msgid "" @@ -296,6 +425,12 @@ msgid "" "operation is performed *in-place*, meaning that rather than creating a new " "object and assigning that to the target, the old object is modified instead." msgstr "" +"Une expression d'assignation augmentée comme ``x += 1`` peut être ré-écrite " +"en ``x = x + 1`` pour obtenir un effet similaire, mais pas exactement " +"équivalent. Dans la version augmentée. ``x`` n'est évalué qu'une seule fois. " +"Aussi, lorsque c'est possible, l'opération concrète est effectuée *sur " +"place*, c'est-à-dire que plutôt que de créer un nouvel objet et l'assigner à " +"la cible, c'est le vieil objet qui est modifié." #: ../Doc/reference/simple_stmts.rst:301 msgid "" @@ -304,6 +439,10 @@ msgid "" "first looks-up ``a[i]``, then it evaluates ``f(x)`` and performs the " "addition, and lastly, it writes the result back to ``a[i]``." msgstr "" +"Au contraire des assignations normales, les assignations augmentées évaluent " +"la partie gauche *avant* d'évaluer la partie droite. Par exemple, ``a[i] += " +"f(x)`` commence par s'intéresser à ``a[i]``, puis Python évalue ``f(x)``, " +"effectue l'addition et, enfin, écrit le résultat dans ``a[i]``." #: ../Doc/reference/simple_stmts.rst:306 msgid "" @@ -313,6 +452,12 @@ msgid "" "possible *in-place* behavior, the binary operation performed by augmented " "assignment is the same as the normal binary operations." msgstr "" +"À l'exception de l'assignation de tuples et de cibles multiples dans une " +"seule instruction, l'assignation effectuée par des instructions " +"d'assignation augmentée est traitée de la même manière que les assignations " +"normales. De même, à l'exception du comportement possible *sur place*, " +"l'opération binaire effectuée par assignation augmentée est la même que les " +"opérations binaires normales." #: ../Doc/reference/simple_stmts.rst:312 msgid "" @@ -320,22 +465,31 @@ msgid "" "class and instance attributes ` applies as for regular " "assignments." msgstr "" +"Pour les cibles qui sont des références à des attributs, la même :ref:`mise " +"en garde sur les attributs de classe et d'instances ` " +"s'applique que pour les assignations normales." #: ../Doc/reference/simple_stmts.rst:319 msgid "Annotated assignment statements" -msgstr "" +msgstr "Les instructions d'assignations annotées" #: ../Doc/reference/simple_stmts.rst:325 msgid "" "Annotation assignment is the combination, in a single statement, of a " "variable or attribute annotation and an optional assignment statement:" msgstr "" +"Une assignation annotée est la combinaison, dans une seule instruction, " +"d'une annotation de variable ou d'attribut et d'une instruction " +"d'assignation optionnelle :" #: ../Doc/reference/simple_stmts.rst:331 msgid "" "The difference from normal :ref:`assignment` is that only single target and " "only single right hand side value is allowed." msgstr "" +"La différence avec une assignation normale (voir :ref:`ci-dessus " +"`) est qu'une seule cible et qu'une seule valeur à droite ne " +"sont autorisées." #: ../Doc/reference/simple_stmts.rst:334 msgid "" @@ -346,18 +500,30 @@ msgid "" "and is automatically created at the start of class or module body execution, " "if annotations are found statically." msgstr "" +"Pour des noms simples en tant que cibles d'assignation, dans une portée de " +"classe ou de module, les annotations sont évaluées et stockées dans un " +"attribut de classe ou de module spécial, :attr:`__annotations__`, qui est un " +"dictionnaire dont les clés sont les noms de variables (réécrits si le nom " +"est privé) et les valeurs sont les annotations. Cet attribut est accessible " +"en écriture et est automatiquement créé au démarrage de l'exécution du corps " +"de la classe ou du module, si les annotations sont trouvées statiquement." #: ../Doc/reference/simple_stmts.rst:342 msgid "" "For expressions as assignment targets, the annotations are evaluated if in " "class or module scope, but not stored." msgstr "" +"Pour les expressions en tant que cibles d'assignations, les annotations sont " +"évaluées dans la portée de la classe ou du module, mais ne sont pas stockées." #: ../Doc/reference/simple_stmts.rst:345 msgid "" "If a name is annotated in a function scope, then this name is local for that " "scope. Annotations are never evaluated and stored in function scopes." msgstr "" +"Si le nom est annoté dans la portée d'une fonction, alors ce nom est local à " +"cette portée. Les annotations ne sont jamais évaluées et stockées dans les " +"portées des fonctions." #: ../Doc/reference/simple_stmts.rst:348 msgid "" @@ -367,30 +533,40 @@ msgid "" "interpreter evaluates the target except for the last :meth:`__setitem__` or :" "meth:`__setattr__` call." msgstr "" +"Si la partie droite est présente, une assignation annotée effectue " +"l'assignation en tant que telle avant d'évaluer les annotations (là où c'est " +"possible). Si la partie droite n'est pas présente pour une cible " +"d'expression, alors l'interpréteur évalue la cible sauf pour le dernier " +"appel à :meth:`__setitem__` ou :meth:`__setattr__`." #: ../Doc/reference/simple_stmts.rst:356 msgid "" ":pep:`526` - Variable and attribute annotation syntax :pep:`484` - Type hints" msgstr "" +":pep:`526` -- Syntaxe pour les annotations de variables et d'attributs, :pep:" +"`484` -- Indications de types" #: ../Doc/reference/simple_stmts.rst:363 msgid "The :keyword:`assert` statement" -msgstr "" +msgstr "L'instruction :keyword:`assert`" #: ../Doc/reference/simple_stmts.rst:369 msgid "" "Assert statements are a convenient way to insert debugging assertions into a " "program:" msgstr "" +"Les instructions assert sont une manière pratique d'insérer des tests de " +"débogage au sein d'un programme :" #: ../Doc/reference/simple_stmts.rst:375 msgid "The simple form, ``assert expression``, is equivalent to ::" -msgstr "" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:380 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:389 msgid "" @@ -403,16 +579,27 @@ msgid "" "unnecessary to include the source code for the expression that failed in the " "error message; it will be displayed as part of the stack trace." msgstr "" +"Ces équivalences supposent que :const:`__debug__` et :exc:`AssertionError` " +"font référence aux variables natives ainsi nommées. Dans l'implémentation " +"actuelle, la variable native :const:`__debug__` vaut ``True`` dans des " +"circonstances normales, ``False`` quand les optimisations sont demandées " +"(ligne de commande avec l'option -O). Le générateur de code actuel ne " +"produit aucun code pour une instruction assert quand vous demandez les " +"optimisations à la compilation. Notez qu'il est superflu d'inclure le code " +"source dans le message d'erreur pour l'expression qui a échoué : il est " +"affiché dans la pile d'appels." #: ../Doc/reference/simple_stmts.rst:398 msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"native est déterminée au moment où l'interpréteur démarre." #: ../Doc/reference/simple_stmts.rst:405 msgid "The :keyword:`pass` statement" -msgstr "" +msgstr "L'instruction :keyword:`pass`" #: ../Doc/reference/simple_stmts.rst:415 msgid "" @@ -420,6 +607,10 @@ msgid "" "happens. It is useful as a placeholder when a statement is required " "syntactically, but no code needs to be executed, for example::" msgstr "" +":keyword:`pass` est une opération vide --- quand elle est exécutée, rien ne " +"se passe. Elle est utile comme bouche-trou lorsqu'une instruction est " +"syntaxiquement requise mais qu'aucun code ne doit être exécuté. Par " +"exemple ::" #: ../Doc/reference/simple_stmts.rst:427 msgid "The :keyword:`del` statement" @@ -430,12 +621,17 @@ msgid "" "Deletion is recursively defined very similar to the way assignment is " "defined. Rather than spelling it out in full details, here are some hints." msgstr "" +"La suppression est récursivement définie de la même manière que " +"l'assignation. Plutôt que de détailler cela de manière approfondie, voici " +"quelques indices." #: ../Doc/reference/simple_stmts.rst:440 msgid "" "Deletion of a target list recursively deletes each target, from left to " "right." msgstr "" +"La suppression d'une liste cible (*target_list* dans la grammaire ci-dessus) " +"supprime récursivement chaque cible, de la gauche vers la droite." #: ../Doc/reference/simple_stmts.rst:446 msgid "" @@ -444,6 +640,10 @@ msgid "" "statement in the same code block. If the name is unbound, a :exc:" "`NameError` exception will be raised." msgstr "" +"La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " +"locaux, ou l'espace des noms globaux si ce nom apparaît dans une " +"instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " +"lié, une exception :exc:`NameError` est levée." #: ../Doc/reference/simple_stmts.rst:453 msgid "" @@ -452,34 +652,47 @@ msgid "" "to assignment of an empty slice of the right type (but even this is " "determined by the sliced object)." msgstr "" +"La suppression d'une référence à un attribut, une sélection ou une tranche " +"est passée à l'objet primaire concerné : la suppression d'une tranche est en " +"général équivalente à l'assignation d'une tranche vide du type adéquat (mais " +"ceci est au final déterminé par l'objet que l'on tranche)." #: ../Doc/reference/simple_stmts.rst:458 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block." msgstr "" +"Auparavant, il était illégal de supprimer un nom dans l'espace des noms " +"locaux si celui-ci apparaissait comme variable libre dans un bloc imbriqué." #: ../Doc/reference/simple_stmts.rst:466 msgid "The :keyword:`return` statement" -msgstr "" +msgstr "L'instruction :keyword:`return`" #: ../Doc/reference/simple_stmts.rst:476 msgid "" ":keyword:`return` may only occur syntactically nested in a function " "definition, not within a nested class definition." msgstr "" +":keyword:`return` ne peut être placée qu'à l'intérieur d'une définition de " +"fonction, pas à l'intérieur d'une définition de classe." #: ../Doc/reference/simple_stmts.rst:479 msgid "" "If an expression list is present, it is evaluated, else ``None`` is " "substituted." msgstr "" +"Si une liste d'expressions (*expression_list* dans la grammaire ci-dessus) " +"est présente, elle est évaluée, sinon ``None`` est utilisée comme valeur par " +"défaut." #: ../Doc/reference/simple_stmts.rst:481 msgid "" ":keyword:`return` leaves the current function call with the expression list " "(or ``None``) as return value." msgstr "" +":keyword:`return` quitte l'appel à la fonction courante avec la liste " +"d'expressions (ou ``None``) comme valeur de retour." #: ../Doc/reference/simple_stmts.rst:486 msgid "" @@ -487,6 +700,9 @@ msgid "" "a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really leaving the function." msgstr "" +"Quand :keyword:`return` fait sortir d'une instruction :keyword:`try` avec " +"une clause :keyword:`finally`, cette clause :keyword:`finally` est exécutée " +"avant de réellement quitter la fonction." #: ../Doc/reference/simple_stmts.rst:490 msgid "" @@ -495,6 +711,11 @@ msgid "" "returned value (if any) is used as an argument to construct :exc:" "`StopIteration` and becomes the :attr:`StopIteration.value` attribute." msgstr "" +"Dans une fonction générateur, l'instruction :keyword:`return` indique que le " +"générateur est terminé et provoque la levée d'une :exc:`StopIteration`. La " +"valeur de retour (s'il y en a une) est utilisée comme argument pour " +"construire l'exception :exc:`StopIteration` et devient l'attribut :attr:" +"`StopIteration.value`." #: ../Doc/reference/simple_stmts.rst:495 msgid "" @@ -503,6 +724,10 @@ msgid "" "`StopAsyncIteration` to be raised. A non-empty :keyword:`return` statement " "is a syntax error in an asynchronous generator function." msgstr "" +"Dans une fonction générateur asynchrone, une instruction :keyword:`return` " +"vide indique que le générateur asynchrone est terminé et provoque la levée " +"d'une :exc:`StopAsyncIteration`. Une instruction :keyword:`return` non vide " +"est une erreur de syntaxe dans une fonction générateur asynchrone." #: ../Doc/reference/simple_stmts.rst:503 msgid "The :keyword:`yield` statement" @@ -515,10 +740,15 @@ msgid "" "parentheses that would otherwise be required in the equivalent yield " "expression statement. For example, the yield statements ::" msgstr "" +"L'instruction :keyword:`yield` est sémantiquement équivalente à une :ref:" +"`expression yield `. L'instruction *yield* peut être utilisée " +"pour omettre les parenthèses qui seraient autrement requises dans " +"l'instruction équivalente d'expression yield. Par exemple, les instructions " +"yield ::" #: ../Doc/reference/simple_stmts.rst:523 msgid "are equivalent to the yield expression statements ::" -msgstr "" +msgstr "sont équivalentes aux instructions expressions yield ::" #: ../Doc/reference/simple_stmts.rst:528 msgid "" @@ -527,12 +757,19 @@ msgid "" "function. Using yield in a function definition is sufficient to cause that " "definition to create a generator function instead of a normal function." msgstr "" +"Les expressions et les instructions yield sont utilisées seulement dans la " +"définition des fonctions :term:`générateurs ` et apparaissent " +"uniquement dans le corps de la fonction générateur. L'utilisation de yield " +"dans la définition d'une fonction est suffisant pour que cette définition " +"crée une fonction générateur au lieu d'une fonction normale." #: ../Doc/reference/simple_stmts.rst:533 msgid "" "For full details of :keyword:`yield` semantics, refer to the :ref:" "`yieldexpr` section." msgstr "" +"Pour tous les détails sur la sémantique de :keyword:`yield`, reportez-vous à " +"la section :ref:`yieldexpr`." #: ../Doc/reference/simple_stmts.rst:539 msgid "The :keyword:`raise` statement" @@ -545,6 +782,10 @@ msgid "" "current scope, a :exc:`RuntimeError` exception is raised indicating that " "this is an error." msgstr "" +"Si aucune expression n'est présente, :keyword:`raise` propage la dernière " +"exception active dans la portée courante. Si aucune exception n'est active " +"dans la portée courante, une exception :exc:`RuntimeError` est levée, " +"indiquant que c'est une erreur." #: ../Doc/reference/simple_stmts.rst:555 msgid "" @@ -553,12 +794,18 @@ msgid "" "`BaseException`. If it is a class, the exception instance will be obtained " "when needed by instantiating the class with no arguments." msgstr "" +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"exception. Ce doit être une sous-classe ou une instance de :class:" +"`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " +"en tant que de besoin en instanciant la classe sans argument." #: ../Doc/reference/simple_stmts.rst:560 msgid "" "The :dfn:`type` of the exception is the exception instance's class, the :dfn:" "`value` is the instance itself." msgstr "" +"Le :dfn:`type` de l'exception est la classe de l'instance de l'exception, " +"la :dfn:`value` est l'instance elle-même." #: ../Doc/reference/simple_stmts.rst:565 msgid "" @@ -568,6 +815,12 @@ msgid "" "using the :meth:`with_traceback` exception method (which returns the same " "exception instance, with its traceback set to its argument), like so::" msgstr "" +"Normalement, un objet *trace d'appels* est créé automatiquement quand une " +"exception est levée et il lui est rattaché comme attribut :attr:" +"`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " +"définir votre propre trace d'appels d'un seul coup en utilisant la méthode " +"des exceptions :meth:`with_traceback` (qui renvoie la même instance " +"d'exception avec sa trace d'appels passée en argument), comme ceci ::" #: ../Doc/reference/simple_stmts.rst:577 msgid "" @@ -577,6 +830,11 @@ msgid "" "is writable). If the raised exception is not handled, both exceptions will " "be printed::" msgstr "" +"La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " +"fournissez, la seconde \"expression\" doit être une autre classe ou instance " +"d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" +"`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " +"deux exceptions sont affichées ::" #: ../Doc/reference/simple_stmts.rst:598 msgid "" @@ -584,12 +842,18 @@ msgid "" "exception handler or a :keyword:`finally` clause: the previous exception is " "then attached as the new exception's :attr:`__context__` attribute::" msgstr "" +"Un mécanisme similaire est mis en œuvre implicitement si une exception est " +"levée à l'intérieur d'un gestionnaire d'exception ou d'une clause :keyword:" +"`finally` : la première exception est rattachée à l'attribut :attr:" +"`__context__` de la nouvelle exception ::" #: ../Doc/reference/simple_stmts.rst:617 msgid "" "Exception chaining can be explicitly suppressed by specifying :const:`None` " "in the ``from`` clause::" msgstr "" +"Le chaînage d'exceptions peut être explicitement supprimé en spécifiant :" +"const:`None` dans la clause ``from`` ::" #: ../Doc/reference/simple_stmts.rst:629 msgid "" @@ -597,20 +861,27 @@ msgid "" "`exceptions`, and information about handling exceptions is in section :ref:" "`try`." msgstr "" +"Des informations complémentaires sur les exceptions sont disponibles dans la " +"section :ref:`exceptions` et sur la gestion des exceptions dans la section :" +"ref:`try`." #: ../Doc/reference/simple_stmts.rst:632 msgid ":const:`None` is now permitted as ``Y`` in ``raise X from Y``." msgstr "" +":const:`None` est dorénavant autorisée en tant que ``Y`` dans ``raise X from " +"Y``." #: ../Doc/reference/simple_stmts.rst:635 msgid "" "The ``__suppress_context__`` attribute to suppress automatic display of the " "exception context." msgstr "" +"L'attribut ``__suppress_context__`` pour supprimer l'affichage automatique " +"du contexte de l'exception." #: ../Doc/reference/simple_stmts.rst:642 msgid "The :keyword:`break` statement" -msgstr "" +msgstr "L'instruction :keyword:`break`" #: ../Doc/reference/simple_stmts.rst:653 msgid "" @@ -618,18 +889,25 @@ msgid "" "keyword:`while` loop, but not nested in a function or class definition " "within that loop." msgstr "" +"Une instruction :keyword:`break` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe à l'intérieur de cette boucle." #: ../Doc/reference/simple_stmts.rst:660 msgid "" "It terminates the nearest enclosing loop, skipping the optional :keyword:" "`else` clause if the loop has one." msgstr "" +"Elle termine la boucle la plus imbriquée, shuntant l'éventuelle clause :" +"keyword:`else` de la boucle." #: ../Doc/reference/simple_stmts.rst:663 msgid "" "If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " "target keeps its current value." msgstr "" +"Si une boucle :keyword:`for` est terminée par un :keyword:`break`, la cible " +"qui contrôle la boucle garde sa valeur." #: ../Doc/reference/simple_stmts.rst:668 msgid "" @@ -637,10 +915,13 @@ msgid "" "a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really leaving the loop." msgstr "" +"Quand :keyword:`break` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`finally` est exécutée avant de quitter la boucle." #: ../Doc/reference/simple_stmts.rst:676 msgid "The :keyword:`continue` statement" -msgstr "" +msgstr "L'instruction :keyword:`continue`" #: ../Doc/reference/simple_stmts.rst:688 msgid "" @@ -649,6 +930,11 @@ msgid "" "or :keyword:`finally` clause within that loop. It continues with the next " "cycle of the nearest enclosing loop." msgstr "" +"L'instruction :keyword:`continue` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe ni dans une clause :keyword:`finally`, à l'intérieur " +"de cette boucle. Elle fait continuer le flot d'exécution au prochain cycle " +"de la boucle la plus imbriquée." #: ../Doc/reference/simple_stmts.rst:693 msgid "" @@ -656,26 +942,34 @@ msgid "" "with a :keyword:`finally` clause, that :keyword:`finally` clause is executed " "before really starting the next loop cycle." msgstr "" +"Quand :keyword:`continue` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`finally` est exécutée avant de commencer le cycle suivant de la " +"boucle." #: ../Doc/reference/simple_stmts.rst:702 msgid "The :keyword:`import` statement" -msgstr "" +msgstr "L'instruction :keyword:`import`" #: ../Doc/reference/simple_stmts.rst:721 msgid "" "The basic import statement (no :keyword:`from` clause) is executed in two " "steps:" msgstr "" +"L'instruction de base *import* (sans clause :keyword:`from`) est exécutée en " +"deux étapes :" #: ../Doc/reference/simple_stmts.rst:724 msgid "find a module, loading and initializing it if necessary" -msgstr "" +msgstr "trouve un module, le charge et l'initialise si nécessaire" #: ../Doc/reference/simple_stmts.rst:725 msgid "" "define a name or names in the local namespace for the scope where the :" "keyword:`import` statement occurs." msgstr "" +"définit un ou des noms (*name* dans la grammaire ci-dessus) dans l'espace " +"des noms locaux de la portée où l'instruction :keyword:`import` apparaît." #: ../Doc/reference/simple_stmts.rst:728 msgid "" @@ -683,6 +977,9 @@ msgid "" "steps are carried out separately for each clause, just as though the clauses " "had been separated out into individual import statements." msgstr "" +"Quand l'instruction contient plusieurs clauses (séparées par des virgules), " +"les deux étapes sont menées séparément pour chaque clause, comme si les " +"clauses étaient séparées dans des instructions d'importations individuelles." #: ../Doc/reference/simple_stmts.rst:733 msgid "" @@ -694,18 +991,30 @@ msgid "" "could not be located, *or* that an error occurred while initializing the " "module, which includes execution of the module's code." msgstr "" +"Les détails de la première étape, de recherche et de chargement des modules " +"sont décrits largement dans la section relative au :ref:`système " +"d'importation `, qui décrit également les différents types de " +"paquets et modules qui peuvent être importés, de même que les points " +"d'entrée pouvant être utilisés pour personnaliser le système d'importation. " +"Notez que des erreurs dans cette étape peuvent indiquer soit que le module " +"n'a pas été trouvé, soit qu'une erreur s'est produite lors de " +"l'initialisation du module, ce qui comprend l'exécution du code du module." #: ../Doc/reference/simple_stmts.rst:741 msgid "" "If the requested module is retrieved successfully, it will be made available " "in the local namespace in one of three ways:" msgstr "" +"Si le module requis est bien récupéré, il est mis à disposition de l'espace " +"de noms locaux suivant l'une des trois façons suivantes :" #: ../Doc/reference/simple_stmts.rst:746 msgid "" "If the module name is followed by :keyword:`as`, then the name following :" "keyword:`as` is bound directly to the imported module." msgstr "" +"si le nom du module est suivi par :keyword:`as`, alors le nom suivant :" +"keyword:`as` est directement lié au module importé ;" #: ../Doc/reference/simple_stmts.rst:748 msgid "" @@ -713,6 +1022,9 @@ msgid "" "module, the module's name is bound in the local namespace as a reference to " "the imported module" msgstr "" +"si aucun autre nom n'est spécifié et que le module en cours d'importation " +"est un module de niveau le plus haut, le nom du module est lié dans l'espace " +"des noms locaux au module importé ;" #: ../Doc/reference/simple_stmts.rst:751 msgid "" @@ -721,34 +1033,43 @@ msgid "" "namespace as a reference to the top level package. The imported module must " "be accessed using its full qualified name rather than directly" msgstr "" +"si le module en cours d'importation n'est *pas* un module de plus haut " +"niveau, alors le nom du paquet de plus haut niveau qui contient ce module " +"est lié dans l'espace des noms locaux au paquet de plus haut niveau. Vous " +"pouvez accéder au module importé en utilisant son nom pleinement qualifié et " +"non directement." #: ../Doc/reference/simple_stmts.rst:762 msgid "The :keyword:`from` form uses a slightly more complex process:" -msgstr "" +msgstr "La forme :keyword:`from` utilise un processus un peu plus complexe :" #: ../Doc/reference/simple_stmts.rst:764 msgid "" "find the module specified in the :keyword:`from` clause, loading and " "initializing it if necessary;" msgstr "" +"trouve le module spécifié dans la clause :keyword:`from`, le charge et " +"l'initialise si nécessaire ;" #: ../Doc/reference/simple_stmts.rst:766 msgid "for each of the identifiers specified in the :keyword:`import` clauses:" -msgstr "" +msgstr "pour chaque nom spécifié dans les clauses :keyword:`import` :" #: ../Doc/reference/simple_stmts.rst:768 msgid "check if the imported module has an attribute by that name" -msgstr "" +msgstr "vérifie si le module importé possède un attribut avec ce nom ;" #: ../Doc/reference/simple_stmts.rst:769 msgid "" "if not, attempt to import a submodule with that name and then check the " "imported module again for that attribute" msgstr "" +"si non, essaie d'importer un sous-module avec ce nom puis vérifie si le " +"module importé possède lui-même cet attribut ;" #: ../Doc/reference/simple_stmts.rst:771 msgid "if the attribute is not found, :exc:`ImportError` is raised." -msgstr "" +msgstr "si l'attribut n'est pas trouvé, une :exc:`ImportError` est levée." #: ../Doc/reference/simple_stmts.rst:772 msgid "" @@ -756,6 +1077,9 @@ msgid "" "the name in the :keyword:`as` clause if it is present, otherwise using the " "attribute name" msgstr "" +"sinon, une référence à cette valeur est stockée dans l'espace des noms " +"locaux, en utilisant le nom de la clause :keyword:`as` si elle est présente, " +"sinon en utilisant le nom de l'attribut." #: ../Doc/reference/simple_stmts.rst:776 msgid "Examples::" @@ -767,6 +1091,9 @@ msgid "" "defined in the module are bound in the local namespace for the scope where " "the :keyword:`import` statement occurs." msgstr "" +"Si la liste des noms est remplacée par une étoile (``'*'``), tous les noms " +"publics définis dans le module sont liés dans l'espace des noms locaux de la " +"portée où apparaît l'instruction :keyword:`import`." #: ../Doc/reference/simple_stmts.rst:790 msgid "" @@ -780,6 +1107,17 @@ msgid "" "is intended to avoid accidentally exporting items that are not part of the " "API (such as library modules which were imported and used within the module)." msgstr "" +"Les *noms publics* définis par un module sont déterminés en cherchant dans " +"l'espace de noms du module une variable nommée ``__all__`` ; Si elle est " +"définie, elle doit être une séquence de chaînes désignant les noms définis " +"ou importés par ce module. Les noms donnés dans ``__all__`` sont tous " +"considérés publics et doivent exister. Si ``__all__`` n'est pas définie, " +"l'ensemble des noms publics contient tous les noms trouvés dans l'espace des " +"noms du module qui ne commencent pas par un caractère souligné (``_``). " +"``__all__`` doit contenir toute l'API publique. Elle est destinée à éviter " +"l'export accidentel d'éléments qui ne font pas partie de l'API (tels que des " +"modules de bibliothèques qui ont été importés et utilisé à l'intérieur du " +"module)." #: ../Doc/reference/simple_stmts.rst:800 msgid "" @@ -787,6 +1125,9 @@ msgid "" "allowed at the module level. Attempting to use it in class or function " "definitions will raise a :exc:`SyntaxError`." msgstr "" +"La forme d'\\ *import* avec astérisque --- ``from module import *`` --- est " +"autorisée seulement au niveau du module. Si vous essayez de l'utiliser dans " +"une définition de classe ou de fonction, cela lève une :exc:`SyntaxError`." #: ../Doc/reference/simple_stmts.rst:807 msgid "" @@ -804,16 +1145,33 @@ msgid "" "``pkg.subpkg2.mod``. The specification for relative imports is contained " "within :pep:`328`." msgstr "" +"Quand vous spécifiez les modules à importer, vous n'avez pas besoin de " +"spécifier les noms absolus des modules. Quand un module ou un paquet est " +"contenu dans un autre paquet, il est possible d'effectuer une importation " +"relative à l'intérieur du même paquet de plus haut niveau sans avoir à " +"mentionner le nom du paquet. En utilisant des points en entête du module ou " +"du paquet spécifié après :keyword:`from`, vous pouvez spécifier combien de " +"niveaux vous souhaitez remonter dans la hiérarchie du paquet courant sans " +"spécifier de nom exact. Un seul point en tête signifie le paquet courant où " +"se situe le module qui effectue l'importation. Deux points signifient de " +"remonter d'un niveau. Trois points, remonter de deux niveaux et ainsi de " +"suite. Ainsi, si vous exécutez ``from . import mod`` dans un module du " +"paquet ``pkg``, vous importez finalement ``pkg.mod``. Et si vous exécutez " +"``from ..souspkg2 import mod`` depuis ``pkg.souspkg1``, vous importez " +"finalement ``pkg.souspkg2.mod``. La spécification des importations relatives " +"se situe dans la :pep:`328`." #: ../Doc/reference/simple_stmts.rst:820 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." msgstr "" +":func:`importlib.import_module` est fournie pour gérer les applications qui " +"déterminent dynamiquement les modules à charger." #: ../Doc/reference/simple_stmts.rst:827 msgid "Future statements" -msgstr "" +msgstr "L'instruction future" #: ../Doc/reference/simple_stmts.rst:831 msgid "" @@ -821,6 +1179,10 @@ msgid "" "module should be compiled using syntax or semantics that will be available " "in a specified future release of Python where the feature becomes standard." msgstr "" +"Une :dfn:`instruction future` est une directive à l'attention du compilateur " +"afin qu'un module particulier soit compilé en utilisant une syntaxe ou une " +"sémantique qui sera disponible dans une future version de Python où cette " +"fonctionnalité est devenue un standard." #: ../Doc/reference/simple_stmts.rst:835 msgid "" @@ -829,28 +1191,35 @@ msgid "" "of the new features on a per-module basis before the release in which the " "feature becomes standard." msgstr "" +"L'instruction *future* a vocation à faciliter les migrations vers les " +"futures versions de Python qui introduisent des changements incompatibles au " +"langage. Cela permet l'utilisation de nouvelles fonctionnalités module par " +"module avant qu'une version n'officialise cette fonctionnalité comme un " +"standard." #: ../Doc/reference/simple_stmts.rst:848 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" msgstr "" +"Une instruction *future* doit apparaître en haut du module. Les seules " +"lignes autorisées avant une instruction *future* sont :" #: ../Doc/reference/simple_stmts.rst:851 msgid "the module docstring (if any)," -msgstr "" +msgstr "la chaîne de documentation du module (si elle existe)," #: ../Doc/reference/simple_stmts.rst:852 msgid "comments," -msgstr "" +msgstr "des commentaires," #: ../Doc/reference/simple_stmts.rst:853 msgid "blank lines, and" -msgstr "" +msgstr "des lignes vides et" #: ../Doc/reference/simple_stmts.rst:854 msgid "other future statements." -msgstr "" +msgstr "d'autres instructions *future*." #: ../Doc/reference/simple_stmts.rst:858 msgid "" @@ -859,6 +1228,12 @@ msgid "" "and ``with_statement``. They are all redundant because they are always " "enabled, and only kept for backwards compatibility." msgstr "" +"Les fonctionnalités (*feature* dans la grammaire ci-dessus) reconnues par " +"Python 3.0 sont ``absolute_import``, ``division``, ``generators``, " +"``unicode_literals``, ``print_function``, ``nested_scopes`` et " +"``with_statement``. Elles sont toutes redondantes car elles sont de toute " +"manière activées ; elles ne sont conservées que par souci de compatibilité " +"descendante." #: ../Doc/reference/simple_stmts.rst:863 msgid "" @@ -869,6 +1244,13 @@ msgid "" "case the compiler may need to parse the module differently. Such decisions " "cannot be pushed off until runtime." msgstr "" +"Une instruction *future* est reconnue et traitée spécialement au moment de " +"la compilation : les modifications à la sémantique des constructions de base " +"sont souvent implémentées en générant un code différent. Il peut même " +"arriver qu'une nouvelle fonctionnalité ait une syntaxe incompatible (tel " +"qu'un nouveau mot réservé) ; dans ce cas, le compilateur a besoin d'analyser " +"le module de manière différente. De telles décisions ne peuvent pas être " +"différées au moment de l'exécution." #: ../Doc/reference/simple_stmts.rst:870 msgid "" @@ -876,6 +1258,9 @@ msgid "" "defined, and raises a compile-time error if a future statement contains a " "feature not known to it." msgstr "" +"Pour une version donnée, le compilateur sait quelles fonctionnalités ont été " +"définies et lève une erreur à la compilation si une instruction *future* " +"contient une fonctionnalité qui lui est inconnue." #: ../Doc/reference/simple_stmts.rst:874 msgid "" @@ -883,22 +1268,30 @@ msgid "" "is a standard module :mod:`__future__`, described later, and it will be " "imported in the usual way at the time the future statement is executed." msgstr "" +"La sémantique à l'exécution est la même que pour toute autre instruction " +"d'importation : il existe un module standard :mod:`__future__`, décrit plus " +"loin, qui est importé comme les autres au moment ou l'instruction *future* " +"est exécutée." #: ../Doc/reference/simple_stmts.rst:878 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." msgstr "" +"La sémantique particulière à l'exécution dépend des fonctionnalités " +"apportées par l'instruction *future*." #: ../Doc/reference/simple_stmts.rst:881 msgid "Note that there is nothing special about the statement::" -msgstr "" +msgstr "Notez que l'instruction suivante est tout à fait normale ::" #: ../Doc/reference/simple_stmts.rst:885 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." msgstr "" +"Ce n'est pas une instruction *future* ; c'est une instruction d'importation " +"ordinaire qui n'a aucune sémantique particulière ou restriction de syntaxe." #: ../Doc/reference/simple_stmts.rst:888 msgid "" @@ -908,6 +1301,12 @@ msgid "" "statement. This can be controlled by optional arguments to :func:`compile` " "--- see the documentation of that function for details." msgstr "" +"Le code compilé par des appels aux fonctions natives :func:`exec` et :func:" +"`compile` dans un module :mod:`M` comportant une instruction *future* " +"utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " +"l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " +"à :func:`compile` --- voir la documentation de cette fonction pour les " +"détails." #: ../Doc/reference/simple_stmts.rst:894 msgid "" @@ -917,18 +1316,24 @@ msgid "" "and the script includes a future statement, it will be in effect in the " "interactive session started after the script is executed." msgstr "" +"Une instruction *future* entrée à l'invite de l'interpréteur interactif est " +"effective pour le reste de la session de l'interpréteur. Si l'interpréteur " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"être exécuté et que ce script contient une instruction *future*, elle est " +"effective pour la session interactive qui démarre après l'exécution du " +"script." #: ../Doc/reference/simple_stmts.rst:902 msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` - Back to the __future__" +msgstr ":pep:`236` -- retour vers le __future__" #: ../Doc/reference/simple_stmts.rst:903 msgid "The original proposal for the __future__ mechanism." -msgstr "" +msgstr "La proposition originale pour le mécanisme de __future__." #: ../Doc/reference/simple_stmts.rst:909 msgid "The :keyword:`global` statement" -msgstr "" +msgstr "L'instruction :keyword:`global`" #: ../Doc/reference/simple_stmts.rst:918 msgid "" @@ -938,12 +1343,20 @@ msgid "" "variable without :keyword:`global`, although free variables may refer to " "globals without being declared global." msgstr "" +"L'instruction :keyword:`global` est une déclaration qui couvre l'ensemble du " +"bloc de code courant. Elle signifie que les noms (*identifier* dans la " +"grammaire ci-dessus) listés doivent être interprétés comme globaux. Il est " +"impossible d'assigner une variable globale sans :keyword:`global`, mais " +"rappelez-vous que les variables libres peuvent faire référence à des " +"variables globales sans avoir été déclarées en tant que telles." #: ../Doc/reference/simple_stmts.rst:924 msgid "" "Names listed in a :keyword:`global` statement must not be used in the same " "code block textually preceding that :keyword:`global` statement." msgstr "" +"Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " +"utilisés, dans le même bloc de code, avant l'instruction :keyword:`global`." #: ../Doc/reference/simple_stmts.rst:927 msgid "" @@ -952,6 +1365,10 @@ msgid "" "definition, function definition, :keyword:`import` statement, or variable " "annotation." msgstr "" +"Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " +"définis en tant que paramètre formel, cible d'une boucle :keyword:`for`, " +"dans une définition de :keyword:`class`, de fonction, d'instruction :" +"keyword:`import` ou une annotation de variable." #: ../Doc/reference/simple_stmts.rst:934 msgid "" @@ -959,6 +1376,10 @@ msgid "" "programs should not abuse this freedom, as future implementations may " "enforce them or silently change the meaning of the program." msgstr "" +"L'implémentation actuelle ne vérifie pas toutes ces interdictions mais " +"n'abusez pas de cette liberté car les implémentations futures pourraient " +"faire la vérification ou modifier le comportement du programme sans vous " +"avertir." #: ../Doc/reference/simple_stmts.rst:943 msgid "" @@ -971,10 +1392,18 @@ msgid "" "containing the function call. The same applies to the :func:`eval` and :" "func:`compile` functions." msgstr "" +"**Note pour les programmeurs :** :keyword:`global` est une directive à " +"l'attention de l'analyseur syntaxique. Elle s'applique uniquement au code " +"analysé en même temps que l'instruction :keyword:`global`. En particulier, " +"une instruction :keyword:`global` contenue dans une chaîne ou un objet code " +"fourni à la fonction native :func:`exec` n'affecte pas le code *contenant* " +"cet appel et le code contenu dans un telle chaîne n'est pas affecté par une " +"instruction :keyword:`global` placée dans le code contenant l'appel. Il en " +"est de même pour les fonctions :func:`eval` et :func:`compile`." #: ../Doc/reference/simple_stmts.rst:955 msgid "The :keyword:`nonlocal` statement" -msgstr "" +msgstr "L'instruction :keyword:`nonlocal`" #: ../Doc/reference/simple_stmts.rst:966 msgid "" @@ -984,6 +1413,13 @@ msgid "" "local namespace first. The statement allows encapsulated code to rebind " "variables outside of the local scope besides the global (module) scope." msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms listés font référence " +"aux variables liées précédemment, dans la portée la plus petite entourant " +"l'instruction, à l'exception des variables globales. C'est important car le " +"comportement par défaut pour les liaisons consiste à chercher d'abord dans " +"l'espace des noms locaux. Cette instruction permet à du code encapsulé de se " +"lier à des variables en dehors de la portée locale du code mais sans avoir " +"de portée globale (c'est-à-dire de niveau module)." #: ../Doc/reference/simple_stmts.rst:976 msgid "" @@ -992,17 +1428,24 @@ msgid "" "enclosing scope (the scope in which a new binding should be created cannot " "be determined unambiguously)." msgstr "" +"Les noms (*identifier* dans la grammaire ci-dessus) listés dans " +"l'instruction :keyword:`nonlocal`, au contraire de ceux listés dans une " +"instruction :keyword:`global`, doivent faire référence à des liaisons pré-" +"existantes dans les portées englobantes (en effet, la portée dans laquelle " +"devrait être créée la liaison ne peut pas être déterminée *a priori*)." #: ../Doc/reference/simple_stmts.rst:981 msgid "" "Names listed in a :keyword:`nonlocal` statement must not collide with pre-" "existing bindings in the local scope." msgstr "" +"Les noms listés dans l'instruction :keyword:`nonlocal` ne doivent entrer en " +"collision avec des liaisons déjà établies dans la portée locale." #: ../Doc/reference/simple_stmts.rst:986 msgid ":pep:`3104` - Access to Names in Outer Scopes" -msgstr "" +msgstr ":pep:`3104` -- Accès à des noms en dehors de la portée locale" #: ../Doc/reference/simple_stmts.rst:987 msgid "The specification for the :keyword:`nonlocal` statement." -msgstr "" +msgstr "Les spécifications pour l'instruction :keyword:`nonlocal`."