diff --git a/README.rst b/README.rst index b08aaae5..79e7eb5e 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ French Translation of the Python Documentation ============================================== -**Translated: 28.0%** +**Translated: 29%** See the `README.rst file on master `_ diff --git a/howto/clinic.po b/howto/clinic.po index c48de6b3..5e3289f3 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2018-06-17 10:45+0200\n" +"PO-Revision-Date: 2018-06-17 11:04+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -585,7 +585,7 @@ msgid "" "c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" "only." msgstr "" -"Si la fonction C existante appelle :c:func:`PyArg_ParseTuple` (et pas : c:" +"Si la fonction C existante appelle :c:func:`PyArg_ParseTuple` (et pas :c:" "func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " "uniquement positionnels. " diff --git a/howto/regex.po b/howto/regex.po index 9901cb22..37874bce 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2017-08-10 00:58+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2018-06-17 11:06+0200\n" +"Last-Translator: Nabil Bendafi \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/regex.rst:5 msgid "Regular Expression HOWTO" -msgstr "" +msgstr "Guide des Expressions régulières" #: ../Doc/howto/regex.rst:0 msgid "Author" @@ -39,6 +39,10 @@ msgid "" "Python with the :mod:`re` module. It provides a gentler introduction than " "the corresponding section in the Library Reference." msgstr "" +"Ce document est un guide d'introduction à l'utilisation des expressions " +"régulières en Python avec le module :mod:`re`. Il fournit une introduction " +"plus abordable que la section correspondante dans le guide de référence des " +"bibliothèques." #: ../Doc/howto/regex.rst:24 msgid "Introduction" @@ -56,6 +60,18 @@ msgid "" "match for the pattern anywhere in this string?\". You can also use REs to " "modify a string or to split it apart in various ways." msgstr "" +"Les expressions régulières (appelées RE, ou regexes, ou motifs regex) sont " +"essentiellement un petit langage de programmation hautement spécialisé " +"embarqué dans Python et dont la manipulation est rendue possible par " +"l'utilisation du module :mod:`re`. En utilisant ce petit langage, vous " +"spécifiez les règles pour l'ensemble des chaînes des caractères possibles " +"pour lesquelles vous voulez une correspondance; cet ensemble contient des " +"phrases en Anglais, ou des adresses de courriel, ou des commandes TeX, ou " +"tout ce que vous voulez. Vous pouvez ensuite poser des questions tel que " +"\"Est-ce que cette chaîne de caractères correspond au motif ?\", ou \"Y-a-" +"t'il une correspondance pour un motif dans le chaîne de caractères ?\". Vous " +"pouvez aussi utiliser les RE pour modifier une chaîne de caractères ou la " +"découper de différentes façons." #: ../Doc/howto/regex.rst:35 msgid "" @@ -67,6 +83,13 @@ msgid "" "requires that you have a good understanding of the matching engine's " "internals." msgstr "" +"Les motifs d'expressions régulières sont compilés en **bytecodes** qui sont " +"ensuite exécutés par un moteur de correspondance écrit en C. Pour une " +"utilisation plus poussée, il peut s'avérer nécessaire de s'intéresser à la " +"manière dont le moteur exécute la RE afin d'écrire une expression dont le " +"**bytecode** est plus rapide. L'optimisation n'est pas traitée dans ce " +"document, parce qu'elle nécessite d'avoir une bonne compréhension des " +"mécanismes internes du moteur de correspondance." #: ../Doc/howto/regex.rst:42 msgid "" @@ -78,10 +101,18 @@ msgid "" "be slower than an elaborate regular expression, it will also probably be " "more understandable." msgstr "" +"Le langage d'expressions régulières est relativement petit et restreint donc " +"toutes les tâches de manipulation de chaînes de caractères ne peuvent pas " +"être réalisées à l'aide d'expressions régulières. Il y a aussi des tâches " +"qui *peuvent* être réalisées à l'aide d'expressions régulières mais qui ont " +"tendance à produire des expressions régulières très compliquées. Dans ces " +"cas, il vous sera plus utile d'écrire du code Python pour réaliser le " +"traitement; même si le code Python sera plus lent qu'une expression " +"régulière élaborée, il sera probablement plus compréhensible." #: ../Doc/howto/regex.rst:51 msgid "Simple Patterns" -msgstr "" +msgstr "Motifs simples" #: ../Doc/howto/regex.rst:53 msgid "" @@ -89,6 +120,10 @@ msgid "" "Since regular expressions are used to operate on strings, we'll begin with " "the most common task: matching characters." msgstr "" +"Nous commencerons par étudier les expressions régulières les plus simples. " +"Dans la mesure où les expressions régulières sont utilisées pour manipuler " +"des chaînes de caractères, nous commencerons par les tâches les plus " +"communes: la correspondance de caractères ." #: ../Doc/howto/regex.rst:57 msgid "" @@ -96,10 +131,13 @@ msgid "" "expressions (deterministic and non-deterministic finite automata), you can " "refer to almost any textbook on writing compilers." msgstr "" +"Pour une explication détaillée sur la technologie sous-jacente des " +"expressions régulières (automate d'état déterministe et non-déterministe), " +"référez-vous à n'importe quel manuel sur l'écriture de compilateurs." #: ../Doc/howto/regex.rst:63 msgid "Matching Characters" -msgstr "" +msgstr "Caractères correspondants" #: ../Doc/howto/regex.rst:65 msgid "" @@ -108,6 +146,11 @@ msgid "" "can enable a case-insensitive mode that would let this RE match ``Test`` or " "``TEST`` as well; more about this later.)" msgstr "" +"La plupart des lettres ou caractères vont correspondre à eux-mêmes. Par " +"exemple, l'expression régulière ``test`` correspond à la chaîne de caractère " +"``test`` précisément. (Vous pouvez activer le mode non-sensible à la casse " +"qui permet à cette RE de correspondre à ``Test`` ou ``TEST`` également; plus " +"à ce sujet dans la suite.) " #: ../Doc/howto/regex.rst:70 msgid "" @@ -118,12 +161,20 @@ msgid "" "this document is devoted to discussing various metacharacters and what they " "do." msgstr "" +"Il y a des exceptions à cette règle; certains caractères sont des :dfn:" +"`metacharacters` spéciaux et ne correspondent pas à eux-mêmes. Au lieu de " +"cela, ils signalent que certaines choses non ordinaires doivent " +"correspondre, ou affectent d'autre portions de la RE en les répétant ou en " +"changeant leur sens. Une grande partie de ce document est consacrée au " +"fonctionnement de ces métacaractères." #: ../Doc/howto/regex.rst:76 msgid "" "Here's a complete list of the metacharacters; their meanings will be " "discussed in the rest of this HOWTO." msgstr "" +"Voici une liste complète des méta-caractères; leurs sens sera décrit dans la " +"suite de ce guide." #: ../Doc/howto/regex.rst:83 msgid "" @@ -136,6 +187,16 @@ msgid "" "characters. If you wanted to match only lowercase letters, your RE would be " "``[a-z]``." msgstr "" +"Les premiers méta-caractères que nous étudions sont ``[`` et ``]``. Ils sont " +"utilisés pour spécifier une classe de caractères, qui forme un ensemble de " +"caractères dont vous souhaitez trouver la correspondance. Les caractères " +"peuvent être listés individuellement, ou une plage de caractères peut être " +"indiquée en fournissant deux caractères séparés par un `'-'``. Par exemple, " +"``[abc]`` correspondra à n'importe quel caractère parmi ``a``, ``b``, ou " +"``c``; ce qui est équivalent à ``[a-c]``, qui utilise une plage pour " +"exprimer le même ensemble de caractères. Si vous voulez trouver une " +"correspondance avec uniquement les lettres en minuscule, votre RE sera ``[a-" +"z]``." #: ../Doc/howto/regex.rst:92 msgid "" @@ -144,6 +205,10 @@ msgid "" "is usually a metacharacter, but inside a character class it's stripped of " "its special nature." msgstr "" +"Les méta-caractères ne sont pas actifs dans les classes. Par exemple, ``[akm" +"$]`` correspondra à n'importe quel caractère parmi ``'a'``, ``'k'``, " +"``'m'``, ou ``'$'``; ``'$'`` est habituellement un méta-caractère mais dans " +"une classe de caractères, il est dépourvu de son caractère spécial." #: ../Doc/howto/regex.rst:97 msgid "" @@ -153,6 +218,12 @@ msgid "" "match the ``'^'`` character. For example, ``[^5]`` will match any character " "except ``'5'``." msgstr "" +"Vous pouvez trouvez une correspondance avec les caractères non listés dans " +"une classe en complimentant (:dfn:`complementing`) l'ensemble. Ceci est " +"indiqué en incluant un ``'^'`` en tant que premier caractère de la classe; " +"``'^'`` en dehors d'une classe de caractères correspondra au caractère " +"``'^'``. Par exemple, ``[^5]`` correspondra à tout les caractères, sauf " +"``[^5]``." #: ../Doc/howto/regex.rst:102 msgid "" @@ -163,6 +234,14 @@ msgid "" "need to match a ``[`` or ``\\``, you can precede them with a backslash to " "remove their special meaning: ``\\[`` or ``\\\\``." msgstr "" +"Le méta-caractère qui est probablement le plus important est le " +"**backslash**, ``\\``. Comme dans les chaînes de caractères en Python, le " +"**backslash** peut être suivi par différents caractères pour signaler " +"différentes séquences spéciales. Il est aussi utilisé pour échapper tout les " +"méta-caractères afin d'en trouver les correspondances dans les motifs; par " +"exemple, si vous devait trouver une correspondance pour ``[`` ou ``\\`, " +"vous pouvais les précéder avec un **backslash** pour supprimer leur " +"caractères spécial : ``\\[`` ou ``\\\\``." #: ../Doc/howto/regex.rst:109 msgid "" @@ -170,6 +249,10 @@ msgid "" "sets of characters that are often useful, such as the set of digits, the set " "of letters, or the set of anything that isn't whitespace." msgstr "" +"Certaines séquences spéciales commençant par ``'\\'`` représentent des " +"ensembles de caractères prédéfinis qui sont souvent utiles, tels que " +"l'ensemble des chiffres, l'ensemble des lettres, ou l'ensemble des " +"caractères qui ne sont pas des séparateurs." #: ../Doc/howto/regex.rst:114 msgid "" @@ -181,6 +264,14 @@ msgid "" "in a string pattern by supplying the :const:`re.ASCII` flag when compiling " "the regular expression." msgstr "" +"Prenons un exemple: ``\\w`` correspond à n'importe quel caractères " +"alphanumérique. Si le motif **regex** est exprimé en octets, il est " +"équivalent à la classe ``[a-zA-Z0-9_]``. Si le motif **regex** est une " +"chaîne de caractères, ``\\w`` correspondra à tout les caractères identifiés " +"comme lettre dans le base de données Unicode fourni par le module :mod:" +"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``" +"\\w`` dans un motif de chaîne de caractères en spécifiant le fanion :const:" +"`re.ASCII` lors de la compilation de l'expression régulière." #: ../Doc/howto/regex.rst:122 msgid "" @@ -190,6 +281,13 @@ msgid "" "Standard Library reference. In general, the Unicode versions match any " "character that's in the appropriate category in the Unicode database." msgstr "" +"La liste de séquences spéciales suivante est incomplète. Pour une liste " +"complète de séquences et définitions de classe étendue pour des motifs de " +"chaînes de caractère s Unicode, reportez-vous à la dernière partie de la " +"référence :ref:`Syntaxe d'Expressions Régulières ` de la " +"librairie standard. En général, les versions d'Unicode trouve une " +"correspondance avec n'importe quel caractère présent dans le catégorie " +"appropriée de la base de données Unicode. " #: ../Doc/howto/regex.rst:130 msgid "``\\d``" @@ -198,6 +296,8 @@ msgstr "``\\d``" #: ../Doc/howto/regex.rst:130 msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." msgstr "" +"Correspond à n'importe quel caractère numérique ; ceci est équivalent à la " +"classe ``[0-9]``." #: ../Doc/howto/regex.rst:133 msgid "``\\D``" @@ -207,6 +307,8 @@ msgstr "``\\D``" msgid "" "Matches any non-digit character; this is equivalent to the class ``[^0-9]``." msgstr "" +"Correspond à n'importe caractère non numérique; ceci est équivalent à la " +"classe ``[^0-9]``." #: ../Doc/howto/regex.rst:137 msgid "``\\s``" @@ -217,6 +319,8 @@ msgid "" "Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" "\\r\\f\\v]``." msgstr "" +"Correspond à n'importe caractères d'espacement; ceci est équivalent à la " +"classe ``[ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:141 msgid "``\\S``" @@ -227,6 +331,8 @@ msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." msgstr "" +"Correspond à n'importe caractère autre que d'espacement; ceci est équivalent " +"à la classe ``[^ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:145 msgid "``\\w``" @@ -237,6 +343,8 @@ msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." msgstr "" +"Correspond à n'importe caractère alphanumérique; ceci est équivalent à la " +"classe ``[a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:149 msgid "``\\W``" @@ -247,6 +355,8 @@ msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." msgstr "" +"Correspond à n'importe caractère non-alphanumérique; ceci est équivalent à " +"la classe ``[^a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:151 msgid "" @@ -254,6 +364,9 @@ msgid "" "``[\\s,.]`` is a character class that will match any whitespace character, " "or ``','`` or ``'.'``." msgstr "" +"Ces séquences peuvent être incluses dans une classe de caractères. Par " +"exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " +"caractères d'espace, ou ``','`` ou ``'.'``. " #: ../Doc/howto/regex.rst:155 msgid "" @@ -262,10 +375,15 @@ msgid "" "DOTALL`) where it will match even a newline. ``.`` is often used where you " "want to match \"any character\"." msgstr "" +"Le dernier méta-caractère dans cette section est ``.``. Il correspond à tout " +"les caractères, à l'exception du caractère de retour à la ligne; il existe " +"un mode alternatif (:const:`re.DOTALL`) dans lequel il correspond également " +"eu caractère de retour à la ligne. ``.`` est souvent utilisé lorsque l'on " +"veut trouver une correspondance avec \"n'importe quel caractère\"." #: ../Doc/howto/regex.rst:162 msgid "Repeating Things" -msgstr "" +msgstr "Répetitions" #: ../Doc/howto/regex.rst:164 msgid "" @@ -305,14 +423,19 @@ msgid "" "letters from the class ``[bcd]``, and finally ends with a ``'b'``. Now " "imagine matching this RE against the string ``'abcbd'``." msgstr "" +"Un exemple étape par étape mettra les choses au clair. Considérons " +"l'expression ``a[bcd]*b``. Elle correspond à la lettre ``'a'``, suivi " +"d'aucune ou plusieurs lettres de la classe `[bcd]`` et finira par un " +"``'b'``. Maintenant supposé que cette RE correspondra à la chaîne de " +"caractères ``'abcbd'``." #: ../Doc/howto/regex.rst:188 msgid "Step" -msgstr "" +msgstr "Etape" #: ../Doc/howto/regex.rst:188 msgid "Matched" -msgstr "" +msgstr "Correspond" #: ../Doc/howto/regex.rst:188 msgid "Explanation" @@ -328,7 +451,7 @@ msgstr "" #: ../Doc/howto/regex.rst:190 msgid "The ``a`` in the RE matches." -msgstr "" +msgstr "Le ``a`` dans la RE correspondante." #: ../Doc/howto/regex.rst:192 msgid "2" @@ -357,6 +480,8 @@ msgid "" "The engine tries to match ``b``, but the current position is at the end of " "the string, so it fails." msgstr "" +"Le moteur essaye de trouver une correspondance avec ``b`` mais la position " +"courante est à la fin de la chaîne de caractères et échoue donc." #: ../Doc/howto/regex.rst:201 msgid "4" @@ -453,7 +578,7 @@ msgstr "" #: ../Doc/howto/regex.rst:255 msgid "Using Regular Expressions" -msgstr "" +msgstr "Utilisation des Expressions Régulières" #: ../Doc/howto/regex.rst:257 msgid "" @@ -465,7 +590,7 @@ msgstr "" #: ../Doc/howto/regex.rst:264 msgid "Compiling Regular Expressions" -msgstr "" +msgstr "Compilations des Expressions Régulières" #: ../Doc/howto/regex.rst:266 msgid "" @@ -500,7 +625,7 @@ msgstr "" #: ../Doc/howto/regex.rst:295 msgid "The Backslash Plague" -msgstr "" +msgstr "Le Maudit Backslash" #: ../Doc/howto/regex.rst:297 msgid "" @@ -544,7 +669,7 @@ msgstr "" #: ../Doc/howto/regex.rst:315 msgid "Escaped backslash for :func:`re.compile`" -msgstr "" +msgstr "**backslash** échappé pour :func:`re.compile`" #: ../Doc/howto/regex.rst:317 ../Doc/howto/regex.rst:344 msgid "``\"\\\\\\\\section\"``" @@ -588,7 +713,7 @@ msgstr "" #: ../Doc/howto/regex.rst:340 msgid "Raw string" -msgstr "" +msgstr "Chaîne de caractères brute" #: ../Doc/howto/regex.rst:342 msgid "``\"ab*\"``" @@ -621,14 +746,18 @@ msgid "" "the most significant ones will be covered here; consult the :mod:`re` docs " "for a complete listing." msgstr "" +"Une fois que nous avons un objet représentant une expression régulière " +"compilée, qu'en faisons-nous ? Les objets motifs ont plusieurs méthodes et " +"attributs. Seuls les plus significatifs seront couverts ici; consultez la " +"documentation :mod:`re` pour la liste complète." #: ../Doc/howto/regex.rst:359 ../Doc/howto/regex.rst:417 -#: ../Doc/howto/regex.rst:1056 +#: ../Doc/howto/regex.rst:1054 msgid "Method/Attribute" -msgstr "" +msgstr "Méthode/Attribut" #: ../Doc/howto/regex.rst:359 ../Doc/howto/regex.rst:417 -#: ../Doc/howto/regex.rst:1056 +#: ../Doc/howto/regex.rst:1054 msgid "Purpose" msgstr "Objectif" @@ -719,7 +848,7 @@ msgstr "" #: ../Doc/howto/regex.rst:419 msgid "Return the string matched by the RE" -msgstr "" +msgstr "Retourne la chaîne de caractères correspondant à la RE" #: ../Doc/howto/regex.rst:421 msgid "``start()``" @@ -727,7 +856,7 @@ msgstr "" #: ../Doc/howto/regex.rst:421 msgid "Return the starting position of the match" -msgstr "" +msgstr "Retourne la position de début de correspondance" #: ../Doc/howto/regex.rst:423 msgid "``end()``" @@ -735,7 +864,7 @@ msgstr "" #: ../Doc/howto/regex.rst:423 msgid "Return the ending position of the match" -msgstr "" +msgstr "Retourne la position de fin de correspondance" #: ../Doc/howto/regex.rst:425 msgid "``span()``" @@ -823,7 +952,7 @@ msgstr "" #: ../Doc/howto/regex.rst:522 msgid "Compilation Flags" -msgstr "" +msgstr "Fanion de Compilation" #: ../Doc/howto/regex.rst:524 msgid "" @@ -868,6 +997,8 @@ msgstr "" #: ../Doc/howto/regex.rst:542 msgid "Make ``.`` match any character, including newlines." msgstr "" +"Fait en sorte que ``.`` corresponde à n'importe quel caractère, caractère de " +"retour à la ligne inclus." #: ../Doc/howto/regex.rst:545 msgid ":const:`IGNORECASE`, :const:`I`" @@ -875,7 +1006,7 @@ msgstr "" #: ../Doc/howto/regex.rst:545 msgid "Do case-insensitive matches." -msgstr "" +msgstr "Rechercher une correspondance non-sensible à la casse." #: ../Doc/howto/regex.rst:547 msgid ":const:`LOCALE`, :const:`L`" @@ -883,7 +1014,7 @@ msgstr "" #: ../Doc/howto/regex.rst:547 msgid "Do a locale-aware match." -msgstr "" +msgstr "Rechercher une correspondance sensible à la langue locale." #: ../Doc/howto/regex.rst:549 msgid ":const:`MULTILINE`, :const:`M`" @@ -891,7 +1022,7 @@ msgstr "" #: ../Doc/howto/regex.rst:549 msgid "Multi-line matching, affecting ``^`` and ``$``." -msgstr "" +msgstr "Correspondance multi-ligne, affectant ``^`` et ``$``." #: ../Doc/howto/regex.rst:552 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" @@ -901,6 +1032,8 @@ msgstr "" msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" +"Activer les RE verbeuses, qui peuvent être organisées de manière plus " +"propres et compréhensibles." #: ../Doc/howto/regex.rst:561 msgid "" @@ -948,6 +1081,8 @@ msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" msgstr "" +"(``^`` et ``$`` n'ont pas encore été expliqués; ils seront introduit dans le " +"section :ref:`more-metacharacters`.)" #: ../Doc/howto/regex.rst:607 msgid "" @@ -1012,10 +1147,14 @@ msgid "" "this section, we'll cover some new metacharacters, and how to use groups to " "retrieve portions of the text that was matched." msgstr "" +"Jusqu'à présent nous avons seulement couvert une partie des fonctionnalités " +"des expressions régulières. Dans cette section, nous couvrirons quelques " +"nouveaux méta-caractères et comment utiliser les groupes pour récupérer des " +"portions de textes correspondante." #: ../Doc/howto/regex.rst:681 msgid "More Metacharacters" -msgstr "" +msgstr "Plus de Méta-caratères" #: ../Doc/howto/regex.rst:683 msgid "" @@ -1162,7 +1301,7 @@ msgstr "" #: ../Doc/howto/regex.rst:783 msgid "Grouping" -msgstr "" +msgstr "Regroupement" #: ../Doc/howto/regex.rst:785 msgid "" @@ -1170,17 +1309,17 @@ msgid "" "matched or not. Regular expressions are often used to dissect strings by " "writing a RE divided into several subgroups which match different components " "of interest. For example, an RFC-822 header line is divided into a header " -"name and a value, separated by a ``':'``, like this:" +"name and a value, separated by a ``':'``, like this::" msgstr "" -#: ../Doc/howto/regex.rst:798 +#: ../Doc/howto/regex.rst:796 msgid "" "This can be handled by writing a regular expression which matches an entire " "header line, and has one group which matches the header name, and another " "group which matches the header's value." msgstr "" -#: ../Doc/howto/regex.rst:802 +#: ../Doc/howto/regex.rst:800 msgid "" "Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " "``')'`` have much the same meaning as they do in mathematical expressions; " @@ -1190,7 +1329,7 @@ msgid "" "repetitions of ``ab``. ::" msgstr "" -#: ../Doc/howto/regex.rst:813 +#: ../Doc/howto/regex.rst:811 msgid "" "Groups indicated with ``'('``, ``')'`` also capture the starting and ending " "index of the text that they match; this can be retrieved by passing an " @@ -1202,27 +1341,27 @@ msgid "" "they match. ::" msgstr "" -#: ../Doc/howto/regex.rst:829 +#: ../Doc/howto/regex.rst:827 msgid "" "Subgroups are numbered from left to right, from 1 upward. Groups can be " "nested; to determine the number, just count the opening parenthesis " "characters, going from left to right. ::" msgstr "" -#: ../Doc/howto/regex.rst:842 +#: ../Doc/howto/regex.rst:840 msgid "" ":meth:`~re.match.group` can be passed multiple group numbers at a time, in " "which case it will return a tuple containing the corresponding values for " "those groups. ::" msgstr "" -#: ../Doc/howto/regex.rst:848 +#: ../Doc/howto/regex.rst:846 msgid "" "The :meth:`~re.match.groups` method returns a tuple containing the strings " "for all the subgroups, from 1 up to however many there are. ::" msgstr "" -#: ../Doc/howto/regex.rst:854 +#: ../Doc/howto/regex.rst:852 msgid "" "Backreferences in a pattern allow you to specify that the contents of an " "earlier capturing group must also be found at the current location in the " @@ -1233,11 +1372,11 @@ msgid "" "when incorporating backreferences in a RE." msgstr "" -#: ../Doc/howto/regex.rst:862 +#: ../Doc/howto/regex.rst:860 msgid "For example, the following RE detects doubled words in a string. ::" msgstr "" -#: ../Doc/howto/regex.rst:868 +#: ../Doc/howto/regex.rst:866 msgid "" "Backreferences like this aren't often useful for just searching through a " "string --- there are few text formats which repeat data in this way --- but " @@ -1245,11 +1384,11 @@ msgid "" "substitutions." msgstr "" -#: ../Doc/howto/regex.rst:874 +#: ../Doc/howto/regex.rst:872 msgid "Non-capturing and Named Groups" msgstr "" -#: ../Doc/howto/regex.rst:876 +#: ../Doc/howto/regex.rst:874 msgid "" "Elaborate REs may use many groups, both to capture substrings of interest, " "and to group and structure the RE itself. In complex REs, it becomes " @@ -1258,7 +1397,7 @@ msgid "" "expression extensions, so we'll look at that first." msgstr "" -#: ../Doc/howto/regex.rst:882 +#: ../Doc/howto/regex.rst:880 msgid "" "Perl 5 is well known for its powerful additions to standard regular " "expressions. For these new features the Perl developers couldn't choose new " @@ -1269,7 +1408,7 @@ msgid "" "wouldn't have escaped it by writing ``\\&`` or ``[&]``." msgstr "" -#: ../Doc/howto/regex.rst:889 +#: ../Doc/howto/regex.rst:887 msgid "" "The solution chosen by the Perl developers was to use ``(?...)`` as the " "extension syntax. ``?`` immediately after a parenthesis was a syntax error " @@ -1280,20 +1419,20 @@ msgid "" "capturing group containing the subexpression ``foo``)." msgstr "" -#: ../Doc/howto/regex.rst:897 +#: ../Doc/howto/regex.rst:895 msgid "" "Python supports several of Perl's extensions and adds an extension syntax to " "Perl's extension syntax. If the first character after the question mark is " "a ``P``, you know that it's an extension that's specific to Python." msgstr "" -#: ../Doc/howto/regex.rst:902 +#: ../Doc/howto/regex.rst:900 msgid "" "Now that we've looked at the general extension syntax, we can return to the " "features that simplify working with groups in complex REs." msgstr "" -#: ../Doc/howto/regex.rst:905 +#: ../Doc/howto/regex.rst:903 msgid "" "Sometimes you'll want to use a group to denote a part of a regular " "expression, but aren't interested in retrieving the group's contents. You " @@ -1301,7 +1440,7 @@ msgid "" "where you can replace the ``...`` with any other regular expression. ::" msgstr "" -#: ../Doc/howto/regex.rst:917 +#: ../Doc/howto/regex.rst:915 msgid "" "Except for the fact that you can't retrieve the contents of what the group " "matched, a non-capturing group behaves exactly the same as a capturing " @@ -1314,13 +1453,13 @@ msgid "" "groups; neither form is any faster than the other." msgstr "" -#: ../Doc/howto/regex.rst:926 +#: ../Doc/howto/regex.rst:924 msgid "" "A more significant feature is named groups: instead of referring to them by " "numbers, groups can be referenced by a name." msgstr "" -#: ../Doc/howto/regex.rst:929 +#: ../Doc/howto/regex.rst:927 msgid "" "The syntax for a named group is one of the Python-specific extensions: ``(?" "P...)``. *name* is, obviously, the name of the group. Named groups " @@ -1332,20 +1471,20 @@ msgid "" "ways::" msgstr "" -#: ../Doc/howto/regex.rst:944 +#: ../Doc/howto/regex.rst:942 msgid "" "Named groups are handy because they let you use easily-remembered names, " "instead of having to remember numbers. Here's an example RE from the :mod:" "`imaplib` module::" msgstr "" -#: ../Doc/howto/regex.rst:955 +#: ../Doc/howto/regex.rst:953 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." msgstr "" -#: ../Doc/howto/regex.rst:958 +#: ../Doc/howto/regex.rst:956 msgid "" "The syntax for backreferences in an expression such as ``(...)\\1`` refers " "to the number of the group. There's naturally a variant that uses the group " @@ -1356,22 +1495,22 @@ msgid "" "+(?P=word)\\b``::" msgstr "" -#: ../Doc/howto/regex.rst:971 +#: ../Doc/howto/regex.rst:969 msgid "Lookahead Assertions" msgstr "" -#: ../Doc/howto/regex.rst:973 +#: ../Doc/howto/regex.rst:971 msgid "" "Another zero-width assertion is the lookahead assertion. Lookahead " "assertions are available in both positive and negative form, and look like " "this:" msgstr "" -#: ../Doc/howto/regex.rst:981 +#: ../Doc/howto/regex.rst:979 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/howto/regex.rst:977 +#: ../Doc/howto/regex.rst:975 msgid "" "Positive lookahead assertion. This succeeds if the contained regular " "expression, represented here by ``...``, successfully matches at the current " @@ -1380,18 +1519,18 @@ msgid "" "is tried right where the assertion started." msgstr "" -#: ../Doc/howto/regex.rst:986 +#: ../Doc/howto/regex.rst:984 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/howto/regex.rst:984 +#: ../Doc/howto/regex.rst:982 msgid "" "Negative lookahead assertion. This is the opposite of the positive " "assertion; it succeeds if the contained expression *doesn't* match at the " "current position in the string." msgstr "" -#: ../Doc/howto/regex.rst:988 +#: ../Doc/howto/regex.rst:986 msgid "" "To make this concrete, let's look at a case where a lookahead is useful. " "Consider a simple pattern to match a filename and split it apart into a base " @@ -1399,15 +1538,15 @@ msgid "" "``news`` is the base name, and ``rc`` is the filename's extension." msgstr "" -#: ../Doc/howto/regex.rst:993 +#: ../Doc/howto/regex.rst:991 msgid "The pattern to match this is quite simple:" -msgstr "" +msgstr "Le motif de correspondance est plutôt simple: " -#: ../Doc/howto/regex.rst:995 +#: ../Doc/howto/regex.rst:993 msgid "``.*[.].*$``" msgstr "" -#: ../Doc/howto/regex.rst:997 +#: ../Doc/howto/regex.rst:995 msgid "" "Notice that the ``.`` needs to be treated specially because it's a " "metacharacter, so it's inside a character class to only match that specific " @@ -1417,24 +1556,24 @@ msgid "" "``printers.conf``." msgstr "" -#: ../Doc/howto/regex.rst:1004 +#: ../Doc/howto/regex.rst:1002 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" msgstr "" -#: ../Doc/howto/regex.rst:1007 +#: ../Doc/howto/regex.rst:1005 msgid "" "``.*[.][^b].*$`` The first attempt above tries to exclude ``bat`` by " "requiring that the first character of the extension is not a ``b``. This is " "wrong, because the pattern also doesn't match ``foo.bar``." msgstr "" -#: ../Doc/howto/regex.rst:1011 +#: ../Doc/howto/regex.rst:1009 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "" -#: ../Doc/howto/regex.rst:1013 +#: ../Doc/howto/regex.rst:1011 msgid "" "The expression gets messier when you try to patch up the first solution by " "requiring one of the following cases to match: the first character of the " @@ -1445,18 +1584,18 @@ msgid "" "pattern again in an effort to fix it." msgstr "" -#: ../Doc/howto/regex.rst:1021 +#: ../Doc/howto/regex.rst:1019 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "" -#: ../Doc/howto/regex.rst:1023 +#: ../Doc/howto/regex.rst:1021 msgid "" "In the third attempt, the second and third letters are all made optional in " "order to allow matching extensions shorter than three characters, such as " "``sendmail.cf``." msgstr "" -#: ../Doc/howto/regex.rst:1027 +#: ../Doc/howto/regex.rst:1025 msgid "" "The pattern's getting really complicated now, which makes it hard to read " "and understand. Worse, if the problem changes and you want to exclude both " @@ -1464,11 +1603,11 @@ msgid "" "complicated and confusing." msgstr "" -#: ../Doc/howto/regex.rst:1032 +#: ../Doc/howto/regex.rst:1030 msgid "A negative lookahead cuts through all this confusion:" msgstr "" -#: ../Doc/howto/regex.rst:1034 +#: ../Doc/howto/regex.rst:1032 msgid "" "``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " "``bat`` doesn't match at this point, try the rest of the pattern; if ``bat" @@ -1478,61 +1617,65 @@ msgid "" "pattern works when there are multiple dots in the filename." msgstr "" -#: ../Doc/howto/regex.rst:1041 +#: ../Doc/howto/regex.rst:1039 msgid "" "Excluding another filename extension is now easy; simply add it as an " "alternative inside the assertion. The following pattern excludes filenames " "that end in either ``bat`` or ``exe``:" msgstr "" -#: ../Doc/howto/regex.rst:1045 +#: ../Doc/howto/regex.rst:1043 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "" -#: ../Doc/howto/regex.rst:1049 +#: ../Doc/howto/regex.rst:1047 msgid "Modifying Strings" msgstr "" -#: ../Doc/howto/regex.rst:1051 +#: ../Doc/howto/regex.rst:1049 msgid "" "Up to this point, we've simply performed searches against a static string. " "Regular expressions are also commonly used to modify strings in various " "ways, using the following pattern methods:" msgstr "" -#: ../Doc/howto/regex.rst:1058 +#: ../Doc/howto/regex.rst:1056 msgid "``split()``" msgstr "" -#: ../Doc/howto/regex.rst:1058 +#: ../Doc/howto/regex.rst:1056 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" +"Découpe la chaîne de caractère en liste, la découpant partout où la RE " +"correspond" -#: ../Doc/howto/regex.rst:1061 +#: ../Doc/howto/regex.rst:1059 msgid "``sub()``" msgstr "" -#: ../Doc/howto/regex.rst:1061 +#: ../Doc/howto/regex.rst:1059 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" msgstr "" +"Rechercher toutes les sous-chaînes de caractères où correspond la RE et les " +"substituer par une chaîne de caractères différente " -#: ../Doc/howto/regex.rst:1064 +#: ../Doc/howto/regex.rst:1062 msgid "``subn()``" msgstr "" -#: ../Doc/howto/regex.rst:1064 +#: ../Doc/howto/regex.rst:1062 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" msgstr "" -#: ../Doc/howto/regex.rst:1071 +#: ../Doc/howto/regex.rst:1069 msgid "Splitting Strings" msgstr "" -#: ../Doc/howto/regex.rst:1073 +#: ../Doc/howto/regex.rst:1071 msgid "" "The :meth:`~re.pattern.split` method of a pattern splits a string apart " "wherever the RE matches, returning a list of the pieces. It's similar to " @@ -1542,7 +1685,7 @@ msgid "" "module-level :func:`re.split` function, too." msgstr "" -#: ../Doc/howto/regex.rst:1084 +#: ../Doc/howto/regex.rst:1082 msgid "" "Split *string* by the matches of the regular expression. If capturing " "parentheses are used in the RE, then their contents will also be returned as " @@ -1550,7 +1693,7 @@ msgid "" "splits are performed." msgstr "" -#: ../Doc/howto/regex.rst:1089 +#: ../Doc/howto/regex.rst:1087 msgid "" "You can limit the number of splits made, by passing a value for *maxsplit*. " "When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " @@ -1559,7 +1702,7 @@ msgid "" "characters. ::" msgstr "" -#: ../Doc/howto/regex.rst:1101 +#: ../Doc/howto/regex.rst:1099 msgid "" "Sometimes you're not only interested in what the text between delimiters is, " "but also need to know what the delimiter was. If capturing parentheses are " @@ -1567,17 +1710,17 @@ msgid "" "Compare the following calls::" msgstr "" -#: ../Doc/howto/regex.rst:1113 +#: ../Doc/howto/regex.rst:1111 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" msgstr "" -#: ../Doc/howto/regex.rst:1125 +#: ../Doc/howto/regex.rst:1123 msgid "Search and Replace" -msgstr "" +msgstr "Recherche et Substitution" -#: ../Doc/howto/regex.rst:1127 +#: ../Doc/howto/regex.rst:1125 msgid "" "Another common task is to find all the matches for a pattern, and replace " "them with a different string. The :meth:`~re.pattern.sub` method takes a " @@ -1585,40 +1728,40 @@ msgid "" "string to be processed." msgstr "" -#: ../Doc/howto/regex.rst:1134 +#: ../Doc/howto/regex.rst:1132 msgid "" "Returns the string obtained by replacing the leftmost non-overlapping " "occurrences of the RE in *string* by the replacement *replacement*. If the " "pattern isn't found, *string* is returned unchanged." msgstr "" -#: ../Doc/howto/regex.rst:1138 +#: ../Doc/howto/regex.rst:1136 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. The default value " "of 0 means to replace all occurrences." msgstr "" -#: ../Doc/howto/regex.rst:1142 +#: ../Doc/howto/regex.rst:1140 msgid "" "Here's a simple example of using the :meth:`~re.pattern.sub` method. It " "replaces colour names with the word ``colour``::" msgstr "" -#: ../Doc/howto/regex.rst:1151 +#: ../Doc/howto/regex.rst:1149 msgid "" "The :meth:`~re.pattern.subn` method does the same work, but returns a 2-" "tuple containing the new string value and the number of replacements that " "were performed::" msgstr "" -#: ../Doc/howto/regex.rst:1160 +#: ../Doc/howto/regex.rst:1158 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "match. ::" msgstr "" -#: ../Doc/howto/regex.rst:1167 +#: ../Doc/howto/regex.rst:1165 msgid "" "If *replacement* is a string, any backslash escapes in it are processed. " "That is, ``\\n`` is converted to a single newline character, ``\\r`` is " @@ -1629,13 +1772,13 @@ msgid "" "string." msgstr "" -#: ../Doc/howto/regex.rst:1174 +#: ../Doc/howto/regex.rst:1172 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" msgstr "" -#: ../Doc/howto/regex.rst:1181 +#: ../Doc/howto/regex.rst:1179 msgid "" "There's also a syntax for referring to named groups as defined by the ``(?" "P...)`` syntax. ``\\g`` will use the substring matched by the " @@ -1647,7 +1790,7 @@ msgid "" "but use all three variations of the replacement string. ::" msgstr "" -#: ../Doc/howto/regex.rst:1198 +#: ../Doc/howto/regex.rst:1196 msgid "" "*replacement* can also be a function, which gives you even more control. If " "*replacement* is a function, the function is called for every non-" @@ -1656,13 +1799,13 @@ msgid "" "this information to compute the desired replacement string and return it." msgstr "" -#: ../Doc/howto/regex.rst:1204 +#: ../Doc/howto/regex.rst:1202 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" msgstr "" -#: ../Doc/howto/regex.rst:1216 +#: ../Doc/howto/regex.rst:1214 msgid "" "When using the module-level :func:`re.sub` function, the pattern is passed " "as the first argument. The pattern may be provided as an object or as a " @@ -1672,11 +1815,11 @@ msgid "" "x'``." msgstr "" -#: ../Doc/howto/regex.rst:1224 +#: ../Doc/howto/regex.rst:1222 msgid "Common Problems" -msgstr "" +msgstr "Problèmes courants" -#: ../Doc/howto/regex.rst:1226 +#: ../Doc/howto/regex.rst:1224 msgid "" "Regular expressions are a powerful tool for some applications, but in some " "ways their behaviour isn't intuitive and at times they don't behave the way " @@ -1684,11 +1827,11 @@ msgid "" "pitfalls." msgstr "" -#: ../Doc/howto/regex.rst:1232 +#: ../Doc/howto/regex.rst:1230 msgid "Use String Methods" msgstr "" -#: ../Doc/howto/regex.rst:1234 +#: ../Doc/howto/regex.rst:1232 msgid "" "Sometimes using the :mod:`re` module is a mistake. If you're matching a " "fixed string, or a single character class, and you're not using any :mod:" @@ -1700,7 +1843,7 @@ msgid "" "engine." msgstr "" -#: ../Doc/howto/regex.rst:1242 +#: ../Doc/howto/regex.rst:1240 msgid "" "One example might be replacing a single fixed string with another one; for " "example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " @@ -1713,7 +1856,7 @@ msgid "" "meth:`!replace`'s abilities.)" msgstr "" -#: ../Doc/howto/regex.rst:1251 +#: ../Doc/howto/regex.rst:1249 msgid "" "Another common task is deleting every occurrence of a single character from " "a string or replacing it with another single character. You might do this " @@ -1722,17 +1865,17 @@ msgid "" "operation can be." msgstr "" -#: ../Doc/howto/regex.rst:1257 +#: ../Doc/howto/regex.rst:1255 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." msgstr "" -#: ../Doc/howto/regex.rst:1262 +#: ../Doc/howto/regex.rst:1260 msgid "match() versus search()" msgstr "" -#: ../Doc/howto/regex.rst:1264 +#: ../Doc/howto/regex.rst:1262 msgid "" "The :func:`~re.match` function only checks if the RE matches at the " "beginning of the string while :func:`~re.search` will scan forward through " @@ -1742,13 +1885,13 @@ msgid "" "report it. ::" msgstr "" -#: ../Doc/howto/regex.rst:1275 +#: ../Doc/howto/regex.rst:1273 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" msgstr "" -#: ../Doc/howto/regex.rst:1283 +#: ../Doc/howto/regex.rst:1281 msgid "" "Sometimes you'll be tempted to keep using :func:`re.match`, and just add ``." "*`` to the front of your RE. Resist this temptation and use :func:`re." @@ -1760,18 +1903,18 @@ msgid "" "starting character, only trying the full match if a ``'C'`` is found." msgstr "" -#: ../Doc/howto/regex.rst:1292 +#: ../Doc/howto/regex.rst:1290 msgid "" "Adding ``.*`` defeats this optimization, requiring scanning to the end of " "the string and then backtracking to find a match for the rest of the RE. " "Use :func:`re.search` instead." msgstr "" -#: ../Doc/howto/regex.rst:1298 +#: ../Doc/howto/regex.rst:1296 msgid "Greedy versus Non-Greedy" msgstr "" -#: ../Doc/howto/regex.rst:1300 +#: ../Doc/howto/regex.rst:1298 msgid "" "When repeating a regular expression, as in ``a*``, the resulting action is " "to consume as much of the pattern as possible. This fact often bites you " @@ -1780,7 +1923,7 @@ msgid "" "HTML tag doesn't work because of the greedy nature of ``.*``. ::" msgstr "" -#: ../Doc/howto/regex.rst:1314 +#: ../Doc/howto/regex.rst:1312 msgid "" "The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " "of the string. There's still more left in the RE, though, and the ``>`` " @@ -1790,7 +1933,7 @@ msgid "" "``''``, which isn't what you want." msgstr "" -#: ../Doc/howto/regex.rst:1321 +#: ../Doc/howto/regex.rst:1319 msgid "" "In this case, the solution is to use the non-greedy qualifiers ``*?``, ``+?" "``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " @@ -1799,7 +1942,7 @@ msgid "" "retrying the ``'>'`` at every step. This produces just the right result::" msgstr "" -#: ../Doc/howto/regex.rst:1330 +#: ../Doc/howto/regex.rst:1328 msgid "" "(Note that parsing HTML or XML with regular expressions is painful. Quick-" "and-dirty patterns will handle common cases, but HTML and XML have special " @@ -1809,11 +1952,11 @@ msgid "" "such tasks.)" msgstr "" -#: ../Doc/howto/regex.rst:1338 +#: ../Doc/howto/regex.rst:1336 msgid "Using re.VERBOSE" -msgstr "" +msgstr "Utilisez re.VERBOSE" -#: ../Doc/howto/regex.rst:1340 +#: ../Doc/howto/regex.rst:1338 msgid "" "By now you've probably noticed that regular expressions are a very compact " "notation, but they're not terribly readable. REs of moderate complexity can " @@ -1821,14 +1964,14 @@ msgid "" "making them difficult to read and understand." msgstr "" -#: ../Doc/howto/regex.rst:1345 +#: ../Doc/howto/regex.rst:1343 msgid "" "For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " "regular expression can be helpful, because it allows you to format the " "regular expression more clearly." msgstr "" -#: ../Doc/howto/regex.rst:1349 +#: ../Doc/howto/regex.rst:1347 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -1839,23 +1982,27 @@ msgid "" "quoted strings, this enables REs to be formatted more neatly::" msgstr "" -#: ../Doc/howto/regex.rst:1366 +#: ../Doc/howto/regex.rst:1364 msgid "This is far more readable than::" -msgstr "" +msgstr "Ceci est beaucoup plus lisible que::" + +#: ../Doc/howto/regex.rst:1370 +msgid "Feedback" +msgstr "Retour" #: ../Doc/howto/regex.rst:1372 -msgid "Feedback" -msgstr "" - -#: ../Doc/howto/regex.rst:1374 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " "encountered that weren't covered here? If so, please send suggestions for " "improvements to the author." msgstr "" +"Les expressions régulières sont un sujet compliqué. Est-ce que ce document " +"vous a aidé à les comprendre ? Des parties ne sont pas claires, ou des " +"problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " +"cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." -#: ../Doc/howto/regex.rst:1379 +#: ../Doc/howto/regex.rst:1377 msgid "" "The most complete book on regular expressions is almost certainly Jeffrey " "Friedl's Mastering Regular Expressions, published by O'Reilly. " @@ -1865,3 +2012,11 @@ msgid "" "edition covered Python's now-removed :mod:`!regex` module, which won't help " "you much.) Consider checking it out from your library." msgstr "" +"Le livre le plus complet sur les expressions régulières est certainement " +"Mastering Regular Expressions de Jeffrey Friedl, publié par O'Reilly. " +"Malheureusement, il se concentre sur les déclinaisons Perl et Java des " +"expressions régulières et ne contient aucun contenu pour Python; il n'est " +"donc pas utile d'en faire référence pour la programmation Python. (La " +"première édition traitée du module Python:mod:`!regex`, maintenant supprimé, " +"ce qui ne vous aidera pas beaucoup.) Pensez à le retirer de votre " +"bibliothèque." diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index c0093e1f..ec2abfcb 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-17 21:30+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 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 expressions sont utilisées (généralement de manière interactive) comme " +"instructions 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 " +"expressions sont autorisées et parfois utiles. La syntaxe pour une " +"expression en tant qu'instruction est :" #: ../Doc/reference/simple_stmts.rst:51 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." msgstr "" +"Ce genre d'instruction é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 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 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 des syntaxes de " +"*attributeref*, *subscription* et *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 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 entre 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 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 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 " +"assignations 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 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 une assignation augmentée est " +"traitée de la même manière qu'une assignation normale. 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,30 @@ 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 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 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 +499,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 +532,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 +578,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 +606,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 +620,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 +639,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 +651,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 +699,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 +710,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 +723,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 +739,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 +756,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 +781,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 +793,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 instanciant la classe sans argument (au moment voulu)." #: ../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 +814,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 +829,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 +841,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 +860,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 +888,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 +914,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 +929,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 +941,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 +976,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 +990,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 +1021,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 +1032,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 +1076,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 +1090,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 +1106,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 +1124,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 +1144,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 +1178,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 +1190,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 +1227,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 +1243,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 +1257,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 +1267,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 +1300,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 +1315,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 +1342,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 +1364,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 +1375,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 +1391,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 +1412,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 +1427,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`."