rewrap pyporting.rst

This commit is contained in:
Julien Palard 2019-09-11 20:31:33 +02:00
parent d1b85cb97b
commit 1a8f4ce0f3

View File

@ -39,8 +39,8 @@ msgid ""
msgstr "" msgstr ""
"Python 3 étant le futur de Python tandis que Python 2 est encore activement " "Python 3 étant le futur de Python tandis que Python 2 est encore activement "
"utilisé, il est préférable de faire en sorte que votre projet soit " "utilisé, il est préférable de faire en sorte que votre projet soit "
"disponible pour les deux versions majeures de Python. Ce guide est destiné à" "disponible pour les deux versions majeures de Python. Ce guide est destiné à "
" vous aider à comprendre comment gérer simultanément Python 2 & 3." "vous aider à comprendre comment gérer simultanément Python 2 & 3."
#: ../Doc/howto/pyporting.rst:16 #: ../Doc/howto/pyporting.rst:16
msgid "" msgid ""
@ -74,8 +74,8 @@ msgstr "La version courte"
#: ../Doc/howto/pyporting.rst:29 #: ../Doc/howto/pyporting.rst:29
msgid "" msgid ""
"To make your project be single-source Python 2/3 compatible, the basic steps" "To make your project be single-source Python 2/3 compatible, the basic steps "
" are:" "are:"
msgstr "" msgstr ""
"Afin de rendre votre projet compatible Python 2/3 avec le même code source, " "Afin de rendre votre projet compatible Python 2/3 avec le même code source, "
"les étapes de base sont :" "les étapes de base sont :"
@ -112,12 +112,12 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:39 #: ../Doc/howto/pyporting.rst:39
msgid "" msgid ""
"Use caniusepython3_ to find out which of your dependencies are blocking your" "Use caniusepython3_ to find out which of your dependencies are blocking your "
" use of Python 3 (``pip install caniusepython3``)" "use of Python 3 (``pip install caniusepython3``)"
msgstr "" msgstr ""
"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances" "Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances "
" que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip" "que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip "
" install caniusepython3``)" "install caniusepython3``)"
#: ../Doc/howto/pyporting.rst:41 #: ../Doc/howto/pyporting.rst:41
msgid "" msgid ""
@ -136,9 +136,9 @@ msgid ""
"works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both "
"Python 2 & Python 3)." "Python 2 & Python 3)."
msgstr "" msgstr ""
"Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer" "Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer "
" que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par" "que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par "
" exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)." "exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)."
#: ../Doc/howto/pyporting.rst:50 #: ../Doc/howto/pyporting.rst:50
msgid "Details" msgid "Details"
@ -155,15 +155,15 @@ msgstr ""
"Un point clé du support simultané de Python 2 et 3 est qu'il vous est " "Un point clé du support simultané de Python 2 et 3 est qu'il vous est "
"possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont " "possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont "
"pas encore compatibles Python 3, vous pouvez moderniser votre code **dès " "pas encore compatibles Python 3, vous pouvez moderniser votre code **dès "
"maintenant** pour gérer Python 3. La plupart des modifications nécessaires à" "maintenant** pour gérer Python 3. La plupart des modifications nécessaires à "
" la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe" "la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe "
" plus récente, même dans du code Python 2." "plus récente, même dans du code Python 2."
#: ../Doc/howto/pyporting.rst:58 #: ../Doc/howto/pyporting.rst:58
msgid "" msgid ""
"Another key point is that modernizing your Python 2 code to also support " "Another key point is that modernizing your Python 2 code to also support "
"Python 3 is largely automated for you. While you might have to make some API" "Python 3 is largely automated for you. While you might have to make some API "
" decisions thanks to Python 3 clarifying text data versus binary data, the " "decisions thanks to Python 3 clarifying text data versus binary data, the "
"lower-level work is now mostly done for you and thus can at least benefit " "lower-level work is now mostly done for you and thus can at least benefit "
"from the automated changes immediately." "from the automated changes immediately."
msgstr "" msgstr ""
@ -176,12 +176,12 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:64 #: ../Doc/howto/pyporting.rst:64
msgid "" msgid ""
"Keep those key points in mind while you read on about the details of porting" "Keep those key points in mind while you read on about the details of porting "
" your code to support Python 2 & 3 simultaneously." "your code to support Python 2 & 3 simultaneously."
msgstr "" msgstr ""
"Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous" "Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous "
" concernant le portage de votre code vers une compatibilité simultanée " "concernant le portage de votre code vers une compatibilité simultanée Python "
"Python 2 et 3." "2 et 3."
#: ../Doc/howto/pyporting.rst:69 #: ../Doc/howto/pyporting.rst:69
msgid "Drop support for Python 2.6 and older" msgid "Drop support for Python 2.6 and older"
@ -220,20 +220,20 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:83 #: ../Doc/howto/pyporting.rst:83
msgid "" msgid ""
"But you should aim for only supporting Python 2.7. Python 2.6 is no longer " "But you should aim for only supporting Python 2.7. Python 2.6 is no longer "
"freely supported and thus is not receiving bugfixes. This means **you** will" "freely supported and thus is not receiving bugfixes. This means **you** will "
" have to work around any issues you come across with Python 2.6. There are " "have to work around any issues you come across with Python 2.6. There are "
"also some tools mentioned in this HOWTO which do not support Python 2.6 " "also some tools mentioned in this HOWTO which do not support Python 2.6 (e."
"(e.g., Pylint_), and this will become more commonplace as time goes on. It " "g., Pylint_), and this will become more commonplace as time goes on. It will "
"will simply be easier for you if you only support the versions of Python " "simply be easier for you if you only support the versions of Python that you "
"that you have to support." "have to support."
msgstr "" msgstr ""
"Mais nous vous conseillons de viser seulement un support de Python 2.7. " "Mais nous vous conseillons de viser seulement un support de Python 2.7. "
"Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus" "Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus "
" aucun correctif. Cela signifie que **vous** devrez trouver des solutions de" "aucun correctif. Cela signifie que **vous** devrez trouver des solutions de "
" contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe " "contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe "
"en outre des outils mentionnés dans ce guide pratique qui ne supportent pas " "en outre des outils mentionnés dans ce guide pratique qui ne supportent pas "
"Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil" "Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil "
" du temps. Il est simplement plus facile pour vous de n'assurer une " "du temps. Il est simplement plus facile pour vous de n'assurer une "
"compatibilité qu'avec les versions de Python que vous avez l'obligation de " "compatibilité qu'avec les versions de Python que vous avez l'obligation de "
"gérer." "gérer."
@ -241,23 +241,23 @@ msgstr ""
msgid "" msgid ""
"Make sure you specify the proper version support in your ``setup.py`` file" "Make sure you specify the proper version support in your ``setup.py`` file"
msgstr "" msgstr ""
"Assurez vous de spécifier la bonne version supportée dans le fichier " "Assurez vous de spécifier la bonne version supportée dans le fichier ``setup."
"``setup.py``" "py``"
#: ../Doc/howto/pyporting.rst:94 #: ../Doc/howto/pyporting.rst:94
msgid "" msgid ""
"In your ``setup.py`` file you should have the proper `trove classifier`_ " "In your ``setup.py`` file you should have the proper `trove classifier`_ "
"specifying what versions of Python you support. As your project does not " "specifying what versions of Python you support. As your project does not "
"support Python 3 yet you should at least have ``Programming Language :: " "support Python 3 yet you should at least have ``Programming Language :: "
"Python :: 2 :: Only`` specified. Ideally you should also specify each " "Python :: 2 :: Only`` specified. Ideally you should also specify each major/"
"major/minor version of Python that you do support, e.g. ``Programming " "minor version of Python that you do support, e.g. ``Programming Language :: "
"Language :: Python :: 2.7``." "Python :: 2.7``."
msgstr "" msgstr ""
"Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ " "Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ "
"spécifiant les versions de Python avec lesquelles vous êtes compatible. " "spécifiant les versions de Python avec lesquelles vous êtes compatible. "
"Comme votre projet ne supporte pas encore Python 3, vous devriez au moins " "Comme votre projet ne supporte pas encore Python 3, vous devriez au moins "
"spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous" "spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous "
" devriez indiquer chaque version majeure/mineure de Python que vous gérez, " "devriez indiquer chaque version majeure/mineure de Python que vous gérez, "
"par exemple ``Programming Language :: Python :: 2.7``." "par exemple ``Programming Language :: Python :: 2.7``."
#: ../Doc/howto/pyporting.rst:103 #: ../Doc/howto/pyporting.rst:103
@ -271,30 +271,30 @@ msgid ""
"rule of thumb is that if you want to be confident enough in your test suite " "rule of thumb is that if you want to be confident enough in your test suite "
"that any failures that appear after having tools rewrite your code are " "that any failures that appear after having tools rewrite your code are "
"actual bugs in the tools and not in your code. If you want a number to aim " "actual bugs in the tools and not in your code. If you want a number to aim "
"for, try to get over 80% coverage (and don't feel bad if you find it hard to" "for, try to get over 80% coverage (and don't feel bad if you find it hard to "
" get better than 90% coverage). If you don't already have a tool to measure " "get better than 90% coverage). If you don't already have a tool to measure "
"test coverage then coverage.py_ is recommended." "test coverage then coverage.py_ is recommended."
msgstr "" msgstr ""
"Une fois que votre code est compatible avec la plus ancienne version de " "Une fois que votre code est compatible avec la plus ancienne version de "
"Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test" "Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test "
" a une couverture suffisante. Une bonne règle empirique consiste à avoir " "a une couverture suffisante. Une bonne règle empirique consiste à avoir "
"suffisamment confiance en la suite de test pour qu'une erreur apparaissant " "suffisamment confiance en la suite de test pour qu'une erreur apparaissant "
"après la réécriture du code par les outils automatiques résulte de bogues de" "après la réécriture du code par les outils automatiques résulte de bogues de "
" ces derniers et non de votre code. Si vous souhaitez une valeur cible, " "ces derniers et non de votre code. Si vous souhaitez une valeur cible, "
"essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable " "essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable "
"si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne" "si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne "
" disposez pas encore d'un outil pour mesurer la couverture de code, " "disposez pas encore d'un outil pour mesurer la couverture de code, coverage."
"coverage.py_ est recommandé." "py_ est recommandé."
#: ../Doc/howto/pyporting.rst:118 #: ../Doc/howto/pyporting.rst:118
msgid "" msgid ""
"Once you have your code well-tested you are ready to begin porting your code" "Once you have your code well-tested you are ready to begin porting your code "
" to Python 3! But to fully understand how your code is going to change and " "to Python 3! But to fully understand how your code is going to change and "
"what you want to look out for while you code, you will want to learn what " "what you want to look out for while you code, you will want to learn what "
"changes Python 3 makes in terms of Python 2. Typically the two best ways of " "changes Python 3 makes in terms of Python 2. Typically the two best ways of "
"doing that is reading the `\"What's New\"`_ doc for each release of Python 3" "doing that is reading the `\"What's New\"`_ doc for each release of Python 3 "
" and the `Porting to Python 3`_ book (which is free online). There is also a" "and the `Porting to Python 3`_ book (which is free online). There is also a "
" handy `cheat sheet`_ from the Python-Future project." "handy `cheat sheet`_ from the Python-Future project."
msgstr "" msgstr ""
"Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " "Une fois que votre code est bien testé, vous êtes prêt à démarrer votre "
"portage vers Python 3 ! Mais afin de comprendre comment votre code va " "portage vers Python 3 ! Mais afin de comprendre comment votre code va "
@ -311,13 +311,13 @@ msgstr "Mettre à jour votre code"
#: ../Doc/howto/pyporting.rst:130 #: ../Doc/howto/pyporting.rst:130
msgid "" msgid ""
"Once you feel like you know what is different in Python 3 compared to Python" "Once you feel like you know what is different in Python 3 compared to Python "
" 2, it's time to update your code! You have a choice between two tools in " "2, it's time to update your code! You have a choice between two tools in "
"porting your code automatically: Futurize_ and Modernize_. Which tool you " "porting your code automatically: Futurize_ and Modernize_. Which tool you "
"choose will depend on how much like Python 3 you want your code to be. " "choose will depend on how much like Python 3 you want your code to be. "
"Futurize_ does its best to make Python 3 idioms and practices exist in " "Futurize_ does its best to make Python 3 idioms and practices exist in "
"Python 2, e.g. backporting the ``bytes`` type from Python 3 so that you have" "Python 2, e.g. backporting the ``bytes`` type from Python 3 so that you have "
" semantic parity between the major versions of Python. Modernize_, on the " "semantic parity between the major versions of Python. Modernize_, on the "
"other hand, is more conservative and targets a Python 2/3 subset of Python, " "other hand, is more conservative and targets a Python 2/3 subset of Python, "
"directly relying on six_ to help provide compatibility. As Python 3 is the " "directly relying on six_ to help provide compatibility. As Python 3 is the "
"future, it might be best to consider Futurize to begin adjusting to any new " "future, it might be best to consider Futurize to begin adjusting to any new "
@ -328,20 +328,20 @@ msgstr ""
"le choix entre deux outils pour porter votre code automatiquement : " "le choix entre deux outils pour porter votre code automatiquement : "
"Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 " "Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 "
"que vous souhaitez introduire dans votre code. Futurize_ s'efforce " "que vous souhaitez introduire dans votre code. Futurize_ s'efforce "
"d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple" "d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple "
" en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la " "en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la "
"sémantique soit identique entre les deux versions majeures de Python. En " "sémantique soit identique entre les deux versions majeures de Python. En "
"revanche, Modernize_ est plus conservateur et vise un sous-ensemble " "revanche, Modernize_ est plus conservateur et vise un sous-ensemble "
"d'instructions Python 2/3, en s'appuyant directement sur six_ pour la " "d'instructions Python 2/3, en s'appuyant directement sur six_ pour la "
"compatibilité. Python 3 étant le futur de Python, il pourrait être " "compatibilité. Python 3 étant le futur de Python, il pourrait être "
"préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles" "préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles "
" pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore " "pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore "
"habitué." "habitué."
#: ../Doc/howto/pyporting.rst:142 #: ../Doc/howto/pyporting.rst:142
msgid "" msgid ""
"Regardless of which tool you choose, they will update your code to run under" "Regardless of which tool you choose, they will update your code to run under "
" Python 3 while staying compatible with the version of Python 2 you started " "Python 3 while staying compatible with the version of Python 2 you started "
"with. Depending on how conservative you want to be, you may want to run the " "with. Depending on how conservative you want to be, you may want to run the "
"tool over your test suite first and visually inspect the diff to make sure " "tool over your test suite first and visually inspect the diff to make sure "
"the transformation is accurate. After you have transformed your test suite " "the transformation is accurate. After you have transformed your test suite "
@ -349,12 +349,12 @@ msgid ""
"transform your application code knowing that any tests which fail is a " "transform your application code knowing that any tests which fail is a "
"translation failure." "translation failure."
msgstr "" msgstr ""
"Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à" "Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à "
" jour votre code afin qu'il puisse être exécuté par Python 3 tout en " "jour votre code afin qu'il puisse être exécuté par Python 3 tout en "
"maintenant sa compatibilité avec la version de Python 2 dont vous êtes " "maintenant sa compatibilité avec la version de Python 2 dont vous êtes "
"parti. En fonction du niveau de prudence que vous visez, vous pouvez " "parti. En fonction du niveau de prudence que vous visez, vous pouvez "
"exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement" "exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement "
" la différence afin de vous assurer que la transformation est exacte. Après " "la différence afin de vous assurer que la transformation est exacte. Après "
"avoir transformé votre suite de test et vérifié que tous les tests " "avoir transformé votre suite de test et vérifié que tous les tests "
"s'exécutent comme attendu, vous pouvez transformer le code de votre " "s'exécutent comme attendu, vous pouvez transformer le code de votre "
"application avec l'assurance que chaque test qui échoue correspond à un " "application avec l'assurance que chaque test qui échoue correspond à un "
@ -367,21 +367,21 @@ msgid ""
"manually to get full Python 3 support (which of these steps are necessary " "manually to get full Python 3 support (which of these steps are necessary "
"vary between the tools). Read the documentation for the tool you choose to " "vary between the tools). Read the documentation for the tool you choose to "
"use to see what it fixes by default and what it can do optionally to know " "use to see what it fixes by default and what it can do optionally to know "
"what will (not) be fixed for you and what you may have to fix on your own " "what will (not) be fixed for you and what you may have to fix on your own (e."
"(e.g. using ``io.open()`` over the built-in ``open()`` function is off by " "g. using ``io.open()`` over the built-in ``open()`` function is off by "
"default in Modernize). Luckily, though, there are only a couple of things to" "default in Modernize). Luckily, though, there are only a couple of things to "
" watch out for which can be considered large issues that may be hard to " "watch out for which can be considered large issues that may be hard to debug "
"debug if not watched for." "if not watched for."
msgstr "" msgstr ""
"Malheureusement les outils ne peuvent pas automatiser tous les changements " "Malheureusement les outils ne peuvent pas automatiser tous les changements "
"requis pour permettre à votre code de s'exécuter sous Python 3 et il y a " "requis pour permettre à votre code de s'exécuter sous Python 3 et il y a "
"donc quelques points sur lesquels vous devrez travailler manuellement afin " "donc quelques points sur lesquels vous devrez travailler manuellement afin "
"d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent" "d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent "
" varier en fonction de l'outil utilisé). Lisez la documentation de l'outil " "varier en fonction de l'outil utilisé). Lisez la documentation de l'outil "
"que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui" "que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui "
" peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non)" "peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non) "
" corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le" "corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le "
" remplacement ``io.open()`` plutôt que la fonction native ``open()`` est " "remplacement ``io.open()`` plutôt que la fonction native ``open()`` est "
"inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques " "inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques "
"points à surveiller qui peuvent réellement être considérés comme des " "points à surveiller qui peuvent réellement être considérés comme des "
"problèmes difficiles à déboguer si vous n'y prêtez pas attention." "problèmes difficiles à déboguer si vous n'y prêtez pas attention."
@ -394,20 +394,20 @@ msgstr "Division"
msgid "" msgid ""
"In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` " "In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` "
"values result in a ``float``. This change has actually been planned since " "values result in a ``float``. This change has actually been planned since "
"Python 2.2 which was released in 2002. Since then users have been encouraged" "Python 2.2 which was released in 2002. Since then users have been encouraged "
" to add ``from __future__ import division`` to any and all files which use " "to add ``from __future__ import division`` to any and all files which use "
"the ``/`` and ``//`` operators or to be running the interpreter with the " "the ``/`` and ``//`` operators or to be running the interpreter with the ``-"
"``-Q`` flag. If you have not been doing this then you will need to go " "Q`` flag. If you have not been doing this then you will need to go through "
"through your code and do two things:" "your code and do two things:"
msgstr "" msgstr ""
"Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des" "Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des "
" valeurs ``int`` renvoient un ``float``. Ce changement était en réalité " "valeurs ``int`` renvoient un ``float``. Ce changement était en réalité "
"planifié depuis Python 2.2, publié en 2002. Depuis cette date, les " "planifié depuis Python 2.2, publié en 2002. Depuis cette date, les "
"utilisateurs ont été encouragés à ajouter ``from __future__ import " "utilisateurs ont été encouragés à ajouter ``from __future__ import "
"division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à" "division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à "
" exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi " "exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi cette "
"cette recommandation, vous devrez manuellement modifier votre code et " "recommandation, vous devrez manuellement modifier votre code et effectuer "
"effectuer deux changements :" "deux changements :"
#: ../Doc/howto/pyporting.rst:172 #: ../Doc/howto/pyporting.rst:172
msgid "Add ``from __future__ import division`` to your files" msgid "Add ``from __future__ import division`` to your files"
@ -426,13 +426,12 @@ msgstr ""
msgid "" msgid ""
"The reason that ``/`` isn't simply translated to ``//`` automatically is " "The reason that ``/`` isn't simply translated to ``//`` automatically is "
"that if an object defines a ``__truediv__`` method but not ``__floordiv__`` " "that if an object defines a ``__truediv__`` method but not ``__floordiv__`` "
"then your code would begin to fail (e.g. a user-defined class that uses " "then your code would begin to fail (e.g. a user-defined class that uses ``/"
"``/`` to signify some operation but not ``//`` for the same thing or at " "`` to signify some operation but not ``//`` for the same thing or at all)."
"all)."
msgstr "" msgstr ""
"La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " "La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` "
"automatiquement est que si un objet définit une méthode ``__truediv__`` mais" "automatiquement est que si un objet définit une méthode ``__truediv__`` mais "
" pas de méthode ``__floordiv__``, alors votre code pourrait produire une " "pas de méthode ``__floordiv__``, alors votre code pourrait produire une "
"erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` " "erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` "
"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du " "pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du "
"tout la même signification, voire n'est pas utilisé du tout)." "tout la même signification, voire n'est pas utilisé du tout)."
@ -452,16 +451,16 @@ msgid ""
"supporting multiple languages as APIs wouldn't bother explicitly supporting " "supporting multiple languages as APIs wouldn't bother explicitly supporting "
"``unicode`` when they claimed text data support." "``unicode`` when they claimed text data support."
msgstr "" msgstr ""
"Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et" "Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et "
" pour des données binaires. Malheureusement cet amalgame entre deux concepts" "pour des données binaires. Malheureusement cet amalgame entre deux concepts "
" différents peut conduire à du code fragile pouvant parfois fonctionner pour" "différents peut conduire à du code fragile pouvant parfois fonctionner pour "
" les deux types de données et parfois non. Cela a également conduit à des " "les deux types de données et parfois non. Cela a également conduit à des API "
"API confuses si les auteurs ne déclaraient pas explicitement que quelque " "confuses si les auteurs ne déclaraient pas explicitement que quelque chose "
"chose qui acceptait ``str`` était compatible avec du texte ou des données " "qui acceptait ``str`` était compatible avec du texte ou des données binaires "
"binaires et pas un seul des deux types. Cela a compliqué la situation pour " "et pas un seul des deux types. Cela a compliqué la situation pour les "
"les personnes devant gérer plusieurs langages avec des API qui ne se " "personnes devant gérer plusieurs langages avec des API qui ne se "
"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être" "préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être "
" compatibles avec des données au format texte." "compatibles avec des données au format texte."
#: ../Doc/howto/pyporting.rst:194 #: ../Doc/howto/pyporting.rst:194
msgid "" msgid ""
@ -486,11 +485,11 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:203 #: ../Doc/howto/pyporting.rst:203
msgid "" msgid ""
"To start, you will need to decide which APIs take text and which take binary" "To start, you will need to decide which APIs take text and which take binary "
" (it is **highly** recommended you don't design APIs that can take both due " "(it is **highly** recommended you don't design APIs that can take both due "
"to the difficulty of keeping the code working; as stated earlier it is " "to the difficulty of keeping the code working; as stated earlier it is "
"difficult to do well). In Python 2 this means making sure the APIs that take" "difficult to do well). In Python 2 this means making sure the APIs that take "
" text can work with ``unicode`` and those that work with binary data work " "text can work with ``unicode`` and those that work with binary data work "
"with the ``bytes`` type from Python 3 (which is a subset of ``str`` in " "with the ``bytes`` type from Python 3 (which is a subset of ``str`` in "
"Python 2 and acts as an alias for ``bytes`` type in Python 2). Usually the " "Python 2 and acts as an alias for ``bytes`` type in Python 2). Usually the "
"biggest issue is realizing which methods exist on which types in Python 2 & " "biggest issue is realizing which methods exist on which types in Python 2 & "
@ -498,9 +497,9 @@ msgid ""
"Python 3, for binary that's ``str``/``bytes`` in Python 2 and ``bytes`` in " "Python 3, for binary that's ``str``/``bytes`` in Python 2 and ``bytes`` in "
"Python 3). The following table lists the **unique** methods of each data " "Python 3). The following table lists the **unique** methods of each data "
"type across Python 2 & 3 (e.g., the ``decode()`` method is usable on the " "type across Python 2 & 3 (e.g., the ``decode()`` method is usable on the "
"equivalent binary data type in either Python 2 or 3, but it can't be used by" "equivalent binary data type in either Python 2 or 3, but it can't be used by "
" the textual data type consistently between Python 2 and 3 because ``str`` " "the textual data type consistently between Python 2 and 3 because ``str`` in "
"in Python 3 doesn't have the method). Do note that as of Python 3.5 the " "Python 3 doesn't have the method). Do note that as of Python 3.5 the "
"``__mod__`` method was added to the bytes type." "``__mod__`` method was added to the bytes type."
msgstr "" msgstr ""
"Pour commencer, vous devrez choisir quelles API travaillent sur du texte et " "Pour commencer, vous devrez choisir quelles API travaillent sur du texte et "
@ -510,13 +509,13 @@ msgstr ""
"signifie s'assurer que les API recevant du texte en entrée peuvent gérer " "signifie s'assurer que les API recevant du texte en entrée peuvent gérer "
"``unicode`` et celles qui reçoivent des données binaires fonctionnent avec " "``unicode`` et celles qui reçoivent des données binaires fonctionnent avec "
"le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans " "le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans "
"Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général," "Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général, "
" le principal problème consiste à inventorier quelles méthodes existent et " "le principal problème consiste à inventorier quelles méthodes existent et "
"opèrent sur quel type dans Python & 3 simultanément (pour le texte, il " "opèrent sur quel type dans Python & 3 simultanément (pour le texte, il "
"s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le " "s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le "
"binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans " "binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans "
"Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque" "Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque "
" type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` " "type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` "
"peut être utilisée sur des données binaires équivalentes en Python 2 et 3, " "peut être utilisée sur des données binaires équivalentes en Python 2 et 3, "
"mais ne peut pas être utilisée de la même façon sur le type texte en Python " "mais ne peut pas être utilisée de la même façon sur le type texte en Python "
"2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). " "2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). "
@ -559,11 +558,10 @@ msgstr "isnumeric"
msgid "" msgid ""
"Making the distinction easier to handle can be accomplished by encoding and " "Making the distinction easier to handle can be accomplished by encoding and "
"decoding between binary data and text at the edge of your code. This means " "decoding between binary data and text at the edge of your code. This means "
"that when you receive text in binary data, you should immediately decode it." "that when you receive text in binary data, you should immediately decode it. "
" And if your code needs to send text as binary data then encode it as late " "And if your code needs to send text as binary data then encode it as late as "
"as possible. This allows your code to work with only text internally and " "possible. This allows your code to work with only text internally and thus "
"thus eliminates having to keep track of what type of data you are working " "eliminates having to keep track of what type of data you are working with."
"with."
msgstr "" msgstr ""
"Vous pouvez rendre le problème plus simple à gérer en réalisant les " "Vous pouvez rendre le problème plus simple à gérer en réalisant les "
"opérations d'encodage et de décodage entre données binaires et texte aux " "opérations d'encodage et de décodage entre données binaires et texte aux "
@ -578,8 +576,8 @@ msgstr ""
msgid "" msgid ""
"The next issue is making sure you know whether the string literals in your " "The next issue is making sure you know whether the string literals in your "
"code represent text or binary data. You should add a ``b`` prefix to any " "code represent text or binary data. You should add a ``b`` prefix to any "
"literal that presents binary data. For text you should add a ``u`` prefix to" "literal that presents binary data. For text you should add a ``u`` prefix to "
" the text literal. (there is a :mod:`__future__` import to force all " "the text literal. (there is a :mod:`__future__` import to force all "
"unspecified literals to be Unicode, but usage has shown it isn't as " "unspecified literals to be Unicode, but usage has shown it isn't as "
"effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)"
msgstr "" msgstr ""
@ -597,33 +595,33 @@ msgid ""
"As part of this dichotomy you also need to be careful about opening files. " "As part of this dichotomy you also need to be careful about opening files. "
"Unless you have been working on Windows, there is a chance you have not " "Unless you have been working on Windows, there is a chance you have not "
"always bothered to add the ``b`` mode when opening a binary file (e.g., " "always bothered to add the ``b`` mode when opening a binary file (e.g., "
"``rb`` for binary reading). Under Python 3, binary files and text files are" "``rb`` for binary reading). Under Python 3, binary files and text files are "
" clearly distinct and mutually incompatible; see the :mod:`io` module for " "clearly distinct and mutually incompatible; see the :mod:`io` module for "
"details. Therefore, you **must** make a decision of whether a file will be " "details. Therefore, you **must** make a decision of whether a file will be "
"used for binary access (allowing binary data to be read and/or written) or " "used for binary access (allowing binary data to be read and/or written) or "
"textual access (allowing text data to be read and/or written). You should " "textual access (allowing text data to be read and/or written). You should "
"also use :func:`io.open` for opening files instead of the built-in " "also use :func:`io.open` for opening files instead of the built-in :func:"
":func:`open` function as the :mod:`io` module is consistent from Python 2 to" "`open` function as the :mod:`io` module is consistent from Python 2 to 3 "
" 3 while the built-in :func:`open` function is not (in Python 3 it's " "while the built-in :func:`open` function is not (in Python 3 it's actually :"
"actually :func:`io.open`). Do not bother with the outdated practice of using" "func:`io.open`). Do not bother with the outdated practice of using :func:"
" :func:`codecs.open` as that's only necessary for keeping compatibility with" "`codecs.open` as that's only necessary for keeping compatibility with Python "
" Python 2.5." "2.5."
msgstr "" msgstr ""
"Une conséquence de cette dichotomie est que vous devez être prudents lors de" "Une conséquence de cette dichotomie est que vous devez être prudents lors de "
" l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a" "l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a "
" des chances pour que vous ne vous soyez jamais préoccupé de spécifier le " "des chances pour que vous ne vous soyez jamais préoccupé de spécifier le "
"mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` " "mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` "
"pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte " "pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte "
"sont distincts et mutuellement incompatibles ; se référer au module " "sont distincts et mutuellement incompatibles ; se référer au module :mod:"
":mod:`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous " "`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous ouvrez "
"ouvrez un fichier si vous y accéderez en mode binaire (ce qui permet de lire" "un fichier si vous y accéderez en mode binaire (ce qui permet de lire et "
" et écrire des données binaires) ou en mode texte (ce qui permet de lire et " "écrire des données binaires) ou en mode texte (ce qui permet de lire et "
"écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir " "écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir "
"des fichiers plutôt que la fonction native :func:`open` étant donné que le " "des fichiers plutôt que la fonction native :func:`open` étant donné que le "
"module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la" "module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la "
" fonction :func:`open` (en Python 3, il s'agit en réalité de " "fonction :func:`open` (en Python 3, il s'agit en réalité de :func:`io."
":func:`io.open`). Ne cherchez pas à appliquer l'ancienne pratique consistant" "open`). Ne cherchez pas à appliquer l'ancienne pratique consistant à "
" à utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une " "utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une "
"compatibilité avec Python 2.5." "compatibilité avec Python 2.5."
#: ../Doc/howto/pyporting.rst:261 #: ../Doc/howto/pyporting.rst:261
@ -634,34 +632,34 @@ msgid ""
"== '3'``. But in Python 3, an integer argument to ``bytes`` will give you a " "== '3'``. But in Python 3, an integer argument to ``bytes`` will give you a "
"bytes object as long as the integer specified, filled with null bytes: " "bytes object as long as the integer specified, filled with null bytes: "
"``bytes(3) == b'\\x00\\x00\\x00'``. A similar worry is necessary when " "``bytes(3) == b'\\x00\\x00\\x00'``. A similar worry is necessary when "
"passing a bytes object to ``str``. In Python 2 you just get the bytes object" "passing a bytes object to ``str``. In Python 2 you just get the bytes object "
" back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "back: ``str(b'3') == b'3'``. But in Python 3 you get the string "
"representation of the bytes object: ``str(b'3') == \"b'3'\"``." "representation of the bytes object: ``str(b'3') == \"b'3'\"``."
msgstr "" msgstr ""
"Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique " "Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique "
"différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à " "différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à "
"``bytes`` sous Python 2 produit une représentation de cet entier en chaîne " "``bytes`` sous Python 2 produit une représentation de cet entier en chaîne "
"de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument" "de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument "
" entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier " "entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier "
"spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. " "spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. "
"La même prudence est nécessaire lorsque vous passez un objet *bytes* à " "La même prudence est nécessaire lorsque vous passez un objet *bytes* à "
"``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : " "``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : "
"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en" "``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en "
" chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``." "chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``."
#: ../Doc/howto/pyporting.rst:271 #: ../Doc/howto/pyporting.rst:271
msgid "" msgid ""
"Finally, the indexing of binary data requires careful handling (slicing does" "Finally, the indexing of binary data requires careful handling (slicing does "
" **not** require any special handling). In Python 2, ``b'123'[1] == b'2'`` " "**not** require any special handling). In Python 2, ``b'123'[1] == b'2'`` "
"while in Python 3 ``b'123'[1] == 50``. Because binary data is simply a " "while in Python 3 ``b'123'[1] == 50``. Because binary data is simply a "
"collection of binary numbers, Python 3 returns the integer value for the " "collection of binary numbers, Python 3 returns the integer value for the "
"byte you index on. But in Python 2 because ``bytes == str``, indexing " "byte you index on. But in Python 2 because ``bytes == str``, indexing "
"returns a one-item slice of bytes. The six_ project has a function named " "returns a one-item slice of bytes. The six_ project has a function named "
"``six.indexbytes()`` which will return an integer like in Python 3: " "``six.indexbytes()`` which will return an integer like in Python 3: ``six."
"``six.indexbytes(b'123', 1)``." "indexbytes(b'123', 1)``."
msgstr "" msgstr ""
"Enfin, l'indiçage des données binaires exige une manipulation prudente (bien" "Enfin, l'indiçage des données binaires exige une manipulation prudente (bien "
" que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention " "que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention "
"particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 " "particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 "
"``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une " "``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une "
"collection de nombres en binaire, Python 3 renvoie la valeur entière de " "collection de nombres en binaire, Python 3 renvoie la valeur entière de "
@ -729,8 +727,8 @@ msgid ""
"Inevitably you will have code that has to choose what to do based on what " "Inevitably you will have code that has to choose what to do based on what "
"version of Python is running. The best way to do this is with feature " "version of Python is running. The best way to do this is with feature "
"detection of whether the version of Python you're running under supports " "detection of whether the version of Python you're running under supports "
"what you need. If for some reason that doesn't work then you should make the" "what you need. If for some reason that doesn't work then you should make the "
" version check be against Python 2 and not Python 3. To help explain this, " "version check be against Python 2 and not Python 3. To help explain this, "
"let's look at an example." "let's look at an example."
msgstr "" msgstr ""
"Vous rencontrerez inévitablement du code devant décider quoi faire en " "Vous rencontrerez inévitablement du code devant décider quoi faire en "
@ -756,15 +754,15 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:317 #: ../Doc/howto/pyporting.rst:317
msgid "" msgid ""
"The problem with this code is what happens when Python 4 comes out? It would" "The problem with this code is what happens when Python 4 comes out? It would "
" be better to treat Python 2 as the exceptional case instead of Python 3 and" "be better to treat Python 2 as the exceptional case instead of Python 3 and "
" assume that future Python versions will be more compatible with Python 3 " "assume that future Python versions will be more compatible with Python 3 "
"than Python 2::" "than Python 2::"
msgstr "" msgstr ""
"Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ?" "Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? "
" Il serait préférable de traiter le cas Python 2 comme l'exception plutôt " "Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que "
"que Python 3 et de supposer que les versions futures de Python 2 seront plus" "Python 3 et de supposer que les versions futures de Python 2 seront plus "
" compatibles avec Python 3 qu'avec Python 2 : ::" "compatibles avec Python 3 qu'avec Python 2 : ::"
#: ../Doc/howto/pyporting.rst:329 #: ../Doc/howto/pyporting.rst:329
msgid "" msgid ""
@ -774,8 +772,8 @@ msgid ""
msgstr "" msgstr ""
"Néanmoins la meilleure solution est de ne pas chercher à déterminer la " "Néanmoins la meilleure solution est de ne pas chercher à déterminer la "
"version de Python mais plutôt à détecter les fonctionnalités disponibles. " "version de Python mais plutôt à détecter les fonctionnalités disponibles. "
"Cela évite les problèmes potentiels liés aux erreurs de détection de version" "Cela évite les problèmes potentiels liés aux erreurs de détection de version "
" et facilite la compatibilité future : ::" "et facilite la compatibilité future : ::"
#: ../Doc/howto/pyporting.rst:340 #: ../Doc/howto/pyporting.rst:340
msgid "Prevent compatibility regressions" msgid "Prevent compatibility regressions"
@ -783,15 +781,15 @@ msgstr ""
#: ../Doc/howto/pyporting.rst:342 #: ../Doc/howto/pyporting.rst:342
msgid "" msgid ""
"Once you have fully translated your code to be compatible with Python 3, you" "Once you have fully translated your code to be compatible with Python 3, you "
" will want to make sure your code doesn't regress and stop working under " "will want to make sure your code doesn't regress and stop working under "
"Python 3. This is especially true if you have a dependency which is blocking" "Python 3. This is especially true if you have a dependency which is blocking "
" you from actually running under Python 3 at the moment." "you from actually running under Python 3 at the moment."
msgstr "" msgstr ""
"Une fois votre code traduit pour être compatible avec Python 3, vous devez " "Une fois votre code traduit pour être compatible avec Python 3, vous devez "
"vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous" "vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous "
" Python 3. Ceci est particulièrement important si une de vos dépendances " "Python 3. Ceci est particulièrement important si une de vos dépendances vous "
"vous empêche de réellement exécuter le code sous Python 3 pour le moment." "empêche de réellement exécuter le code sous Python 3 pour le moment."
#: ../Doc/howto/pyporting.rst:347 #: ../Doc/howto/pyporting.rst:347
msgid "" msgid ""
@ -842,15 +840,15 @@ msgid ""
"to care about whether your dependencies have also been ported. The " "to care about whether your dependencies have also been ported. The "
"caniusepython3_ project was created to help you determine which projects -- " "caniusepython3_ project was created to help you determine which projects -- "
"directly or indirectly -- are blocking you from supporting Python 3. There " "directly or indirectly -- are blocking you from supporting Python 3. There "
"is both a command-line tool as well as a web interface at " "is both a command-line tool as well as a web interface at https://"
"https://caniusepython3.com." "caniusepython3.com."
msgstr "" msgstr ""
"**Après** avoir rendu votre code compatible avec Python 3, vous devez " "**Après** avoir rendu votre code compatible avec Python 3, vous devez "
"commencer à vous intéresser au portage de vos dépendances. Le projet " "commencer à vous intéresser au portage de vos dépendances. Le projet "
"caniusepython3_ a été créé afin de vous aider à déterminer quels projets " "caniusepython3_ a été créé afin de vous aider à déterminer quels projets "
"sont bloquants dans votre support de Python 3, directement ou indirectement." "sont bloquants dans votre support de Python 3, directement ou indirectement. "
" Il existe un outil en ligne de commande ainsi qu'une interface web : " "Il existe un outil en ligne de commande ainsi qu'une interface web : https://"
"https://caniusepython3.com." "caniusepython3.com."
#: ../Doc/howto/pyporting.rst:377 #: ../Doc/howto/pyporting.rst:377
msgid "" msgid ""
@ -862,8 +860,8 @@ msgid ""
msgstr "" msgstr ""
"Le projet fournit également du code intégrable dans votre suite de test qui " "Le projet fournit également du code intégrable dans votre suite de test qui "
"déclenchera un échec de test lorsque plus aucune de vos dépendances n'est " "déclenchera un échec de test lorsque plus aucune de vos dépendances n'est "
"bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à" "bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à "
" vérifier manuellement vos dépendances et d'être notifié rapidement quand " "vérifier manuellement vos dépendances et d'être notifié rapidement quand "
"vous pouvez exécuter votre application avec Python 3." "vous pouvez exécuter votre application avec Python 3."
#: ../Doc/howto/pyporting.rst:384 #: ../Doc/howto/pyporting.rst:384
@ -881,11 +879,11 @@ msgid ""
"classifiers for each major/minor version of Python you now support." "classifiers for each major/minor version of Python you now support."
msgstr "" msgstr ""
"Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour " "Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour "
"vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language ::" "vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language :: "
" Python :: 3`` et non seulement le support de Python 2. Cela signifiera à " "Python :: 3`` et non seulement le support de Python 2. Cela signifiera à "
"quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal " "quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal "
"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de" "vous devrez aussi ajouter une mention pour chaque version majeure/mineure de "
" Python que vous supportez désormais." "Python que vous supportez désormais."
#: ../Doc/howto/pyporting.rst:394 #: ../Doc/howto/pyporting.rst:394
msgid "Use continuous integration to stay compatible" msgid "Use continuous integration to stay compatible"
@ -900,8 +898,8 @@ msgid ""
"accidentally break Python 2 or 3 support." "accidentally break Python 2 or 3 support."
msgstr "" msgstr ""
"Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous " "Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous "
"devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_" "devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_ "
" est vraisemblablement le meilleur outil pour exécuter vos tests avec " "est vraisemblablement le meilleur outil pour exécuter vos tests avec "
"plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre " "plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre "
"système d'intégration continue afin de ne jamais accidentellement casser " "système d'intégration continue afin de ne jamais accidentellement casser "
"votre gestion de Python 2 ou 3." "votre gestion de Python 2 ou 3."
@ -920,12 +918,12 @@ msgstr ""
"Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 " "Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 "
"afin de déclencher une exception lorsque vous comparez des *bytes* à des " "afin de déclencher une exception lorsque vous comparez des *bytes* à des "
"chaînes de caractères ou à un entier (cette deuxième possibilité est " "chaînes de caractères ou à un entier (cette deuxième possibilité est "
"disponible à partir de Python 3.5). Par défaut, des comparaisons entre types" "disponible à partir de Python 3.5). Par défaut, des comparaisons entre types "
" différents renvoient simplement ``False`` mais si vous avez fait une erreur" "différents renvoient simplement ``False`` mais si vous avez fait une erreur "
" dans votre séparation de la gestion texte/données binaires ou votre " "dans votre séparation de la gestion texte/données binaires ou votre indiçage "
"indiçage des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau " "des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une "
"lève une exception lorsque ce genre de comparaison apparaît, facilitant " "exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa "
"ainsi sa identification et sa localisation." "identification et sa localisation."
#: ../Doc/howto/pyporting.rst:410 #: ../Doc/howto/pyporting.rst:410
msgid "" msgid ""
@ -948,12 +946,12 @@ msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel"
msgid "" msgid ""
"Another way to help port your code is to use a static type checker like " "Another way to help port your code is to use a static type checker like "
"mypy_ or pytype_ on your code. These tools can be used to analyze your code " "mypy_ or pytype_ on your code. These tools can be used to analyze your code "
"as if it's being run under Python 2, then you can run the tool a second time" "as if it's being run under Python 2, then you can run the tool a second time "
" as if your code is running under Python 3. By running a static type checker" "as if your code is running under Python 3. By running a static type checker "
" twice like this you can discover if you're e.g. misusing binary data type " "twice like this you can discover if you're e.g. misusing binary data type in "
"in one version of Python compared to another. If you add optional type hints" "one version of Python compared to another. If you add optional type hints to "
" to your code you can also explicitly state whether your APIs use textual or" "your code you can also explicitly state whether your APIs use textual or "
" binary data, helping to make sure everything functions as expected in both " "binary data, helping to make sure everything functions as expected in both "
"versions of Python." "versions of Python."
msgstr "" msgstr ""
"Une autre façon de faciliter le portage de votre code est d'utiliser un " "Une autre façon de faciliter le portage de votre code est d'utiliser un "
@ -961,9 +959,9 @@ msgstr ""
"être utilisés pour analyser votre code comme s'il était exécuté sous Python " "être utilisés pour analyser votre code comme s'il était exécuté sous Python "
"2, puis une seconde fois comme s'il était exécuté sous Python 3. " "2, puis une seconde fois comme s'il était exécuté sous Python 3. "
"L'utilisation double d'un vérificateur de type statique de cette façon " "L'utilisation double d'un vérificateur de type statique de cette façon "
"permet de détecter si, par exemple, vous faites une utilisation inappropriée" "permet de détecter si, par exemple, vous faites une utilisation inappropriée "
" des types de données binaires dans une version de Python par rapport à " "des types de données binaires dans une version de Python par rapport à "
"l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous" "l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous "
" pouvez alors explicitement déclarer que vos API attendent des données " "pouvez alors explicitement déclarer que vos API attendent des données "
"binaires ou du texte, ce qui facilite alors la vérification du comportement " "binaires ou du texte, ce qui facilite alors la vérification du comportement "
"de votre code dans les deux versions de Python." "de votre code dans les deux versions de Python."