From 9b8d34364d22cceb5ade81210010668adbef1351 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Mon, 19 Nov 2018 22:44:16 +0100 Subject: [PATCH 01/26] Premier jet --- library/operator.po | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/library/operator.po b/library/operator.po index 1822ea887..b43a21ea1 100644 --- a/library/operator.po +++ b/library/operator.po @@ -56,7 +56,7 @@ msgid "" "after the rich comparison operators they support:" msgstr "" "Les fonctions de comparaison s'appliquent à tous les objets, et leur nom " -"vient des opérateurs de comparaison qu'elles implémentent :" +"vient des opérateurs de comparaison qu'elles implémentent:" #: ../Doc/library/operator.rst:45 msgid "" @@ -68,7 +68,7 @@ msgid "" "which may or may not be interpretable as a Boolean value. See :ref:" "`comparisons` for more information about rich comparisons." msgstr "" -"Effectue une « comparaison riche » entre *a* et *b*. Plus précisément, " +"Effectue une \"comparaison riche\" entre *a* et *b*. Plus précisément, " "``lt(a, b)`` équivaut à ``a < b``, ``le(a, b)`` équivaut à ``a <= b``, " "``eq(a, b)`` équivaut à ``a == b``, ``ne(a, b)`` équivaut à ``a != b``, " "``gt(a, b)`` équivaut à ``a > b`` et ``ge(a, b)`` équivaut à ``a >= b``. " @@ -117,7 +117,7 @@ msgstr "" #: ../Doc/library/operator.rst:83 msgid "The mathematical and bitwise operations are the most numerous:" -msgstr "Les opérations mathématiques ou bit à bit sont les plus nombreuses :" +msgstr "Les opérations mathématiques ou bit-à-bit sont les plus nombreuses :" #: ../Doc/library/operator.rst:89 msgid "Return the absolute value of *obj*." @@ -143,7 +143,7 @@ msgstr "Renvoie *a* converti en entier. Équivaut à ``a.__index__()``." msgid "" "Return the bitwise inverse of the number *obj*. This is equivalent to " "``~obj``." -msgstr "Renvoie l'inverse bit à bit du nombre *obj*. Équivaut à ``~obj``." +msgstr "Renvoie l'inverse bit-à-bit du nombre *obj*. Équivaut à ``~obj``." #: ../Doc/library/operator.rst:127 msgid "Return *a* shifted left by *b*." @@ -167,7 +167,7 @@ msgstr "Renvoie l'opposé de *obj* (``-obj``)." #: ../Doc/library/operator.rst:159 msgid "Return the bitwise or of *a* and *b*." -msgstr "Renvoie le *ou* bit à bit de *a* et *b*." +msgstr "Renvoie le *ou* bit-à-bit de *a* et *b*." #: ../Doc/library/operator.rst:165 msgid "Return *obj* positive (``+obj``)." @@ -781,7 +781,11 @@ msgid "``gt(a, b)``" msgstr "``gt(a, b)``" #: ../Doc/library/operator.rst:442 +<<<<<<< HEAD msgid "In-place Operators" +======= +msgid "Inplace Operators" +>>>>>>> Premier jet msgstr "Opérateurs en-place" #: ../Doc/library/operator.rst:444 @@ -793,9 +797,15 @@ msgid "" "operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " "y``." msgstr "" +<<<<<<< HEAD "Beaucoup d'opération ont une version travaillant « en-place ». Les fonctions " "listées ci-dessous fournissent un accès plus direct aux opérateurs en-place " "que la syntaxe Python habituelle ; par exemple, l'expression :term:" +======= +"Beaucoup d'opération ont une version travaillant \"en-place\". Les fonctions " +"listées ci-dessous fournissent un accès plus direct aux opérateurs \"en-place" +"\" que la syntaxe Python habituelle; par exemple, l'expression :term:" +>>>>>>> Premier jet "`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " "dit, l'expression ``z = operator.iadd(x, y)`` équivaut à l'expression " "composée ``z = x; z += y``." @@ -807,11 +817,19 @@ msgid "" "place functions listed below only do the first step, calling the in-place " "method. The second step, assignment, is not handled." msgstr "" +<<<<<<< HEAD "Dans ces exemples, notez que lorsqu'une méthode en-place est appelée, le " "calcul et l'affectation sont effectués en deux étapes distinctes. Les " "fonctions en-place de la liste ci-dessous ne font que la première, en " "appelant la méthode en-place. La seconde étape, l'affectation, n'est pas " "effectuée." +======= +"Dans ces exemples, notez que lorsqu'une méthode \"en-place\" est appelée, le " +"calcul et l'affectation sont effectués en deux étapes distinctes. Les " +"fonctions *inplace* de la liste ci-dessous ne font que la première, en " +"appelant la méthode \"en-place\". La deuxième étape, l'affectation, n'est " +"pas effectuée." +>>>>>>> Premier jet #: ../Doc/library/operator.rst:456 msgid "" @@ -828,8 +846,13 @@ msgid "" "perform the update, so no subsequent assignment is necessary:" msgstr "" "Pour des paramètres mutables comme les listes et les dictionnaires, la " +<<<<<<< HEAD "méthode en-place modifiera la valeur, aucune affectation ultérieure n'est " "nécessaire :" +======= +"méthode travaillant en place modifiera la valeur, aucune affectation " +"ultérieure n'est nécessaire:" +>>>>>>> Premier jet #: ../Doc/library/operator.rst:477 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." From cbe87f6c13a398d21a106e0e50226c96c185c730 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Tue, 27 Nov 2018 13:58:22 +0100 Subject: [PATCH 02/26] ok --- library/operator.po | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/library/operator.po b/library/operator.po index b43a21ea1..c3717a1d3 100644 --- a/library/operator.po +++ b/library/operator.po @@ -68,7 +68,7 @@ msgid "" "which may or may not be interpretable as a Boolean value. See :ref:" "`comparisons` for more information about rich comparisons." msgstr "" -"Effectue une \"comparaison riche\" entre *a* et *b*. Plus précisément, " +"Effectue une « comparaison riche » entre *a* et *b*. Plus précisément, " "``lt(a, b)`` équivaut à ``a < b``, ``le(a, b)`` équivaut à ``a <= b``, " "``eq(a, b)`` équivaut à ``a == b``, ``ne(a, b)`` équivaut à ``a != b``, " "``gt(a, b)`` équivaut à ``a > b`` et ``ge(a, b)`` équivaut à ``a >= b``. " @@ -117,7 +117,7 @@ msgstr "" #: ../Doc/library/operator.rst:83 msgid "The mathematical and bitwise operations are the most numerous:" -msgstr "Les opérations mathématiques ou bit-à-bit sont les plus nombreuses :" +msgstr "Les opérations mathématiques ou bit à bit sont les plus nombreuses :" #: ../Doc/library/operator.rst:89 msgid "Return the absolute value of *obj*." @@ -143,7 +143,7 @@ msgstr "Renvoie *a* converti en entier. Équivaut à ``a.__index__()``." msgid "" "Return the bitwise inverse of the number *obj*. This is equivalent to " "``~obj``." -msgstr "Renvoie l'inverse bit-à-bit du nombre *obj*. Équivaut à ``~obj``." +msgstr "Renvoie l'inverse bit à bit du nombre *obj*. Équivaut à ``~obj``." #: ../Doc/library/operator.rst:127 msgid "Return *a* shifted left by *b*." @@ -167,7 +167,7 @@ msgstr "Renvoie l'opposé de *obj* (``-obj``)." #: ../Doc/library/operator.rst:159 msgid "Return the bitwise or of *a* and *b*." -msgstr "Renvoie le *ou* bit-à-bit de *a* et *b*." +msgstr "Renvoie le *ou* bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:165 msgid "Return *obj* positive (``+obj``)." @@ -781,11 +781,7 @@ msgid "``gt(a, b)``" msgstr "``gt(a, b)``" #: ../Doc/library/operator.rst:442 -<<<<<<< HEAD msgid "In-place Operators" -======= -msgid "Inplace Operators" ->>>>>>> Premier jet msgstr "Opérateurs en-place" #: ../Doc/library/operator.rst:444 @@ -797,15 +793,9 @@ msgid "" "operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " "y``." msgstr "" -<<<<<<< HEAD -"Beaucoup d'opération ont une version travaillant « en-place ». Les fonctions " +"Beaucoup d'opérations ont une version travaillant « en-place ». Les fonctions " "listées ci-dessous fournissent un accès plus direct aux opérateurs en-place " "que la syntaxe Python habituelle ; par exemple, l'expression :term:" -======= -"Beaucoup d'opération ont une version travaillant \"en-place\". Les fonctions " -"listées ci-dessous fournissent un accès plus direct aux opérateurs \"en-place" -"\" que la syntaxe Python habituelle; par exemple, l'expression :term:" ->>>>>>> Premier jet "`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " "dit, l'expression ``z = operator.iadd(x, y)`` équivaut à l'expression " "composée ``z = x; z += y``." @@ -817,19 +807,11 @@ msgid "" "place functions listed below only do the first step, calling the in-place " "method. The second step, assignment, is not handled." msgstr "" -<<<<<<< HEAD "Dans ces exemples, notez que lorsqu'une méthode en-place est appelée, le " "calcul et l'affectation sont effectués en deux étapes distinctes. Les " "fonctions en-place de la liste ci-dessous ne font que la première, en " "appelant la méthode en-place. La seconde étape, l'affectation, n'est pas " "effectuée." -======= -"Dans ces exemples, notez que lorsqu'une méthode \"en-place\" est appelée, le " -"calcul et l'affectation sont effectués en deux étapes distinctes. Les " -"fonctions *inplace* de la liste ci-dessous ne font que la première, en " -"appelant la méthode \"en-place\". La deuxième étape, l'affectation, n'est " -"pas effectuée." ->>>>>>> Premier jet #: ../Doc/library/operator.rst:456 msgid "" @@ -846,13 +828,8 @@ msgid "" "perform the update, so no subsequent assignment is necessary:" msgstr "" "Pour des paramètres mutables comme les listes et les dictionnaires, la " -<<<<<<< HEAD -"méthode en-place modifiera la valeur, aucune affectation ultérieure n'est " -"nécessaire :" -======= "méthode travaillant en place modifiera la valeur, aucune affectation " "ultérieure n'est nécessaire:" ->>>>>>> Premier jet #: ../Doc/library/operator.rst:477 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." From 82d72898420682eedf5a6b20f60508daca9c4e5b Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 21 Mar 2019 21:40:59 +0100 Subject: [PATCH 03/26] premier jet --- faq/programming.po | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 6909f0645..83d183eb6 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -5,19 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-10 09:35+0200\n" -"PO-Revision-Date: 2019-04-24 11:30+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-03-21 21:35+0100\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/faq/programming.rst:5 msgid "Programming FAQ" -msgstr "" +msgstr "FAQ de programmation" #: ../Doc/faq/programming.rst:8 msgid "Contents" @@ -25,7 +25,7 @@ msgstr "Sommaire" #: ../Doc/faq/programming.rst:12 msgid "General Questions" -msgstr "" +msgstr "Questions générales" #: ../Doc/faq/programming.rst:15 msgid "" @@ -194,11 +194,13 @@ msgstr "" #: ../Doc/faq/programming.rst:119 msgid "Core Language" -msgstr "" +msgstr "Fondamentaux" #: ../Doc/faq/programming.rst:122 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" +"Pourquoi obtiens-je une UnboundLocalError alors qu'une variable a une " +"valeur ?" #: ../Doc/faq/programming.rst:124 msgid "" @@ -206,18 +208,21 @@ msgid "" "when it is modified by adding an assignment statement somewhere in the body " "of a function." msgstr "" +"Il est parfois surprenant d'avoir une UnboundLocalError dans du code correct " +"jusqu'à présent, quand celui-ci est modifié en ajoutant une instruction " +"d'affectation quelque part dans le corps d'une fonction." #: ../Doc/faq/programming.rst:128 msgid "This code:" -msgstr "" +msgstr "Le code suivant :" #: ../Doc/faq/programming.rst:136 msgid "works, but this code:" -msgstr "" +msgstr "fonctionne, mais le suivant :" #: ../Doc/faq/programming.rst:143 msgid "results in an UnboundLocalError:" -msgstr "" +msgstr "lève une UnboundLocalError :" #: ../Doc/faq/programming.rst:150 msgid "" @@ -228,12 +233,20 @@ msgid "" "Consequently when the earlier ``print(x)`` attempts to print the " "uninitialized local variable and an error results." msgstr "" +"Ceci s'explique par le fait que quand une variable est affectée dans un " +"contexte, cette variable devient locale à ce contexte et remplace toute " +"variable du même nom du contexte appelant. Vu que la dernière instruction " +"dans foo affecte une nouvelle valeur à ``x``, le compilateur la traite comme " +"une nouvelle variable. Par conséquent, quand le ``print(x)`` essaye " +"d'afficher la variable non initialisée, une erreur se produit." #: ../Doc/faq/programming.rst:157 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" msgstr "" +"Dans l'exemple ci-dessus, la variable du contexte appelant est accessible en " +"la déclarant globale :" #: ../Doc/faq/programming.rst:168 msgid "" From 577afdb06b74543924261ad68bf5359c58bead2d Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 21 Mar 2019 22:25:34 +0100 Subject: [PATCH 04/26] hello --- faq/programming.po | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/faq/programming.po b/faq/programming.po index 83d183eb6..013be6168 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-03-21 21:35+0100\n" +"PO-Revision-Date: 2019-03-21 22:22+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -254,16 +254,23 @@ msgid "" "the superficially analogous situation with class and instance variables) you " "are actually modifying the value of the variable in the outer scope:" msgstr "" +"Cette déclaration explicite est obligatoire pour se rappeler que " +"(contrairement au cas à peu près similaire avec des variables de classe et " +"d'instance), c'est la valeur de la variable du contexte appelant qui est " +"modifiée :" #: ../Doc/faq/programming.rst:175 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" msgstr "" +"Une alternative avec un contexte imbriqué est d'utiliser le mot-clé :keyword:" +"`nonlocal` :" #: ../Doc/faq/programming.rst:192 msgid "What are the rules for local and global variables in Python?" msgstr "" +"Quelles sont les règles pour les variables locales et globales en Python ?" #: ../Doc/faq/programming.rst:194 msgid "" From 043485759b4fe63d1af5cecfc9d7f9c3b215868a Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 21 Mar 2019 22:38:11 +0100 Subject: [PATCH 05/26] darkness --- faq/programming.po | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/faq/programming.po b/faq/programming.po index 013be6168..e2b949ee3 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-03-21 22:22+0100\n" +"PO-Revision-Date: 2019-03-21 22:35+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -279,6 +279,10 @@ msgid "" "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" +"En Python, les variables qui ne sont référencées que dans une fonction sont " +"considérées comme globales. Si une affectation de variable est effectuée " +"dans le corps d'une fonction, cette variable sera locale, sauf si elle est " +"déclarée explicitement comme globale." #: ../Doc/faq/programming.rst:198 msgid "" From 2d66c773cc75321ca7cf470ee9186fbd4396175e Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Wed, 27 Mar 2019 09:10:19 +0100 Subject: [PATCH 06/26] continuation --- faq/programming.po | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index e2b949ee3..3cf1d89c6 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-03-21 22:35+0100\n" +"PO-Revision-Date: 2019-03-21 22:58+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -199,8 +199,7 @@ msgstr "Fondamentaux" #: ../Doc/faq/programming.rst:122 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" -"Pourquoi obtiens-je une UnboundLocalError alors qu'une variable a une " -"valeur ?" +"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" #: ../Doc/faq/programming.rst:124 msgid "" @@ -285,6 +284,7 @@ msgstr "" "déclarée explicitement comme globale." #: ../Doc/faq/programming.rst:198 +#, fuzzy msgid "" "Though a bit surprising at first, a moment's consideration explains this. " "On one hand, requiring :keyword:`global` for assigned variables provides a " @@ -294,6 +294,11 @@ msgid "" "a component of an imported module. This clutter would defeat the usefulness " "of the ``global`` declaration for identifying side-effects." msgstr "" +"Bien que surprenant au premier abord, ce mécanisme s'explique facilement. " +"D'un côté, exiger :keyword:`global` pour des variables affectées est une " +"protection contre les effets de bord non-attendus. D'un autre côté, si " +"``global`` était obligatoire pour toutes les références globales, il " +"faudrait mettre ``global`` partout. Il faudrait déclarer" #: ../Doc/faq/programming.rst:208 msgid "" @@ -728,7 +733,7 @@ msgstr "Ou en utilisant un objet appelable : ::" #: ../Doc/faq/programming.rst:594 msgid "In both cases, ::" -msgstr "dans les deux cas, ::" +msgstr "Dans les deux cas, ::" #: ../Doc/faq/programming.rst:598 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." @@ -1013,7 +1018,7 @@ msgid "" "identity to hold, and then compilers that truncate ``i // j`` need to make " "``i % j`` have the same sign as ``i``." msgstr "" -"Alors la division entière doit renvoyer l'entier inférieur. Le C demande " +"alors la division entière doit renvoyer l'entier inférieur. Le C demande " "aussi à ce que cette égalité soit vérifiée, et donc les compilateur qui " "tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." From fafde9649952f6288b2fed3d7fb5691a5cf8a50d Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Fri, 19 Apr 2019 18:12:36 +0200 Subject: [PATCH 07/26] II --- faq/programming.po | 462 +++++++++++++++++++++++++++++++-------------- 1 file changed, 323 insertions(+), 139 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 3cf1d89c6..a74284b7c 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-03-21 22:58+0100\n" +"PO-Revision-Date: 2019-04-19 18:11+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -305,12 +305,16 @@ msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" msgstr "" +"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " +"différentes retournent-elles le même résultat ?" #: ../Doc/faq/programming.rst:210 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" msgstr "" +"Supposons que l'on utilise une boucle itérative pour définir des expressions " +"lambda (voire même des fonctions) différentes, e.g :" #: ../Doc/faq/programming.rst:217 msgid "" @@ -319,6 +323,9 @@ msgid "" "``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " "see that they all return ``16``::" msgstr "" +"Le code précédent créé une liste de 5 expressions lambda qui calculent " +"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité ``16`` :" #: ../Doc/faq/programming.rst:227 msgid "" @@ -328,12 +335,21 @@ msgid "" "the functions now return ``4**2``, i.e. ``16``. You can also verify this by " "changing the value of ``x`` and see how the results of the lambdas change::" msgstr "" +"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " +"expressions, mais est définie dans le contexte appelant. Elle est lue à " +"l'appel de l'expression lambda – et non au moment où cette expression est " +"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " +"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en voyant comment les résultats sont modifiés :" #: ../Doc/faq/programming.rst:237 msgid "" "In order to avoid this, you need to save the values in variables local to " "the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" +"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " +"variables locales aux expressions lambda pour que celles-ci ne se basent " +"plus sur la variable globale ``x`` :" #: ../Doc/faq/programming.rst:244 msgid "" @@ -343,16 +359,24 @@ msgid "" "the first lambda, ``1`` in the second, ``2`` in the third, and so on. " "Therefore each lambda will now return the correct result::" msgstr "" +"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à " +"l'expression. Cette variable est évaluée quand l'expression est définie donc " +"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` sera donc " +"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " +"troisième et ainsi de suite. Chaque expression lambda renverra donc le " +"résultat correct :" #: ../Doc/faq/programming.rst:255 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." msgstr "" +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " +"aussi aux fonctions normales." #: ../Doc/faq/programming.rst:260 msgid "How do I share global variables across modules?" -msgstr "" +msgstr "Comment partager des variables globales entre modules ?" #: ../Doc/faq/programming.rst:262 msgid "" @@ -363,28 +387,37 @@ msgid "" "each module, any changes made to the module object get reflected " "everywhere. For example:" msgstr "" +"La manière standard de partager des informations entre modules d'un même " +"programme est de créer un module spécial (souvent appelé config ou cfg) et " +"de l'importer dans tous les modules de l'application ; le module devient " +"accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " +"chaque module, tout changement dans l'instance est propagé partout. Par " +"exemple :" #: ../Doc/faq/programming.rst:268 msgid "config.py::" -msgstr "" +msgstr "config.py :" #: ../Doc/faq/programming.rst:272 msgid "mod.py::" -msgstr "" +msgstr "mod.py :" #: ../Doc/faq/programming.rst:277 msgid "main.py::" -msgstr "" +msgstr "main.py :" #: ../Doc/faq/programming.rst:283 msgid "" "Note that using a module is also the basis for implementing the Singleton " "design pattern, for the same reason." msgstr "" +"Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " +"l'implémentation du patron Singleton." #: ../Doc/faq/programming.rst:288 msgid "What are the \"best practices\" for using import in a module?" msgstr "" +"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" #: ../Doc/faq/programming.rst:290 msgid "" @@ -392,6 +425,9 @@ msgid "" "importer's namespace, and makes it much harder for linters to detect " "undefined names." msgstr "" +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " +"encombre l'espace de noms de l'importateur et rend la détection de noms non-" +"définis beaucoup plus ardue aux analyseurs de code." #: ../Doc/faq/programming.rst:294 msgid "" @@ -400,30 +436,42 @@ msgid "" "is in scope. Using one import per line makes it easy to add and delete " "module imports, but using multiple imports per line uses less screen space." msgstr "" +"Les modules doivent être importés en haut d'un fichier. Ceci pour dire " +"afficher clairement les autres modules dont le code à besoin et éviter de se " +"demander si le module est dans le contexte. Faire un seul import par ligne " +"rend l'ajout et la suppression d'un import de module plus aisé, mais " +"importer plusieurs modules sur une même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:299 msgid "It's good practice if you import modules in the following order:" -msgstr "" +msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" #: ../Doc/faq/programming.rst:301 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" +"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, " +"``re``" #: ../Doc/faq/programming.rst:302 msgid "" "third-party library modules (anything installed in Python's site-packages " "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" +"les modules externes (tout ce qui est installé dans le dossier *site-" +"packages* de Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." #: ../Doc/faq/programming.rst:304 msgid "locally-developed modules" -msgstr "" +msgstr "les modules développés en local" #: ../Doc/faq/programming.rst:306 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" msgstr "" +"Il est parfois nécessaire de déplacer des imports dans une fonction ou une " +"classe pour éviter les problèmes d'imports circulaires. Comme le dit Gordon " +"McMillan :" #: ../Doc/faq/programming.rst:309 msgid "" @@ -433,6 +481,12 @@ msgid "" "That's because names in the 1st are not yet available, because the first " "module is busy importing the 2nd." msgstr "" +"Il n'y a pas de problème avec les imports circulaires tant que les deux " +"modules utilisent la forme \"import \" . Ça pose problème si le " +"second module cherche à récupérer un nom du premier module (\"from module " +"import name\") et que l'import est dans l'espace de noms du fichier. Les " +"noms du premier module ne sont en effet pas encore disponibles car le " +"premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:315 msgid "" @@ -441,6 +495,10 @@ msgid "" "called, the first module will have finished initializing, and the second " "module can do its import." msgstr "" +"Dans ce cas, si le second module n'est utilisé que dans une fonction, " +"l'import peut facilement être déplacé dans cette fonction. Au moment où " +"l'import sera appelé , le premier module aura fini de s'initialiser et le " +"second pourra faire son import." #: ../Doc/faq/programming.rst:320 msgid "" @@ -450,6 +508,11 @@ msgid "" "importing the correct modules in the corresponding platform-specific code is " "a good option." msgstr "" +"Il peut parfois être nécessaire de bouger des imports de modules hors de " +"l'espace de noms du module si ces modules dépendent de la machine. Dans ce " +"cas de figure, il est parfois impossible d'importer tous les modules au " +"début du fichier. Dans ce cas, faire l'import des bons modules dans le code " +"correspondant est une bonne façon de faire." #: ../Doc/faq/programming.rst:325 msgid "" @@ -464,16 +527,30 @@ msgid "" "only a couple of dictionary lookups. Even if the module name has gone out " "of scope, the module is probably available in :data:`sys.modules`." msgstr "" +"Les imports ne devraient être déplacés dans un espace local, comme dans la " +"définition d'une fonction, que si cela est nécessaire pour résoudre un " +"problème tel qu'éviter des dépendances circulaires ou réduire le temps " +"d'initialisation d'un module. Cette technique est particulièrement utile si " +"la majorité des imports est superflue selon le flux d'exécution du " +"programme. Il est également pertinent de déplacer des imports dans une " +"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe " +"d'initialisation d'un module, mais charger un module plusieurs fois est " +"virtuellement gratuit, cela ne coûte que quelques recherches dans un " +"dictionnaire. Même si le nom du module est sorti du contexte, le module est " +"probablement disponible dans :data:`sys.modules`." #: ../Doc/faq/programming.rst:338 msgid "Why are default values shared between objects?" -msgstr "" +msgstr "Pourquoi les arguments par défaut sont partagés entre les objets ?" #: ../Doc/faq/programming.rst:340 msgid "" "This type of bug commonly bites neophyte programmers. Consider this " "function::" msgstr "" +"C'est un problème que rencontrent souvent le programmeurs néophytes. " +"Examinons la fonction suivante ::" #: ../Doc/faq/programming.rst:347 msgid "" @@ -481,6 +558,9 @@ msgid "" "The second time, ``mydict`` contains two items because when ``foo()`` begins " "executing, ``mydict`` starts out with an item already in it." msgstr "" +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " +"élément. Au deuxième appel, ``mydict`` contient deux éléments car quand " +"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." #: ../Doc/faq/programming.rst:351 msgid "" @@ -490,6 +570,11 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" +"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"objets pour les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " +"défaut ne sont créées une et une seule fois, au moment où la fonction est " +"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " +"appels suivants à cette fonction font référence à l'objet ainsi modifié." #: ../Doc/faq/programming.rst:356 msgid "" @@ -497,6 +582,10 @@ msgid "" "``None``, are safe from change. Changes to mutable objects such as " "dictionaries, lists, and class instances can lead to confusion." msgstr "" +"Par définition, les objets immuables comme les nombres, les chaînes de " +"caractères, les tuples et ``None`` ne sont pas modifiés. Les changements sur " +"des objets muables comme les dictionnaires, les listes et les instances de " +"classe peuvent porter à confusion." #: ../Doc/faq/programming.rst:360 msgid "" @@ -505,10 +594,15 @@ msgid "" "inside the function, check if the parameter is ``None`` and create a new " "list/dictionary/whatever if it is. For example, don't write::" msgstr "" +"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"muables pour . Il vaut mieux utiliser ``None`` comme valeur par défaut à " +"l'intérieur de la fonction, vérifier si le paramètre est à ``None`` et créer " +"une nouvelle liste/dictionnaire/autre le cas échéant. Par exemple, il ne " +"faut pas écrire ::" #: ../Doc/faq/programming.rst:368 msgid "but::" -msgstr "" +msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:374 msgid "" @@ -518,17 +612,25 @@ msgid "" "value is requested again. This is called \"memoizing\", and can be " "implemented like this::" msgstr "" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " +"paramètres et la valeur de retour de chacun des appels d'une fonction " +"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " +"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " +"s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:389 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." msgstr "" +"Il est possible d'utiliser une variable globale contenant un dictionnaire à " +"la place de la valeur par défaut ; ce n'est qu'une question de goût." #: ../Doc/faq/programming.rst:394 msgid "" "How can I pass optional or keyword parameters from one function to another?" msgstr "" +"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" #: ../Doc/faq/programming.rst:396 msgid "" @@ -537,10 +639,15 @@ msgid "" "tuple and the keyword arguments as a dictionary. You can then pass these " "arguments when calling another function by using ``*`` and ``**``::" msgstr "" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " +"dans la liste des paramètres de la fonction ; ceci donne les arguments " +"positionnels sous la forme d'un tuple et les arguments nommés sous forme de " +"dictionnaire. Ces arguments peuvent être passés à une autre fonction en " +"utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:415 msgid "What is the difference between arguments and parameters?" -msgstr "" +msgstr "Quelle est la différence entre les arguments et les paramètres ?" #: ../Doc/faq/programming.rst:417 msgid "" @@ -550,20 +657,27 @@ msgid "" "of arguments a function can accept. For example, given the function " "definition::" msgstr "" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une " +"définition de fonction, alors que les :term:`arguments ` sont les " +"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" +"ci. Les paramètres définissent les types d'argument qu'une fonction accepte. " +"Ainsi, avec la définition de fonction suivante ::" #: ../Doc/faq/programming.rst:425 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" +"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " +"``func`` avec, par exemple ::" #: ../Doc/faq/programming.rst:430 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." -msgstr "" +msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." #: ../Doc/faq/programming.rst:434 msgid "Why did changing list 'y' also change list 'x'?" -msgstr "" +msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" #: ../Doc/faq/programming.rst:436 msgid "If you wrote code like::" @@ -573,10 +687,12 @@ msgstr "Si vous avez écrit du code comme : ::" msgid "" "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" +"vous vous demandez peut-être pourquoi ajouter un élément à ``y`` a aussi " +"changé ``x``." #: ../Doc/faq/programming.rst:448 msgid "There are two factors that produce this result:" -msgstr "" +msgstr "Il y a deux raisons qui conduisent à ce comportement :" #: ../Doc/faq/programming.rst:450 msgid "" @@ -585,11 +701,17 @@ msgid "" "the same object ``x`` refers to. This means that there is only one object " "(the list), and both ``x`` and ``y`` refer to it." msgstr "" +"Les variable ne sont que des noms qui font référence à des objets. La ligne " +"``y = x`` ne crée pas une copie de la liste -- elle crée une nouvelle " +"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " +"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." #: ../Doc/faq/programming.rst:454 msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " +"être modifié." #: ../Doc/faq/programming.rst:456 msgid "" @@ -597,10 +719,14 @@ msgid "" "has changed from ``[]`` to ``[10]``. Since both the variables refer to the " "same object, using either name accesses the modified value ``[10]``." msgstr "" +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " +"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " +"des noms." #: ../Doc/faq/programming.rst:460 msgid "If we instead assign an immutable object to ``x``::" -msgstr "" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:470 msgid "" @@ -612,6 +738,14 @@ msgid "" "objects (the ints ``6`` and ``5``) and two variables that refer to them " "(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." msgstr "" +"on observe que ``x`` et ``y``ne sont ici plus égales. Les entiers sont des :" +"term:`immuables`, et ``x = x + 1`` ne change pas l'entier ``5`` en " +"incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " +"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " +"référence ``x``). Après cette affectation on a deux objets (les entiers " +"``6`` et ``5``) et deux variables auxquelles qui font référence à ces deux " +"objets (``x`` fait désormais référence à ``6`` mais ``y`` fait toujours " +"référence à ``5`)." #: ../Doc/faq/programming.rst:478 msgid "" @@ -624,6 +758,14 @@ msgid "" "copy of ``y``, you'll instead end up with ``None``, which will likely cause " "your program to generate an easily diagnosed error." msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " +"modifient l'objet, alors que des opérations identiques en apparence (par " +"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " +"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " +"même systématique dans la bibliothèque standard) pour éviter la confusion " +"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " +"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " +"le programme à générer une erreur facile à diagnostiquer." #: ../Doc/faq/programming.rst:487 msgid "" @@ -634,10 +776,16 @@ msgid "" "mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " "1`` create new objects)." msgstr "" +"Il existe cependant une classe d'opérations qui se comporte différemment " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" +"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " +"alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " +"nouveaux objets)." #: ../Doc/faq/programming.rst:494 msgid "In other words:" -msgstr "" +msgstr "En d'autres termes :" #: ../Doc/faq/programming.rst:496 msgid "" @@ -645,6 +793,9 @@ msgid "" "etc.), we can use some specific operations to mutate it and all the " "variables that refer to it will see the change." msgstr "" +"Sur un objet muable (:class:`list`, :class:`dict`, :class:`set` etc), il est " +"possible d'appliquer des opérations qui modifient cet objet et toutes les " +"variables qui y font référence verront le changement." #: ../Doc/faq/programming.rst:499 msgid "" @@ -653,16 +804,24 @@ msgid "" "but operations that transform that value into a new value always return a " "new object." msgstr "" +"Sur un objet immuable (:class:`str`, :class:`int`, :class:`tuple` etc), " +"toutes les variables qui y font référence renvoient la même valeur, mais les " +"opérations qui transforment cette valeur en une nouvelle valeur renvoient " +"toujours un nouvel objet." #: ../Doc/faq/programming.rst:504 msgid "" "If you want to know if two variables refer to the same object or not, you " "can use the :keyword:`is` operator, or the built-in function :func:`id`." msgstr "" +"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " +"savoir si deux variables font référence au même objet." #: ../Doc/faq/programming.rst:509 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" +"Comment écrire une fonction qui modifie ses paramètres ? (passage par " +"référence)" #: ../Doc/faq/programming.rst:511 msgid "" @@ -671,21 +830,26 @@ msgid "" "argument name in the caller and callee, and so no call-by-reference per se. " "You can achieve the desired effect in a number of ways." msgstr "" +"En Python, les arguments sont passés par copie. Vu qu'une copie créé des " +"références à des objets, il n'y pas de lien entre un argument dans l'appel " +"de la fonction et sa définition, et donc pas de passage par référence en " +"soi. Il y a cependant plusieurs façon d'en émuler un." #: ../Doc/faq/programming.rst:516 msgid "By returning a tuple of the results::" -msgstr "" +msgstr "En renvoyant un n-uplet de résultats ::" #: ../Doc/faq/programming.rst:527 msgid "This is almost always the clearest solution." -msgstr "" +msgstr "C'est presque toujours la meilleure solution." #: ../Doc/faq/programming.rst:529 msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" -"En utilisant des variables globales. Ce qui n'est pas *thread-safe*, et " -"n'est donc pas recommandé." +"En utilisant des variables globales. Cette approche ne fonctionne pas dans " +"des contextes à plusieurs fils d'exécution (pas *thread-safe*), et n'est " +"donc pas recommandée." #: ../Doc/faq/programming.rst:531 msgid "By passing a mutable (changeable in-place) object::" @@ -701,14 +865,12 @@ msgstr "Ou regrouper les valeurs dans une instance de classe ::" #: ../Doc/faq/programming.rst:567 msgid "There's almost never a good reason to get this complicated." -msgstr "" -"Il n'y a pratiquement jamais de bonne raison de faire quelque chose d'aussi " -"compliqué." +msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." #: ../Doc/faq/programming.rst:569 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"Votre meilleure option est de renvoyer un *tuple* contenant les multiples " +"Votre meilleure option est de renvoyer un n-uplet contenant les différents " "résultats." #: ../Doc/faq/programming.rst:573 @@ -722,8 +884,8 @@ msgid "" "returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " "scopes::" msgstr "" -"Vous avez deux choix : vous pouvez utiliser les portées imbriquées ou vous " -"pouvez utiliser des objets appelables. Par exemple, supposons que vous " +"Vous avez deux possibilités : vous pouvez utiliser les portées imbriquées ou " +"vous pouvez utiliser des objets appelables. Par exemple, supposons que vous " "vouliez définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui " "calcule la valeur ``a*x+b``. En utilisant les portées imbriquées : ::" @@ -771,16 +933,15 @@ msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy` pour le cas " -"général. Tout les objets ne peuvent pas être copiés, mais la plupart le " -"peuvent." +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les " +"objets ne peuvent pas être copiés, mais la plupart le peuvent." #: ../Doc/faq/programming.rst:637 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" msgstr "" -"Certains objets peuvent être copiés plus facilement. Les Dictionnaires ont " +"Certains objets peuvent être copiés plus facilement. Les dictionnaires ont " "une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:642 @@ -789,7 +950,7 @@ msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:648 msgid "How can I find the methods or attributes of an object?" -msgstr "Comment puis-je trouver les méthodes ou les attribues d'un objet?" +msgstr "Comment trouver les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:650 msgid "" @@ -803,7 +964,7 @@ msgstr "" #: ../Doc/faq/programming.rst:656 msgid "How can my code discover the name of an object?" -msgstr "Comment mon code peut il découvrir le nom d'un objet?" +msgstr "Comment un code peut-il obtenir le nom d'un objet ?" #: ../Doc/faq/programming.rst:658 msgid "" @@ -812,11 +973,11 @@ msgid "" "``def`` and ``class`` statements, but in that case the value is a callable. " "Consider the following code::" msgstr "" -"De façon générale, il ne peut pas, par ce que les objets n'ont pas " -"réellement de noms. Essentiellement, l'assignation attache un nom à une " -"valeur; C'est vrai aussi pour les instructions ``def`` et ``class``, à la " -"différence que dans ce cas la valeur est appelable. Par exemple, dans le " -"code suivant : ::" +"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " +"parler. Schématiquement, l'affectation fait correspondre un nom à une " +"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, sa " +"que, dans ce cas, la valeur est appelable. Par exemple, dans le code " +"suivant : ::" #: ../Doc/faq/programming.rst:674 msgid "" @@ -825,10 +986,10 @@ msgid "" "instance of class A. However, it is impossible to say whether the " "instance's name is a or b, since both names are bound to the same value." msgstr "" -"Le fait que la classe ait un nom est discutable, bien qu'elles soit liée à " -"deux noms, et qu'elle soit appelée via le nom B, l'instance crée déclare " -"tout de même être une instance de la classe A. De même Il est impossible de " -"dire si le nom de l'instance est a ou b, les deux noms sont attachés à la " +"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à " +"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " +"tout de même être une instance de la classe A. De même, Il est impossible de " +"dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " "même valeur." #: ../Doc/faq/programming.rst:679 @@ -838,10 +999,10 @@ msgid "" "introspective programs, this is usually an indication that a change of " "approach might be beneficial." msgstr "" -"De façon général, il ne devrait pas être nécessaire pour votre application " -"de \"connaître le nom\" d'une valeur particulière. À moins que vous soyez " -"délibérément en train d'écrire un programme introspectif, c'est souvent une " -"indication qu'un changement d'approche pourrait être bénéfique." +"De façon générale, une application ne devrait pas avoir besoin de « " +"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " +"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " +"changement d'approche serait bénéfique." #: ../Doc/faq/programming.rst:684 msgid "" @@ -849,7 +1010,7 @@ msgid "" "to this question:" msgstr "" "Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " -"analogie pour répondre à cette question:" +"analogie pour répondre à cette question :" #: ../Doc/faq/programming.rst:687 msgid "" @@ -858,8 +1019,8 @@ msgid "" "so the only way to find out what it's called is to ask all your neighbours " "(namespaces) if it's their cat (object)..." msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte : Le " -"chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu " +"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " +"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " "-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " "tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." @@ -868,8 +1029,8 @@ msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connus sous plusieurs " -"noms différents, ou pas de nom du tout!" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " +"noms différents, ou pas de nom du tout !" #: ../Doc/faq/programming.rst:697 msgid "What's up with the comma operator's precedence?" @@ -878,7 +1039,7 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:699 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" -"La virgule n'est pas un opérateur en Python. Observez la session suivante ::" +"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" #: ../Doc/faq/programming.rst:704 msgid "" @@ -886,8 +1047,8 @@ msgid "" "above is evaluated as if you had entered::" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " -"expression, l'expression ci dessus, est évaluée de la même façon que si vous " -"aviez écrit ::" +"expressions, l'expression ci-dessus, est évaluée de la même façon que si " +"vous aviez écrit ::" #: ../Doc/faq/programming.rst:709 msgid "not::" @@ -899,9 +1060,9 @@ msgid "" "They are not truly operators but syntactic delimiters in assignment " "statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignations (``=``, ``+=`` etc). " -"Ce ne sont pas vraiment des opérateurs mais des délimiteurs syntaxiques dans " -"les instructions d'assignation." +"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce " +"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " +"dans les instructions d'assignation." #: ../Doc/faq/programming.rst:718 msgid "Is there an equivalent of C's \"?:\" ternary operator?" @@ -909,13 +1070,15 @@ msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?" #: ../Doc/faq/programming.rst:720 msgid "Yes, there is. The syntax is as follows::" -msgstr "Oui, il y en a un. Sa syntaxe est la suivante : ::" +msgstr "Oui. Sa syntaxe est la suivante : ::" #: ../Doc/faq/programming.rst:727 msgid "" "Before this syntax was introduced in Python 2.5, a common idiom was to use " "logical operators::" msgstr "" +"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " +"d'utiliser les opérateurs de logique ::" #: ../Doc/faq/programming.rst:732 msgid "" @@ -923,6 +1086,9 @@ msgid "" "has a false boolean value. Therefore, it is always better to use the ``... " "if ... else ...`` form." msgstr "" +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à " +"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " +"if ... else ...``." #: ../Doc/faq/programming.rst:738 msgid "Is it possible to write obfuscated one-liners in Python?" @@ -931,17 +1097,17 @@ msgstr "" "en Python ?" #: ../Doc/faq/programming.rst:740 -#, fuzzy msgid "" "Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" "lambda`. See the following three examples, due to Ulf Bartelt::" msgstr "" -"Oui. Cela est généralement réalisé en imbriquant les :keyword:`lambda` dans " -"des :keyword:`lambda`. Observez les trois exemples suivants de Ulf Bartelt ::" +"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" +"keyword:`lambda`. Par exemple les trois morceaux de code suivants, créés par " +"Ulf Bartelt ::" #: ../Doc/faq/programming.rst:767 msgid "Don't try this at home, kids!" -msgstr "Les enfants, ne faîtes pas ça chez vous !" +msgstr "Les enfants, ne faites pas ça chez vous !" #: ../Doc/faq/programming.rst:773 msgid "What does the slash(/) in the parameter list of a function mean?" @@ -977,7 +1143,7 @@ msgstr "Nombres et chaînes de caractères" #: ../Doc/faq/programming.rst:809 msgid "How do I specify hexadecimal and octal integers?" -msgstr "Comment puis-je écrire des entiers hexadécimaux ou octaux ?" +msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" #: ../Doc/faq/programming.rst:811 msgid "" @@ -986,8 +1152,8 @@ msgid "" "octal value \"10\" (8 in decimal), type::" msgstr "" "Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " -"puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale " -"\"10\" (8 en décimal) à la variable \"a\", tapez ::" +"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " +"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:819 msgid "" @@ -995,7 +1161,7 @@ msgid "" "zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " "specified in lower or uppercase. For example, in the Python interpreter::" msgstr "" -"L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal " +"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " "peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " "l'interpréteur Python ::" @@ -1009,7 +1175,7 @@ msgid "" "It's primarily driven by the desire that ``i % j`` have the same sign as " "``j``. If you want that, and also want::" msgstr "" -"Cela est principalement due à la volonté que ``i % j`` ait le même signe que " +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " "j. Si vous voulez cela, vous voulez aussi : ::" #: ../Doc/faq/programming.rst:839 @@ -1019,7 +1185,7 @@ msgid "" "``i % j`` have the same sign as ``i``." msgstr "" "alors la division entière doit renvoyer l'entier inférieur. Le C demande " -"aussi à ce que cette égalité soit vérifiée, et donc les compilateur qui " +"aussi à ce que cette égalité soit vérifiée, et donc les compilateurs qui " "tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." #: ../Doc/faq/programming.rst:843 @@ -1032,13 +1198,13 @@ msgid "" msgstr "" "Il y a peu de cas d'utilisation réels pour ``i%j`` quand ``j`` est négatif. " "Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il " -"est plus utile que ``i % j`` soit ``>=0``. Si l'horloge dit *10h* " -"maintenant, que disait-elle il y a 200 heures? ``-190%12 == 2`` est utile; " -"``-192 % 12 == -10`` est un bug qui attends pour mordre." +"est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche *10h* " +"maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " +"utile; ``-190 % 12 == -10`` est un bogue en puissance." #: ../Doc/faq/programming.rst:851 msgid "How do I convert a string to a number?" -msgstr "Comment puis-je convertir une chaine de caractère en nombre?" +msgstr "Comment convertir une chaîne de caractère en nombre?" #: ../Doc/faq/programming.rst:853 msgid "" @@ -1059,13 +1225,12 @@ msgid "" "interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " "indicates a hex number." msgstr "" -"Par défaut, ces fonctions interprètent les nombre en tant que décimaux, de " -"telles façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" -"`ValueError`. ``int(string, base)`` prends la base depuis laquelle il faut " -"convertir dans le second argument, optionnel, donc ``int('0x144', 16) == " -"324``. Si la base donnée est 0, le nombre est interprété selon les règles " -"Python: un préfixe ``0o`` indique de l'octal, et ``0x`` indique de " -"l'hexadécimal." +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " +"telle façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"`ValueError`. ``int(string, base)`` prend la base dans laquelle convertir " +"dans le second argument (optionnel), donc ``int('0x144', 16) == 324``. Si la " +"base donnée est 0, le nombre est interprété selon les règles Python : un " +"préfixe ``0o`` indique de l'octal, et ``0x`` indique de l'hexadécimal." #: ../Doc/faq/programming.rst:863 msgid "" @@ -1077,9 +1242,9 @@ msgid "" "directory." msgstr "" "N'utilisez pas la fonction native :func:`eval` si tout ce que vous avez " -"besoin est de convertir des chaines en nombres. :func:`eval` sera " -"significativement plus lent et implique des risque de sécurité: quelqu'un " -"pourrait vous envoyez une expression Python pouvant avoir des effets de bord " +"besoin est de convertir des chaînes de caractères en nombres. :func:`eval` " +"est beaucoup plus lent et pose des problèmes de sécurité : quelqu'un " +"pourrait vous envoyer une expression Python pouvant avoir des effets de bord " "indésirables. Par exemple, quelqu'un pourrait passer ``__import__('os')." "system(\"rm -rf $HOME\")`` ce qui aurait pour effet d'effacer votre " "répertoire d’accueil." @@ -1091,13 +1256,13 @@ msgid "" "does not allow leading '0' in a decimal number (except '0')." msgstr "" ":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " -"expression Python, ainsi ``eval('09')`` produit une erreur de syntaxe par ce " -"que Python ne permet pas les '0' en tête d'un nombre décimal (à l'exception " -"du nombre '0')." +"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " +"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " +"l'exception du nombre '0')." #: ../Doc/faq/programming.rst:876 msgid "How do I convert a number to a string?" -msgstr "Comment convertir un nombre en chaine de caractère?" +msgstr "Comment convertir un nombre en chaîne de caractères ?" #: ../Doc/faq/programming.rst:878 msgid "" @@ -1108,10 +1273,17 @@ msgid "" "``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." "format(1.0/3.0)`` yields ``'0.333'``." msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " +"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " +"représentation hexadécimale ou octale, il faut utiliser les fonctions " +"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" +"conventionnelles, se référer au sections :ref:`f-strings` et :ref:" +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" +"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." #: ../Doc/faq/programming.rst:887 msgid "How do I modify a string in place?" -msgstr "Comment modifier une chaine de caractère \"en place\"?" +msgstr "Comment modifier une chaîne de caractère « en place » ?" #: ../Doc/faq/programming.rst:889 msgid "" @@ -1121,16 +1293,22 @@ msgid "" "unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " "module::" msgstr "" +"C'est impossible car les chaînes de caractères ne sont pas des objets " +"muables. Dans la plupart des cas, il faut tout simplement construire une " +"nouvelle chaîne à partir des morceaux désirés de l'ancienne. Si toutefois " +"vous avez besoin d'un objet capable de modifier de la donnée unicode « en " +"place », essayez d'utiliser un objet :class:`io.StringIO` ou le module :mod:" +"`array` ::" #: ../Doc/faq/programming.rst:919 msgid "How do I use strings to call functions/methods?" msgstr "" -"Comment utiliser des chaines de caractères pour appeler des fonctions/" +"Comment utiliser des chaînes de caractères pour appeler des fonctions/" "méthodes?" #: ../Doc/faq/programming.rst:921 msgid "There are various techniques." -msgstr "Il y a différentes techniques." +msgstr "Il y a plusieurs façons de faire." #: ../Doc/faq/programming.rst:923 msgid "" @@ -1140,9 +1318,9 @@ msgid "" "a case construct::" msgstr "" "La meilleure est d'utiliser un dictionnaire qui fait correspondre les " -"chaines de caractères à des fonctions. Le principal avantage de cette " -"technique est que les chaines n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la principale façon d'imiter la construction \"case" +"chaînes de caractères à des fonctions. Le principal avantage de cette " +"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " +"fonctions. C'est aussi la façon principale d'imiter la construction \"case" "\" ::" #: ../Doc/faq/programming.rst:938 @@ -1160,13 +1338,14 @@ msgstr "" #: ../Doc/faq/programming.rst:946 msgid "This is used in several places in the standard library, like this::" msgstr "" -"Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de " +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " "cette façon ::" #: ../Doc/faq/programming.rst:959 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " +"fonction ::" #: ../Doc/faq/programming.rst:972 msgid "" @@ -1174,9 +1353,9 @@ msgid "" "control over the contents of the string, someone could pass a string that " "resulted in an arbitrary function being executed." msgstr "" -"Note: En utilisant :func:`eval` est lent est dangereux. Si vous n'avez pas " -"un contrôle absolu sur le contenu de la chaine de caractère, quelqu'un peut " -"passer une chaine de caractère pouvant résulter en l'exécution de code " +"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un peut " +"passer une chaîne de caractères pouvant résulter en l'exécution de code " "arbitraire." #: ../Doc/faq/programming.rst:977 @@ -1185,7 +1364,7 @@ msgid "" "strings?" msgstr "" "Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " -"les caractères de fin de ligne d'une chaine de caractère ?" +"les caractères de fin de ligne d'une chaîne de caractères ?" #: ../Doc/faq/programming.rst:979 msgid "" @@ -1195,11 +1374,11 @@ msgid "" "empty lines at the end, the line terminators for all the blank lines will be " "removed::" msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toute occurrence " -"de tout marqueur de fin de ligne, à la fin d'une chaîne de caractère ``S``, " -"sans en retirer aucun espace. Si la chaîne ``S`` représente plus d'une " -"ligne, avec plusieurs lignes vides, les marqueurs de fin de de lignes de " -"chaque lignes vides seront retirés : ::" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " +"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " +"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " +"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " +"fin de de ligne de chaque ligne vide seront retirés : ::" #: ../Doc/faq/programming.rst:991 msgid "" @@ -1226,11 +1405,11 @@ msgid "" "parameter which is useful if the line uses something other than whitespace " "as a separator." msgstr "" -"Pour une simple analyse de chaine, l'approche la plus simple est " +"Pour une simple analyse de chaîne, l'approche la plus simple est " "généralement de découper la ligne en mots délimités par des espaces, en " -"utilisant la méthode :meth:`~str.split` des objets chaine de caractères, et " -"ensuite de convertir les chaines de décimales en valeurs numériques en " -"utilisant la fonction :func:`int` ou :func:`float`, ``split()`` supporte un " +"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " +"ensuite de convertir les chaînes de décimaux en valeurs numériques en " +"utilisant la fonction :func:`int` ou :func:`float`, ``split()`` possède un " "paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " "que des espaces comme séparateur." @@ -1239,7 +1418,7 @@ msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." msgstr "" -"Pour les analyses plus compliquées, les expressions rationnelles sont plus " +"Pour des analyses plus compliquées, les expressions régulières sont plus " "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." @@ -1254,29 +1433,34 @@ msgstr "Regardez :ref:`unicode-howto`." #: ../Doc/faq/programming.rst:1017 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/faq/programming.rst:1020 msgid "My program is too slow. How do I speed it up?" -msgstr "" +msgstr "Mon programme est trop lent. Comment l'accélérer ?" #: ../Doc/faq/programming.rst:1022 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" msgstr "" +"Question difficile, en général. Avant, tout, il faut garder en tête les " +"points suivants avant d'aller plus loin :" #: ../Doc/faq/programming.rst:1025 msgid "" "Performance characteristics vary across Python implementations. This FAQ " "focusses on :term:`CPython`." msgstr "" +"Les performances varient en fonction des implémentations de Python. Cette " +"FAQ ne traite que de :term:`CPython`." #: ../Doc/faq/programming.rst:1027 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." msgstr "" +"Les comportements peuvent différer d'un système d'exploitation à l'autre" #: ../Doc/faq/programming.rst:1029 msgid "" @@ -1386,11 +1570,11 @@ msgstr "" #: ../Doc/faq/programming.rst:1104 msgid "Sequences (Tuples/Lists)" -msgstr "Sequences (Tuples/Lists)" +msgstr "Séquences (n-uplets / listes)" #: ../Doc/faq/programming.rst:1107 msgid "How do I convert between tuples and lists?" -msgstr "Comment convertir les listes en tuples et inversement?" +msgstr "Comment convertir les listes en n-uplets et inversement ?" #: ../Doc/faq/programming.rst:1109 msgid "" @@ -1408,10 +1592,10 @@ msgid "" "you aren't sure that an object is already a tuple." msgstr "" "Par exemple ``tuple([1, 2, 3])`` renvoi ``(1, 2, 3)`` et ``tuple('abc')`` " -"renvoi ``('a', 'b', 'c')``. Si l'argument est un tuple, cela ne crée pas une " -"copie, mais renvoi le même objet, ce qui fait de :func:`tuple` un fonction " -"économique à appeler quand vous ne savez pas si votre objet est déjà un " -"tuple." +"renvoie ``('a', 'b', 'c')``. Si l'argument est un tuple, cela ne crée pas " +"une copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " +"fonction économique à appeler quand vous ne savez pas si votre objet est " +"déjà un tuple." #: ../Doc/faq/programming.rst:1117 msgid "" @@ -1428,7 +1612,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1124 msgid "What's a negative index?" -msgstr "Qu'est-ce qu'un indexe négatif?" +msgstr "Qu'est-ce qu'un index négatif?" #: ../Doc/faq/programming.rst:1126 msgid "" @@ -1439,10 +1623,10 @@ msgid "" "``seq[len(seq)-n]``." msgstr "" "Les séquences Python sont indexées avec des nombres positifs aussi bien que " -"négatifs. Pour les nombres positifs, 0 est le premier index, 1 est le " -"second, et ainsi de suite. Pour les indexes négatifs, ``-1`` est le dernier " -"index, ``-2`` est le pénultième (avant dernier), et ainsi de suite. On peut " -"aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." +"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " +"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " +"dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " +"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." #: ../Doc/faq/programming.rst:1131 msgid "" @@ -1450,20 +1634,20 @@ msgid "" "all of the string except for its last character, which is useful for " "removing the trailing newline from a string." msgstr "" -"Utiliser des indexes négatifs peut être très pratique. Par exemple " -"``S[:-1]`` indique la chaine entière a l'exception du dernier caractère, ce " -"qui est pratique pour retirer un caractère de fin de ligne en fin d'une " -"chaine." +"Utiliser des indices négatifs peut être très pratique. Par exemple " +"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " +"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " +"la fin d'une chaîne." #: ../Doc/faq/programming.rst:1137 msgid "How do I iterate over a sequence in reverse order?" -msgstr "Comment itérer à rebours sur une séquence?" +msgstr "Comment itérer à rebours sur une séquence ?" #: ../Doc/faq/programming.rst:1139 msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" -"Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python " +"Utilisez la fonction native :func:`reversed`, qui est apparue en Python " "2.4 ::" #: ../Doc/faq/programming.rst:1144 @@ -1471,8 +1655,8 @@ msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." msgstr "" -"Cela ne modifiera pas votre séquence initiale, mais construira à la place " -"une copie en ordre inverse pour itérer dessus." +"Cela ne modifiera pas la séquence initiale, mais construira à la place une " +"copie en ordre inverse pour itérer dessus." #: ../Doc/faq/programming.rst:1147 msgid "With Python 2.3, you can use an extended slice syntax::" @@ -1485,12 +1669,12 @@ msgstr "Comment retirer les doublons d'une liste?" #: ../Doc/faq/programming.rst:1156 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" -"Lisez le Python Cookbook pour trouver une longue discussion sur les " -"nombreuses façons de faire cela:" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " +"les nombreuses approches possibles :" #: ../Doc/faq/programming.rst:1158 msgid "https://code.activestate.com/recipes/52560/" -msgstr "" +msgstr "https://code.activestate.com/recipes/52560/" #: ../Doc/faq/programming.rst:1160 msgid "" @@ -1498,7 +1682,7 @@ msgid "" "the list, deleting duplicates as you go::" msgstr "" "Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " -"celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons " +"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" #: ../Doc/faq/programming.rst:1172 @@ -1515,12 +1699,12 @@ msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." msgstr "" -"Ceci convertis la liste en un ensemble, ce qui supprime automatiquement les " +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " "doublons, puis la transforme à nouveau en liste." #: ../Doc/faq/programming.rst:1182 msgid "How do you make an array in Python?" -msgstr "Comment construire un tableau en Python?" +msgstr "Comment construire un tableau en Python ?" #: ../Doc/faq/programming.rst:1184 msgid "Use a list::" @@ -1532,7 +1716,7 @@ msgid "" "primary difference is that a Python list can contain objects of many " "different types." msgstr "" -"Les listes ont un cout équivalent à celui des tableau C ou Pascal; la " +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " "principale différence est qu'une liste Python peut contenir des objets de " "différents types." @@ -1546,15 +1730,15 @@ msgstr "" "Le module ``array`` fournit des méthodes pour créer des tableaux de types " "fixes dans une représentation compacte, mais ils sont plus lents à indexer " "que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " -"fournissent différentes structures de types tableaux, avec des " +"fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." #: ../Doc/faq/programming.rst:1196 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les *cons " -"cells* en utilisant des tuples ::" +"Pour obtenir des listes chaînées de type Lisp, vous pouvez émuler les *cons " +"cells* en utilisant des n-uplets ::" #: ../Doc/faq/programming.rst:1200 msgid "" @@ -1567,7 +1751,7 @@ msgstr "" "qu'un tuple. Ici la version équivalente au *car* de Lisp est " "``lisp_list[0]`` et l'équivalent à *cdr* est ``list_lip[1]``. Ne faites ceci " "que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " -"générale bien plus lente que les listes Python." +"général bien plus lente que les listes Python." #: ../Doc/faq/programming.rst:1209 msgid "How do I create a multidimensional list?" @@ -1595,7 +1779,7 @@ msgid "" "containing 3 references to the same list of length two. Changes to one row " "will show in all rows, which is almost certainly not what you want." msgstr "" -"La raison en est que dupliquer une liste en utilisant ``*`` ne crée pas de " +"La raison est que dupliquer une liste en utilisant ``*`` ne crée pas de " "copies, cela crée seulement des références aux objets existants. Le ``*3`` " "crée une liste contenant trois références à la même liste de longueur deux. " "Un changement dans une colonne apparaîtra donc dans toutes les colonnes. Ce " From 787226fe49519ff82abf74e6f9678d1cdf15d4b6 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Mon, 22 Apr 2019 23:55:36 +0200 Subject: [PATCH 08/26] III --- faq/programming.po | 2689 +++++++++++++++++++++++--------------------- 1 file changed, 1407 insertions(+), 1282 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index a74284b7c..27387e40c 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-04-19 18:11+0200\n" +"PO-Revision-Date: 2019-04-22 23:54+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -28,10 +28,10 @@ msgid "General Questions" msgstr "Questions générales" #: ../Doc/faq/programming.rst:15 -msgid "" -"Is there a source code level debugger with breakpoints, single-stepping, " -"etc.?" +msgid "Is there a source code level debugger with breakpoints, single-stepping, etc.?" msgstr "" +"Existe-t'il une débogueur de code source avec points d'arrêts, exécution pas-à-pas, " +"etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 msgid "Yes." @@ -39,158 +39,225 @@ msgstr "Oui." #: ../Doc/faq/programming.rst:19 msgid "" -"The pdb module is a simple but adequate console-mode debugger for Python. It " -"is part of the standard Python library, and is :mod:`documented in the " -"Library Reference Manual `. You can also write your own debugger by " -"using the code for pdb as an example." +"The pdb module is a simple but adequate console-mode debugger for Python. It is part " +"of the standard Python library, and is :mod:`documented in the Library Reference " +"Manual `. You can also write your own debugger by using the code for pdb as an " +"example." msgstr "" +"Le module pdb est un débogueur console simple mais approprié à Python. Il fait partie " +"de la bibliothèque standard de Python , sa documentation se trouve dans le :mod:" +"`manuel de référence `. Vous pouvez vous inspirer du code de pdb pour écrire " +"votre propre débogeur." #: ../Doc/faq/programming.rst:24 msgid "" -"The IDLE interactive development environment, which is part of the standard " -"Python distribution (normally available as Tools/scripts/idle), includes a " -"graphical debugger." +"The IDLE interactive development environment, which is part of the standard Python " +"distribution (normally available as Tools/scripts/idle), includes a graphical " +"debugger." msgstr "" +"L'environnement de développement interactif IDLE, qui est fourni avec la distribution " +"standard de Python (normalement disponible dans Tools/scripts/idle) comporte un " +"débogueur graphique." #: ../Doc/faq/programming.rst:28 msgid "" -"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " -"Pythonwin debugger colors breakpoints and has quite a few cool features such " -"as debugging non-Pythonwin programs. Pythonwin is available as part of the " -"`Python for Windows Extensions `__ project and as a part of the ActivePython distribution (see https://www." -"activestate.com/activepython\\ )." +"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The Pythonwin " +"debugger colors breakpoints and has quite a few cool features such as debugging non-" +"Pythonwin programs. Pythonwin is available as part of the `Python for Windows " +"Extensions `__ project and as a part of " +"the ActivePython distribution (see https://www.activestate.com/activepython\\ )." msgstr "" +"Pythonwin est un environnement de développement intégré (EDI) Python qui comporte un " +"débogueur graphique basé sur pdb. Le débogeur Pythonwin colore les points d'arrêts et " +"a quelques fonctionnalités sympathiques comme déboguer des programmes développés hors " +"de Pythonwin. Pythonwin est disponible dans le projet `Extensions Python pour " +"Windows `__ et fait parti de la " +"distribution ActivePython (voir https://www.activestate.com/activepython\\)." #: ../Doc/faq/programming.rst:35 msgid "" -"`Boa Constructor `_ is an IDE and " -"GUI builder that uses wxWidgets. It offers visual frame creation and " -"manipulation, an object inspector, many views on the source like object " -"browsers, inheritance hierarchies, doc string generated html documentation, " -"an advanced debugger, integrated help, and Zope support." +"`Boa Constructor `_ is an IDE and GUI " +"builder that uses wxWidgets. It offers visual frame creation and manipulation, an " +"object inspector, many views on the source like object browsers, inheritance " +"hierarchies, doc string generated html documentation, an advanced debugger, " +"integrated help, and Zope support." msgstr "" +"`Boa Constructor `_ est un EDI et un " +"constructeur d'interface homme-machine basé sur wxWidgets. Il propose la création et " +"la manipulation de fenêtres, un inspecteur d'objets, de nombreuses visualisations des " +"sources comme un navigateur d'objets, les hiérarchies d'héritage, la documentation " +"html générée par les docstrings, un débogueur avancé, une aide intégrée et le support " +"de Zope." #: ../Doc/faq/programming.rst:41 msgid "" -"`Eric `_ is an IDE built on PyQt and " -"the Scintilla editing component." +"`Eric `_ is an IDE built on PyQt and the " +"Scintilla editing component." msgstr "" +"`Eric `_ est un EDI basé sur PyQt et l'outil " +"d'édition Scintilla." #: ../Doc/faq/programming.rst:44 msgid "" -"Pydb is a version of the standard Python debugger pdb, modified for use with " -"DDD (Data Display Debugger), a popular graphical debugger front end. Pydb " -"can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " -"https://www.gnu.org/software/ddd." +"Pydb is a version of the standard Python debugger pdb, modified for use with DDD " +"(Data Display Debugger), a popular graphical debugger front end. Pydb can be found " +"at http://bashdb.sourceforge.net/pydb/ and DDD can be found at https://www.gnu.org/" +"software/ddd." msgstr "" +"Pydb est une version du débogueur standard Python pdb, modifié pour être utilisé avec " +"DDD (Data Display Debugger), un célèbre débogueur graphique. Pydb est disponible sur " +"http://bashdb.sourceforge.net/pydb/ et DDD est disponible sur https://www.gnu.org/" +"software/ddd." #: ../Doc/faq/programming.rst:49 msgid "" -"There are a number of commercial Python IDEs that include graphical " -"debuggers. They include:" +"There are a number of commercial Python IDEs that include graphical debuggers. They " +"include:" msgstr "" +"Il y a de nombreux EDI Python propriétaires qui contiennent un débogueur graphique. " +"Notamment :" #: ../Doc/faq/programming.rst:52 msgid "Wing IDE (https://wingware.com/)" -msgstr "" +msgstr "Wing IDE (https://wingware.com/)" #: ../Doc/faq/programming.rst:53 msgid "Komodo IDE (https://komodoide.com/)" -msgstr "" +msgstr "Komodo IDE (https://komodoide.com/)" #: ../Doc/faq/programming.rst:54 msgid "PyCharm (https://www.jetbrains.com/pycharm/)" -msgstr "" +msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:58 msgid "Is there a tool to help find bugs or perform static analysis?" msgstr "" +"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse statique " +"de code ?" #: ../Doc/faq/programming.rst:62 msgid "" -"PyChecker is a static analysis tool that finds bugs in Python source code " -"and warns about code complexity and style. You can get PyChecker from " -"http://pychecker.sourceforge.net/." +"PyChecker is a static analysis tool that finds bugs in Python source code and warns " +"about code complexity and style. You can get PyChecker from http://pychecker." +"sourceforge.net/." msgstr "" +"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code source " +"Python et émet des avertissement sur la complexité et le style du code. PyChecker est " +"disponible sur http://pychecker.sourceforge.net/." #: ../Doc/faq/programming.rst:66 msgid "" -"`Pylint `_ is another tool that checks if a module " -"satisfies a coding standard, and also makes it possible to write plug-ins to " -"add a custom feature. In addition to the bug checking that PyChecker " -"performs, Pylint offers some additional features such as checking line " -"length, whether variable names are well-formed according to your coding " -"standard, whether declared interfaces are fully implemented, and more. " -"https://docs.pylint.org/ provides a full list of Pylint's features." -msgstr "" +"`Pylint `_ is another tool that checks if a module satisfies " +"a coding standard, and also makes it possible to write plug-ins to add a custom " +"feature. In addition to the bug checking that PyChecker performs, Pylint offers some " +"additional features such as checking line length, whether variable names are well-" +"formed according to your coding standard, whether declared interfaces are fully " +"implemented, and more. https://docs.pylint.org/ provides a full list of Pylint's " +"features." +msgstr "" +"Pylint `_ est un autre outil qui vérifie si un module " +"satisfait aux normes de développement, et qui permet aussi d'écrire des greffons pour " +"ajouter des fonctionnalités personnalisées. En plus de la vérification des bogues " +"effectuée par PyChecker, Pylint effectue quelques vérifications supplémentaires comme " +"la longueur des lignes, les conventions de nommage des variables, que les interfaces " +"déclarées sont entièrement implémentées, et plus encore. https://docs.pylint.org/ " +"fournit la liste complète des fonctionnalités de Pylint." #: ../Doc/faq/programming.rst:74 msgid "" -"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " -"check type hints in Python source code." +"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can check type hints " +"in Python source code." msgstr "" +"Les vérificateurs de type statique comme `Mypy `_, `Pyre " +"`_, et `Pytype `_ peuvent " +"vérifier les indications de type dans du code source Python." #: ../Doc/faq/programming.rst:81 msgid "How can I create a stand-alone binary from a Python script?" -msgstr "" +msgstr "Comment créer un binaire autonome à partir d'un script Python ?" #: ../Doc/faq/programming.rst:83 msgid "" -"You don't need the ability to compile Python to C code if all you want is a " -"stand-alone program that users can download and run without having to " -"install the Python distribution first. There are a number of tools that " -"determine the set of modules required by a program and bind these modules " -"together with a Python binary to produce a single executable." +"You don't need the ability to compile Python to C code if all you want is a stand-" +"alone program that users can download and run without having to install the Python " +"distribution first. There are a number of tools that determine the set of modules " +"required by a program and bind these modules together with a Python binary to produce " +"a single executable." msgstr "" +"Il n'est pas nécessaire de compiler du code Python en code C pour obtenir un " +"programme autonome, que les utilisateurs peuvent télécharger et exécuter sans avoir à " +"installer une distribution Python au préalable. Il existe plusieurs outils qui " +"déterminent les modules requis par un programme et lient ces modules avec un binaire " +"Python pour produire un seul exécutable." #: ../Doc/faq/programming.rst:89 msgid "" -"One is to use the freeze tool, which is included in the Python source tree " -"as ``Tools/freeze``. It converts Python byte code to C arrays; a C compiler " -"you can embed all your modules into a new program, which is then linked with " -"the standard Python modules." +"One is to use the freeze tool, which is included in the Python source tree as ``Tools/" +"freeze``. It converts Python byte code to C arrays; a C compiler you can embed all " +"your modules into a new program, which is then linked with the standard Python " +"modules." msgstr "" +"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de l'arborescence " +"des sources de Python. Il convertit le *bytecode* Python en tableaux C ; un " +"compilateur C vous permet d'intégrer tous vos modules dans un nouveau programme, qui " +"est ensuite lié aux modules standard Python." #: ../Doc/faq/programming.rst:94 msgid "" -"It works by scanning your source recursively for import statements (in both " -"forms) and looking for the modules in the standard Python path as well as in " -"the source directory (for built-in modules). It then turns the bytecode for " -"modules written in Python into C code (array initializers that can be turned " -"into code objects using the marshal module) and creates a custom-made config " -"file that only contains those built-in modules which are actually used in " -"the program. It then compiles the generated C code and links it with the " -"rest of the Python interpreter to form a self-contained binary which acts " -"exactly like your script." -msgstr "" +"It works by scanning your source recursively for import statements (in both forms) " +"and looking for the modules in the standard Python path as well as in the source " +"directory (for built-in modules). It then turns the bytecode for modules written in " +"Python into C code (array initializers that can be turned into code objects using the " +"marshal module) and creates a custom-made config file that only contains those built-" +"in modules which are actually used in the program. It then compiles the generated C " +"code and links it with the rest of the Python interpreter to form a self-contained " +"binary which acts exactly like your script." +msgstr "" +"Il fonctionne en cherchant de manière récursive les instructions d'import (sous les " +"deux formes) dans le code source et en recherchant ces modules dans le chemin Python " +"standard ainsi que dans le répertoire source (pour les modules natifs). Il " +"transforme ensuite le bytecode des modules écrits en Python en code C (des " +"initialiseurs de tableaux qui peuvent être transformés en objets de code à l'aide du " +"module marshal) et crée un fichier de configuration personnalisé qui contient " +"uniquement les modules natifs qui sont réellement utilisés dans le programme. Il " +"compile ensuite le code C généré et le lie au reste de l'interpréteur Python pour " +"former un binaire autonome qui fait exactement la même chose que le script." #: ../Doc/faq/programming.rst:103 msgid "" -"Obviously, freeze requires a C compiler. There are several other utilities " -"which don't. One is Thomas Heller's py2exe (Windows only) at" +"Obviously, freeze requires a C compiler. There are several other utilities which " +"don't. One is Thomas Heller's py2exe (Windows only) at" msgstr "" +"Bien évidemment, freeze nécessite un compilateur C. Il y a d'autres outils qui n'en " +"ont pas besoin. Un de ceux-ci est py2exe de Thomas Heller (pour Windows uniquement) " +"disponible sur" #: ../Doc/faq/programming.rst:106 msgid "http://www.py2exe.org/" -msgstr "" +msgstr "http://www.py2exe.org/" #: ../Doc/faq/programming.rst:108 msgid "" -"Another tool is Anthony Tuininga's `cx_Freeze `_." +"Another tool is Anthony Tuininga's `cx_Freeze `_." msgstr "" +"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." #: ../Doc/faq/programming.rst:112 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" +"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"programmes Python ?" #: ../Doc/faq/programming.rst:114 msgid "" -"Yes. The coding style required for standard library modules is documented " -"as :pep:`8`." +"Yes. The coding style required for standard library modules is documented as :pep:" +"`8`." msgstr "" +"Oui. Le style de développement obligatoire pour les modules de la bibliothèque " +"standard est documentée dans :pep:`8`." #: ../Doc/faq/programming.rst:119 msgid "Core Language" @@ -198,18 +265,16 @@ msgstr "Fondamentaux" #: ../Doc/faq/programming.rst:122 msgid "Why am I getting an UnboundLocalError when the variable has a value?" -msgstr "" -"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" +msgstr "Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" #: ../Doc/faq/programming.rst:124 msgid "" -"It can be a surprise to get the UnboundLocalError in previously working code " -"when it is modified by adding an assignment statement somewhere in the body " -"of a function." +"It can be a surprise to get the UnboundLocalError in previously working code when it " +"is modified by adding an assignment statement somewhere in the body of a function." msgstr "" -"Il est parfois surprenant d'avoir une UnboundLocalError dans du code correct " -"jusqu'à présent, quand celui-ci est modifié en ajoutant une instruction " -"d'affectation quelque part dans le corps d'une fonction." +"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code jusqu'à " +"présent correct, quand celui-ci est modifié en ajoutant une instruction d'affectation " +"quelque part dans le corps d'une fonction." #: ../Doc/faq/programming.rst:128 msgid "This code:" @@ -225,154 +290,147 @@ msgstr "lève une UnboundLocalError :" #: ../Doc/faq/programming.rst:150 msgid "" -"This is because when you make an assignment to a variable in a scope, that " -"variable becomes local to that scope and shadows any similarly named " -"variable in the outer scope. Since the last statement in foo assigns a new " -"value to ``x``, the compiler recognizes it as a local variable. " -"Consequently when the earlier ``print(x)`` attempts to print the " -"uninitialized local variable and an error results." +"This is because when you make an assignment to a variable in a scope, that variable " +"becomes local to that scope and shadows any similarly named variable in the outer " +"scope. Since the last statement in foo assigns a new value to ``x``, the compiler " +"recognizes it as a local variable. Consequently when the earlier ``print(x)`` " +"attempts to print the uninitialized local variable and an error results." msgstr "" -"Ceci s'explique par le fait que quand une variable est affectée dans un " -"contexte, cette variable devient locale à ce contexte et remplace toute " -"variable du même nom du contexte appelant. Vu que la dernière instruction " -"dans foo affecte une nouvelle valeur à ``x``, le compilateur la traite comme " -"une nouvelle variable. Par conséquent, quand le ``print(x)`` essaye " -"d'afficher la variable non initialisée, une erreur se produit." +"Cela est dû au fait que quand une variable est affectée dans un contexte, cette " +"variable devient locale à ce contexte et remplace toute variable du même nom du " +"contexte appelant. Vu que la dernière instruction dans foo affecte une nouvelle " +"valeur à ``x``, le compilateur la traite comme une nouvelle variable. Par conséquent, " +"quand le ``print(x)`` essaye d'afficher la variable non initialisée, une erreur se " +"produit." #: ../Doc/faq/programming.rst:157 msgid "" -"In the example above you can access the outer scope variable by declaring it " -"global:" +"In the example above you can access the outer scope variable by declaring it global:" msgstr "" -"Dans l'exemple ci-dessus, la variable du contexte appelant est accessible en " -"la déclarant globale :" +"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible en la " +"déclarant globale :" #: ../Doc/faq/programming.rst:168 msgid "" -"This explicit declaration is required in order to remind you that (unlike " -"the superficially analogous situation with class and instance variables) you " -"are actually modifying the value of the variable in the outer scope:" +"This explicit declaration is required in order to remind you that (unlike the " +"superficially analogous situation with class and instance variables) you are actually " +"modifying the value of the variable in the outer scope:" msgstr "" -"Cette déclaration explicite est obligatoire pour se rappeler que " -"(contrairement au cas à peu près similaire avec des variables de classe et " -"d'instance), c'est la valeur de la variable du contexte appelant qui est " -"modifiée :" +"Cette déclaration explicite est obligatoire pour se rappeler que (contrairement au " +"cas à peu près similaire avec des variables de classe et d'instance), c'est la valeur " +"de la variable du contexte appelant qui est modifiée :" #: ../Doc/faq/programming.rst:175 msgid "" -"You can do a similar thing in a nested scope using the :keyword:`nonlocal` " -"keyword:" +"You can do a similar thing in a nested scope using the :keyword:`nonlocal` keyword:" msgstr "" -"Une alternative avec un contexte imbriqué est d'utiliser le mot-clé :keyword:" +"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :keyword:" "`nonlocal` :" #: ../Doc/faq/programming.rst:192 msgid "What are the rules for local and global variables in Python?" -msgstr "" -"Quelles sont les règles pour les variables locales et globales en Python ?" +msgstr "Quelles sont les règles pour les variables locales et globales en Python ?" #: ../Doc/faq/programming.rst:194 msgid "" -"In Python, variables that are only referenced inside a function are " -"implicitly global. If a variable is assigned a value anywhere within the " -"function's body, it's assumed to be a local unless explicitly declared as " -"global." +"In Python, variables that are only referenced inside a function are implicitly " +"global. If a variable is assigned a value anywhere within the function's body, it's " +"assumed to be a local unless explicitly declared as global." msgstr "" "En Python, les variables qui ne sont référencées que dans une fonction sont " -"considérées comme globales. Si une affectation de variable est effectuée " -"dans le corps d'une fonction, cette variable sera locale, sauf si elle est " -"déclarée explicitement comme globale." +"considérées comme globales. Si une affectation de variable est effectuée dans le " +"corps d'une fonction, cette variable sera locale, sauf si elle est déclarée " +"explicitement comme globale." #: ../Doc/faq/programming.rst:198 -#, fuzzy -msgid "" -"Though a bit surprising at first, a moment's consideration explains this. " -"On one hand, requiring :keyword:`global` for assigned variables provides a " -"bar against unintended side-effects. On the other hand, if ``global`` was " -"required for all global references, you'd be using ``global`` all the time. " -"You'd have to declare as global every reference to a built-in function or to " -"a component of an imported module. This clutter would defeat the usefulness " -"of the ``global`` declaration for identifying side-effects." -msgstr "" -"Bien que surprenant au premier abord, ce mécanisme s'explique facilement. " -"D'un côté, exiger :keyword:`global` pour des variables affectées est une " -"protection contre les effets de bord non-attendus. D'un autre côté, si " -"``global`` était obligatoire pour toutes les références globales, il " -"faudrait mettre ``global`` partout. Il faudrait déclarer" +msgid "" +"Though a bit surprising at first, a moment's consideration explains this. On one " +"hand, requiring :keyword:`global` for assigned variables provides a bar against " +"unintended side-effects. On the other hand, if ``global`` was required for all " +"global references, you'd be using ``global`` all the time. You'd have to declare as " +"global every reference to a built-in function or to a component of an imported " +"module. This clutter would defeat the usefulness of the ``global`` declaration for " +"identifying side-effects." +msgstr "" +"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une part, " +"exiger :keyword:`global` pour des variables affectées est une protection contre des " +"effets de bord inattendus. D'autre part, si ``global`` était obligatoire pour toutes " +"les références à des objets globaux, il faudrait mettre ``global`` partout car il " +"faudrait dans ce cas déclarer globale chaque référence à une fonction native ou à un " +"composant d'un module importé. Le codé serait alors truffé de déclarations " +"``global``, ce qui nuirait à leur raison d'être : identifier les effets de bords." #: ../Doc/faq/programming.rst:208 msgid "" -"Why do lambdas defined in a loop with different values all return the same " -"result?" +"Why do lambdas defined in a loop with different values all return the same result?" msgstr "" -"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " -"différentes retournent-elles le même résultat ?" +"Pourquoi des expressions lambda définies dans une boucle avec des valeurs différentes " +"retournent-elles le même résultat ?" #: ../Doc/faq/programming.rst:210 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" msgstr "" -"Supposons que l'on utilise une boucle itérative pour définir des expressions " -"lambda (voire même des fonctions) différentes, e.g :" +"Supposons que l'on utilise une boucle itérative pour définir des expressions lambda " +"(voire même des fonctions) différentes, e.g. :" #: ../Doc/faq/programming.rst:217 msgid "" -"This gives you a list that contains 5 lambdas that calculate ``x**2``. You " -"might expect that, when called, they would return, respectively, ``0``, " -"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " -"see that they all return ``16``::" +"This gives you a list that contains 5 lambdas that calculate ``x**2``. You might " +"expect that, when called, they would return, respectively, ``0``, ``1``, ``4``, " +"``9``, and ``16``. However, when you actually try you will see that they all return " +"``16``::" msgstr "" -"Le code précédent créé une liste de 5 expressions lambda qui calculent " -"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité ``16`` :" +"Le code précédent créé une liste de 5 expressions lambda qui calculent chacune " +"``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, ``1``, ``4``, " +"``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" #: ../Doc/faq/programming.rst:227 msgid "" -"This happens because ``x`` is not local to the lambdas, but is defined in " -"the outer scope, and it is accessed when the lambda is called --- not when " -"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " -"the functions now return ``4**2``, i.e. ``16``. You can also verify this by " -"changing the value of ``x`` and see how the results of the lambdas change::" +"This happens because ``x`` is not local to the lambdas, but is defined in the outer " +"scope, and it is accessed when the lambda is called --- not when it is defined. At " +"the end of the loop, the value of ``x`` is ``4``, so all the functions now return " +"``4**2``, i.e. ``16``. You can also verify this by changing the value of ``x`` and " +"see how the results of the lambdas change::" msgstr "" -"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " -"expressions, mais est définie dans le contexte appelant. Elle est lue à " -"l'appel de l'expression lambda – et non au moment où cette expression est " -"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " -"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en voyant comment les résultats sont modifiés :" +"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux expressions, " +"mais est définie dans le contexte appelant. Elle est lue à l'appel de l'expression " +"lambda – et non au moment où cette expression est définie. À la fin de la boucle, " +"``x`` vaut ``4``, donc toutes les fonctions renvoient ``4*2``, i.e. ``16``. Ceci se " +"vérifie également en changeant la valeur de ``x`` et en voyant comment les résultats " +"sont modifiés :" #: ../Doc/faq/programming.rst:237 msgid "" -"In order to avoid this, you need to save the values in variables local to " -"the lambdas, so that they don't rely on the value of the global ``x``::" +"In order to avoid this, you need to save the values in variables local to the " +"lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" -"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " -"variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` :" +"Pour éviter ce phénomène, les valeurs doivent être stockées dans des variables " +"locales aux expressions lambda pour que celles-ci ne se basent plus sur la variable " +"globale ``x`` :" #: ../Doc/faq/programming.rst:244 msgid "" -"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " -"when the lambda is defined so that it has the same value that ``x`` had at " -"that point in the loop. This means that the value of ``n`` will be ``0`` in " -"the first lambda, ``1`` in the second, ``2`` in the third, and so on. " -"Therefore each lambda will now return the correct result::" +"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed when the " +"lambda is defined so that it has the same value that ``x`` had at that point in the " +"loop. This means that the value of ``n`` will be ``0`` in the first lambda, ``1`` in " +"the second, ``2`` in the third, and so on. Therefore each lambda will now return the " +"correct result::" msgstr "" -"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à " -"l'expression. Cette variable est évaluée quand l'expression est définie donc " -"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` sera donc " -"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " -"troisième et ainsi de suite. Chaque expression lambda renverra donc le " -"résultat correct :" +"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à l'expression. Cette " +"variable est évaluée quand l'expression est définie donc ``n`` a la même valeur que " +"``x`` à ce moment. La valeur de ``n`` sera donc ``0`` dans la première lambda, ``1`` " +"dans la deuxième, ``2`` dans la troisième et ainsi de suite. Chaque expression lambda " +"renverra donc le résultat correct :" #: ../Doc/faq/programming.rst:255 msgid "" -"Note that this behaviour is not peculiar to lambdas, but applies to regular " -"functions too." +"Note that this behaviour is not peculiar to lambdas, but applies to regular functions " +"too." msgstr "" -"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " -"aussi aux fonctions normales." +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique aussi aux " +"fonctions normales." #: ../Doc/faq/programming.rst:260 msgid "How do I share global variables across modules?" @@ -380,19 +438,17 @@ msgstr "Comment partager des variables globales entre modules ?" #: ../Doc/faq/programming.rst:262 msgid "" -"The canonical way to share information across modules within a single " -"program is to create a special module (often called config or cfg). Just " -"import the config module in all modules of your application; the module then " -"becomes available as a global name. Because there is only one instance of " -"each module, any changes made to the module object get reflected " -"everywhere. For example:" +"The canonical way to share information across modules within a single program is to " +"create a special module (often called config or cfg). Just import the config module " +"in all modules of your application; the module then becomes available as a global " +"name. Because there is only one instance of each module, any changes made to the " +"module object get reflected everywhere. For example:" msgstr "" -"La manière standard de partager des informations entre modules d'un même " -"programme est de créer un module spécial (souvent appelé config ou cfg) et " -"de l'importer dans tous les modules de l'application ; le module devient " -"accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " -"chaque module, tout changement dans l'instance est propagé partout. Par " -"exemple :" +"La manière standard de partager des informations entre modules d'un même programme " +"est de créer un module spécial (souvent appelé config ou cfg) et de l'importer dans " +"tous les modules de l'application ; le module devient accessible depuis l'espace de " +"nom global. Vu qu'il n'y a qu'une instance de chaque module, tout changement dans " +"l'instance est propagé partout. Par exemple :" #: ../Doc/faq/programming.rst:268 msgid "config.py::" @@ -408,39 +464,37 @@ msgstr "main.py :" #: ../Doc/faq/programming.rst:283 msgid "" -"Note that using a module is also the basis for implementing the Singleton " -"design pattern, for the same reason." +"Note that using a module is also the basis for implementing the Singleton design " +"pattern, for the same reason." msgstr "" "Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " -"l'implémentation du patron Singleton." +"l'implémentation du patron de conception singleton." #: ../Doc/faq/programming.rst:288 msgid "What are the \"best practices\" for using import in a module?" -msgstr "" -"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" +msgstr "Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" #: ../Doc/faq/programming.rst:290 msgid "" -"In general, don't use ``from modulename import *``. Doing so clutters the " -"importer's namespace, and makes it much harder for linters to detect " -"undefined names." +"In general, don't use ``from modulename import *``. Doing so clutters the importer's " +"namespace, and makes it much harder for linters to detect undefined names." msgstr "" -"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " -"encombre l'espace de noms de l'importateur et rend la détection de noms non-" -"définis beaucoup plus ardue aux analyseurs de code." +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci encombre " +"l'espace de noms de l'importateur et rend la détection de noms non-définis beaucoup " +"plus ardue aux analyseurs de code." #: ../Doc/faq/programming.rst:294 msgid "" -"Import modules at the top of a file. Doing so makes it clear what other " -"modules your code requires and avoids questions of whether the module name " -"is in scope. Using one import per line makes it easy to add and delete " -"module imports, but using multiple imports per line uses less screen space." +"Import modules at the top of a file. Doing so makes it clear what other modules your " +"code requires and avoids questions of whether the module name is in scope. Using one " +"import per line makes it easy to add and delete module imports, but using multiple " +"imports per line uses less screen space." msgstr "" -"Les modules doivent être importés en haut d'un fichier. Ceci pour dire " -"afficher clairement les autres modules dont le code à besoin et éviter de se " -"demander si le module est dans le contexte. Faire un seul import par ligne " -"rend l'ajout et la suppression d'un import de module plus aisé, mais " -"importer plusieurs modules sur une même ligne prend moins d'espace." +"Les modules doivent être importés en haut d'un fichier. Ceci pour dire afficher " +"clairement les autres modules dont le code à besoin et éviter de se demander si le " +"module est dans le contexte. Faire un seul import par ligne rend l'ajout et la " +"suppression d'un import de module plus aisé, mais importer plusieurs modules sur une " +"même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:299 msgid "It's good practice if you import modules in the following order:" @@ -449,16 +503,15 @@ msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" #: ../Doc/faq/programming.rst:301 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" -"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, " -"``re``" +"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, ``re``" #: ../Doc/faq/programming.rst:302 msgid "" -"third-party library modules (anything installed in Python's site-packages " -"directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"third-party library modules (anything installed in Python's site-packages directory) " +"-- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" -"les modules externes (tout ce qui est installé dans le dossier *site-" -"packages* de Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"les modules externes (tout ce qui est installé dans le dossier *site-packages* de " +"Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." #: ../Doc/faq/programming.rst:304 msgid "locally-developed modules" @@ -466,139 +519,126 @@ msgstr "les modules développés en local" #: ../Doc/faq/programming.rst:306 msgid "" -"It is sometimes necessary to move imports to a function or class to avoid " -"problems with circular imports. Gordon McMillan says:" +"It is sometimes necessary to move imports to a function or class to avoid problems " +"with circular imports. Gordon McMillan says:" msgstr "" -"Il est parfois nécessaire de déplacer des imports dans une fonction ou une " -"classe pour éviter les problèmes d'imports circulaires. Comme le dit Gordon " -"McMillan :" +"Il est parfois nécessaire de déplacer des imports dans une fonction ou une classe " +"pour éviter les problèmes d'imports circulaires. Comme le dit Gordon McMillan :" #: ../Doc/faq/programming.rst:309 msgid "" -"Circular imports are fine where both modules use the \"import \" " -"form of import. They fail when the 2nd module wants to grab a name out of " -"the first (\"from module import name\") and the import is at the top level. " -"That's because names in the 1st are not yet available, because the first " -"module is busy importing the 2nd." +"Circular imports are fine where both modules use the \"import \" form of " +"import. They fail when the 2nd module wants to grab a name out of the first (\"from " +"module import name\") and the import is at the top level. That's because names in " +"the 1st are not yet available, because the first module is busy importing the 2nd." msgstr "" -"Il n'y a pas de problème avec les imports circulaires tant que les deux " -"modules utilisent la forme \"import \" . Ça pose problème si le " -"second module cherche à récupérer un nom du premier module (\"from module " -"import name\") et que l'import est dans l'espace de noms du fichier. Les " -"noms du premier module ne sont en effet pas encore disponibles car le " -"premier module est occupé à importer le second." +"Il n'y a pas de problème avec les imports circulaires tant que les deux modules " +"utilisent la forme \"import \" . Ça pose problème si le second module cherche " +"à récupérer un nom du premier module (\"from module import name\") et que l'import " +"est dans l'espace de noms du fichier. Les noms du premier module ne sont en effet pas " +"encore disponibles car le premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:315 msgid "" -"In this case, if the second module is only used in one function, then the " -"import can easily be moved into that function. By the time the import is " -"called, the first module will have finished initializing, and the second " -"module can do its import." +"In this case, if the second module is only used in one function, then the import can " +"easily be moved into that function. By the time the import is called, the first " +"module will have finished initializing, and the second module can do its import." msgstr "" -"Dans ce cas, si le second module n'est utilisé que dans une fonction, " -"l'import peut facilement être déplacé dans cette fonction. Au moment où " -"l'import sera appelé , le premier module aura fini de s'initialiser et le " -"second pourra faire son import." +"Dans ce cas, si le second module n'est utilisé que dans une fonction, l'import peut " +"facilement être déplacé dans cette fonction. Au moment où l'import sera appelé , le " +"premier module aura fini de s'initialiser et le second pourra faire son import." #: ../Doc/faq/programming.rst:320 msgid "" -"It may also be necessary to move imports out of the top level of code if " -"some of the modules are platform-specific. In that case, it may not even be " -"possible to import all of the modules at the top of the file. In this case, " -"importing the correct modules in the corresponding platform-specific code is " -"a good option." +"It may also be necessary to move imports out of the top level of code if some of the " +"modules are platform-specific. In that case, it may not even be possible to import " +"all of the modules at the top of the file. In this case, importing the correct " +"modules in the corresponding platform-specific code is a good option." msgstr "" -"Il peut parfois être nécessaire de bouger des imports de modules hors de " -"l'espace de noms du module si ces modules dépendent de la machine. Dans ce " -"cas de figure, il est parfois impossible d'importer tous les modules au " -"début du fichier. Dans ce cas, faire l'import des bons modules dans le code " -"correspondant est une bonne façon de faire." +"Il peut parfois être nécessaire de bouger des imports de modules hors de l'espace de " +"noms du module si ces modules dépendent de la machine. Dans ce cas de figure, il est " +"parfois impossible d'importer tous les modules au début du fichier. Dans ce cas, " +"faire l'import des bons modules dans le code correspondant est une bonne façon de " +"faire." #: ../Doc/faq/programming.rst:325 msgid "" -"Only move imports into a local scope, such as inside a function definition, " -"if it's necessary to solve a problem such as avoiding a circular import or " -"are trying to reduce the initialization time of a module. This technique is " -"especially helpful if many of the imports are unnecessary depending on how " -"the program executes. You may also want to move imports into a function if " -"the modules are only ever used in that function. Note that loading a module " -"the first time may be expensive because of the one time initialization of " -"the module, but loading a module multiple times is virtually free, costing " -"only a couple of dictionary lookups. Even if the module name has gone out " -"of scope, the module is probably available in :data:`sys.modules`." -msgstr "" -"Les imports ne devraient être déplacés dans un espace local, comme dans la " -"définition d'une fonction, que si cela est nécessaire pour résoudre un " -"problème tel qu'éviter des dépendances circulaires ou réduire le temps " -"d'initialisation d'un module. Cette technique est particulièrement utile si " -"la majorité des imports est superflue selon le flux d'exécution du " -"programme. Il est également pertinent de déplacer des imports dans une " -"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " -"chargement d'un module peut être coûteux à cause du coût fixe " -"d'initialisation d'un module, mais charger un module plusieurs fois est " -"virtuellement gratuit, cela ne coûte que quelques recherches dans un " -"dictionnaire. Même si le nom du module est sorti du contexte, le module est " -"probablement disponible dans :data:`sys.modules`." +"Only move imports into a local scope, such as inside a function definition, if it's " +"necessary to solve a problem such as avoiding a circular import or are trying to " +"reduce the initialization time of a module. This technique is especially helpful if " +"many of the imports are unnecessary depending on how the program executes. You may " +"also want to move imports into a function if the modules are only ever used in that " +"function. Note that loading a module the first time may be expensive because of the " +"one time initialization of the module, but loading a module multiple times is " +"virtually free, costing only a couple of dictionary lookups. Even if the module name " +"has gone out of scope, the module is probably available in :data:`sys.modules`." +msgstr "" +"Les imports ne devraient être déplacés dans un espace local, comme dans la définition " +"d'une fonction, que si cela est nécessaire pour résoudre un problème tel qu'éviter " +"des dépendances circulaires ou réduire le temps d'initialisation d'un module. Cette " +"technique est particulièrement utile si la majorité des imports est superflue selon " +"le flux d'exécution du programme. Il est également pertinent de déplacer des imports " +"dans une fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe d'initialisation d'un " +"module, mais charger un module plusieurs fois est virtuellement gratuit, cela ne " +"coûte que quelques recherches dans un dictionnaire. Même si le nom du module est " +"sorti du contexte, le module est probablement disponible dans :data:`sys.modules`." #: ../Doc/faq/programming.rst:338 msgid "Why are default values shared between objects?" msgstr "Pourquoi les arguments par défaut sont partagés entre les objets ?" #: ../Doc/faq/programming.rst:340 -msgid "" -"This type of bug commonly bites neophyte programmers. Consider this " -"function::" +msgid "This type of bug commonly bites neophyte programmers. Consider this function::" msgstr "" -"C'est un problème que rencontrent souvent le programmeurs néophytes. " -"Examinons la fonction suivante ::" +"C'est un problème que rencontrent souvent le programmeurs néophytes. Examinons la " +"fonction suivante ::" #: ../Doc/faq/programming.rst:347 msgid "" -"The first time you call this function, ``mydict`` contains a single item. " -"The second time, ``mydict`` contains two items because when ``foo()`` begins " -"executing, ``mydict`` starts out with an item already in it." +"The first time you call this function, ``mydict`` contains a single item. The second " +"time, ``mydict`` contains two items because when ``foo()`` begins executing, " +"``mydict`` starts out with an item already in it." msgstr "" -"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " -"élément. Au deuxième appel, ``mydict`` contient deux éléments car quand " -"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul élément. Au " +"deuxième appel, ``mydict`` contient deux éléments car quand ``foo()`` commence son " +"exécution, ``mydict`` contient déjà un élément." #: ../Doc/faq/programming.rst:351 msgid "" -"It is often expected that a function call creates new objects for default " -"values. This is not what happens. Default values are created exactly once, " -"when the function is defined. If that object is changed, like the " -"dictionary in this example, subsequent calls to the function will refer to " -"this changed object." +"It is often expected that a function call creates new objects for default values. " +"This is not what happens. Default values are created exactly once, when the function " +"is defined. If that object is changed, like the dictionary in this example, " +"subsequent calls to the function will refer to this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau " -"objets pour les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " -"défaut ne sont créées une et une seule fois, au moment où la fonction est " -"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " -"appels suivants à cette fonction font référence à l'objet ainsi modifié." +"On est souvent amené à croire qu'un appel de fonction créé des nouveau objets pour " +"les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par défaut ne sont " +"créées une et une seule fois, au moment où la fonction est définie. Si l'objet est " +"modifié, comme le dictionnaire dans cet exemple, les appels suivants à cette fonction " +"font référence à l'objet ainsi modifié." #: ../Doc/faq/programming.rst:356 msgid "" -"By definition, immutable objects such as numbers, strings, tuples, and " -"``None``, are safe from change. Changes to mutable objects such as " -"dictionaries, lists, and class instances can lead to confusion." +"By definition, immutable objects such as numbers, strings, tuples, and ``None``, are " +"safe from change. Changes to mutable objects such as dictionaries, lists, and class " +"instances can lead to confusion." msgstr "" -"Par définition, les objets immuables comme les nombres, les chaînes de " -"caractères, les tuples et ``None`` ne sont pas modifiés. Les changements sur " -"des objets muables comme les dictionnaires, les listes et les instances de " -"classe peuvent porter à confusion." +"Par définition, les objets immuables comme les nombres, les chaînes de caractères, " +"les tuples et ``None`` ne sont pas modifiés. Les changements sur des objets muables " +"comme les dictionnaires, les listes et les instances de classe peuvent porter à " +"confusion." #: ../Doc/faq/programming.rst:360 msgid "" -"Because of this feature, it is good programming practice to not use mutable " -"objects as default values. Instead, use ``None`` as the default value and " -"inside the function, check if the parameter is ``None`` and create a new " -"list/dictionary/whatever if it is. For example, don't write::" +"Because of this feature, it is good programming practice to not use mutable objects " +"as default values. Instead, use ``None`` as the default value and inside the " +"function, check if the parameter is ``None`` and create a new list/dictionary/" +"whatever if it is. For example, don't write::" msgstr "" -"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " -"muables pour . Il vaut mieux utiliser ``None`` comme valeur par défaut à " -"l'intérieur de la fonction, vérifier si le paramètre est à ``None`` et créer " -"une nouvelle liste/dictionnaire/autre le cas échéant. Par exemple, il ne " -"faut pas écrire ::" +"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets muables " +"pour . Il vaut mieux utiliser ``None`` comme valeur par défaut à l'intérieur de la " +"fonction, vérifier si le paramètre est à ``None`` et créer une nouvelle liste/" +"dictionnaire/autre le cas échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:368 msgid "but::" @@ -606,44 +646,39 @@ msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:374 msgid "" -"This feature can be useful. When you have a function that's time-consuming " -"to compute, a common technique is to cache the parameters and the resulting " -"value of each call to the function, and return the cached value if the same " -"value is requested again. This is called \"memoizing\", and can be " -"implemented like this::" +"This feature can be useful. When you have a function that's time-consuming to " +"compute, a common technique is to cache the parameters and the resulting value of " +"each call to the function, and return the cached value if the same value is requested " +"again. This is called \"memoizing\", and can be implemented like this::" msgstr "" -"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " -"paramètres et la valeur de retour de chacun des appels d'une fonction " -"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " -"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les paramètres " +"et la valeur de retour de chacun des appels d'une fonction coûteuse à exécuter, et de " +"renvoyer la valeur stockée en cache si le même appel est ré-effectué. C'est la " +"technique dite de « mémoïsation », qui s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:389 msgid "" -"You could use a global variable containing a dictionary instead of the " -"default value; it's a matter of taste." +"You could use a global variable containing a dictionary instead of the default value; " +"it's a matter of taste." msgstr "" -"Il est possible d'utiliser une variable globale contenant un dictionnaire à " -"la place de la valeur par défaut ; ce n'est qu'une question de goût." +"Il est possible d'utiliser une variable globale contenant un dictionnaire à la place " +"de la valeur par défaut ; ce n'est qu'une question de goût." #: ../Doc/faq/programming.rst:394 -msgid "" -"How can I pass optional or keyword parameters from one function to another?" -msgstr "" -"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" +msgid "How can I pass optional or keyword parameters from one function to another?" +msgstr "Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" #: ../Doc/faq/programming.rst:396 msgid "" -"Collect the arguments using the ``*`` and ``**`` specifiers in the " -"function's parameter list; this gives you the positional arguments as a " -"tuple and the keyword arguments as a dictionary. You can then pass these " -"arguments when calling another function by using ``*`` and ``**``::" +"Collect the arguments using the ``*`` and ``**`` specifiers in the function's " +"parameter list; this gives you the positional arguments as a tuple and the keyword " +"arguments as a dictionary. You can then pass these arguments when calling another " +"function by using ``*`` and ``**``::" msgstr "" -"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " -"dans la liste des paramètres de la fonction ; ceci donne les arguments " -"positionnels sous la forme d'un tuple et les arguments nommés sous forme de " -"dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` dans la " +"liste des paramètres de la fonction ; ceci donne les arguments positionnels sous la " +"forme d'un tuple et les arguments nommés sous forme de dictionnaire. Ces arguments " +"peuvent être passés à une autre fonction en utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:415 msgid "What is the difference between arguments and parameters?" @@ -651,25 +686,24 @@ msgstr "Quelle est la différence entre les arguments et les paramètres ?" #: ../Doc/faq/programming.rst:417 msgid "" -":term:`Parameters ` are defined by the names that appear in a " -"function definition, whereas :term:`arguments ` are the values " -"actually passed to a function when calling it. Parameters define what types " -"of arguments a function can accept. For example, given the function " -"definition::" +":term:`Parameters ` are defined by the names that appear in a function " +"definition, whereas :term:`arguments ` are the values actually passed to a " +"function when calling it. Parameters define what types of arguments a function can " +"accept. For example, given the function definition::" msgstr "" -"Les :term:`paramètres ` sont les noms qui apparaissent dans une " -"définition de fonction, alors que les :term:`arguments ` sont les " -"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" -"ci. Les paramètres définissent les types d'argument qu'une fonction accepte. " -"Ainsi, avec la définition de fonction suivante ::" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une définition " +"de fonction, alors que les :term:`arguments ` sont les valeurs qui sont " +"réellement passées à une fonction lors de l'appel de celle-ci. Les paramètres " +"définissent les types d'argument qu'une fonction accepte. Ainsi, avec la définition " +"de fonction suivante ::" #: ../Doc/faq/programming.rst:425 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" -"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" +"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de ``func`` " +"avec, par exemple ::" #: ../Doc/faq/programming.rst:430 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." @@ -684,11 +718,9 @@ msgid "If you wrote code like::" msgstr "Si vous avez écrit du code comme : ::" #: ../Doc/faq/programming.rst:446 -msgid "" -"you might be wondering why appending an element to ``y`` changed ``x`` too." +msgid "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" -"vous vous demandez peut-être pourquoi ajouter un élément à ``y`` a aussi " -"changé ``x``." +"vous vous demandez peut-être pourquoi ajouter un élément à ``y`` a aussi changé ``x``." #: ../Doc/faq/programming.rst:448 msgid "There are two factors that produce this result:" @@ -696,33 +728,31 @@ msgstr "Il y a deux raisons qui conduisent à ce comportement :" #: ../Doc/faq/programming.rst:450 msgid "" -"Variables are simply names that refer to objects. Doing ``y = x`` doesn't " -"create a copy of the list -- it creates a new variable ``y`` that refers to " -"the same object ``x`` refers to. This means that there is only one object " -"(the list), and both ``x`` and ``y`` refer to it." +"Variables are simply names that refer to objects. Doing ``y = x`` doesn't create a " +"copy of the list -- it creates a new variable ``y`` that refers to the same object " +"``x`` refers to. This means that there is only one object (the list), and both ``x`` " +"and ``y`` refer to it." msgstr "" -"Les variable ne sont que des noms qui font référence à des objets. La ligne " -"``y = x`` ne crée pas une copie de la liste -- elle crée une nouvelle " -"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " -"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." +"Les variable ne sont que des noms qui font référence à des objets. La ligne ``y = x`` " +"ne crée pas une copie de la liste -- elle crée une nouvelle variable ``y`` qui pointe " +"sur le même objet que ``x``. Ceci signifie qu'il n'existe qu'un seul objet (la liste) " +"auquel ``x`` et ``y`` font référence." #: ../Doc/faq/programming.rst:454 -msgid "" -"Lists are :term:`mutable`, which means that you can change their content." +msgid "Lists are :term:`mutable`, which means that you can change their content." msgstr "" -"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " -"être modifié." +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut être " +"modifié." #: ../Doc/faq/programming.rst:456 msgid "" -"After the call to :meth:`~list.append`, the content of the mutable object " -"has changed from ``[]`` to ``[10]``. Since both the variables refer to the " -"same object, using either name accesses the modified value ``[10]``." +"After the call to :meth:`~list.append`, the content of the mutable object has changed " +"from ``[]`` to ``[10]``. Since both the variables refer to the same object, using " +"either name accesses the modified value ``[10]``." msgstr "" -"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " -"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " -"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " -"des noms." +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est passé de " +"``[]`` à ``[10]``. Vu que les deux variables font référence au même objet, il est " +"possible d'accéder à la valeur modifiée ``[10]`` avec chacun des noms." #: ../Doc/faq/programming.rst:460 msgid "If we instead assign an immutable object to ``x``::" @@ -730,58 +760,53 @@ msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:470 msgid "" -"we can see that in this case ``x`` and ``y`` are not equal anymore. This is " -"because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " -"not mutating the int ``5`` by incrementing its value; instead, we are " -"creating a new object (the int ``6``) and assigning it to ``x`` (that is, " -"changing which object ``x`` refers to). After this assignment we have two " -"objects (the ints ``6`` and ``5``) and two variables that refer to them " -"(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." -msgstr "" -"on observe que ``x`` et ``y``ne sont ici plus égales. Les entiers sont des :" -"term:`immuables`, et ``x = x + 1`` ne change pas l'entier ``5`` en " -"incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " -"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " -"référence ``x``). Après cette affectation on a deux objets (les entiers " -"``6`` et ``5``) et deux variables auxquelles qui font référence à ces deux " -"objets (``x`` fait désormais référence à ``6`` mais ``y`` fait toujours " -"référence à ``5`)." +"we can see that in this case ``x`` and ``y`` are not equal anymore. This is because " +"integers are :term:`immutable`, and when we do ``x = x + 1`` we are not mutating the " +"int ``5`` by incrementing its value; instead, we are creating a new object (the int " +"``6``) and assigning it to ``x`` (that is, changing which object ``x`` refers to). " +"After this assignment we have two objects (the ints ``6`` and ``5``) and two " +"variables that refer to them (``x`` now refers to ``6`` but ``y`` still refers to " +"``5``)." +msgstr "" +"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des immuables " +"(:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` en incrémentant sa " +"valeur. Au contraire, un nouvel objet est créé (l'entier ``6``) et affecté à ``x`` " +"(c'est à dire qu'on change l'objet auquel fait référence ``x``). Après cette " +"affectation on a deux objets (les entiers ``6`` et ``5``) et deux variables qui font " +"référence à ces deux objets (``x`` fait désormais référence à ``6`` mais ``y`` fait " +"toujours référence à ``5``)." #: ../Doc/faq/programming.rst:478 msgid "" -"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " -"object, whereas superficially similar operations (for example ``y = y + " -"[10]`` and ``sorted(y)``) create a new object. In general in Python (and in " -"all cases in the standard library) a method that mutates an object will " -"return ``None`` to help avoid getting the two types of operations confused. " -"So if you mistakenly write ``y.sort()`` thinking it will give you a sorted " -"copy of ``y``, you'll instead end up with ``None``, which will likely cause " -"your program to generate an easily diagnosed error." -msgstr "" -"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " -"modifient l'objet, alors que des opérations identiques en apparence (par " -"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " -"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " -"même systématique dans la bibliothèque standard) pour éviter la confusion " -"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " -"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " -"le programme à générer une erreur facile à diagnostiquer." +"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the object, " +"whereas superficially similar operations (for example ``y = y + [10]`` and " +"``sorted(y)``) create a new object. In general in Python (and in all cases in the " +"standard library) a method that mutates an object will return ``None`` to help avoid " +"getting the two types of operations confused. So if you mistakenly write ``y." +"sort()`` thinking it will give you a sorted copy of ``y``, you'll instead end up with " +"``None``, which will likely cause your program to generate an easily diagnosed error." +msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) modifient " +"l'objet, alors que des opérations identiques en apparence (par exemple ``y = y + " +"[10]`` et ``sorted(y)``) créent un nouvel objet. En général, en Python, une méthode " +"qui modifie un objet renvoie ``None`` (c'est même systématique dans la bibliothèque " +"standard) pour éviter la confusion entre les deux opérations. Donc écrire par erreur " +"``y.sort()`` en pensant obtenir une copie triée de ``y`` donne ``None``, ce qui " +"conduit très souvent le programme à générer une erreur facile à diagnostiquer." #: ../Doc/faq/programming.rst:487 msgid "" -"However, there is one class of operations where the same operation sometimes " -"has different behaviors with different types: the augmented assignment " -"operators. For example, ``+=`` mutates lists but not tuples or ints " -"(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " -"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " -"1`` create new objects)." +"However, there is one class of operations where the same operation sometimes has " +"different behaviors with different types: the augmented assignment operators. For " +"example, ``+=`` mutates lists but not tuples or ints (``a_list += [1, 2, 3]`` is " +"equivalent to ``a_list.extend([1, 2, 3])`` and mutates ``a_list``, whereas " +"``some_tuple += (1, 2, 3)`` and ``some_int += 1`` create new objects)." msgstr "" -"Il existe cependant une classe d'opérations qui se comporte différemment " -"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" -"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " -"[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " -"alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " -"nouveaux objets)." +"Il existe cependant une classe d'opérations qui se comporte différemment selon le " +"type : les opérateurs d'affectation incrémentaux. Par exemple, ``+=`` modifie les " +"listes mais pas les n-uplets ni les entiers (``a_list += [1, 2, 3]`` équivaut à " +"``a_list.extend([1, 2, 3])`` et modifie ``a_list``, alors que ``some_tuple += (1, 2, " +"3)`` et ``some_int += 1`` créent de nouveaux objets)." #: ../Doc/faq/programming.rst:494 msgid "In other words:" @@ -789,51 +814,48 @@ msgstr "En d'autres termes :" #: ../Doc/faq/programming.rst:496 msgid "" -"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " -"etc.), we can use some specific operations to mutate it and all the " -"variables that refer to it will see the change." +"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, etc.), we " +"can use some specific operations to mutate it and all the variables that refer to it " +"will see the change." msgstr "" -"Sur un objet muable (:class:`list`, :class:`dict`, :class:`set` etc), il est " -"possible d'appliquer des opérations qui modifient cet objet et toutes les " -"variables qui y font référence verront le changement." +"Sur un objet muable (:class:`list`, :class:`dict`, :class:`set` etc), il est possible " +"d'appliquer des opérations qui modifient cet objet et toutes les variables qui y font " +"référence verront le changement." #: ../Doc/faq/programming.rst:499 msgid "" -"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " -"etc.), all the variables that refer to it will always see the same value, " -"but operations that transform that value into a new value always return a " -"new object." +"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, etc.), " +"all the variables that refer to it will always see the same value, but operations " +"that transform that value into a new value always return a new object." msgstr "" -"Sur un objet immuable (:class:`str`, :class:`int`, :class:`tuple` etc), " -"toutes les variables qui y font référence renvoient la même valeur, mais les " -"opérations qui transforment cette valeur en une nouvelle valeur renvoient " -"toujours un nouvel objet." +"Sur un objet immuable (:class:`str`, :class:`int`, :class:`tuple` etc), toutes les " +"variables qui y font référence renvoient la même valeur, mais les opérations qui " +"transforment cette valeur en une nouvelle valeur renvoient toujours un nouvel objet." #: ../Doc/faq/programming.rst:504 msgid "" -"If you want to know if two variables refer to the same object or not, you " -"can use the :keyword:`is` operator, or the built-in function :func:`id`." +"If you want to know if two variables refer to the same object or not, you can use " +"the :keyword:`is` operator, or the built-in function :func:`id`." msgstr "" -"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " -"savoir si deux variables font référence au même objet." +"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de savoir si " +"deux variables font référence au même objet." #: ../Doc/faq/programming.rst:509 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" -"Comment écrire une fonction qui modifie ses paramètres ? (passage par " -"référence)" +"Comment écrire une fonction qui modifie ses paramètres ? (passage par référence)" #: ../Doc/faq/programming.rst:511 msgid "" -"Remember that arguments are passed by assignment in Python. Since " -"assignment just creates references to objects, there's no alias between an " -"argument name in the caller and callee, and so no call-by-reference per se. " -"You can achieve the desired effect in a number of ways." +"Remember that arguments are passed by assignment in Python. Since assignment just " +"creates references to objects, there's no alias between an argument name in the " +"caller and callee, and so no call-by-reference per se. You can achieve the desired " +"effect in a number of ways." msgstr "" -"En Python, les arguments sont passés par copie. Vu qu'une copie créé des " -"références à des objets, il n'y pas de lien entre un argument dans l'appel " -"de la fonction et sa définition, et donc pas de passage par référence en " -"soi. Il y a cependant plusieurs façon d'en émuler un." +"En Python, les arguments sont passés par copie. Vu qu'une copie créé des références à " +"des objets, il n'y pas de lien entre un argument dans l'appel de la fonction et sa " +"définition, et donc pas de passage par référence en soi. Il y a cependant plusieurs " +"façon d'en émuler un." #: ../Doc/faq/programming.rst:516 msgid "By returning a tuple of the results::" @@ -844,12 +866,11 @@ msgid "This is almost always the clearest solution." msgstr "C'est presque toujours la meilleure solution." #: ../Doc/faq/programming.rst:529 -msgid "" -"By using global variables. This isn't thread-safe, and is not recommended." +msgid "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" -"En utilisant des variables globales. Cette approche ne fonctionne pas dans " -"des contextes à plusieurs fils d'exécution (pas *thread-safe*), et n'est " -"donc pas recommandée." +"En utilisant des variables globales. Cette approche ne fonctionne pas dans des " +"contextes à plusieurs fils d'exécution (pas *thread-safe*), et n'est donc pas " +"recommandée." #: ../Doc/faq/programming.rst:531 msgid "By passing a mutable (changeable in-place) object::" @@ -870,8 +891,7 @@ msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." #: ../Doc/faq/programming.rst:569 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"Votre meilleure option est de renvoyer un n-uplet contenant les différents " -"résultats." +"Votre meilleure option est de renvoyer un n-uplet contenant les différents résultats." #: ../Doc/faq/programming.rst:573 msgid "How do you make a higher order function in Python?" @@ -879,15 +899,14 @@ msgstr "Comment construire une fonction d'ordre supérieur en Python ?" #: ../Doc/faq/programming.rst:575 msgid "" -"You have two choices: you can use nested scopes or you can use callable " -"objects. For example, suppose you wanted to define ``linear(a,b)`` which " -"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " -"scopes::" +"You have two choices: you can use nested scopes or you can use callable objects. For " +"example, suppose you wanted to define ``linear(a,b)`` which returns a function " +"``f(x)`` that computes the value ``a*x+b``. Using nested scopes::" msgstr "" -"Vous avez deux possibilités : vous pouvez utiliser les portées imbriquées ou " -"vous pouvez utiliser des objets appelables. Par exemple, supposons que vous " -"vouliez définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui " -"calcule la valeur ``a*x+b``. En utilisant les portées imbriquées : ::" +"Vous avez deux possibilités : vous pouvez utiliser les portées imbriquées ou vous " +"pouvez utiliser des objets appelables. Par exemple, supposons que vous vouliez " +"définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur ``a*x" +"+b``. En utilisant les portées imbriquées : ::" #: ../Doc/faq/programming.rst:584 msgid "Or using a callable object::" @@ -903,14 +922,13 @@ msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." #: ../Doc/faq/programming.rst:600 msgid "" -"The callable object approach has the disadvantage that it is a bit slower " -"and results in slightly longer code. However, note that a collection of " -"callables can share their signature via inheritance::" +"The callable object approach has the disadvantage that it is a bit slower and results " +"in slightly longer code. However, note that a collection of callables can share " +"their signature via inheritance::" msgstr "" -"L'approche par objet appelable a le désavantage d'être légèrement plus lente " -"et de produire un code légèrement plus long. Cependant, il faut noter qu'une " -"collection d'objet appelables peuvent partager leur signatures par " -"héritage : ::" +"L'approche par objet appelable a le désavantage d'être légèrement plus lente et de " +"produire un code légèrement plus long. Cependant, il faut noter qu'une collection " +"d'objet appelables peuvent partager leur signatures par héritage : ::" #: ../Doc/faq/programming.rst:609 msgid "Object can encapsulate state for several methods::" @@ -918,11 +936,11 @@ msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" #: ../Doc/faq/programming.rst:627 msgid "" -"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " -"same counting variable." +"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the same " +"counting variable." msgstr "" -"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " -"partageant une même variable compteur." +"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions partageant une " +"même variable compteur." #: ../Doc/faq/programming.rst:632 msgid "How do I copy an object in Python?" @@ -930,19 +948,19 @@ msgstr "Comment copier un objet en Python?" #: ../Doc/faq/programming.rst:634 msgid "" -"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " -"case. Not all objects can be copied, but most can." +"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general case. Not " +"all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les " -"objets ne peuvent pas être copiés, mais la plupart le peuvent." +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les objets ne " +"peuvent pas être copiés, mais la plupart le peuvent." #: ../Doc/faq/programming.rst:637 msgid "" -"Some objects can be copied more easily. Dictionaries have a :meth:`~dict." -"copy` method::" +"Some objects can be copied more easily. Dictionaries have a :meth:`~dict.copy` " +"method::" msgstr "" -"Certains objets peuvent être copiés plus facilement. Les dictionnaires ont " -"une méthode :meth:`~dict.copy` ::" +"Certains objets peuvent être copiés plus facilement. Les dictionnaires ont une " +"méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:642 msgid "Sequences can be copied by slicing::" @@ -954,13 +972,13 @@ msgstr "Comment trouver les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:650 msgid "" -"For an instance x of a user-defined class, ``dir(x)`` returns an " -"alphabetized list of the names containing the instance attributes and " -"methods and attributes defined by its class." +"For an instance x of a user-defined class, ``dir(x)`` returns an alphabetized list of " +"the names containing the instance attributes and methods and attributes defined by " +"its class." msgstr "" -"Pour une instance x d'une classe définie par un utilisateur, ``dir(x)`` " -"renvoie une liste alphabétique des noms contenants les attributs de " -"l'instance, et les attributs et méthodes définies par sa classe." +"Pour une instance x d'une classe définie par un utilisateur, ``dir(x)`` renvoie une " +"liste alphabétique des noms contenants les attributs de l'instance, et les attributs " +"et méthodes définies par sa classe." #: ../Doc/faq/programming.rst:656 msgid "How can my code discover the name of an object?" @@ -968,56 +986,52 @@ msgstr "Comment un code peut-il obtenir le nom d'un objet ?" #: ../Doc/faq/programming.rst:658 msgid "" -"Generally speaking, it can't, because objects don't really have names. " -"Essentially, assignment always binds a name to a value; The same is true of " -"``def`` and ``class`` statements, but in that case the value is a callable. " -"Consider the following code::" +"Generally speaking, it can't, because objects don't really have names. Essentially, " +"assignment always binds a name to a value; The same is true of ``def`` and ``class`` " +"statements, but in that case the value is a callable. Consider the following code::" msgstr "" -"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " -"parler. Schématiquement, l'affectation fait correspondre un nom à une " -"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, sa " -"que, dans ce cas, la valeur est appelable. Par exemple, dans le code " -"suivant : ::" +"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement parler. " +"Schématiquement, l'affectation fait correspondre un nom à une valeur ; c'est vrai " +"aussi pour les instructions ``def`` et ``class``, sa que, dans ce cas, la valeur est " +"appelable. Par exemple, dans le code suivant : ::" #: ../Doc/faq/programming.rst:674 msgid "" -"Arguably the class has a name: even though it is bound to two names and " -"invoked through the name B the created instance is still reported as an " -"instance of class A. However, it is impossible to say whether the " -"instance's name is a or b, since both names are bound to the same value." +"Arguably the class has a name: even though it is bound to two names and invoked " +"through the name B the created instance is still reported as an instance of class A. " +"However, it is impossible to say whether the instance's name is a or b, since both " +"names are bound to the same value." msgstr "" -"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à " -"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " -"tout de même être une instance de la classe A. De même, Il est impossible de " -"dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " -"même valeur." +"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à deux noms, " +"et qu'elle soit appelée via le nom B, l'instance créée déclare tout de même être une " +"instance de la classe A. De même, Il est impossible de dire si le nom de l'instance " +"est a ou b, les deux noms étant attachés à la même valeur." #: ../Doc/faq/programming.rst:679 msgid "" -"Generally speaking it should not be necessary for your code to \"know the " -"names\" of particular values. Unless you are deliberately writing " -"introspective programs, this is usually an indication that a change of " -"approach might be beneficial." +"Generally speaking it should not be necessary for your code to \"know the names\" of " +"particular values. Unless you are deliberately writing introspective programs, this " +"is usually an indication that a change of approach might be beneficial." msgstr "" -"De façon générale, une application ne devrait pas avoir besoin de « " -"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " -"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " -"changement d'approche serait bénéfique." +"De façon générale, une application ne devrait pas avoir besoin de « connaître le nom " +"» d'une valeur particulière. À moins d'être délibérément en train d'écrire un " +"programme introspectif, c'est souvent l'indication qu'un changement d'approche serait " +"bénéfique." #: ../Doc/faq/programming.rst:684 msgid "" -"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " -"to this question:" +"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer to this " +"question:" msgstr "" -"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " -"analogie pour répondre à cette question :" +"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente analogie pour " +"répondre à cette question :" #: ../Doc/faq/programming.rst:687 msgid "" -"The same way as you get the name of that cat you found on your porch: the " -"cat (object) itself cannot tell you its name, and it doesn't really care -- " -"so the only way to find out what it's called is to ask all your neighbours " -"(namespaces) if it's their cat (object)..." +"The same way as you get the name of that cat you found on your porch: the cat " +"(object) itself cannot tell you its name, and it doesn't really care -- so the only " +"way to find out what it's called is to ask all your neighbours (namespaces) if it's " +"their cat (object)..." msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " "chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " @@ -1026,11 +1040,11 @@ msgstr "" #: ../Doc/faq/programming.rst:692 msgid "" -"....and don't be surprised if you'll find that it's known by many names, or " -"no name at all!" +"....and don't be surprised if you'll find that it's known by many names, or no name " +"at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " -"noms différents, ou pas de nom du tout !" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs noms " +"différents, ou pas de nom du tout !" #: ../Doc/faq/programming.rst:697 msgid "What's up with the comma operator's precedence?" @@ -1038,17 +1052,15 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:699 msgid "Comma is not an operator in Python. Consider this session::" -msgstr "" -"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" +msgstr "La virgule n'est pas un opérateur en Python. Observez le code suivant ::" #: ../Doc/faq/programming.rst:704 msgid "" -"Since the comma is not an operator, but a separator between expressions the " -"above is evaluated as if you had entered::" +"Since the comma is not an operator, but a separator between expressions the above is " +"evaluated as if you had entered::" msgstr "" -"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " -"expressions, l'expression ci-dessus, est évaluée de la même façon que si " -"vous aviez écrit ::" +"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux expressions, " +"l'expression ci-dessus, est évaluée de la même façon que si vous aviez écrit ::" #: ../Doc/faq/programming.rst:709 msgid "not::" @@ -1056,13 +1068,12 @@ msgstr "et non ::" #: ../Doc/faq/programming.rst:713 msgid "" -"The same is true of the various assignment operators (``=``, ``+=`` etc). " -"They are not truly operators but syntactic delimiters in assignment " -"statements." +"The same is true of the various assignment operators (``=``, ``+=`` etc). They are " +"not truly operators but syntactic delimiters in assignment statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce " -"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " -"dans les instructions d'assignation." +"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce ne sont " +"pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques dans les " +"instructions d'assignation." #: ../Doc/faq/programming.rst:718 msgid "Is there an equivalent of C's \"?:\" ternary operator?" @@ -1074,36 +1085,34 @@ msgstr "Oui. Sa syntaxe est la suivante : ::" #: ../Doc/faq/programming.rst:727 msgid "" -"Before this syntax was introduced in Python 2.5, a common idiom was to use " -"logical operators::" +"Before this syntax was introduced in Python 2.5, a common idiom was to use logical " +"operators::" msgstr "" -"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" +"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant d'utiliser " +"les opérateurs de logique ::" #: ../Doc/faq/programming.rst:732 msgid "" -"However, this idiom is unsafe, as it can give wrong results when *on_true* " -"has a false boolean value. Therefore, it is always better to use the ``... " -"if ... else ...`` form." +"However, this idiom is unsafe, as it can give wrong results when *on_true* has a " +"false boolean value. Therefore, it is always better to use the ``... if ... else ..." +"`` form." msgstr "" -"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à " -"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " -"if ... else ...``." +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à la valeur " +"booléenne fausse. Il faut donc toujours utiliser la forme ``... if ... else ...``." #: ../Doc/faq/programming.rst:738 msgid "Is it possible to write obfuscated one-liners in Python?" msgstr "" -"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " -"en Python ?" +"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne en " +"Python ?" #: ../Doc/faq/programming.rst:740 msgid "" -"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" -"lambda`. See the following three examples, due to Ulf Bartelt::" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!lambda`. " +"See the following three examples, due to Ulf Bartelt::" msgstr "" -"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" -"keyword:`lambda`. Par exemple les trois morceaux de code suivants, créés par " -"Ulf Bartelt ::" +"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :keyword:" +"`lambda`. Par exemple les trois morceaux de code suivants, créés par Ulf Bartelt ::" #: ../Doc/faq/programming.rst:767 msgid "Don't try this at home, kids!" @@ -1147,24 +1156,23 @@ msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" #: ../Doc/faq/programming.rst:811 msgid "" -"To specify an octal digit, precede the octal value with a zero, and then a " -"lower or uppercase \"o\". For example, to set the variable \"a\" to the " -"octal value \"10\" (8 in decimal), type::" +"To specify an octal digit, precede the octal value with a zero, and then a lower or " +"uppercase \"o\". For example, to set the variable \"a\" to the octal value \"10\" (8 " +"in decimal), type::" msgstr "" -"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " -"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " -"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" +"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, puis un \"o" +"\" majuscule ou minuscule. Par exemple pour affecter la valeur octale \"10\" (8 en " +"décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:819 msgid "" -"Hexadecimal is just as easy. Simply precede the hexadecimal number with a " -"zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " -"specified in lower or uppercase. For example, in the Python interpreter::" +"Hexadecimal is just as easy. Simply precede the hexadecimal number with a zero, and " +"then a lower or uppercase \"x\". Hexadecimal digits can be specified in lower or " +"uppercase. For example, in the Python interpreter::" msgstr "" -"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " -"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " -"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " -"l'interpréteur Python ::" +"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal par un " +"zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux peuvent être " +"écrit en majuscules ou en minuscules. Par exemple, dans l'interpréteur Python ::" #: ../Doc/faq/programming.rst:832 msgid "Why does -22 // 10 return -3?" @@ -1172,35 +1180,34 @@ msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" #: ../Doc/faq/programming.rst:834 msgid "" -"It's primarily driven by the desire that ``i % j`` have the same sign as " -"``j``. If you want that, and also want::" +"It's primarily driven by the desire that ``i % j`` have the same sign as ``j``. If " +"you want that, and also want::" msgstr "" -"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez cela, vous voulez aussi : ::" +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que j. Si " +"vous voulez cela, vous voulez aussi : ::" #: ../Doc/faq/programming.rst:839 msgid "" -"then integer division has to return the floor. C also requires that " -"identity to hold, and then compilers that truncate ``i // j`` need to make " -"``i % j`` have the same sign as ``i``." +"then integer division has to return the floor. C also requires that identity to " +"hold, and then compilers that truncate ``i // j`` need to make ``i % j`` have the " +"same sign as ``i``." msgstr "" -"alors la division entière doit renvoyer l'entier inférieur. Le C demande " -"aussi à ce que cette égalité soit vérifiée, et donc les compilateurs qui " -"tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." +"alors la division entière doit renvoyer l'entier inférieur. Le C demande aussi à ce " +"que cette égalité soit vérifiée, et donc les compilateurs qui tronquent ``i // j`` " +"ont besoin que ``i % j`` ait le même signe que ``i``." #: ../Doc/faq/programming.rst:843 msgid "" -"There are few real use cases for ``i % j`` when ``j`` is negative. When " -"``j`` is positive, there are many, and in virtually all of them it's more " -"useful for ``i % j`` to be ``>= 0``. If the clock says 10 now, what did it " -"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " -"bug waiting to bite." +"There are few real use cases for ``i % j`` when ``j`` is negative. When ``j`` is " +"positive, there are many, and in virtually all of them it's more useful for ``i % j`` " +"to be ``>= 0``. If the clock says 10 now, what did it say 200 hours ago? ``-190 % " +"12 == 2`` is useful; ``-190 % 12 == -10`` is a bug waiting to bite." msgstr "" -"Il y a peu de cas d'utilisation réels pour ``i%j`` quand ``j`` est négatif. " -"Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il " -"est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche *10h* " -"maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " -"utile; ``-190 % 12 == -10`` est un bogue en puissance." +"Il y a peu de cas d'utilisation réels pour ``i%j`` quand ``j`` est négatif. Quand " +"``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il est plus utile " +"que ``i % j`` soit ``>=0``. Si l'horloge affiche *10h* maintenant, qu'affichait-elle " +"il y a 200 heures ? ``-190 % 12 == 2`` est utile; ``-190 % 12 == -10`` est un bogue " +"en puissance." #: ../Doc/faq/programming.rst:851 msgid "How do I convert a string to a number?" @@ -1208,29 +1215,28 @@ msgstr "Comment convertir une chaîne de caractère en nombre?" #: ../Doc/faq/programming.rst:853 msgid "" -"For integers, use the built-in :func:`int` type constructor, e.g. " -"``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " -"e.g. ``float('144') == 144.0``." +"For integers, use the built-in :func:`int` type constructor, e.g. ``int('144') == " +"144``. Similarly, :func:`float` converts to floating-point, e.g. ``float('144') == " +"144.0``." msgstr "" -"Pour les entiers, utilisez la fonction native :func:`int` de type " -"constructeur, par exemple ``int('144') == 144``. De façon similaire, :func:" -"`float` convertit en valeur flottante, par exemple ``float('144') == 144.0``." +"Pour les entiers, utilisez la fonction native :func:`int` de type constructeur, par " +"exemple ``int('144') == 144``. De façon similaire, :func:`float` convertit en valeur " +"flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:857 msgid "" -"By default, these interpret the number as decimal, so that ``int('0144') == " -"144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " -"takes the base to convert from as a second optional argument, so " -"``int('0x144', 16) == 324``. If the base is specified as 0, the number is " -"interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " -"indicates a hex number." +"By default, these interpret the number as decimal, so that ``int('0144') == 144`` and " +"``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` takes the base to " +"convert from as a second optional argument, so ``int('0x144', 16) == 324``. If the " +"base is specified as 0, the number is interpreted using Python's rules: a leading " +"'0o' indicates octal, and '0x' indicates a hex number." msgstr "" -"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " -"telle façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" -"`ValueError`. ``int(string, base)`` prend la base dans laquelle convertir " -"dans le second argument (optionnel), donc ``int('0x144', 16) == 324``. Si la " -"base donnée est 0, le nombre est interprété selon les règles Python : un " -"préfixe ``0o`` indique de l'octal, et ``0x`` indique de l'hexadécimal." +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de telle " +"façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:`ValueError`. " +"``int(string, base)`` prend la base dans laquelle convertir dans le second argument " +"(optionnel), donc ``int('0x144', 16) == 324``. Si la base donnée est 0, le nombre est " +"interprété selon les règles Python : un préfixe ``0o`` indique de l'octal, et ``0x`` " +"indique de l'hexadécimal." #: ../Doc/faq/programming.rst:863 msgid "" @@ -1251,14 +1257,13 @@ msgstr "" #: ../Doc/faq/programming.rst:870 msgid "" -":func:`eval` also has the effect of interpreting numbers as Python " -"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " -"does not allow leading '0' in a decimal number (except '0')." +":func:`eval` also has the effect of interpreting numbers as Python expressions, so " +"that e.g. ``eval('09')`` gives a syntax error because Python does not allow leading " +"'0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " -"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " -"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " -"l'exception du nombre '0')." +":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des expressions " +"Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, parce que Python ne " +"permet pas les '0' en tête d'un nombre décimal (à l'exception du nombre '0')." #: ../Doc/faq/programming.rst:876 msgid "How do I convert a number to a string?" @@ -1267,19 +1272,17 @@ msgstr "Comment convertir un nombre en chaîne de caractères ?" #: ../Doc/faq/programming.rst:878 msgid "" "To convert, e.g., the number 144 to the string '144', use the built-in type " -"constructor :func:`str`. If you want a hexadecimal or octal representation, " -"use the built-in functions :func:`hex` or :func:`oct`. For fancy " -"formatting, see the :ref:`f-strings` and :ref:`formatstrings` sections, e.g. " -"``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." -"format(1.0/3.0)`` yields ``'0.333'``." -msgstr "" -"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " -"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " -"représentation hexadécimale ou octale, il faut utiliser les fonctions " -"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" -"conventionnelles, se référer au sections :ref:`f-strings` et :ref:" -"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" -"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." +"constructor :func:`str`. If you want a hexadecimal or octal representation, use the " +"built-in functions :func:`hex` or :func:`oct`. For fancy formatting, see the :ref:`f-" +"strings` and :ref:`formatstrings` sections, e.g. ``\"{:04d}\".format(144)`` yields " +"``'0144'`` and ``\"{:.3f}\".format(1.0/3.0)`` yields ``'0.333'``." +msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères '144', il " +"faut utiliser la fonction native :func:`str`. Pour obtenir la représentation " +"hexadécimale ou octale, il faut utiliser les fonctions natives :func:`hex` ou :func:" +"`oct`. Pour des représentations non-conventionnelles, se référer au sections :ref:`f-" +"strings` et :ref:`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` " +"et ``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." #: ../Doc/faq/programming.rst:887 msgid "How do I modify a string in place?" @@ -1287,24 +1290,20 @@ msgstr "Comment modifier une chaîne de caractère « en place » ?" #: ../Doc/faq/programming.rst:889 msgid "" -"You can't, because strings are immutable. In most situations, you should " -"simply construct a new string from the various parts you want to assemble it " -"from. However, if you need an object with the ability to modify in-place " -"unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " -"module::" +"You can't, because strings are immutable. In most situations, you should simply " +"construct a new string from the various parts you want to assemble it from. However, " +"if you need an object with the ability to modify in-place unicode data, try using an :" +"class:`io.StringIO` object or the :mod:`array` module::" msgstr "" -"C'est impossible car les chaînes de caractères ne sont pas des objets " -"muables. Dans la plupart des cas, il faut tout simplement construire une " -"nouvelle chaîne à partir des morceaux désirés de l'ancienne. Si toutefois " -"vous avez besoin d'un objet capable de modifier de la donnée unicode « en " -"place », essayez d'utiliser un objet :class:`io.StringIO` ou le module :mod:" -"`array` ::" +"C'est impossible car les chaînes de caractères ne sont pas des objets muables. Dans " +"la plupart des cas, il faut tout simplement construire une nouvelle chaîne à partir " +"des morceaux désirés de l'ancienne. Si toutefois vous avez besoin d'un objet capable " +"de modifier de la donnée unicode « en place », essayez d'utiliser un objet :class:`io." +"StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:919 msgid "How do I use strings to call functions/methods?" -msgstr "" -"Comment utiliser des chaînes de caractères pour appeler des fonctions/" -"méthodes?" +msgstr "Comment utiliser des chaînes de caractères pour appeler des fonctions/méthodes?" #: ../Doc/faq/programming.rst:921 msgid "There are various techniques." @@ -1313,15 +1312,13 @@ msgstr "Il y a plusieurs façons de faire." #: ../Doc/faq/programming.rst:923 msgid "" "The best is to use a dictionary that maps strings to functions. The primary " -"advantage of this technique is that the strings do not need to match the " -"names of the functions. This is also the primary technique used to emulate " -"a case construct::" +"advantage of this technique is that the strings do not need to match the names of the " +"functions. This is also the primary technique used to emulate a case construct::" msgstr "" -"La meilleure est d'utiliser un dictionnaire qui fait correspondre les " -"chaînes de caractères à des fonctions. Le principal avantage de cette " -"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la façon principale d'imiter la construction \"case" -"\" ::" +"La meilleure est d'utiliser un dictionnaire qui fait correspondre les chaînes de " +"caractères à des fonctions. Le principal avantage de cette technique est que les " +"chaînes n'ont pas besoin d'être égales aux noms de fonctions. C'est aussi la façon " +"principale d'imiter la construction \"case\" ::" #: ../Doc/faq/programming.rst:938 msgid "Use the built-in function :func:`getattr`::" @@ -1329,64 +1326,58 @@ msgstr "Utiliser la fonction :func:`getattr` ::" #: ../Doc/faq/programming.rst:943 msgid "" -"Note that :func:`getattr` works on any object, including classes, class " -"instances, modules, and so on." +"Note that :func:`getattr` works on any object, including classes, class instances, " +"modules, and so on." msgstr "" -"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " -"classes, les instances de classes, les modules et ainsi de suite." +"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les classes, " +"les instances de classes, les modules et ainsi de suite." #: ../Doc/faq/programming.rst:946 msgid "This is used in several places in the standard library, like this::" msgstr "" -"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " -"cette façon ::" +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de cette façon ::" #: ../Doc/faq/programming.rst:959 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" -msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " -"fonction ::" +msgstr "Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la fonction ::" #: ../Doc/faq/programming.rst:972 msgid "" -"Note: Using :func:`eval` is slow and dangerous. If you don't have absolute " -"control over the contents of the string, someone could pass a string that " -"resulted in an arbitrary function being executed." +"Note: Using :func:`eval` is slow and dangerous. If you don't have absolute control " +"over the contents of the string, someone could pass a string that resulted in an " +"arbitrary function being executed." msgstr "" -"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " -"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un peut " -"passer une chaîne de caractères pouvant résulter en l'exécution de code " -"arbitraire." +"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un contrôle " +"absolu sur le contenu de la chaîne de caractères, quelqu'un peut passer une chaîne de " +"caractères pouvant résulter en l'exécution de code arbitraire." #: ../Doc/faq/programming.rst:977 msgid "" -"Is there an equivalent to Perl's chomp() for removing trailing newlines from " -"strings?" +"Is there an equivalent to Perl's chomp() for removing trailing newlines from strings?" msgstr "" -"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " -"les caractères de fin de ligne d'une chaîne de caractères ?" +"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer les " +"caractères de fin de ligne d'une chaîne de caractères ?" #: ../Doc/faq/programming.rst:979 msgid "" -"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " -"terminator from the end of the string ``S`` without removing other trailing " -"whitespace. If the string ``S`` represents more than one line, with several " -"empty lines at the end, the line terminators for all the blank lines will be " -"removed::" +"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line terminator " +"from the end of the string ``S`` without removing other trailing whitespace. If the " +"string ``S`` represents more than one line, with several empty lines at the end, the " +"line terminators for all the blank lines will be removed::" msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " -"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " -"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " -"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " -"fin de de ligne de chaque ligne vide seront retirés : ::" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les occurrences de " +"tout marqueur de fin de ligne à la fin d'une chaîne de caractère ``S``, sans en " +"enlever aucune espace. Si la chaîne ``S`` représente plus d'une ligne, avec plusieurs " +"lignes vides, les marqueurs de fin de de ligne de chaque ligne vide seront " +"retirés : ::" #: ../Doc/faq/programming.rst:991 msgid "" -"Since this is typically only desired when reading text one line at a time, " -"using ``S.rstrip()`` this way works well." +"Since this is typically only desired when reading text one line at a time, using ``S." +"rstrip()`` this way works well." msgstr "" -"Du fait que ce soit principalement utile en lisant un texte ligne à ligne, " -"utiliser ``S.rstrip()`` devrait marcher correctement." +"Du fait que ce soit principalement utile en lisant un texte ligne à ligne, utiliser " +"``S.rstrip()`` devrait marcher correctement." #: ../Doc/faq/programming.rst:996 msgid "Is there a scanf() or sscanf() equivalent?" @@ -1398,34 +1389,30 @@ msgstr "Pas exactement." #: ../Doc/faq/programming.rst:1000 msgid "" -"For simple input parsing, the easiest approach is usually to split the line " -"into whitespace-delimited words using the :meth:`~str.split` method of " -"string objects and then convert decimal strings to numeric values using :" -"func:`int` or :func:`float`. ``split()`` supports an optional \"sep\" " -"parameter which is useful if the line uses something other than whitespace " -"as a separator." -msgstr "" -"Pour une simple analyse de chaîne, l'approche la plus simple est " -"généralement de découper la ligne en mots délimités par des espaces, en " -"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " -"ensuite de convertir les chaînes de décimaux en valeurs numériques en " -"utilisant la fonction :func:`int` ou :func:`float`, ``split()`` possède un " -"paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " -"que des espaces comme séparateur." +"For simple input parsing, the easiest approach is usually to split the line into " +"whitespace-delimited words using the :meth:`~str.split` method of string objects and " +"then convert decimal strings to numeric values using :func:`int` or :func:`float`. " +"``split()`` supports an optional \"sep\" parameter which is useful if the line uses " +"something other than whitespace as a separator." +msgstr "" +"Pour une simple analyse de chaîne, l'approche la plus simple est généralement de " +"découper la ligne en mots délimités par des espaces, en utilisant la méthode :meth:" +"`~str.split` des objets chaîne de caractères, et ensuite de convertir les chaînes de " +"décimaux en valeurs numériques en utilisant la fonction :func:`int` ou :func:`float`, " +"``split()`` possède un paramètre optionnel \"sep\" qui est utile si la ligne utilise " +"autre chose que des espaces comme séparateur." #: ../Doc/faq/programming.rst:1006 msgid "" -"For more complicated input parsing, regular expressions are more powerful " -"than C's :c:func:`sscanf` and better suited for the task." +"For more complicated input parsing, regular expressions are more powerful than C's :c:" +"func:`sscanf` and better suited for the task." msgstr "" -"Pour des analyses plus compliquées, les expressions régulières sont plus " -"puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " -"tâche." +"Pour des analyses plus compliquées, les expressions régulières sont plus puissantes " +"que la fonction :c:func:`sscanf` de C et mieux adaptées à la tâche." #: ../Doc/faq/programming.rst:1011 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" -msgstr "" -"Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" +msgstr "Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" #: ../Doc/faq/programming.rst:1013 msgid "See the :ref:`unicode-howto`." @@ -1441,132 +1428,175 @@ msgstr "Mon programme est trop lent. Comment l'accélérer ?" #: ../Doc/faq/programming.rst:1022 msgid "" -"That's a tough one, in general. First, here are a list of things to " -"remember before diving further:" +"That's a tough one, in general. First, here are a list of things to remember before " +"diving further:" msgstr "" -"Question difficile, en général. Avant, tout, il faut garder en tête les " -"points suivants avant d'aller plus loin :" +"Question difficile, en général. Avant, tout, il faut garder en tête les points " +"suivants avant d'aller plus loin :" #: ../Doc/faq/programming.rst:1025 msgid "" -"Performance characteristics vary across Python implementations. This FAQ " -"focusses on :term:`CPython`." +"Performance characteristics vary across Python implementations. This FAQ focusses " +"on :term:`CPython`." msgstr "" -"Les performances varient en fonction des implémentations de Python. Cette " -"FAQ ne traite que de :term:`CPython`." +"Les performances varient en fonction des implémentations de Python. Cette FAQ ne " +"traite que de :term:`CPython`." #: ../Doc/faq/programming.rst:1027 msgid "" -"Behaviour can vary across operating systems, especially when talking about I/" -"O or multi-threading." +"Behaviour can vary across operating systems, especially when talking about I/O or " +"multi-threading." msgstr "" -"Les comportements peuvent différer d'un système d'exploitation à l'autre" +"Les comportements peuvent différer d'un système d'exploitation à l'autre, tout " +"particulièrement quand il s'agit d'E/S ou de fils d'exécution multiples." #: ../Doc/faq/programming.rst:1029 msgid "" -"You should always find the hot spots in your program *before* attempting to " -"optimize any code (see the :mod:`profile` module)." +"You should always find the hot spots in your program *before* attempting to optimize " +"any code (see the :mod:`profile` module)." msgstr "" +"Il faut toujours essayer de trouver où sont les points de contention d'un programme " +"*avant* d'essayer d'optimiser du code (voir le module :mod:`profile`)." #: ../Doc/faq/programming.rst:1031 msgid "" -"Writing benchmark scripts will allow you to iterate quickly when searching " -"for improvements (see the :mod:`timeit` module)." +"Writing benchmark scripts will allow you to iterate quickly when searching for " +"improvements (see the :mod:`timeit` module)." msgstr "" +"Écrire des scripts d'évaluation de performances permet de progresser rapidement dans " +"la recherche d'améliorations (voir le module :mod:`timeit`)." #: ../Doc/faq/programming.rst:1033 msgid "" -"It is highly recommended to have good code coverage (through unit testing or " -"any other technique) before potentially introducing regressions hidden in " -"sophisticated optimizations." +"It is highly recommended to have good code coverage (through unit testing or any " +"other technique) before potentially introducing regressions hidden in sophisticated " +"optimizations." msgstr "" +"Il est très fortement recommandé d'avoir une bonne couverture de code (avec des tests " +"unitaires ou une autre méthode) avant d'ajouter des erreurs dans des optimisations " +"sophistiquées." #: ../Doc/faq/programming.rst:1037 msgid "" -"That being said, there are many tricks to speed up Python code. Here are " -"some general principles which go a long way towards reaching acceptable " -"performance levels:" +"That being said, there are many tricks to speed up Python code. Here are some " +"general principles which go a long way towards reaching acceptable performance levels:" msgstr "" +"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. Voici " +"quelques principes généraux qui peuvent aider à pour atteindre des niveaux de " +"performance satisfaisants :" #: ../Doc/faq/programming.rst:1041 msgid "" -"Making your algorithms faster (or changing to faster ones) can yield much " -"larger benefits than trying to sprinkle micro-optimization tricks all over " -"your code." +"Making your algorithms faster (or changing to faster ones) can yield much larger " +"benefits than trying to sprinkle micro-optimization tricks all over your code." msgstr "" +"Améliorer les algorithmes (ou en changer pour des plus performants) peut produire de " +"bien meilleurs résultats que d'optimiser ça et là de petites portions du code." #: ../Doc/faq/programming.rst:1045 msgid "" -"Use the right data structures. Study documentation for the :ref:`bltin-" -"types` and the :mod:`collections` module." +"Use the right data structures. Study documentation for the :ref:`bltin-types` and " +"the :mod:`collections` module." msgstr "" +"Utiliser les structures de données adaptées. Se référer à la documentation des :ref:" +"`bltin-types` et du module the :mod:`collections`." #: ../Doc/faq/programming.rst:1048 msgid "" -"When the standard library provides a primitive for doing something, it is " -"likely (although not guaranteed) to be faster than any alternative you may " -"come up with. This is doubly true for primitives written in C, such as " -"builtins and some extension types. For example, be sure to use either the :" -"meth:`list.sort` built-in method or the related :func:`sorted` function to " -"do sorting (and see the :ref:`sortinghowto` for examples of moderately " -"advanced usage)." -msgstr "" +"When the standard library provides a primitive for doing something, it is likely " +"(although not guaranteed) to be faster than any alternative you may come up with. " +"This is doubly true for primitives written in C, such as builtins and some extension " +"types. For example, be sure to use either the :meth:`list.sort` built-in method or " +"the related :func:`sorted` function to do sorting (and see the :ref:`sortinghowto` " +"for examples of moderately advanced usage)." +msgstr "" +"Quand la bibliothèque standard fournit une implémentation pour quelque chose, il y a " +"de fortes chances (même si ce n'est pas systématique) que cette implémentation soit " +"plus rapide que la votre. C'est d'autant plus vrai pour les routines écrites en C, " +"comme les routines natives et certaines extension de types (????). Par exemple, il " +"faut utiliser la méthode native :meth:`list.sort` ou la fonction :func:`sorted` " +"similaire pour trier (et se référer à la section :ref:`sortinghowto` pour des " +"exemples d'utilisation courante)." #: ../Doc/faq/programming.rst:1056 msgid "" -"Abstractions tend to create indirections and force the interpreter to work " -"more. If the levels of indirection outweigh the amount of useful work done, " -"your program will be slower. You should avoid excessive abstraction, " -"especially under the form of tiny functions or methods (which are also often " -"detrimental to readability)." +"Abstractions tend to create indirections and force the interpreter to work more. If " +"the levels of indirection outweigh the amount of useful work done, your program will " +"be slower. You should avoid excessive abstraction, especially under the form of tiny " +"functions or methods (which are also often detrimental to readability)." msgstr "" +"Les abstractions ont tendance à créer des indirections et oblige l'interpréteur à " +"faire plus d'efforts. Si le niveau d'indirection dépasse le quantité de travail " +"effectif, le programme sera ralentit. Il faut toujours éviter trop d'indirections, en " +"particulier sous la forme de fonctions ou méthodes trop petites (qui nuisent aussi " +"souvent à la clarté du code)." #: ../Doc/faq/programming.rst:1062 msgid "" -"If you have reached the limit of what pure Python can allow, there are tools " -"to take you further away. For example, `Cython `_ can " -"compile a slightly modified version of Python code into a C extension, and " -"can be used on many different platforms. Cython can take advantage of " -"compilation (and optional type annotations) to make your code significantly " -"faster than when interpreted. If you are confident in your C programming " -"skills, you can also :ref:`write a C extension module ` " -"yourself." -msgstr "" +"If you have reached the limit of what pure Python can allow, there are tools to take " +"you further away. For example, `Cython `_ can compile a slightly " +"modified version of Python code into a C extension, and can be used on many different " +"platforms. Cython can take advantage of compilation (and optional type annotations) " +"to make your code significantly faster than when interpreted. If you are confident " +"in your C programming skills, you can also :ref:`write a C extension module " +"` yourself." +msgstr "" +"Si vous atteignez les limites de ce que du Python « pur » permet de faire, il y a des " +"outils qui permettent d'aller plus loin. Par exemple, `Cython `_ " +"peut compiler une version légèrement modifiée de code Python en une extension C, et " +"est disponible sur de nombreuses plate-formes. Cython peut bénéficier de la " +"compilation (et de l'annotation, optionnelle, des types) pour rendre votre code " +"beaucoup plus rapide que s'il était interprété. Si vous avez confiance en vos " +"capacités de programmation en C, vous pouvez aussi :ref:`écrire un module d'extension " +"en C` vous-même." #: ../Doc/faq/programming.rst:1072 msgid "" -"The wiki page devoted to `performance tips `_." +"The wiki page devoted to `performance tips `_." msgstr "" +"La page wiki dédiée aux `astuces de performance `_." #: ../Doc/faq/programming.rst:1078 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" +"Quelle est la manière la plus efficace de concaténer un grand nombre de chaînes de " +"caractères ?" #: ../Doc/faq/programming.rst:1080 msgid "" -":class:`str` and :class:`bytes` objects are immutable, therefore " -"concatenating many strings together is inefficient as each concatenation " -"creates a new object. In the general case, the total runtime cost is " -"quadratic in the total string length." +":class:`str` and :class:`bytes` objects are immutable, therefore concatenating many " +"strings together is inefficient as each concatenation creates a new object. In the " +"general case, the total runtime cost is quadratic in the total string length." msgstr "" +"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent concaténer " +"un grand nombre de chaînes de caractères entre elles n'est pas très efficace car " +"chaque concaténation crée un nouvel objet. Dans le cas général, la complexité est " +"quadratique par rapport à la taille totale de la chaîne." #: ../Doc/faq/programming.rst:1085 msgid "" -"To accumulate many :class:`str` objects, the recommended idiom is to place " -"them into a list and call :meth:`str.join` at the end::" +"To accumulate many :class:`str` objects, the recommended idiom is to place them into " +"a list and call :meth:`str.join` at the end::" msgstr "" +"Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " +"recommandée consiste à toutes les mettre dans une liste et appeler la méthode :meth:" +"`str.join` à la fin ::" #: ../Doc/faq/programming.rst:1093 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" +"(une autre technique relativement efficace consiste à utiliser :class:`io.StringIO`)" #: ../Doc/faq/programming.rst:1095 msgid "" -"To accumulate many :class:`bytes` objects, the recommended idiom is to " -"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " -"operator)::" +"To accumulate many :class:`bytes` objects, the recommended idiom is to extend a :" +"class:`bytearray` object using in-place concatenation (the ``+=`` operator)::" msgstr "" +"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique recommandée " +"consiste à étendre un objet :class:`bytearray` en utilisant la concaténation en-place " +"(l'opérateur ``+=``) ::" #: ../Doc/faq/programming.rst:1104 msgid "Sequences (Tuples/Lists)" @@ -1578,66 +1608,63 @@ msgstr "Comment convertir les listes en n-uplets et inversement ?" #: ../Doc/faq/programming.rst:1109 msgid "" -"The type constructor ``tuple(seq)`` converts any sequence (actually, any " -"iterable) into a tuple with the same items in the same order." +"The type constructor ``tuple(seq)`` converts any sequence (actually, any iterable) " +"into a tuple with the same items in the same order." msgstr "" -"Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait " -"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…." +"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus précisément, " +"tout itérable) en un n-uplet avec les mêmes éléments dans le même ordre." #: ../Doc/faq/programming.rst:1112 msgid "" -"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " -"yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " -"copy but returns the same object, so it is cheap to call :func:`tuple` when " -"you aren't sure that an object is already a tuple." +"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` yields " +"``('a', 'b', 'c')``. If the argument is a tuple, it does not make a copy but returns " +"the same object, so it is cheap to call :func:`tuple` when you aren't sure that an " +"object is already a tuple." msgstr "" -"Par exemple ``tuple([1, 2, 3])`` renvoi ``(1, 2, 3)`` et ``tuple('abc')`` " -"renvoie ``('a', 'b', 'c')``. Si l'argument est un tuple, cela ne crée pas " -"une copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " -"fonction économique à appeler quand vous ne savez pas si votre objet est " -"déjà un tuple." +"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` renvoie " +"``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas de copie, mais " +"renvoie le même objet, ce qui fait de :func:`tuple` une fonction économique à appeler " +"quand vous ne savez pas si votre objet est déjà un n-uplet\n" +"." #: ../Doc/faq/programming.rst:1117 msgid "" -"The type constructor ``list(seq)`` converts any sequence or iterable into a " -"list with the same items in the same order. For example, ``list((1, 2, " -"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " -"If the argument is a list, it makes a copy just like ``seq[:]`` would." +"The type constructor ``list(seq)`` converts any sequence or iterable into a list with " +"the same items in the same order. For example, ``list((1, 2, 3))`` yields ``[1, 2, " +"3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. If the argument is a list, it " +"makes a copy just like ``seq[:]`` would." msgstr "" -"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable " -"en liste contenant les mêmes éléments dans le même ordre. Par exemple, " -"``list((1,2,3))`` renvoie ``[1,2,3]`` et ``list('abc')`` renvoie " -"``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " -"même façon que ``seq[:]``." +"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable en liste " +"contenant les mêmes éléments dans le même ordre. Par exemple, ``list((1,2,3))`` " +"renvoie ``[1,2,3]`` et ``list('abc')`` renvoie ``['a','b','c']``. Si l'argument est " +"une liste, il renvoie une copie, de la même façon que ``seq[:]``." #: ../Doc/faq/programming.rst:1124 msgid "What's a negative index?" -msgstr "Qu'est-ce qu'un index négatif?" +msgstr "Qu'est-ce qu'un index négatif ?" #: ../Doc/faq/programming.rst:1126 msgid "" -"Python sequences are indexed with positive numbers and negative numbers. " -"For positive numbers 0 is the first index 1 is the second index and so " -"forth. For negative indices -1 is the last index and -2 is the penultimate " -"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " -"``seq[len(seq)-n]``." +"Python sequences are indexed with positive numbers and negative numbers. For " +"positive numbers 0 is the first index 1 is the second index and so forth. For " +"negative indices -1 is the last index and -2 is the penultimate (next to last) index " +"and so forth. Think of ``seq[-n]`` as the same as ``seq[len(seq)-n]``." msgstr "" -"Les séquences Python sont indexées avec des nombres positifs aussi bien que " -"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " -"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " -"dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " -"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." +"Les séquences Python sont indexées avec des nombres positifs aussi bien que négatifs. " +"Pour les nombres positifs, 0 est le premier indice, 1 est le deuxième, et ainsi de " +"suite. Pour les indices négatifs, ``-1`` est le dernier index, ``-2`` est le " +"pénultième (avant-dernier), et ainsi de suite. On peut aussi dire que ``seq[-n]`` est " +"équivalent à ``seq[len(seq)-n]``." #: ../Doc/faq/programming.rst:1131 msgid "" -"Using negative indices can be very convenient. For example ``S[:-1]`` is " -"all of the string except for its last character, which is useful for " -"removing the trailing newline from a string." +"Using negative indices can be very convenient. For example ``S[:-1]`` is all of the " +"string except for its last character, which is useful for removing the trailing " +"newline from a string." msgstr "" -"Utiliser des indices négatifs peut être très pratique. Par exemple " -"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " -"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " -"la fin d'une chaîne." +"Utiliser des indices négatifs peut être très pratique. Par exemple ``S[:-1]`` " +"représente la chaîne tout entière à l'exception du dernier caractère, ce qui est " +"pratique pour retirer un caractère de fin de ligne à la fin d'une chaîne." #: ../Doc/faq/programming.rst:1137 msgid "How do I iterate over a sequence in reverse order?" @@ -1652,11 +1679,11 @@ msgstr "" #: ../Doc/faq/programming.rst:1144 msgid "" -"This won't touch your original sequence, but build a new copy with reversed " -"order to iterate over." +"This won't touch your original sequence, but build a new copy with reversed order to " +"iterate over." msgstr "" -"Cela ne modifiera pas la séquence initiale, mais construira à la place une " -"copie en ordre inverse pour itérer dessus." +"Cela ne modifiera pas la séquence initiale, mais construira à la place une copie en " +"ordre inverse pour itérer dessus." #: ../Doc/faq/programming.rst:1147 msgid "With Python 2.3, you can use an extended slice syntax::" @@ -1664,13 +1691,13 @@ msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches :: #: ../Doc/faq/programming.rst:1154 msgid "How do you remove duplicates from a list?" -msgstr "Comment retirer les doublons d'une liste?" +msgstr "Comment retirer les doublons d'une liste ?" #: ../Doc/faq/programming.rst:1156 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" -"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " -"les nombreuses approches possibles :" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur les " +"nombreuses approches possibles :" #: ../Doc/faq/programming.rst:1158 msgid "https://code.activestate.com/recipes/52560/" @@ -1678,29 +1705,28 @@ msgstr "https://code.activestate.com/recipes/52560/" #: ../Doc/faq/programming.rst:1160 msgid "" -"If you don't mind reordering the list, sort it and then scan from the end of " -"the list, deleting duplicates as you go::" +"If you don't mind reordering the list, sort it and then scan from the end of the " +"list, deleting duplicates as you go::" msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " -"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " -"trouvés en chemin ::" +"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier celle-ci, " +"puis parcourez-la d'un bout à l'autre, en supprimant les doublons trouvés en chemin ::" #: ../Doc/faq/programming.rst:1172 msgid "" "If all elements of the list may be used as set keys (i.e. they are all :term:" "`hashable`) this is often faster ::" msgstr "" -"Si tous les éléments de la liste peuvent être utilisés comme des clés de " -"dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide : ::" +"Si tous les éléments de la liste peuvent être utilisés comme des clés de dictionnaire " +"(c'est à dire, qu'elles sont toutes :term:`hachables `) ceci est souvent " +"plus rapide : ::" #: ../Doc/faq/programming.rst:1177 msgid "" -"This converts the list into a set, thereby removing duplicates, and then " -"back into a list." +"This converts the list into a set, thereby removing duplicates, and then back into a " +"list." msgstr "" -"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " -"doublons, puis la transforme à nouveau en liste." +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les doublons, " +"puis la transforme à nouveau en liste." #: ../Doc/faq/programming.rst:1182 msgid "How do you make an array in Python?" @@ -1712,127 +1738,132 @@ msgstr "Utilisez une liste ::" #: ../Doc/faq/programming.rst:1188 msgid "" -"Lists are equivalent to C or Pascal arrays in their time complexity; the " -"primary difference is that a Python list can contain objects of many " -"different types." +"Lists are equivalent to C or Pascal arrays in their time complexity; the primary " +"difference is that a Python list can contain objects of many different types." msgstr "" -"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " -"principale différence est qu'une liste Python peut contenir des objets de " -"différents types." +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la principale " +"différence est qu'une liste Python peut contenir des objets de différents types." #: ../Doc/faq/programming.rst:1191 msgid "" -"The ``array`` module also provides methods for creating arrays of fixed " -"types with compact representations, but they are slower to index than " -"lists. Also note that the Numeric extensions and others define array-like " -"structures with various characteristics as well." +"The ``array`` module also provides methods for creating arrays of fixed types with " +"compact representations, but they are slower to index than lists. Also note that the " +"Numeric extensions and others define array-like structures with various " +"characteristics as well." msgstr "" -"Le module ``array`` fournit des méthodes pour créer des tableaux de types " -"fixes dans une représentation compacte, mais ils sont plus lents à indexer " -"que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " -"fournissent différentes structures de type tableaux, avec des " -"caractéristiques différentes." +"Le module ``array`` fournit des méthodes pour créer des tableaux de types fixes dans " +"une représentation compacte, mais ils sont plus lents à indexer que les listes. Notez " +"aussi que l'extension ``Numeric`` et d'autres, fournissent différentes structures de " +"type tableaux, avec des caractéristiques différentes." #: ../Doc/faq/programming.rst:1196 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chaînées de type Lisp, vous pouvez émuler les *cons " -"cells* en utilisant des n-uplets ::" +"Pour obtenir des listes chaînées de type Lisp, vous pouvez émuler les *cons cells* en " +"utilisant des n-uplets ::" #: ../Doc/faq/programming.rst:1200 msgid "" -"If mutability is desired, you could use lists instead of tuples. Here the " -"analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " -"``lisp_list[1]``. Only do this if you're sure you really need to, because " -"it's usually a lot slower than using Python lists." +"If mutability is desired, you could use lists instead of tuples. Here the analogue " +"of lisp car is ``lisp_list[0]`` and the analogue of cdr is ``lisp_list[1]``. Only do " +"this if you're sure you really need to, because it's usually a lot slower than using " +"Python lists." msgstr "" -"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " -"qu'un tuple. Ici la version équivalente au *car* de Lisp est " -"``lisp_list[0]`` et l'équivalent à *cdr* est ``list_lip[1]``. Ne faites ceci " -"que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " -"général bien plus lente que les listes Python." +"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt qu'un tuple. " +"Ici la version équivalente du *car* de Lisp est ``lisp_list[0]`` et l'équivalent de " +"*cdr* est ``list_lip[1]``. Ne faites ceci que si vous êtes réellement sûr d'en avoir " +"besoin, cette méthode est en général bien plus lente que les listes Python." #: ../Doc/faq/programming.rst:1209 msgid "How do I create a multidimensional list?" -msgstr "Comment puis-je créer une liste à plusieurs dimensions?" +msgstr "Comment puis-je créer une liste à plusieurs dimensions ?" #: ../Doc/faq/programming.rst:1211 msgid "You probably tried to make a multidimensional array like this::" msgstr "" -"Vous avez probablement essayé de créer une liste à plusieurs dimensions de " -"cette façon ::" +"Vous avez probablement essayé de créer une liste à plusieurs dimensions de cette " +"façon ::" #: ../Doc/faq/programming.rst:1215 msgid "This looks correct if you print it:" -msgstr "" +msgstr "Elle semble correcte si on l'affiche :" #: ../Doc/faq/programming.rst:1226 msgid "But when you assign a value, it shows up in multiple places:" -msgstr "" -"Mais quand vous assignez une valeur, elle apparait en de multiples endroits::" +msgstr "Mais quand vous affectez une valeur, elle apparaît à plusieurs endroits ::" #: ../Doc/faq/programming.rst:1238 msgid "" -"The reason is that replicating a list with ``*`` doesn't create copies, it " -"only creates references to the existing objects. The ``*3`` creates a list " -"containing 3 references to the same list of length two. Changes to one row " -"will show in all rows, which is almost certainly not what you want." +"The reason is that replicating a list with ``*`` doesn't create copies, it only " +"creates references to the existing objects. The ``*3`` creates a list containing 3 " +"references to the same list of length two. Changes to one row will show in all rows, " +"which is almost certainly not what you want." msgstr "" -"La raison est que dupliquer une liste en utilisant ``*`` ne crée pas de " -"copies, cela crée seulement des références aux objets existants. Le ``*3`` " -"crée une liste contenant trois références à la même liste de longueur deux. " -"Un changement dans une colonne apparaîtra donc dans toutes les colonnes. Ce " -"qui n'est de façon quasi certaine, pas ce que vous souhaitez." +"La raison est que dupliquer une liste en utilisant ``*`` ne crée pas de copies, cela " +"crée seulement des références aux objets existants. Le ``*3`` crée une liste " +"contenant trois références à la même liste de longueur deux. Un changement dans une " +"colonne apparaîtra donc dans toutes les colonnes. Ce qui n'est très probablement pas " +"ce que vous souhaitez." #: ../Doc/faq/programming.rst:1243 msgid "" -"The suggested approach is to create a list of the desired length first and " -"then fill in each element with a newly created list::" +"The suggested approach is to create a list of the desired length first and then fill " +"in each element with a newly created list::" msgstr "" -"L'approche suggérée est de créer une liste de la longueur désiré d'abords, " -"puis de remplir tous les éléments avec une chaîne nouvellement créée ::" +"L'approche suggérée est de créer une liste de la longueur désiré d'abords, puis de " +"remplir tous les éléments avec une chaîne nouvellement créée ::" #: ../Doc/faq/programming.rst:1250 msgid "" -"This generates a list containing 3 different lists of length two. You can " -"also use a list comprehension::" +"This generates a list containing 3 different lists of length two. You can also use a " +"list comprehension::" msgstr "" -"Cette liste générée contient trois listes différentes de longueur deux. Vous " -"pouvez aussi utilisez la notation de compréhension de listes ::" +"Cette liste générée contient trois listes différentes de longueur deux. Vous pouvez " +"aussi utilisez la notation de compréhension de listes ::" #: ../Doc/faq/programming.rst:1256 msgid "" -"Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." +"Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." msgstr "" +"Vous pouvez aussi utiliser une extension qui fournit un type matriciel natif ; `NumPy " +"`_ est la plus répandue." #: ../Doc/faq/programming.rst:1261 msgid "How do I apply a method to a sequence of objects?" -msgstr "Comment appliquer une méthode à une séquence d'objets?" +msgstr "Comment appliquer une méthode à une séquence d'objets ?" #: ../Doc/faq/programming.rst:1263 msgid "Use a list comprehension::" -msgstr "Utilisez une compréhension de liste ::" +msgstr "Utilisez une liste en compréhension ::" #: ../Doc/faq/programming.rst:1270 msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" +"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que l'addition " +"fonctionne ?" #: ../Doc/faq/programming.rst:1272 msgid "" -"This is because of a combination of the fact that augmented assignment " -"operators are *assignment* operators, and the difference between mutable and " -"immutable objects in Python." +"This is because of a combination of the fact that augmented assignment operators are " +"*assignment* operators, and the difference between mutable and immutable objects in " +"Python." msgstr "" +"Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " +"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la différence " +"entre les objets muables et immuables en Python." #: ../Doc/faq/programming.rst:1276 msgid "" -"This discussion applies in general when augmented assignment operators are " -"applied to elements of a tuple that point to mutable objects, but we'll use " -"a ``list`` and ``+=`` as our exemplar." +"This discussion applies in general when augmented assignment operators are applied to " +"elements of a tuple that point to mutable objects, but we'll use a ``list`` and ``" +"+=`` as our exemplar." msgstr "" +"Cette discussion est valable, en général, quand des opérateurs d'affectation " +"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des objets " +"muables, mais on prendra ``list`` et ``+=`` comme exemple." #: ../Doc/faq/programming.rst:1280 msgid "If you wrote::" @@ -1840,44 +1871,59 @@ msgstr "Si vous écrivez : ::" #: ../Doc/faq/programming.rst:1288 msgid "" -"The reason for the exception should be immediately clear: ``1`` is added to " -"the object ``a_tuple[0]`` points to (``1``), producing the result object, " -"``2``, but when we attempt to assign the result of the computation, ``2``, " -"to element ``0`` of the tuple, we get an error because we can't change what " -"an element of a tuple points to." +"The reason for the exception should be immediately clear: ``1`` is added to the " +"object ``a_tuple[0]`` points to (``1``), producing the result object, ``2``, but when " +"we attempt to assign the result of the computation, ``2``, to element ``0`` of the " +"tuple, we get an error because we can't change what an element of a tuple points to." msgstr "" +"La cause de l'exception est claire : ``1`` est ajouté à l'objet ``a_tuple[0]`` qui " +"pointe sur (``1``), ce qui produit l'objet résultant ``2``, mais, lorsque l'on tente " +"d'affecter le résultat du calcul, ``2``, à l'élément ``0`` du n-uplet, on obtient une " +"erreur car il est impossible de modifier la cible sur lequel pointe un élément d'un n-" +"uplet." #: ../Doc/faq/programming.rst:1294 msgid "" -"Under the covers, what this augmented assignment statement is doing is " -"approximately this::" +"Under the covers, what this augmented assignment statement is doing is approximately " +"this::" msgstr "" +"Sous le capot, une instruction d'affectation incrémentale fait à peu près ceci :" #: ../Doc/faq/programming.rst:1303 msgid "" -"It is the assignment part of the operation that produces the error, since a " -"tuple is immutable." +"It is the assignment part of the operation that produces the error, since a tuple is " +"immutable." msgstr "" +"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu qu'un n-uplet " +"est immuable." #: ../Doc/faq/programming.rst:1306 msgid "When you write something like::" -msgstr "" +msgstr "Quand vous écrivez un code du style :" #: ../Doc/faq/programming.rst:1314 msgid "" -"The exception is a bit more surprising, and even more surprising is the fact " -"that even though there was an error, the append worked::" +"The exception is a bit more surprising, and even more surprising is the fact that " +"even though there was an error, the append worked::" msgstr "" +"L'exception est un peu plus surprenante, et ce qui est encore plus étrange est que, " +"malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1320 msgid "" -"To see why this happens, you need to know that (a) if an object implements " -"an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " -"assignment is executed, and its return value is what gets used in the " -"assignment statement; and (b) for lists, ``__iadd__`` is equivalent to " -"calling ``extend`` on the list and returning the list. That's why we say " -"that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" +"To see why this happens, you need to know that (a) if an object implements an " +"``__iadd__`` magic method, it gets called when the ``+=`` augmented assignment is " +"executed, and its return value is what gets used in the assignment statement; and (b) " +"for lists, ``__iadd__`` is equivalent to calling ``extend`` on the list and returning " +"the list. That's why we say that for lists, ``+=`` is a \"shorthand\" for ``list." +"extend``::" msgstr "" +"Pour comprendre ce qui se passe, il faut savoir que (a) si un objet implémente la " +"méthode magique c, celle-ci est appelée quand l'affectation incrémentale ``+=`` est " +"exécutée et sa valeur de retour est utilisée dans l'instruction d'affectation ; et " +"que (b) pour les listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " +"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, ``+=`` " +"est un \"raccourci\" pour ``list.extend``::" #: ../Doc/faq/programming.rst:1332 msgid "This is equivalent to::" @@ -1885,52 +1931,61 @@ msgstr "C’est équivalent à ::" #: ../Doc/faq/programming.rst:1337 msgid "" -"The object pointed to by a_list has been mutated, and the pointer to the " -"mutated object is assigned back to ``a_list``. The end result of the " -"assignment is a no-op, since it is a pointer to the same object that " -"``a_list`` was previously pointing to, but the assignment still happens." +"The object pointed to by a_list has been mutated, and the pointer to the mutated " +"object is assigned back to ``a_list``. The end result of the assignment is a no-op, " +"since it is a pointer to the same object that ``a_list`` was previously pointing to, " +"but the assignment still happens." msgstr "" +"L'objet sur lequel pointe a_list a été modifié, et le pointeur vers l'objet modifié " +"est réaffecté à ``a_list``. In fine, l'affectation ne change rien, puisque c'est un " +"pointeur vers le même objet que sur lequel pointait ``a_list``, mais l'affectation a " +"tout de même lieu." #: ../Doc/faq/programming.rst:1342 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" +"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose équivalant à ::" #: ../Doc/faq/programming.rst:1350 msgid "" -"The ``__iadd__`` succeeds, and thus the list is extended, but even though " -"``result`` points to the same object that ``a_tuple[0]`` already points to, " -"that final assignment still results in an error, because tuples are " -"immutable." +"The ``__iadd__`` succeeds, and thus the list is extended, but even though ``result`` " +"points to the same object that ``a_tuple[0]`` already points to, that final " +"assignment still results in an error, because tuples are immutable." msgstr "" +"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que ``result`` " +"pointe sur le même objet que ``a_tuple[0]``, l'affectation finale échoue car les n-" +"uplets ne sont pas muables." #: ../Doc/faq/programming.rst:1356 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un tri compliqué: peut on faire une transformation de " -"Schwartz en Python?" +"Je souhaite faire un tri compliqué : peut on faire une transformation de Schwartz en " +"Python ?" #: ../Doc/faq/programming.rst:1358 msgid "" -"The technique, attributed to Randal Schwartz of the Perl community, sorts " -"the elements of a list by a metric which maps each element to its \"sort " -"value\". In Python, use the ``key`` argument for the :meth:`list.sort` " -"method::" +"The technique, attributed to Randal Schwartz of the Perl community, sorts the " +"elements of a list by a metric which maps each element to its \"sort value\". In " +"Python, use the ``key`` argument for the :meth:`list.sort` method::" msgstr "" +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les éléments " +"d'une liste par une transformation qui fait correspondre chaque élément à sa \"valeur " +"de tri\". En Python, ceci est géré par l'argument ``key`` de la méthode :meth:`list." +"sort` ::" #: ../Doc/faq/programming.rst:1367 msgid "How can I sort one list by values from another list?" -msgstr "" -"Comment puis-je trier une liste en fonction des valeurs d'une autre liste?" +msgstr "Comment puis-je trier une liste en fonction des valeurs d'une autre liste?" #: ../Doc/faq/programming.rst:1369 msgid "" -"Merge them into an iterator of tuples, sort the resulting list, and then " -"pick out the element you want. ::" +"Merge them into an iterator of tuples, sort the resulting list, and then pick out the " +"element you want. ::" msgstr "" -"Fusionnez les dans un itérateur de tuples, triez la liste obtenue, puis " -"choisissez l'élément que vous voulez. ::" +"Fusionnez les dans un itérateur de tuples, triez la liste obtenue, puis choisissez " +"l'élément que vous voulez. ::" #: ../Doc/faq/programming.rst:1383 msgid "An alternative for the last step is::" @@ -1938,22 +1993,20 @@ msgstr "Une alternative pour la dernière étape est : ::" #: ../Doc/faq/programming.rst:1388 msgid "" -"If you find this more legible, you might prefer to use this instead of the " -"final list comprehension. However, it is almost twice as slow for long " -"lists. Why? First, the ``append()`` operation has to reallocate memory, and " -"while it uses some tricks to avoid doing that each time, it still has to do " -"it occasionally, and that costs quite a bit. Second, the expression " -"\"result.append\" requires an extra attribute lookup, and third, there's a " -"speed reduction from having to make all those function calls." -msgstr "" -"Si vous trouvez cela plus lisible, vous préférez peut-être utiliser ceci à " -"la place de la compréhension de la liste finale. Toutefois, ceci est presque " -"deux fois plus lent pour les longues listes. Pourquoi? Tout d'abord, " -"``append ()`` doit réaffecter la mémoire, et si il utilise quelques astuces " -"pour éviter de le faire à chaque fois, il doit encore le faire de temps en " -"temps, ce qui coûte assez cher. Deuxièmement, l'expression ``result.append`` " -"exige une recherche d'attribut supplémentaire, et enfin, tous ces appels de " -"fonction impactent la vitesse d'exécution." +"If you find this more legible, you might prefer to use this instead of the final list " +"comprehension. However, it is almost twice as slow for long lists. Why? First, the " +"``append()`` operation has to reallocate memory, and while it uses some tricks to " +"avoid doing that each time, it still has to do it occasionally, and that costs quite " +"a bit. Second, the expression \"result.append\" requires an extra attribute lookup, " +"and third, there's a speed reduction from having to make all those function calls." +msgstr "" +"Si vous trouvez cela plus lisible, vous préférez peut-être utiliser ceci à la place " +"de la compréhension de la liste finale. Toutefois, ceci est presque deux fois plus " +"lent pour les longues listes. Pourquoi? Tout d'abord, ``append ()`` doit réaffecter " +"la mémoire, et si il utilise quelques astuces pour éviter de le faire à chaque fois, " +"il doit encore le faire de temps en temps, ce qui coûte assez cher. Deuxièmement, " +"l'expression ``result.append`` exige une recherche d'attribut supplémentaire, et " +"enfin, tous ces appels de fonction impactent la vitesse d'exécution." #: ../Doc/faq/programming.rst:1398 msgid "Objects" @@ -1965,63 +2018,60 @@ msgstr "Qu'est-ce qu'une classe?" #: ../Doc/faq/programming.rst:1403 msgid "" -"A class is the particular object type created by executing a class " -"statement. Class objects are used as templates to create instance objects, " -"which embody both the data (attributes) and code (methods) specific to a " -"datatype." +"A class is the particular object type created by executing a class statement. Class " +"objects are used as templates to create instance objects, which embody both the data " +"(attributes) and code (methods) specific to a datatype." msgstr "" -"Une classe est le type d'objet particulier créé par l'exécution d'une " -"déclaration de classe. Les objets de classe sont utilisés comme modèles pour " -"créer des objets, qui incarnent à la fois les données (attributs) et le code " -"(méthodes) spécifiques à un type de données." +"Une classe est le type d'objet particulier créé par l'exécution d'une déclaration de " +"classe. Les objets de classe sont utilisés comme modèles pour créer des objets, qui " +"incarnent à la fois les données (attributs) et le code (méthodes) spécifiques à un " +"type de données." #: ../Doc/faq/programming.rst:1407 msgid "" -"A class can be based on one or more other classes, called its base " -"class(es). It then inherits the attributes and methods of its base classes. " -"This allows an object model to be successively refined by inheritance. You " -"might have a generic ``Mailbox`` class that provides basic accessor methods " -"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " -"``OutlookMailbox`` that handle various specific mailbox formats." -msgstr "" -"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " -"ou ses classes de base. Il hérite alors les attributs et les méthodes de ses " -"classes de base. Cela permet à un modèle d'objet d'être successivement " -"raffinés par héritage. Vous pourriez avoir une classe générique ``Mailbox`` " -"qui fournit des méthodes d'accès de base pour une boîte aux lettres, et sous-" -"classes telles que ``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` " -"qui gèrent les différents formats de boîtes aux lettres spécifiques." +"A class can be based on one or more other classes, called its base class(es). It then " +"inherits the attributes and methods of its base classes. This allows an object model " +"to be successively refined by inheritance. You might have a generic ``Mailbox`` " +"class that provides basic accessor methods for a mailbox, and subclasses such as " +"``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` that handle various specific " +"mailbox formats." +msgstr "" +"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa ou ses " +"classes de base. Il hérite alors des attributs et des méthodes de ses classes de " +"base. Cela permet à un modèle d'objet d'être successivement raffiné par héritage. " +"Vous pourriez avoir une classe générique ``Mailbox`` qui fournit des méthodes d'accès " +"de base pour une boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " +"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats spécifiques " +"de boîtes aux lettres." #: ../Doc/faq/programming.rst:1416 msgid "What is a method?" -msgstr "Qu'est-ce qu'une méthode?" +msgstr "Qu'est-ce qu'une méthode ?" #: ../Doc/faq/programming.rst:1418 msgid "" "A method is a function on some object ``x`` that you normally call as ``x." -"name(arguments...)``. Methods are defined as functions inside the class " -"definition::" +"name(arguments...)``. Methods are defined as functions inside the class definition::" msgstr "" -"Une méthode est une fonction sur un objet ``x`` appelez normalement comme " -"``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à " -"l'intérieur de la définition de classe ::" +"Une méthode est une fonction sur un objet ``x`` appelez normalement comme ``x." +"name(arguments…)``. Les méthodes sont définies comme des fonctions à l'intérieur de " +"la définition de classe ::" #: ../Doc/faq/programming.rst:1428 msgid "What is self?" -msgstr "Qu'est-ce que self?" +msgstr "Qu'est-ce que self ?" #: ../Doc/faq/programming.rst:1430 msgid "" -"Self is merely a conventional name for the first argument of a method. A " -"method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " -"c)`` for some instance ``x`` of the class in which the definition occurs; " -"the called method will think it is called as ``meth(x, a, b, c)``." +"Self is merely a conventional name for the first argument of a method. A method " +"defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, c)`` for some " +"instance ``x`` of the class in which the definition occurs; the called method will " +"think it is called as ``meth(x, a, b, c)``." msgstr "" -"Self est simplement un nom conventionnel pour le premier argument d'une " -"méthode. Une méthode définie comme ``meth(self, a, b, c)`` doit être appelée " -"en tant que ``x.meth(a, b, c)``, pour une instance ``x`` de la classe dans " -"laquelle elle est définie, la méthode appelée considérera qu'elle est " -"appelée ``meth(x, a, b, c)``." +"Self est simplement un nom conventionnel pour le premier argument d'une méthode. Une " +"méthode définie comme ``meth(self, a, b, c)`` doit être appelée en tant que ``x." +"meth(a, b, c)``, pour une instance ``x`` de la classe dans laquelle elle est définie, " +"la méthode appelée considérera qu'elle est appelée ``meth(x, a, b, c)``." #: ../Doc/faq/programming.rst:1435 msgid "See also :ref:`why-self`." @@ -2029,127 +2079,119 @@ msgstr "Voir aussi :ref:`why-self`." #: ../Doc/faq/programming.rst:1439 msgid "" -"How do I check if an object is an instance of a given class or of a subclass " -"of it?" +"How do I check if an object is an instance of a given class or of a subclass of it?" msgstr "" -"Comment puis-je vérifier si un objet est une instance d'une classe donnée ou " -"d'une sous-classe de celui-ci?" +"Comment vérifier si un objet est une instance d'une classe donnée ou d'une sous-" +"classe de celle-ci ?" #: ../Doc/faq/programming.rst:1441 msgid "" -"Use the built-in function ``isinstance(obj, cls)``. You can check if an " -"object is an instance of any of a number of classes by providing a tuple " -"instead of a single class, e.g. ``isinstance(obj, (class1, class2, ...))``, " -"and can also check whether an object is one of Python's built-in types, e.g. " -"``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." +"Use the built-in function ``isinstance(obj, cls)``. You can check if an object is an " +"instance of any of a number of classes by providing a tuple instead of a single " +"class, e.g. ``isinstance(obj, (class1, class2, ...))``, and can also check whether an " +"object is one of Python's built-in types, e.g. ``isinstance(obj, str)`` or " +"``isinstance(obj, (int, float, complex))``." msgstr "" -"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier " -"si un objet est une instance de n'importe lequel d'un certain nombre de " -"classes en fournissant un tuple à la place d'une seule classe, par exemple, " -"``isinstance(obj, (class1, class2, ...))``, et peut également vérifier si un " -"objet est l'un des types natifs de Python, par exemple, ``isinstance(obj, " -"str)`` ou ``isinstance(obj, (int, float, complex))``." +"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier si un " +"objet est une instance de n'importe lequel d'un certain nombre de classes en " +"fournissant un tuple à la place d'une seule classe, par exemple, ``isinstance(obj, " +"(class1, class2, ...))``, et peut également vérifier si un objet est l'un des types " +"natifs de Python, par exemple, ``isinstance(obj, str)`` ou ``isinstance(obj, (int, " +"float, complex))``." #: ../Doc/faq/programming.rst:1447 msgid "" -"Note that most programs do not use :func:`isinstance` on user-defined " -"classes very often. If you are developing the classes yourself, a more " -"proper object-oriented style is to define methods on the classes that " -"encapsulate a particular behaviour, instead of checking the object's class " -"and doing a different thing based on what class it is. For example, if you " -"have a function that does something::" -msgstr "" -"Notez que la plupart des programmes n'utilisent pas :func:`isInstance` sur " -"les classes définies par l'utilisateur, très souvent. Si vous développez " -"vous-même les classes, un style plus appropriée orientée objet est de " -"définir des méthodes sur les classes qui encapsulent un comportement " -"particulier, au lieu de vérifier la classe de l'objet et de faire quelque " -"chose de différent en fonction de sa classe. Par exemple, si vous avez une " -"fonction qui fait quelque chose : ::" +"Note that most programs do not use :func:`isinstance` on user-defined classes very " +"often. If you are developing the classes yourself, a more proper object-oriented " +"style is to define methods on the classes that encapsulate a particular behaviour, " +"instead of checking the object's class and doing a different thing based on what " +"class it is. For example, if you have a function that does something::" +msgstr "" +"Notez que la plupart des programmes n'utilisent pas :func:`isInstance` sur les " +"classes définies par l'utilisateur, très souvent. Si vous développez vous-même les " +"classes, un style plus appropriée orientée objet est de définir des méthodes sur les " +"classes qui encapsulent un comportement particulier, au lieu de vérifier la classe de " +"l'objet et de faire quelque chose de différent en fonction de sa classe. Par exemple, " +"si vous avez une fonction qui fait quelque chose : ::" #: ../Doc/faq/programming.rst:1461 msgid "" -"A better approach is to define a ``search()`` method on all the classes and " -"just call it::" +"A better approach is to define a ``search()`` method on all the classes and just call " +"it::" msgstr "" -"Une meilleure approche est de définir une méthode ``search()`` sur toutes " -"les classes et qu'il suffit d'appeler ::" +"Une meilleure approche est de définir une méthode ``search()`` sur toutes les classes " +"et qu'il suffit d'appeler ::" #: ../Doc/faq/programming.rst:1476 msgid "What is delegation?" -msgstr "Qu'est-ce que la délégation?" +msgstr "Qu'est-ce que la délégation ?" #: ../Doc/faq/programming.rst:1478 msgid "" -"Delegation is an object oriented technique (also called a design pattern). " -"Let's say you have an object ``x`` and want to change the behaviour of just " -"one of its methods. You can create a new class that provides a new " -"implementation of the method you're interested in changing and delegates all " -"other methods to the corresponding method of ``x``." +"Delegation is an object oriented technique (also called a design pattern). Let's say " +"you have an object ``x`` and want to change the behaviour of just one of its " +"methods. You can create a new class that provides a new implementation of the method " +"you're interested in changing and delegates all other methods to the corresponding " +"method of ``x``." msgstr "" "La délégation est une technique orientée objet (aussi appelé un modèle de " -"conception). Disons que vous avez un objet ``x`` et que vous souhaitez " -"modifier le comportement d'une seule de ses méthodes. Vous pouvez créer une " -"nouvelle classe qui fournit une nouvelle implémentation de la méthode qui " -"vous intéresse dans l'évolution et les délégués de toutes les autres " -"méthodes la méthode correspondante de ``x``." +"conception). Disons que vous avez un objet ``x`` et que vous souhaitez modifier le " +"comportement d'une seule de ses méthodes. Vous pouvez créer une nouvelle classe qui " +"fournit une nouvelle implémentation de la méthode qui vous intéresse dans l'évolution " +"et les délégués de toutes les autres méthodes la méthode correspondante de ``x``." #: ../Doc/faq/programming.rst:1484 msgid "" -"Python programmers can easily implement delegation. For example, the " -"following class implements a class that behaves like a file but converts all " -"written data to uppercase::" +"Python programmers can easily implement delegation. For example, the following class " +"implements a class that behaves like a file but converts all written data to " +"uppercase::" msgstr "" -"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " -"Par exemple, la classe suivante implémente une classe qui se comporte comme " -"un fichier, mais convertit toutes les données écrites en majuscules ::" +"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. Par " +"exemple, la classe suivante implémente une classe qui se comporte comme un fichier, " +"mais convertit toutes les données écrites en majuscules ::" #: ../Doc/faq/programming.rst:1499 msgid "" -"Here the ``UpperOut`` class redefines the ``write()`` method to convert the " -"argument string to uppercase before calling the underlying ``self.__outfile." -"write()`` method. All other methods are delegated to the underlying ``self." -"__outfile`` object. The delegation is accomplished via the ``__getattr__`` " -"method; consult :ref:`the language reference ` for more " -"information about controlling attribute access." +"Here the ``UpperOut`` class redefines the ``write()`` method to convert the argument " +"string to uppercase before calling the underlying ``self.__outfile.write()`` method. " +"All other methods are delegated to the underlying ``self.__outfile`` object. The " +"delegation is accomplished via the ``__getattr__`` method; consult :ref:`the language " +"reference ` for more information about controlling attribute access." msgstr "" -"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " -"la chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes " -"``self.__outfile.write()``. Toutes les autres méthodes sont déléguées à " -"l'objet sous-jacent ``self.__outfile``. La délégation se fait par la méthode " -"``__getattr__``, consulter :ref:`the language reference ` " -"pour plus d'informations sur le contrôle d'accès d'attribut." +"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir la " +"chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes ``self." +"__outfile.write()``. Toutes les autres méthodes sont déléguées à l'objet sous-jacent " +"``self.__outfile``. La délégation se fait par la méthode ``__getattr__``, consulter :" +"ref:`the language reference ` pour plus d'informations sur le " +"contrôle d'accès d'attribut." #: ../Doc/faq/programming.rst:1506 msgid "" -"Note that for more general cases delegation can get trickier. When " -"attributes must be set as well as retrieved, the class must define a :meth:" -"`__setattr__` method too, and it must do so carefully. The basic " -"implementation of :meth:`__setattr__` is roughly equivalent to the " -"following::" +"Note that for more general cases delegation can get trickier. When attributes must be " +"set as well as retrieved, the class must define a :meth:`__setattr__` method too, and " +"it must do so carefully. The basic implementation of :meth:`__setattr__` is roughly " +"equivalent to the following::" msgstr "" -"Notez que pour une utilisation plus générale de la délégation, les choses " -"peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " -"que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " -"et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" -"`__setattr__` est à peu près équivalent à ce qui suit ::" +"Notez que pour une utilisation plus générale de la délégation, les choses peuvent se " +"compliquer. Lorsque les attributs doivent être définis aussi bien que récupérés, la " +"classe doit définir une méthode :meth:`__setattr__` aussi, et il doit le faire avec " +"soin. La mise en œuvre basique de la méthode :meth:`__setattr__` est à peu près " +"équivalent à ce qui suit ::" #: ../Doc/faq/programming.rst:1517 msgid "" -"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " -"store local state for self without causing an infinite recursion." +"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to store local " +"state for self without causing an infinite recursion." msgstr "" -"La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " -"récursion infinie." +"La plupart des implémentations de :meth:`__setattr__` doivent modifier ``self." +"__dict__`` pour stocker l'état locale de self sans provoquer une récursion infinie." #: ../Doc/faq/programming.rst:1522 msgid "" -"How do I call a method defined in a base class from a derived class that " -"overrides it?" +"How do I call a method defined in a base class from a derived class that overrides it?" msgstr "" -"Comment appeler une méthode définie dans une classe de base depuis une " -"classe dérivée qui la surcharge?" +"Comment appeler une méthode définie dans une classe de base depuis une classe dérivée " +"qui la surcharge?" #: ../Doc/faq/programming.rst:1524 msgid "Use the built-in :func:`super` function::" @@ -2157,87 +2199,82 @@ msgstr "Utiliser la fonction native :func:`super` : ::" #: ../Doc/faq/programming.rst:1530 msgid "" -"For version prior to 3.0, you may be using classic classes: For a class " -"definition such as ``class Derived(Base): ...`` you can call method " -"``meth()`` defined in ``Base`` (or one of ``Base``'s base classes) as ``Base." -"meth(self, arguments...)``. Here, ``Base.meth`` is an unbound method, so " -"you need to provide the ``self`` argument." +"For version prior to 3.0, you may be using classic classes: For a class definition " +"such as ``class Derived(Base): ...`` you can call method ``meth()`` defined in " +"``Base`` (or one of ``Base``'s base classes) as ``Base.meth(self, arguments...)``. " +"Here, ``Base.meth`` is an unbound method, so you need to provide the ``self`` " +"argument." msgstr "" -"Pour version antérieure à 3.0, vous pouvez utiliser des classes classiques : " -"Pour une définition de classe telle que ``class Derived(Base): ...`` vous " -"pouvez appeler la méthode ``meth()`` défini dans ``Base`` (ou l'une des " -"classes de base de ``Base``) en faisant ``Base.meth(self, arguments...)``. " -"Ici, ``Base.meth`` est une méthode non liée, vous devez donc fournir " -"l'argument ``self``." +"Pour version antérieure à 3.0, vous pouvez utiliser des classes classiques : Pour une " +"définition de classe telle que ``class Derived(Base): ...`` vous pouvez appeler la " +"méthode ``meth()`` défini dans ``Base`` (ou l'une des classes de base de ``Base``) en " +"faisant ``Base.meth(self, arguments...)``. Ici, ``Base.meth`` est une méthode non " +"liée, vous devez donc fournir l'argument ``self``." #: ../Doc/faq/programming.rst:1538 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" -"Comment puis-je organiser mon code pour permettre de changer la classe de " -"base plus facilement?" +"Comment puis-je organiser mon code pour permettre de changer la classe de base plus " +"facilement ?" #: ../Doc/faq/programming.rst:1540 msgid "" -"You could define an alias for the base class, assign the real base class to " -"it before your class definition, and use the alias throughout your class. " -"Then all you have to change is the value assigned to the alias. " -"Incidentally, this trick is also handy if you want to decide dynamically (e." -"g. depending on availability of resources) which base class to use. " -"Example::" +"You could define an alias for the base class, assign the real base class to it before " +"your class definition, and use the alias throughout your class. Then all you have to " +"change is the value assigned to the alias. Incidentally, this trick is also handy if " +"you want to decide dynamically (e.g. depending on availability of resources) which " +"base class to use. Example::" msgstr "" -"Vous pouvez définir un alias pour la classe de base, lui attribuer la classe " -"de base réelle avant la définition de classe, et utiliser l'alias au long de " -"votre classe. Ensuite, tout ce que vous devez changer est la valeur " -"attribuée à l'alias. Incidemment, cette astuce est également utile si vous " -"voulez décider dynamiquement (par exemple en fonction de la disponibilité " -"des ressources) la classe de base à utiliser. Exemple ::" +"Vous pouvez définir un alias pour la classe de base, lui attribuer la classe de base " +"réelle avant la définition de classe, et utiliser l'alias au long de votre classe. " +"Ensuite, tout ce que vous devez changer est la valeur attribuée à l'alias. " +"Incidemment, cette astuce est également utile si vous voulez décider dynamiquement " +"(par exemple en fonction de la disponibilité des ressources) la classe de base à " +"utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1555 msgid "How do I create static class data and static class methods?" msgstr "" -"Comment puis-je créer des données statiques de classe et des méthodes " -"statiques de classe?" +"Comment puis-je créer des données statiques de classe et des méthodes statiques de " +"classe?" #: ../Doc/faq/programming.rst:1557 msgid "" -"Both static data and static methods (in the sense of C++ or Java) are " -"supported in Python." +"Both static data and static methods (in the sense of C++ or Java) are supported in " +"Python." msgstr "" -"Tant les données statiques que les méthodes statiques (dans le sens de C + + " -"ou Java) sont pris en charge en Python." +"Tant les données statiques que les méthodes statiques (dans le sens de C + + ou Java) " +"sont pris en charge en Python." #: ../Doc/faq/programming.rst:1560 msgid "" -"For static data, simply define a class attribute. To assign a new value to " -"the attribute, you have to explicitly use the class name in the assignment::" +"For static data, simply define a class attribute. To assign a new value to the " +"attribute, you have to explicitly use the class name in the assignment::" msgstr "" "Pour les données statiques, il suffit de définir un attribut de classe. Pour " -"attribuer une nouvelle valeur à l'attribut, vous devez explicitement " -"utiliser le nom de classe dans l'affectation ::" +"attribuer une nouvelle valeur à l'attribut, vous devez explicitement utiliser le nom " +"de classe dans l'affectation ::" #: ../Doc/faq/programming.rst:1572 msgid "" -"``c.count`` also refers to ``C.count`` for any ``c`` such that " -"``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " -"class on the base-class search path from ``c.__class__`` back to ``C``." +"``c.count`` also refers to ``C.count`` for any ``c`` such that ``isinstance(c, C)`` " +"holds, unless overridden by ``c`` itself or by some class on the base-class search " +"path from ``c.__class__`` back to ``C``." msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` telle que " -"``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " -"une classe sur le chemin de recherche de classe de base de ``c.__class__`` " -"jusqu'à ``C``." +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` telle que ``isInstance " +"(c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par une classe sur le " +"chemin de recherche de classe de base de ``c.__class__`` jusqu'à ``C``." #: ../Doc/faq/programming.rst:1576 msgid "" -"Caution: within a method of C, an assignment like ``self.count = 42`` " -"creates a new and unrelated instance named \"count\" in ``self``'s own " -"dict. Rebinding of a class-static data name must always specify the class " -"whether inside a method or not::" +"Caution: within a method of C, an assignment like ``self.count = 42`` creates a new " +"and unrelated instance named \"count\" in ``self``'s own dict. Rebinding of a class-" +"static data name must always specify the class whether inside a method or not::" msgstr "" -"Attention: dans une méthode de C, une affectation comme ``self.count = 42`` " -"crée une nouvelle instance et sans rapport avec le nom ``count`` dans dans " -"le dictionnaire de données de ``self``. La redéfinition d'une donnée " -"statique de classe doit toujours spécifier la classe que l'on soit à " -"l'intérieur d'une méthode ou non ::" +"Attention: dans une méthode de C, une affectation comme ``self.count = 42`` crée une " +"nouvelle instance et sans rapport avec le nom ``count`` dans dans le dictionnaire de " +"données de ``self``. La redéfinition d'une donnée statique de classe doit toujours " +"spécifier la classe que l'on soit à l'intérieur d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1583 msgid "Static methods are possible::" @@ -2245,20 +2282,19 @@ msgstr "Les méthodes statiques sont possibles : ::" #: ../Doc/faq/programming.rst:1591 msgid "" -"However, a far more straightforward way to get the effect of a static method " -"is via a simple module-level function::" +"However, a far more straightforward way to get the effect of a static method is via a " +"simple module-level function::" msgstr "" -"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " -"méthode statique se fait par une simple fonction au niveau du module ::" +"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une méthode " +"statique se fait par une simple fonction au niveau du module ::" #: ../Doc/faq/programming.rst:1597 msgid "" -"If your code is structured so as to define one class (or tightly related " -"class hierarchy) per module, this supplies the desired encapsulation." +"If your code is structured so as to define one class (or tightly related class " +"hierarchy) per module, this supplies the desired encapsulation." msgstr "" -"Si votre code est structuré de manière à définir une classe (ou bien la " -"hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " -"souhaitée." +"Si votre code est structuré de manière à définir une classe (ou bien la hiérarchie " +"des classes connexes) par module, ceci fournira l'encapsulation souhaitée." #: ../Doc/faq/programming.rst:1602 msgid "How can I overload constructors (or methods) in Python?" @@ -2266,29 +2302,27 @@ msgstr "Comment puis-je surcharger les constructeurs (ou méthodes) en Python?" #: ../Doc/faq/programming.rst:1604 msgid "" -"This answer actually applies to all methods, but the question usually comes " -"up first in the context of constructors." +"This answer actually applies to all methods, but the question usually comes up first " +"in the context of constructors." msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question " -"vient généralement en premier dans le contexte des constructeurs." +"Cette réponse s'applique en fait à toutes les méthodes, mais la question vient " +"généralement en premier dans le contexte des constructeurs." #: ../Doc/faq/programming.rst:1607 msgid "In C++ you'd write" -msgstr "In C++ you'd write" +msgstr "In C++, on écrirait" #: ../Doc/faq/programming.rst:1616 msgid "" -"In Python you have to write a single constructor that catches all cases " -"using default arguments. For example::" +"In Python you have to write a single constructor that catches all cases using default " +"arguments. For example::" msgstr "" -"En Python, vous devez écrire un constructeur unique qui considère tous les " -"cas en utilisant des arguments par défaut. Par exemple ::" +"En Python, vous devez écrire un constructeur unique qui considère tous les cas en " +"utilisant des arguments par défaut. Par exemple ::" #: ../Doc/faq/programming.rst:1626 msgid "This is not entirely equivalent, but close enough in practice." -msgstr "" -"Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " -"pratique." +msgstr "Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la pratique." #: ../Doc/faq/programming.rst:1628 msgid "You could also try a variable-length argument list, e.g. ::" @@ -2308,122 +2342,151 @@ msgstr "" #: ../Doc/faq/programming.rst:1639 msgid "" -"Variable names with double leading underscores are \"mangled\" to provide a " -"simple but effective way to define class private variables. Any identifier " -"of the form ``__spam`` (at least two leading underscores, at most one " -"trailing underscore) is textually replaced with ``_classname__spam``, where " -"``classname`` is the current class name with any leading underscores " -"stripped." +"Variable names with double leading underscores are \"mangled\" to provide a simple " +"but effective way to define class private variables. Any identifier of the form " +"``__spam`` (at least two leading underscores, at most one trailing underscore) is " +"textually replaced with ``_classname__spam``, where ``classname`` is the current " +"class name with any leading underscores stripped." msgstr "" -"Les noms de variables commençant avec deux tirets bas sont «déformés», c'est " -"un moyen simple mais efficace de définir variables privées à une classe. " -"Tout identifiant de la forme ``__spam`` (commençant par au moins deux tirets " -"bas et se terminant par au plus un tiret bas) est textuellement remplacé par " -"``_classname__spam``, où ``classname`` est le nom de la classe en cours dont " -"les éventuels tirets bas ont été retirés." +"Les noms de variables commençant avec deux tirets bas sont «déformés», c'est un moyen " +"simple mais efficace de définir variables privées à une classe. Tout identifiant de " +"la forme ``__spam`` (commençant par au moins deux tirets bas et se terminant par au " +"plus un tiret bas) est textuellement remplacé par ``_classname__spam``, où " +"``classname`` est le nom de la classe en cours dont les éventuels tirets bas ont été " +"retirés." #: ../Doc/faq/programming.rst:1645 msgid "" -"This doesn't guarantee privacy: an outside user can still deliberately " -"access the \"_classname__spam\" attribute, and private values are visible in " -"the object's ``__dict__``. Many Python programmers never bother to use " -"private variable names at all." +"This doesn't guarantee privacy: an outside user can still deliberately access the " +"\"_classname__spam\" attribute, and private values are visible in the object's " +"``__dict__``. Many Python programmers never bother to use private variable names at " +"all." msgstr "" -"Cela ne garantit pas la privauté de l'accès : un utilisateur extérieur peut " -"encore délibérément accéder à l'attribut ``_classname__spam``, et les " -"valeurs privées sont visibles dans l'objet ``__dict__``. De nombreux " -"programmeurs Python ne prennent jamais la peine d'utiliser des noms de " -"variable privée." +"Cela ne garantit pas la privauté de l'accès : un utilisateur extérieur peut encore " +"délibérément accéder à l'attribut ``_classname__spam``, et les valeurs privées sont " +"visibles dans l'objet ``__dict__``. De nombreux programmeurs Python ne prennent " +"jamais la peine d'utiliser des noms de variable privée." #: ../Doc/faq/programming.rst:1652 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" -"Ma classe définit ``__del__`` mais il n'est pas appelé lorsque je supprime " -"l'objet." +"Ma classe définit ``__del__`` mais elle n'est pas appelé lorsque je supprime l'objet." #: ../Doc/faq/programming.rst:1654 msgid "There are several possible reasons for this." -msgstr "Il y a plusieurs raisons possibles pour cela." +msgstr "Il y a plusieurs explications possibles à cela." #: ../Doc/faq/programming.rst:1656 msgid "" -"The del statement does not necessarily call :meth:`__del__` -- it simply " -"decrements the object's reference count, and if this reaches zero :meth:" -"`__del__` is called." +"The del statement does not necessarily call :meth:`__del__` -- it simply decrements " +"the object's reference count, and if this reaches zero :meth:`__del__` is called." msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` --- il décrémente " -"simplement le compteur de références de l'objet, et si celui ci arrive à " -"zéro :meth:`__del__` est appelée." +"La commande *del* n'appelle pas forcément :meth:`__del__` --- elle décrémente " +"simplement le compteur de références de l'objet, et si celui-ci arrive à zéro, :meth:" +"`__del__` est appelée." #: ../Doc/faq/programming.rst:1660 msgid "" -"If your data structures contain circular links (e.g. a tree where each child " -"has a parent reference and each parent has a list of children) the reference " -"counts will never go back to zero. Once in a while Python runs an algorithm " -"to detect such cycles, but the garbage collector might run some time after " -"the last reference to your data structure vanishes, so your :meth:`__del__` " -"method may be called at an inconvenient and random time. This is " -"inconvenient if you're trying to reproduce a problem. Worse, the order in " -"which object's :meth:`__del__` methods are executed is arbitrary. You can " -"run :func:`gc.collect` to force a collection, but there *are* pathological " -"cases where objects will never be collected." -msgstr "" +"If your data structures contain circular links (e.g. a tree where each child has a " +"parent reference and each parent has a list of children) the reference counts will " +"never go back to zero. Once in a while Python runs an algorithm to detect such " +"cycles, but the garbage collector might run some time after the last reference to " +"your data structure vanishes, so your :meth:`__del__` method may be called at an " +"inconvenient and random time. This is inconvenient if you're trying to reproduce a " +"problem. Worse, the order in which object's :meth:`__del__` methods are executed is " +"arbitrary. You can run :func:`gc.collect` to force a collection, but there *are* " +"pathological cases where objects will never be collected." +msgstr "" +"Si votre structure de données contient des références circulaires (e.g. un arbre dans " +"lequel chaque fils a une référence sur son père, et chaque père maintient une liste " +"de référence à ses fils), le compteur de référence n'arrivera jamais à zéro. Python " +"exécute périodiquement un algorithme pour détecter ce genre de cycles, mais il peut " +"se passer un certain temps entre le moment où la structure est référencée pour la " +"dernière fois et l'appel du ramasse-miettes, donc la méthode :meth:`__del__` peut " +"être appelée à un moment aléatoire et pas opportun. C'est gênant pour essayer " +"reproduire un problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des " +"objets est arbitraire. Il est possible de forcer l'appel, mais du ramasse-miettes " +"avec la fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne " +"seront jamais nettoyés." #: ../Doc/faq/programming.rst:1671 msgid "" -"Despite the cycle collector, it's still a good idea to define an explicit " -"``close()`` method on objects to be called whenever you're done with them. " -"The ``close()`` method can then remove attributes that refer to subobjects. " -"Don't call :meth:`__del__` directly -- :meth:`__del__` should call " -"``close()`` and ``close()`` should make sure that it can be called more than " -"once for the same object." +"Despite the cycle collector, it's still a good idea to define an explicit ``close()`` " +"method on objects to be called whenever you're done with them. The ``close()`` " +"method can then remove attributes that refer to subobjects. Don't call :meth:" +"`__del__` directly -- :meth:`__del__` should call ``close()`` and ``close()`` should " +"make sure that it can be called more than once for the same object." msgstr "" +"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé de " +"définir une méthode ``close()`` explicite sur des objets, et de l'appeler quand leur " +"cycle de vie s'achève. Cette méthode ``close()`` peut alors supprimer les attributs " +"qui font référence à des sous-objets. Il vaut mieux ne pas appeler la méthode :meth:" +"`__del__` directement, mais la méthode :meth:`__del__`devrait appeler la méthode " +"``close()`` et ``close()`` doit pouvoir être appelée plusieurs fois sur le même objet." #: ../Doc/faq/programming.rst:1678 msgid "" -"Another way to avoid cyclical references is to use the :mod:`weakref` " -"module, which allows you to point to objects without incrementing their " -"reference count. Tree data structures, for instance, should use weak " -"references for their parent and sibling references (if they need them!)." +"Another way to avoid cyclical references is to use the :mod:`weakref` module, which " +"allows you to point to objects without incrementing their reference count. Tree data " +"structures, for instance, should use weak references for their parent and sibling " +"references (if they need them!)." msgstr "" +"Une alternative pour éviter les références cycliques consiste à utiliser le module :" +"mod:`weakref`, qui permet de faire référence à des objets sans incrémenter leur " +"compteur de référence. Par exemple, les structures d'arbres devraient référencer " +"utiliser des références creuses entre pères et fils (si nécessaire !)." #: ../Doc/faq/programming.rst:1691 msgid "" -"Finally, if your :meth:`__del__` method raises an exception, a warning " -"message is printed to :data:`sys.stderr`." +"Finally, if your :meth:`__del__` method raises an exception, a warning message is " +"printed to :data:`sys.stderr`." msgstr "" +"Enfin, si la méthode :meth:`__del__` lève une exception, un message d'avertissement " +"s'affiche dans :data:`sys.stderr`." #: ../Doc/faq/programming.rst:1696 msgid "How do I get a list of all instances of a given class?" -msgstr "" +msgstr "Comment obtenir toutes les instances d'une classe ?" #: ../Doc/faq/programming.rst:1698 msgid "" -"Python does not keep track of all instances of a class (or of a built-in " -"type). You can program the class's constructor to keep track of all " -"instances by keeping a list of weak references to each instance." +"Python does not keep track of all instances of a class (or of a built-in type). You " +"can program the class's constructor to keep track of all instances by keeping a list " +"of weak references to each instance." msgstr "" +"Python ne tient pas de registre de toutes les instances d'une classe (ni de n'importe " +"quel type natif). Il est cependant possible de programmer le constructeur de la " +"classe de façon à tenir un tel registre, en maintenant une liste de références " +"creuses vers chaque instance." #: ../Doc/faq/programming.rst:1704 msgid "Why does the result of ``id()`` appear to be not unique?" -msgstr "" +msgstr "Pourquoi le résultat de ``id()`` se répète-t'il ?" #: ../Doc/faq/programming.rst:1706 msgid "" -"The :func:`id` builtin returns an integer that is guaranteed to be unique " -"during the lifetime of the object. Since in CPython, this is the object's " -"memory address, it happens frequently that after an object is deleted from " -"memory, the next freshly created object is allocated at the same position in " -"memory. This is illustrated by this example:" +"The :func:`id` builtin returns an integer that is guaranteed to be unique during the " +"lifetime of the object. Since in CPython, this is the object's memory address, it " +"happens frequently that after an object is deleted from memory, the next freshly " +"created object is allocated at the same position in memory. This is illustrated by " +"this example:" msgstr "" +"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie durant " +"toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité l'adresse mémoire " +"de l'objet, il est fréquent qu'un nouvel objet soit alloué à une adresse mémoire " +"identique à celle d'un objet venant d'être supprimé. Comme l'illustre le code " +"suivant :" #: ../Doc/faq/programming.rst:1717 msgid "" -"The two ids belong to different integer objects that are created before, and " -"deleted immediately after execution of the ``id()`` call. To be sure that " -"objects whose id you want to examine are still alive, create another " -"reference to the object:" +"The two ids belong to different integer objects that are created before, and deleted " +"immediately after execution of the ``id()`` call. To be sure that objects whose id " +"you want to examine are still alive, create another reference to the object:" msgstr "" +"Les deux identifiants appartiennent à des objets entiers créés juste avant l'appel à " +"``id()`` et détruits immédiatement après. Pour s'assurer que les objets dont on veut " +"examiner les identifiants sont toujours en vie, créons une nouvelle référence à " +"l'objet :" #: ../Doc/faq/programming.rst:1730 msgid "Modules" @@ -2431,253 +2494,315 @@ msgstr "Modules" #: ../Doc/faq/programming.rst:1733 msgid "How do I create a .pyc file?" -msgstr "" +msgstr "Comment créer des fichiers .pyc ?" #: ../Doc/faq/programming.rst:1735 msgid "" -"When a module is imported for the first time (or when the source file has " -"changed since the current compiled file was created) a ``.pyc`` file " -"containing the compiled code should be created in a ``__pycache__`` " -"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " -"file will have a filename that starts with the same name as the ``.py`` " -"file, and ends with ``.pyc``, with a middle component that depends on the " -"particular ``python`` binary that created it. (See :pep:`3147` for details.)" -msgstr "" +"When a module is imported for the first time (or when the source file has changed " +"since the current compiled file was created) a ``.pyc`` file containing the compiled " +"code should be created in a ``__pycache__`` subdirectory of the directory containing " +"the ``.py`` file. The ``.pyc`` file will have a filename that starts with the same " +"name as the ``.py`` file, and ends with ``.pyc``, with a middle component that " +"depends on the particular ``python`` binary that created it. (See :pep:`3147` for " +"details.)" +msgstr "" +"Quand un module est importé pour la première fois (ou si le fichier source a été " +"modifié depuis la création du fichier compilé), un fichier ``.pyc`` contenant le code " +"précompilé est créé dans un sous-dossier ``__pycache__`` du dossier contentant le " +"fichier ``.py``. Le nom du fichier ``.pyc`` est identique au fichier ``.py`` et se " +"termine par ``.pyc``, avec un (??????????) qui dépend du binaire ``python`` qui l'a " +"créé. (Voir :pep:`3147` pour de plus amples précisions.)" #: ../Doc/faq/programming.rst:1743 msgid "" -"One reason that a ``.pyc`` file may not be created is a permissions problem " -"with the directory containing the source file, meaning that the " -"``__pycache__`` subdirectory cannot be created. This can happen, for " -"example, if you develop as one user but run as another, such as if you are " -"testing with a web server." +"One reason that a ``.pyc`` file may not be created is a permissions problem with the " +"directory containing the source file, meaning that the ``__pycache__`` subdirectory " +"cannot be created. This can happen, for example, if you develop as one user but run " +"as another, such as if you are testing with a web server." msgstr "" +"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé est un " +"problème de droits sur le dossier qui contient le fichier source, ce qui veut dire " +"qu'il est impossible de créer le le sous-dossier ``__pycache__``. Ceci peut arriver, " +"par exemple, si vous développez en tant qu'un certain utilisateur, mais que le code " +"est exécuté en tant qu'un autre utilisateur, par exemple si on teste un serveur Web." #: ../Doc/faq/programming.rst:1748 msgid "" -"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " -"creation of a .pyc file is automatic if you're importing a module and Python " -"has the ability (permissions, free space, etc...) to create a " -"``__pycache__`` subdirectory and write the compiled module to that " -"subdirectory." +"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, creation of " +"a .pyc file is automatic if you're importing a module and Python has the ability " +"(permissions, free space, etc...) to create a ``__pycache__`` subdirectory and write " +"the compiled module to that subdirectory." msgstr "" +"La création du fichier .pyc est automatique durant l'import d'un module si Python est " +"capable (en termes de droits, d'espace disque, etc) de créer un sous-dossier " +"``__pycache__`` et d'écrire le module ainsi compilé dans ce sous-répertoire, à moins " +"que la variable d'environnement :envvar:`PYTHONDONTWRITEBYTECODE` soit définie." #: ../Doc/faq/programming.rst:1753 msgid "" -"Running Python on a top level script is not considered an import and no ``." -"pyc`` will be created. For example, if you have a top-level module ``foo." -"py`` that imports another module ``xyz.py``, when you run ``foo`` (by typing " -"``python foo.py`` as a shell command), a ``.pyc`` will be created for " -"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " -"for ``foo`` since ``foo.py`` isn't being imported." +"Running Python on a top level script is not considered an import and no ``.pyc`` will " +"be created. For example, if you have a top-level module ``foo.py`` that imports " +"another module ``xyz.py``, when you run ``foo`` (by typing ``python foo.py`` as a " +"shell command), a ``.pyc`` will be created for ``xyz`` because ``xyz`` is imported, " +"but no ``.pyc`` file will be created for ``foo`` since ``foo.py`` isn't being " +"imported." msgstr "" +"Exécuter du Python dans un script de (?????) n'est pas considéré comme un import et " +"le fichier ``.pyc`` n'est pas créé. Par exemple, si un module de plus haut niveau " +"``foo.py`` importe un autre module ``xyz.py``, alors à l'exécution de ``foo`` (en " +"tapant ``python foo.py`` dans la console), un fichier ``.pyc`` est créé pour ``xyz`` " +"mais pas pour ``foo`` car ``foo.py`` n'est pas importé." #: ../Doc/faq/programming.rst:1760 msgid "" -"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." -"pyc`` file for a module that is not imported -- you can, using the :mod:" -"`py_compile` and :mod:`compileall` modules." +"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``.pyc`` " +"file for a module that is not imported -- you can, using the :mod:`py_compile` and :" +"mod:`compileall` modules." msgstr "" +"Pour créer un fichier ``.pyc`` pour ``foo`` -- c'est à dire de créer un fichier ``." +"pyc`` pour un module qui n'est pas importé -- il existe les modules :mod:`py_compile` " +"et :mod:`compileall`." #: ../Doc/faq/programming.rst:1764 msgid "" -"The :mod:`py_compile` module can manually compile any module. One way is to " -"use the ``compile()`` function in that module interactively::" +"The :mod:`py_compile` module can manually compile any module. One way is to use the " +"``compile()`` function in that module interactively::" msgstr "" +"Le module :mod:`py_compile` peut compiler n'importe quel module manuellement. Il est " +"ainsi possible d'appeler la fonction ``compile()`` de manière interactive :" #: ../Doc/faq/programming.rst:1770 msgid "" -"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " -"location as ``foo.py`` (or you can override that with the optional parameter " -"``cfile``)." +"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same location " +"as ``foo.py`` (or you can override that with the optional parameter ``cfile``)." msgstr "" +"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté de ``foo." +"py`` (le paramètre optionnel ``cfile`` permet de changer ce comportement)." #: ../Doc/faq/programming.rst:1774 msgid "" -"You can also automatically compile all files in a directory or directories " -"using the :mod:`compileall` module. You can do it from the shell prompt by " -"running ``compileall.py`` and providing the path of a directory containing " -"Python files to compile::" +"You can also automatically compile all files in a directory or directories using the :" +"mod:`compileall` module. You can do it from the shell prompt by running ``compileall." +"py`` and providing the path of a directory containing Python files to compile::" msgstr "" +"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés avec le " +"module :mod:`compileall`. C'est faisable depuis l'invite de commande en exécutant " +"``compileall.py`` avec le chemin du dossier contenant les fichiers Python à " +"compiler ::" #: ../Doc/faq/programming.rst:1783 msgid "How do I find the current module name?" -msgstr "" +msgstr "Comment obtenir le nom du module actuel ?" #: ../Doc/faq/programming.rst:1785 msgid "" -"A module can find out its own module name by looking at the predefined " -"global variable ``__name__``. If this has the value ``'__main__'``, the " -"program is running as a script. Many modules that are usually used by " -"importing them also provide a command-line interface or a self-test, and " -"only execute this code after checking ``__name__``::" +"A module can find out its own module name by looking at the predefined global " +"variable ``__name__``. If this has the value ``'__main__'``, the program is running " +"as a script. Many modules that are usually used by importing them also provide a " +"command-line interface or a self-test, and only execute this code after checking " +"``__name__``::" msgstr "" +"Un module peut déterminer son propre nom en examinant la variable globale prédéfinie " +"``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le programme est exécuté " +"comme un script. Beaucoup de modules qui doivent normalement être importés pour " +"pouvoir être utilisés, fournissent aussi une interface en ligne de commande ou un " +"test automatique. Ils n'exécutent cette partir du code qu'après avoir vérifié la " +"valeur de ``__name__``::" #: ../Doc/faq/programming.rst:1800 msgid "How can I have modules that mutually import each other?" -msgstr "" +msgstr "Comment avoir des modules qui s'importent mutuellement ?" #: ../Doc/faq/programming.rst:1802 msgid "Suppose you have the following modules:" -msgstr "" +msgstr "Considérons les modules suivants :" #: ../Doc/faq/programming.rst:1804 msgid "foo.py::" -msgstr "" +msgstr "foo.py ::" #: ../Doc/faq/programming.rst:1809 msgid "bar.py::" -msgstr "" +msgstr "bar.py ::" #: ../Doc/faq/programming.rst:1814 msgid "The problem is that the interpreter will perform the following steps:" -msgstr "" +msgstr "Le problème réside dans les étapes que va l'interpréteur va réaliser :" #: ../Doc/faq/programming.rst:1816 msgid "main imports foo" -msgstr "" +msgstr "main importe foo" #: ../Doc/faq/programming.rst:1817 msgid "Empty globals for foo are created" -msgstr "" +msgstr "Les variables globales (vides) de foo sont créées" #: ../Doc/faq/programming.rst:1818 msgid "foo is compiled and starts executing" -msgstr "" +msgstr "foo est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1819 msgid "foo imports bar" -msgstr "" +msgstr "foo importe bar" #: ../Doc/faq/programming.rst:1820 msgid "Empty globals for bar are created" -msgstr "" +msgstr "Les variables globales (vides) de bar sont créées" #: ../Doc/faq/programming.rst:1821 msgid "bar is compiled and starts executing" -msgstr "" +msgstr "bar est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1822 msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" +"bar importe foo (en réalité, rien ne passe car il y a déjà un module appelé foo)" #: ../Doc/faq/programming.rst:1823 msgid "bar.foo_var = foo.foo_var" -msgstr "" +msgstr "bar.foo_var = foo.foo_var" #: ../Doc/faq/programming.rst:1825 msgid "" -"The last step fails, because Python isn't done with interpreting ``foo`` yet " -"and the global symbol dictionary for ``foo`` is still empty." +"The last step fails, because Python isn't done with interpreting ``foo`` yet and the " +"global symbol dictionary for ``foo`` is still empty." msgstr "" +"La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " +"dictionnaire global des symboles de ``foo`` est encore vide." #: ../Doc/faq/programming.rst:1828 msgid "" -"The same thing happens when you use ``import foo``, and then try to access " -"``foo.foo_var`` in global code." +"The same thing happens when you use ``import foo``, and then try to access ``foo." +"foo_var`` in global code." msgstr "" +"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye ensuite " +"d'accéder à ``foo.foo_var`` dans le code global." #: ../Doc/faq/programming.rst:1831 msgid "There are (at least) three possible workarounds for this problem." -msgstr "" +msgstr "Il y a (au moins) trois façon de contourner ce problème." #: ../Doc/faq/programming.rst:1833 msgid "" -"Guido van Rossum recommends avoiding all uses of ``from import ..." -"``, and placing all code inside functions. Initializations of global " -"variables and class variables should use constants or built-in functions " -"only. This means everything from an imported module is referenced as " -"``.``." +"Guido van Rossum recommends avoiding all uses of ``from import ...``, and " +"placing all code inside functions. Initializations of global variables and class " +"variables should use constants or built-in functions only. This means everything " +"from an imported module is referenced as ``.``." msgstr "" +"Guido van Rossum déconseille d'utiliser ``from import ...``, et de mettre " +"tout le code dans des fonctions. L'initialisation des variables globales et des " +"variables de classe ne doit utiliser que des constantes ou des fonctions natives. " +"Ceci implique que tout ce qui est fourni par un module soit référencé par ``." +"``." #: ../Doc/faq/programming.rst:1838 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" +"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans chaque " +"module :" #: ../Doc/faq/programming.rst:1840 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" msgstr "" +"les exportations (variables globales, fonctions et les classes qui ne nécessitent " +"d'importer des classes de base)" #: ../Doc/faq/programming.rst:1842 msgid "``import`` statements" -msgstr "" +msgstr "les instructions ``import``" #: ../Doc/faq/programming.rst:1843 msgid "" "active code (including globals that are initialized from imported values)." msgstr "" +"le code (avec les variables globales qui sont initialisées à partir de valeurs " +"importées)." #: ../Doc/faq/programming.rst:1845 msgid "" -"van Rossum doesn't like this approach much because the imports appear in a " -"strange place, but it does work." +"van Rossum doesn't like this approach much because the imports appear in a strange " +"place, but it does work." msgstr "" +"van Rossum n'aime pas cette approche car les imports se trouvent à un niveau bizarre, " +"mais cela fonctionne." #: ../Doc/faq/programming.rst:1848 msgid "" -"Matthias Urlichs recommends restructuring your code so that the recursive " -"import is not necessary in the first place." +"Matthias Urlichs recommends restructuring your code so that the recursive import is " +"not necessary in the first place." msgstr "" +"Matthias Urlichs conseille de restructurer le code pour éviter les imports récursifs." #: ../Doc/faq/programming.rst:1851 msgid "These solutions are not mutually exclusive." -msgstr "" +msgstr "Ces solutions peuvent être combinées." #: ../Doc/faq/programming.rst:1855 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "" +msgstr "__import__('x.y.z') renvoie ;comment accéder à z?" #: ../Doc/faq/programming.rst:1857 msgid "" -"Consider using the convenience function :func:`~importlib.import_module` " -"from :mod:`importlib` instead::" +"Consider using the convenience function :func:`~importlib.import_module` from :mod:" +"`importlib` instead::" msgstr "" +"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:`importlib` ::" #: ../Doc/faq/programming.rst:1864 msgid "" -"When I edit an imported module and reimport it, the changes don't show up. " -"Why does this happen?" -msgstr "" +"When I edit an imported module and reimport it, the changes don't show up. Why does " +"this happen?" +msgstr " " #: ../Doc/faq/programming.rst:1866 msgid "" -"For reasons of efficiency as well as consistency, Python only reads the " -"module file on the first time a module is imported. If it didn't, in a " -"program consisting of many modules where each one imports the same basic " -"module, the basic module would be parsed and re-parsed many times. To force " -"re-reading of a changed module, do this::" +"For reasons of efficiency as well as consistency, Python only reads the module file " +"on the first time a module is imported. If it didn't, in a program consisting of " +"many modules where each one imports the same basic module, the basic module would be " +"parsed and re-parsed many times. To force re-reading of a changed module, do this::" msgstr "" +"Pour des raisons de performance et de cohérence, Python ne lit le fichier d'un module " +"que la première fois où celui-ci est importé. Si ce n'était pas le cas, dans un " +"programme composé d'un très grand nombre de modules qui importeraient tous le même " +"module de base, ce module de base serait analysé et ré-analysé un très grand nombre " +"de fois. Pour forcer la relecture d'un module, il faut faire ::" #: ../Doc/faq/programming.rst:1876 msgid "" -"Warning: this technique is not 100% fool-proof. In particular, modules " -"containing statements like ::" +"Warning: this technique is not 100% fool-proof. In particular, modules containing " +"statements like ::" msgstr "" +"Attention, cette technique ne marche pas systématiquement. En particulier, les " +"modules qui contiennent des instructions comme ::" #: ../Doc/faq/programming.rst:1881 msgid "" -"will continue to work with the old version of the imported objects. If the " -"module contains class definitions, existing class instances will *not* be " -"updated to use the new class definition. This can result in the following " -"paradoxical behaviour::" +"will continue to work with the old version of the imported objects. If the module " +"contains class definitions, existing class instances will *not* be updated to use the " +"new class definition. This can result in the following paradoxical behaviour::" msgstr "" +"continueraient de fonctionner avec l'ancienne version des objets importés. Si le " +"module contient une définition de classe, le instances déjà existante de celle-ci ne " +"seront *pas* mises à jour avec la nouvelle définition de la classe. Ceci peut " +"conduire au comportement paradoxal suivant :" #: ../Doc/faq/programming.rst:1894 msgid "" -"The nature of the problem is made clear if you print out the \"identity\" of " -"the class objects::" +"The nature of the problem is made clear if you print out the \"identity\" of the " +"class objects::" msgstr "" +"La nature du problème apparaît clairement en affichant « l'identité » des objets de " +"la classe ::" #~ msgid "Dictionaries" #~ msgstr "Dictionnaires" #~ msgid "" -#~ "How can I get a dictionary to store and display its keys in a consistent " -#~ "order?" +#~ "How can I get a dictionary to store and display its keys in a consistent order?" #~ msgstr "" -#~ "Comment puis-je faire stocker et afficher les clefs d'un dictionnaire " -#~ "dans un ordre cohérent ?" +#~ "Comment puis-je faire stocker et afficher les clefs d'un dictionnaire dans un " +#~ "ordre cohérent ?" From b9d2b120965306b68dd8c0b60014adaec5412b55 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 18:17:20 +0200 Subject: [PATCH 09/26] IV --- faq/programming.po | 466 +++++++++++++++++++++++---------------------- 1 file changed, 234 insertions(+), 232 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 27387e40c..373da8028 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-04-22 23:54+0200\n" +"PO-Revision-Date: 2019-04-29 14:02+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -30,7 +30,7 @@ msgstr "Questions générales" #: ../Doc/faq/programming.rst:15 msgid "Is there a source code level debugger with breakpoints, single-stepping, etc.?" msgstr "" -"Existe-t'il une débogueur de code source avec points d'arrêts, exécution pas-à-pas, " +"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-à-pas, " "etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 @@ -44,10 +44,10 @@ msgid "" "Manual `. You can also write your own debugger by using the code for pdb as an " "example." msgstr "" -"Le module pdb est un débogueur console simple mais approprié à Python. Il fait partie " -"de la bibliothèque standard de Python , sa documentation se trouve dans le :mod:" -"`manuel de référence `. Vous pouvez vous inspirer du code de pdb pour écrire " -"votre propre débogeur." +"Le module pdb est un débogueur console simple, mais parfaitement adapté à Python. Il " +"fait partie de la bibliothèque standard de Python, sa documentation se trouve dans " +"le :mod:`manuel de référence `. Vous pouvez vous inspirer du code de pdb pour " +"écrire votre propre débogueur." #: ../Doc/faq/programming.rst:24 msgid "" @@ -56,7 +56,7 @@ msgid "" "debugger." msgstr "" "L'environnement de développement interactif IDLE, qui est fourni avec la distribution " -"standard de Python (normalement disponible dans Tools/scripts/idle) comporte un " +"standard de Python (normalement disponible dans Tools/scripts/idle) contient un " "débogueur graphique." #: ../Doc/faq/programming.rst:28 @@ -67,12 +67,13 @@ msgid "" "Extensions `__ project and as a part of " "the ActivePython distribution (see https://www.activestate.com/activepython\\ )." msgstr "" -"Pythonwin est un environnement de développement intégré (EDI) Python qui comporte un " -"débogueur graphique basé sur pdb. Le débogeur Pythonwin colore les points d'arrêts et " -"a quelques fonctionnalités sympathiques comme déboguer des programmes développés hors " -"de Pythonwin. Pythonwin est disponible dans le projet `Extensions Python pour " -"Windows `__ et fait parti de la " -"distribution ActivePython (voir https://www.activestate.com/activepython\\)." +"PythonWin est un environnement de développement intégré (EDI) Python qui embarque un " +"débogueur graphique basé sur pdb. Le débogueur PythonWin colore les points d'arrêts " +"et possède quelques fonctionnalités sympathiques, comme la possibilité de déboguer " +"des programmes développés sans PythonWin. Pythonwin est disponible dans le projet " +"`Extensions Python pour Windows `__ et " +"fait partie de la distribution ActivePython (voir https://www.activestate.com/" +"activepython\\)." #: ../Doc/faq/programming.rst:35 msgid "" @@ -114,7 +115,7 @@ msgid "" "There are a number of commercial Python IDEs that include graphical debuggers. They " "include:" msgstr "" -"Il y a de nombreux EDI Python propriétaires qui contiennent un débogueur graphique. " +"Il y a de nombreux EDI Python propriétaires qui embarquent un débogueur graphique. " "Notamment :" #: ../Doc/faq/programming.rst:52 @@ -156,12 +157,13 @@ msgid "" "features." msgstr "" "Pylint `_ est un autre outil qui vérifie si un module " -"satisfait aux normes de développement, et qui permet aussi d'écrire des greffons pour " -"ajouter des fonctionnalités personnalisées. En plus de la vérification des bogues " -"effectuée par PyChecker, Pylint effectue quelques vérifications supplémentaires comme " -"la longueur des lignes, les conventions de nommage des variables, que les interfaces " -"déclarées sont entièrement implémentées, et plus encore. https://docs.pylint.org/ " -"fournit la liste complète des fonctionnalités de Pylint." +"satisfait aux normes de développement, et qui permet en plus d'écrire des greffons " +"pour ajouter des fonctionnalités personnalisées. En plus de la vérification des " +"bogues effectuée par PyChecker, Pylint effectue quelques vérifications " +"supplémentaires comme la longueur des lignes, les conventions de nommage des " +"variables, que les interfaces déclarées sont implémentées en totalité, et plus " +"encore. https://docs.pylint.org/ fournit la liste complète des fonctionnalités de " +"Pylint." #: ../Doc/faq/programming.rst:74 msgid "" @@ -185,11 +187,11 @@ msgid "" "required by a program and bind these modules together with a Python binary to produce " "a single executable." msgstr "" -"Il n'est pas nécessaire de compiler du code Python en code C pour obtenir un " -"programme autonome, que les utilisateurs peuvent télécharger et exécuter sans avoir à " -"installer une distribution Python au préalable. Il existe plusieurs outils qui " -"déterminent les modules requis par un programme et lient ces modules avec un binaire " -"Python pour produire un seul exécutable." +"Pour créer un programme autonome, c'est-à-dire un programme que n'importe qui peut " +"télécharger et exécuter sans avoir à installer une distribution Python au préalable, " +"il n'est pas nécessaire de compiler du code Python en code C. Il existe en effet " +"plusieurs outils qui déterminent les modules requis par un programme et lient ces " +"modules avec un binaire Python pour produire un seul exécutable." #: ../Doc/faq/programming.rst:89 msgid "" @@ -200,8 +202,8 @@ msgid "" msgstr "" "Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de l'arborescence " "des sources de Python. Il convertit le *bytecode* Python en tableaux C ; un " -"compilateur C vous permet d'intégrer tous vos modules dans un nouveau programme, qui " -"est ensuite lié aux modules standard Python." +"compilateur C permet d'intégrer tous vos modules dans un nouveau programme, qui est " +"ensuite lié aux modules standards Python." #: ../Doc/faq/programming.rst:94 msgid "" @@ -229,9 +231,9 @@ msgid "" "Obviously, freeze requires a C compiler. There are several other utilities which " "don't. One is Thomas Heller's py2exe (Windows only) at" msgstr "" -"Bien évidemment, freeze nécessite un compilateur C. Il y a d'autres outils qui n'en " -"ont pas besoin. Un de ceux-ci est py2exe de Thomas Heller (pour Windows uniquement) " -"disponible sur" +"Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres outils qui " +"peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller (pour Windows " +"uniquement) disponible sur" #: ../Doc/faq/programming.rst:106 msgid "http://www.py2exe.org/" @@ -256,8 +258,8 @@ msgid "" "Yes. The coding style required for standard library modules is documented as :pep:" "`8`." msgstr "" -"Oui. Le style de développement obligatoire pour les modules de la bibliothèque " -"standard est documentée dans :pep:`8`." +"Oui. Le style de développement que les modules de la bibliothèque standard doivent " +"obligatoirement respecter est documentée dans la :pep:`8`." #: ../Doc/faq/programming.rst:119 msgid "Core Language" @@ -296,7 +298,7 @@ msgid "" "recognizes it as a local variable. Consequently when the earlier ``print(x)`` " "attempts to print the uninitialized local variable and an error results." msgstr "" -"Cela est dû au fait que quand une variable est affectée dans un contexte, cette " +"Cela est dû au fait que, quand une variable est affectée dans un contexte, cette " "variable devient locale à ce contexte et remplace toute variable du même nom du " "contexte appelant. Vu que la dernière instruction dans foo affecte une nouvelle " "valeur à ``x``, le compilateur la traite comme une nouvelle variable. Par conséquent, " @@ -355,7 +357,7 @@ msgstr "" "Bien que surprenant au premier abord, ce choix s'explique facilement. D'une part, " "exiger :keyword:`global` pour des variables affectées est une protection contre des " "effets de bord inattendus. D'autre part, si ``global`` était obligatoire pour toutes " -"les références à des objets globaux, il faudrait mettre ``global`` partout car il " +"les références à des objets globaux, il faudrait mettre ``global`` partout, car il " "faudrait dans ce cas déclarer globale chaque référence à une fonction native ou à un " "composant d'un module importé. Le codé serait alors truffé de déclarations " "``global``, ce qui nuirait à leur raison d'être : identifier les effets de bords." @@ -398,7 +400,7 @@ msgstr "" "mais est définie dans le contexte appelant. Elle est lue à l'appel de l'expression " "lambda – et non au moment où cette expression est définie. À la fin de la boucle, " "``x`` vaut ``4``, donc toutes les fonctions renvoient ``4*2``, i.e. ``16``. Ceci se " -"vérifie également en changeant la valeur de ``x`` et en voyant comment les résultats " +"vérifie également en changeant la valeur de ``x`` et en constatant que les résultats " "sont modifiés :" #: ../Doc/faq/programming.rst:237 @@ -490,7 +492,7 @@ msgid "" "import per line makes it easy to add and delete module imports, but using multiple " "imports per line uses less screen space." msgstr "" -"Les modules doivent être importés en haut d'un fichier. Ceci pour dire afficher " +"Les modules doivent être importés au début d'un fichier. Ceci pour afficher " "clairement les autres modules dont le code à besoin et éviter de se demander si le " "module est dans le contexte. Faire un seul import par ligne rend l'ajout et la " "suppression d'un import de module plus aisé, mais importer plusieurs modules sur une " @@ -523,7 +525,7 @@ msgid "" "with circular imports. Gordon McMillan says:" msgstr "" "Il est parfois nécessaire de déplacer des imports dans une fonction ou une classe " -"pour éviter les problèmes d'imports circulaires. Comme le dit Gordon McMillan :" +"pour éviter les problèmes d'imports circulaires. Comme le souligne Gordon McMillan :" #: ../Doc/faq/programming.rst:309 msgid "" @@ -532,11 +534,11 @@ msgid "" "module import name\") and the import is at the top level. That's because names in " "the 1st are not yet available, because the first module is busy importing the 2nd." msgstr "" -"Il n'y a pas de problème avec les imports circulaires tant que les deux modules " -"utilisent la forme \"import \" . Ça pose problème si le second module cherche " -"à récupérer un nom du premier module (\"from module import name\") et que l'import " -"est dans l'espace de noms du fichier. Les noms du premier module ne sont en effet pas " -"encore disponibles car le premier module est occupé à importer le second." +"Il n'y a aucun soucis à faire des imports circulaires tant que les deux modules " +"utilisent la forme \"import \" . Ça ne pose problème que si le second module " +"cherche à récupérer un nom du premier module (\"from module import name\") et que " +"l'import est dans l'espace de noms du fichier. Les noms du premier module ne sont en " +"effet pas encore disponibles car le premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:315 msgid "" @@ -545,7 +547,7 @@ msgid "" "module will have finished initializing, and the second module can do its import." msgstr "" "Dans ce cas, si le second module n'est utilisé que dans une fonction, l'import peut " -"facilement être déplacé dans cette fonction. Au moment où l'import sera appelé , le " +"facilement être déplacé dans cette fonction. Au moment où l'import sera appelé, le " "premier module aura fini de s'initialiser et le second pourra faire son import." #: ../Doc/faq/programming.rst:320 @@ -555,11 +557,11 @@ msgid "" "all of the modules at the top of the file. In this case, importing the correct " "modules in the corresponding platform-specific code is a good option." msgstr "" -"Il peut parfois être nécessaire de bouger des imports de modules hors de l'espace de " -"noms du module si ces modules dépendent de la machine. Dans ce cas de figure, il est " -"parfois impossible d'importer tous les modules au début du fichier. Dans ce cas, " -"faire l'import des bons modules dans le code correspondant est une bonne façon de " -"faire." +"Il peut parfois être nécessaire de déplacer des imports de modules hors de l'espace " +"de plus haut niveau du code si certains de ces modules dépendent de la machine " +"utilisée. Dans ce cas de figure, il est parfois impossible d'importer tous les " +"modules au début du fichier. Dans ce cas, il est recommandé de faire l'import des " +"modules adéquats dans le code spécifique à la machine." #: ../Doc/faq/programming.rst:325 msgid "" @@ -574,24 +576,24 @@ msgid "" "has gone out of scope, the module is probably available in :data:`sys.modules`." msgstr "" "Les imports ne devraient être déplacés dans un espace local, comme dans la définition " -"d'une fonction, que si cela est nécessaire pour résoudre un problème tel qu'éviter " -"des dépendances circulaires ou réduire le temps d'initialisation d'un module. Cette " +"d'une fonction, que si cela est nécessaire pour résoudre un problème comme éviter des " +"dépendances circulaires ou réduire le temps d'initialisation d'un module. Cette " "technique est particulièrement utile si la majorité des imports est superflue selon " "le flux d'exécution du programme. Il est également pertinent de déplacer des imports " "dans une fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " "chargement d'un module peut être coûteux à cause du coût fixe d'initialisation d'un " -"module, mais charger un module plusieurs fois est virtuellement gratuit, cela ne " -"coûte que quelques recherches dans un dictionnaire. Même si le nom du module est " -"sorti du contexte, le module est probablement disponible dans :data:`sys.modules`." +"module, mais charger un module plusieurs fois est quasiment gratuit, cela ne coûte " +"que quelques indirections dans un dictionnaire. Même si le nom du module est sorti du " +"contexte courant, le module est probablement disponible dans :data:`sys.modules`." #: ../Doc/faq/programming.rst:338 msgid "Why are default values shared between objects?" -msgstr "Pourquoi les arguments par défaut sont partagés entre les objets ?" +msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" #: ../Doc/faq/programming.rst:340 msgid "This type of bug commonly bites neophyte programmers. Consider this function::" msgstr "" -"C'est un problème que rencontrent souvent le programmeurs néophytes. Examinons la " +"C'est un problème que rencontrent souvent les programmeurs débutants. Examinons la " "fonction suivante ::" #: ../Doc/faq/programming.rst:347 @@ -613,7 +615,7 @@ msgid "" msgstr "" "On est souvent amené à croire qu'un appel de fonction créé des nouveau objets pour " "les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par défaut ne sont " -"créées une et une seule fois, au moment où la fonction est définie. Si l'objet est " +"créées qu'une et une seule fois, au moment où la fonction est définie. Si l'objet est " "modifié, comme le dictionnaire dans cet exemple, les appels suivants à cette fonction " "font référence à l'objet ainsi modifié." @@ -635,10 +637,11 @@ msgid "" "function, check if the parameter is ``None`` and create a new list/dictionary/" "whatever if it is. For example, don't write::" msgstr "" -"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets muables " -"pour . Il vaut mieux utiliser ``None`` comme valeur par défaut à l'intérieur de la " -"fonction, vérifier si le paramètre est à ``None`` et créer une nouvelle liste/" -"dictionnaire/autre le cas échéant. Par exemple, il ne faut pas écrire ::" +"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets muables comme " +"valeurs par défaut. Il vaut mieux utiliser ``None`` comme valeur par défaut à " +"l'intérieur de la fonction, vérifier si le paramètre est à ``None`` et créer une " +"nouvelle liste, dictionnaire ou autre, le cas échéant. Par exemple, il ne faut pas " +"écrire ::" #: ../Doc/faq/programming.rst:368 msgid "but::" @@ -694,8 +697,8 @@ msgstr "" "Les :term:`paramètres ` sont les noms qui apparaissent dans une définition " "de fonction, alors que les :term:`arguments ` sont les valeurs qui sont " "réellement passées à une fonction lors de l'appel de celle-ci. Les paramètres " -"définissent les types d'argument qu'une fonction accepte. Ainsi, avec la définition " -"de fonction suivante ::" +"définissent les types des arguments qu'une fonction accepte. Ainsi, avec la " +"définition de fonction suivante ::" #: ../Doc/faq/programming.rst:425 msgid "" @@ -720,7 +723,8 @@ msgstr "Si vous avez écrit du code comme : ::" #: ../Doc/faq/programming.rst:446 msgid "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" -"vous vous demandez peut-être pourquoi ajouter un élément à ``y`` a aussi changé ``x``." +"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi changé " +"``x``." #: ../Doc/faq/programming.rst:448 msgid "There are two factors that produce this result:" @@ -733,15 +737,15 @@ msgid "" "``x`` refers to. This means that there is only one object (the list), and both ``x`` " "and ``y`` refer to it." msgstr "" -"Les variable ne sont que des noms qui font référence à des objets. La ligne ``y = x`` " -"ne crée pas une copie de la liste -- elle crée une nouvelle variable ``y`` qui pointe " -"sur le même objet que ``x``. Ceci signifie qu'il n'existe qu'un seul objet (la liste) " -"auquel ``x`` et ``y`` font référence." +"Les variables ne sont que des noms qui font référence à des objets. La ligne ``y = " +"x`` ne crée pas une copie de la liste -- elle crée une nouvelle variable ``y`` qui " +"pointe sur le même objet que ``x``. Ceci signifie qu'il n'existe qu'un seul objet (la " +"liste) auquel ``x`` et ``y`` font référence." #: ../Doc/faq/programming.rst:454 msgid "Lists are :term:`mutable`, which means that you can change their content." msgstr "" -"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut être " +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut être " "modifié." #: ../Doc/faq/programming.rst:456 @@ -818,8 +822,8 @@ msgid "" "can use some specific operations to mutate it and all the variables that refer to it " "will see the change." msgstr "" -"Sur un objet muable (:class:`list`, :class:`dict`, :class:`set` etc), il est possible " -"d'appliquer des opérations qui modifient cet objet et toutes les variables qui y font " +"Il est possible d'appliquer des opérations qui modifient un objet muable (:class:" +"`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui y font " "référence verront le changement." #: ../Doc/faq/programming.rst:499 @@ -828,8 +832,8 @@ msgid "" "all the variables that refer to it will always see the same value, but operations " "that transform that value into a new value always return a new object." msgstr "" -"Sur un objet immuable (:class:`str`, :class:`int`, :class:`tuple` etc), toutes les " -"variables qui y font référence renvoient la même valeur, mais les opérations qui " +"Toutes les variables qui y font référence à n objet immuable (:class:`str`, :class:" +"`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les opérations qui " "transforment cette valeur en une nouvelle valeur renvoient toujours un nouvel objet." #: ../Doc/faq/programming.rst:504 @@ -869,7 +873,7 @@ msgstr "C'est presque toujours la meilleure solution." msgid "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" "En utilisant des variables globales. Cette approche ne fonctionne pas dans des " -"contextes à plusieurs fils d'exécution (pas *thread-safe*), et n'est donc pas " +"contextes à plusieurs fils d'exécution (non *thread-safe*), et n'est donc pas " "recommandée." #: ../Doc/faq/programming.rst:531 @@ -891,7 +895,7 @@ msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." #: ../Doc/faq/programming.rst:569 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"Votre meilleure option est de renvoyer un n-uplet contenant les différents résultats." +"La meilleure option reste de renvoyer un n-uplet contenant les différents résultats." #: ../Doc/faq/programming.rst:573 msgid "How do you make a higher order function in Python?" @@ -903,10 +907,10 @@ msgid "" "example, suppose you wanted to define ``linear(a,b)`` which returns a function " "``f(x)`` that computes the value ``a*x+b``. Using nested scopes::" msgstr "" -"Vous avez deux possibilités : vous pouvez utiliser les portées imbriquées ou vous " -"pouvez utiliser des objets appelables. Par exemple, supposons que vous vouliez " -"définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur ``a*x" -"+b``. En utilisant les portées imbriquées : ::" +"Deux possibilités : on peut utiliser des portées imbriquées ou bien des objets " +"appelables. Par exemple, supposons que l'on souhaite définir ``linear(a, b)`` qui " +"renvoie une fonction ``f(x)`` qui calcule la valeur ``a*x+b``. En utilisant les " +"portées imbriquées : ::" #: ../Doc/faq/programming.rst:584 msgid "Or using a callable object::" @@ -928,7 +932,7 @@ msgid "" msgstr "" "L'approche par objet appelable a le désavantage d'être légèrement plus lente et de " "produire un code légèrement plus long. Cependant, il faut noter qu'une collection " -"d'objet appelables peuvent partager leur signatures par héritage : ::" +"d'objet appelables peuvent partager leurs signatures par héritage : ::" #: ../Doc/faq/programming.rst:609 msgid "Object can encapsulate state for several methods::" @@ -959,8 +963,8 @@ msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict.copy` " "method::" msgstr "" -"Certains objets peuvent être copiés plus facilement. Les dictionnaires ont une " -"méthode :meth:`~dict.copy` ::" +"Certains objets peuvent être copiés plus facilement que d'autres. Les dictionnaires " +"ont une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:642 msgid "Sequences can be copied by slicing::" @@ -968,7 +972,7 @@ msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:648 msgid "How can I find the methods or attributes of an object?" -msgstr "Comment trouver les méthodes ou les attributs d'un objet ?" +msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:650 msgid "" @@ -992,8 +996,8 @@ msgid "" msgstr "" "C'est impossible en général, parce qu'un objet n'a pas de nom à proprement parler. " "Schématiquement, l'affectation fait correspondre un nom à une valeur ; c'est vrai " -"aussi pour les instructions ``def`` et ``class``, sa que, dans ce cas, la valeur est " -"appelable. Par exemple, dans le code suivant : ::" +"aussi pour les instructions ``def`` et ``class``, à la différence près que, dans ce " +"cas, la valeur est un appelable. Par exemple, dans le code suivant : ::" #: ../Doc/faq/programming.rst:674 msgid "" @@ -1043,8 +1047,8 @@ msgid "" "....and don't be surprised if you'll find that it's known by many names, or no name " "at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs noms " -"différents, ou pas de nom du tout !" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs noms, ou " +"s'il n'a pas de nom du tout !" #: ../Doc/faq/programming.rst:697 msgid "What's up with the comma operator's precedence?" @@ -1060,7 +1064,7 @@ msgid "" "evaluated as if you had entered::" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux expressions, " -"l'expression ci-dessus, est évaluée de la même façon que si vous aviez écrit ::" +"l'expression ci-dessus est évaluée de la même façon que si vous aviez écrit ::" #: ../Doc/faq/programming.rst:709 msgid "not::" @@ -1184,7 +1188,7 @@ msgid "" "you want that, and also want::" msgstr "" "Cela est principalement dû à la volonté que ``i % j`` ait le même signe que j. Si " -"vous voulez cela, vous voulez aussi : ::" +"vous voulez en plus que ::" #: ../Doc/faq/programming.rst:839 msgid "" @@ -1192,9 +1196,9 @@ msgid "" "hold, and then compilers that truncate ``i // j`` need to make ``i % j`` have the " "same sign as ``i``." msgstr "" -"alors la division entière doit renvoyer l'entier inférieur. Le C demande aussi à ce " -"que cette égalité soit vérifiée, et donc les compilateurs qui tronquent ``i // j`` " -"ont besoin que ``i % j`` ait le même signe que ``i``." +"alors la division entière doit renvoyer l'entier inférieur. Le C impose également que " +"cette égalité soit vérifiée, et donc les compilateurs qui tronquent ``i // j`` ont " +"besoin que ``i % j`` ait le même signe que ``i``." #: ../Doc/faq/programming.rst:843 msgid "" @@ -1203,15 +1207,15 @@ msgid "" "to be ``>= 0``. If the clock says 10 now, what did it say 200 hours ago? ``-190 % " "12 == 2`` is useful; ``-190 % 12 == -10`` is a bug waiting to bite." msgstr "" -"Il y a peu de cas d'utilisation réels pour ``i%j`` quand ``j`` est négatif. Quand " +"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est négatif. Quand " "``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il est plus utile " -"que ``i % j`` soit ``>=0``. Si l'horloge affiche *10h* maintenant, qu'affichait-elle " -"il y a 200 heures ? ``-190 % 12 == 2`` est utile; ``-190 % 12 == -10`` est un bogue " +"que ``i % j`` soit ``>=0``. Si l'horloge affiche 10h maintenant, qu'affichait-elle " +"il y a 200 heures ? ``-190 % 12 == 2`` est utile ; ``-190 % 12 == -10`` est un bogue " "en puissance." #: ../Doc/faq/programming.rst:851 msgid "How do I convert a string to a number?" -msgstr "Comment convertir une chaîne de caractère en nombre?" +msgstr "Comment convertir une chaîne de caractères en nombre ?" #: ../Doc/faq/programming.rst:853 msgid "" @@ -1220,7 +1224,7 @@ msgid "" "144.0``." msgstr "" "Pour les entiers, utilisez la fonction native :func:`int` de type constructeur, par " -"exemple ``int('144') == 144``. De façon similaire, :func:`float` convertit en valeur " +"exemple ``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " "flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:857 @@ -1232,9 +1236,9 @@ msgid "" "'0o' indicates octal, and '0x' indicates a hex number." msgstr "" "Par défaut, ces fonctions interprètent les nombres comme des décimaux, de telle " -"façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:`ValueError`. " -"``int(string, base)`` prend la base dans laquelle convertir dans le second argument " -"(optionnel), donc ``int('0x144', 16) == 324``. Si la base donnée est 0, le nombre est " +"façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:`ValueError`. Le " +"second argument (optionnel) de ``int(string, base)`` est la base dans laquelle " +"convertir, donc ``int('0x144', 16) == 324``. Si la base donnée est 0, le nombre est " "interprété selon les règles Python : un préfixe ``0o`` indique de l'octal, et ``0x`` " "indique de l'hexadécimal." @@ -1247,13 +1251,12 @@ msgid "" "``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " "directory." msgstr "" -"N'utilisez pas la fonction native :func:`eval` si tout ce que vous avez " -"besoin est de convertir des chaînes de caractères en nombres. :func:`eval` " -"est beaucoup plus lent et pose des problèmes de sécurité : quelqu'un " -"pourrait vous envoyer une expression Python pouvant avoir des effets de bord " -"indésirables. Par exemple, quelqu'un pourrait passer ``__import__('os')." -"system(\"rm -rf $HOME\")`` ce qui aurait pour effet d'effacer votre " -"répertoire d’accueil." +"N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " +"caractères en nombres. :func:`eval` est beaucoup plus lent et pose des problèmes de " +"sécurité : quelqu'un pourrait vous envoyer une expression Python pouvant avoir des " +"effets de bord indésirables. Par exemple, quelqu'un pourrait passer " +"``__import__('os').system(\"rm -rf $HOME\")`` ce qui effacerait votre répertoire " +"personnel." #: ../Doc/faq/programming.rst:870 msgid "" @@ -1280,13 +1283,13 @@ msgstr "" "Pour transformer, par exemple, le nombre 144 en la chaîne de caractères '144', il " "faut utiliser la fonction native :func:`str`. Pour obtenir la représentation " "hexadécimale ou octale, il faut utiliser les fonctions natives :func:`hex` ou :func:" -"`oct`. Pour des représentations non-conventionnelles, se référer au sections :ref:`f-" +"`oct`. Pour des représentations non-conventionnelles, se référer aux sections :ref:`f-" "strings` et :ref:`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` " "et ``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." #: ../Doc/faq/programming.rst:887 msgid "How do I modify a string in place?" -msgstr "Comment modifier une chaîne de caractère « en place » ?" +msgstr "Comment modifier une chaîne de caractères « sur place » ?" #: ../Doc/faq/programming.rst:889 msgid "" @@ -1297,8 +1300,8 @@ msgid "" msgstr "" "C'est impossible car les chaînes de caractères ne sont pas des objets muables. Dans " "la plupart des cas, il faut tout simplement construire une nouvelle chaîne à partir " -"des morceaux désirés de l'ancienne. Si toutefois vous avez besoin d'un objet capable " -"de modifier de la donnée unicode « en place », essayez d'utiliser un objet :class:`io." +"des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet capable de " +"modifier de la donnée unicode « sur place », essayez d'utiliser un objet :class:`io." "StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:919 @@ -1348,8 +1351,8 @@ msgid "" "arbitrary function being executed." msgstr "" "Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un contrôle " -"absolu sur le contenu de la chaîne de caractères, quelqu'un peut passer une chaîne de " -"caractères pouvant résulter en l'exécution de code arbitraire." +"absolu sur le contenu de la chaîne de caractères, quelqu'un pourrait passer une " +"chaîne de caractères pouvant appeler n'importe quelle fonction." #: ../Doc/faq/programming.rst:977 msgid "" @@ -1376,8 +1379,8 @@ msgid "" "Since this is typically only desired when reading text one line at a time, using ``S." "rstrip()`` this way works well." msgstr "" -"Du fait que ce soit principalement utile en lisant un texte ligne à ligne, utiliser " -"``S.rstrip()`` devrait marcher correctement." +"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S.rstrip()`` " +"de cette manière fonctionne correctement." #: ../Doc/faq/programming.rst:996 msgid "Is there a scanf() or sscanf() equivalent?" @@ -1398,9 +1401,9 @@ msgstr "" "Pour une simple analyse de chaîne, l'approche la plus simple est généralement de " "découper la ligne en mots délimités par des espaces, en utilisant la méthode :meth:" "`~str.split` des objets chaîne de caractères, et ensuite de convertir les chaînes de " -"décimaux en valeurs numériques en utilisant la fonction :func:`int` ou :func:`float`, " +"décimaux en valeurs numériques en utilisant la fonction :func:`int` ou :func:`float`. " "``split()`` possède un paramètre optionnel \"sep\" qui est utile si la ligne utilise " -"autre chose que des espaces comme séparateur." +"autre chose que des espaces comme séparateurs." #: ../Doc/faq/programming.rst:1006 msgid "" @@ -1416,7 +1419,7 @@ msgstr "Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeErro #: ../Doc/faq/programming.rst:1013 msgid "See the :ref:`unicode-howto`." -msgstr "Regardez :ref:`unicode-howto`." +msgstr "Voir :ref:`unicode-howto`." #: ../Doc/faq/programming.rst:1017 msgid "Performance" @@ -1473,8 +1476,7 @@ msgid "" "optimizations." msgstr "" "Il est très fortement recommandé d'avoir une bonne couverture de code (avec des tests " -"unitaires ou une autre méthode) avant d'ajouter des erreurs dans des optimisations " -"sophistiquées." +"unitaires ou autre) avant d'ajouter des erreurs dans des optimisations sophistiquées." #: ../Doc/faq/programming.rst:1037 msgid "" @@ -1482,8 +1484,8 @@ msgid "" "general principles which go a long way towards reaching acceptable performance levels:" msgstr "" "Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. Voici " -"quelques principes généraux qui peuvent aider à pour atteindre des niveaux de " -"performance satisfaisants :" +"quelques principes généraux qui peuvent aider à atteindre des niveaux de performance " +"satisfaisants :" #: ../Doc/faq/programming.rst:1041 msgid "" @@ -1513,10 +1515,10 @@ msgstr "" "Quand la bibliothèque standard fournit une implémentation pour quelque chose, il y a " "de fortes chances (même si ce n'est pas systématique) que cette implémentation soit " "plus rapide que la votre. C'est d'autant plus vrai pour les routines écrites en C, " -"comme les routines natives et certaines extension de types (????). Par exemple, il " -"faut utiliser la méthode native :meth:`list.sort` ou la fonction :func:`sorted` " -"similaire pour trier (et se référer à la section :ref:`sortinghowto` pour des " -"exemples d'utilisation courante)." +"comme les routines natives et certaines extensions de types. Par exemple, il faut " +"utiliser la méthode native :meth:`list.sort` ou la fonction :func:`sorted` similaire " +"pour trier (et se référer à la section :ref:`sortinghowto` pour des exemples " +"d'utilisation courante)." #: ../Doc/faq/programming.rst:1056 msgid "" @@ -1624,8 +1626,7 @@ msgstr "" "Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` renvoie " "``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas de copie, mais " "renvoie le même objet, ce qui fait de :func:`tuple` une fonction économique à appeler " -"quand vous ne savez pas si votre objet est déjà un n-uplet\n" -"." +"quand vous ne savez pas si votre objet est déjà un n-uplet." #: ../Doc/faq/programming.rst:1117 msgid "" @@ -1760,8 +1761,8 @@ msgstr "" msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chaînées de type Lisp, vous pouvez émuler les *cons cells* en " -"utilisant des n-uplets ::" +"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les *cons cells* " +"en utilisant des n-uplets ::" #: ../Doc/faq/programming.rst:1200 msgid "" @@ -1777,7 +1778,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1209 msgid "How do I create a multidimensional list?" -msgstr "Comment puis-je créer une liste à plusieurs dimensions ?" +msgstr "Comment créer une liste à plusieurs dimensions ?" #: ../Doc/faq/programming.rst:1211 msgid "You probably tried to make a multidimensional array like this::" @@ -1791,7 +1792,7 @@ msgstr "Elle semble correcte si on l'affiche :" #: ../Doc/faq/programming.rst:1226 msgid "But when you assign a value, it shows up in multiple places:" -msgstr "Mais quand vous affectez une valeur, elle apparaît à plusieurs endroits ::" +msgstr "Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs endroits ::" #: ../Doc/faq/programming.rst:1238 msgid "" @@ -1800,27 +1801,27 @@ msgid "" "references to the same list of length two. Changes to one row will show in all rows, " "which is almost certainly not what you want." msgstr "" -"La raison est que dupliquer une liste en utilisant ``*`` ne crée pas de copies, cela " -"crée seulement des références aux objets existants. Le ``*3`` crée une liste " -"contenant trois références à la même liste de longueur deux. Un changement dans une " -"colonne apparaîtra donc dans toutes les colonnes. Ce qui n'est très probablement pas " -"ce que vous souhaitez." +"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copies mais " +"seulement des références aux objets existants. Le ``*3`` crée une liste contenant " +"trois références à la même liste de longueur deux. Un changement dans une colonne " +"apparaîtra donc dans toutes les colonnes, ce qui n'est très probablement pas ce que " +"vous souhaitiez." #: ../Doc/faq/programming.rst:1243 msgid "" "The suggested approach is to create a list of the desired length first and then fill " "in each element with a newly created list::" msgstr "" -"L'approche suggérée est de créer une liste de la longueur désiré d'abords, puis de " -"remplir tous les éléments avec une chaîne nouvellement créée ::" +"L'approche suggérée est d'abord de créer une liste de la longueur désiré, puis de " +"remplir tous les éléments avec une nouvelle chaîne ::" #: ../Doc/faq/programming.rst:1250 msgid "" "This generates a list containing 3 different lists of length two. You can also use a " "list comprehension::" msgstr "" -"Cette liste générée contient trois listes différentes de longueur deux. Vous pouvez " -"aussi utilisez la notation de compréhension de listes ::" +"Cela génère une liste contenant elle-même trois listes distinctes, de longueur deux. " +"Vous pouvez aussi utiliser la syntaxe des listes en compréhension ::" #: ../Doc/faq/programming.rst:1256 msgid "" @@ -1944,7 +1945,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1342 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" -"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose équivalant à ::" +"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose équivalent à ::" #: ../Doc/faq/programming.rst:1350 msgid "" @@ -1977,19 +1978,19 @@ msgstr "" #: ../Doc/faq/programming.rst:1367 msgid "How can I sort one list by values from another list?" -msgstr "Comment puis-je trier une liste en fonction des valeurs d'une autre liste?" +msgstr "Comment trier une liste en fonction des valeurs d'une autre liste ?" #: ../Doc/faq/programming.rst:1369 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then pick out the " "element you want. ::" msgstr "" -"Fusionnez les dans un itérateur de tuples, triez la liste obtenue, puis choisissez " -"l'élément que vous voulez. ::" +"Fusionnez-les dans un itérateur de n-uplets, triez la liste obtenue, puis choisissez " +"l'élément que vous voulez ::" #: ../Doc/faq/programming.rst:1383 msgid "An alternative for the last step is::" -msgstr "Une alternative pour la dernière étape est : ::" +msgstr "Vous pouvez remplacer la dernière étape par : ::" #: ../Doc/faq/programming.rst:1388 msgid "" @@ -2000,13 +2001,14 @@ msgid "" "a bit. Second, the expression \"result.append\" requires an extra attribute lookup, " "and third, there's a speed reduction from having to make all those function calls." msgstr "" -"Si vous trouvez cela plus lisible, vous préférez peut-être utiliser ceci à la place " -"de la compréhension de la liste finale. Toutefois, ceci est presque deux fois plus " -"lent pour les longues listes. Pourquoi? Tout d'abord, ``append ()`` doit réaffecter " -"la mémoire, et si il utilise quelques astuces pour éviter de le faire à chaque fois, " -"il doit encore le faire de temps en temps, ce qui coûte assez cher. Deuxièmement, " -"l'expression ``result.append`` exige une recherche d'attribut supplémentaire, et " -"enfin, tous ces appels de fonction impactent la vitesse d'exécution." +"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt qu'une " +"liste en compréhension. Toutefois, ce code est presque deux fois plus lent pour une " +"liste de grande taille. Pourquoi ? Tout d'abord, parce que ``append()`` doit ré-" +"allouer de la mémoire, et, même si elle utilise quelques astuces pour éviter " +"d'effectuer la ré-allocation à chaque appel, elle doit tout de même le faire de temps " +"en temps, ce qui coûte assez cher. Deuxièmement, parce que l'expression ``result." +"append`` fait un accès supplémentaire à un attribut, et enfin, parce que tous ces " +"appels de fonctions réduisent la vitesse d'exécution." #: ../Doc/faq/programming.rst:1398 msgid "Objects" @@ -2036,8 +2038,8 @@ msgid "" "``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` that handle various specific " "mailbox formats." msgstr "" -"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa ou ses " -"classes de base. Il hérite alors des attributs et des méthodes de ses classes de " +"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa (ou ses) " +"classe(s) de base. Elle hérite alors des attributs et des méthodes de ses classes de " "base. Cela permet à un modèle d'objet d'être successivement raffiné par héritage. " "Vous pourriez avoir une classe générique ``Mailbox`` qui fournit des méthodes d'accès " "de base pour une boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " @@ -2053,9 +2055,9 @@ msgid "" "A method is a function on some object ``x`` that you normally call as ``x." "name(arguments...)``. Methods are defined as functions inside the class definition::" msgstr "" -"Une méthode est une fonction sur un objet ``x`` appelez normalement comme ``x." -"name(arguments…)``. Les méthodes sont définies comme des fonctions à l'intérieur de " -"la définition de classe ::" +"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière générale " +"sous la forme ``x.name(arguments…)``. Les méthodes sont définies comme des fonctions " +"à l'intérieur de la définition de classe ::" #: ../Doc/faq/programming.rst:1428 msgid "What is self?" @@ -2068,10 +2070,10 @@ msgid "" "instance ``x`` of the class in which the definition occurs; the called method will " "think it is called as ``meth(x, a, b, c)``." msgstr "" -"Self est simplement un nom conventionnel pour le premier argument d'une méthode. Une " -"méthode définie comme ``meth(self, a, b, c)`` doit être appelée en tant que ``x." -"meth(a, b, c)``, pour une instance ``x`` de la classe dans laquelle elle est définie, " -"la méthode appelée considérera qu'elle est appelée ``meth(x, a, b, c)``." +"Par convention, le premier argument d'une méthode est appelé self. Une méthode " +"``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, b, c)`` où ``x`` " +"est une instance de la classe dans laquelle cette méthode est définie ; tout se passe " +"comme si la méthode était appelée comme ``meth(x, a, b, c)``." #: ../Doc/faq/programming.rst:1435 msgid "See also :ref:`why-self`." @@ -2092,12 +2094,11 @@ msgid "" "object is one of Python's built-in types, e.g. ``isinstance(obj, str)`` or " "``isinstance(obj, (int, float, complex))``." msgstr "" -"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier si un " -"objet est une instance de n'importe lequel d'un certain nombre de classes en " -"fournissant un tuple à la place d'une seule classe, par exemple, ``isinstance(obj, " -"(class1, class2, ...))``, et peut également vérifier si un objet est l'un des types " -"natifs de Python, par exemple, ``isinstance(obj, str)`` ou ``isinstance(obj, (int, " -"float, complex))``." +"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier qu'un " +"objet est une instance de plusieurs classes à la fois en fournissant un n-uplet à la " +"place d'une seule classe, par exemple, ``isinstance(obj, (class1, class2, ...))``. " +"Vous pouvez également vérifier qu'un objet est l'un des types natifs de Python, par " +"exemple ``isinstance(obj, str)`` ou ``isinstance(obj, (int, float, complex))``." #: ../Doc/faq/programming.rst:1447 msgid "" @@ -2107,20 +2108,20 @@ msgid "" "instead of checking the object's class and doing a different thing based on what " "class it is. For example, if you have a function that does something::" msgstr "" -"Notez que la plupart des programmes n'utilisent pas :func:`isInstance` sur les " -"classes définies par l'utilisateur, très souvent. Si vous développez vous-même les " -"classes, un style plus appropriée orientée objet est de définir des méthodes sur les " -"classes qui encapsulent un comportement particulier, au lieu de vérifier la classe de " -"l'objet et de faire quelque chose de différent en fonction de sa classe. Par exemple, " -"si vous avez une fonction qui fait quelque chose : ::" +"Notez que la plupart des programmes n'utilisent que rarement pas :func:`isInstance` " +"sur les classes définies par l'utilisateur. Si vous développez vous-même les classes, " +"une approche plus orientée-objet consiste définir des méthodes sur les classes qui " +"encapsulent un comportement particulier, plutôt que de vérifier la classe de l'objet " +"et de faire un traitement ad-hoc. Par exemple, si vous avez une fonction qui fait " +"quelque chose : ::" #: ../Doc/faq/programming.rst:1461 msgid "" "A better approach is to define a ``search()`` method on all the classes and just call " "it::" msgstr "" -"Une meilleure approche est de définir une méthode ``search()`` sur toutes les classes " -"et qu'il suffit d'appeler ::" +"Une meilleure approche est de définir une méthode ``search()`` dans toutes les " +"classes et qu'il suffit d'appeler de la manière suivante ::" #: ../Doc/faq/programming.rst:1476 msgid "What is delegation?" @@ -2134,11 +2135,11 @@ msgid "" "you're interested in changing and delegates all other methods to the corresponding " "method of ``x``." msgstr "" -"La délégation est une technique orientée objet (aussi appelé un modèle de " -"conception). Disons que vous avez un objet ``x`` et que vous souhaitez modifier le " -"comportement d'une seule de ses méthodes. Vous pouvez créer une nouvelle classe qui " -"fournit une nouvelle implémentation de la méthode qui vous intéresse dans l'évolution " -"et les délégués de toutes les autres méthodes la méthode correspondante de ``x``." +"La délégation est une technique orientée objet (aussi appelé un patron de " +"conception). Prenons un objet ``x`` dont on souhaite modifier le comportement d'une " +"seule de ses méthodes. On peut créer une nouvelle classe qui fournit une nouvelle " +"implémentation de la méthode qui nous intéresse dans l'évolution et les délégués de " +"toutes les autres méthodes la méthode correspondante de ``x``." #: ../Doc/faq/programming.rst:1484 msgid "" @@ -2191,11 +2192,11 @@ msgid "" "How do I call a method defined in a base class from a derived class that overrides it?" msgstr "" "Comment appeler une méthode définie dans une classe de base depuis une classe dérivée " -"qui la surcharge?" +"qui la surcharge ?" #: ../Doc/faq/programming.rst:1524 msgid "Use the built-in :func:`super` function::" -msgstr "Utiliser la fonction native :func:`super` : ::" +msgstr "Utilisez la fonction native :func:`super` : ::" #: ../Doc/faq/programming.rst:1530 msgid "" @@ -2205,16 +2206,16 @@ msgid "" "Here, ``Base.meth`` is an unbound method, so you need to provide the ``self`` " "argument." msgstr "" -"Pour version antérieure à 3.0, vous pouvez utiliser des classes classiques : Pour une " -"définition de classe telle que ``class Derived(Base): ...`` vous pouvez appeler la " -"méthode ``meth()`` défini dans ``Base`` (ou l'une des classes de base de ``Base``) en " -"faisant ``Base.meth(self, arguments...)``. Ici, ``Base.meth`` est une méthode non " -"liée, vous devez donc fournir l'argument ``self``." +"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes classiques : " +"pour une définition de classe comme ``class Derived(Base): ...`` vous pouvez appeler " +"la méthode ``meth()`` définie dans ``Base`` (ou l'une des classes de base de " +"``Base``) en faisant ``Base.meth(self, arguments...)``. Ici, ``Base.meth`` est une " +"méthode non liée, il faut donc fournir l'argument ``self``." #: ../Doc/faq/programming.rst:1538 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" -"Comment puis-je organiser mon code pour permettre de changer la classe de base plus " +"Comment organiser un code pour permettre de changer la classe de base plus " "facilement ?" #: ../Doc/faq/programming.rst:1540 @@ -2228,23 +2229,22 @@ msgstr "" "Vous pouvez définir un alias pour la classe de base, lui attribuer la classe de base " "réelle avant la définition de classe, et utiliser l'alias au long de votre classe. " "Ensuite, tout ce que vous devez changer est la valeur attribuée à l'alias. " -"Incidemment, cette astuce est également utile si vous voulez décider dynamiquement " -"(par exemple en fonction de la disponibilité des ressources) la classe de base à " -"utiliser. Exemple ::" +"Accessoirement, cette astuce est également utile si vous voulez déterminer " +"dynamiquement (par exemple en fonction de la disponibilité des ressources) la classe " +"de base à utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1555 msgid "How do I create static class data and static class methods?" msgstr "" -"Comment puis-je créer des données statiques de classe et des méthodes statiques de " -"classe?" +"Comment créer des données statiques de classe et des méthodes statiques de classe ?" #: ../Doc/faq/programming.rst:1557 msgid "" "Both static data and static methods (in the sense of C++ or Java) are supported in " "Python." msgstr "" -"Tant les données statiques que les méthodes statiques (dans le sens de C + + ou Java) " -"sont pris en charge en Python." +"Les données statiques et les méthodes statiques (au sens C + + ou Java) sont prises " +"en charge en Python." #: ../Doc/faq/programming.rst:1560 msgid "" @@ -2261,7 +2261,7 @@ msgid "" "holds, unless overridden by ``c`` itself or by some class on the base-class search " "path from ``c.__class__`` back to ``C``." msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` telle que ``isInstance " +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que ``isInstance " "(c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par une classe sur le " "chemin de recherche de classe de base de ``c.__class__`` jusqu'à ``C``." @@ -2271,14 +2271,14 @@ msgid "" "and unrelated instance named \"count\" in ``self``'s own dict. Rebinding of a class-" "static data name must always specify the class whether inside a method or not::" msgstr "" -"Attention: dans une méthode de C, une affectation comme ``self.count = 42`` crée une " -"nouvelle instance et sans rapport avec le nom ``count`` dans dans le dictionnaire de " +"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` crée une " +"nouvelle instance sans rapport avec le nom ``count`` dans dans le dictionnaire de " "données de ``self``. La redéfinition d'une donnée statique de classe doit toujours " "spécifier la classe que l'on soit à l'intérieur d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1583 msgid "Static methods are possible::" -msgstr "Les méthodes statiques sont possibles : ::" +msgstr "Il est possible d'utiliser des méthodes statiques : ::" #: ../Doc/faq/programming.rst:1591 msgid "" @@ -2298,15 +2298,15 @@ msgstr "" #: ../Doc/faq/programming.rst:1602 msgid "How can I overload constructors (or methods) in Python?" -msgstr "Comment puis-je surcharger les constructeurs (ou méthodes) en Python?" +msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" #: ../Doc/faq/programming.rst:1604 msgid "" "This answer actually applies to all methods, but the question usually comes up first " "in the context of constructors." msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question vient " -"généralement en premier dans le contexte des constructeurs." +"Cette réponse s'applique en fait à toutes les méthodes, mais la question se pose " +"généralement dans le contexte des constructeurs." #: ../Doc/faq/programming.rst:1607 msgid "In C++ you'd write" @@ -2348,12 +2348,12 @@ msgid "" "textually replaced with ``_classname__spam``, where ``classname`` is the current " "class name with any leading underscores stripped." msgstr "" -"Les noms de variables commençant avec deux tirets bas sont «déformés», c'est un moyen " -"simple mais efficace de définir variables privées à une classe. Tout identifiant de " -"la forme ``__spam`` (commençant par au moins deux tirets bas et se terminant par au " -"plus un tiret bas) est textuellement remplacé par ``_classname__spam``, où " -"``classname`` est le nom de la classe en cours dont les éventuels tirets bas ont été " -"retirés." +"Les noms de variables commençant avec deux tirets bas sont « déformés », c'est un " +"moyen simple mais efficace de définir variables privées à une classe. Tout " +"identifiant de la forme ``__spam`` (commençant par au moins deux tirets bas et se " +"terminant par au plus un tiret bas) est textuellement remplacé par " +"``_classname__spam``, où ``classname`` est le nom de la classe en cours sans les " +"éventuels tirets bas du début." #: ../Doc/faq/programming.rst:1645 msgid "" @@ -2362,7 +2362,7 @@ msgid "" "``__dict__``. Many Python programmers never bother to use private variable names at " "all." msgstr "" -"Cela ne garantit pas la privauté de l'accès : un utilisateur extérieur peut encore " +"Cela ne garantit aucune protection : un utilisateur extérieur peut encore " "délibérément accéder à l'attribut ``_classname__spam``, et les valeurs privées sont " "visibles dans l'objet ``__dict__``. De nombreux programmeurs Python ne prennent " "jamais la peine d'utiliser des noms de variable privée." @@ -2370,11 +2370,11 @@ msgstr "" #: ../Doc/faq/programming.rst:1652 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" -"Ma classe définit ``__del__`` mais elle n'est pas appelé lorsque je supprime l'objet." +"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je supprime l'objet." #: ../Doc/faq/programming.rst:1654 msgid "There are several possible reasons for this." -msgstr "Il y a plusieurs explications possibles à cela." +msgstr "Il y a plusieurs explications possibles." #: ../Doc/faq/programming.rst:1656 msgid "" @@ -2397,7 +2397,7 @@ msgid "" "arbitrary. You can run :func:`gc.collect` to force a collection, but there *are* " "pathological cases where objects will never be collected." msgstr "" -"Si votre structure de données contient des références circulaires (e.g. un arbre dans " +"Si la structure de données contient des références circulaires (e.g. un arbre dans " "lequel chaque fils a une référence sur son père, et chaque père maintient une liste " "de référence à ses fils), le compteur de référence n'arrivera jamais à zéro. Python " "exécute périodiquement un algorithme pour détecter ce genre de cycles, mais il peut " @@ -2405,9 +2405,9 @@ msgstr "" "dernière fois et l'appel du ramasse-miettes, donc la méthode :meth:`__del__` peut " "être appelée à un moment aléatoire et pas opportun. C'est gênant pour essayer " "reproduire un problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des " -"objets est arbitraire. Il est possible de forcer l'appel, mais du ramasse-miettes " -"avec la fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne " -"seront jamais nettoyés." +"objets est arbitraire. Il est possible de forcer l'appel du ramasse-miettes avec la " +"fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne seront " +"jamais nettoyés." #: ../Doc/faq/programming.rst:1671 msgid "" @@ -2510,8 +2510,8 @@ msgstr "" "modifié depuis la création du fichier compilé), un fichier ``.pyc`` contenant le code " "précompilé est créé dans un sous-dossier ``__pycache__`` du dossier contentant le " "fichier ``.py``. Le nom du fichier ``.pyc`` est identique au fichier ``.py`` et se " -"termine par ``.pyc``, avec un (??????????) qui dépend du binaire ``python`` qui l'a " -"créé. (Voir :pep:`3147` pour de plus amples précisions.)" +"termine par ``.pyc``, avec une partie centrale qui dépend du binaire ``python`` qui " +"l'a créé. (Voir :pep:`3147` pour de plus amples précisions.)" #: ../Doc/faq/programming.rst:1743 msgid "" @@ -2524,7 +2524,7 @@ msgstr "" "problème de droits sur le dossier qui contient le fichier source, ce qui veut dire " "qu'il est impossible de créer le le sous-dossier ``__pycache__``. Ceci peut arriver, " "par exemple, si vous développez en tant qu'un certain utilisateur, mais que le code " -"est exécuté en tant qu'un autre utilisateur, par exemple si on teste un serveur Web." +"est exécuté en tant qu'un autre utilisateur, par exemple pour tester un serveur Web." #: ../Doc/faq/programming.rst:1748 msgid "" @@ -2547,11 +2547,11 @@ msgid "" "but no ``.pyc`` file will be created for ``foo`` since ``foo.py`` isn't being " "imported." msgstr "" -"Exécuter du Python dans un script de (?????) n'est pas considéré comme un import et " -"le fichier ``.pyc`` n'est pas créé. Par exemple, si un module de plus haut niveau " -"``foo.py`` importe un autre module ``xyz.py``, alors à l'exécution de ``foo`` (en " -"tapant ``python foo.py`` dans la console), un fichier ``.pyc`` est créé pour ``xyz`` " -"mais pas pour ``foo`` car ``foo.py`` n'est pas importé." +"Exécuter du Python dans un script de plus haut niveau n'est pas considéré comme un " +"import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un module de plus haut " +"niveau ``foo.py`` importe un autre module ``xyz.py``, alors à l'exécution de ``foo`` " +"(en tapant ``python foo.py`` dans la console), un fichier ``.pyc`` est créé pour " +"``xyz`` mais pas pour ``foo`` car ``foo.py`` n'est pas importé." #: ../Doc/faq/programming.rst:1760 msgid "" @@ -2605,9 +2605,9 @@ msgstr "" "Un module peut déterminer son propre nom en examinant la variable globale prédéfinie " "``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le programme est exécuté " "comme un script. Beaucoup de modules qui doivent normalement être importés pour " -"pouvoir être utilisés, fournissent aussi une interface en ligne de commande ou un " -"test automatique. Ils n'exécutent cette partir du code qu'après avoir vérifié la " -"valeur de ``__name__``::" +"pouvoir être utilisés fournissent aussi une interface en ligne de commande ou un test " +"automatique. Ils n'exécutent cette portion du code qu'après avoir vérifié la valeur " +"de ``__name__``::" #: ../Doc/faq/programming.rst:1800 msgid "How can I have modules that mutually import each other?" @@ -2681,7 +2681,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1831 msgid "There are (at least) three possible workarounds for this problem." -msgstr "Il y a (au moins) trois façon de contourner ce problème." +msgstr "Il y a (au moins) trois façons de contourner ce problème." #: ../Doc/faq/programming.rst:1833 msgid "" @@ -2727,8 +2727,8 @@ msgid "" "van Rossum doesn't like this approach much because the imports appear in a strange " "place, but it does work." msgstr "" -"van Rossum n'aime pas cette approche car les imports se trouvent à un niveau bizarre, " -"mais cela fonctionne." +"van Rossum désapprouve cette approche car les imports se trouvent à un niveau " +"bizarre, mais cela fonctionne." #: ../Doc/faq/programming.rst:1848 msgid "" @@ -2756,7 +2756,9 @@ msgstr "" msgid "" "When I edit an imported module and reimport it, the changes don't show up. Why does " "this happen?" -msgstr " " +msgstr "" +"Quand j'édite un module et que je le réimporte, je ne vois pas les changements. " +"Pourquoi ?" #: ../Doc/faq/programming.rst:1866 msgid "" @@ -2786,7 +2788,7 @@ msgid "" "new class definition. This can result in the following paradoxical behaviour::" msgstr "" "continueraient de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, le instances déjà existante de celle-ci ne " +"module contient une définition de classe, le instances déjà existantes de celle-ci ne " "seront *pas* mises à jour avec la nouvelle définition de la classe. Ceci peut " "conduire au comportement paradoxal suivant :" @@ -2796,7 +2798,7 @@ msgid "" "class objects::" msgstr "" "La nature du problème apparaît clairement en affichant « l'identité » des objets de " -"la classe ::" +"la classe : ::" #~ msgid "Dictionaries" #~ msgstr "Dictionnaires" From afd21121811c330f605b0b94df6ea26bc430f9c2 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 19:27:01 +0200 Subject: [PATCH 10/26] Fini! --- faq/programming.po | 51 +++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 373da8028..8355743f8 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-04-29 14:02+0200\n" +"PO-Revision-Date: 2019-05-23 19:19+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -1037,10 +1037,10 @@ msgid "" "way to find out what it's called is to ask all your neighbours (namespaces) if it's " "their cat (object)..." msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " -"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " -"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." +"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le chat " +"(objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu -- alors le " +"meilleur moyen de savoir comment il s'appelle est de demander à tous vos voisins " +"(espaces de nommage) si c'est leur chat (objet)…." #: ../Doc/faq/programming.rst:692 msgid "" @@ -1124,31 +1124,44 @@ msgstr "Les enfants, ne faites pas ça chez vous !" #: ../Doc/faq/programming.rst:773 msgid "What does the slash(/) in the parameter list of a function mean?" -msgstr "" +msgstr "Que signifie la barre oblique (/) dans la liste des paramètres d'une fonction ?" #: ../Doc/faq/programming.rst:775 msgid "" -"A slash in the argument list of a function denotes that the parameters prior " -"to it are positional-only. Positional-only parameters are the ones without " -"an externally-usable name. Upon calling a function that accepts positional-" -"only parameters, arguments are mapped to parameters based solely on their " -"position. For example, :func:`pow` is a function that accepts positional-" -"only parameters. Its documentation looks like this::" -msgstr "" +"A slash in the argument list of a function denotes that the parameters prior to it " +"are positional-only. Positional-only parameters are the ones without an externally-" +"usable name. Upon calling a function that accepts positional-only parameters, " +"arguments are mapped to parameters based solely on their position. For example, :func:" +"`pow` is a function that accepts positional-only parameters. Its documentation looks " +"like this::" +msgstr "" +"Une barre oblique dans la liste des arguments d'une fonction indique que les " +"paramètres la précédant sont uniquement positionnels. Les paramètres uniquement " +"positionnels ne sont pas utilisables depuis l'extérieur. Lors de l'appel d'une " +"fonction qui n'accepte que des paramètres uniquement positionnels, les arguments sont " +"affectés au paramètres en fonction de leur position. Par exemple, :func:`pow` est une " +"fonction qui n'accepte que des paramètres uniquement positionnels. Sa documentation " +"est la suivante ::" #: ../Doc/faq/programming.rst:791 msgid "" -"The slash at the end of the parameter list means that all three parameters " -"are positional-only. Thus, calling :func:`pow` with keyword aguments would " -"lead to an error::" +"The slash at the end of the parameter list means that all three parameters are " +"positional-only. Thus, calling :func:`pow` with keyword aguments would lead to an " +"error::" msgstr "" +"La barre oblique à la fin de la liste des paramètres signifie que les trois " +"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec des " +"arguments nommés provoquerait une erreur :: " #: ../Doc/faq/programming.rst:800 msgid "" -"Note that as of this writing this is only documentational and no valid " -"syntax in Python, although there is :pep:`570`, which proposes a syntax for " -"position-only parameters in Python." +"Note that as of this writing this is only documentational and no valid syntax in " +"Python, although there is :pep:`570`, which proposes a syntax for position-only " +"parameters in Python." msgstr "" +"Notez que cet exemple n'est fournit qu'à titre informatif et n'est pas une syntaxe " +"Python valide, bien que la pep:`570` propose une syntaxe pour les paramètres " +"uniquement positionnels en Python." #: ../Doc/faq/programming.rst:806 msgid "Numbers and strings" From 72cf8b7cabacc88266ee6bd71c10124144755728 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 19:30:19 +0200 Subject: [PATCH 11/26] powrap --- faq/programming.po | 2954 +++++++++++++++++++++++--------------------- 1 file changed, 1563 insertions(+), 1391 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 8355743f8..f4bdce0b8 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -28,10 +28,12 @@ msgid "General Questions" msgstr "Questions générales" #: ../Doc/faq/programming.rst:15 -msgid "Is there a source code level debugger with breakpoints, single-stepping, etc.?" +msgid "" +"Is there a source code level debugger with breakpoints, single-stepping, " +"etc.?" msgstr "" -"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-à-pas, " -"etc. ?" +"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"à-pas, etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 msgid "Yes." @@ -39,84 +41,85 @@ msgstr "Oui." #: ../Doc/faq/programming.rst:19 msgid "" -"The pdb module is a simple but adequate console-mode debugger for Python. It is part " -"of the standard Python library, and is :mod:`documented in the Library Reference " -"Manual `. You can also write your own debugger by using the code for pdb as an " -"example." +"The pdb module is a simple but adequate console-mode debugger for Python. It " +"is part of the standard Python library, and is :mod:`documented in the " +"Library Reference Manual `. You can also write your own debugger by " +"using the code for pdb as an example." msgstr "" -"Le module pdb est un débogueur console simple, mais parfaitement adapté à Python. Il " -"fait partie de la bibliothèque standard de Python, sa documentation se trouve dans " -"le :mod:`manuel de référence `. Vous pouvez vous inspirer du code de pdb pour " -"écrire votre propre débogueur." +"Le module pdb est un débogueur console simple, mais parfaitement adapté à " +"Python. Il fait partie de la bibliothèque standard de Python, sa " +"documentation se trouve dans le :mod:`manuel de référence `. Vous " +"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur." #: ../Doc/faq/programming.rst:24 msgid "" -"The IDLE interactive development environment, which is part of the standard Python " -"distribution (normally available as Tools/scripts/idle), includes a graphical " -"debugger." +"The IDLE interactive development environment, which is part of the standard " +"Python distribution (normally available as Tools/scripts/idle), includes a " +"graphical debugger." msgstr "" -"L'environnement de développement interactif IDLE, qui est fourni avec la distribution " -"standard de Python (normalement disponible dans Tools/scripts/idle) contient un " -"débogueur graphique." +"L'environnement de développement interactif IDLE, qui est fourni avec la " +"distribution standard de Python (normalement disponible dans Tools/scripts/" +"idle) contient un débogueur graphique." #: ../Doc/faq/programming.rst:28 msgid "" -"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The Pythonwin " -"debugger colors breakpoints and has quite a few cool features such as debugging non-" -"Pythonwin programs. Pythonwin is available as part of the `Python for Windows " -"Extensions `__ project and as a part of " -"the ActivePython distribution (see https://www.activestate.com/activepython\\ )." -msgstr "" -"PythonWin est un environnement de développement intégré (EDI) Python qui embarque un " -"débogueur graphique basé sur pdb. Le débogueur PythonWin colore les points d'arrêts " -"et possède quelques fonctionnalités sympathiques, comme la possibilité de déboguer " -"des programmes développés sans PythonWin. Pythonwin est disponible dans le projet " -"`Extensions Python pour Windows `__ et " -"fait partie de la distribution ActivePython (voir https://www.activestate.com/" -"activepython\\)." +"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " +"Pythonwin debugger colors breakpoints and has quite a few cool features such " +"as debugging non-Pythonwin programs. Pythonwin is available as part of the " +"`Python for Windows Extensions `__ project and as a part of the ActivePython distribution (see https://www." +"activestate.com/activepython\\ )." +msgstr "" +"PythonWin est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore " +"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme " +"la possibilité de déboguer des programmes développés sans PythonWin. " +"Pythonwin est disponible dans le projet `Extensions Python pour Windows " +"`__ et fait partie de la " +"distribution ActivePython (voir https://www.activestate.com/activepython\\)." #: ../Doc/faq/programming.rst:35 msgid "" -"`Boa Constructor `_ is an IDE and GUI " -"builder that uses wxWidgets. It offers visual frame creation and manipulation, an " -"object inspector, many views on the source like object browsers, inheritance " -"hierarchies, doc string generated html documentation, an advanced debugger, " -"integrated help, and Zope support." +"`Boa Constructor `_ is an IDE and " +"GUI builder that uses wxWidgets. It offers visual frame creation and " +"manipulation, an object inspector, many views on the source like object " +"browsers, inheritance hierarchies, doc string generated html documentation, " +"an advanced debugger, integrated help, and Zope support." msgstr "" -"`Boa Constructor `_ est un EDI et un " -"constructeur d'interface homme-machine basé sur wxWidgets. Il propose la création et " -"la manipulation de fenêtres, un inspecteur d'objets, de nombreuses visualisations des " -"sources comme un navigateur d'objets, les hiérarchies d'héritage, la documentation " -"html générée par les docstrings, un débogueur avancé, une aide intégrée et le support " -"de Zope." +"`Boa Constructor `_ est un EDI et " +"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " +"création et la manipulation de fenêtres, un inspecteur d'objets, de " +"nombreuses visualisations des sources comme un navigateur d'objets, les " +"hiérarchies d'héritage, la documentation html générée par les docstrings, un " +"débogueur avancé, une aide intégrée et le support de Zope." #: ../Doc/faq/programming.rst:41 msgid "" -"`Eric `_ is an IDE built on PyQt and the " -"Scintilla editing component." +"`Eric `_ is an IDE built on PyQt and " +"the Scintilla editing component." msgstr "" -"`Eric `_ est un EDI basé sur PyQt et l'outil " -"d'édition Scintilla." +"`Eric `_ est un EDI basé sur PyQt et " +"l'outil d'édition Scintilla." #: ../Doc/faq/programming.rst:44 msgid "" -"Pydb is a version of the standard Python debugger pdb, modified for use with DDD " -"(Data Display Debugger), a popular graphical debugger front end. Pydb can be found " -"at http://bashdb.sourceforge.net/pydb/ and DDD can be found at https://www.gnu.org/" -"software/ddd." +"Pydb is a version of the standard Python debugger pdb, modified for use with " +"DDD (Data Display Debugger), a popular graphical debugger front end. Pydb " +"can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " +"https://www.gnu.org/software/ddd." msgstr "" -"Pydb est une version du débogueur standard Python pdb, modifié pour être utilisé avec " -"DDD (Data Display Debugger), un célèbre débogueur graphique. Pydb est disponible sur " -"http://bashdb.sourceforge.net/pydb/ et DDD est disponible sur https://www.gnu.org/" -"software/ddd." +"Pydb est une version du débogueur standard Python pdb, modifié pour être " +"utilisé avec DDD (Data Display Debugger), un célèbre débogueur graphique. " +"Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ et DDD est " +"disponible sur https://www.gnu.org/software/ddd." #: ../Doc/faq/programming.rst:49 msgid "" -"There are a number of commercial Python IDEs that include graphical debuggers. They " -"include:" +"There are a number of commercial Python IDEs that include graphical " +"debuggers. They include:" msgstr "" -"Il y a de nombreux EDI Python propriétaires qui embarquent un débogueur graphique. " -"Notamment :" +"Il y a de nombreux EDI Python propriétaires qui embarquent un débogueur " +"graphique. Notamment :" #: ../Doc/faq/programming.rst:52 msgid "Wing IDE (https://wingware.com/)" @@ -133,47 +136,48 @@ msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:58 msgid "Is there a tool to help find bugs or perform static analysis?" msgstr "" -"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse statique " -"de code ?" +"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " +"statique de code ?" #: ../Doc/faq/programming.rst:62 msgid "" -"PyChecker is a static analysis tool that finds bugs in Python source code and warns " -"about code complexity and style. You can get PyChecker from http://pychecker." -"sourceforge.net/." +"PyChecker is a static analysis tool that finds bugs in Python source code " +"and warns about code complexity and style. You can get PyChecker from " +"http://pychecker.sourceforge.net/." msgstr "" -"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code source " -"Python et émet des avertissement sur la complexité et le style du code. PyChecker est " -"disponible sur http://pychecker.sourceforge.net/." +"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " +"source Python et émet des avertissement sur la complexité et le style du " +"code. PyChecker est disponible sur http://pychecker.sourceforge.net/." #: ../Doc/faq/programming.rst:66 msgid "" -"`Pylint `_ is another tool that checks if a module satisfies " -"a coding standard, and also makes it possible to write plug-ins to add a custom " -"feature. In addition to the bug checking that PyChecker performs, Pylint offers some " -"additional features such as checking line length, whether variable names are well-" -"formed according to your coding standard, whether declared interfaces are fully " -"implemented, and more. https://docs.pylint.org/ provides a full list of Pylint's " -"features." -msgstr "" -"Pylint `_ est un autre outil qui vérifie si un module " -"satisfait aux normes de développement, et qui permet en plus d'écrire des greffons " -"pour ajouter des fonctionnalités personnalisées. En plus de la vérification des " -"bogues effectuée par PyChecker, Pylint effectue quelques vérifications " -"supplémentaires comme la longueur des lignes, les conventions de nommage des " -"variables, que les interfaces déclarées sont implémentées en totalité, et plus " -"encore. https://docs.pylint.org/ fournit la liste complète des fonctionnalités de " -"Pylint." +"`Pylint `_ is another tool that checks if a module " +"satisfies a coding standard, and also makes it possible to write plug-ins to " +"add a custom feature. In addition to the bug checking that PyChecker " +"performs, Pylint offers some additional features such as checking line " +"length, whether variable names are well-formed according to your coding " +"standard, whether declared interfaces are fully implemented, and more. " +"https://docs.pylint.org/ provides a full list of Pylint's features." +msgstr "" +"Pylint `_ est un autre outil qui vérifie si un " +"module satisfait aux normes de développement, et qui permet en plus d'écrire " +"des greffons pour ajouter des fonctionnalités personnalisées. En plus de la " +"vérification des bogues effectuée par PyChecker, Pylint effectue quelques " +"vérifications supplémentaires comme la longueur des lignes, les conventions " +"de nommage des variables, que les interfaces déclarées sont implémentées en " +"totalité, et plus encore. https://docs.pylint.org/ fournit la liste complète " +"des fonctionnalités de Pylint." #: ../Doc/faq/programming.rst:74 msgid "" -"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can check type hints " -"in Python source code." +"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " +"check type hints in Python source code." msgstr "" -"Les vérificateurs de type statique comme `Mypy `_, `Pyre " -"`_, et `Pytype `_ peuvent " -"vérifier les indications de type dans du code source Python." +"Les vérificateurs de type statique comme `Mypy `_, " +"`Pyre `_, et `Pytype `_ peuvent vérifier les indications de type dans du code source " +"Python." #: ../Doc/faq/programming.rst:81 msgid "How can I create a stand-alone binary from a Python script?" @@ -181,59 +185,62 @@ msgstr "Comment créer un binaire autonome à partir d'un script Python ?" #: ../Doc/faq/programming.rst:83 msgid "" -"You don't need the ability to compile Python to C code if all you want is a stand-" -"alone program that users can download and run without having to install the Python " -"distribution first. There are a number of tools that determine the set of modules " -"required by a program and bind these modules together with a Python binary to produce " -"a single executable." +"You don't need the ability to compile Python to C code if all you want is a " +"stand-alone program that users can download and run without having to " +"install the Python distribution first. There are a number of tools that " +"determine the set of modules required by a program and bind these modules " +"together with a Python binary to produce a single executable." msgstr "" -"Pour créer un programme autonome, c'est-à-dire un programme que n'importe qui peut " -"télécharger et exécuter sans avoir à installer une distribution Python au préalable, " -"il n'est pas nécessaire de compiler du code Python en code C. Il existe en effet " -"plusieurs outils qui déterminent les modules requis par un programme et lient ces " -"modules avec un binaire Python pour produire un seul exécutable." +"Pour créer un programme autonome, c'est-à-dire un programme que n'importe " +"qui peut télécharger et exécuter sans avoir à installer une distribution " +"Python au préalable, il n'est pas nécessaire de compiler du code Python en " +"code C. Il existe en effet plusieurs outils qui déterminent les modules " +"requis par un programme et lient ces modules avec un binaire Python pour " +"produire un seul exécutable." #: ../Doc/faq/programming.rst:89 msgid "" -"One is to use the freeze tool, which is included in the Python source tree as ``Tools/" -"freeze``. It converts Python byte code to C arrays; a C compiler you can embed all " -"your modules into a new program, which is then linked with the standard Python " -"modules." +"One is to use the freeze tool, which is included in the Python source tree " +"as ``Tools/freeze``. It converts Python byte code to C arrays; a C compiler " +"you can embed all your modules into a new program, which is then linked with " +"the standard Python modules." msgstr "" -"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de l'arborescence " -"des sources de Python. Il convertit le *bytecode* Python en tableaux C ; un " -"compilateur C permet d'intégrer tous vos modules dans un nouveau programme, qui est " -"ensuite lié aux modules standards Python." +"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de " +"l'arborescence des sources de Python. Il convertit le *bytecode* Python en " +"tableaux C ; un compilateur C permet d'intégrer tous vos modules dans un " +"nouveau programme, qui est ensuite lié aux modules standards Python." #: ../Doc/faq/programming.rst:94 msgid "" -"It works by scanning your source recursively for import statements (in both forms) " -"and looking for the modules in the standard Python path as well as in the source " -"directory (for built-in modules). It then turns the bytecode for modules written in " -"Python into C code (array initializers that can be turned into code objects using the " -"marshal module) and creates a custom-made config file that only contains those built-" -"in modules which are actually used in the program. It then compiles the generated C " -"code and links it with the rest of the Python interpreter to form a self-contained " -"binary which acts exactly like your script." -msgstr "" -"Il fonctionne en cherchant de manière récursive les instructions d'import (sous les " -"deux formes) dans le code source et en recherchant ces modules dans le chemin Python " -"standard ainsi que dans le répertoire source (pour les modules natifs). Il " -"transforme ensuite le bytecode des modules écrits en Python en code C (des " -"initialiseurs de tableaux qui peuvent être transformés en objets de code à l'aide du " -"module marshal) et crée un fichier de configuration personnalisé qui contient " -"uniquement les modules natifs qui sont réellement utilisés dans le programme. Il " -"compile ensuite le code C généré et le lie au reste de l'interpréteur Python pour " -"former un binaire autonome qui fait exactement la même chose que le script." +"It works by scanning your source recursively for import statements (in both " +"forms) and looking for the modules in the standard Python path as well as in " +"the source directory (for built-in modules). It then turns the bytecode for " +"modules written in Python into C code (array initializers that can be turned " +"into code objects using the marshal module) and creates a custom-made config " +"file that only contains those built-in modules which are actually used in " +"the program. It then compiles the generated C code and links it with the " +"rest of the Python interpreter to form a self-contained binary which acts " +"exactly like your script." +msgstr "" +"Il fonctionne en cherchant de manière récursive les instructions d'import " +"(sous les deux formes) dans le code source et en recherchant ces modules " +"dans le chemin Python standard ainsi que dans le répertoire source (pour les " +"modules natifs). Il transforme ensuite le bytecode des modules écrits en " +"Python en code C (des initialiseurs de tableaux qui peuvent être transformés " +"en objets de code à l'aide du module marshal) et crée un fichier de " +"configuration personnalisé qui contient uniquement les modules natifs qui " +"sont réellement utilisés dans le programme. Il compile ensuite le code C " +"généré et le lie au reste de l'interpréteur Python pour former un binaire " +"autonome qui fait exactement la même chose que le script." #: ../Doc/faq/programming.rst:103 msgid "" -"Obviously, freeze requires a C compiler. There are several other utilities which " -"don't. One is Thomas Heller's py2exe (Windows only) at" +"Obviously, freeze requires a C compiler. There are several other utilities " +"which don't. One is Thomas Heller's py2exe (Windows only) at" msgstr "" -"Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres outils qui " -"peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller (pour Windows " -"uniquement) disponible sur" +"Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres " +"outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " +"(pour Windows uniquement) disponible sur" #: ../Doc/faq/programming.rst:106 msgid "http://www.py2exe.org/" @@ -241,11 +248,11 @@ msgstr "http://www.py2exe.org/" #: ../Doc/faq/programming.rst:108 msgid "" -"Another tool is Anthony Tuininga's `cx_Freeze `_." +"Another tool is Anthony Tuininga's `cx_Freeze `_." msgstr "" -"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." +"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." #: ../Doc/faq/programming.rst:112 msgid "Are there coding standards or a style guide for Python programs?" @@ -255,11 +262,11 @@ msgstr "" #: ../Doc/faq/programming.rst:114 msgid "" -"Yes. The coding style required for standard library modules is documented as :pep:" -"`8`." +"Yes. The coding style required for standard library modules is documented " +"as :pep:`8`." msgstr "" -"Oui. Le style de développement que les modules de la bibliothèque standard doivent " -"obligatoirement respecter est documentée dans la :pep:`8`." +"Oui. Le style de développement que les modules de la bibliothèque standard " +"doivent obligatoirement respecter est documentée dans la :pep:`8`." #: ../Doc/faq/programming.rst:119 msgid "Core Language" @@ -267,16 +274,18 @@ msgstr "Fondamentaux" #: ../Doc/faq/programming.rst:122 msgid "Why am I getting an UnboundLocalError when the variable has a value?" -msgstr "Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" +msgstr "" +"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" #: ../Doc/faq/programming.rst:124 msgid "" -"It can be a surprise to get the UnboundLocalError in previously working code when it " -"is modified by adding an assignment statement somewhere in the body of a function." +"It can be a surprise to get the UnboundLocalError in previously working code " +"when it is modified by adding an assignment statement somewhere in the body " +"of a function." msgstr "" -"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code jusqu'à " -"présent correct, quand celui-ci est modifié en ajoutant une instruction d'affectation " -"quelque part dans le corps d'une fonction." +"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code " +"jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " +"instruction d'affectation quelque part dans le corps d'une fonction." #: ../Doc/faq/programming.rst:128 msgid "This code:" @@ -292,147 +301,156 @@ msgstr "lève une UnboundLocalError :" #: ../Doc/faq/programming.rst:150 msgid "" -"This is because when you make an assignment to a variable in a scope, that variable " -"becomes local to that scope and shadows any similarly named variable in the outer " -"scope. Since the last statement in foo assigns a new value to ``x``, the compiler " -"recognizes it as a local variable. Consequently when the earlier ``print(x)`` " -"attempts to print the uninitialized local variable and an error results." +"This is because when you make an assignment to a variable in a scope, that " +"variable becomes local to that scope and shadows any similarly named " +"variable in the outer scope. Since the last statement in foo assigns a new " +"value to ``x``, the compiler recognizes it as a local variable. " +"Consequently when the earlier ``print(x)`` attempts to print the " +"uninitialized local variable and an error results." msgstr "" -"Cela est dû au fait que, quand une variable est affectée dans un contexte, cette " -"variable devient locale à ce contexte et remplace toute variable du même nom du " -"contexte appelant. Vu que la dernière instruction dans foo affecte une nouvelle " -"valeur à ``x``, le compilateur la traite comme une nouvelle variable. Par conséquent, " -"quand le ``print(x)`` essaye d'afficher la variable non initialisée, une erreur se " -"produit." +"Cela est dû au fait que, quand une variable est affectée dans un contexte, " +"cette variable devient locale à ce contexte et remplace toute variable du " +"même nom du contexte appelant. Vu que la dernière instruction dans foo " +"affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " +"nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " +"la variable non initialisée, une erreur se produit." #: ../Doc/faq/programming.rst:157 msgid "" -"In the example above you can access the outer scope variable by declaring it global:" +"In the example above you can access the outer scope variable by declaring it " +"global:" msgstr "" -"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible en la " -"déclarant globale :" +"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " +"en la déclarant globale :" #: ../Doc/faq/programming.rst:168 msgid "" -"This explicit declaration is required in order to remind you that (unlike the " -"superficially analogous situation with class and instance variables) you are actually " -"modifying the value of the variable in the outer scope:" +"This explicit declaration is required in order to remind you that (unlike " +"the superficially analogous situation with class and instance variables) you " +"are actually modifying the value of the variable in the outer scope:" msgstr "" -"Cette déclaration explicite est obligatoire pour se rappeler que (contrairement au " -"cas à peu près similaire avec des variables de classe et d'instance), c'est la valeur " -"de la variable du contexte appelant qui est modifiée :" +"Cette déclaration explicite est obligatoire pour se rappeler que " +"(contrairement au cas à peu près similaire avec des variables de classe et " +"d'instance), c'est la valeur de la variable du contexte appelant qui est " +"modifiée :" #: ../Doc/faq/programming.rst:175 msgid "" -"You can do a similar thing in a nested scope using the :keyword:`nonlocal` keyword:" +"You can do a similar thing in a nested scope using the :keyword:`nonlocal` " +"keyword:" msgstr "" -"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :keyword:" -"`nonlocal` :" +"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" +"keyword:`nonlocal` :" #: ../Doc/faq/programming.rst:192 msgid "What are the rules for local and global variables in Python?" -msgstr "Quelles sont les règles pour les variables locales et globales en Python ?" +msgstr "" +"Quelles sont les règles pour les variables locales et globales en Python ?" #: ../Doc/faq/programming.rst:194 msgid "" -"In Python, variables that are only referenced inside a function are implicitly " -"global. If a variable is assigned a value anywhere within the function's body, it's " -"assumed to be a local unless explicitly declared as global." +"In Python, variables that are only referenced inside a function are " +"implicitly global. If a variable is assigned a value anywhere within the " +"function's body, it's assumed to be a local unless explicitly declared as " +"global." msgstr "" "En Python, les variables qui ne sont référencées que dans une fonction sont " -"considérées comme globales. Si une affectation de variable est effectuée dans le " -"corps d'une fonction, cette variable sera locale, sauf si elle est déclarée " -"explicitement comme globale." +"considérées comme globales. Si une affectation de variable est effectuée " +"dans le corps d'une fonction, cette variable sera locale, sauf si elle est " +"déclarée explicitement comme globale." #: ../Doc/faq/programming.rst:198 msgid "" -"Though a bit surprising at first, a moment's consideration explains this. On one " -"hand, requiring :keyword:`global` for assigned variables provides a bar against " -"unintended side-effects. On the other hand, if ``global`` was required for all " -"global references, you'd be using ``global`` all the time. You'd have to declare as " -"global every reference to a built-in function or to a component of an imported " -"module. This clutter would defeat the usefulness of the ``global`` declaration for " -"identifying side-effects." -msgstr "" -"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une part, " -"exiger :keyword:`global` pour des variables affectées est une protection contre des " -"effets de bord inattendus. D'autre part, si ``global`` était obligatoire pour toutes " -"les références à des objets globaux, il faudrait mettre ``global`` partout, car il " -"faudrait dans ce cas déclarer globale chaque référence à une fonction native ou à un " -"composant d'un module importé. Le codé serait alors truffé de déclarations " -"``global``, ce qui nuirait à leur raison d'être : identifier les effets de bords." +"Though a bit surprising at first, a moment's consideration explains this. " +"On one hand, requiring :keyword:`global` for assigned variables provides a " +"bar against unintended side-effects. On the other hand, if ``global`` was " +"required for all global references, you'd be using ``global`` all the time. " +"You'd have to declare as global every reference to a built-in function or to " +"a component of an imported module. This clutter would defeat the usefulness " +"of the ``global`` declaration for identifying side-effects." +msgstr "" +"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une " +"part, exiger :keyword:`global` pour des variables affectées est une " +"protection contre des effets de bord inattendus. D'autre part, si ``global`` " +"était obligatoire pour toutes les références à des objets globaux, il " +"faudrait mettre ``global`` partout, car il faudrait dans ce cas déclarer " +"globale chaque référence à une fonction native ou à un composant d'un module " +"importé. Le codé serait alors truffé de déclarations ``global``, ce qui " +"nuirait à leur raison d'être : identifier les effets de bords." #: ../Doc/faq/programming.rst:208 msgid "" -"Why do lambdas defined in a loop with different values all return the same result?" +"Why do lambdas defined in a loop with different values all return the same " +"result?" msgstr "" -"Pourquoi des expressions lambda définies dans une boucle avec des valeurs différentes " -"retournent-elles le même résultat ?" +"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " +"différentes retournent-elles le même résultat ?" #: ../Doc/faq/programming.rst:210 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" msgstr "" -"Supposons que l'on utilise une boucle itérative pour définir des expressions lambda " -"(voire même des fonctions) différentes, e.g. :" +"Supposons que l'on utilise une boucle itérative pour définir des expressions " +"lambda (voire même des fonctions) différentes, e.g. :" #: ../Doc/faq/programming.rst:217 msgid "" -"This gives you a list that contains 5 lambdas that calculate ``x**2``. You might " -"expect that, when called, they would return, respectively, ``0``, ``1``, ``4``, " -"``9``, and ``16``. However, when you actually try you will see that they all return " -"``16``::" +"This gives you a list that contains 5 lambdas that calculate ``x**2``. You " +"might expect that, when called, they would return, respectively, ``0``, " +"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " +"see that they all return ``16``::" msgstr "" -"Le code précédent créé une liste de 5 expressions lambda qui calculent chacune " -"``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, ``1``, ``4``, " -"``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" +"Le code précédent créé une liste de 5 expressions lambda qui calculent " +"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" #: ../Doc/faq/programming.rst:227 msgid "" -"This happens because ``x`` is not local to the lambdas, but is defined in the outer " -"scope, and it is accessed when the lambda is called --- not when it is defined. At " -"the end of the loop, the value of ``x`` is ``4``, so all the functions now return " -"``4**2``, i.e. ``16``. You can also verify this by changing the value of ``x`` and " -"see how the results of the lambdas change::" +"This happens because ``x`` is not local to the lambdas, but is defined in " +"the outer scope, and it is accessed when the lambda is called --- not when " +"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " +"the functions now return ``4**2``, i.e. ``16``. You can also verify this by " +"changing the value of ``x`` and see how the results of the lambdas change::" msgstr "" -"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux expressions, " -"mais est définie dans le contexte appelant. Elle est lue à l'appel de l'expression " -"lambda – et non au moment où cette expression est définie. À la fin de la boucle, " -"``x`` vaut ``4``, donc toutes les fonctions renvoient ``4*2``, i.e. ``16``. Ceci se " -"vérifie également en changeant la valeur de ``x`` et en constatant que les résultats " -"sont modifiés :" +"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " +"expressions, mais est définie dans le contexte appelant. Elle est lue à " +"l'appel de l'expression lambda – et non au moment où cette expression est " +"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " +"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en constatant que les résultats sont modifiés :" #: ../Doc/faq/programming.rst:237 msgid "" -"In order to avoid this, you need to save the values in variables local to the " -"lambdas, so that they don't rely on the value of the global ``x``::" +"In order to avoid this, you need to save the values in variables local to " +"the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" -"Pour éviter ce phénomène, les valeurs doivent être stockées dans des variables " -"locales aux expressions lambda pour que celles-ci ne se basent plus sur la variable " -"globale ``x`` :" +"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " +"variables locales aux expressions lambda pour que celles-ci ne se basent " +"plus sur la variable globale ``x`` :" #: ../Doc/faq/programming.rst:244 msgid "" -"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed when the " -"lambda is defined so that it has the same value that ``x`` had at that point in the " -"loop. This means that the value of ``n`` will be ``0`` in the first lambda, ``1`` in " -"the second, ``2`` in the third, and so on. Therefore each lambda will now return the " -"correct result::" +"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " +"when the lambda is defined so that it has the same value that ``x`` had at " +"that point in the loop. This means that the value of ``n`` will be ``0`` in " +"the first lambda, ``1`` in the second, ``2`` in the third, and so on. " +"Therefore each lambda will now return the correct result::" msgstr "" -"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à l'expression. Cette " -"variable est évaluée quand l'expression est définie donc ``n`` a la même valeur que " -"``x`` à ce moment. La valeur de ``n`` sera donc ``0`` dans la première lambda, ``1`` " -"dans la deuxième, ``2`` dans la troisième et ainsi de suite. Chaque expression lambda " -"renverra donc le résultat correct :" +"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à " +"l'expression. Cette variable est évaluée quand l'expression est définie donc " +"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` sera donc " +"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " +"troisième et ainsi de suite. Chaque expression lambda renverra donc le " +"résultat correct :" #: ../Doc/faq/programming.rst:255 msgid "" -"Note that this behaviour is not peculiar to lambdas, but applies to regular functions " -"too." +"Note that this behaviour is not peculiar to lambdas, but applies to regular " +"functions too." msgstr "" -"Ce comportement n'est pas propre aux expressions lambda, mais s'applique aussi aux " -"fonctions normales." +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " +"aussi aux fonctions normales." #: ../Doc/faq/programming.rst:260 msgid "How do I share global variables across modules?" @@ -440,17 +458,19 @@ msgstr "Comment partager des variables globales entre modules ?" #: ../Doc/faq/programming.rst:262 msgid "" -"The canonical way to share information across modules within a single program is to " -"create a special module (often called config or cfg). Just import the config module " -"in all modules of your application; the module then becomes available as a global " -"name. Because there is only one instance of each module, any changes made to the " -"module object get reflected everywhere. For example:" +"The canonical way to share information across modules within a single " +"program is to create a special module (often called config or cfg). Just " +"import the config module in all modules of your application; the module then " +"becomes available as a global name. Because there is only one instance of " +"each module, any changes made to the module object get reflected " +"everywhere. For example:" msgstr "" -"La manière standard de partager des informations entre modules d'un même programme " -"est de créer un module spécial (souvent appelé config ou cfg) et de l'importer dans " -"tous les modules de l'application ; le module devient accessible depuis l'espace de " -"nom global. Vu qu'il n'y a qu'une instance de chaque module, tout changement dans " -"l'instance est propagé partout. Par exemple :" +"La manière standard de partager des informations entre modules d'un même " +"programme est de créer un module spécial (souvent appelé config ou cfg) et " +"de l'importer dans tous les modules de l'application ; le module devient " +"accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " +"chaque module, tout changement dans l'instance est propagé partout. Par " +"exemple :" #: ../Doc/faq/programming.rst:268 msgid "config.py::" @@ -466,37 +486,39 @@ msgstr "main.py :" #: ../Doc/faq/programming.rst:283 msgid "" -"Note that using a module is also the basis for implementing the Singleton design " -"pattern, for the same reason." +"Note that using a module is also the basis for implementing the Singleton " +"design pattern, for the same reason." msgstr "" "Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " "l'implémentation du patron de conception singleton." #: ../Doc/faq/programming.rst:288 msgid "What are the \"best practices\" for using import in a module?" -msgstr "Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" +msgstr "" +"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" #: ../Doc/faq/programming.rst:290 msgid "" -"In general, don't use ``from modulename import *``. Doing so clutters the importer's " -"namespace, and makes it much harder for linters to detect undefined names." +"In general, don't use ``from modulename import *``. Doing so clutters the " +"importer's namespace, and makes it much harder for linters to detect " +"undefined names." msgstr "" -"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci encombre " -"l'espace de noms de l'importateur et rend la détection de noms non-définis beaucoup " -"plus ardue aux analyseurs de code." +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " +"encombre l'espace de noms de l'importateur et rend la détection de noms non-" +"définis beaucoup plus ardue aux analyseurs de code." #: ../Doc/faq/programming.rst:294 msgid "" -"Import modules at the top of a file. Doing so makes it clear what other modules your " -"code requires and avoids questions of whether the module name is in scope. Using one " -"import per line makes it easy to add and delete module imports, but using multiple " -"imports per line uses less screen space." +"Import modules at the top of a file. Doing so makes it clear what other " +"modules your code requires and avoids questions of whether the module name " +"is in scope. Using one import per line makes it easy to add and delete " +"module imports, but using multiple imports per line uses less screen space." msgstr "" "Les modules doivent être importés au début d'un fichier. Ceci pour afficher " -"clairement les autres modules dont le code à besoin et éviter de se demander si le " -"module est dans le contexte. Faire un seul import par ligne rend l'ajout et la " -"suppression d'un import de module plus aisé, mais importer plusieurs modules sur une " -"même ligne prend moins d'espace." +"clairement les autres modules dont le code à besoin et éviter de se demander " +"si le module est dans le contexte. Faire un seul import par ligne rend " +"l'ajout et la suppression d'un import de module plus aisé, mais importer " +"plusieurs modules sur une même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:299 msgid "It's good practice if you import modules in the following order:" @@ -505,15 +527,16 @@ msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" #: ../Doc/faq/programming.rst:301 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" -"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, ``re``" +"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, " +"``re``" #: ../Doc/faq/programming.rst:302 msgid "" -"third-party library modules (anything installed in Python's site-packages directory) " -"-- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"third-party library modules (anything installed in Python's site-packages " +"directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" -"les modules externes (tout ce qui est installé dans le dossier *site-packages* de " -"Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"les modules externes (tout ce qui est installé dans le dossier *site-" +"packages* de Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." #: ../Doc/faq/programming.rst:304 msgid "locally-developed modules" @@ -521,127 +544,140 @@ msgstr "les modules développés en local" #: ../Doc/faq/programming.rst:306 msgid "" -"It is sometimes necessary to move imports to a function or class to avoid problems " -"with circular imports. Gordon McMillan says:" +"It is sometimes necessary to move imports to a function or class to avoid " +"problems with circular imports. Gordon McMillan says:" msgstr "" -"Il est parfois nécessaire de déplacer des imports dans une fonction ou une classe " -"pour éviter les problèmes d'imports circulaires. Comme le souligne Gordon McMillan :" +"Il est parfois nécessaire de déplacer des imports dans une fonction ou une " +"classe pour éviter les problèmes d'imports circulaires. Comme le souligne " +"Gordon McMillan :" #: ../Doc/faq/programming.rst:309 msgid "" -"Circular imports are fine where both modules use the \"import \" form of " -"import. They fail when the 2nd module wants to grab a name out of the first (\"from " -"module import name\") and the import is at the top level. That's because names in " -"the 1st are not yet available, because the first module is busy importing the 2nd." +"Circular imports are fine where both modules use the \"import \" " +"form of import. They fail when the 2nd module wants to grab a name out of " +"the first (\"from module import name\") and the import is at the top level. " +"That's because names in the 1st are not yet available, because the first " +"module is busy importing the 2nd." msgstr "" -"Il n'y a aucun soucis à faire des imports circulaires tant que les deux modules " -"utilisent la forme \"import \" . Ça ne pose problème que si le second module " -"cherche à récupérer un nom du premier module (\"from module import name\") et que " -"l'import est dans l'espace de noms du fichier. Les noms du premier module ne sont en " -"effet pas encore disponibles car le premier module est occupé à importer le second." +"Il n'y a aucun soucis à faire des imports circulaires tant que les deux " +"modules utilisent la forme \"import \" . Ça ne pose problème que si " +"le second module cherche à récupérer un nom du premier module (\"from module " +"import name\") et que l'import est dans l'espace de noms du fichier. Les " +"noms du premier module ne sont en effet pas encore disponibles car le " +"premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:315 msgid "" -"In this case, if the second module is only used in one function, then the import can " -"easily be moved into that function. By the time the import is called, the first " -"module will have finished initializing, and the second module can do its import." +"In this case, if the second module is only used in one function, then the " +"import can easily be moved into that function. By the time the import is " +"called, the first module will have finished initializing, and the second " +"module can do its import." msgstr "" -"Dans ce cas, si le second module n'est utilisé que dans une fonction, l'import peut " -"facilement être déplacé dans cette fonction. Au moment où l'import sera appelé, le " -"premier module aura fini de s'initialiser et le second pourra faire son import." +"Dans ce cas, si le second module n'est utilisé que dans une fonction, " +"l'import peut facilement être déplacé dans cette fonction. Au moment où " +"l'import sera appelé, le premier module aura fini de s'initialiser et le " +"second pourra faire son import." #: ../Doc/faq/programming.rst:320 msgid "" -"It may also be necessary to move imports out of the top level of code if some of the " -"modules are platform-specific. In that case, it may not even be possible to import " -"all of the modules at the top of the file. In this case, importing the correct " -"modules in the corresponding platform-specific code is a good option." +"It may also be necessary to move imports out of the top level of code if " +"some of the modules are platform-specific. In that case, it may not even be " +"possible to import all of the modules at the top of the file. In this case, " +"importing the correct modules in the corresponding platform-specific code is " +"a good option." msgstr "" -"Il peut parfois être nécessaire de déplacer des imports de modules hors de l'espace " -"de plus haut niveau du code si certains de ces modules dépendent de la machine " -"utilisée. Dans ce cas de figure, il est parfois impossible d'importer tous les " -"modules au début du fichier. Dans ce cas, il est recommandé de faire l'import des " -"modules adéquats dans le code spécifique à la machine." +"Il peut parfois être nécessaire de déplacer des imports de modules hors de " +"l'espace de plus haut niveau du code si certains de ces modules dépendent de " +"la machine utilisée. Dans ce cas de figure, il est parfois impossible " +"d'importer tous les modules au début du fichier. Dans ce cas, il est " +"recommandé de faire l'import des modules adéquats dans le code spécifique à " +"la machine." #: ../Doc/faq/programming.rst:325 msgid "" -"Only move imports into a local scope, such as inside a function definition, if it's " -"necessary to solve a problem such as avoiding a circular import or are trying to " -"reduce the initialization time of a module. This technique is especially helpful if " -"many of the imports are unnecessary depending on how the program executes. You may " -"also want to move imports into a function if the modules are only ever used in that " -"function. Note that loading a module the first time may be expensive because of the " -"one time initialization of the module, but loading a module multiple times is " -"virtually free, costing only a couple of dictionary lookups. Even if the module name " -"has gone out of scope, the module is probably available in :data:`sys.modules`." -msgstr "" -"Les imports ne devraient être déplacés dans un espace local, comme dans la définition " -"d'une fonction, que si cela est nécessaire pour résoudre un problème comme éviter des " -"dépendances circulaires ou réduire le temps d'initialisation d'un module. Cette " -"technique est particulièrement utile si la majorité des imports est superflue selon " -"le flux d'exécution du programme. Il est également pertinent de déplacer des imports " -"dans une fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " -"chargement d'un module peut être coûteux à cause du coût fixe d'initialisation d'un " -"module, mais charger un module plusieurs fois est quasiment gratuit, cela ne coûte " -"que quelques indirections dans un dictionnaire. Même si le nom du module est sorti du " -"contexte courant, le module est probablement disponible dans :data:`sys.modules`." +"Only move imports into a local scope, such as inside a function definition, " +"if it's necessary to solve a problem such as avoiding a circular import or " +"are trying to reduce the initialization time of a module. This technique is " +"especially helpful if many of the imports are unnecessary depending on how " +"the program executes. You may also want to move imports into a function if " +"the modules are only ever used in that function. Note that loading a module " +"the first time may be expensive because of the one time initialization of " +"the module, but loading a module multiple times is virtually free, costing " +"only a couple of dictionary lookups. Even if the module name has gone out " +"of scope, the module is probably available in :data:`sys.modules`." +msgstr "" +"Les imports ne devraient être déplacés dans un espace local, comme dans la " +"définition d'une fonction, que si cela est nécessaire pour résoudre un " +"problème comme éviter des dépendances circulaires ou réduire le temps " +"d'initialisation d'un module. Cette technique est particulièrement utile si " +"la majorité des imports est superflue selon le flux d'exécution du " +"programme. Il est également pertinent de déplacer des imports dans une " +"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe " +"d'initialisation d'un module, mais charger un module plusieurs fois est " +"quasiment gratuit, cela ne coûte que quelques indirections dans un " +"dictionnaire. Même si le nom du module est sorti du contexte courant, le " +"module est probablement disponible dans :data:`sys.modules`." #: ../Doc/faq/programming.rst:338 msgid "Why are default values shared between objects?" msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" #: ../Doc/faq/programming.rst:340 -msgid "This type of bug commonly bites neophyte programmers. Consider this function::" +msgid "" +"This type of bug commonly bites neophyte programmers. Consider this " +"function::" msgstr "" -"C'est un problème que rencontrent souvent les programmeurs débutants. Examinons la " -"fonction suivante ::" +"C'est un problème que rencontrent souvent les programmeurs débutants. " +"Examinons la fonction suivante ::" #: ../Doc/faq/programming.rst:347 msgid "" -"The first time you call this function, ``mydict`` contains a single item. The second " -"time, ``mydict`` contains two items because when ``foo()`` begins executing, " -"``mydict`` starts out with an item already in it." +"The first time you call this function, ``mydict`` contains a single item. " +"The second time, ``mydict`` contains two items because when ``foo()`` begins " +"executing, ``mydict`` starts out with an item already in it." msgstr "" -"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul élément. Au " -"deuxième appel, ``mydict`` contient deux éléments car quand ``foo()`` commence son " -"exécution, ``mydict`` contient déjà un élément." +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " +"élément. Au deuxième appel, ``mydict`` contient deux éléments car quand " +"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." #: ../Doc/faq/programming.rst:351 msgid "" -"It is often expected that a function call creates new objects for default values. " -"This is not what happens. Default values are created exactly once, when the function " -"is defined. If that object is changed, like the dictionary in this example, " -"subsequent calls to the function will refer to this changed object." +"It is often expected that a function call creates new objects for default " +"values. This is not what happens. Default values are created exactly once, " +"when the function is defined. If that object is changed, like the " +"dictionary in this example, subsequent calls to the function will refer to " +"this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau objets pour " -"les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par défaut ne sont " -"créées qu'une et une seule fois, au moment où la fonction est définie. Si l'objet est " -"modifié, comme le dictionnaire dans cet exemple, les appels suivants à cette fonction " -"font référence à l'objet ainsi modifié." +"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"objets pour les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " +"défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " +"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " +"appels suivants à cette fonction font référence à l'objet ainsi modifié." #: ../Doc/faq/programming.rst:356 msgid "" -"By definition, immutable objects such as numbers, strings, tuples, and ``None``, are " -"safe from change. Changes to mutable objects such as dictionaries, lists, and class " -"instances can lead to confusion." +"By definition, immutable objects such as numbers, strings, tuples, and " +"``None``, are safe from change. Changes to mutable objects such as " +"dictionaries, lists, and class instances can lead to confusion." msgstr "" -"Par définition, les objets immuables comme les nombres, les chaînes de caractères, " -"les tuples et ``None`` ne sont pas modifiés. Les changements sur des objets muables " -"comme les dictionnaires, les listes et les instances de classe peuvent porter à " -"confusion." +"Par définition, les objets immuables comme les nombres, les chaînes de " +"caractères, les tuples et ``None`` ne sont pas modifiés. Les changements sur " +"des objets muables comme les dictionnaires, les listes et les instances de " +"classe peuvent porter à confusion." #: ../Doc/faq/programming.rst:360 msgid "" -"Because of this feature, it is good programming practice to not use mutable objects " -"as default values. Instead, use ``None`` as the default value and inside the " -"function, check if the parameter is ``None`` and create a new list/dictionary/" -"whatever if it is. For example, don't write::" +"Because of this feature, it is good programming practice to not use mutable " +"objects as default values. Instead, use ``None`` as the default value and " +"inside the function, check if the parameter is ``None`` and create a new " +"list/dictionary/whatever if it is. For example, don't write::" msgstr "" -"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets muables comme " -"valeurs par défaut. Il vaut mieux utiliser ``None`` comme valeur par défaut à " -"l'intérieur de la fonction, vérifier si le paramètre est à ``None`` et créer une " -"nouvelle liste, dictionnaire ou autre, le cas échéant. Par exemple, il ne faut pas " -"écrire ::" +"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " +"valeur par défaut à l'intérieur de la fonction, vérifier si le paramètre est " +"à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " +"échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:368 msgid "but::" @@ -649,39 +685,44 @@ msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:374 msgid "" -"This feature can be useful. When you have a function that's time-consuming to " -"compute, a common technique is to cache the parameters and the resulting value of " -"each call to the function, and return the cached value if the same value is requested " -"again. This is called \"memoizing\", and can be implemented like this::" +"This feature can be useful. When you have a function that's time-consuming " +"to compute, a common technique is to cache the parameters and the resulting " +"value of each call to the function, and return the cached value if the same " +"value is requested again. This is called \"memoizing\", and can be " +"implemented like this::" msgstr "" -"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les paramètres " -"et la valeur de retour de chacun des appels d'une fonction coûteuse à exécuter, et de " -"renvoyer la valeur stockée en cache si le même appel est ré-effectué. C'est la " -"technique dite de « mémoïsation », qui s'implémente de la manière suivante ::" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " +"paramètres et la valeur de retour de chacun des appels d'une fonction " +"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " +"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " +"s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:389 msgid "" -"You could use a global variable containing a dictionary instead of the default value; " -"it's a matter of taste." +"You could use a global variable containing a dictionary instead of the " +"default value; it's a matter of taste." msgstr "" -"Il est possible d'utiliser une variable globale contenant un dictionnaire à la place " -"de la valeur par défaut ; ce n'est qu'une question de goût." +"Il est possible d'utiliser une variable globale contenant un dictionnaire à " +"la place de la valeur par défaut ; ce n'est qu'une question de goût." #: ../Doc/faq/programming.rst:394 -msgid "How can I pass optional or keyword parameters from one function to another?" -msgstr "Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" +msgid "" +"How can I pass optional or keyword parameters from one function to another?" +msgstr "" +"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" #: ../Doc/faq/programming.rst:396 msgid "" -"Collect the arguments using the ``*`` and ``**`` specifiers in the function's " -"parameter list; this gives you the positional arguments as a tuple and the keyword " -"arguments as a dictionary. You can then pass these arguments when calling another " -"function by using ``*`` and ``**``::" +"Collect the arguments using the ``*`` and ``**`` specifiers in the " +"function's parameter list; this gives you the positional arguments as a " +"tuple and the keyword arguments as a dictionary. You can then pass these " +"arguments when calling another function by using ``*`` and ``**``::" msgstr "" -"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` dans la " -"liste des paramètres de la fonction ; ceci donne les arguments positionnels sous la " -"forme d'un tuple et les arguments nommés sous forme de dictionnaire. Ces arguments " -"peuvent être passés à une autre fonction en utilisant ``*`` et ``**`` ::" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " +"dans la liste des paramètres de la fonction ; ceci donne les arguments " +"positionnels sous la forme d'un tuple et les arguments nommés sous forme de " +"dictionnaire. Ces arguments peuvent être passés à une autre fonction en " +"utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:415 msgid "What is the difference between arguments and parameters?" @@ -689,24 +730,25 @@ msgstr "Quelle est la différence entre les arguments et les paramètres ?" #: ../Doc/faq/programming.rst:417 msgid "" -":term:`Parameters ` are defined by the names that appear in a function " -"definition, whereas :term:`arguments ` are the values actually passed to a " -"function when calling it. Parameters define what types of arguments a function can " -"accept. For example, given the function definition::" +":term:`Parameters ` are defined by the names that appear in a " +"function definition, whereas :term:`arguments ` are the values " +"actually passed to a function when calling it. Parameters define what types " +"of arguments a function can accept. For example, given the function " +"definition::" msgstr "" -"Les :term:`paramètres ` sont les noms qui apparaissent dans une définition " -"de fonction, alors que les :term:`arguments ` sont les valeurs qui sont " -"réellement passées à une fonction lors de l'appel de celle-ci. Les paramètres " -"définissent les types des arguments qu'une fonction accepte. Ainsi, avec la " -"définition de fonction suivante ::" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une " +"définition de fonction, alors que les :term:`arguments ` sont les " +"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" +"ci. Les paramètres définissent les types des arguments qu'une fonction " +"accepte. Ainsi, avec la définition de fonction suivante ::" #: ../Doc/faq/programming.rst:425 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" -"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de ``func`` " -"avec, par exemple ::" +"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " +"``func`` avec, par exemple ::" #: ../Doc/faq/programming.rst:430 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." @@ -721,10 +763,11 @@ msgid "If you wrote code like::" msgstr "Si vous avez écrit du code comme : ::" #: ../Doc/faq/programming.rst:446 -msgid "you might be wondering why appending an element to ``y`` changed ``x`` too." +msgid "" +"you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" -"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi changé " -"``x``." +"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " +"changé ``x``." #: ../Doc/faq/programming.rst:448 msgid "There are two factors that produce this result:" @@ -732,31 +775,33 @@ msgstr "Il y a deux raisons qui conduisent à ce comportement :" #: ../Doc/faq/programming.rst:450 msgid "" -"Variables are simply names that refer to objects. Doing ``y = x`` doesn't create a " -"copy of the list -- it creates a new variable ``y`` that refers to the same object " -"``x`` refers to. This means that there is only one object (the list), and both ``x`` " -"and ``y`` refer to it." +"Variables are simply names that refer to objects. Doing ``y = x`` doesn't " +"create a copy of the list -- it creates a new variable ``y`` that refers to " +"the same object ``x`` refers to. This means that there is only one object " +"(the list), and both ``x`` and ``y`` refer to it." msgstr "" -"Les variables ne sont que des noms qui font référence à des objets. La ligne ``y = " -"x`` ne crée pas une copie de la liste -- elle crée une nouvelle variable ``y`` qui " -"pointe sur le même objet que ``x``. Ceci signifie qu'il n'existe qu'un seul objet (la " -"liste) auquel ``x`` et ``y`` font référence." +"Les variables ne sont que des noms qui font référence à des objets. La ligne " +"``y = x`` ne crée pas une copie de la liste -- elle crée une nouvelle " +"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " +"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." #: ../Doc/faq/programming.rst:454 -msgid "Lists are :term:`mutable`, which means that you can change their content." +msgid "" +"Lists are :term:`mutable`, which means that you can change their content." msgstr "" -"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut être " -"modifié." +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " +"être modifié." #: ../Doc/faq/programming.rst:456 msgid "" -"After the call to :meth:`~list.append`, the content of the mutable object has changed " -"from ``[]`` to ``[10]``. Since both the variables refer to the same object, using " -"either name accesses the modified value ``[10]``." +"After the call to :meth:`~list.append`, the content of the mutable object " +"has changed from ``[]`` to ``[10]``. Since both the variables refer to the " +"same object, using either name accesses the modified value ``[10]``." msgstr "" -"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est passé de " -"``[]`` à ``[10]``. Vu que les deux variables font référence au même objet, il est " -"possible d'accéder à la valeur modifiée ``[10]`` avec chacun des noms." +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " +"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " +"des noms." #: ../Doc/faq/programming.rst:460 msgid "If we instead assign an immutable object to ``x``::" @@ -764,53 +809,58 @@ msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:470 msgid "" -"we can see that in this case ``x`` and ``y`` are not equal anymore. This is because " -"integers are :term:`immutable`, and when we do ``x = x + 1`` we are not mutating the " -"int ``5`` by incrementing its value; instead, we are creating a new object (the int " -"``6``) and assigning it to ``x`` (that is, changing which object ``x`` refers to). " -"After this assignment we have two objects (the ints ``6`` and ``5``) and two " -"variables that refer to them (``x`` now refers to ``6`` but ``y`` still refers to " +"we can see that in this case ``x`` and ``y`` are not equal anymore. This is " +"because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " +"not mutating the int ``5`` by incrementing its value; instead, we are " +"creating a new object (the int ``6``) and assigning it to ``x`` (that is, " +"changing which object ``x`` refers to). After this assignment we have two " +"objects (the ints ``6`` and ``5``) and two variables that refer to them " +"(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." +msgstr "" +"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des " +"immuables (:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` " +"en incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " +"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " +"référence ``x``). Après cette affectation on a deux objets (les entiers " +"``6`` et ``5``) et deux variables qui font référence à ces deux objets " +"(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " "``5``)." -msgstr "" -"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des immuables " -"(:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` en incrémentant sa " -"valeur. Au contraire, un nouvel objet est créé (l'entier ``6``) et affecté à ``x`` " -"(c'est à dire qu'on change l'objet auquel fait référence ``x``). Après cette " -"affectation on a deux objets (les entiers ``6`` et ``5``) et deux variables qui font " -"référence à ces deux objets (``x`` fait désormais référence à ``6`` mais ``y`` fait " -"toujours référence à ``5``)." #: ../Doc/faq/programming.rst:478 msgid "" -"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the object, " -"whereas superficially similar operations (for example ``y = y + [10]`` and " -"``sorted(y)``) create a new object. In general in Python (and in all cases in the " -"standard library) a method that mutates an object will return ``None`` to help avoid " -"getting the two types of operations confused. So if you mistakenly write ``y." -"sort()`` thinking it will give you a sorted copy of ``y``, you'll instead end up with " -"``None``, which will likely cause your program to generate an easily diagnosed error." -msgstr "" -"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) modifient " -"l'objet, alors que des opérations identiques en apparence (par exemple ``y = y + " -"[10]`` et ``sorted(y)``) créent un nouvel objet. En général, en Python, une méthode " -"qui modifie un objet renvoie ``None`` (c'est même systématique dans la bibliothèque " -"standard) pour éviter la confusion entre les deux opérations. Donc écrire par erreur " -"``y.sort()`` en pensant obtenir une copie triée de ``y`` donne ``None``, ce qui " -"conduit très souvent le programme à générer une erreur facile à diagnostiquer." +"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " +"object, whereas superficially similar operations (for example ``y = y + " +"[10]`` and ``sorted(y)``) create a new object. In general in Python (and in " +"all cases in the standard library) a method that mutates an object will " +"return ``None`` to help avoid getting the two types of operations confused. " +"So if you mistakenly write ``y.sort()`` thinking it will give you a sorted " +"copy of ``y``, you'll instead end up with ``None``, which will likely cause " +"your program to generate an easily diagnosed error." +msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " +"modifient l'objet, alors que des opérations identiques en apparence (par " +"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " +"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " +"même systématique dans la bibliothèque standard) pour éviter la confusion " +"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " +"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " +"le programme à générer une erreur facile à diagnostiquer." #: ../Doc/faq/programming.rst:487 msgid "" -"However, there is one class of operations where the same operation sometimes has " -"different behaviors with different types: the augmented assignment operators. For " -"example, ``+=`` mutates lists but not tuples or ints (``a_list += [1, 2, 3]`` is " -"equivalent to ``a_list.extend([1, 2, 3])`` and mutates ``a_list``, whereas " -"``some_tuple += (1, 2, 3)`` and ``some_int += 1`` create new objects)." +"However, there is one class of operations where the same operation sometimes " +"has different behaviors with different types: the augmented assignment " +"operators. For example, ``+=`` mutates lists but not tuples or ints " +"(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " +"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " +"1`` create new objects)." msgstr "" -"Il existe cependant une classe d'opérations qui se comporte différemment selon le " -"type : les opérateurs d'affectation incrémentaux. Par exemple, ``+=`` modifie les " -"listes mais pas les n-uplets ni les entiers (``a_list += [1, 2, 3]`` équivaut à " -"``a_list.extend([1, 2, 3])`` et modifie ``a_list``, alors que ``some_tuple += (1, 2, " -"3)`` et ``some_int += 1`` créent de nouveaux objets)." +"Il existe cependant une classe d'opérations qui se comporte différemment " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" +"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " +"alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " +"nouveaux objets)." #: ../Doc/faq/programming.rst:494 msgid "In other words:" @@ -818,48 +868,51 @@ msgstr "En d'autres termes :" #: ../Doc/faq/programming.rst:496 msgid "" -"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, etc.), we " -"can use some specific operations to mutate it and all the variables that refer to it " -"will see the change." +"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " +"etc.), we can use some specific operations to mutate it and all the " +"variables that refer to it will see the change." msgstr "" -"Il est possible d'appliquer des opérations qui modifient un objet muable (:class:" -"`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui y font " -"référence verront le changement." +"Il est possible d'appliquer des opérations qui modifient un objet muable (:" +"class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " +"y font référence verront le changement." #: ../Doc/faq/programming.rst:499 msgid "" -"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, etc.), " -"all the variables that refer to it will always see the same value, but operations " -"that transform that value into a new value always return a new object." +"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " +"etc.), all the variables that refer to it will always see the same value, " +"but operations that transform that value into a new value always return a " +"new object." msgstr "" -"Toutes les variables qui y font référence à n objet immuable (:class:`str`, :class:" -"`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les opérations qui " -"transforment cette valeur en une nouvelle valeur renvoient toujours un nouvel objet." +"Toutes les variables qui y font référence à n objet immuable (:class:`str`, :" +"class:`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les " +"opérations qui transforment cette valeur en une nouvelle valeur renvoient " +"toujours un nouvel objet." #: ../Doc/faq/programming.rst:504 msgid "" -"If you want to know if two variables refer to the same object or not, you can use " -"the :keyword:`is` operator, or the built-in function :func:`id`." +"If you want to know if two variables refer to the same object or not, you " +"can use the :keyword:`is` operator, or the built-in function :func:`id`." msgstr "" -"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de savoir si " -"deux variables font référence au même objet." +"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " +"savoir si deux variables font référence au même objet." #: ../Doc/faq/programming.rst:509 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" -"Comment écrire une fonction qui modifie ses paramètres ? (passage par référence)" +"Comment écrire une fonction qui modifie ses paramètres ? (passage par " +"référence)" #: ../Doc/faq/programming.rst:511 msgid "" -"Remember that arguments are passed by assignment in Python. Since assignment just " -"creates references to objects, there's no alias between an argument name in the " -"caller and callee, and so no call-by-reference per se. You can achieve the desired " -"effect in a number of ways." +"Remember that arguments are passed by assignment in Python. Since " +"assignment just creates references to objects, there's no alias between an " +"argument name in the caller and callee, and so no call-by-reference per se. " +"You can achieve the desired effect in a number of ways." msgstr "" -"En Python, les arguments sont passés par copie. Vu qu'une copie créé des références à " -"des objets, il n'y pas de lien entre un argument dans l'appel de la fonction et sa " -"définition, et donc pas de passage par référence en soi. Il y a cependant plusieurs " -"façon d'en émuler un." +"En Python, les arguments sont passés par copie. Vu qu'une copie créé des " +"références à des objets, il n'y pas de lien entre un argument dans l'appel " +"de la fonction et sa définition, et donc pas de passage par référence en " +"soi. Il y a cependant plusieurs façon d'en émuler un." #: ../Doc/faq/programming.rst:516 msgid "By returning a tuple of the results::" @@ -870,11 +923,12 @@ msgid "This is almost always the clearest solution." msgstr "C'est presque toujours la meilleure solution." #: ../Doc/faq/programming.rst:529 -msgid "By using global variables. This isn't thread-safe, and is not recommended." +msgid "" +"By using global variables. This isn't thread-safe, and is not recommended." msgstr "" -"En utilisant des variables globales. Cette approche ne fonctionne pas dans des " -"contextes à plusieurs fils d'exécution (non *thread-safe*), et n'est donc pas " -"recommandée." +"En utilisant des variables globales. Cette approche ne fonctionne pas dans " +"des contextes à plusieurs fils d'exécution (non *thread-safe*), et n'est " +"donc pas recommandée." #: ../Doc/faq/programming.rst:531 msgid "By passing a mutable (changeable in-place) object::" @@ -895,7 +949,8 @@ msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." #: ../Doc/faq/programming.rst:569 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"La meilleure option reste de renvoyer un n-uplet contenant les différents résultats." +"La meilleure option reste de renvoyer un n-uplet contenant les différents " +"résultats." #: ../Doc/faq/programming.rst:573 msgid "How do you make a higher order function in Python?" @@ -903,14 +958,15 @@ msgstr "Comment construire une fonction d'ordre supérieur en Python ?" #: ../Doc/faq/programming.rst:575 msgid "" -"You have two choices: you can use nested scopes or you can use callable objects. For " -"example, suppose you wanted to define ``linear(a,b)`` which returns a function " -"``f(x)`` that computes the value ``a*x+b``. Using nested scopes::" +"You have two choices: you can use nested scopes or you can use callable " +"objects. For example, suppose you wanted to define ``linear(a,b)`` which " +"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " +"scopes::" msgstr "" -"Deux possibilités : on peut utiliser des portées imbriquées ou bien des objets " -"appelables. Par exemple, supposons que l'on souhaite définir ``linear(a, b)`` qui " -"renvoie une fonction ``f(x)`` qui calcule la valeur ``a*x+b``. En utilisant les " -"portées imbriquées : ::" +"Deux possibilités : on peut utiliser des portées imbriquées ou bien des " +"objets appelables. Par exemple, supposons que l'on souhaite définir " +"``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " +"``a*x+b``. En utilisant les portées imbriquées : ::" #: ../Doc/faq/programming.rst:584 msgid "Or using a callable object::" @@ -926,13 +982,14 @@ msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." #: ../Doc/faq/programming.rst:600 msgid "" -"The callable object approach has the disadvantage that it is a bit slower and results " -"in slightly longer code. However, note that a collection of callables can share " -"their signature via inheritance::" +"The callable object approach has the disadvantage that it is a bit slower " +"and results in slightly longer code. However, note that a collection of " +"callables can share their signature via inheritance::" msgstr "" -"L'approche par objet appelable a le désavantage d'être légèrement plus lente et de " -"produire un code légèrement plus long. Cependant, il faut noter qu'une collection " -"d'objet appelables peuvent partager leurs signatures par héritage : ::" +"L'approche par objet appelable a le désavantage d'être légèrement plus lente " +"et de produire un code légèrement plus long. Cependant, il faut noter qu'une " +"collection d'objet appelables peuvent partager leurs signatures par " +"héritage : ::" #: ../Doc/faq/programming.rst:609 msgid "Object can encapsulate state for several methods::" @@ -940,11 +997,11 @@ msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" #: ../Doc/faq/programming.rst:627 msgid "" -"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the same " -"counting variable." +"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " +"same counting variable." msgstr "" -"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions partageant une " -"même variable compteur." +"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " +"partageant une même variable compteur." #: ../Doc/faq/programming.rst:632 msgid "How do I copy an object in Python?" @@ -952,19 +1009,19 @@ msgstr "Comment copier un objet en Python?" #: ../Doc/faq/programming.rst:634 msgid "" -"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general case. Not " -"all objects can be copied, but most can." +"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " +"case. Not all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les objets ne " -"peuvent pas être copiés, mais la plupart le peuvent." +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les " +"objets ne peuvent pas être copiés, mais la plupart le peuvent." #: ../Doc/faq/programming.rst:637 msgid "" -"Some objects can be copied more easily. Dictionaries have a :meth:`~dict.copy` " -"method::" +"Some objects can be copied more easily. Dictionaries have a :meth:`~dict." +"copy` method::" msgstr "" -"Certains objets peuvent être copiés plus facilement que d'autres. Les dictionnaires " -"ont une méthode :meth:`~dict.copy` ::" +"Certains objets peuvent être copiés plus facilement que d'autres. Les " +"dictionnaires ont une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:642 msgid "Sequences can be copied by slicing::" @@ -976,13 +1033,13 @@ msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:650 msgid "" -"For an instance x of a user-defined class, ``dir(x)`` returns an alphabetized list of " -"the names containing the instance attributes and methods and attributes defined by " -"its class." +"For an instance x of a user-defined class, ``dir(x)`` returns an " +"alphabetized list of the names containing the instance attributes and " +"methods and attributes defined by its class." msgstr "" -"Pour une instance x d'une classe définie par un utilisateur, ``dir(x)`` renvoie une " -"liste alphabétique des noms contenants les attributs de l'instance, et les attributs " -"et méthodes définies par sa classe." +"Pour une instance x d'une classe définie par un utilisateur, ``dir(x)`` " +"renvoie une liste alphabétique des noms contenants les attributs de " +"l'instance, et les attributs et méthodes définies par sa classe." #: ../Doc/faq/programming.rst:656 msgid "How can my code discover the name of an object?" @@ -990,65 +1047,69 @@ msgstr "Comment un code peut-il obtenir le nom d'un objet ?" #: ../Doc/faq/programming.rst:658 msgid "" -"Generally speaking, it can't, because objects don't really have names. Essentially, " -"assignment always binds a name to a value; The same is true of ``def`` and ``class`` " -"statements, but in that case the value is a callable. Consider the following code::" +"Generally speaking, it can't, because objects don't really have names. " +"Essentially, assignment always binds a name to a value; The same is true of " +"``def`` and ``class`` statements, but in that case the value is a callable. " +"Consider the following code::" msgstr "" -"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement parler. " -"Schématiquement, l'affectation fait correspondre un nom à une valeur ; c'est vrai " -"aussi pour les instructions ``def`` et ``class``, à la différence près que, dans ce " -"cas, la valeur est un appelable. Par exemple, dans le code suivant : ::" +"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " +"parler. Schématiquement, l'affectation fait correspondre un nom à une " +"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " +"différence près que, dans ce cas, la valeur est un appelable. Par exemple, " +"dans le code suivant : ::" #: ../Doc/faq/programming.rst:674 msgid "" -"Arguably the class has a name: even though it is bound to two names and invoked " -"through the name B the created instance is still reported as an instance of class A. " -"However, it is impossible to say whether the instance's name is a or b, since both " -"names are bound to the same value." +"Arguably the class has a name: even though it is bound to two names and " +"invoked through the name B the created instance is still reported as an " +"instance of class A. However, it is impossible to say whether the " +"instance's name is a or b, since both names are bound to the same value." msgstr "" -"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à deux noms, " -"et qu'elle soit appelée via le nom B, l'instance créée déclare tout de même être une " -"instance de la classe A. De même, Il est impossible de dire si le nom de l'instance " -"est a ou b, les deux noms étant attachés à la même valeur." +"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à " +"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " +"tout de même être une instance de la classe A. De même, Il est impossible de " +"dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " +"même valeur." #: ../Doc/faq/programming.rst:679 msgid "" -"Generally speaking it should not be necessary for your code to \"know the names\" of " -"particular values. Unless you are deliberately writing introspective programs, this " -"is usually an indication that a change of approach might be beneficial." +"Generally speaking it should not be necessary for your code to \"know the " +"names\" of particular values. Unless you are deliberately writing " +"introspective programs, this is usually an indication that a change of " +"approach might be beneficial." msgstr "" -"De façon générale, une application ne devrait pas avoir besoin de « connaître le nom " -"» d'une valeur particulière. À moins d'être délibérément en train d'écrire un " -"programme introspectif, c'est souvent l'indication qu'un changement d'approche serait " -"bénéfique." +"De façon générale, une application ne devrait pas avoir besoin de « " +"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " +"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " +"changement d'approche serait bénéfique." #: ../Doc/faq/programming.rst:684 msgid "" -"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer to this " -"question:" +"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " +"to this question:" msgstr "" -"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente analogie pour " -"répondre à cette question :" +"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " +"analogie pour répondre à cette question :" #: ../Doc/faq/programming.rst:687 msgid "" -"The same way as you get the name of that cat you found on your porch: the cat " -"(object) itself cannot tell you its name, and it doesn't really care -- so the only " -"way to find out what it's called is to ask all your neighbours (namespaces) if it's " -"their cat (object)..." +"The same way as you get the name of that cat you found on your porch: the " +"cat (object) itself cannot tell you its name, and it doesn't really care -- " +"so the only way to find out what it's called is to ask all your neighbours " +"(namespaces) if it's their cat (object)..." msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le chat " -"(objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu -- alors le " -"meilleur moyen de savoir comment il s'appelle est de demander à tous vos voisins " -"(espaces de nommage) si c'est leur chat (objet)…." +"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " +"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " +"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." #: ../Doc/faq/programming.rst:692 msgid "" -"....and don't be surprised if you'll find that it's known by many names, or no name " -"at all!" +"....and don't be surprised if you'll find that it's known by many names, or " +"no name at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs noms, ou " -"s'il n'a pas de nom du tout !" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " +"noms, ou s'il n'a pas de nom du tout !" #: ../Doc/faq/programming.rst:697 msgid "What's up with the comma operator's precedence?" @@ -1056,15 +1117,17 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:699 msgid "Comma is not an operator in Python. Consider this session::" -msgstr "La virgule n'est pas un opérateur en Python. Observez le code suivant ::" +msgstr "" +"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" #: ../Doc/faq/programming.rst:704 msgid "" -"Since the comma is not an operator, but a separator between expressions the above is " -"evaluated as if you had entered::" +"Since the comma is not an operator, but a separator between expressions the " +"above is evaluated as if you had entered::" msgstr "" -"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux expressions, " -"l'expression ci-dessus est évaluée de la même façon que si vous aviez écrit ::" +"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " +"expressions, l'expression ci-dessus est évaluée de la même façon que si vous " +"aviez écrit ::" #: ../Doc/faq/programming.rst:709 msgid "not::" @@ -1072,12 +1135,13 @@ msgstr "et non ::" #: ../Doc/faq/programming.rst:713 msgid "" -"The same is true of the various assignment operators (``=``, ``+=`` etc). They are " -"not truly operators but syntactic delimiters in assignment statements." +"The same is true of the various assignment operators (``=``, ``+=`` etc). " +"They are not truly operators but syntactic delimiters in assignment " +"statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce ne sont " -"pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques dans les " -"instructions d'assignation." +"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce " +"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " +"dans les instructions d'assignation." #: ../Doc/faq/programming.rst:718 msgid "Is there an equivalent of C's \"?:\" ternary operator?" @@ -1089,34 +1153,36 @@ msgstr "Oui. Sa syntaxe est la suivante : ::" #: ../Doc/faq/programming.rst:727 msgid "" -"Before this syntax was introduced in Python 2.5, a common idiom was to use logical " -"operators::" +"Before this syntax was introduced in Python 2.5, a common idiom was to use " +"logical operators::" msgstr "" -"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant d'utiliser " -"les opérateurs de logique ::" +"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " +"d'utiliser les opérateurs de logique ::" #: ../Doc/faq/programming.rst:732 msgid "" -"However, this idiom is unsafe, as it can give wrong results when *on_true* has a " -"false boolean value. Therefore, it is always better to use the ``... if ... else ..." -"`` form." +"However, this idiom is unsafe, as it can give wrong results when *on_true* " +"has a false boolean value. Therefore, it is always better to use the ``... " +"if ... else ...`` form." msgstr "" -"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à la valeur " -"booléenne fausse. Il faut donc toujours utiliser la forme ``... if ... else ...``." +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à " +"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " +"if ... else ...``." #: ../Doc/faq/programming.rst:738 msgid "Is it possible to write obfuscated one-liners in Python?" msgstr "" -"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne en " -"Python ?" +"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " +"en Python ?" #: ../Doc/faq/programming.rst:740 msgid "" -"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!lambda`. " -"See the following three examples, due to Ulf Bartelt::" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" +"lambda`. See the following three examples, due to Ulf Bartelt::" msgstr "" -"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :keyword:" -"`lambda`. Par exemple les trois morceaux de code suivants, créés par Ulf Bartelt ::" +"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" +"keyword:`lambda`. Par exemple les trois morceaux de code suivants, créés par " +"Ulf Bartelt ::" #: ../Doc/faq/programming.rst:767 msgid "Don't try this at home, kids!" @@ -1124,44 +1190,46 @@ msgstr "Les enfants, ne faites pas ça chez vous !" #: ../Doc/faq/programming.rst:773 msgid "What does the slash(/) in the parameter list of a function mean?" -msgstr "Que signifie la barre oblique (/) dans la liste des paramètres d'une fonction ?" +msgstr "" +"Que signifie la barre oblique (/) dans la liste des paramètres d'une " +"fonction ?" #: ../Doc/faq/programming.rst:775 msgid "" -"A slash in the argument list of a function denotes that the parameters prior to it " -"are positional-only. Positional-only parameters are the ones without an externally-" -"usable name. Upon calling a function that accepts positional-only parameters, " -"arguments are mapped to parameters based solely on their position. For example, :func:" -"`pow` is a function that accepts positional-only parameters. Its documentation looks " -"like this::" +"A slash in the argument list of a function denotes that the parameters prior " +"to it are positional-only. Positional-only parameters are the ones without " +"an externally-usable name. Upon calling a function that accepts positional-" +"only parameters, arguments are mapped to parameters based solely on their " +"position. For example, :func:`pow` is a function that accepts positional-" +"only parameters. Its documentation looks like this::" msgstr "" "Une barre oblique dans la liste des arguments d'une fonction indique que les " -"paramètres la précédant sont uniquement positionnels. Les paramètres uniquement " -"positionnels ne sont pas utilisables depuis l'extérieur. Lors de l'appel d'une " -"fonction qui n'accepte que des paramètres uniquement positionnels, les arguments sont " -"affectés au paramètres en fonction de leur position. Par exemple, :func:`pow` est une " -"fonction qui n'accepte que des paramètres uniquement positionnels. Sa documentation " -"est la suivante ::" +"paramètres la précédant sont uniquement positionnels. Les paramètres " +"uniquement positionnels ne sont pas utilisables depuis l'extérieur. Lors de " +"l'appel d'une fonction qui n'accepte que des paramètres uniquement " +"positionnels, les arguments sont affectés au paramètres en fonction de leur " +"position. Par exemple, :func:`pow` est une fonction qui n'accepte que des " +"paramètres uniquement positionnels. Sa documentation est la suivante ::" #: ../Doc/faq/programming.rst:791 msgid "" -"The slash at the end of the parameter list means that all three parameters are " -"positional-only. Thus, calling :func:`pow` with keyword aguments would lead to an " -"error::" +"The slash at the end of the parameter list means that all three parameters " +"are positional-only. Thus, calling :func:`pow` with keyword aguments would " +"lead to an error::" msgstr "" "La barre oblique à la fin de la liste des paramètres signifie que les trois " -"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec des " -"arguments nommés provoquerait une erreur :: " +"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " +"des arguments nommés provoquerait une erreur :: " #: ../Doc/faq/programming.rst:800 msgid "" -"Note that as of this writing this is only documentational and no valid syntax in " -"Python, although there is :pep:`570`, which proposes a syntax for position-only " -"parameters in Python." +"Note that as of this writing this is only documentational and no valid " +"syntax in Python, although there is :pep:`570`, which proposes a syntax for " +"position-only parameters in Python." msgstr "" -"Notez que cet exemple n'est fournit qu'à titre informatif et n'est pas une syntaxe " -"Python valide, bien que la pep:`570` propose une syntaxe pour les paramètres " -"uniquement positionnels en Python." +"Notez que cet exemple n'est fournit qu'à titre informatif et n'est pas une " +"syntaxe Python valide, bien que la pep:`570` propose une syntaxe pour les " +"paramètres uniquement positionnels en Python." #: ../Doc/faq/programming.rst:806 msgid "Numbers and strings" @@ -1173,23 +1241,24 @@ msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" #: ../Doc/faq/programming.rst:811 msgid "" -"To specify an octal digit, precede the octal value with a zero, and then a lower or " -"uppercase \"o\". For example, to set the variable \"a\" to the octal value \"10\" (8 " -"in decimal), type::" +"To specify an octal digit, precede the octal value with a zero, and then a " +"lower or uppercase \"o\". For example, to set the variable \"a\" to the " +"octal value \"10\" (8 in decimal), type::" msgstr "" -"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, puis un \"o" -"\" majuscule ou minuscule. Par exemple pour affecter la valeur octale \"10\" (8 en " -"décimal) à la variable \"a\", tapez ::" +"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " +"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " +"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:819 msgid "" -"Hexadecimal is just as easy. Simply precede the hexadecimal number with a zero, and " -"then a lower or uppercase \"x\". Hexadecimal digits can be specified in lower or " -"uppercase. For example, in the Python interpreter::" +"Hexadecimal is just as easy. Simply precede the hexadecimal number with a " +"zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " +"specified in lower or uppercase. For example, in the Python interpreter::" msgstr "" -"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal par un " -"zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux peuvent être " -"écrit en majuscules ou en minuscules. Par exemple, dans l'interpréteur Python ::" +"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " +"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " +"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " +"l'interpréteur Python ::" #: ../Doc/faq/programming.rst:832 msgid "Why does -22 // 10 return -3?" @@ -1197,34 +1266,35 @@ msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" #: ../Doc/faq/programming.rst:834 msgid "" -"It's primarily driven by the desire that ``i % j`` have the same sign as ``j``. If " -"you want that, and also want::" +"It's primarily driven by the desire that ``i % j`` have the same sign as " +"``j``. If you want that, and also want::" msgstr "" -"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que j. Si " -"vous voulez en plus que ::" +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " +"j. Si vous voulez en plus que ::" #: ../Doc/faq/programming.rst:839 msgid "" -"then integer division has to return the floor. C also requires that identity to " -"hold, and then compilers that truncate ``i // j`` need to make ``i % j`` have the " -"same sign as ``i``." +"then integer division has to return the floor. C also requires that " +"identity to hold, and then compilers that truncate ``i // j`` need to make " +"``i % j`` have the same sign as ``i``." msgstr "" -"alors la division entière doit renvoyer l'entier inférieur. Le C impose également que " -"cette égalité soit vérifiée, et donc les compilateurs qui tronquent ``i // j`` ont " -"besoin que ``i % j`` ait le même signe que ``i``." +"alors la division entière doit renvoyer l'entier inférieur. Le C impose " +"également que cette égalité soit vérifiée, et donc les compilateurs qui " +"tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." #: ../Doc/faq/programming.rst:843 msgid "" -"There are few real use cases for ``i % j`` when ``j`` is negative. When ``j`` is " -"positive, there are many, and in virtually all of them it's more useful for ``i % j`` " -"to be ``>= 0``. If the clock says 10 now, what did it say 200 hours ago? ``-190 % " -"12 == 2`` is useful; ``-190 % 12 == -10`` is a bug waiting to bite." +"There are few real use cases for ``i % j`` when ``j`` is negative. When " +"``j`` is positive, there are many, and in virtually all of them it's more " +"useful for ``i % j`` to be ``>= 0``. If the clock says 10 now, what did it " +"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " +"bug waiting to bite." msgstr "" -"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est négatif. Quand " -"``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il est plus utile " -"que ``i % j`` soit ``>=0``. Si l'horloge affiche 10h maintenant, qu'affichait-elle " -"il y a 200 heures ? ``-190 % 12 == 2`` est utile ; ``-190 % 12 == -10`` est un bogue " -"en puissance." +"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " +"négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " +"tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " +"10h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " +"utile ; ``-190 % 12 == -10`` est un bogue en puissance." #: ../Doc/faq/programming.rst:851 msgid "How do I convert a string to a number?" @@ -1232,28 +1302,29 @@ msgstr "Comment convertir une chaîne de caractères en nombre ?" #: ../Doc/faq/programming.rst:853 msgid "" -"For integers, use the built-in :func:`int` type constructor, e.g. ``int('144') == " -"144``. Similarly, :func:`float` converts to floating-point, e.g. ``float('144') == " -"144.0``." +"For integers, use the built-in :func:`int` type constructor, e.g. " +"``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " +"e.g. ``float('144') == 144.0``." msgstr "" -"Pour les entiers, utilisez la fonction native :func:`int` de type constructeur, par " -"exemple ``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " -"flottante, par exemple ``float('144') == 144.0``." +"Pour les entiers, utilisez la fonction native :func:`int` de type " +"constructeur, par exemple ``int('144') == 144``. De façon similaire, :func:" +"`float` donne la valeur flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:857 msgid "" -"By default, these interpret the number as decimal, so that ``int('0144') == 144`` and " -"``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` takes the base to " -"convert from as a second optional argument, so ``int('0x144', 16) == 324``. If the " -"base is specified as 0, the number is interpreted using Python's rules: a leading " -"'0o' indicates octal, and '0x' indicates a hex number." +"By default, these interpret the number as decimal, so that ``int('0144') == " +"144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " +"takes the base to convert from as a second optional argument, so " +"``int('0x144', 16) == 324``. If the base is specified as 0, the number is " +"interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " +"indicates a hex number." msgstr "" -"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de telle " -"façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:`ValueError`. Le " -"second argument (optionnel) de ``int(string, base)`` est la base dans laquelle " -"convertir, donc ``int('0x144', 16) == 324``. Si la base donnée est 0, le nombre est " -"interprété selon les règles Python : un préfixe ``0o`` indique de l'octal, et ``0x`` " -"indique de l'hexadécimal." +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " +"telle façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " +"base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " +"donnée est 0, le nombre est interprété selon les règles Python : un préfixe " +"``0o`` indique de l'octal, et ``0x`` indique de l'hexadécimal." #: ../Doc/faq/programming.rst:863 msgid "" @@ -1265,21 +1336,22 @@ msgid "" "directory." msgstr "" "N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " -"caractères en nombres. :func:`eval` est beaucoup plus lent et pose des problèmes de " -"sécurité : quelqu'un pourrait vous envoyer une expression Python pouvant avoir des " -"effets de bord indésirables. Par exemple, quelqu'un pourrait passer " -"``__import__('os').system(\"rm -rf $HOME\")`` ce qui effacerait votre répertoire " -"personnel." +"caractères en nombres. :func:`eval` est beaucoup plus lent et pose des " +"problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " +"Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " +"pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " +"effacerait votre répertoire personnel." #: ../Doc/faq/programming.rst:870 msgid "" -":func:`eval` also has the effect of interpreting numbers as Python expressions, so " -"that e.g. ``eval('09')`` gives a syntax error because Python does not allow leading " -"'0' in a decimal number (except '0')." +":func:`eval` also has the effect of interpreting numbers as Python " +"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " +"does not allow leading '0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des expressions " -"Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, parce que Python ne " -"permet pas les '0' en tête d'un nombre décimal (à l'exception du nombre '0')." +":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " +"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " +"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " +"l'exception du nombre '0')." #: ../Doc/faq/programming.rst:876 msgid "How do I convert a number to a string?" @@ -1288,17 +1360,19 @@ msgstr "Comment convertir un nombre en chaîne de caractères ?" #: ../Doc/faq/programming.rst:878 msgid "" "To convert, e.g., the number 144 to the string '144', use the built-in type " -"constructor :func:`str`. If you want a hexadecimal or octal representation, use the " -"built-in functions :func:`hex` or :func:`oct`. For fancy formatting, see the :ref:`f-" -"strings` and :ref:`formatstrings` sections, e.g. ``\"{:04d}\".format(144)`` yields " -"``'0144'`` and ``\"{:.3f}\".format(1.0/3.0)`` yields ``'0.333'``." -msgstr "" -"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères '144', il " -"faut utiliser la fonction native :func:`str`. Pour obtenir la représentation " -"hexadécimale ou octale, il faut utiliser les fonctions natives :func:`hex` ou :func:" -"`oct`. Pour des représentations non-conventionnelles, se référer aux sections :ref:`f-" -"strings` et :ref:`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` " -"et ``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." +"constructor :func:`str`. If you want a hexadecimal or octal representation, " +"use the built-in functions :func:`hex` or :func:`oct`. For fancy " +"formatting, see the :ref:`f-strings` and :ref:`formatstrings` sections, e.g. " +"``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." +"format(1.0/3.0)`` yields ``'0.333'``." +msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " +"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " +"représentation hexadécimale ou octale, il faut utiliser les fonctions " +"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" +"conventionnelles, se référer aux sections :ref:`f-strings` et :ref:" +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" +"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." #: ../Doc/faq/programming.rst:887 msgid "How do I modify a string in place?" @@ -1306,20 +1380,23 @@ msgstr "Comment modifier une chaîne de caractères « sur place » ?" #: ../Doc/faq/programming.rst:889 msgid "" -"You can't, because strings are immutable. In most situations, you should simply " -"construct a new string from the various parts you want to assemble it from. However, " -"if you need an object with the ability to modify in-place unicode data, try using an :" -"class:`io.StringIO` object or the :mod:`array` module::" +"You can't, because strings are immutable. In most situations, you should " +"simply construct a new string from the various parts you want to assemble it " +"from. However, if you need an object with the ability to modify in-place " +"unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " +"module::" msgstr "" -"C'est impossible car les chaînes de caractères ne sont pas des objets muables. Dans " -"la plupart des cas, il faut tout simplement construire une nouvelle chaîne à partir " -"des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet capable de " -"modifier de la donnée unicode « sur place », essayez d'utiliser un objet :class:`io." -"StringIO` ou le module :mod:`array` ::" +"C'est impossible car les chaînes de caractères ne sont pas des objets " +"muables. Dans la plupart des cas, il faut tout simplement construire une " +"nouvelle chaîne à partir des morceaux de l'ancienne. Si toutefois vous avez " +"besoin d'un objet capable de modifier de la donnée unicode « sur place », " +"essayez d'utiliser un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:919 msgid "How do I use strings to call functions/methods?" -msgstr "Comment utiliser des chaînes de caractères pour appeler des fonctions/méthodes?" +msgstr "" +"Comment utiliser des chaînes de caractères pour appeler des fonctions/" +"méthodes?" #: ../Doc/faq/programming.rst:921 msgid "There are various techniques." @@ -1328,13 +1405,15 @@ msgstr "Il y a plusieurs façons de faire." #: ../Doc/faq/programming.rst:923 msgid "" "The best is to use a dictionary that maps strings to functions. The primary " -"advantage of this technique is that the strings do not need to match the names of the " -"functions. This is also the primary technique used to emulate a case construct::" +"advantage of this technique is that the strings do not need to match the " +"names of the functions. This is also the primary technique used to emulate " +"a case construct::" msgstr "" -"La meilleure est d'utiliser un dictionnaire qui fait correspondre les chaînes de " -"caractères à des fonctions. Le principal avantage de cette technique est que les " -"chaînes n'ont pas besoin d'être égales aux noms de fonctions. C'est aussi la façon " -"principale d'imiter la construction \"case\" ::" +"La meilleure est d'utiliser un dictionnaire qui fait correspondre les " +"chaînes de caractères à des fonctions. Le principal avantage de cette " +"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " +"fonctions. C'est aussi la façon principale d'imiter la construction \"case" +"\" ::" #: ../Doc/faq/programming.rst:938 msgid "Use the built-in function :func:`getattr`::" @@ -1342,58 +1421,64 @@ msgstr "Utiliser la fonction :func:`getattr` ::" #: ../Doc/faq/programming.rst:943 msgid "" -"Note that :func:`getattr` works on any object, including classes, class instances, " -"modules, and so on." +"Note that :func:`getattr` works on any object, including classes, class " +"instances, modules, and so on." msgstr "" -"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les classes, " -"les instances de classes, les modules et ainsi de suite." +"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " +"classes, les instances de classes, les modules et ainsi de suite." #: ../Doc/faq/programming.rst:946 msgid "This is used in several places in the standard library, like this::" msgstr "" -"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de cette façon ::" +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " +"cette façon ::" #: ../Doc/faq/programming.rst:959 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" -msgstr "Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la fonction ::" +msgstr "" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " +"fonction ::" #: ../Doc/faq/programming.rst:972 msgid "" -"Note: Using :func:`eval` is slow and dangerous. If you don't have absolute control " -"over the contents of the string, someone could pass a string that resulted in an " -"arbitrary function being executed." +"Note: Using :func:`eval` is slow and dangerous. If you don't have absolute " +"control over the contents of the string, someone could pass a string that " +"resulted in an arbitrary function being executed." msgstr "" -"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un contrôle " -"absolu sur le contenu de la chaîne de caractères, quelqu'un pourrait passer une " -"chaîne de caractères pouvant appeler n'importe quelle fonction." +"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " +"pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " +"fonction." #: ../Doc/faq/programming.rst:977 msgid "" -"Is there an equivalent to Perl's chomp() for removing trailing newlines from strings?" +"Is there an equivalent to Perl's chomp() for removing trailing newlines from " +"strings?" msgstr "" -"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer les " -"caractères de fin de ligne d'une chaîne de caractères ?" +"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " +"les caractères de fin de ligne d'une chaîne de caractères ?" #: ../Doc/faq/programming.rst:979 msgid "" -"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line terminator " -"from the end of the string ``S`` without removing other trailing whitespace. If the " -"string ``S`` represents more than one line, with several empty lines at the end, the " -"line terminators for all the blank lines will be removed::" +"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " +"terminator from the end of the string ``S`` without removing other trailing " +"whitespace. If the string ``S`` represents more than one line, with several " +"empty lines at the end, the line terminators for all the blank lines will be " +"removed::" msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les occurrences de " -"tout marqueur de fin de ligne à la fin d'une chaîne de caractère ``S``, sans en " -"enlever aucune espace. Si la chaîne ``S`` représente plus d'une ligne, avec plusieurs " -"lignes vides, les marqueurs de fin de de ligne de chaque ligne vide seront " -"retirés : ::" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " +"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " +"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " +"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " +"fin de de ligne de chaque ligne vide seront retirés : ::" #: ../Doc/faq/programming.rst:991 msgid "" -"Since this is typically only desired when reading text one line at a time, using ``S." -"rstrip()`` this way works well." +"Since this is typically only desired when reading text one line at a time, " +"using ``S.rstrip()`` this way works well." msgstr "" -"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S.rstrip()`` " -"de cette manière fonctionne correctement." +"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S." +"rstrip()`` de cette manière fonctionne correctement." #: ../Doc/faq/programming.rst:996 msgid "Is there a scanf() or sscanf() equivalent?" @@ -1405,30 +1490,34 @@ msgstr "Pas exactement." #: ../Doc/faq/programming.rst:1000 msgid "" -"For simple input parsing, the easiest approach is usually to split the line into " -"whitespace-delimited words using the :meth:`~str.split` method of string objects and " -"then convert decimal strings to numeric values using :func:`int` or :func:`float`. " -"``split()`` supports an optional \"sep\" parameter which is useful if the line uses " -"something other than whitespace as a separator." -msgstr "" -"Pour une simple analyse de chaîne, l'approche la plus simple est généralement de " -"découper la ligne en mots délimités par des espaces, en utilisant la méthode :meth:" -"`~str.split` des objets chaîne de caractères, et ensuite de convertir les chaînes de " -"décimaux en valeurs numériques en utilisant la fonction :func:`int` ou :func:`float`. " -"``split()`` possède un paramètre optionnel \"sep\" qui est utile si la ligne utilise " -"autre chose que des espaces comme séparateurs." +"For simple input parsing, the easiest approach is usually to split the line " +"into whitespace-delimited words using the :meth:`~str.split` method of " +"string objects and then convert decimal strings to numeric values using :" +"func:`int` or :func:`float`. ``split()`` supports an optional \"sep\" " +"parameter which is useful if the line uses something other than whitespace " +"as a separator." +msgstr "" +"Pour une simple analyse de chaîne, l'approche la plus simple est " +"généralement de découper la ligne en mots délimités par des espaces, en " +"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " +"ensuite de convertir les chaînes de décimaux en valeurs numériques en " +"utilisant la fonction :func:`int` ou :func:`float`. ``split()`` possède un " +"paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " +"que des espaces comme séparateurs." #: ../Doc/faq/programming.rst:1006 msgid "" -"For more complicated input parsing, regular expressions are more powerful than C's :c:" -"func:`sscanf` and better suited for the task." +"For more complicated input parsing, regular expressions are more powerful " +"than C's :c:func:`sscanf` and better suited for the task." msgstr "" -"Pour des analyses plus compliquées, les expressions régulières sont plus puissantes " -"que la fonction :c:func:`sscanf` de C et mieux adaptées à la tâche." +"Pour des analyses plus compliquées, les expressions régulières sont plus " +"puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " +"tâche." #: ../Doc/faq/programming.rst:1011 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" -msgstr "Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" +msgstr "" +"Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" #: ../Doc/faq/programming.rst:1013 msgid "See the :ref:`unicode-howto`." @@ -1444,174 +1533,188 @@ msgstr "Mon programme est trop lent. Comment l'accélérer ?" #: ../Doc/faq/programming.rst:1022 msgid "" -"That's a tough one, in general. First, here are a list of things to remember before " -"diving further:" +"That's a tough one, in general. First, here are a list of things to " +"remember before diving further:" msgstr "" -"Question difficile, en général. Avant, tout, il faut garder en tête les points " -"suivants avant d'aller plus loin :" +"Question difficile, en général. Avant, tout, il faut garder en tête les " +"points suivants avant d'aller plus loin :" #: ../Doc/faq/programming.rst:1025 msgid "" -"Performance characteristics vary across Python implementations. This FAQ focusses " -"on :term:`CPython`." +"Performance characteristics vary across Python implementations. This FAQ " +"focusses on :term:`CPython`." msgstr "" -"Les performances varient en fonction des implémentations de Python. Cette FAQ ne " -"traite que de :term:`CPython`." +"Les performances varient en fonction des implémentations de Python. Cette " +"FAQ ne traite que de :term:`CPython`." #: ../Doc/faq/programming.rst:1027 msgid "" -"Behaviour can vary across operating systems, especially when talking about I/O or " -"multi-threading." +"Behaviour can vary across operating systems, especially when talking about I/" +"O or multi-threading." msgstr "" -"Les comportements peuvent différer d'un système d'exploitation à l'autre, tout " -"particulièrement quand il s'agit d'E/S ou de fils d'exécution multiples." +"Les comportements peuvent différer d'un système d'exploitation à l'autre, " +"tout particulièrement quand il s'agit d'E/S ou de fils d'exécution multiples." #: ../Doc/faq/programming.rst:1029 msgid "" -"You should always find the hot spots in your program *before* attempting to optimize " -"any code (see the :mod:`profile` module)." +"You should always find the hot spots in your program *before* attempting to " +"optimize any code (see the :mod:`profile` module)." msgstr "" -"Il faut toujours essayer de trouver où sont les points de contention d'un programme " -"*avant* d'essayer d'optimiser du code (voir le module :mod:`profile`)." +"Il faut toujours essayer de trouver où sont les points de contention d'un " +"programme *avant* d'essayer d'optimiser du code (voir le module :mod:" +"`profile`)." #: ../Doc/faq/programming.rst:1031 msgid "" -"Writing benchmark scripts will allow you to iterate quickly when searching for " -"improvements (see the :mod:`timeit` module)." +"Writing benchmark scripts will allow you to iterate quickly when searching " +"for improvements (see the :mod:`timeit` module)." msgstr "" -"Écrire des scripts d'évaluation de performances permet de progresser rapidement dans " -"la recherche d'améliorations (voir le module :mod:`timeit`)." +"Écrire des scripts d'évaluation de performances permet de progresser " +"rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." #: ../Doc/faq/programming.rst:1033 msgid "" -"It is highly recommended to have good code coverage (through unit testing or any " -"other technique) before potentially introducing regressions hidden in sophisticated " -"optimizations." +"It is highly recommended to have good code coverage (through unit testing or " +"any other technique) before potentially introducing regressions hidden in " +"sophisticated optimizations." msgstr "" -"Il est très fortement recommandé d'avoir une bonne couverture de code (avec des tests " -"unitaires ou autre) avant d'ajouter des erreurs dans des optimisations sophistiquées." +"Il est très fortement recommandé d'avoir une bonne couverture de code (avec " +"des tests unitaires ou autre) avant d'ajouter des erreurs dans des " +"optimisations sophistiquées." #: ../Doc/faq/programming.rst:1037 msgid "" -"That being said, there are many tricks to speed up Python code. Here are some " -"general principles which go a long way towards reaching acceptable performance levels:" +"That being said, there are many tricks to speed up Python code. Here are " +"some general principles which go a long way towards reaching acceptable " +"performance levels:" msgstr "" -"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. Voici " -"quelques principes généraux qui peuvent aider à atteindre des niveaux de performance " -"satisfaisants :" +"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. " +"Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " +"de performance satisfaisants :" #: ../Doc/faq/programming.rst:1041 msgid "" -"Making your algorithms faster (or changing to faster ones) can yield much larger " -"benefits than trying to sprinkle micro-optimization tricks all over your code." +"Making your algorithms faster (or changing to faster ones) can yield much " +"larger benefits than trying to sprinkle micro-optimization tricks all over " +"your code." msgstr "" -"Améliorer les algorithmes (ou en changer pour des plus performants) peut produire de " -"bien meilleurs résultats que d'optimiser ça et là de petites portions du code." +"Améliorer les algorithmes (ou en changer pour des plus performants) peut " +"produire de bien meilleurs résultats que d'optimiser ça et là de petites " +"portions du code." #: ../Doc/faq/programming.rst:1045 msgid "" -"Use the right data structures. Study documentation for the :ref:`bltin-types` and " -"the :mod:`collections` module." +"Use the right data structures. Study documentation for the :ref:`bltin-" +"types` and the :mod:`collections` module." msgstr "" -"Utiliser les structures de données adaptées. Se référer à la documentation des :ref:" -"`bltin-types` et du module the :mod:`collections`." +"Utiliser les structures de données adaptées. Se référer à la documentation " +"des :ref:`bltin-types` et du module the :mod:`collections`." #: ../Doc/faq/programming.rst:1048 msgid "" -"When the standard library provides a primitive for doing something, it is likely " -"(although not guaranteed) to be faster than any alternative you may come up with. " -"This is doubly true for primitives written in C, such as builtins and some extension " -"types. For example, be sure to use either the :meth:`list.sort` built-in method or " -"the related :func:`sorted` function to do sorting (and see the :ref:`sortinghowto` " -"for examples of moderately advanced usage)." -msgstr "" -"Quand la bibliothèque standard fournit une implémentation pour quelque chose, il y a " -"de fortes chances (même si ce n'est pas systématique) que cette implémentation soit " -"plus rapide que la votre. C'est d'autant plus vrai pour les routines écrites en C, " -"comme les routines natives et certaines extensions de types. Par exemple, il faut " -"utiliser la méthode native :meth:`list.sort` ou la fonction :func:`sorted` similaire " -"pour trier (et se référer à la section :ref:`sortinghowto` pour des exemples " -"d'utilisation courante)." +"When the standard library provides a primitive for doing something, it is " +"likely (although not guaranteed) to be faster than any alternative you may " +"come up with. This is doubly true for primitives written in C, such as " +"builtins and some extension types. For example, be sure to use either the :" +"meth:`list.sort` built-in method or the related :func:`sorted` function to " +"do sorting (and see the :ref:`sortinghowto` for examples of moderately " +"advanced usage)." +msgstr "" +"Quand la bibliothèque standard fournit une implémentation pour quelque " +"chose, il y a de fortes chances (même si ce n'est pas systématique) que " +"cette implémentation soit plus rapide que la votre. C'est d'autant plus vrai " +"pour les routines écrites en C, comme les routines natives et certaines " +"extensions de types. Par exemple, il faut utiliser la méthode native :meth:" +"`list.sort` ou la fonction :func:`sorted` similaire pour trier (et se " +"référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " +"courante)." #: ../Doc/faq/programming.rst:1056 msgid "" -"Abstractions tend to create indirections and force the interpreter to work more. If " -"the levels of indirection outweigh the amount of useful work done, your program will " -"be slower. You should avoid excessive abstraction, especially under the form of tiny " -"functions or methods (which are also often detrimental to readability)." +"Abstractions tend to create indirections and force the interpreter to work " +"more. If the levels of indirection outweigh the amount of useful work done, " +"your program will be slower. You should avoid excessive abstraction, " +"especially under the form of tiny functions or methods (which are also often " +"detrimental to readability)." msgstr "" -"Les abstractions ont tendance à créer des indirections et oblige l'interpréteur à " -"faire plus d'efforts. Si le niveau d'indirection dépasse le quantité de travail " -"effectif, le programme sera ralentit. Il faut toujours éviter trop d'indirections, en " -"particulier sous la forme de fonctions ou méthodes trop petites (qui nuisent aussi " -"souvent à la clarté du code)." +"Les abstractions ont tendance à créer des indirections et oblige " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " +"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"éviter trop d'indirections, en particulier sous la forme de fonctions ou " +"méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." #: ../Doc/faq/programming.rst:1062 msgid "" -"If you have reached the limit of what pure Python can allow, there are tools to take " -"you further away. For example, `Cython `_ can compile a slightly " -"modified version of Python code into a C extension, and can be used on many different " -"platforms. Cython can take advantage of compilation (and optional type annotations) " -"to make your code significantly faster than when interpreted. If you are confident " -"in your C programming skills, you can also :ref:`write a C extension module " -"` yourself." -msgstr "" -"Si vous atteignez les limites de ce que du Python « pur » permet de faire, il y a des " -"outils qui permettent d'aller plus loin. Par exemple, `Cython `_ " -"peut compiler une version légèrement modifiée de code Python en une extension C, et " -"est disponible sur de nombreuses plate-formes. Cython peut bénéficier de la " -"compilation (et de l'annotation, optionnelle, des types) pour rendre votre code " -"beaucoup plus rapide que s'il était interprété. Si vous avez confiance en vos " -"capacités de programmation en C, vous pouvez aussi :ref:`écrire un module d'extension " -"en C` vous-même." +"If you have reached the limit of what pure Python can allow, there are tools " +"to take you further away. For example, `Cython `_ can " +"compile a slightly modified version of Python code into a C extension, and " +"can be used on many different platforms. Cython can take advantage of " +"compilation (and optional type annotations) to make your code significantly " +"faster than when interpreted. If you are confident in your C programming " +"skills, you can also :ref:`write a C extension module ` " +"yourself." +msgstr "" +"Si vous atteignez les limites de ce que du Python « pur » permet de faire, " +"il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " +"`_ peut compiler une version légèrement modifiée de code " +"Python en une extension C, et est disponible sur de nombreuses plate-formes. " +"Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " +"des types) pour rendre votre code beaucoup plus rapide que s'il était " +"interprété. Si vous avez confiance en vos capacités de programmation en C, " +"vous pouvez aussi :ref:`écrire un module d'extension en C` " +"vous-même." #: ../Doc/faq/programming.rst:1072 msgid "" -"The wiki page devoted to `performance tips `_." -msgstr "" -"La page wiki dédiée aux `astuces de performance `_." +msgstr "" +"La page wiki dédiée aux `astuces de performance `_." #: ../Doc/faq/programming.rst:1078 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" -"Quelle est la manière la plus efficace de concaténer un grand nombre de chaînes de " -"caractères ?" +"Quelle est la manière la plus efficace de concaténer un grand nombre de " +"chaînes de caractères ?" #: ../Doc/faq/programming.rst:1080 msgid "" -":class:`str` and :class:`bytes` objects are immutable, therefore concatenating many " -"strings together is inefficient as each concatenation creates a new object. In the " -"general case, the total runtime cost is quadratic in the total string length." +":class:`str` and :class:`bytes` objects are immutable, therefore " +"concatenating many strings together is inefficient as each concatenation " +"creates a new object. In the general case, the total runtime cost is " +"quadratic in the total string length." msgstr "" -"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent concaténer " -"un grand nombre de chaînes de caractères entre elles n'est pas très efficace car " -"chaque concaténation crée un nouvel objet. Dans le cas général, la complexité est " -"quadratique par rapport à la taille totale de la chaîne." +"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent " +"concaténer un grand nombre de chaînes de caractères entre elles n'est pas " +"très efficace car chaque concaténation crée un nouvel objet. Dans le cas " +"général, la complexité est quadratique par rapport à la taille totale de la " +"chaîne." #: ../Doc/faq/programming.rst:1085 msgid "" -"To accumulate many :class:`str` objects, the recommended idiom is to place them into " -"a list and call :meth:`str.join` at the end::" +"To accumulate many :class:`str` objects, the recommended idiom is to place " +"them into a list and call :meth:`str.join` at the end::" msgstr "" "Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " -"recommandée consiste à toutes les mettre dans une liste et appeler la méthode :meth:" -"`str.join` à la fin ::" +"recommandée consiste à toutes les mettre dans une liste et appeler la " +"méthode :meth:`str.join` à la fin ::" #: ../Doc/faq/programming.rst:1093 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" -"(une autre technique relativement efficace consiste à utiliser :class:`io.StringIO`)" +"(une autre technique relativement efficace consiste à utiliser :class:`io." +"StringIO`)" #: ../Doc/faq/programming.rst:1095 msgid "" -"To accumulate many :class:`bytes` objects, the recommended idiom is to extend a :" -"class:`bytearray` object using in-place concatenation (the ``+=`` operator)::" +"To accumulate many :class:`bytes` objects, the recommended idiom is to " +"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " +"operator)::" msgstr "" -"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique recommandée " -"consiste à étendre un objet :class:`bytearray` en utilisant la concaténation en-place " -"(l'opérateur ``+=``) ::" +"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " +"recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " +"concaténation en-place (l'opérateur ``+=``) ::" #: ../Doc/faq/programming.rst:1104 msgid "Sequences (Tuples/Lists)" @@ -1623,35 +1726,38 @@ msgstr "Comment convertir les listes en n-uplets et inversement ?" #: ../Doc/faq/programming.rst:1109 msgid "" -"The type constructor ``tuple(seq)`` converts any sequence (actually, any iterable) " -"into a tuple with the same items in the same order." +"The type constructor ``tuple(seq)`` converts any sequence (actually, any " +"iterable) into a tuple with the same items in the same order." msgstr "" -"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus précisément, " -"tout itérable) en un n-uplet avec les mêmes éléments dans le même ordre." +"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus " +"précisément, tout itérable) en un n-uplet avec les mêmes éléments dans le " +"même ordre." #: ../Doc/faq/programming.rst:1112 msgid "" -"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` yields " -"``('a', 'b', 'c')``. If the argument is a tuple, it does not make a copy but returns " -"the same object, so it is cheap to call :func:`tuple` when you aren't sure that an " -"object is already a tuple." +"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " +"yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " +"copy but returns the same object, so it is cheap to call :func:`tuple` when " +"you aren't sure that an object is already a tuple." msgstr "" -"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` renvoie " -"``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas de copie, mais " -"renvoie le même objet, ce qui fait de :func:`tuple` une fonction économique à appeler " -"quand vous ne savez pas si votre objet est déjà un n-uplet." +"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` " +"renvoie ``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas " +"de copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " +"fonction économique à appeler quand vous ne savez pas si votre objet est " +"déjà un n-uplet." #: ../Doc/faq/programming.rst:1117 msgid "" -"The type constructor ``list(seq)`` converts any sequence or iterable into a list with " -"the same items in the same order. For example, ``list((1, 2, 3))`` yields ``[1, 2, " -"3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. If the argument is a list, it " -"makes a copy just like ``seq[:]`` would." +"The type constructor ``list(seq)`` converts any sequence or iterable into a " +"list with the same items in the same order. For example, ``list((1, 2, " +"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " +"If the argument is a list, it makes a copy just like ``seq[:]`` would." msgstr "" -"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable en liste " -"contenant les mêmes éléments dans le même ordre. Par exemple, ``list((1,2,3))`` " -"renvoie ``[1,2,3]`` et ``list('abc')`` renvoie ``['a','b','c']``. Si l'argument est " -"une liste, il renvoie une copie, de la même façon que ``seq[:]``." +"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable " +"en liste contenant les mêmes éléments dans le même ordre. Par exemple, " +"``list((1,2,3))`` renvoie ``[1,2,3]`` et ``list('abc')`` renvoie " +"``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " +"même façon que ``seq[:]``." #: ../Doc/faq/programming.rst:1124 msgid "What's a negative index?" @@ -1659,26 +1765,28 @@ msgstr "Qu'est-ce qu'un index négatif ?" #: ../Doc/faq/programming.rst:1126 msgid "" -"Python sequences are indexed with positive numbers and negative numbers. For " -"positive numbers 0 is the first index 1 is the second index and so forth. For " -"negative indices -1 is the last index and -2 is the penultimate (next to last) index " -"and so forth. Think of ``seq[-n]`` as the same as ``seq[len(seq)-n]``." +"Python sequences are indexed with positive numbers and negative numbers. " +"For positive numbers 0 is the first index 1 is the second index and so " +"forth. For negative indices -1 is the last index and -2 is the penultimate " +"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " +"``seq[len(seq)-n]``." msgstr "" -"Les séquences Python sont indexées avec des nombres positifs aussi bien que négatifs. " -"Pour les nombres positifs, 0 est le premier indice, 1 est le deuxième, et ainsi de " -"suite. Pour les indices négatifs, ``-1`` est le dernier index, ``-2`` est le " -"pénultième (avant-dernier), et ainsi de suite. On peut aussi dire que ``seq[-n]`` est " -"équivalent à ``seq[len(seq)-n]``." +"Les séquences Python sont indexées avec des nombres positifs aussi bien que " +"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " +"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " +"dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " +"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." #: ../Doc/faq/programming.rst:1131 msgid "" -"Using negative indices can be very convenient. For example ``S[:-1]`` is all of the " -"string except for its last character, which is useful for removing the trailing " -"newline from a string." +"Using negative indices can be very convenient. For example ``S[:-1]`` is " +"all of the string except for its last character, which is useful for " +"removing the trailing newline from a string." msgstr "" -"Utiliser des indices négatifs peut être très pratique. Par exemple ``S[:-1]`` " -"représente la chaîne tout entière à l'exception du dernier caractère, ce qui est " -"pratique pour retirer un caractère de fin de ligne à la fin d'une chaîne." +"Utiliser des indices négatifs peut être très pratique. Par exemple " +"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " +"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " +"la fin d'une chaîne." #: ../Doc/faq/programming.rst:1137 msgid "How do I iterate over a sequence in reverse order?" @@ -1693,11 +1801,11 @@ msgstr "" #: ../Doc/faq/programming.rst:1144 msgid "" -"This won't touch your original sequence, but build a new copy with reversed order to " -"iterate over." +"This won't touch your original sequence, but build a new copy with reversed " +"order to iterate over." msgstr "" -"Cela ne modifiera pas la séquence initiale, mais construira à la place une copie en " -"ordre inverse pour itérer dessus." +"Cela ne modifiera pas la séquence initiale, mais construira à la place une " +"copie en ordre inverse pour itérer dessus." #: ../Doc/faq/programming.rst:1147 msgid "With Python 2.3, you can use an extended slice syntax::" @@ -1710,8 +1818,8 @@ msgstr "Comment retirer les doublons d'une liste ?" #: ../Doc/faq/programming.rst:1156 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" -"Lisez le « livre de recettes » Python pour trouver une longue discussion sur les " -"nombreuses approches possibles :" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " +"les nombreuses approches possibles :" #: ../Doc/faq/programming.rst:1158 msgid "https://code.activestate.com/recipes/52560/" @@ -1719,28 +1827,29 @@ msgstr "https://code.activestate.com/recipes/52560/" #: ../Doc/faq/programming.rst:1160 msgid "" -"If you don't mind reordering the list, sort it and then scan from the end of the " -"list, deleting duplicates as you go::" +"If you don't mind reordering the list, sort it and then scan from the end of " +"the list, deleting duplicates as you go::" msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier celle-ci, " -"puis parcourez-la d'un bout à l'autre, en supprimant les doublons trouvés en chemin ::" +"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " +"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " +"trouvés en chemin ::" #: ../Doc/faq/programming.rst:1172 msgid "" "If all elements of the list may be used as set keys (i.e. they are all :term:" "`hashable`) this is often faster ::" msgstr "" -"Si tous les éléments de la liste peuvent être utilisés comme des clés de dictionnaire " -"(c'est à dire, qu'elles sont toutes :term:`hachables `) ceci est souvent " -"plus rapide : ::" +"Si tous les éléments de la liste peuvent être utilisés comme des clés de " +"dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " +"`) ceci est souvent plus rapide : ::" #: ../Doc/faq/programming.rst:1177 msgid "" -"This converts the list into a set, thereby removing duplicates, and then back into a " -"list." +"This converts the list into a set, thereby removing duplicates, and then " +"back into a list." msgstr "" -"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les doublons, " -"puis la transforme à nouveau en liste." +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " +"doublons, puis la transforme à nouveau en liste." #: ../Doc/faq/programming.rst:1182 msgid "How do you make an array in Python?" @@ -1752,42 +1861,46 @@ msgstr "Utilisez une liste ::" #: ../Doc/faq/programming.rst:1188 msgid "" -"Lists are equivalent to C or Pascal arrays in their time complexity; the primary " -"difference is that a Python list can contain objects of many different types." +"Lists are equivalent to C or Pascal arrays in their time complexity; the " +"primary difference is that a Python list can contain objects of many " +"different types." msgstr "" -"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la principale " -"différence est qu'une liste Python peut contenir des objets de différents types." +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " +"principale différence est qu'une liste Python peut contenir des objets de " +"différents types." #: ../Doc/faq/programming.rst:1191 msgid "" -"The ``array`` module also provides methods for creating arrays of fixed types with " -"compact representations, but they are slower to index than lists. Also note that the " -"Numeric extensions and others define array-like structures with various " -"characteristics as well." +"The ``array`` module also provides methods for creating arrays of fixed " +"types with compact representations, but they are slower to index than " +"lists. Also note that the Numeric extensions and others define array-like " +"structures with various characteristics as well." msgstr "" -"Le module ``array`` fournit des méthodes pour créer des tableaux de types fixes dans " -"une représentation compacte, mais ils sont plus lents à indexer que les listes. Notez " -"aussi que l'extension ``Numeric`` et d'autres, fournissent différentes structures de " -"type tableaux, avec des caractéristiques différentes." +"Le module ``array`` fournit des méthodes pour créer des tableaux de types " +"fixes dans une représentation compacte, mais ils sont plus lents à indexer " +"que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " +"fournissent différentes structures de type tableaux, avec des " +"caractéristiques différentes." #: ../Doc/faq/programming.rst:1196 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les *cons cells* " -"en utilisant des n-uplets ::" +"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " +"*cons cells* en utilisant des n-uplets ::" #: ../Doc/faq/programming.rst:1200 msgid "" -"If mutability is desired, you could use lists instead of tuples. Here the analogue " -"of lisp car is ``lisp_list[0]`` and the analogue of cdr is ``lisp_list[1]``. Only do " -"this if you're sure you really need to, because it's usually a lot slower than using " -"Python lists." +"If mutability is desired, you could use lists instead of tuples. Here the " +"analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " +"``lisp_list[1]``. Only do this if you're sure you really need to, because " +"it's usually a lot slower than using Python lists." msgstr "" -"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt qu'un tuple. " -"Ici la version équivalente du *car* de Lisp est ``lisp_list[0]`` et l'équivalent de " -"*cdr* est ``list_lip[1]``. Ne faites ceci que si vous êtes réellement sûr d'en avoir " -"besoin, cette méthode est en général bien plus lente que les listes Python." +"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " +"qu'un tuple. Ici la version équivalente du *car* de Lisp est " +"``lisp_list[0]`` et l'équivalent de *cdr* est ``list_lip[1]``. Ne faites " +"ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " +"général bien plus lente que les listes Python." #: ../Doc/faq/programming.rst:1209 msgid "How do I create a multidimensional list?" @@ -1796,8 +1909,8 @@ msgstr "Comment créer une liste à plusieurs dimensions ?" #: ../Doc/faq/programming.rst:1211 msgid "You probably tried to make a multidimensional array like this::" msgstr "" -"Vous avez probablement essayé de créer une liste à plusieurs dimensions de cette " -"façon ::" +"Vous avez probablement essayé de créer une liste à plusieurs dimensions de " +"cette façon ::" #: ../Doc/faq/programming.rst:1215 msgid "This looks correct if you print it:" @@ -1805,44 +1918,47 @@ msgstr "Elle semble correcte si on l'affiche :" #: ../Doc/faq/programming.rst:1226 msgid "But when you assign a value, it shows up in multiple places:" -msgstr "Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs endroits ::" +msgstr "" +"Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " +"endroits ::" #: ../Doc/faq/programming.rst:1238 msgid "" -"The reason is that replicating a list with ``*`` doesn't create copies, it only " -"creates references to the existing objects. The ``*3`` creates a list containing 3 " -"references to the same list of length two. Changes to one row will show in all rows, " -"which is almost certainly not what you want." +"The reason is that replicating a list with ``*`` doesn't create copies, it " +"only creates references to the existing objects. The ``*3`` creates a list " +"containing 3 references to the same list of length two. Changes to one row " +"will show in all rows, which is almost certainly not what you want." msgstr "" "Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copies mais " -"seulement des références aux objets existants. Le ``*3`` crée une liste contenant " -"trois références à la même liste de longueur deux. Un changement dans une colonne " -"apparaîtra donc dans toutes les colonnes, ce qui n'est très probablement pas ce que " -"vous souhaitiez." +"seulement des références aux objets existants. Le ``*3`` crée une liste " +"contenant trois références à la même liste de longueur deux. Un changement " +"dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " +"probablement pas ce que vous souhaitiez." #: ../Doc/faq/programming.rst:1243 msgid "" -"The suggested approach is to create a list of the desired length first and then fill " -"in each element with a newly created list::" +"The suggested approach is to create a list of the desired length first and " +"then fill in each element with a newly created list::" msgstr "" -"L'approche suggérée est d'abord de créer une liste de la longueur désiré, puis de " -"remplir tous les éléments avec une nouvelle chaîne ::" +"L'approche suggérée est d'abord de créer une liste de la longueur désiré, " +"puis de remplir tous les éléments avec une nouvelle chaîne ::" #: ../Doc/faq/programming.rst:1250 msgid "" -"This generates a list containing 3 different lists of length two. You can also use a " -"list comprehension::" +"This generates a list containing 3 different lists of length two. You can " +"also use a list comprehension::" msgstr "" -"Cela génère une liste contenant elle-même trois listes distinctes, de longueur deux. " -"Vous pouvez aussi utiliser la syntaxe des listes en compréhension ::" +"Cela génère une liste contenant elle-même trois listes distinctes, de " +"longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " +"compréhension ::" #: ../Doc/faq/programming.rst:1256 msgid "" -"Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." +"Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." msgstr "" -"Vous pouvez aussi utiliser une extension qui fournit un type matriciel natif ; `NumPy " -"`_ est la plus répandue." +"Vous pouvez aussi utiliser une extension qui fournit un type matriciel " +"natif ; `NumPy `_ est la plus répandue." #: ../Doc/faq/programming.rst:1261 msgid "How do I apply a method to a sequence of objects?" @@ -1856,28 +1972,28 @@ msgstr "Utilisez une liste en compréhension ::" msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" -"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que l'addition " -"fonctionne ?" +"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que " +"l'addition fonctionne ?" #: ../Doc/faq/programming.rst:1272 msgid "" -"This is because of a combination of the fact that augmented assignment operators are " -"*assignment* operators, and the difference between mutable and immutable objects in " -"Python." +"This is because of a combination of the fact that augmented assignment " +"operators are *assignment* operators, and the difference between mutable and " +"immutable objects in Python." msgstr "" "Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " -"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la différence " -"entre les objets muables et immuables en Python." +"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " +"différence entre les objets muables et immuables en Python." #: ../Doc/faq/programming.rst:1276 msgid "" -"This discussion applies in general when augmented assignment operators are applied to " -"elements of a tuple that point to mutable objects, but we'll use a ``list`` and ``" -"+=`` as our exemplar." +"This discussion applies in general when augmented assignment operators are " +"applied to elements of a tuple that point to mutable objects, but we'll use " +"a ``list`` and ``+=`` as our exemplar." msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des objets " -"muables, mais on prendra ``list`` et ``+=`` comme exemple." +"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"objets muables, mais on prendra ``list`` et ``+=`` comme exemple." #: ../Doc/faq/programming.rst:1280 msgid "If you wrote::" @@ -1885,31 +2001,33 @@ msgstr "Si vous écrivez : ::" #: ../Doc/faq/programming.rst:1288 msgid "" -"The reason for the exception should be immediately clear: ``1`` is added to the " -"object ``a_tuple[0]`` points to (``1``), producing the result object, ``2``, but when " -"we attempt to assign the result of the computation, ``2``, to element ``0`` of the " -"tuple, we get an error because we can't change what an element of a tuple points to." +"The reason for the exception should be immediately clear: ``1`` is added to " +"the object ``a_tuple[0]`` points to (``1``), producing the result object, " +"``2``, but when we attempt to assign the result of the computation, ``2``, " +"to element ``0`` of the tuple, we get an error because we can't change what " +"an element of a tuple points to." msgstr "" -"La cause de l'exception est claire : ``1`` est ajouté à l'objet ``a_tuple[0]`` qui " -"pointe sur (``1``), ce qui produit l'objet résultant ``2``, mais, lorsque l'on tente " -"d'affecter le résultat du calcul, ``2``, à l'élément ``0`` du n-uplet, on obtient une " -"erreur car il est impossible de modifier la cible sur lequel pointe un élément d'un n-" -"uplet." +"La cause de l'exception est claire : ``1`` est ajouté à l'objet " +"``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " +"``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " +"l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " +"modifier la cible sur lequel pointe un élément d'un n-uplet." #: ../Doc/faq/programming.rst:1294 msgid "" -"Under the covers, what this augmented assignment statement is doing is approximately " -"this::" +"Under the covers, what this augmented assignment statement is doing is " +"approximately this::" msgstr "" -"Sous le capot, une instruction d'affectation incrémentale fait à peu près ceci :" +"Sous le capot, une instruction d'affectation incrémentale fait à peu près " +"ceci :" #: ../Doc/faq/programming.rst:1303 msgid "" -"It is the assignment part of the operation that produces the error, since a tuple is " -"immutable." +"It is the assignment part of the operation that produces the error, since a " +"tuple is immutable." msgstr "" -"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu qu'un n-uplet " -"est immuable." +"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " +"qu'un n-uplet est immuable." #: ../Doc/faq/programming.rst:1306 msgid "When you write something like::" @@ -1917,27 +2035,28 @@ msgstr "Quand vous écrivez un code du style :" #: ../Doc/faq/programming.rst:1314 msgid "" -"The exception is a bit more surprising, and even more surprising is the fact that " -"even though there was an error, the append worked::" +"The exception is a bit more surprising, and even more surprising is the fact " +"that even though there was an error, the append worked::" msgstr "" -"L'exception est un peu plus surprenante, et ce qui est encore plus étrange est que, " -"malgré l'erreur, l'ajout a fonctionné ::" +"L'exception est un peu plus surprenante, et ce qui est encore plus étrange " +"est que, malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1320 msgid "" -"To see why this happens, you need to know that (a) if an object implements an " -"``__iadd__`` magic method, it gets called when the ``+=`` augmented assignment is " -"executed, and its return value is what gets used in the assignment statement; and (b) " -"for lists, ``__iadd__`` is equivalent to calling ``extend`` on the list and returning " -"the list. That's why we say that for lists, ``+=`` is a \"shorthand\" for ``list." -"extend``::" -msgstr "" -"Pour comprendre ce qui se passe, il faut savoir que (a) si un objet implémente la " -"méthode magique c, celle-ci est appelée quand l'affectation incrémentale ``+=`` est " -"exécutée et sa valeur de retour est utilisée dans l'instruction d'affectation ; et " -"que (b) pour les listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " -"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, ``+=`` " -"est un \"raccourci\" pour ``list.extend``::" +"To see why this happens, you need to know that (a) if an object implements " +"an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " +"assignment is executed, and its return value is what gets used in the " +"assignment statement; and (b) for lists, ``__iadd__`` is equivalent to " +"calling ``extend`` on the list and returning the list. That's why we say " +"that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" +msgstr "" +"Pour comprendre ce qui se passe, il faut savoir que (a) si un objet " +"implémente la méthode magique c, celle-ci est appelée quand l'affectation " +"incrémentale ``+=`` est exécutée et sa valeur de retour est utilisée dans " +"l'instruction d'affectation ; et que (b) pour les listes, ``__iadd__`` " +"équivaut à appeler ``extend`` sur la liste et à renvoyer celle-ci. C'est " +"pour cette raison que l'on dit que pour les listes, ``+=`` est un \"raccourci" +"\" pour ``list.extend``::" #: ../Doc/faq/programming.rst:1332 msgid "This is equivalent to::" @@ -1945,49 +2064,52 @@ msgstr "C’est équivalent à ::" #: ../Doc/faq/programming.rst:1337 msgid "" -"The object pointed to by a_list has been mutated, and the pointer to the mutated " -"object is assigned back to ``a_list``. The end result of the assignment is a no-op, " -"since it is a pointer to the same object that ``a_list`` was previously pointing to, " -"but the assignment still happens." +"The object pointed to by a_list has been mutated, and the pointer to the " +"mutated object is assigned back to ``a_list``. The end result of the " +"assignment is a no-op, since it is a pointer to the same object that " +"``a_list`` was previously pointing to, but the assignment still happens." msgstr "" -"L'objet sur lequel pointe a_list a été modifié, et le pointeur vers l'objet modifié " -"est réaffecté à ``a_list``. In fine, l'affectation ne change rien, puisque c'est un " -"pointeur vers le même objet que sur lequel pointait ``a_list``, mais l'affectation a " -"tout de même lieu." +"L'objet sur lequel pointe a_list a été modifié, et le pointeur vers l'objet " +"modifié est réaffecté à ``a_list``. In fine, l'affectation ne change rien, " +"puisque c'est un pointeur vers le même objet que sur lequel pointait " +"``a_list``, mais l'affectation a tout de même lieu." #: ../Doc/faq/programming.rst:1342 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" -"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose équivalent à ::" +"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " +"équivalent à ::" #: ../Doc/faq/programming.rst:1350 msgid "" -"The ``__iadd__`` succeeds, and thus the list is extended, but even though ``result`` " -"points to the same object that ``a_tuple[0]`` already points to, that final " -"assignment still results in an error, because tuples are immutable." +"The ``__iadd__`` succeeds, and thus the list is extended, but even though " +"``result`` points to the same object that ``a_tuple[0]`` already points to, " +"that final assignment still results in an error, because tuples are " +"immutable." msgstr "" -"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que ``result`` " -"pointe sur le même objet que ``a_tuple[0]``, l'affectation finale échoue car les n-" -"uplets ne sont pas muables." +"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que " +"``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " +"échoue car les n-uplets ne sont pas muables." #: ../Doc/faq/programming.rst:1356 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un tri compliqué : peut on faire une transformation de Schwartz en " -"Python ?" +"Je souhaite faire un tri compliqué : peut on faire une transformation de " +"Schwartz en Python ?" #: ../Doc/faq/programming.rst:1358 msgid "" -"The technique, attributed to Randal Schwartz of the Perl community, sorts the " -"elements of a list by a metric which maps each element to its \"sort value\". In " -"Python, use the ``key`` argument for the :meth:`list.sort` method::" +"The technique, attributed to Randal Schwartz of the Perl community, sorts " +"the elements of a list by a metric which maps each element to its \"sort " +"value\". In Python, use the ``key`` argument for the :meth:`list.sort` " +"method::" msgstr "" -"Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les éléments " -"d'une liste par une transformation qui fait correspondre chaque élément à sa \"valeur " -"de tri\". En Python, ceci est géré par l'argument ``key`` de la méthode :meth:`list." -"sort` ::" +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les " +"éléments d'une liste par une transformation qui fait correspondre chaque " +"élément à sa \"valeur de tri\". En Python, ceci est géré par l'argument " +"``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1367 msgid "How can I sort one list by values from another list?" @@ -1995,11 +2117,11 @@ msgstr "Comment trier une liste en fonction des valeurs d'une autre liste ?" #: ../Doc/faq/programming.rst:1369 msgid "" -"Merge them into an iterator of tuples, sort the resulting list, and then pick out the " -"element you want. ::" +"Merge them into an iterator of tuples, sort the resulting list, and then " +"pick out the element you want. ::" msgstr "" -"Fusionnez-les dans un itérateur de n-uplets, triez la liste obtenue, puis choisissez " -"l'élément que vous voulez ::" +"Fusionnez-les dans un itérateur de n-uplets, triez la liste obtenue, puis " +"choisissez l'élément que vous voulez ::" #: ../Doc/faq/programming.rst:1383 msgid "An alternative for the last step is::" @@ -2007,21 +2129,23 @@ msgstr "Vous pouvez remplacer la dernière étape par : ::" #: ../Doc/faq/programming.rst:1388 msgid "" -"If you find this more legible, you might prefer to use this instead of the final list " -"comprehension. However, it is almost twice as slow for long lists. Why? First, the " -"``append()`` operation has to reallocate memory, and while it uses some tricks to " -"avoid doing that each time, it still has to do it occasionally, and that costs quite " -"a bit. Second, the expression \"result.append\" requires an extra attribute lookup, " -"and third, there's a speed reduction from having to make all those function calls." -msgstr "" -"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt qu'une " -"liste en compréhension. Toutefois, ce code est presque deux fois plus lent pour une " -"liste de grande taille. Pourquoi ? Tout d'abord, parce que ``append()`` doit ré-" -"allouer de la mémoire, et, même si elle utilise quelques astuces pour éviter " -"d'effectuer la ré-allocation à chaque appel, elle doit tout de même le faire de temps " -"en temps, ce qui coûte assez cher. Deuxièmement, parce que l'expression ``result." -"append`` fait un accès supplémentaire à un attribut, et enfin, parce que tous ces " -"appels de fonctions réduisent la vitesse d'exécution." +"If you find this more legible, you might prefer to use this instead of the " +"final list comprehension. However, it is almost twice as slow for long " +"lists. Why? First, the ``append()`` operation has to reallocate memory, and " +"while it uses some tricks to avoid doing that each time, it still has to do " +"it occasionally, and that costs quite a bit. Second, the expression " +"\"result.append\" requires an extra attribute lookup, and third, there's a " +"speed reduction from having to make all those function calls." +msgstr "" +"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " +"qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " +"lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " +"``append()`` doit ré-allouer de la mémoire, et, même si elle utilise " +"quelques astuces pour éviter d'effectuer la ré-allocation à chaque appel, " +"elle doit tout de même le faire de temps en temps, ce qui coûte assez cher. " +"Deuxièmement, parce que l'expression ``result.append`` fait un accès " +"supplémentaire à un attribut, et enfin, parce que tous ces appels de " +"fonctions réduisent la vitesse d'exécution." #: ../Doc/faq/programming.rst:1398 msgid "Objects" @@ -2033,31 +2157,33 @@ msgstr "Qu'est-ce qu'une classe?" #: ../Doc/faq/programming.rst:1403 msgid "" -"A class is the particular object type created by executing a class statement. Class " -"objects are used as templates to create instance objects, which embody both the data " -"(attributes) and code (methods) specific to a datatype." +"A class is the particular object type created by executing a class " +"statement. Class objects are used as templates to create instance objects, " +"which embody both the data (attributes) and code (methods) specific to a " +"datatype." msgstr "" -"Une classe est le type d'objet particulier créé par l'exécution d'une déclaration de " -"classe. Les objets de classe sont utilisés comme modèles pour créer des objets, qui " -"incarnent à la fois les données (attributs) et le code (méthodes) spécifiques à un " -"type de données." +"Une classe est le type d'objet particulier créé par l'exécution d'une " +"déclaration de classe. Les objets de classe sont utilisés comme modèles pour " +"créer des objets, qui incarnent à la fois les données (attributs) et le code " +"(méthodes) spécifiques à un type de données." #: ../Doc/faq/programming.rst:1407 msgid "" -"A class can be based on one or more other classes, called its base class(es). It then " -"inherits the attributes and methods of its base classes. This allows an object model " -"to be successively refined by inheritance. You might have a generic ``Mailbox`` " -"class that provides basic accessor methods for a mailbox, and subclasses such as " -"``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` that handle various specific " -"mailbox formats." -msgstr "" -"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa (ou ses) " -"classe(s) de base. Elle hérite alors des attributs et des méthodes de ses classes de " -"base. Cela permet à un modèle d'objet d'être successivement raffiné par héritage. " -"Vous pourriez avoir une classe générique ``Mailbox`` qui fournit des méthodes d'accès " -"de base pour une boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " -"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats spécifiques " -"de boîtes aux lettres." +"A class can be based on one or more other classes, called its base " +"class(es). It then inherits the attributes and methods of its base classes. " +"This allows an object model to be successively refined by inheritance. You " +"might have a generic ``Mailbox`` class that provides basic accessor methods " +"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " +"``OutlookMailbox`` that handle various specific mailbox formats." +msgstr "" +"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " +"(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " +"de ses classes de base. Cela permet à un modèle d'objet d'être " +"successivement raffiné par héritage. Vous pourriez avoir une classe " +"générique ``Mailbox`` qui fournit des méthodes d'accès de base pour une " +"boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " +"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " +"spécifiques de boîtes aux lettres." #: ../Doc/faq/programming.rst:1416 msgid "What is a method?" @@ -2066,11 +2192,12 @@ msgstr "Qu'est-ce qu'une méthode ?" #: ../Doc/faq/programming.rst:1418 msgid "" "A method is a function on some object ``x`` that you normally call as ``x." -"name(arguments...)``. Methods are defined as functions inside the class definition::" +"name(arguments...)``. Methods are defined as functions inside the class " +"definition::" msgstr "" -"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière générale " -"sous la forme ``x.name(arguments…)``. Les méthodes sont définies comme des fonctions " -"à l'intérieur de la définition de classe ::" +"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière " +"générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " +"comme des fonctions à l'intérieur de la définition de classe ::" #: ../Doc/faq/programming.rst:1428 msgid "What is self?" @@ -2078,15 +2205,16 @@ msgstr "Qu'est-ce que self ?" #: ../Doc/faq/programming.rst:1430 msgid "" -"Self is merely a conventional name for the first argument of a method. A method " -"defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, c)`` for some " -"instance ``x`` of the class in which the definition occurs; the called method will " -"think it is called as ``meth(x, a, b, c)``." +"Self is merely a conventional name for the first argument of a method. A " +"method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " +"c)`` for some instance ``x`` of the class in which the definition occurs; " +"the called method will think it is called as ``meth(x, a, b, c)``." msgstr "" -"Par convention, le premier argument d'une méthode est appelé self. Une méthode " -"``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, b, c)`` où ``x`` " -"est une instance de la classe dans laquelle cette méthode est définie ; tout se passe " -"comme si la méthode était appelée comme ``meth(x, a, b, c)``." +"Par convention, le premier argument d'une méthode est appelé self. Une " +"méthode ``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, " +"b, c)`` où ``x`` est une instance de la classe dans laquelle cette méthode " +"est définie ; tout se passe comme si la méthode était appelée comme " +"``meth(x, a, b, c)``." #: ../Doc/faq/programming.rst:1435 msgid "See also :ref:`why-self`." @@ -2094,47 +2222,50 @@ msgstr "Voir aussi :ref:`why-self`." #: ../Doc/faq/programming.rst:1439 msgid "" -"How do I check if an object is an instance of a given class or of a subclass of it?" +"How do I check if an object is an instance of a given class or of a subclass " +"of it?" msgstr "" -"Comment vérifier si un objet est une instance d'une classe donnée ou d'une sous-" -"classe de celle-ci ?" +"Comment vérifier si un objet est une instance d'une classe donnée ou d'une " +"sous-classe de celle-ci ?" #: ../Doc/faq/programming.rst:1441 msgid "" -"Use the built-in function ``isinstance(obj, cls)``. You can check if an object is an " -"instance of any of a number of classes by providing a tuple instead of a single " -"class, e.g. ``isinstance(obj, (class1, class2, ...))``, and can also check whether an " -"object is one of Python's built-in types, e.g. ``isinstance(obj, str)`` or " +"Use the built-in function ``isinstance(obj, cls)``. You can check if an " +"object is an instance of any of a number of classes by providing a tuple " +"instead of a single class, e.g. ``isinstance(obj, (class1, class2, ...))``, " +"and can also check whether an object is one of Python's built-in types, e.g. " +"``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." +msgstr "" +"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier " +"qu'un objet est une instance de plusieurs classes à la fois en fournissant " +"un n-uplet à la place d'une seule classe, par exemple, ``isinstance(obj, " +"(class1, class2, ...))``. Vous pouvez également vérifier qu'un objet est " +"l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " "``isinstance(obj, (int, float, complex))``." -msgstr "" -"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier qu'un " -"objet est une instance de plusieurs classes à la fois en fournissant un n-uplet à la " -"place d'une seule classe, par exemple, ``isinstance(obj, (class1, class2, ...))``. " -"Vous pouvez également vérifier qu'un objet est l'un des types natifs de Python, par " -"exemple ``isinstance(obj, str)`` ou ``isinstance(obj, (int, float, complex))``." #: ../Doc/faq/programming.rst:1447 msgid "" -"Note that most programs do not use :func:`isinstance` on user-defined classes very " -"often. If you are developing the classes yourself, a more proper object-oriented " -"style is to define methods on the classes that encapsulate a particular behaviour, " -"instead of checking the object's class and doing a different thing based on what " -"class it is. For example, if you have a function that does something::" +"Note that most programs do not use :func:`isinstance` on user-defined " +"classes very often. If you are developing the classes yourself, a more " +"proper object-oriented style is to define methods on the classes that " +"encapsulate a particular behaviour, instead of checking the object's class " +"and doing a different thing based on what class it is. For example, if you " +"have a function that does something::" msgstr "" -"Notez que la plupart des programmes n'utilisent que rarement pas :func:`isInstance` " -"sur les classes définies par l'utilisateur. Si vous développez vous-même les classes, " -"une approche plus orientée-objet consiste définir des méthodes sur les classes qui " -"encapsulent un comportement particulier, plutôt que de vérifier la classe de l'objet " -"et de faire un traitement ad-hoc. Par exemple, si vous avez une fonction qui fait " -"quelque chose : ::" +"Notez que la plupart des programmes n'utilisent que rarement pas :func:" +"`isInstance` sur les classes définies par l'utilisateur. Si vous développez " +"vous-même les classes, une approche plus orientée-objet consiste définir des " +"méthodes sur les classes qui encapsulent un comportement particulier, plutôt " +"que de vérifier la classe de l'objet et de faire un traitement ad-hoc. Par " +"exemple, si vous avez une fonction qui fait quelque chose : ::" #: ../Doc/faq/programming.rst:1461 msgid "" -"A better approach is to define a ``search()`` method on all the classes and just call " -"it::" +"A better approach is to define a ``search()`` method on all the classes and " +"just call it::" msgstr "" -"Une meilleure approche est de définir une méthode ``search()`` dans toutes les " -"classes et qu'il suffit d'appeler de la manière suivante ::" +"Une meilleure approche est de définir une méthode ``search()`` dans toutes " +"les classes et qu'il suffit d'appeler de la manière suivante ::" #: ../Doc/faq/programming.rst:1476 msgid "What is delegation?" @@ -2142,70 +2273,75 @@ msgstr "Qu'est-ce que la délégation ?" #: ../Doc/faq/programming.rst:1478 msgid "" -"Delegation is an object oriented technique (also called a design pattern). Let's say " -"you have an object ``x`` and want to change the behaviour of just one of its " -"methods. You can create a new class that provides a new implementation of the method " -"you're interested in changing and delegates all other methods to the corresponding " -"method of ``x``." +"Delegation is an object oriented technique (also called a design pattern). " +"Let's say you have an object ``x`` and want to change the behaviour of just " +"one of its methods. You can create a new class that provides a new " +"implementation of the method you're interested in changing and delegates all " +"other methods to the corresponding method of ``x``." msgstr "" "La délégation est une technique orientée objet (aussi appelé un patron de " -"conception). Prenons un objet ``x`` dont on souhaite modifier le comportement d'une " -"seule de ses méthodes. On peut créer une nouvelle classe qui fournit une nouvelle " -"implémentation de la méthode qui nous intéresse dans l'évolution et les délégués de " -"toutes les autres méthodes la méthode correspondante de ``x``." +"conception). Prenons un objet ``x`` dont on souhaite modifier le " +"comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " +"qui fournit une nouvelle implémentation de la méthode qui nous intéresse " +"dans l'évolution et les délégués de toutes les autres méthodes la méthode " +"correspondante de ``x``." #: ../Doc/faq/programming.rst:1484 msgid "" -"Python programmers can easily implement delegation. For example, the following class " -"implements a class that behaves like a file but converts all written data to " -"uppercase::" +"Python programmers can easily implement delegation. For example, the " +"following class implements a class that behaves like a file but converts all " +"written data to uppercase::" msgstr "" -"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. Par " -"exemple, la classe suivante implémente une classe qui se comporte comme un fichier, " -"mais convertit toutes les données écrites en majuscules ::" +"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " +"Par exemple, la classe suivante implémente une classe qui se comporte comme " +"un fichier, mais convertit toutes les données écrites en majuscules ::" #: ../Doc/faq/programming.rst:1499 msgid "" -"Here the ``UpperOut`` class redefines the ``write()`` method to convert the argument " -"string to uppercase before calling the underlying ``self.__outfile.write()`` method. " -"All other methods are delegated to the underlying ``self.__outfile`` object. The " -"delegation is accomplished via the ``__getattr__`` method; consult :ref:`the language " -"reference ` for more information about controlling attribute access." +"Here the ``UpperOut`` class redefines the ``write()`` method to convert the " +"argument string to uppercase before calling the underlying ``self.__outfile." +"write()`` method. All other methods are delegated to the underlying ``self." +"__outfile`` object. The delegation is accomplished via the ``__getattr__`` " +"method; consult :ref:`the language reference ` for more " +"information about controlling attribute access." msgstr "" -"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir la " -"chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes ``self." -"__outfile.write()``. Toutes les autres méthodes sont déléguées à l'objet sous-jacent " -"``self.__outfile``. La délégation se fait par la méthode ``__getattr__``, consulter :" -"ref:`the language reference ` pour plus d'informations sur le " -"contrôle d'accès d'attribut." +"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " +"la chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes " +"``self.__outfile.write()``. Toutes les autres méthodes sont déléguées à " +"l'objet sous-jacent ``self.__outfile``. La délégation se fait par la méthode " +"``__getattr__``, consulter :ref:`the language reference ` " +"pour plus d'informations sur le contrôle d'accès d'attribut." #: ../Doc/faq/programming.rst:1506 msgid "" -"Note that for more general cases delegation can get trickier. When attributes must be " -"set as well as retrieved, the class must define a :meth:`__setattr__` method too, and " -"it must do so carefully. The basic implementation of :meth:`__setattr__` is roughly " -"equivalent to the following::" +"Note that for more general cases delegation can get trickier. When " +"attributes must be set as well as retrieved, the class must define a :meth:" +"`__setattr__` method too, and it must do so carefully. The basic " +"implementation of :meth:`__setattr__` is roughly equivalent to the " +"following::" msgstr "" -"Notez que pour une utilisation plus générale de la délégation, les choses peuvent se " -"compliquer. Lorsque les attributs doivent être définis aussi bien que récupérés, la " -"classe doit définir une méthode :meth:`__setattr__` aussi, et il doit le faire avec " -"soin. La mise en œuvre basique de la méthode :meth:`__setattr__` est à peu près " -"équivalent à ce qui suit ::" +"Notez que pour une utilisation plus générale de la délégation, les choses " +"peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " +"que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " +"et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" +"`__setattr__` est à peu près équivalent à ce qui suit ::" #: ../Doc/faq/programming.rst:1517 msgid "" -"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to store local " -"state for self without causing an infinite recursion." +"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " +"store local state for self without causing an infinite recursion." msgstr "" -"La plupart des implémentations de :meth:`__setattr__` doivent modifier ``self." -"__dict__`` pour stocker l'état locale de self sans provoquer une récursion infinie." +"La plupart des implémentations de :meth:`__setattr__` doivent modifier " +"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " +"récursion infinie." #: ../Doc/faq/programming.rst:1522 msgid "" -"How do I call a method defined in a base class from a derived class that overrides it?" +"How do I call a method defined in a base class from a derived class that " +"overrides it?" msgstr "" -"Comment appeler une méthode définie dans une classe de base depuis une classe dérivée " -"qui la surcharge ?" +"Comment appeler une méthode définie dans une classe de base depuis une " +"classe dérivée qui la surcharge ?" #: ../Doc/faq/programming.rst:1524 msgid "Use the built-in :func:`super` function::" @@ -2213,17 +2349,18 @@ msgstr "Utilisez la fonction native :func:`super` : ::" #: ../Doc/faq/programming.rst:1530 msgid "" -"For version prior to 3.0, you may be using classic classes: For a class definition " -"such as ``class Derived(Base): ...`` you can call method ``meth()`` defined in " -"``Base`` (or one of ``Base``'s base classes) as ``Base.meth(self, arguments...)``. " -"Here, ``Base.meth`` is an unbound method, so you need to provide the ``self`` " -"argument." +"For version prior to 3.0, you may be using classic classes: For a class " +"definition such as ``class Derived(Base): ...`` you can call method " +"``meth()`` defined in ``Base`` (or one of ``Base``'s base classes) as ``Base." +"meth(self, arguments...)``. Here, ``Base.meth`` is an unbound method, so " +"you need to provide the ``self`` argument." msgstr "" -"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes classiques : " -"pour une définition de classe comme ``class Derived(Base): ...`` vous pouvez appeler " -"la méthode ``meth()`` définie dans ``Base`` (ou l'une des classes de base de " -"``Base``) en faisant ``Base.meth(self, arguments...)``. Ici, ``Base.meth`` est une " -"méthode non liée, il faut donc fournir l'argument ``self``." +"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes " +"classiques : pour une définition de classe comme ``class Derived(Base): ..." +"`` vous pouvez appeler la méthode ``meth()`` définie dans ``Base`` (ou l'une " +"des classes de base de ``Base``) en faisant ``Base.meth(self, " +"arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " +"fournir l'argument ``self``." #: ../Doc/faq/programming.rst:1538 msgid "How can I organize my code to make it easier to change the base class?" @@ -2233,61 +2370,66 @@ msgstr "" #: ../Doc/faq/programming.rst:1540 msgid "" -"You could define an alias for the base class, assign the real base class to it before " -"your class definition, and use the alias throughout your class. Then all you have to " -"change is the value assigned to the alias. Incidentally, this trick is also handy if " -"you want to decide dynamically (e.g. depending on availability of resources) which " -"base class to use. Example::" +"You could define an alias for the base class, assign the real base class to " +"it before your class definition, and use the alias throughout your class. " +"Then all you have to change is the value assigned to the alias. " +"Incidentally, this trick is also handy if you want to decide dynamically (e." +"g. depending on availability of resources) which base class to use. " +"Example::" msgstr "" -"Vous pouvez définir un alias pour la classe de base, lui attribuer la classe de base " -"réelle avant la définition de classe, et utiliser l'alias au long de votre classe. " -"Ensuite, tout ce que vous devez changer est la valeur attribuée à l'alias. " -"Accessoirement, cette astuce est également utile si vous voulez déterminer " -"dynamiquement (par exemple en fonction de la disponibilité des ressources) la classe " -"de base à utiliser. Exemple ::" +"Vous pouvez définir un alias pour la classe de base, lui attribuer la classe " +"de base réelle avant la définition de classe, et utiliser l'alias au long de " +"votre classe. Ensuite, tout ce que vous devez changer est la valeur " +"attribuée à l'alias. Accessoirement, cette astuce est également utile si " +"vous voulez déterminer dynamiquement (par exemple en fonction de la " +"disponibilité des ressources) la classe de base à utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1555 msgid "How do I create static class data and static class methods?" msgstr "" -"Comment créer des données statiques de classe et des méthodes statiques de classe ?" +"Comment créer des données statiques de classe et des méthodes statiques de " +"classe ?" #: ../Doc/faq/programming.rst:1557 msgid "" -"Both static data and static methods (in the sense of C++ or Java) are supported in " -"Python." +"Both static data and static methods (in the sense of C++ or Java) are " +"supported in Python." msgstr "" -"Les données statiques et les méthodes statiques (au sens C + + ou Java) sont prises " -"en charge en Python." +"Les données statiques et les méthodes statiques (au sens C + + ou Java) sont " +"prises en charge en Python." #: ../Doc/faq/programming.rst:1560 msgid "" -"For static data, simply define a class attribute. To assign a new value to the " -"attribute, you have to explicitly use the class name in the assignment::" +"For static data, simply define a class attribute. To assign a new value to " +"the attribute, you have to explicitly use the class name in the assignment::" msgstr "" "Pour les données statiques, il suffit de définir un attribut de classe. Pour " -"attribuer une nouvelle valeur à l'attribut, vous devez explicitement utiliser le nom " -"de classe dans l'affectation ::" +"attribuer une nouvelle valeur à l'attribut, vous devez explicitement " +"utiliser le nom de classe dans l'affectation ::" #: ../Doc/faq/programming.rst:1572 msgid "" -"``c.count`` also refers to ``C.count`` for any ``c`` such that ``isinstance(c, C)`` " -"holds, unless overridden by ``c`` itself or by some class on the base-class search " -"path from ``c.__class__`` back to ``C``." +"``c.count`` also refers to ``C.count`` for any ``c`` such that " +"``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " +"class on the base-class search path from ``c.__class__`` back to ``C``." msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que ``isInstance " -"(c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par une classe sur le " -"chemin de recherche de classe de base de ``c.__class__`` jusqu'à ``C``." +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que " +"``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " +"une classe sur le chemin de recherche de classe de base de ``c.__class__`` " +"jusqu'à ``C``." #: ../Doc/faq/programming.rst:1576 msgid "" -"Caution: within a method of C, an assignment like ``self.count = 42`` creates a new " -"and unrelated instance named \"count\" in ``self``'s own dict. Rebinding of a class-" -"static data name must always specify the class whether inside a method or not::" +"Caution: within a method of C, an assignment like ``self.count = 42`` " +"creates a new and unrelated instance named \"count\" in ``self``'s own " +"dict. Rebinding of a class-static data name must always specify the class " +"whether inside a method or not::" msgstr "" -"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` crée une " -"nouvelle instance sans rapport avec le nom ``count`` dans dans le dictionnaire de " -"données de ``self``. La redéfinition d'une donnée statique de classe doit toujours " -"spécifier la classe que l'on soit à l'intérieur d'une méthode ou non ::" +"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " +"crée une nouvelle instance sans rapport avec le nom ``count`` dans dans le " +"dictionnaire de données de ``self``. La redéfinition d'une donnée statique " +"de classe doit toujours spécifier la classe que l'on soit à l'intérieur " +"d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1583 msgid "Static methods are possible::" @@ -2295,19 +2437,20 @@ msgstr "Il est possible d'utiliser des méthodes statiques : ::" #: ../Doc/faq/programming.rst:1591 msgid "" -"However, a far more straightforward way to get the effect of a static method is via a " -"simple module-level function::" +"However, a far more straightforward way to get the effect of a static method " +"is via a simple module-level function::" msgstr "" -"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une méthode " -"statique se fait par une simple fonction au niveau du module ::" +"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " +"méthode statique se fait par une simple fonction au niveau du module ::" #: ../Doc/faq/programming.rst:1597 msgid "" -"If your code is structured so as to define one class (or tightly related class " -"hierarchy) per module, this supplies the desired encapsulation." +"If your code is structured so as to define one class (or tightly related " +"class hierarchy) per module, this supplies the desired encapsulation." msgstr "" -"Si votre code est structuré de manière à définir une classe (ou bien la hiérarchie " -"des classes connexes) par module, ceci fournira l'encapsulation souhaitée." +"Si votre code est structuré de manière à définir une classe (ou bien la " +"hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " +"souhaitée." #: ../Doc/faq/programming.rst:1602 msgid "How can I overload constructors (or methods) in Python?" @@ -2315,11 +2458,11 @@ msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" #: ../Doc/faq/programming.rst:1604 msgid "" -"This answer actually applies to all methods, but the question usually comes up first " -"in the context of constructors." +"This answer actually applies to all methods, but the question usually comes " +"up first in the context of constructors." msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question se pose " -"généralement dans le contexte des constructeurs." +"Cette réponse s'applique en fait à toutes les méthodes, mais la question se " +"pose généralement dans le contexte des constructeurs." #: ../Doc/faq/programming.rst:1607 msgid "In C++ you'd write" @@ -2327,15 +2470,17 @@ msgstr "In C++, on écrirait" #: ../Doc/faq/programming.rst:1616 msgid "" -"In Python you have to write a single constructor that catches all cases using default " -"arguments. For example::" +"In Python you have to write a single constructor that catches all cases " +"using default arguments. For example::" msgstr "" -"En Python, vous devez écrire un constructeur unique qui considère tous les cas en " -"utilisant des arguments par défaut. Par exemple ::" +"En Python, vous devez écrire un constructeur unique qui considère tous les " +"cas en utilisant des arguments par défaut. Par exemple ::" #: ../Doc/faq/programming.rst:1626 msgid "This is not entirely equivalent, but close enough in practice." -msgstr "Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la pratique." +msgstr "" +"Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " +"pratique." #: ../Doc/faq/programming.rst:1628 msgid "You could also try a variable-length argument list, e.g. ::" @@ -2355,35 +2500,37 @@ msgstr "" #: ../Doc/faq/programming.rst:1639 msgid "" -"Variable names with double leading underscores are \"mangled\" to provide a simple " -"but effective way to define class private variables. Any identifier of the form " -"``__spam`` (at least two leading underscores, at most one trailing underscore) is " -"textually replaced with ``_classname__spam``, where ``classname`` is the current " -"class name with any leading underscores stripped." +"Variable names with double leading underscores are \"mangled\" to provide a " +"simple but effective way to define class private variables. Any identifier " +"of the form ``__spam`` (at least two leading underscores, at most one " +"trailing underscore) is textually replaced with ``_classname__spam``, where " +"``classname`` is the current class name with any leading underscores " +"stripped." msgstr "" -"Les noms de variables commençant avec deux tirets bas sont « déformés », c'est un " -"moyen simple mais efficace de définir variables privées à une classe. Tout " -"identifiant de la forme ``__spam`` (commençant par au moins deux tirets bas et se " -"terminant par au plus un tiret bas) est textuellement remplacé par " -"``_classname__spam``, où ``classname`` est le nom de la classe en cours sans les " -"éventuels tirets bas du début." +"Les noms de variables commençant avec deux tirets bas sont « déformés », " +"c'est un moyen simple mais efficace de définir variables privées à une " +"classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " +"deux tirets bas et se terminant par au plus un tiret bas) est textuellement " +"remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " +"en cours sans les éventuels tirets bas du début." #: ../Doc/faq/programming.rst:1645 msgid "" -"This doesn't guarantee privacy: an outside user can still deliberately access the " -"\"_classname__spam\" attribute, and private values are visible in the object's " -"``__dict__``. Many Python programmers never bother to use private variable names at " -"all." +"This doesn't guarantee privacy: an outside user can still deliberately " +"access the \"_classname__spam\" attribute, and private values are visible in " +"the object's ``__dict__``. Many Python programmers never bother to use " +"private variable names at all." msgstr "" "Cela ne garantit aucune protection : un utilisateur extérieur peut encore " -"délibérément accéder à l'attribut ``_classname__spam``, et les valeurs privées sont " -"visibles dans l'objet ``__dict__``. De nombreux programmeurs Python ne prennent " -"jamais la peine d'utiliser des noms de variable privée." +"délibérément accéder à l'attribut ``_classname__spam``, et les valeurs " +"privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " +"Python ne prennent jamais la peine d'utiliser des noms de variable privée." #: ../Doc/faq/programming.rst:1652 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" -"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je supprime l'objet." +"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " +"supprime l'objet." #: ../Doc/faq/programming.rst:1654 msgid "There are several possible reasons for this." @@ -2391,71 +2538,77 @@ msgstr "Il y a plusieurs explications possibles." #: ../Doc/faq/programming.rst:1656 msgid "" -"The del statement does not necessarily call :meth:`__del__` -- it simply decrements " -"the object's reference count, and if this reaches zero :meth:`__del__` is called." +"The del statement does not necessarily call :meth:`__del__` -- it simply " +"decrements the object's reference count, and if this reaches zero :meth:" +"`__del__` is called." msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` --- elle décrémente " -"simplement le compteur de références de l'objet, et si celui-ci arrive à zéro, :meth:" -"`__del__` est appelée." +"La commande *del* n'appelle pas forcément :meth:`__del__` --- elle " +"décrémente simplement le compteur de références de l'objet, et si celui-ci " +"arrive à zéro, :meth:`__del__` est appelée." #: ../Doc/faq/programming.rst:1660 msgid "" -"If your data structures contain circular links (e.g. a tree where each child has a " -"parent reference and each parent has a list of children) the reference counts will " -"never go back to zero. Once in a while Python runs an algorithm to detect such " -"cycles, but the garbage collector might run some time after the last reference to " -"your data structure vanishes, so your :meth:`__del__` method may be called at an " -"inconvenient and random time. This is inconvenient if you're trying to reproduce a " -"problem. Worse, the order in which object's :meth:`__del__` methods are executed is " -"arbitrary. You can run :func:`gc.collect` to force a collection, but there *are* " -"pathological cases where objects will never be collected." -msgstr "" -"Si la structure de données contient des références circulaires (e.g. un arbre dans " -"lequel chaque fils a une référence sur son père, et chaque père maintient une liste " -"de référence à ses fils), le compteur de référence n'arrivera jamais à zéro. Python " -"exécute périodiquement un algorithme pour détecter ce genre de cycles, mais il peut " -"se passer un certain temps entre le moment où la structure est référencée pour la " -"dernière fois et l'appel du ramasse-miettes, donc la méthode :meth:`__del__` peut " -"être appelée à un moment aléatoire et pas opportun. C'est gênant pour essayer " -"reproduire un problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des " -"objets est arbitraire. Il est possible de forcer l'appel du ramasse-miettes avec la " -"fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne seront " -"jamais nettoyés." +"If your data structures contain circular links (e.g. a tree where each child " +"has a parent reference and each parent has a list of children) the reference " +"counts will never go back to zero. Once in a while Python runs an algorithm " +"to detect such cycles, but the garbage collector might run some time after " +"the last reference to your data structure vanishes, so your :meth:`__del__` " +"method may be called at an inconvenient and random time. This is " +"inconvenient if you're trying to reproduce a problem. Worse, the order in " +"which object's :meth:`__del__` methods are executed is arbitrary. You can " +"run :func:`gc.collect` to force a collection, but there *are* pathological " +"cases where objects will never be collected." +msgstr "" +"Si la structure de données contient des références circulaires (e.g. un " +"arbre dans lequel chaque fils a une référence sur son père, et chaque père " +"maintient une liste de référence à ses fils), le compteur de référence " +"n'arrivera jamais à zéro. Python exécute périodiquement un algorithme pour " +"détecter ce genre de cycles, mais il peut se passer un certain temps entre " +"le moment où la structure est référencée pour la dernière fois et l'appel du " +"ramasse-miettes, donc la méthode :meth:`__del__` peut être appelée à un " +"moment aléatoire et pas opportun. C'est gênant pour essayer reproduire un " +"problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets " +"est arbitraire. Il est possible de forcer l'appel du ramasse-miettes avec la " +"fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne " +"seront jamais nettoyés." #: ../Doc/faq/programming.rst:1671 msgid "" -"Despite the cycle collector, it's still a good idea to define an explicit ``close()`` " -"method on objects to be called whenever you're done with them. The ``close()`` " -"method can then remove attributes that refer to subobjects. Don't call :meth:" -"`__del__` directly -- :meth:`__del__` should call ``close()`` and ``close()`` should " -"make sure that it can be called more than once for the same object." -msgstr "" -"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé de " -"définir une méthode ``close()`` explicite sur des objets, et de l'appeler quand leur " -"cycle de vie s'achève. Cette méthode ``close()`` peut alors supprimer les attributs " -"qui font référence à des sous-objets. Il vaut mieux ne pas appeler la méthode :meth:" -"`__del__` directement, mais la méthode :meth:`__del__`devrait appeler la méthode " -"``close()`` et ``close()`` doit pouvoir être appelée plusieurs fois sur le même objet." +"Despite the cycle collector, it's still a good idea to define an explicit " +"``close()`` method on objects to be called whenever you're done with them. " +"The ``close()`` method can then remove attributes that refer to subobjects. " +"Don't call :meth:`__del__` directly -- :meth:`__del__` should call " +"``close()`` and ``close()`` should make sure that it can be called more than " +"once for the same object." +msgstr "" +"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " +"de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " +"quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " +"supprimer les attributs qui font référence à des sous-objets. Il vaut mieux " +"ne pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" +"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"être appelée plusieurs fois sur le même objet." #: ../Doc/faq/programming.rst:1678 msgid "" -"Another way to avoid cyclical references is to use the :mod:`weakref` module, which " -"allows you to point to objects without incrementing their reference count. Tree data " -"structures, for instance, should use weak references for their parent and sibling " -"references (if they need them!)." +"Another way to avoid cyclical references is to use the :mod:`weakref` " +"module, which allows you to point to objects without incrementing their " +"reference count. Tree data structures, for instance, should use weak " +"references for their parent and sibling references (if they need them!)." msgstr "" -"Une alternative pour éviter les références cycliques consiste à utiliser le module :" -"mod:`weakref`, qui permet de faire référence à des objets sans incrémenter leur " -"compteur de référence. Par exemple, les structures d'arbres devraient référencer " -"utiliser des références creuses entre pères et fils (si nécessaire !)." +"Une alternative pour éviter les références cycliques consiste à utiliser le " +"module :mod:`weakref`, qui permet de faire référence à des objets sans " +"incrémenter leur compteur de référence. Par exemple, les structures d'arbres " +"devraient référencer utiliser des références creuses entre pères et fils (si " +"nécessaire !)." #: ../Doc/faq/programming.rst:1691 msgid "" -"Finally, if your :meth:`__del__` method raises an exception, a warning message is " -"printed to :data:`sys.stderr`." +"Finally, if your :meth:`__del__` method raises an exception, a warning " +"message is printed to :data:`sys.stderr`." msgstr "" -"Enfin, si la méthode :meth:`__del__` lève une exception, un message d'avertissement " -"s'affiche dans :data:`sys.stderr`." +"Enfin, si la méthode :meth:`__del__` lève une exception, un message " +"d'avertissement s'affiche dans :data:`sys.stderr`." #: ../Doc/faq/programming.rst:1696 msgid "How do I get a list of all instances of a given class?" @@ -2463,14 +2616,14 @@ msgstr "Comment obtenir toutes les instances d'une classe ?" #: ../Doc/faq/programming.rst:1698 msgid "" -"Python does not keep track of all instances of a class (or of a built-in type). You " -"can program the class's constructor to keep track of all instances by keeping a list " -"of weak references to each instance." +"Python does not keep track of all instances of a class (or of a built-in " +"type). You can program the class's constructor to keep track of all " +"instances by keeping a list of weak references to each instance." msgstr "" -"Python ne tient pas de registre de toutes les instances d'une classe (ni de n'importe " -"quel type natif). Il est cependant possible de programmer le constructeur de la " -"classe de façon à tenir un tel registre, en maintenant une liste de références " -"creuses vers chaque instance." +"Python ne tient pas de registre de toutes les instances d'une classe (ni de " +"n'importe quel type natif). Il est cependant possible de programmer le " +"constructeur de la classe de façon à tenir un tel registre, en maintenant " +"une liste de références creuses vers chaque instance." #: ../Doc/faq/programming.rst:1704 msgid "Why does the result of ``id()`` appear to be not unique?" @@ -2478,28 +2631,29 @@ msgstr "Pourquoi le résultat de ``id()`` se répète-t'il ?" #: ../Doc/faq/programming.rst:1706 msgid "" -"The :func:`id` builtin returns an integer that is guaranteed to be unique during the " -"lifetime of the object. Since in CPython, this is the object's memory address, it " -"happens frequently that after an object is deleted from memory, the next freshly " -"created object is allocated at the same position in memory. This is illustrated by " -"this example:" +"The :func:`id` builtin returns an integer that is guaranteed to be unique " +"during the lifetime of the object. Since in CPython, this is the object's " +"memory address, it happens frequently that after an object is deleted from " +"memory, the next freshly created object is allocated at the same position in " +"memory. This is illustrated by this example:" msgstr "" -"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie durant " -"toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité l'adresse mémoire " -"de l'objet, il est fréquent qu'un nouvel objet soit alloué à une adresse mémoire " -"identique à celle d'un objet venant d'être supprimé. Comme l'illustre le code " -"suivant :" +"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie " +"durant toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité " +"l'adresse mémoire de l'objet, il est fréquent qu'un nouvel objet soit alloué " +"à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " +"Comme l'illustre le code suivant :" #: ../Doc/faq/programming.rst:1717 msgid "" -"The two ids belong to different integer objects that are created before, and deleted " -"immediately after execution of the ``id()`` call. To be sure that objects whose id " -"you want to examine are still alive, create another reference to the object:" +"The two ids belong to different integer objects that are created before, and " +"deleted immediately after execution of the ``id()`` call. To be sure that " +"objects whose id you want to examine are still alive, create another " +"reference to the object:" msgstr "" -"Les deux identifiants appartiennent à des objets entiers créés juste avant l'appel à " -"``id()`` et détruits immédiatement après. Pour s'assurer que les objets dont on veut " -"examiner les identifiants sont toujours en vie, créons une nouvelle référence à " -"l'objet :" +"Les deux identifiants appartiennent à des objets entiers créés juste avant " +"l'appel à ``id()`` et détruits immédiatement après. Pour s'assurer que les " +"objets dont on veut examiner les identifiants sont toujours en vie, créons " +"une nouvelle référence à l'objet :" #: ../Doc/faq/programming.rst:1730 msgid "Modules" @@ -2511,97 +2665,107 @@ msgstr "Comment créer des fichiers .pyc ?" #: ../Doc/faq/programming.rst:1735 msgid "" -"When a module is imported for the first time (or when the source file has changed " -"since the current compiled file was created) a ``.pyc`` file containing the compiled " -"code should be created in a ``__pycache__`` subdirectory of the directory containing " -"the ``.py`` file. The ``.pyc`` file will have a filename that starts with the same " -"name as the ``.py`` file, and ends with ``.pyc``, with a middle component that " -"depends on the particular ``python`` binary that created it. (See :pep:`3147` for " -"details.)" -msgstr "" -"Quand un module est importé pour la première fois (ou si le fichier source a été " -"modifié depuis la création du fichier compilé), un fichier ``.pyc`` contenant le code " -"précompilé est créé dans un sous-dossier ``__pycache__`` du dossier contentant le " -"fichier ``.py``. Le nom du fichier ``.pyc`` est identique au fichier ``.py`` et se " -"termine par ``.pyc``, avec une partie centrale qui dépend du binaire ``python`` qui " -"l'a créé. (Voir :pep:`3147` pour de plus amples précisions.)" +"When a module is imported for the first time (or when the source file has " +"changed since the current compiled file was created) a ``.pyc`` file " +"containing the compiled code should be created in a ``__pycache__`` " +"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " +"file will have a filename that starts with the same name as the ``.py`` " +"file, and ends with ``.pyc``, with a middle component that depends on the " +"particular ``python`` binary that created it. (See :pep:`3147` for details.)" +msgstr "" +"Quand un module est importé pour la première fois (ou si le fichier source a " +"été modifié depuis la création du fichier compilé), un fichier ``.pyc`` " +"contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " +"du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " +"identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " +"centrale qui dépend du binaire ``python`` qui l'a créé. (Voir :pep:`3147` " +"pour de plus amples précisions.)" #: ../Doc/faq/programming.rst:1743 msgid "" -"One reason that a ``.pyc`` file may not be created is a permissions problem with the " -"directory containing the source file, meaning that the ``__pycache__`` subdirectory " -"cannot be created. This can happen, for example, if you develop as one user but run " -"as another, such as if you are testing with a web server." +"One reason that a ``.pyc`` file may not be created is a permissions problem " +"with the directory containing the source file, meaning that the " +"``__pycache__`` subdirectory cannot be created. This can happen, for " +"example, if you develop as one user but run as another, such as if you are " +"testing with a web server." msgstr "" -"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé est un " -"problème de droits sur le dossier qui contient le fichier source, ce qui veut dire " -"qu'il est impossible de créer le le sous-dossier ``__pycache__``. Ceci peut arriver, " -"par exemple, si vous développez en tant qu'un certain utilisateur, mais que le code " -"est exécuté en tant qu'un autre utilisateur, par exemple pour tester un serveur Web." +"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " +"est un problème de droits sur le dossier qui contient le fichier source, ce " +"qui veut dire qu'il est impossible de créer le le sous-dossier " +"``__pycache__``. Ceci peut arriver, par exemple, si vous développez en tant " +"qu'un certain utilisateur, mais que le code est exécuté en tant qu'un autre " +"utilisateur, par exemple pour tester un serveur Web." #: ../Doc/faq/programming.rst:1748 msgid "" -"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, creation of " -"a .pyc file is automatic if you're importing a module and Python has the ability " -"(permissions, free space, etc...) to create a ``__pycache__`` subdirectory and write " -"the compiled module to that subdirectory." +"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " +"creation of a .pyc file is automatic if you're importing a module and Python " +"has the ability (permissions, free space, etc...) to create a " +"``__pycache__`` subdirectory and write the compiled module to that " +"subdirectory." msgstr "" -"La création du fichier .pyc est automatique durant l'import d'un module si Python est " -"capable (en termes de droits, d'espace disque, etc) de créer un sous-dossier " -"``__pycache__`` et d'écrire le module ainsi compilé dans ce sous-répertoire, à moins " -"que la variable d'environnement :envvar:`PYTHONDONTWRITEBYTECODE` soit définie." +"La création du fichier .pyc est automatique durant l'import d'un module si " +"Python est capable (en termes de droits, d'espace disque, etc) de créer un " +"sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " +"sous-répertoire, à moins que la variable d'environnement :envvar:" +"`PYTHONDONTWRITEBYTECODE` soit définie." #: ../Doc/faq/programming.rst:1753 msgid "" -"Running Python on a top level script is not considered an import and no ``.pyc`` will " -"be created. For example, if you have a top-level module ``foo.py`` that imports " -"another module ``xyz.py``, when you run ``foo`` (by typing ``python foo.py`` as a " -"shell command), a ``.pyc`` will be created for ``xyz`` because ``xyz`` is imported, " -"but no ``.pyc`` file will be created for ``foo`` since ``foo.py`` isn't being " -"imported." +"Running Python on a top level script is not considered an import and no ``." +"pyc`` will be created. For example, if you have a top-level module ``foo." +"py`` that imports another module ``xyz.py``, when you run ``foo`` (by typing " +"``python foo.py`` as a shell command), a ``.pyc`` will be created for " +"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " +"for ``foo`` since ``foo.py`` isn't being imported." msgstr "" -"Exécuter du Python dans un script de plus haut niveau n'est pas considéré comme un " -"import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un module de plus haut " -"niveau ``foo.py`` importe un autre module ``xyz.py``, alors à l'exécution de ``foo`` " -"(en tapant ``python foo.py`` dans la console), un fichier ``.pyc`` est créé pour " -"``xyz`` mais pas pour ``foo`` car ``foo.py`` n'est pas importé." +"Exécuter du Python dans un script de plus haut niveau n'est pas considéré " +"comme un import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un " +"module de plus haut niveau ``foo.py`` importe un autre module ``xyz.py``, " +"alors à l'exécution de ``foo`` (en tapant ``python foo.py`` dans la " +"console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " +"car ``foo.py`` n'est pas importé." #: ../Doc/faq/programming.rst:1760 msgid "" -"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``.pyc`` " -"file for a module that is not imported -- you can, using the :mod:`py_compile` and :" -"mod:`compileall` modules." +"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." +"pyc`` file for a module that is not imported -- you can, using the :mod:" +"`py_compile` and :mod:`compileall` modules." msgstr "" -"Pour créer un fichier ``.pyc`` pour ``foo`` -- c'est à dire de créer un fichier ``." -"pyc`` pour un module qui n'est pas importé -- il existe les modules :mod:`py_compile` " -"et :mod:`compileall`." +"Pour créer un fichier ``.pyc`` pour ``foo`` -- c'est à dire de créer un " +"fichier ``.pyc`` pour un module qui n'est pas importé -- il existe les " +"modules :mod:`py_compile` et :mod:`compileall`." #: ../Doc/faq/programming.rst:1764 msgid "" -"The :mod:`py_compile` module can manually compile any module. One way is to use the " -"``compile()`` function in that module interactively::" +"The :mod:`py_compile` module can manually compile any module. One way is to " +"use the ``compile()`` function in that module interactively::" msgstr "" -"Le module :mod:`py_compile` peut compiler n'importe quel module manuellement. Il est " -"ainsi possible d'appeler la fonction ``compile()`` de manière interactive :" +"Le module :mod:`py_compile` peut compiler n'importe quel module " +"manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " +"manière interactive :" #: ../Doc/faq/programming.rst:1770 msgid "" -"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same location " -"as ``foo.py`` (or you can override that with the optional parameter ``cfile``)." +"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " +"location as ``foo.py`` (or you can override that with the optional parameter " +"``cfile``)." msgstr "" -"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté de ``foo." -"py`` (le paramètre optionnel ``cfile`` permet de changer ce comportement)." +"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté " +"de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " +"comportement)." #: ../Doc/faq/programming.rst:1774 msgid "" -"You can also automatically compile all files in a directory or directories using the :" -"mod:`compileall` module. You can do it from the shell prompt by running ``compileall." -"py`` and providing the path of a directory containing Python files to compile::" +"You can also automatically compile all files in a directory or directories " +"using the :mod:`compileall` module. You can do it from the shell prompt by " +"running ``compileall.py`` and providing the path of a directory containing " +"Python files to compile::" msgstr "" -"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés avec le " -"module :mod:`compileall`. C'est faisable depuis l'invite de commande en exécutant " -"``compileall.py`` avec le chemin du dossier contenant les fichiers Python à " -"compiler ::" +"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " +"avec le module :mod:`compileall`. C'est faisable depuis l'invite de commande " +"en exécutant ``compileall.py`` avec le chemin du dossier contenant les " +"fichiers Python à compiler ::" #: ../Doc/faq/programming.rst:1783 msgid "How do I find the current module name?" @@ -2609,18 +2773,18 @@ msgstr "Comment obtenir le nom du module actuel ?" #: ../Doc/faq/programming.rst:1785 msgid "" -"A module can find out its own module name by looking at the predefined global " -"variable ``__name__``. If this has the value ``'__main__'``, the program is running " -"as a script. Many modules that are usually used by importing them also provide a " -"command-line interface or a self-test, and only execute this code after checking " -"``__name__``::" +"A module can find out its own module name by looking at the predefined " +"global variable ``__name__``. If this has the value ``'__main__'``, the " +"program is running as a script. Many modules that are usually used by " +"importing them also provide a command-line interface or a self-test, and " +"only execute this code after checking ``__name__``::" msgstr "" -"Un module peut déterminer son propre nom en examinant la variable globale prédéfinie " -"``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le programme est exécuté " -"comme un script. Beaucoup de modules qui doivent normalement être importés pour " -"pouvoir être utilisés fournissent aussi une interface en ligne de commande ou un test " -"automatique. Ils n'exécutent cette portion du code qu'après avoir vérifié la valeur " -"de ``__name__``::" +"Un module peut déterminer son propre nom en examinant la variable globale " +"prédéfinie ``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le " +"programme est exécuté comme un script. Beaucoup de modules qui doivent " +"normalement être importés pour pouvoir être utilisés fournissent aussi une " +"interface en ligne de commande ou un test automatique. Ils n'exécutent cette " +"portion du code qu'après avoir vérifié la valeur de ``__name__``::" #: ../Doc/faq/programming.rst:1800 msgid "How can I have modules that mutually import each other?" @@ -2670,7 +2834,8 @@ msgstr "bar est compilé et commence à s'exécuter" msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" -"bar importe foo (en réalité, rien ne passe car il y a déjà un module appelé foo)" +"bar importe foo (en réalité, rien ne passe car il y a déjà un module appelé " +"foo)" #: ../Doc/faq/programming.rst:1823 msgid "bar.foo_var = foo.foo_var" @@ -2678,19 +2843,19 @@ msgstr "bar.foo_var = foo.foo_var" #: ../Doc/faq/programming.rst:1825 msgid "" -"The last step fails, because Python isn't done with interpreting ``foo`` yet and the " -"global symbol dictionary for ``foo`` is still empty." +"The last step fails, because Python isn't done with interpreting ``foo`` yet " +"and the global symbol dictionary for ``foo`` is still empty." msgstr "" "La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " "dictionnaire global des symboles de ``foo`` est encore vide." #: ../Doc/faq/programming.rst:1828 msgid "" -"The same thing happens when you use ``import foo``, and then try to access ``foo." -"foo_var`` in global code." +"The same thing happens when you use ``import foo``, and then try to access " +"``foo.foo_var`` in global code." msgstr "" -"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye ensuite " -"d'accéder à ``foo.foo_var`` dans le code global." +"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " +"ensuite d'accéder à ``foo.foo_var`` dans le code global." #: ../Doc/faq/programming.rst:1831 msgid "There are (at least) three possible workarounds for this problem." @@ -2698,31 +2863,32 @@ msgstr "Il y a (au moins) trois façons de contourner ce problème." #: ../Doc/faq/programming.rst:1833 msgid "" -"Guido van Rossum recommends avoiding all uses of ``from import ...``, and " -"placing all code inside functions. Initializations of global variables and class " -"variables should use constants or built-in functions only. This means everything " -"from an imported module is referenced as ``.``." +"Guido van Rossum recommends avoiding all uses of ``from import ..." +"``, and placing all code inside functions. Initializations of global " +"variables and class variables should use constants or built-in functions " +"only. This means everything from an imported module is referenced as " +"``.``." msgstr "" -"Guido van Rossum déconseille d'utiliser ``from import ...``, et de mettre " -"tout le code dans des fonctions. L'initialisation des variables globales et des " -"variables de classe ne doit utiliser que des constantes ou des fonctions natives. " -"Ceci implique que tout ce qui est fourni par un module soit référencé par ``." -"``." +"Guido van Rossum déconseille d'utiliser ``from import ...``, et de " +"mettre tout le code dans des fonctions. L'initialisation des variables " +"globales et des variables de classe ne doit utiliser que des constantes ou " +"des fonctions natives. Ceci implique que tout ce qui est fourni par un " +"module soit référencé par ``.``." #: ../Doc/faq/programming.rst:1838 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" -"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans chaque " -"module :" +"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " +"chaque module :" #: ../Doc/faq/programming.rst:1840 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" msgstr "" -"les exportations (variables globales, fonctions et les classes qui ne nécessitent " -"d'importer des classes de base)" +"les exportations (variables globales, fonctions et les classes qui ne " +"nécessitent d'importer des classes de base)" #: ../Doc/faq/programming.rst:1842 msgid "``import`` statements" @@ -2732,23 +2898,24 @@ msgstr "les instructions ``import``" msgid "" "active code (including globals that are initialized from imported values)." msgstr "" -"le code (avec les variables globales qui sont initialisées à partir de valeurs " -"importées)." +"le code (avec les variables globales qui sont initialisées à partir de " +"valeurs importées)." #: ../Doc/faq/programming.rst:1845 msgid "" -"van Rossum doesn't like this approach much because the imports appear in a strange " -"place, but it does work." +"van Rossum doesn't like this approach much because the imports appear in a " +"strange place, but it does work." msgstr "" -"van Rossum désapprouve cette approche car les imports se trouvent à un niveau " -"bizarre, mais cela fonctionne." +"van Rossum désapprouve cette approche car les imports se trouvent à un " +"niveau bizarre, mais cela fonctionne." #: ../Doc/faq/programming.rst:1848 msgid "" -"Matthias Urlichs recommends restructuring your code so that the recursive import is " -"not necessary in the first place." +"Matthias Urlichs recommends restructuring your code so that the recursive " +"import is not necessary in the first place." msgstr "" -"Matthias Urlichs conseille de restructurer le code pour éviter les imports récursifs." +"Matthias Urlichs conseille de restructurer le code pour éviter les imports " +"récursifs." #: ../Doc/faq/programming.rst:1851 msgid "These solutions are not mutually exclusive." @@ -2760,64 +2927,69 @@ msgstr "__import__('x.y.z') renvoie ;comment accéder à z?" #: ../Doc/faq/programming.rst:1857 msgid "" -"Consider using the convenience function :func:`~importlib.import_module` from :mod:" -"`importlib` instead::" +"Consider using the convenience function :func:`~importlib.import_module` " +"from :mod:`importlib` instead::" msgstr "" -"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:`importlib` ::" +"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" +"`importlib` ::" #: ../Doc/faq/programming.rst:1864 msgid "" -"When I edit an imported module and reimport it, the changes don't show up. Why does " -"this happen?" +"When I edit an imported module and reimport it, the changes don't show up. " +"Why does this happen?" msgstr "" -"Quand j'édite un module et que je le réimporte, je ne vois pas les changements. " -"Pourquoi ?" +"Quand j'édite un module et que je le réimporte, je ne vois pas les " +"changements. Pourquoi ?" #: ../Doc/faq/programming.rst:1866 msgid "" -"For reasons of efficiency as well as consistency, Python only reads the module file " -"on the first time a module is imported. If it didn't, in a program consisting of " -"many modules where each one imports the same basic module, the basic module would be " -"parsed and re-parsed many times. To force re-reading of a changed module, do this::" +"For reasons of efficiency as well as consistency, Python only reads the " +"module file on the first time a module is imported. If it didn't, in a " +"program consisting of many modules where each one imports the same basic " +"module, the basic module would be parsed and re-parsed many times. To force " +"re-reading of a changed module, do this::" msgstr "" -"Pour des raisons de performance et de cohérence, Python ne lit le fichier d'un module " -"que la première fois où celui-ci est importé. Si ce n'était pas le cas, dans un " -"programme composé d'un très grand nombre de modules qui importeraient tous le même " -"module de base, ce module de base serait analysé et ré-analysé un très grand nombre " -"de fois. Pour forcer la relecture d'un module, il faut faire ::" +"Pour des raisons de performance et de cohérence, Python ne lit le fichier " +"d'un module que la première fois où celui-ci est importé. Si ce n'était pas " +"le cas, dans un programme composé d'un très grand nombre de modules qui " +"importeraient tous le même module de base, ce module de base serait analysé " +"et ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " +"module, il faut faire ::" #: ../Doc/faq/programming.rst:1876 msgid "" -"Warning: this technique is not 100% fool-proof. In particular, modules containing " -"statements like ::" +"Warning: this technique is not 100% fool-proof. In particular, modules " +"containing statements like ::" msgstr "" -"Attention, cette technique ne marche pas systématiquement. En particulier, les " -"modules qui contiennent des instructions comme ::" +"Attention, cette technique ne marche pas systématiquement. En particulier, " +"les modules qui contiennent des instructions comme ::" #: ../Doc/faq/programming.rst:1881 msgid "" -"will continue to work with the old version of the imported objects. If the module " -"contains class definitions, existing class instances will *not* be updated to use the " -"new class definition. This can result in the following paradoxical behaviour::" +"will continue to work with the old version of the imported objects. If the " +"module contains class definitions, existing class instances will *not* be " +"updated to use the new class definition. This can result in the following " +"paradoxical behaviour::" msgstr "" -"continueraient de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, le instances déjà existantes de celle-ci ne " -"seront *pas* mises à jour avec la nouvelle définition de la classe. Ceci peut " -"conduire au comportement paradoxal suivant :" +"continueraient de fonctionner avec l'ancienne version des objets importés. " +"Si le module contient une définition de classe, le instances déjà existantes " +"de celle-ci ne seront *pas* mises à jour avec la nouvelle définition de la " +"classe. Ceci peut conduire au comportement paradoxal suivant :" #: ../Doc/faq/programming.rst:1894 msgid "" -"The nature of the problem is made clear if you print out the \"identity\" of the " -"class objects::" +"The nature of the problem is made clear if you print out the \"identity\" of " +"the class objects::" msgstr "" -"La nature du problème apparaît clairement en affichant « l'identité » des objets de " -"la classe : ::" +"La nature du problème apparaît clairement en affichant « l'identité » des " +"objets de la classe : ::" #~ msgid "Dictionaries" #~ msgstr "Dictionnaires" #~ msgid "" -#~ "How can I get a dictionary to store and display its keys in a consistent order?" +#~ "How can I get a dictionary to store and display its keys in a consistent " +#~ "order?" #~ msgstr "" -#~ "Comment puis-je faire stocker et afficher les clefs d'un dictionnaire dans un " -#~ "ordre cohérent ?" +#~ "Comment puis-je faire stocker et afficher les clefs d'un dictionnaire " +#~ "dans un ordre cohérent ?" From cfc940e17e7ae1110742f2508391be152d0bfd93 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 21:02:25 +0200 Subject: [PATCH 12/26] fix bugs I --- dict | 14 ++++++++++++++ faq/programming.po | 40 ++++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/dict b/dict index 011b4ee42..4683c00cc 100644 --- a/dict +++ b/dict @@ -14,6 +14,7 @@ concourance coroutine coroutine coroutines +Cython d'allocateurs déduplication désenregistre @@ -27,6 +28,7 @@ désérialiser déserialisés déserialiseur déserialiseurs +docstrings émoji d'itérateurs réusiné @@ -36,11 +38,13 @@ encodable Farrugia finaliseur Fredrik +freeze Guido hachabilité hachable hachables Hettinger +html ı -ième import @@ -61,6 +65,7 @@ l'itérateur lorsqu'aucune mar. mémoïsant +mémoïsation Mersenne métacaractère métacaractères @@ -72,10 +77,17 @@ muables multiensemble multiensembles namespace +pdb pip pourcent +précompilé préemptif proleptique +Pydb +PyChecker +PythonWin +py2exe +pyc recompilation réentrants réessayable @@ -103,7 +115,9 @@ tokenisation tokenisé tokenisés tty +unicode W3C +wxWidgets Zope délimitants contribués diff --git a/faq/programming.po b/faq/programming.po index ab5a95353..ff5d83a13 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -316,7 +316,7 @@ msgid "" msgstr "" "Cela est dû au fait que, quand une variable est affectée dans un contexte, " "cette variable devient locale à ce contexte et remplace toute variable du " -"même nom du contexte appelant. Vu que la dernière instruction dans foo " +"même nom du contexte appelant. Vu que la dernière instruction dans *foo* " "affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " "nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " "la variable non initialisée, une erreur se produit." @@ -472,7 +472,7 @@ msgid "" "everywhere. For example:" msgstr "" "La manière standard de partager des informations entre modules d'un même " -"programme est de créer un module spécial (souvent appelé config ou cfg) et " +"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) et " "de l'importer dans tous les modules de l'application ; le module devient " "accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " "chaque module, tout changement dans l'instance est propagé partout. Par " @@ -480,15 +480,15 @@ msgstr "" #: ../Doc/faq/programming.rst:271 msgid "config.py::" -msgstr "config.py :" +msgstr "*config.py* :" #: ../Doc/faq/programming.rst:275 msgid "mod.py::" -msgstr "mod.py :" +msgstr "*mod.py* :" #: ../Doc/faq/programming.rst:280 msgid "main.py::" -msgstr "main.py :" +msgstr "*main.py* :" #: ../Doc/faq/programming.rst:286 msgid "" @@ -542,7 +542,7 @@ msgid "" "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" "les modules externes (tout ce qui est installé dans le dossier *site-" -"packages* de Python) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"packages* de Python) -- e.g. *mx.DateTime, ZODB, PIL.Image*, etc." #: ../Doc/faq/programming.rst:307 msgid "locally-developed modules" @@ -567,8 +567,8 @@ msgid "" msgstr "" "Il n'y a aucun soucis à faire des imports circulaires tant que les deux " "modules utilisent la forme \"import \" . Ça ne pose problème que si " -"le second module cherche à récupérer un nom du premier module (\"from module " -"import name\") et que l'import est dans l'espace de noms du fichier. Les " +"le second module cherche à récupérer un nom du premier module (*\"from module " +"import name\"*) et que l'import est dans l'espace de noms du fichier. Les " "noms du premier module ne sont en effet pas encore disponibles car le " "premier module est occupé à importer le second." @@ -1226,7 +1226,7 @@ msgid "" msgstr "" "La barre oblique à la fin de la liste des paramètres signifie que les trois " "paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " -"des arguments nommés provoquerait une erreur :: " +"des arguments nommés provoquerait une erreur ::" #: ../Doc/faq/programming.rst:803 msgid "" @@ -2076,7 +2076,7 @@ msgid "" "assignment is a no-op, since it is a pointer to the same object that " "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" -"L'objet sur lequel pointe a_list a été modifié, et le pointeur vers l'objet " +"L'objet sur lequel pointe ``a_list`` a été modifié, et le pointeur vers l'objet " "modifié est réaffecté à ``a_list``. In fine, l'affectation ne change rien, " "puisque c'est un pointeur vers le même objet que sur lequel pointait " "``a_list``, mais l'affectation a tout de même lieu." @@ -2803,11 +2803,11 @@ msgstr "Considérons les modules suivants :" #: ../Doc/faq/programming.rst:1807 msgid "foo.py::" -msgstr "foo.py ::" +msgstr "*foo.py* ::" #: ../Doc/faq/programming.rst:1812 msgid "bar.py::" -msgstr "bar.py ::" +msgstr "*bar.py* ::" #: ../Doc/faq/programming.rst:1817 msgid "The problem is that the interpreter will perform the following steps:" @@ -2815,34 +2815,34 @@ msgstr "Le problème réside dans les étapes que va l'interpréteur va réalise #: ../Doc/faq/programming.rst:1819 msgid "main imports foo" -msgstr "main importe foo" +msgstr "*main* importe *foo*" #: ../Doc/faq/programming.rst:1820 msgid "Empty globals for foo are created" -msgstr "Les variables globales (vides) de foo sont créées" +msgstr "Les variables globales (vides) de *foo* sont créées" #: ../Doc/faq/programming.rst:1821 msgid "foo is compiled and starts executing" -msgstr "foo est compilé et commence à s'exécuter" +msgstr "*foo* est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1822 msgid "foo imports bar" -msgstr "foo importe bar" +msgstr "*foo* importe *bar*" #: ../Doc/faq/programming.rst:1823 msgid "Empty globals for bar are created" -msgstr "Les variables globales (vides) de bar sont créées" +msgstr "Les variables globales (vides) de *bar* sont créées" #: ../Doc/faq/programming.rst:1824 msgid "bar is compiled and starts executing" -msgstr "bar est compilé et commence à s'exécuter" +msgstr "*bar* est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1825 msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" -"bar importe foo (en réalité, rien ne passe car il y a déjà un module appelé " -"foo)" +"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module appelé " +"*foo*)" #: ../Doc/faq/programming.rst:1826 msgid "bar.foo_var = foo.foo_var" From 12196d78843621b0d7d25a05f3a98a572f7787f0 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 21:34:42 +0200 Subject: [PATCH 13/26] corrige bogues compilation - II --- dict | 1 + faq/programming.po | 50 +++++++++++++++++++++++----------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/dict b/dict index 4683c00cc..f1ea5e887 100644 --- a/dict +++ b/dict @@ -85,6 +85,7 @@ préemptif proleptique Pydb PyChecker +Pylint PythonWin py2exe pyc diff --git a/faq/programming.po b/faq/programming.po index ff5d83a13..53f83a45d 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -212,9 +212,10 @@ msgid "" "the standard Python modules." msgstr "" "Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de " -"l'arborescence des sources de Python. Il convertit le *bytecode* Python en " -"tableaux C ; un compilateur C permet d'intégrer tous vos modules dans un " -"nouveau programme, qui est ensuite lié aux modules standards Python." +"l'arborescence des sources de Python. Il convertit le code intermédiaire " +"(*bytecode*) Python en tableaux C ; un compilateur C permet d'intégrer tous " +"vos modules dans un nouveau programme, qui est ensuite lié aux modules " +"standards Python." #: ../Doc/faq/programming.rst:97 msgid "" @@ -231,10 +232,10 @@ msgstr "" "Il fonctionne en cherchant de manière récursive les instructions d'import " "(sous les deux formes) dans le code source et en recherchant ces modules " "dans le chemin Python standard ainsi que dans le répertoire source (pour les " -"modules natifs). Il transforme ensuite le bytecode des modules écrits en " -"Python en code C (des initialiseurs de tableaux qui peuvent être transformés " -"en objets de code à l'aide du module marshal) et crée un fichier de " -"configuration personnalisé qui contient uniquement les modules natifs qui " +"modules natifs). Il transforme ensuite le code intermédiaire des modules " +"écrits en Python en code C (des initialiseurs de tableaux qui peuvent être " +"transformés en objets de code à l'aide du module marshal) et crée un fichier " +"de configuration personnalisé qui contient uniquement les modules natifs qui " "sont réellement utilisés dans le programme. Il compile ensuite le code C " "généré et le lie au reste de l'interpréteur Python pour former un binaire " "autonome qui fait exactement la même chose que le script." @@ -472,8 +473,8 @@ msgid "" "everywhere. For example:" msgstr "" "La manière standard de partager des informations entre modules d'un même " -"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) et " -"de l'importer dans tous les modules de l'application ; le module devient " +"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " +"et de l'importer dans tous les modules de l'application ; le module devient " "accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " "chaque module, tout changement dans l'instance est propagé partout. Par " "exemple :" @@ -567,9 +568,9 @@ msgid "" msgstr "" "Il n'y a aucun soucis à faire des imports circulaires tant que les deux " "modules utilisent la forme \"import \" . Ça ne pose problème que si " -"le second module cherche à récupérer un nom du premier module (*\"from module " -"import name\"*) et que l'import est dans l'espace de noms du fichier. Les " -"noms du premier module ne sont en effet pas encore disponibles car le " +"le second module cherche à récupérer un nom du premier module (*\"from " +"module import name\"*) et que l'import est dans l'espace de noms du fichier. " +"Les noms du premier module ne sont en effet pas encore disponibles car le " "premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:318 @@ -1181,15 +1182,14 @@ msgstr "" "Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " "en Python ?" - #: ../Doc/faq/programming.rst:743 msgid "" "Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" "lambda`. See the following three examples, due to Ulf Bartelt::" msgstr "" "Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" -"keyword:`lambda`. Par exemple les trois morceaux de code suivants, créés par " -"Ulf Bartelt ::" +"keyword:`!lambda`. Par exemple les trois morceaux de code suivants, créés " +"par Ulf Bartelt ::" #: ../Doc/faq/programming.rst:770 msgid "Don't try this at home, kids!" @@ -1615,7 +1615,7 @@ msgid "" "types` and the :mod:`collections` module." msgstr "" "Utiliser les structures de données adaptées. Se référer à la documentation " -"des :ref:`bltin-types` et du module the :mod:`collections`." +"des :ref:`bltin-types` et du module :mod:`collections`." #: ../Doc/faq/programming.rst:1051 msgid "" @@ -2076,9 +2076,9 @@ msgid "" "assignment is a no-op, since it is a pointer to the same object that " "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" -"L'objet sur lequel pointe ``a_list`` a été modifié, et le pointeur vers l'objet " -"modifié est réaffecté à ``a_list``. In fine, l'affectation ne change rien, " -"puisque c'est un pointeur vers le même objet que sur lequel pointait " +"L'objet sur lequel pointe ``a_list`` a été modifié, et le pointeur vers " +"l'objet modifié est réaffecté à ``a_list``. In fine, l'affectation ne change " +"rien, puisque c'est un pointeur vers le même objet que sur lequel pointait " "``a_list``, mais l'affectation a tout de même lieu." #: ../Doc/faq/programming.rst:1345 @@ -2668,7 +2668,7 @@ msgstr "Modules" #: ../Doc/faq/programming.rst:1736 msgid "How do I create a .pyc file?" -msgstr "Comment créer des fichiers .pyc ?" +msgstr "Comment créer des fichiers ``.pyc`` ?" #: ../Doc/faq/programming.rst:1738 msgid "" @@ -2711,9 +2711,9 @@ msgid "" "``__pycache__`` subdirectory and write the compiled module to that " "subdirectory." msgstr "" -"La création du fichier .pyc est automatique durant l'import d'un module si " -"Python est capable (en termes de droits, d'espace disque, etc) de créer un " -"sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " +"La création du fichier ``.pyc`` est automatique durant l'import d'un module " +"si Python est capable (en termes de droits, d'espace disque, etc) de créer " +"un sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " "sous-répertoire, à moins que la variable d'environnement :envvar:" "`PYTHONDONTWRITEBYTECODE` soit définie." @@ -2841,8 +2841,8 @@ msgstr "*bar* est compilé et commence à s'exécuter" msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" -"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module appelé " -"*foo*)" +"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " +"appelé *foo*)" #: ../Doc/faq/programming.rst:1826 msgid "bar.foo_var = foo.foo_var" From 26cf58cd34ccf2a3c9781df644659c671c7a19de Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 23 May 2019 21:41:00 +0200 Subject: [PATCH 14/26] corrige compilation - III --- library/operator.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/operator.po b/library/operator.po index c3717a1d3..1822ea887 100644 --- a/library/operator.po +++ b/library/operator.po @@ -56,7 +56,7 @@ msgid "" "after the rich comparison operators they support:" msgstr "" "Les fonctions de comparaison s'appliquent à tous les objets, et leur nom " -"vient des opérateurs de comparaison qu'elles implémentent:" +"vient des opérateurs de comparaison qu'elles implémentent :" #: ../Doc/library/operator.rst:45 msgid "" @@ -793,7 +793,7 @@ msgid "" "operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " "y``." msgstr "" -"Beaucoup d'opérations ont une version travaillant « en-place ». Les fonctions " +"Beaucoup d'opération ont une version travaillant « en-place ». Les fonctions " "listées ci-dessous fournissent un accès plus direct aux opérateurs en-place " "que la syntaxe Python habituelle ; par exemple, l'expression :term:" "`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " @@ -828,8 +828,8 @@ msgid "" "perform the update, so no subsequent assignment is necessary:" msgstr "" "Pour des paramètres mutables comme les listes et les dictionnaires, la " -"méthode travaillant en place modifiera la valeur, aucune affectation " -"ultérieure n'est nécessaire:" +"méthode en-place modifiera la valeur, aucune affectation ultérieure n'est " +"nécessaire :" #: ../Doc/library/operator.rst:477 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." From 32204acd5fb40443318e4a70c0b1a912d51c719d Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Fri, 24 May 2019 00:19:46 +0200 Subject: [PATCH 15/26] Correction build IV + modifs mineures --- dict | 4 +++- faq/programming.po | 52 +++++++++++++++++++++++----------------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/dict b/dict index f1ea5e887..c6a150409 100644 --- a/dict +++ b/dict @@ -29,8 +29,9 @@ déserialisés déserialiseur déserialiseurs docstrings -émoji d'itérateurs +E +émoji réusiné réusinage réusinages @@ -100,6 +101,7 @@ réimplémente réimplémentez résolveurs ſ +S sérialisable sérialisable sérialisables diff --git a/faq/programming.po b/faq/programming.po index 53f83a45d..109c35d4d 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -233,7 +233,7 @@ msgstr "" "(sous les deux formes) dans le code source et en recherchant ces modules " "dans le chemin Python standard ainsi que dans le répertoire source (pour les " "modules natifs). Il transforme ensuite le code intermédiaire des modules " -"écrits en Python en code C (des initialiseurs de tableaux qui peuvent être " +"écrits en Python en code C (des instanciateurs de tableaux qui peuvent être " "transformés en objets de code à l'aide du module marshal) et crée un fichier " "de configuration personnalisé qui contient uniquement les modules natifs qui " "sont réellement utilisés dans le programme. Il compile ensuite le code C " @@ -273,7 +273,7 @@ msgid "" "as :pep:`8`." msgstr "" "Oui. Le style de développement que les modules de la bibliothèque standard " -"doivent obligatoirement respecter est documentée dans la :pep:`8`." +"doivent obligatoirement respecter est documenté dans la :pep:`8`." #: ../Doc/faq/programming.rst:122 msgid "Core Language" @@ -475,7 +475,7 @@ msgstr "" "La manière standard de partager des informations entre modules d'un même " "programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " "et de l'importer dans tous les modules de l'application ; le module devient " -"accessible depuis l'espace de nom global. Vu qu'il n'y a qu'une instance de " +"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance de " "chaque module, tout changement dans l'instance est propagé partout. Par " "exemple :" @@ -566,7 +566,7 @@ msgid "" "That's because names in the 1st are not yet available, because the first " "module is busy importing the 2nd." msgstr "" -"Il n'y a aucun soucis à faire des imports circulaires tant que les deux " +"Il n'y a aucun souci à faire des imports circulaires tant que les deux " "modules utilisent la forme \"import \" . Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " "module import name\"*) et que l'import est dans l'espace de noms du fichier. " @@ -645,7 +645,7 @@ msgid "" "executing, ``mydict`` starts out with an item already in it." msgstr "" "Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " -"élément. Au deuxième appel, ``mydict`` contient deux éléments car quand " +"élément. Au second appel, ``mydict`` contient deux éléments car quand " "``foo()`` commence son exécution, ``mydict`` contient déjà un élément." #: ../Doc/faq/programming.rst:354 @@ -657,7 +657,7 @@ msgid "" "this changed object." msgstr "" "On est souvent amené à croire qu'un appel de fonction créé des nouveau " -"objets pour les les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " +"objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " "défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " "définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " "appels suivants à cette fonction font référence à l'objet ainsi modifié." @@ -669,7 +669,7 @@ msgid "" "dictionaries, lists, and class instances can lead to confusion." msgstr "" "Par définition, les objets immuables comme les nombres, les chaînes de " -"caractères, les tuples et ``None`` ne sont pas modifiés. Les changements sur " +"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements sur " "des objets muables comme les dictionnaires, les listes et les instances de " "classe peuvent porter à confusion." @@ -682,7 +682,7 @@ msgid "" msgstr "" "À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " -"valeur par défaut à l'intérieur de la fonction, vérifier si le paramètre est " +"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre est " "à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " "échéant. Par exemple, il ne faut pas écrire ::" @@ -727,7 +727,7 @@ msgid "" msgstr "" "Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " "dans la liste des paramètres de la fonction ; ceci donne les arguments " -"positionnels sous la forme d'un tuple et les arguments nommés sous forme de " +"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme de " "dictionnaire. Ces arguments peuvent être passés à une autre fonction en " "utilisant ``*`` et ``**`` ::" @@ -890,7 +890,7 @@ msgid "" "but operations that transform that value into a new value always return a " "new object." msgstr "" -"Toutes les variables qui y font référence à n objet immuable (:class:`str`, :" +"Toutes les variables qui font référence à un objet immuable (:class:`str`, :" "class:`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les " "opérations qui transforment cette valeur en une nouvelle valeur renvoient " "toujours un nouvel objet." @@ -1019,7 +1019,7 @@ msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tout les " +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " "objets ne peuvent pas être copiés, mais la plupart le peuvent." #: ../Doc/faq/programming.rst:640 @@ -1036,7 +1036,7 @@ msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:651 msgid "How can I find the methods or attributes of an object?" -msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" +msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:653 msgid "" @@ -1146,9 +1146,9 @@ msgid "" "They are not truly operators but syntactic delimiters in assignment " "statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignation (``=``, ``+=`` etc). Ce " +"Ceci est vrai pour tous les opérateurs d'affectation (``=``, ``+=`` etc). Ce " "ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " -"dans les instructions d'assignation." +"dans les instructions d'affectation." #: ../Doc/faq/programming.rst:721 msgid "Is there an equivalent of C's \"?:\" ternary operator?" @@ -1212,10 +1212,10 @@ msgid "" msgstr "" "Une barre oblique dans la liste des arguments d'une fonction indique que les " "paramètres la précédant sont uniquement positionnels. Les paramètres " -"uniquement positionnels ne sont pas utilisables depuis l'extérieur. Lors de " -"l'appel d'une fonction qui n'accepte que des paramètres uniquement " -"positionnels, les arguments sont affectés au paramètres en fonction de leur " -"position. Par exemple, :func:`pow` est une fonction qui n'accepte que des " +"uniquement positionnels ne peuvent pas être référencés par leur nom depuis l'extérieur. Lors de " +"l'appel d'une fonction qui accepte des paramètres uniquement " +"positionnels, les arguments sont affectés aux paramètres en fonction de leur " +"position. Par exemple, la fonction :func:`pow` n'accepte que des " "paramètres uniquement positionnels. Sa documentation est la suivante ::" #: ../Doc/faq/programming.rst:794 @@ -1235,7 +1235,7 @@ msgid "" "position-only parameters in Python." msgstr "" "Notez que cet exemple n'est fournit qu'à titre informatif et n'est pas une " -"syntaxe Python valide, bien que la pep:`570` propose une syntaxe pour les " +"syntaxe Python valide, bien que la :pep:`570` propose une syntaxe pour les " "paramètres uniquement positionnels en Python." #: ../Doc/faq/programming.rst:809 @@ -1327,7 +1327,7 @@ msgid "" "indicates a hex number." msgstr "" "Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " -"telle façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"telle façon que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" "`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " "base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " "donnée est 0, le nombre est interprété selon les règles Python : un préfixe " @@ -1644,7 +1644,7 @@ msgid "" "especially under the form of tiny functions or methods (which are also often " "detrimental to readability)." msgstr "" -"Les abstractions ont tendance à créer des indirections et oblige " +"Les abstractions ont tendance à créer des indirections et obligent " "l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " "quantité de travail effectif, le programme sera ralentit. Il faut toujours " "éviter trop d'indirections, en particulier sous la forme de fonctions ou " @@ -1676,7 +1676,7 @@ msgid "" "The wiki page devoted to `performance tips `_." msgstr "" -"La page wiki dédiée aux `astuces de performance `_." #: ../Doc/faq/programming.rst:1081 @@ -1803,7 +1803,7 @@ msgstr "Comment itérer à rebours sur une séquence ?" msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" -"Utilisez la fonction native :func:`reversed`, qui est apparue en Python " +"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " "2.4 ::" #: ../Doc/faq/programming.rst:1147 @@ -1947,7 +1947,7 @@ msgid "" "The suggested approach is to create a list of the desired length first and " "then fill in each element with a newly created list::" msgstr "" -"L'approche suggérée est d'abord de créer une liste de la longueur désiré, " +"L'approche suggérée est d'abord de créer une liste de la longueur désirée, " "puis de remplir tous les éléments avec une nouvelle chaîne ::" #: ../Doc/faq/programming.rst:1253 @@ -2435,7 +2435,7 @@ msgstr "" "Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " "crée une nouvelle instance sans rapport avec le nom ``count`` dans dans le " "dictionnaire de données de ``self``. La redéfinition d'une donnée statique " -"de classe doit toujours spécifier la classe que l'on soit à l'intérieur " +"de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " "d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1586 @@ -2531,7 +2531,7 @@ msgstr "" "Cela ne garantit aucune protection : un utilisateur extérieur peut encore " "délibérément accéder à l'attribut ``_classname__spam``, et les valeurs " "privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " -"Python ne prennent jamais la peine d'utiliser des noms de variable privée." +"Python ne prennent jamais la peine d'utiliser des noms de variable privés." #: ../Doc/faq/programming.rst:1655 msgid "My class defines __del__ but it is not called when I delete the object." From 6e9ccd8a0b23a7af677eff00400067fd718b42c2 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Fri, 24 May 2019 00:24:59 +0200 Subject: [PATCH 16/26] powrap --- faq/programming.po | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 109c35d4d..7d8e26850 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -475,8 +475,8 @@ msgstr "" "La manière standard de partager des informations entre modules d'un même " "programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " "et de l'importer dans tous les modules de l'application ; le module devient " -"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance de " -"chaque module, tout changement dans l'instance est propagé partout. Par " +"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance " +"de chaque module, tout changement dans l'instance est propagé partout. Par " "exemple :" #: ../Doc/faq/programming.rst:271 @@ -669,9 +669,9 @@ msgid "" "dictionaries, lists, and class instances can lead to confusion." msgstr "" "Par définition, les objets immuables comme les nombres, les chaînes de " -"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements sur " -"des objets muables comme les dictionnaires, les listes et les instances de " -"classe peuvent porter à confusion." +"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements " +"sur des objets muables comme les dictionnaires, les listes et les instances " +"de classe peuvent porter à confusion." #: ../Doc/faq/programming.rst:363 msgid "" @@ -682,8 +682,8 @@ msgid "" msgstr "" "À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " -"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre est " -"à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " +"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " +"est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " "échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:371 @@ -727,8 +727,8 @@ msgid "" msgstr "" "Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " "dans la liste des paramètres de la fonction ; ceci donne les arguments " -"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme de " -"dictionnaire. Ces arguments peuvent être passés à une autre fonction en " +"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " +"de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " "utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:418 @@ -1212,11 +1212,12 @@ msgid "" msgstr "" "Une barre oblique dans la liste des arguments d'une fonction indique que les " "paramètres la précédant sont uniquement positionnels. Les paramètres " -"uniquement positionnels ne peuvent pas être référencés par leur nom depuis l'extérieur. Lors de " -"l'appel d'une fonction qui accepte des paramètres uniquement " -"positionnels, les arguments sont affectés aux paramètres en fonction de leur " -"position. Par exemple, la fonction :func:`pow` n'accepte que des " -"paramètres uniquement positionnels. Sa documentation est la suivante ::" +"uniquement positionnels ne peuvent pas être référencés par leur nom depuis " +"l'extérieur. Lors de l'appel d'une fonction qui accepte des paramètres " +"uniquement positionnels, les arguments sont affectés aux paramètres en " +"fonction de leur position. Par exemple, la fonction :func:`pow` n'accepte " +"que des paramètres uniquement positionnels. Sa documentation est la " +"suivante ::" #: ../Doc/faq/programming.rst:794 msgid "" From beacf0008ccfc3e183a8a1018079d64f4c8a9f92 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Sat, 25 May 2019 18:32:30 +0200 Subject: [PATCH 17/26] Remarques de JulienPalard --- faq/programming.po | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 7d8e26850..148d3f7d1 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -361,10 +361,10 @@ msgid "" "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" -"En Python, les variables qui ne sont référencées que dans une fonction sont " -"considérées comme globales. Si une affectation de variable est effectuée " -"dans le corps d'une fonction, cette variable sera locale, sauf si elle est " -"déclarée explicitement comme globale." +"Si, dans une fonction, une variable n'est pas modifiée mais seulement lue, " +"elle est implicitement considérée comme globale. Si on lui affecte une " +"valeur, cette variable devient locale (sauf si elle est explicitement " +"déclarée globale)." #: ../Doc/faq/programming.rst:201 msgid "" @@ -481,15 +481,15 @@ msgstr "" #: ../Doc/faq/programming.rst:271 msgid "config.py::" -msgstr "*config.py* :" +msgstr "*config.py* ::" #: ../Doc/faq/programming.rst:275 msgid "mod.py::" -msgstr "*mod.py* :" +msgstr "*mod.py* ::" #: ../Doc/faq/programming.rst:280 msgid "main.py::" -msgstr "*main.py* :" +msgstr "*main.py* ::" #: ../Doc/faq/programming.rst:286 msgid "" @@ -916,10 +916,11 @@ msgid "" "argument name in the caller and callee, and so no call-by-reference per se. " "You can achieve the desired effect in a number of ways." msgstr "" -"En Python, les arguments sont passés par copie. Vu qu'une copie créé des " -"références à des objets, il n'y pas de lien entre un argument dans l'appel " -"de la fonction et sa définition, et donc pas de passage par référence en " -"soi. Il y a cependant plusieurs façon d'en émuler un." +"En Python, les arguments sont passés comme des affectations de variables. Vu " +"qu'une affectation créé des références à des objets, il n'y pas de lien " +"entre un argument dans l'appel de la fonction et sa définition, et donc pas " +"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"émuler un." #: ../Doc/faq/programming.rst:519 msgid "By returning a tuple of the results::" @@ -1394,11 +1395,11 @@ msgid "" "unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " "module::" msgstr "" -"C'est impossible car les chaînes de caractères ne sont pas des objets " -"muables. Dans la plupart des cas, il faut tout simplement construire une " -"nouvelle chaîne à partir des morceaux de l'ancienne. Si toutefois vous avez " -"besoin d'un objet capable de modifier de la donnée unicode « sur place », " -"essayez d'utiliser un objet :class:`io.StringIO` ou le module :mod:`array` ::" +"C'est impossible car les chaînes de caractères sont immuables Dans la " +"plupart des cas, il faut tout simplement construire une nouvelle chaîne à " +"partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " +"capable de modifier de la donnée unicode « sur place », essayez d'utiliser " +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:922 msgid "How do I use strings to call functions/methods?" @@ -2576,9 +2577,9 @@ msgstr "" "ramasse-miettes, donc la méthode :meth:`__del__` peut être appelée à un " "moment aléatoire et pas opportun. C'est gênant pour essayer reproduire un " "problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets " -"est arbitraire. Il est possible de forcer l'appel du ramasse-miettes avec la " -"fonction :func:`gc.collect`, mais il existe certains cas ou les objets ne " -"seront jamais nettoyés." +"sont appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" +"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas ou " +"les objets ne seront jamais nettoyés." #: ../Doc/faq/programming.rst:1674 msgid "" @@ -2607,7 +2608,7 @@ msgstr "" "Une alternative pour éviter les références cycliques consiste à utiliser le " "module :mod:`weakref`, qui permet de faire référence à des objets sans " "incrémenter leur compteur de référence. Par exemple, les structures d'arbres " -"devraient référencer utiliser des références creuses entre pères et fils (si " +"devraient référencer utiliser des références faibles entre pères et fils (si " "nécessaire !)." #: ../Doc/faq/programming.rst:1694 @@ -2931,7 +2932,7 @@ msgstr "Ces solutions peuvent être combinées." #: ../Doc/faq/programming.rst:1858 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "__import__('x.y.z') renvoie ;comment accéder à z?" +msgstr "__import__('x.y.z') renvoie ; comment accéder à z ?" #: ../Doc/faq/programming.rst:1860 msgid "" From 1d981c581a1a513a806bd02d5341a107cb5b3020 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Sun, 26 May 2019 16:59:23 +0200 Subject: [PATCH 18/26] Correction compilation + remarques de JulienPalard & deronnax --- dict | 4 ---- faq/programming.po | 17 +++++++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/dict b/dict index c6a150409..92a279b6b 100644 --- a/dict +++ b/dict @@ -1,5 +1,4 @@ 017F -12h 212A allocateur allocateurs @@ -30,7 +29,6 @@ déserialiseur déserialiseurs docstrings d'itérateurs -E émoji réusiné réusinage @@ -101,7 +99,6 @@ réimplémente réimplémentez résolveurs ſ -S sérialisable sérialisable sérialisables @@ -118,7 +115,6 @@ tokenisation tokenisé tokenisés tty -unicode W3C wxWidgets Zope diff --git a/faq/programming.po b/faq/programming.po index 148d3f7d1..76936af34 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -233,8 +233,8 @@ msgstr "" "(sous les deux formes) dans le code source et en recherchant ces modules " "dans le chemin Python standard ainsi que dans le répertoire source (pour les " "modules natifs). Il transforme ensuite le code intermédiaire des modules " -"écrits en Python en code C (des instanciateurs de tableaux qui peuvent être " -"transformés en objets de code à l'aide du module marshal) et crée un fichier " +"écrits en Python en code C (des tableaux pré-remplis qui peuvent être " +"transformés en objets code à l'aide du module *marshal*) et crée un fichier " "de configuration personnalisé qui contient uniquement les modules natifs qui " "sont réellement utilisés dans le programme. Il compile ensuite le code C " "généré et le lie au reste de l'interpréteur Python pour former un binaire " @@ -361,10 +361,10 @@ msgid "" "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" -"Si, dans une fonction, une variable n'est pas modifiée mais seulement lue, " -"elle est implicitement considérée comme globale. Si on lui affecte une " -"valeur, cette variable devient locale (sauf si elle est explicitement " -"déclarée globale)." +"En Python, si dans une fonction, une variable n'est pas modifiée mais " +"seulement lue, elle est implicitement considérée comme globale. Si une " +"valeur lui est affectée, elle est considérée locale (sauf si elle est " +"explicitement déclarée globale)." #: ../Doc/faq/programming.rst:201 msgid "" @@ -1398,7 +1398,7 @@ msgstr "" "C'est impossible car les chaînes de caractères sont immuables Dans la " "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " -"capable de modifier de la donnée unicode « sur place », essayez d'utiliser " +"capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " "un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:922 @@ -1562,7 +1562,8 @@ msgid "" "O or multi-threading." msgstr "" "Les comportements peuvent différer d'un système d'exploitation à l'autre, " -"tout particulièrement quand il s'agit d'E/S ou de fils d'exécution multiples." +"tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " +"multiples." #: ../Doc/faq/programming.rst:1032 msgid "" From 800ef42390b9d7bba42eb8954c200c016b783dd1 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Sun, 26 May 2019 17:26:22 +0200 Subject: [PATCH 19/26] Apply suggestions from JulienPalard Co-Authored-By: Julien Palard --- faq/programming.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 76936af34..bede77785 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -82,7 +82,7 @@ msgstr "" "la possibilité de déboguer des programmes développés sans PythonWin. " "Pythonwin est disponible dans le projet `Extensions Python pour Windows " "`__ et fait partie de la " -"distribution ActivePython (voir https://www.activestate.com/activepython\\)." +"distribution ActivePython (voir https://www.activestate.com/activepython\\ )." #: ../Doc/faq/programming.rst:38 msgid "" @@ -534,7 +534,7 @@ msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" #: ../Doc/faq/programming.rst:304 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" -"les modules de la bibliothèque standard -- e.g. ``sys``, ``os``, ``getopt``, " +"les modules de la bibliothèque standard — e.g. ``sys``, ``os``, ``getopt``, " "``re``" #: ../Doc/faq/programming.rst:305 @@ -543,7 +543,7 @@ msgid "" "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" "les modules externes (tout ce qui est installé dans le dossier *site-" -"packages* de Python) -- e.g. *mx.DateTime, ZODB, PIL.Image*, etc." +"packages* de Python) — e.g. *mx.DateTime, ZODB, PIL.Image*, etc." #: ../Doc/faq/programming.rst:307 msgid "locally-developed modules" @@ -788,7 +788,7 @@ msgid "" "(the list), and both ``x`` and ``y`` refer to it." msgstr "" "Les variables ne sont que des noms qui font référence à des objets. La ligne " -"``y = x`` ne crée pas une copie de la liste -- elle crée une nouvelle " +"``y = x`` ne crée pas une copie de la liste — elle crée une nouvelle " "variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " "n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." @@ -2742,8 +2742,8 @@ msgid "" "pyc`` file for a module that is not imported -- you can, using the :mod:" "`py_compile` and :mod:`compileall` modules." msgstr "" -"Pour créer un fichier ``.pyc`` pour ``foo`` -- c'est à dire de créer un " -"fichier ``.pyc`` pour un module qui n'est pas importé -- il existe les " +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est à dire de créer un " +"fichier ``.pyc`` pour un module qui n'est pas importé — il existe les " "modules :mod:`py_compile` et :mod:`compileall`." #: ../Doc/faq/programming.rst:1767 From e3594ffcf8cefdd95c3c64391b9d993dc0c765e2 Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Thu, 30 May 2019 11:35:22 +0200 Subject: [PATCH 20/26] Apply suggestions from code review Merci CristopheNan pour cette lecture rigoureuse. Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- faq/programming.po | 170 ++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index bede77785..d85b89833 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -97,7 +97,7 @@ msgstr "" "création et la manipulation de fenêtres, un inspecteur d'objets, de " "nombreuses visualisations des sources comme un navigateur d'objets, les " "hiérarchies d'héritage, la documentation html générée par les docstrings, un " -"débogueur avancé, une aide intégrée et le support de Zope." +"débogueur avancé, une aide intégrée et la prise en charge de Zope." #: ../Doc/faq/programming.rst:44 msgid "" @@ -124,7 +124,7 @@ msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" msgstr "" -"Il y a de nombreux EDI Python propriétaires qui embarquent un débogueur " +"Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " "graphique. Notamment :" #: ../Doc/faq/programming.rst:55 @@ -152,7 +152,7 @@ msgid "" "http://pychecker.sourceforge.net/." msgstr "" "PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " -"source Python et émet des avertissement sur la complexité et le style du " +"source Python et émet des avertissements relatifs à la complexité et au style du " "code. PyChecker est disponible sur http://pychecker.sourceforge.net/." #: ../Doc/faq/programming.rst:69 @@ -361,7 +361,7 @@ msgid "" "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" -"En Python, si dans une fonction, une variable n'est pas modifiée mais " +"En Python, si une variable n'est pas modifiée dans une fonction mais " "seulement lue, elle est implicitement considérée comme globale. Si une " "valeur lui est affectée, elle est considérée locale (sauf si elle est " "explicitement déclarée globale)." @@ -408,7 +408,7 @@ msgid "" "``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " "see that they all return ``16``::" msgstr "" -"Le code précédent créé une liste de 5 expressions lambda qui calculent " +"Le code précédent crée une liste de 5 expressions lambda qui calculent " "chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " "``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" @@ -444,11 +444,11 @@ msgid "" "the first lambda, ``1`` in the second, ``2`` in the third, and so on. " "Therefore each lambda will now return the correct result::" msgstr "" -"Dans ce code, ``n=x`` créé une nouvelle variable ``n``, locale à " +"Dans ce code, ``n=x`` crée une nouvelle variable ``n``, locale à " "l'expression. Cette variable est évaluée quand l'expression est définie donc " -"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` sera donc " +"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " "``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " -"troisième et ainsi de suite. Chaque expression lambda renverra donc le " +"troisième et ainsi de suite. Chaque expression lambda renvoie donc le " "résultat correct :" #: ../Doc/faq/programming.rst:258 @@ -511,8 +511,8 @@ msgid "" "undefined names." msgstr "" "De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " -"encombre l'espace de noms de l'importateur et rend la détection de noms non-" -"définis beaucoup plus ardue aux analyseurs de code." +"encombre l'espace de nommage de l'importateur et rend la détection de noms non-" +"définis beaucoup plus ardue pour les analyseurs de code." #: ../Doc/faq/programming.rst:297 msgid "" @@ -521,10 +521,10 @@ msgid "" "is in scope. Using one import per line makes it easy to add and delete " "module imports, but using multiple imports per line uses less screen space." msgstr "" -"Les modules doivent être importés au début d'un fichier. Ceci pour afficher " -"clairement les autres modules dont le code à besoin et éviter de se demander " -"si le module est dans le contexte. Faire un seul import par ligne rend " -"l'ajout et la suppression d'un import de module plus aisé, mais importer " +"Les modules doivent être importés au début d'un fichier. Ceci permet d'afficher " +"clairement de quels modules le code à besoin et évite de se demander " +"si le module est dans le contexte. Faire un seul `import` par ligne rend " +"l'ajout et la suppression d'une importation de module plus aisé, mais importer " "plusieurs modules sur une même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:302 @@ -554,8 +554,8 @@ msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" msgstr "" -"Il est parfois nécessaire de déplacer des imports dans une fonction ou une " -"classe pour éviter les problèmes d'imports circulaires. Comme le souligne " +"Il est parfois nécessaire de déplacer des importations dans une fonction ou une " +"classe pour éviter les problèmes d'importations circulaires. Comme le souligne " "Gordon McMillan :" #: ../Doc/faq/programming.rst:312 @@ -566,10 +566,10 @@ msgid "" "That's because names in the 1st are not yet available, because the first " "module is busy importing the 2nd." msgstr "" -"Il n'y a aucun souci à faire des imports circulaires tant que les deux " +"Il n'y a aucun souci à faire des importations circulaires tant que les deux " "modules utilisent la forme \"import \" . Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " -"module import name\"*) et que l'import est dans l'espace de noms du fichier. " +"module import name\"*) et que l'importation est dans l'espace de nommage du fichier. " "Les noms du premier module ne sont en effet pas encore disponibles car le " "premier module est occupé à importer le second." @@ -581,9 +581,9 @@ msgid "" "module can do its import." msgstr "" "Dans ce cas, si le second module n'est utilisé que dans une fonction, " -"l'import peut facilement être déplacé dans cette fonction. Au moment où " -"l'import sera appelé, le premier module aura fini de s'initialiser et le " -"second pourra faire son import." +"l'importation peut facilement être déplacée dans cette fonction. Au moment où " +"l'importation sera appelée, le premier module aura fini de s'initialiser et le " +"second pourra faire son importation." #: ../Doc/faq/programming.rst:323 msgid "" @@ -593,11 +593,11 @@ msgid "" "importing the correct modules in the corresponding platform-specific code is " "a good option." msgstr "" -"Il peut parfois être nécessaire de déplacer des imports de modules hors de " +"Il peut parfois être nécessaire de déplacer des importations de modules hors de " "l'espace de plus haut niveau du code si certains de ces modules dépendent de " "la machine utilisée. Dans ce cas de figure, il est parfois impossible " "d'importer tous les modules au début du fichier. Dans ce cas, il est " -"recommandé de faire l'import des modules adéquats dans le code spécifique à " +"recommandé d'importer les modules adéquats dans le code spécifique à " "la machine." #: ../Doc/faq/programming.rst:328 @@ -618,7 +618,7 @@ msgstr "" "problème comme éviter des dépendances circulaires ou réduire le temps " "d'initialisation d'un module. Cette technique est particulièrement utile si " "la majorité des imports est superflue selon le flux d'exécution du " -"programme. Il est également pertinent de déplacer des imports dans une " +"programme. Il est également pertinent de déplacer des importations dans une " "fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " "chargement d'un module peut être coûteux à cause du coût fixe " "d'initialisation d'un module, mais charger un module plusieurs fois est " @@ -680,7 +680,7 @@ msgid "" "inside the function, check if the parameter is ``None`` and create a new " "list/dictionary/whatever if it is. For example, don't write::" msgstr "" -"À cause de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"En raison de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " "valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " "est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " @@ -917,7 +917,7 @@ msgid "" "You can achieve the desired effect in a number of ways." msgstr "" "En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation créé des références à des objets, il n'y pas de lien " +"qu'une affectation crée des références à des objets, il n'y pas de lien " "entre un argument dans l'appel de la fonction et sa définition, et donc pas " "de passage par référence en soi. Il y a cependant plusieurs façon d'en " "émuler un." @@ -935,7 +935,7 @@ msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" "En utilisant des variables globales. Cette approche ne fonctionne pas dans " -"des contextes à plusieurs fils d'exécution (non *thread-safe*), et n'est " +"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), et n'est " "donc pas recommandée." #: ../Doc/faq/programming.rst:534 @@ -1073,9 +1073,9 @@ msgid "" "instance of class A. However, it is impossible to say whether the " "instance's name is a or b, since both names are bound to the same value." msgstr "" -"Affirmer que la classe ait un nom est discutable. Bien qu'elle soit liée à " +"Affirmer que la classe a un nom est discutable. Bien qu'elle soit liée à " "deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " -"tout de même être une instance de la classe A. De même, Il est impossible de " +"tout de même être une instance de la classe A. De même, il est impossible de " "dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " "même valeur." @@ -1108,7 +1108,7 @@ msgid "" msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " "chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " -"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " +"­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " "tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." #: ../Doc/faq/programming.rst:695 @@ -1173,7 +1173,7 @@ msgid "" "has a false boolean value. Therefore, it is always better to use the ``... " "if ... else ...`` form." msgstr "" -"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* à " +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* a " "la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " "if ... else ...``." @@ -1228,7 +1228,7 @@ msgid "" msgstr "" "La barre oblique à la fin de la liste des paramètres signifie que les trois " "paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " -"des arguments nommés provoquerait une erreur ::" +"des arguments nommés provoque une erreur ::" #: ../Doc/faq/programming.rst:803 msgid "" @@ -1236,7 +1236,7 @@ msgid "" "syntax in Python, although there is :pep:`570`, which proposes a syntax for " "position-only parameters in Python." msgstr "" -"Notez que cet exemple n'est fournit qu'à titre informatif et n'est pas une " +"Notez que cet exemple n'est fourni qu'à titre informatif et n'est pas une " "syntaxe Python valide, bien que la :pep:`570` propose une syntaxe pour les " "paramètres uniquement positionnels en Python." @@ -1315,8 +1315,8 @@ msgid "" "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " "e.g. ``float('144') == 144.0``." msgstr "" -"Pour les entiers, utilisez la fonction native :func:`int` de type " -"constructeur, par exemple ``int('144') == 144``. De façon similaire, :func:" +"Pour les entiers, utilisez le constructeur natif de :func:`int`, " +"par exemple ``int('144') == 144``. De façon similaire, :func:" "`float` donne la valeur flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:860 @@ -1333,7 +1333,7 @@ msgstr "" "`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " "base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " "donnée est 0, le nombre est interprété selon les règles Python : un préfixe " -"``0o`` indique de l'octal, et ``0x`` indique de l'hexadécimal." +"``0o`` indique de l'octal et ``0x`` indique de l'hexadécimal." #: ../Doc/faq/programming.rst:866 msgid "" @@ -1345,7 +1345,7 @@ msgid "" "directory." msgstr "" "N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " -"caractères en nombres. :func:`eval` est beaucoup plus lent et pose des " +"caractères en nombres. :func:`eval` est beaucoup plus lente et pose des " "problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " "Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " "pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " @@ -1395,7 +1395,7 @@ msgid "" "unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " "module::" msgstr "" -"C'est impossible car les chaînes de caractères sont immuables Dans la " +"C'est impossible car les chaînes de caractères sont immuables. Dans la " "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " "capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " @@ -1454,7 +1454,7 @@ msgid "" "control over the contents of the string, someone could pass a string that " "resulted in an arbitrary function being executed." msgstr "" -"Note : Utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"Note : utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " "contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " "pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " "fonction." @@ -1545,7 +1545,7 @@ msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" msgstr "" -"Question difficile, en général. Avant, tout, il faut garder en tête les " +"Question difficile, en général. Avant tout, il faut garder en tête les " "points suivants avant d'aller plus loin :" #: ../Doc/faq/programming.rst:1028 @@ -1667,7 +1667,7 @@ msgstr "" "Si vous atteignez les limites de ce que du Python « pur » permet de faire, " "il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " "`_ peut compiler une version légèrement modifiée de code " -"Python en une extension C, et est disponible sur de nombreuses plate-formes. " +"Python en une extension C et est disponible sur de nombreuses plate-formes. " "Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " "des types) pour rendre votre code beaucoup plus rapide que s'il était " "interprété. Si vous avez confiance en vos capacités de programmation en C, " @@ -1814,7 +1814,7 @@ msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." msgstr "" -"Cela ne modifiera pas la séquence initiale, mais construira à la place une " +"Cela ne modifie pas la séquence initiale, mais construit à la place une " "copie en ordre inverse pour itérer dessus." #: ../Doc/faq/programming.rst:1150 @@ -1888,7 +1888,7 @@ msgid "" msgstr "" "Le module ``array`` fournit des méthodes pour créer des tableaux de types " "fixes dans une représentation compacte, mais ils sont plus lents à indexer " -"que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " +"que les listes. Notez aussi que l'extension ``Numeric`` (et d'autres) " "fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." @@ -1939,7 +1939,7 @@ msgid "" "containing 3 references to the same list of length two. Changes to one row " "will show in all rows, which is almost certainly not what you want." msgstr "" -"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copies mais " +"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copie mais " "seulement des références aux objets existants. Le ``*3`` crée une liste " "contenant trois références à la même liste de longueur deux. Un changement " "dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " @@ -2021,7 +2021,7 @@ msgstr "" "``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " "``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " "l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " -"modifier la cible sur lequel pointe un élément d'un n-uplet." +"modifier la cible sur laquelle pointe un élément d'un n-uplet." #: ../Doc/faq/programming.rst:1297 msgid "" @@ -2060,10 +2060,10 @@ msgid "" "calling ``extend`` on the list and returning the list. That's why we say " "that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" msgstr "" -"Pour comprendre ce qui se passe, il faut savoir que (a) si un objet " +"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un objet " "implémente la méthode magique c, celle-ci est appelée quand l'affectation " "incrémentale ``+=`` est exécutée et sa valeur de retour est utilisée dans " -"l'instruction d'affectation ; et que (b) pour les listes, ``__iadd__`` " +"l'instruction d'affectation ; et que, deuxièmement, pour les listes, ``__iadd__`` " "équivaut à appeler ``extend`` sur la liste et à renvoyer celle-ci. C'est " "pour cette raison que l'on dit que pour les listes, ``+=`` est un \"raccourci" "\" pour ``list.extend``::" @@ -2079,8 +2079,8 @@ msgid "" "assignment is a no-op, since it is a pointer to the same object that " "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" -"L'objet sur lequel pointe ``a_list`` a été modifié, et le pointeur vers " -"l'objet modifié est réaffecté à ``a_list``. In fine, l'affectation ne change " +"L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " +"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne change " "rien, puisque c'est un pointeur vers le même objet que sur lequel pointait " "``a_list``, mais l'affectation a tout de même lieu." @@ -2117,7 +2117,7 @@ msgid "" "method::" msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les " -"éléments d'une liste par une transformation qui fait correspondre chaque " +"éléments d'une liste à l'aide une transformation qui fait correspondre chaque " "élément à sa \"valeur de tri\". En Python, ceci est géré par l'argument " "``key`` de la méthode :meth:`list.sort` ::" @@ -2150,11 +2150,11 @@ msgstr "" "Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " "qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " "lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " -"``append()`` doit ré-allouer de la mémoire, et, même si elle utilise " +"``append()`` doit ré-allouer de la mémoire et, même si elle utilise " "quelques astuces pour éviter d'effectuer la ré-allocation à chaque appel, " "elle doit tout de même le faire de temps en temps, ce qui coûte assez cher. " "Deuxièmement, parce que l'expression ``result.append`` fait un accès " -"supplémentaire à un attribut, et enfin, parce que tous ces appels de " +"supplémentaire à un attribut et, enfin, parce que tous ces appels de " "fonctions réduisent la vitesse d'exécution." #: ../Doc/faq/programming.rst:1401 @@ -2190,7 +2190,7 @@ msgstr "" "(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " "de ses classes de base. Cela permet à un modèle d'objet d'être " "successivement raffiné par héritage. Vous pourriez avoir une classe " -"générique ``Mailbox`` qui fournit des méthodes d'accès de base pour une " +"générique ``Mailbox``, qui fournit des méthodes d'accès de base pour une " "boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " "``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " "spécifiques de boîtes aux lettres." @@ -2262,10 +2262,10 @@ msgid "" "and doing a different thing based on what class it is. For example, if you " "have a function that does something::" msgstr "" -"Notez que la plupart des programmes n'utilisent que rarement pas :func:" +"Notez que la plupart des programmes n'utilisent que rarement :func:" "`isInstance` sur les classes définies par l'utilisateur. Si vous développez " -"vous-même les classes, une approche plus orientée-objet consiste définir des " -"méthodes sur les classes qui encapsulent un comportement particulier, plutôt " +"vous-même des classes, une approche plus orientée-objet consiste définir des " +"méthodes sur les classes qui sont porteuses d'un comportement particulier, plutôt " "que de vérifier la classe de l'objet et de faire un traitement ad-hoc. Par " "exemple, si vous avez une fonction qui fait quelque chose : ::" @@ -2289,11 +2289,11 @@ msgid "" "implementation of the method you're interested in changing and delegates all " "other methods to the corresponding method of ``x``." msgstr "" -"La délégation est une technique orientée objet (aussi appelé un patron de " +"La délégation est une technique orientée objet (aussi appelée « patron de " "conception). Prenons un objet ``x`` dont on souhaite modifier le " "comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " "qui fournit une nouvelle implémentation de la méthode qui nous intéresse " -"dans l'évolution et les délégués de toutes les autres méthodes la méthode " +"dans l'évolution et qui délègue toute autre méthode à la méthode " "correspondante de ``x``." #: ../Doc/faq/programming.rst:1487 @@ -2405,7 +2405,7 @@ msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." msgstr "" -"Les données statiques et les méthodes statiques (au sens C + + ou Java) sont " +"Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " "prises en charge en Python." #: ../Doc/faq/programming.rst:1563 @@ -2436,7 +2436,7 @@ msgid "" "whether inside a method or not::" msgstr "" "Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " -"crée une nouvelle instance sans rapport avec le nom ``count`` dans dans le " +"crée une nouvelle instance sans rapport avec le nom ``count`` dans le " "dictionnaire de données de ``self``. La redéfinition d'une donnée statique " "de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " "d'une méthode ou non ::" @@ -2518,7 +2518,7 @@ msgid "" "stripped." msgstr "" "Les noms de variables commençant avec deux tirets bas sont « déformés », " -"c'est un moyen simple mais efficace de définir variables privées à une " +"c'est un moyen simple mais efficace de définir des variables privées à une " "classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " "deux tirets bas et se terminant par au plus un tiret bas) est textuellement " "remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " @@ -2532,7 +2532,7 @@ msgid "" "private variable names at all." msgstr "" "Cela ne garantit aucune protection : un utilisateur extérieur peut encore " -"délibérément accéder à l'attribut ``_classname__spam``, et les valeurs " +"délibérément accéder à l'attribut ``_classname__spam`` et les valeurs " "privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " "Python ne prennent jamais la peine d'utiliser des noms de variable privés." @@ -2552,8 +2552,8 @@ msgid "" "decrements the object's reference count, and if this reaches zero :meth:" "`__del__` is called." msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` --- elle " -"décrémente simplement le compteur de références de l'objet, et si celui-ci " +"La commande *del* n'appelle pas forcément :meth:`__del__` — elle " +"décrémente simplement le compteur de références de l'objet et, si celui-ci " "arrive à zéro, :meth:`__del__` est appelée." #: ../Doc/faq/programming.rst:1663 @@ -2570,8 +2570,8 @@ msgid "" "cases where objects will never be collected." msgstr "" "Si la structure de données contient des références circulaires (e.g. un " -"arbre dans lequel chaque fils a une référence sur son père, et chaque père " -"maintient une liste de référence à ses fils), le compteur de référence " +"arbre dans lequel chaque fils référence son père, et chaque père " +"garde une liste de ses fils), le compteur de références " "n'arrivera jamais à zéro. Python exécute périodiquement un algorithme pour " "détecter ce genre de cycles, mais il peut se passer un certain temps entre " "le moment où la structure est référencée pour la dernière fois et l'appel du " @@ -2579,7 +2579,7 @@ msgstr "" "moment aléatoire et pas opportun. C'est gênant pour essayer reproduire un " "problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets " "sont appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" -"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas ou " +"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " "les objets ne seront jamais nettoyés." #: ../Doc/faq/programming.rst:1674 @@ -2594,7 +2594,7 @@ msgstr "" "Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " "de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " -"supprimer les attributs qui font référence à des sous-objets. Il vaut mieux " +"supprimer les attributs qui référencent des sous-objets. Il vaut mieux " "ne pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" "`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." @@ -2608,8 +2608,8 @@ msgid "" msgstr "" "Une alternative pour éviter les références cycliques consiste à utiliser le " "module :mod:`weakref`, qui permet de faire référence à des objets sans " -"incrémenter leur compteur de référence. Par exemple, les structures d'arbres " -"devraient référencer utiliser des références faibles entre pères et fils (si " +"incrémenter leur compteur de références. Par exemple, les structures d'arbres " +"devraient utiliser des références faibles entre pères et fils (si " "nécessaire !)." #: ../Doc/faq/programming.rst:1694 @@ -2637,7 +2637,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1707 msgid "Why does the result of ``id()`` appear to be not unique?" -msgstr "Pourquoi le résultat de ``id()`` se répète-t'il ?" +msgstr "Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets différents ?" #: ../Doc/faq/programming.rst:1709 msgid "" @@ -2688,8 +2688,8 @@ msgstr "" "contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " "du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " "identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " -"centrale qui dépend du binaire ``python`` qui l'a créé. (Voir :pep:`3147` " -"pour de plus amples précisions.)" +"centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " +"pour de plus amples précisions)." #: ../Doc/faq/programming.rst:1746 msgid "" @@ -2701,7 +2701,7 @@ msgid "" msgstr "" "Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " "est un problème de droits sur le dossier qui contient le fichier source, ce " -"qui veut dire qu'il est impossible de créer le le sous-dossier " +"qui veut dire qu'il est impossible de créer le sous-dossier " "``__pycache__``. Ceci peut arriver, par exemple, si vous développez en tant " "qu'un certain utilisateur, mais que le code est exécuté en tant qu'un autre " "utilisateur, par exemple pour tester un serveur Web." @@ -2742,7 +2742,7 @@ msgid "" "pyc`` file for a module that is not imported -- you can, using the :mod:" "`py_compile` and :mod:`compileall` modules." msgstr "" -"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est à dire de créer un " +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un " "fichier ``.pyc`` pour un module qui n'est pas importé — il existe les " "modules :mod:`py_compile` et :mod:`compileall`." @@ -2773,7 +2773,7 @@ msgid "" "Python files to compile::" msgstr "" "Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " -"avec le module :mod:`compileall`. C'est faisable depuis l'invite de commande " +"avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " "en exécutant ``compileall.py`` avec le chemin du dossier contenant les " "fichiers Python à compiler ::" @@ -2814,7 +2814,7 @@ msgstr "*bar.py* ::" #: ../Doc/faq/programming.rst:1817 msgid "The problem is that the interpreter will perform the following steps:" -msgstr "Le problème réside dans les étapes que va l'interpréteur va réaliser :" +msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" #: ../Doc/faq/programming.rst:1819 msgid "main imports foo" @@ -2879,7 +2879,7 @@ msgid "" "only. This means everything from an imported module is referenced as " "``.``." msgstr "" -"Guido van Rossum déconseille d'utiliser ``from import ...``, et de " +"Guido van Rossum déconseille d'utiliser ``from import ...`` et de " "mettre tout le code dans des fonctions. L'initialisation des variables " "globales et des variables de classe ne doit utiliser que des constantes ou " "des fonctions natives. Ceci implique que tout ce qui est fourni par un " @@ -2916,16 +2916,16 @@ msgid "" "van Rossum doesn't like this approach much because the imports appear in a " "strange place, but it does work." msgstr "" -"van Rossum désapprouve cette approche car les imports se trouvent à un " -"niveau bizarre, mais cela fonctionne." +"van Rossum désapprouve cette approche car les importations se trouvent à un " +"endroit bizarre, mais cela fonctionne." #: ../Doc/faq/programming.rst:1851 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." msgstr "" -"Matthias Urlichs conseille de restructurer le code pour éviter les imports " -"récursifs." +"Matthias Urlichs conseille de restructurer le code pour éviter les importations " +"récursives." #: ../Doc/faq/programming.rst:1854 msgid "These solutions are not mutually exclusive." @@ -2962,7 +2962,7 @@ msgstr "" "Pour des raisons de performance et de cohérence, Python ne lit le fichier " "d'un module que la première fois où celui-ci est importé. Si ce n'était pas " "le cas, dans un programme composé d'un très grand nombre de modules qui " -"importeraient tous le même module de base, ce module de base serait analysé " +"importent tous le même module de base, ce module de base serait analysé " "et ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " "module, il faut faire ::" @@ -2981,9 +2981,9 @@ msgid "" "updated to use the new class definition. This can result in the following " "paradoxical behaviour::" msgstr "" -"continueraient de fonctionner avec l'ancienne version des objets importés. " +"continuent de fonctionner avec l'ancienne version des objets importés. " "Si le module contient une définition de classe, le instances déjà existantes " -"de celle-ci ne seront *pas* mises à jour avec la nouvelle définition de la " +"de celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " "classe. Ceci peut conduire au comportement paradoxal suivant :" #: ../Doc/faq/programming.rst:1897 From 52d8900770b7066969996cafad9b3cddc932f8cd Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 30 May 2019 12:00:55 +0200 Subject: [PATCH 21/26] powrap --- faq/programming.po | 159 +++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 78 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index d85b89833..0c78acc34 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -152,8 +152,9 @@ msgid "" "http://pychecker.sourceforge.net/." msgstr "" "PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " -"source Python et émet des avertissements relatifs à la complexité et au style du " -"code. PyChecker est disponible sur http://pychecker.sourceforge.net/." +"source Python et émet des avertissements relatifs à la complexité et au " +"style du code. PyChecker est disponible sur http://pychecker.sourceforge." +"net/." #: ../Doc/faq/programming.rst:69 msgid "" @@ -511,8 +512,8 @@ msgid "" "undefined names." msgstr "" "De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " -"encombre l'espace de nommage de l'importateur et rend la détection de noms non-" -"définis beaucoup plus ardue pour les analyseurs de code." +"encombre l'espace de nommage de l'importateur et rend la détection de noms " +"non-définis beaucoup plus ardue pour les analyseurs de code." #: ../Doc/faq/programming.rst:297 msgid "" @@ -521,11 +522,11 @@ msgid "" "is in scope. Using one import per line makes it easy to add and delete " "module imports, but using multiple imports per line uses less screen space." msgstr "" -"Les modules doivent être importés au début d'un fichier. Ceci permet d'afficher " -"clairement de quels modules le code à besoin et évite de se demander " -"si le module est dans le contexte. Faire un seul `import` par ligne rend " -"l'ajout et la suppression d'une importation de module plus aisé, mais importer " -"plusieurs modules sur une même ligne prend moins d'espace." +"Les modules doivent être importés au début d'un fichier. Ceci permet " +"d'afficher clairement de quels modules le code à besoin et évite de se " +"demander si le module est dans le contexte. Faire un seul `import` par ligne " +"rend l'ajout et la suppression d'une importation de module plus aisé, mais " +"importer plusieurs modules sur une même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:302 msgid "It's good practice if you import modules in the following order:" @@ -554,9 +555,9 @@ msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" msgstr "" -"Il est parfois nécessaire de déplacer des importations dans une fonction ou une " -"classe pour éviter les problèmes d'importations circulaires. Comme le souligne " -"Gordon McMillan :" +"Il est parfois nécessaire de déplacer des importations dans une fonction ou " +"une classe pour éviter les problèmes d'importations circulaires. Comme le " +"souligne Gordon McMillan :" #: ../Doc/faq/programming.rst:312 msgid "" @@ -569,9 +570,9 @@ msgstr "" "Il n'y a aucun souci à faire des importations circulaires tant que les deux " "modules utilisent la forme \"import \" . Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " -"module import name\"*) et que l'importation est dans l'espace de nommage du fichier. " -"Les noms du premier module ne sont en effet pas encore disponibles car le " -"premier module est occupé à importer le second." +"module import name\"*) et que l'importation est dans l'espace de nommage du " +"fichier. Les noms du premier module ne sont en effet pas encore disponibles " +"car le premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:318 msgid "" @@ -581,9 +582,9 @@ msgid "" "module can do its import." msgstr "" "Dans ce cas, si le second module n'est utilisé que dans une fonction, " -"l'importation peut facilement être déplacée dans cette fonction. Au moment où " -"l'importation sera appelée, le premier module aura fini de s'initialiser et le " -"second pourra faire son importation." +"l'importation peut facilement être déplacée dans cette fonction. Au moment " +"où l'importation sera appelée, le premier module aura fini de s'initialiser " +"et le second pourra faire son importation." #: ../Doc/faq/programming.rst:323 msgid "" @@ -593,12 +594,12 @@ msgid "" "importing the correct modules in the corresponding platform-specific code is " "a good option." msgstr "" -"Il peut parfois être nécessaire de déplacer des importations de modules hors de " -"l'espace de plus haut niveau du code si certains de ces modules dépendent de " -"la machine utilisée. Dans ce cas de figure, il est parfois impossible " +"Il peut parfois être nécessaire de déplacer des importations de modules hors " +"de l'espace de plus haut niveau du code si certains de ces modules dépendent " +"de la machine utilisée. Dans ce cas de figure, il est parfois impossible " "d'importer tous les modules au début du fichier. Dans ce cas, il est " -"recommandé d'importer les modules adéquats dans le code spécifique à " -"la machine." +"recommandé d'importer les modules adéquats dans le code spécifique à la " +"machine." #: ../Doc/faq/programming.rst:328 msgid "" @@ -935,8 +936,8 @@ msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" "En utilisant des variables globales. Cette approche ne fonctionne pas dans " -"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), et n'est " -"donc pas recommandée." +"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " +"et n'est donc pas recommandée." #: ../Doc/faq/programming.rst:534 msgid "By passing a mutable (changeable in-place) object::" @@ -1315,9 +1316,9 @@ msgid "" "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " "e.g. ``float('144') == 144.0``." msgstr "" -"Pour les entiers, utilisez le constructeur natif de :func:`int`, " -"par exemple ``int('144') == 144``. De façon similaire, :func:" -"`float` donne la valeur flottante, par exemple ``float('144') == 144.0``." +"Pour les entiers, utilisez le constructeur natif de :func:`int`, par exemple " +"``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " +"flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:860 msgid "" @@ -2060,13 +2061,13 @@ msgid "" "calling ``extend`` on the list and returning the list. That's why we say " "that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" msgstr "" -"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un objet " -"implémente la méthode magique c, celle-ci est appelée quand l'affectation " -"incrémentale ``+=`` est exécutée et sa valeur de retour est utilisée dans " -"l'instruction d'affectation ; et que, deuxièmement, pour les listes, ``__iadd__`` " -"équivaut à appeler ``extend`` sur la liste et à renvoyer celle-ci. C'est " -"pour cette raison que l'on dit que pour les listes, ``+=`` est un \"raccourci" -"\" pour ``list.extend``::" +"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un " +"objet implémente la méthode magique c, celle-ci est appelée quand " +"l'affectation incrémentale ``+=`` est exécutée et sa valeur de retour est " +"utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " +"listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " +"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " +"``+=`` est un \"raccourci\" pour ``list.extend``::" #: ../Doc/faq/programming.rst:1335 msgid "This is equivalent to::" @@ -2080,9 +2081,9 @@ msgid "" "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" "L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " -"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne change " -"rien, puisque c'est un pointeur vers le même objet que sur lequel pointait " -"``a_list``, mais l'affectation a tout de même lieu." +"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne " +"change rien, puisque c'est un pointeur vers le même objet que sur lequel " +"pointait ``a_list``, mais l'affectation a tout de même lieu." #: ../Doc/faq/programming.rst:1345 msgid "Thus, in our tuple example what is happening is equivalent to::" @@ -2117,9 +2118,9 @@ msgid "" "method::" msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les " -"éléments d'une liste à l'aide une transformation qui fait correspondre chaque " -"élément à sa \"valeur de tri\". En Python, ceci est géré par l'argument " -"``key`` de la méthode :meth:`list.sort` ::" +"éléments d'une liste à l'aide une transformation qui fait correspondre " +"chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " +"l'argument ``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1370 msgid "How can I sort one list by values from another list?" @@ -2150,9 +2151,9 @@ msgstr "" "Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " "qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " "lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " -"``append()`` doit ré-allouer de la mémoire et, même si elle utilise " -"quelques astuces pour éviter d'effectuer la ré-allocation à chaque appel, " -"elle doit tout de même le faire de temps en temps, ce qui coûte assez cher. " +"``append()`` doit ré-allouer de la mémoire et, même si elle utilise quelques " +"astuces pour éviter d'effectuer la ré-allocation à chaque appel, elle doit " +"tout de même le faire de temps en temps, ce qui coûte assez cher. " "Deuxièmement, parce que l'expression ``result.append`` fait un accès " "supplémentaire à un attribut et, enfin, parce que tous ces appels de " "fonctions réduisent la vitesse d'exécution." @@ -2265,9 +2266,9 @@ msgstr "" "Notez que la plupart des programmes n'utilisent que rarement :func:" "`isInstance` sur les classes définies par l'utilisateur. Si vous développez " "vous-même des classes, une approche plus orientée-objet consiste définir des " -"méthodes sur les classes qui sont porteuses d'un comportement particulier, plutôt " -"que de vérifier la classe de l'objet et de faire un traitement ad-hoc. Par " -"exemple, si vous avez une fonction qui fait quelque chose : ::" +"méthodes sur les classes qui sont porteuses d'un comportement particulier, " +"plutôt que de vérifier la classe de l'objet et de faire un traitement ad-" +"hoc. Par exemple, si vous avez une fonction qui fait quelque chose : ::" #: ../Doc/faq/programming.rst:1464 msgid "" @@ -2552,9 +2553,9 @@ msgid "" "decrements the object's reference count, and if this reaches zero :meth:" "`__del__` is called." msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` — elle " -"décrémente simplement le compteur de références de l'objet et, si celui-ci " -"arrive à zéro, :meth:`__del__` est appelée." +"La commande *del* n'appelle pas forcément :meth:`__del__` — elle décrémente " +"simplement le compteur de références de l'objet et, si celui-ci arrive à " +"zéro, :meth:`__del__` est appelée." #: ../Doc/faq/programming.rst:1663 msgid "" @@ -2570,15 +2571,15 @@ msgid "" "cases where objects will never be collected." msgstr "" "Si la structure de données contient des références circulaires (e.g. un " -"arbre dans lequel chaque fils référence son père, et chaque père " -"garde une liste de ses fils), le compteur de références " -"n'arrivera jamais à zéro. Python exécute périodiquement un algorithme pour " -"détecter ce genre de cycles, mais il peut se passer un certain temps entre " -"le moment où la structure est référencée pour la dernière fois et l'appel du " -"ramasse-miettes, donc la méthode :meth:`__del__` peut être appelée à un " -"moment aléatoire et pas opportun. C'est gênant pour essayer reproduire un " -"problème. Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets " -"sont appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" +"arbre dans lequel chaque fils référence son père, et chaque père garde une " +"liste de ses fils), le compteur de références n'arrivera jamais à zéro. " +"Python exécute périodiquement un algorithme pour détecter ce genre de " +"cycles, mais il peut se passer un certain temps entre le moment où la " +"structure est référencée pour la dernière fois et l'appel du ramasse-" +"miettes, donc la méthode :meth:`__del__` peut être appelée à un moment " +"aléatoire et pas opportun. C'est gênant pour essayer reproduire un problème. " +"Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets sont " +"appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" "miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " "les objets ne seront jamais nettoyés." @@ -2594,8 +2595,8 @@ msgstr "" "Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " "de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " -"supprimer les attributs qui référencent des sous-objets. Il vaut mieux " -"ne pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" +"supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " +"pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" "`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." @@ -2608,8 +2609,8 @@ msgid "" msgstr "" "Une alternative pour éviter les références cycliques consiste à utiliser le " "module :mod:`weakref`, qui permet de faire référence à des objets sans " -"incrémenter leur compteur de références. Par exemple, les structures d'arbres " -"devraient utiliser des références faibles entre pères et fils (si " +"incrémenter leur compteur de références. Par exemple, les structures " +"d'arbres devraient utiliser des références faibles entre pères et fils (si " "nécessaire !)." #: ../Doc/faq/programming.rst:1694 @@ -2637,7 +2638,9 @@ msgstr "" #: ../Doc/faq/programming.rst:1707 msgid "Why does the result of ``id()`` appear to be not unique?" -msgstr "Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets différents ?" +msgstr "" +"Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " +"différents ?" #: ../Doc/faq/programming.rst:1709 msgid "" @@ -2701,10 +2704,10 @@ msgid "" msgstr "" "Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " "est un problème de droits sur le dossier qui contient le fichier source, ce " -"qui veut dire qu'il est impossible de créer le sous-dossier " -"``__pycache__``. Ceci peut arriver, par exemple, si vous développez en tant " -"qu'un certain utilisateur, mais que le code est exécuté en tant qu'un autre " -"utilisateur, par exemple pour tester un serveur Web." +"qui veut dire qu'il est impossible de créer le sous-dossier ``__pycache__``. " +"Ceci peut arriver, par exemple, si vous développez en tant qu'un certain " +"utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " +"par exemple pour tester un serveur Web." #: ../Doc/faq/programming.rst:1751 msgid "" @@ -2742,9 +2745,9 @@ msgid "" "pyc`` file for a module that is not imported -- you can, using the :mod:" "`py_compile` and :mod:`compileall` modules." msgstr "" -"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un " -"fichier ``.pyc`` pour un module qui n'est pas importé — il existe les " -"modules :mod:`py_compile` et :mod:`compileall`." +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un fichier " +"``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" +"`py_compile` et :mod:`compileall`." #: ../Doc/faq/programming.rst:1767 msgid "" @@ -2924,8 +2927,8 @@ msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." msgstr "" -"Matthias Urlichs conseille de restructurer le code pour éviter les importations " -"récursives." +"Matthias Urlichs conseille de restructurer le code pour éviter les " +"importations récursives." #: ../Doc/faq/programming.rst:1854 msgid "These solutions are not mutually exclusive." @@ -2962,8 +2965,8 @@ msgstr "" "Pour des raisons de performance et de cohérence, Python ne lit le fichier " "d'un module que la première fois où celui-ci est importé. Si ce n'était pas " "le cas, dans un programme composé d'un très grand nombre de modules qui " -"importent tous le même module de base, ce module de base serait analysé " -"et ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " +"importent tous le même module de base, ce module de base serait analysé et " +"ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " "module, il faut faire ::" #: ../Doc/faq/programming.rst:1879 @@ -2981,9 +2984,9 @@ msgid "" "updated to use the new class definition. This can result in the following " "paradoxical behaviour::" msgstr "" -"continuent de fonctionner avec l'ancienne version des objets importés. " -"Si le module contient une définition de classe, le instances déjà existantes " -"de celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " +"continuent de fonctionner avec l'ancienne version des objets importés. Si le " +"module contient une définition de classe, le instances déjà existantes de " +"celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " "classe. Ceci peut conduire au comportement paradoxal suivant :" #: ../Doc/faq/programming.rst:1897 From 8ccd945f3b6a10ca327db5a6466052d74ae0ce0b Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 30 May 2019 12:50:44 +0200 Subject: [PATCH 22/26] Remarques de CristopheNan - II --- faq/programming.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 0c78acc34..9ae9b6d18 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -95,9 +95,10 @@ msgstr "" "`Boa Constructor `_ est un EDI et " "un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " "création et la manipulation de fenêtres, un inspecteur d'objets, de " -"nombreuses visualisations des sources comme un navigateur d'objets, les " -"hiérarchies d'héritage, la documentation html générée par les docstrings, un " -"débogueur avancé, une aide intégrée et la prise en charge de Zope." +"nombreuses façons de visualiser des sources comme un navigateur d'objets, " +"les hiérarchies d'héritage, la documentation html générée par les " +"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " +"Zope." #: ../Doc/faq/programming.rst:44 msgid "" @@ -1520,7 +1521,7 @@ msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." msgstr "" -"Pour des analyses plus compliquées, les expressions régulières sont plus " +"Pour des analyses plus compliquées, les expressions rationnelles sont plus " "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." @@ -2049,8 +2050,8 @@ msgid "" "The exception is a bit more surprising, and even more surprising is the fact " "that even though there was an error, the append worked::" msgstr "" -"L'exception est un peu plus surprenante, et ce qui est encore plus étrange " -"est que, malgré l'erreur, l'ajout a fonctionné ::" +"L'exception est un peu plus surprenante et, chose encore plus étrange, " +"malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1323 msgid "" @@ -2634,7 +2635,7 @@ msgstr "" "Python ne tient pas de registre de toutes les instances d'une classe (ni de " "n'importe quel type natif). Il est cependant possible de programmer le " "constructeur de la classe de façon à tenir un tel registre, en maintenant " -"une liste de références creuses vers chaque instance." +"une liste de références faibles vers chaque instance." #: ../Doc/faq/programming.rst:1707 msgid "Why does the result of ``id()`` appear to be not unique?" From c9d9c599c334fa7705a4da4735e396cfbb08c05c Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Thu, 30 May 2019 14:33:13 +0200 Subject: [PATCH 23/26] Apply suggestions from code review Traduction de "sort" par "ordonner / classer". Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- faq/programming.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 9ae9b6d18..6abb565a4 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -1637,7 +1637,7 @@ msgstr "" "cette implémentation soit plus rapide que la votre. C'est d'autant plus vrai " "pour les routines écrites en C, comme les routines natives et certaines " "extensions de types. Par exemple, il faut utiliser la méthode native :meth:" -"`list.sort` ou la fonction :func:`sorted` similaire pour trier (et se " +"`list.sort` ou la fonction :func:`sorted` similaire pour classer (et se " "référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " "courante)." @@ -1842,7 +1842,7 @@ msgid "" "If you don't mind reordering the list, sort it and then scan from the end of " "the list, deleting duplicates as you go::" msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " +"Si changer l'ordre de la liste ne vous dérange pas, commencez par ordonner " "celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" @@ -2108,7 +2108,7 @@ msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un tri compliqué : peut on faire une transformation de " +"Je souhaite faire un classement compliqué : peut on faire une transformation de " "Schwartz en Python ?" #: ../Doc/faq/programming.rst:1361 @@ -2118,21 +2118,21 @@ msgid "" "value\". In Python, use the ``key`` argument for the :meth:`list.sort` " "method::" msgstr "" -"Cette technique, attribuée à Randal Schwartz de la communauté Perl, trie les " +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne les " "éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " "l'argument ``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1370 msgid "How can I sort one list by values from another list?" -msgstr "Comment trier une liste en fonction des valeurs d'une autre liste ?" +msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" #: ../Doc/faq/programming.rst:1372 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" msgstr "" -"Fusionnez-les dans un itérateur de n-uplets, triez la liste obtenue, puis " +"Fusionnez-les dans un itérateur de n-uplets, ordonnez la liste obtenue, puis " "choisissez l'élément que vous voulez ::" #: ../Doc/faq/programming.rst:1386 From 443a2209536a90f76a12ce86ded6c0c69f3d2478 Mon Sep 17 00:00:00 2001 From: Antoine Wecxsteen Date: Thu, 30 May 2019 14:37:16 +0200 Subject: [PATCH 24/26] powrap --- faq/programming.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 6abb565a4..74915f67c 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -2108,8 +2108,8 @@ msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un classement compliqué : peut on faire une transformation de " -"Schwartz en Python ?" +"Je souhaite faire un classement compliqué : peut on faire une transformation " +"de Schwartz en Python ?" #: ../Doc/faq/programming.rst:1361 msgid "" @@ -2118,8 +2118,8 @@ msgid "" "value\". In Python, use the ``key`` argument for the :meth:`list.sort` " "method::" msgstr "" -"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne les " -"éléments d'une liste à l'aide une transformation qui fait correspondre " +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " +"les éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " "l'argument ``key`` de la méthode :meth:`list.sort` ::" From 3e67599117a2aabcbcc4e371c5f4c69309ccb42d Mon Sep 17 00:00:00 2001 From: Antoine <43954001+awecx@users.noreply.github.com> Date: Thu, 30 May 2019 19:03:02 +0200 Subject: [PATCH 25/26] Apply suggestions from code review Co-Authored-By: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- faq/programming.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq/programming.po b/faq/programming.po index 74915f67c..509c0489e 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -401,7 +401,7 @@ msgid "" "functions), e.g.::" msgstr "" "Supposons que l'on utilise une boucle itérative pour définir des expressions " -"lambda (voire même des fonctions) différentes, e.g. :" +"lambda (voire même des fonctions) différentes, par exemple ::" #: ../Doc/faq/programming.rst:220 msgid "" From 1f40fd4e82ee41805427bbdbc76a93e928d2e923 Mon Sep 17 00:00:00 2001 From: awecx Date: Thu, 30 May 2019 19:09:32 +0200 Subject: [PATCH 26/26] Suggestions de ChristopheNan - III --- faq/programming.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/faq/programming.po b/faq/programming.po index 74915f67c..f7537f39c 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -182,7 +182,7 @@ msgid "" "pyre-check.org/>`_, and `Pytype `_ can " "check type hints in Python source code." msgstr "" -"Les vérificateurs de type statique comme `Mypy `_, " +"Les vérificateurs statiques de typage comme `Mypy `_, " "`Pyre `_, et `Pytype `_ peuvent vérifier les indications de type dans du code source " "Python." @@ -1547,8 +1547,8 @@ msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" msgstr "" -"Question difficile, en général. Avant tout, il faut garder en tête les " -"points suivants avant d'aller plus loin :" +"Question difficile en général. Il faut garder en tête les points suivants " +"avant d'aller plus loin :" #: ../Doc/faq/programming.rst:1028 msgid "" @@ -1910,7 +1910,7 @@ msgid "" msgstr "" "Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " "qu'un tuple. Ici la version équivalente du *car* de Lisp est " -"``lisp_list[0]`` et l'équivalent de *cdr* est ``list_lip[1]``. Ne faites " +"``lisp_list[0]`` et l'équivalent de *cdr* est ``lisp_list[1]``. Ne faites " "ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " "général bien plus lente que les listes Python."