forked from AFPy/python-docs-fr
rewrap pyporting.rst
This commit is contained in:
parent
d1b85cb97b
commit
1a8f4ce0f3
|
@ -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."
|
||||||
|
|
Loading…
Reference in New Issue
Block a user