Backport from 3.8

This commit is contained in:
Julien Palard 2019-12-06 14:14:29 +01:00
parent ef3cbeb573
commit 71ee8d0211
40 changed files with 1378 additions and 154 deletions

View File

@ -528,7 +528,7 @@ msgstr ""
#: ../Doc/c-api/buffer.rst:321
msgid "format"
msgstr ""
msgstr "format"
#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325
#: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-08-21 12:33+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/distutils/packageindex.rst:7

View File

@ -378,7 +378,7 @@ msgstr ""
#: ../Doc/distutils/setupscript.rst:335
msgid "Other options"
msgstr ""
msgstr "Autres options"
#: ../Doc/distutils/setupscript.rst:337
msgid ""

View File

@ -135,6 +135,9 @@ msgid ""
"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including "
"``Python.h``. See :ref:`parsetuple` for a description of this macro."
msgstr ""
"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure "
"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette "
"macro."
#: ../Doc/extending/extending.rst:75
msgid ""
@ -567,13 +570,16 @@ msgstr ""
#: ../Doc/extending/extending.rst:312
msgid "The Module's Method Table and Initialization Function"
msgstr ""
msgstr "La fonction d'initialisation et le tableau des méthodes du module"
#: ../Doc/extending/extending.rst:314
msgid ""
"I promised to show how :c:func:`spam_system` is called from Python programs. "
"First, we need to list its name and address in a \"method table\"::"
msgstr ""
"Nous avons promis de montrer comment :c:func:`spam_system` est appelée "
"depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et "
"son adresse dans un « tableau des méthodes » ::"
#: ../Doc/extending/extending.rst:325
msgid ""
@ -583,6 +589,11 @@ msgid ""
"value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` "
"is used."
msgstr ""
"Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type de "
"convention à utiliser pour la fonction C, à destination de l'interpréteur. "
"Il doit valoir normalement ``METH_VARARGS`` ou ``METH_VARARGS | "
"METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:"
"func:`PyArg_ParseTuple` est utilisée."
#: ../Doc/extending/extending.rst:330
msgid ""
@ -590,6 +601,10 @@ msgid ""
"level parameters to be passed in as a tuple acceptable for parsing via :c:"
"func:`PyArg_ParseTuple`; more information on this function is provided below."
msgstr ""
"Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que les "
"paramètres Python soient passés comme un n-uplet que l'on peut analyser "
"*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont "
"fournies plus bas."
#: ../Doc/extending/extending.rst:334
msgid ""
@ -599,11 +614,18 @@ msgid ""
"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments "
"to such a function."
msgstr ""
"Le bit :const:`METH_KEYWORDS` peut être mis à un dans le troisième champ si "
"des arguments par mot-clés doivent être passés à la fonction. Dans ce cas, "
"la fonction C doit accepter un troisième paramètre ``PyObject *`` qui est un "
"dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` "
"pour analyser les arguments d'une telle fonction."
#: ../Doc/extending/extending.rst:340
msgid ""
"The method table must be referenced in the module definition structure::"
msgstr ""
"Le tableau des méthodes doit être référencé dans la structure de définition "
"du module ::"
#: ../Doc/extending/extending.rst:351
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-08-31 11:36+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/faq/extending.rst:3

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-03 22:10+0200\n"
"PO-Revision-Date: 2019-08-06 11:31+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: \n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/faq/gui.rst:5

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-28 15:29+0200\n"
"PO-Revision-Date: 2019-08-22 22:17+0200\n"
"Last-Translator: Antoine Wecxsteen\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Antoine Wecxsteen\n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/faq/library.rst:5

View File

@ -6,12 +6,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-10 11:27+0200\n"
"PO-Revision-Date: 2019-07-19 23:34+0200\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/howto/cporting.rst:7

File diff suppressed because it is too large Load Diff

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-10 11:27+0200\n"
"PO-Revision-Date: 2019-09-05 10:42+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/howto/pyporting.rst:5

View File

@ -965,7 +965,7 @@ msgstr ""
#: ../Doc/library/asyncio-llapi-index.rst:504
msgid "Return the current process-wide policy."
msgstr ""
msgstr "Renvoie la stratégie actuelle à l'échelle du processus."
#: ../Doc/library/asyncio-llapi-index.rst:506
msgid ":meth:`asyncio.set_event_loop_policy`"

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-03 16:57+0100\n"
"PO-Revision-Date: 2019-04-11 22:41+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/asyncio-policy.rst:8
@ -150,8 +150,8 @@ msgid ""
"The default asyncio policy. Uses :class:`SelectorEventLoop` on both Unix "
"and Windows platforms."
msgstr ""
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur les "
"plates-formes Unix et Windows."
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"les plates-formes Unix et Windows."
#: ../Doc/library/asyncio-policy.rst:97
msgid ""
@ -159,7 +159,8 @@ msgid ""
"configured to use the default policy automatically."
msgstr ""
"Il n'est pas nécessaire d'installer la stratégie par défaut manuellement. "
"*asyncio* est configuré pour utiliser automatiquement la stratégie par défaut."
"*asyncio* est configuré pour utiliser automatiquement la stratégie par "
"défaut."
#: ../Doc/library/asyncio-policy.rst:103
msgid ""
@ -185,8 +186,8 @@ msgid ""
msgstr ""
"Un observateur de processus permet de personnaliser la manière dont une "
"boucle d'événements surveille les processus enfants sous Unix. Plus "
"précisément, la boucle d'événements a besoin de savoir quand un processus enfant "
"s'est terminé."
"précisément, la boucle d'événements a besoin de savoir quand un processus "
"enfant s'est terminé."
#: ../Doc/library/asyncio-policy.rst:116
msgid ""
@ -205,16 +206,16 @@ msgid ""
msgstr ""
"*asyncio* définit la classe de base abstraite :class:`AbstractChildWatcher`, "
"que les observateurs enfants doivent implémenter et possède deux "
"implémentations différentes : :class:`SafeChildWatcher` (configurée pour être "
"utilisé par défaut) et :class:`FastChildWatcher`."
"implémentations différentes : :class:`SafeChildWatcher` (configurée pour "
"être utilisé par défaut) et :class:`FastChildWatcher`."
#: ../Doc/library/asyncio-policy.rst:125
msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <threads asyncio-sous-"
"processus>`."
"Voir aussi la section :ref:`sous-processus et fils d'exécution <threads "
"asyncio-sous-processus>`."
#: ../Doc/library/asyncio-policy.rst:128
msgid ""
@ -235,9 +236,9 @@ msgid ""
"*watcher* must implement methods defined in the :class:"
"`AbstractChildWatcher` base class."
msgstr ""
"Définit l'observateur enfant actuel à *watcher* pour la stratégie "
"actuelle. *watcher* doit implémenter les méthodes définies dans la classe de "
"base :class:`AbstractChildWatcher`."
"Définit l'observateur enfant actuel à *watcher* pour la stratégie actuelle. "
"*watcher* doit implémenter les méthodes définies dans la classe de base :"
"class:`AbstractChildWatcher`."
#: ../Doc/library/asyncio-policy.rst:142
msgid ""
@ -247,8 +248,8 @@ msgid ""
msgstr ""
"Les implémentations de boucles d'événement tierces peuvent ne pas prendre en "
"charge les observateurs enfants personnalisés. Pour ces boucles "
"d'événements, utiliser: func:`set_child_watcher` pourrait être "
"interdit ou n'avoir aucun effet."
"d'événements, utiliser: func:`set_child_watcher` pourrait être interdit ou "
"n'avoir aucun effet."
#: ../Doc/library/asyncio-policy.rst:150
msgid "Register a new child handler."
@ -266,7 +267,9 @@ msgstr ""
#: ../Doc/library/asyncio-policy.rst:157
msgid "The *callback* callable must be thread-safe."
msgstr "L'appelable *callback* doit être compatible avec les programmes à fils d'exécution multiples."
msgstr ""
"L'appelable *callback* doit être compatible avec les programmes à fils "
"d'exécution multiples."
#: ../Doc/library/asyncio-policy.rst:161
msgid "Removes the handler for process with PID equal to *pid*."
@ -313,9 +316,9 @@ msgid ""
"This implementation avoids disrupting other code spawning processes by "
"polling every process explicitly on a :py:data:`SIGCHLD` signal."
msgstr ""
"Cette implémentation évite de perturber un autre code qui aurait besoin de générer des processus "
"en interrogeant chaque processus explicitement par un signal :py:data:"
"`SIGCHLD`."
"Cette implémentation évite de perturber un autre code qui aurait besoin de "
"générer des processus en interrogeant chaque processus explicitement par un "
"signal :py:data:`SIGCHLD`."
#: ../Doc/library/asyncio-policy.rst:187
msgid ""
@ -337,8 +340,8 @@ msgid ""
"waiting for their termination."
msgstr ""
"Cette implémentation récupère tous les processus terminés en appelant "
"directement ``os.waitpid(-1)``, cassant éventuellement un autre "
"code qui génère des processus et attend leur fin."
"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui "
"génère des processus et attend leur fin."
#: ../Doc/library/asyncio-policy.rst:199
msgid ""

View File

@ -201,6 +201,8 @@ msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <asyncio-"
"subprocess-threads>`."
#: ../Doc/library/asyncio-subprocess.rst:181
msgid "Wait for the child process to terminate."

View File

@ -18,6 +18,8 @@ msgstr ""
msgid ""
":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts"
msgstr ""
":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur "
"l'instruction :keyword:`!with`"
#: ../Doc/library/contextlib.rst:7
msgid "**Source code:** :source:`Lib/contextlib.py`"
@ -29,6 +31,9 @@ msgid ""
"`with` statement. For more information see also :ref:`typecontextmanager` "
"and :ref:`context-managers`."
msgstr ""
"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :"
"keyword:`with`. Pour plus d'informations voir aussi :ref:"
"`typecontextmanager` et :ref:`context-managers`."
#: ../Doc/library/contextlib.rst:17
msgid "Utilities"
@ -36,7 +41,7 @@ msgstr "Utilitaires"
#: ../Doc/library/contextlib.rst:19
msgid "Functions and classes provided:"
msgstr ""
msgstr "Fonctions et classes fournies :"
#: ../Doc/library/contextlib.rst:23
msgid ""
@ -46,6 +51,12 @@ msgid ""
"__exit__` is an abstract method which by default returns ``None``. See also "
"the definition of :ref:`typecontextmanager`."
msgstr ""
":term:`Classe mère abstraite <abstract base class>` pour les classes qui "
"implémentent les méthodes :meth:`object.__enter__` et :meth:`object."
"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est "
"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode "
"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:"
"`typecontextmanager`."
#: ../Doc/library/contextlib.rst:34
msgid ""
@ -55,6 +66,12 @@ msgid ""
"__aexit__` is an abstract method which by default returns ``None``. See also "
"the definition of :ref:`async-context-managers`."
msgstr ""
":term:`Classe mère abstraite <abstract base class>` pour les classes qui "
"implémentent les méthodes :meth:`object.__aenter__` et :meth:`object."
"__aexit__`. Une implémentation par défaut de :meth:`object.__aenter__` est "
"fournie, qui renvoie ``self``, et :meth:`object.__aexit__` est une méthode "
"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:"
"`async-context-managers`."
#: ../Doc/library/contextlib.rst:46
msgid ""
@ -62,6 +79,10 @@ msgid ""
"function for :keyword:`with` statement context managers, without needing to "
"create a class or separate :meth:`__enter__` and :meth:`__exit__` methods."
msgstr ""
"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir "
"une fonction fabriquant des gestionnaires de contexte à utiliser avec :"
"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:"
"`__enter__` et :meth:`__exit__` séparées."
#: ../Doc/library/contextlib.rst:50
msgid ""
@ -70,12 +91,18 @@ msgid ""
"and doesn't implement a ``close()`` method for use with ``contextlib."
"closing``"
msgstr ""
"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, "
"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont "
"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode "
"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``"
#: ../Doc/library/contextlib.rst:54
msgid ""
"An abstract example would be the following to ensure correct resource "
"management::"
msgstr ""
"L'exemple abstrait suivant présente comment assurer une gestion correcte des "
"ressources ::"
#: ../Doc/library/contextlib.rst:73
msgid ""
@ -99,6 +126,18 @@ msgid ""
"handled, and execution will resume with the statement immediately following "
"the :keyword:`!with` statement."
msgstr ""
"Au moment où le générateur produit une valeur, le bloc imbriqué sous "
"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris "
"après la sortie du bloc. Si une exception non gérée survient dans le bloc, "
"elle est relayée dans le générateur au niveau de l'instruction *yield*. "
"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…\\ :keyword:"
"`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y a), ou vous "
"assurer qu'un nettoyage a bien lieu. Si une exception est attrapée dans "
"l'unique but d'être journalisée ou d'effectuer une action particulière "
"(autre que supprimer entièrement l'exception), le générateur se doit de la "
"relayer. Autrement le générateur gestionnaire de contexte doit indiquer à "
"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution "
"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`."
#: ../Doc/library/contextlib.rst:89
msgid ""
@ -110,16 +149,26 @@ msgid ""
"that context managers support multiple invocations in order to be used as "
"decorators)."
msgstr ""
"Le décorateur :func:`contextmanager` utilise la classe :class:"
"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée "
"puissent être utilisés aussi bien en tant que décorateurs qu'avec des "
"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une "
"nouvelle instance du générateur est créée à chaque appel de la fonction "
"(cela permet aux gestionnaires de contexte à usage unique créés par :func:"
"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs "
"fois afin d'être utilisés comme décorateurs)."
#: ../Doc/library/contextlib.rst:96
msgid "Use of :class:`ContextDecorator`."
msgstr ""
msgstr "Utilisation de la classe :class:`ContextDecorator`."
#: ../Doc/library/contextlib.rst:102
msgid ""
"Similar to :func:`~contextlib.contextmanager`, but creates an :ref:"
"`asynchronous context manager <async-context-managers>`."
msgstr ""
"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:"
"`gestionnaire de contexte asynchrone <async-context-managers>`."
#: ../Doc/library/contextlib.rst:105
msgid ""
@ -129,6 +178,12 @@ msgid ""
"`__aexit__` methods. It must be applied to an :term:`asynchronous generator` "
"function."
msgstr ""
"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir "
"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser "
"avec :keyword:`async with`, sans nécessiter de créer une classe ou des "
"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur "
"doit être appliqué à une fonction renvoyant un :term:`asynchronous "
"generator`."
#: ../Doc/library/contextlib.rst:111
msgid "A simple example::"
@ -139,16 +194,20 @@ msgid ""
"Return a context manager that closes *thing* upon completion of the block. "
"This is basically equivalent to::"
msgstr ""
"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. "
"C'est essentiellement équivalent à ::"
#: ../Doc/library/contextlib.rst:144
msgid "And lets you write code like this::"
msgstr ""
msgstr "Et cela vous permet d'écrire du code tel que ::"
#: ../Doc/library/contextlib.rst:153
msgid ""
"without needing to explicitly close ``page``. Even if an error occurs, "
"``page.close()`` will be called when the :keyword:`with` block is exited."
msgstr ""
"sans besoin de fermer explicitement ``page``. Même si une erreur survient, "
"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`."
#: ../Doc/library/contextlib.rst:161
msgid ""
@ -156,10 +215,13 @@ msgid ""
"otherwise does nothing. It is intended to be used as a stand-in for an "
"optional context manager, for example::"
msgstr ""
"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie "
"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme "
"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::"
#: ../Doc/library/contextlib.rst:175
msgid "An example using *enter_result*::"
msgstr ""
msgstr "Un exemple utilisant *enter_result* ::"
#: ../Doc/library/contextlib.rst:193
msgid ""
@ -167,6 +229,9 @@ msgid ""
"they occur in the body of a with statement and then resumes execution with "
"the first statement following the end of the with statement."
msgstr ""
"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions "
"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend "
"l'exécution sur la première instruction qui suit la fin du bloc *with*."
#: ../Doc/library/contextlib.rst:197
msgid ""
@ -175,6 +240,10 @@ msgid ""
"silently continuing with program execution is known to be the right thing to "
"do."
msgstr ""
"Comme pour tous les mécanismes qui suppriment complètement les exceptions, "
"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas "
"très spécifiques d'erreurs où il est certain que continuer silencieusement "
"l'exécution du programme est la bonne chose à faire."
#: ../Doc/library/contextlib.rst:202
msgid "For example::"
@ -187,19 +256,23 @@ msgstr "Ce code est équivalent à ::"
#: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263
#: ../Doc/library/contextlib.rst:273
msgid "This context manager is :ref:`reentrant <reentrant-cms>`."
msgstr ""
msgstr "Ce gestionnaire de contexte est :ref:`réentrant <reentrant-cms>`."
#: ../Doc/library/contextlib.rst:231
msgid ""
"Context manager for temporarily redirecting :data:`sys.stdout` to another "
"file or file-like object."
msgstr ""
"Gestionnaire de contexte servant à rediriger temporairement :data:`sys."
"stdout` vers un autre fichier ou objet fichier-compatible."
#: ../Doc/library/contextlib.rst:234
msgid ""
"This tool adds flexibility to existing functions or classes whose output is "
"hardwired to stdout."
msgstr ""
"Cet outil ajoute une certaine flexibilité aux fonctions ou classes "
"existantes dont la sortie est envoyée vers la sortie standard."
#: ../Doc/library/contextlib.rst:237
msgid ""
@ -207,16 +280,21 @@ msgid ""
"You can capture that output in a string by redirecting the output to an :"
"class:`io.StringIO` object::"
msgstr ""
"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys."
"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en "
"la redirigeant vers un objet :class:`io.StringIO` ::"
#: ../Doc/library/contextlib.rst:246
msgid ""
"To send the output of :func:`help` to a file on disk, redirect the output to "
"a regular file::"
msgstr ""
"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, "
"redirigez-la sur un fichier normal ::"
#: ../Doc/library/contextlib.rst:253
msgid "To send the output of :func:`help` to *sys.stderr*::"
msgstr ""
msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::"
#: ../Doc/library/contextlib.rst:258
msgid ""
@ -225,17 +303,27 @@ msgid ""
"applications. It also has no effect on the output of subprocesses. However, "
"it is still a useful approach for many utility scripts."
msgstr ""
"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce "
"gestionnaire de contexte n'est pas adapté à une utilisation dans le code "
"d'une bibliothèque ni dans la plupart des applications à plusieurs fils "
"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. "
"Cependant, cela reste une approche utile pour beaucoup de scripts "
"utilitaires."
#: ../Doc/library/contextlib.rst:270
msgid ""
"Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys."
"stderr` to another file or file-like object."
msgstr ""
"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys."
"stderr` vers un autre fichier ou objet fichier-compatible."
#: ../Doc/library/contextlib.rst:280
msgid ""
"A base class that enables a context manager to also be used as a decorator."
msgstr ""
"Une classe mère qui permet à un gestionnaire de contexte d'être aussi "
"utilisé comme décorateur."
#: ../Doc/library/contextlib.rst:282
msgid ""
@ -243,37 +331,50 @@ msgid ""
"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional "
"exception handling even when used as a decorator."
msgstr ""
"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent "
"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` "
"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en "
"décorateur."
#: ../Doc/library/contextlib.rst:286
msgid ""
"``ContextDecorator`` is used by :func:`contextmanager`, so you get this "
"functionality automatically."
msgstr ""
"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous "
"bénéficiez automatiquement de cette fonctionnalité."
#: ../Doc/library/contextlib.rst:289
msgid "Example of ``ContextDecorator``::"
msgstr ""
msgstr "Exemple de ``ContextDecorator`` ::"
#: ../Doc/library/contextlib.rst:318
msgid ""
"This change is just syntactic sugar for any construct of the following form::"
msgstr ""
"Ce changement est simplement un sucre syntaxique pour les constructions de "
"la forme suivante ::"
#: ../Doc/library/contextlib.rst:324
msgid "``ContextDecorator`` lets you instead write::"
msgstr ""
msgstr "``ContextDecorator`` vous permet d'écrire à la place ::"
#: ../Doc/library/contextlib.rst:330
msgid ""
"It makes it clear that the ``cm`` applies to the whole function, rather than "
"just a piece of it (and saving an indentation level is nice, too)."
msgstr ""
"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas "
"seulement à un morceau en particulier (et gagner un niveau d'indentation est "
"toujours appréciable)."
#: ../Doc/library/contextlib.rst:333
msgid ""
"Existing context managers that already have a base class can be extended by "
"using ``ContextDecorator`` as a mixin class::"
msgstr ""
"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent "
"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::"
#: ../Doc/library/contextlib.rst:346
msgid ""
@ -282,6 +383,11 @@ msgid ""
"statements. If this is not the case, then the original construct with the "
"explicit :keyword:`!with` statement inside the function should be used."
msgstr ""
"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, "
"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans "
"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la "
"construction d'origine avec de multiples instructions :keyword:`!with` au "
"sein de la fonction doit être utilisée."
#: ../Doc/library/contextlib.rst:356
msgid ""
@ -289,12 +395,18 @@ msgid ""
"combine other context managers and cleanup functions, especially those that "
"are optional or otherwise driven by input data."
msgstr ""
"Gestionnaire de contexte conçu pour simplifier le fait de combiner "
"programmatiquement d'autres gestionnaires de contexte et fonctions de "
"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des "
"données d'entrée."
#: ../Doc/library/contextlib.rst:360
msgid ""
"For example, a set of files may easily be handled in a single with statement "
"as follows::"
msgstr ""
"Par exemple, un ensemble de fichiers peut facilement être géré dans une "
"unique instruction *with* comme suit ::"
#: ../Doc/library/contextlib.rst:369
msgid ""
@ -303,6 +415,11 @@ msgid ""
"at the end of a :keyword:`with` statement). Note that callbacks are *not* "
"invoked implicitly when the context stack instance is garbage collected."
msgstr ""
"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) "
"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée "
"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez "
"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de "
"la pile de contextes est collectée par le ramasse-miettes."
#: ../Doc/library/contextlib.rst:374
msgid ""
@ -310,6 +427,9 @@ msgid ""
"resources in their ``__init__`` method (such as file objects) can be handled "
"correctly."
msgstr ""
"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui "
"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les "
"objets-fichiers) puissent être gérés correctement."
#: ../Doc/library/contextlib.rst:378
msgid ""
@ -320,6 +440,12 @@ msgid ""
"exception, then outer callbacks will be passed arguments based on that "
"updated state."
msgstr ""
"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre "
"inverse d'enregistrement, cela revient au même que si de multiples blocs :"
"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions "
"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction "
"de rappel intérieure supprime ou remplace une exception, alors les fonctions "
"extérieures reçoivent des arguments basés sur ce nouvel état."
#: ../Doc/library/contextlib.rst:385
msgid ""
@ -328,6 +454,10 @@ msgid ""
"foundation for higher level context managers that manipulate the exit stack "
"in application specific ways."
msgstr ""
"C'est une *API* relativement bas-niveau qui s'occupe de dérouler "
"correctement la pile des appels de sortie. Elle fournit une base adaptée "
"pour des gestionnaires de contexte de plus haut niveau qui manipulent la "
"pile de sortie de manière spécifique à l'application."
#: ../Doc/library/contextlib.rst:394
msgid ""
@ -335,16 +465,24 @@ msgid ""
"callback stack. The return value is the result of the context manager's own :"
"meth:`__enter__` method."
msgstr ""
"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:"
"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la "
"méthode :meth:`__enter__` du gestionnaire de contexte donné."
#: ../Doc/library/contextlib.rst:398
msgid ""
"These context managers may suppress exceptions just as they normally would "
"if used directly as part of a :keyword:`with` statement."
msgstr ""
"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le "
"feraient normalement s'ils étaient utilisés directement derrière une "
"instruction :keyword:`with`."
#: ../Doc/library/contextlib.rst:403
msgid "Adds a context manager's :meth:`__exit__` method to the callback stack."
msgstr ""
"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile "
"d'appels."
#: ../Doc/library/contextlib.rst:405
msgid ""
@ -352,6 +490,9 @@ msgid ""
"an :meth:`__enter__` implementation with a context manager's own :meth:"
"`__exit__` method."
msgstr ""
"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée "
"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la "
"propre méthode :meth:`__exit__` d'un gestionnaire de contexte."
#: ../Doc/library/contextlib.rst:409
msgid ""
@ -359,36 +500,52 @@ msgid ""
"a callback with the same signature as a context manager's :meth:`__exit__` "
"method and adds it directly to the callback stack."
msgstr ""
"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume "
"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :"
"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à "
"la pile d'appels."
#: ../Doc/library/contextlib.rst:413
msgid ""
"By returning true values, these callbacks can suppress exceptions the same "
"way context manager :meth:`__exit__` methods can."
msgstr ""
"En retournant des valeurs vraies, ces fonctions peuvent supprimer des "
"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` "
"des gestionnaires de contexte."
#: ../Doc/library/contextlib.rst:416
msgid ""
"The passed in object is returned from the function, allowing this method to "
"be used as a function decorator."
msgstr ""
"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la "
"méthode d'être utilisée comme décorateur de fonction."
#: ../Doc/library/contextlib.rst:421
msgid ""
"Accepts an arbitrary callback function and arguments and adds it to the "
"callback stack."
msgstr ""
"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des "
"fonctions de rappel."
#: ../Doc/library/contextlib.rst:424
msgid ""
"Unlike the other methods, callbacks added this way cannot suppress "
"exceptions (as they are never passed the exception details)."
msgstr ""
"À la différence des autres méthodes, les fonctions de rappel ajoutées de "
"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne "
"reçoivent jamais les détails de l'exception)."
#: ../Doc/library/contextlib.rst:427
msgid ""
"The passed in callback is returned from the function, allowing this method "
"to be used as a function decorator."
msgstr ""
"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à "
"la méthode d'être utilisée comme décorateur de fonction."
#: ../Doc/library/contextlib.rst:432
msgid ""
@ -397,12 +554,18 @@ msgid ""
"now be invoked when the new stack is closed (either explicitly or implicitly "
"at the end of a :keyword:`with` statement)."
msgstr ""
"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et "
"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à "
"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close "
"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)."
#: ../Doc/library/contextlib.rst:437
msgid ""
"For example, a group of files can be opened as an \"all or nothing\" "
"operation as follows::"
msgstr ""
"Par exemple, un groupe de fichiers peut être ouvert comme une opération "
 tout ou rien » comme suit ::"
#: ../Doc/library/contextlib.rst:451
msgid ""
@ -410,6 +573,10 @@ msgid ""
"order of registration. For any context managers and exit callbacks "
"registered, the arguments passed in will indicate that no exception occurred."
msgstr ""
"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel "
"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte "
"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune "
"exception n'est survenue."
#: ../Doc/library/contextlib.rst:458
msgid ""
@ -417,49 +584,62 @@ msgid ""
"class:`ExitStack`, that supports combining both synchronous and asynchronous "
"context managers, as well as having coroutines for cleanup logic."
msgstr ""
"Un :ref:`gestionnaire de contexte asynchrone <async-context-managers>`, "
"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires "
"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines "
"pour la logique de nettoyage."
#: ../Doc/library/contextlib.rst:463
msgid ""
"The :meth:`close` method is not implemented, :meth:`aclose` must be used "
"instead."
msgstr ""
"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt "
"être utilisée."
#: ../Doc/library/contextlib.rst:468
msgid ""
"Similar to :meth:`enter_context` but expects an asynchronous context manager."
msgstr ""
"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte "
"asynchrone."
#: ../Doc/library/contextlib.rst:473
msgid ""
"Similar to :meth:`push` but expects either an asynchronous context manager "
"or a coroutine function."
msgstr ""
"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte "
"asynchrone soit une fonction coroutine."
#: ../Doc/library/contextlib.rst:478
msgid "Similar to :meth:`callback` but expects a coroutine function."
msgstr ""
msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine."
#: ../Doc/library/contextlib.rst:482
msgid "Similar to :meth:`close` but properly handles awaitables."
msgstr ""
"Similaire à :meth:`close` mais gère correctement les tâches asynchrones."
#: ../Doc/library/contextlib.rst:484
msgid "Continuing the example for :func:`asynccontextmanager`::"
msgstr ""
msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::"
#: ../Doc/library/contextlib.rst:496
msgid "Examples and Recipes"
msgstr ""
msgstr "Exemples et Recettes"
#: ../Doc/library/contextlib.rst:498
msgid ""
"This section describes some examples and recipes for making effective use of "
"the tools provided by :mod:`contextlib`."
msgstr ""
"Cette section décrit quelques exemples et recettes pour décrire une "
"utilisation réelle des outils fournis par :mod:`contextlib`."
#: ../Doc/library/contextlib.rst:503
msgid "Supporting a variable number of context managers"
msgstr ""
msgstr "Gérer un nombre variable de gestionnaires de contexte"
#: ../Doc/library/contextlib.rst:505
msgid ""
@ -470,6 +650,13 @@ msgid ""
"input (such as opening a user specified collection of files), or from some "
"of the context managers being optional::"
msgstr ""
"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la "
"documentation de la classe : gérer un nombre variable de gestionnaires de "
"contexte et d'autres opérations de nettoyage en une unique instruction :"
"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de "
"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une "
"collection spécifique de fichiers de l'utilisateur), ou de certains "
"gestionnaires de contexte qui peuvent être optionnels ::"
#: ../Doc/library/contextlib.rst:520
msgid ""
@ -477,10 +664,13 @@ msgid ""
"statements to manage arbitrary resources that don't natively support the "
"context management protocol."
msgstr ""
"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les "
"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne "
"gèrent pas nativement le protocole des gestionnaires de contexte."
#: ../Doc/library/contextlib.rst:526
msgid "Catching exceptions from ``__enter__`` methods"
msgstr ""
msgstr "Attraper des exceptions depuis les méthodes ``__enter__``"
#: ../Doc/library/contextlib.rst:528
msgid ""
@ -490,6 +680,12 @@ msgid ""
"By using :class:`ExitStack` the steps in the context management protocol can "
"be separated slightly in order to allow this::"
msgstr ""
"Il est occasionnellement souhaitable d'attraper les exceptions depuis "
"l'implémentation d'une méthode ``__enter__``, *sans* attraper par "
"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de "
"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:"
"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent "
"être légèrement séparées pour permettre le code suivant ::"
#: ../Doc/library/contextlib.rst:543
msgid ""
@ -501,10 +697,18 @@ msgid ""
"to handle various situations that can't be handled directly in a :keyword:"
"`with` statement."
msgstr ""
"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-"
"jacente devrait fournir une interface directe de gestion des ressources à "
"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:"
"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet "
"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion "
"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la "
"gestion de plusieurs situations qui ne peuvent pas être traitées directement "
"dans une instruction :keyword:`with`."
#: ../Doc/library/contextlib.rst:553
msgid "Cleaning up in an ``__enter__`` implementation"
msgstr ""
msgstr "Nettoyer dans une méthode ``__enter__``"
#: ../Doc/library/contextlib.rst:555
msgid ""
@ -512,6 +716,9 @@ msgid ""
"useful in cleaning up an already allocated resource if later steps in the :"
"meth:`__enter__` implementation fail."
msgstr ""
"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode "
"peut être utile pour nettoyer une ressource déjà allouée si les dernières "
"étapes de l'implémentation de :meth:`__enter__` échouent."
#: ../Doc/library/contextlib.rst:559
msgid ""
@ -519,10 +726,13 @@ msgid ""
"acquisition and release functions, along with an optional validation "
"function, and maps them to the context management protocol::"
msgstr ""
"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions "
"d'acquisition de ressources et de libération, avec une méthode de validation "
"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::"
#: ../Doc/library/contextlib.rst:599
msgid "Replacing any use of ``try-finally`` and flag variables"
msgstr ""
msgstr "Remplacer un ``try-finally`` avec une option variable"
#: ../Doc/library/contextlib.rst:601
msgid ""
@ -531,6 +741,10 @@ msgid ""
"should be executed. In its simplest form (that can't already be handled just "
"by using an ``except`` clause instead), it looks something like this::"
msgstr ""
"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une "
"option pour indiquer si le corps de la clause ``finally`` doit être exécuté "
"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec "
"juste une clause ``except``), cela ressemble à ::"
#: ../Doc/library/contextlib.rst:615
msgid ""
@ -538,6 +752,10 @@ msgid ""
"development and review, because the setup code and the cleanup code can end "
"up being separated by arbitrarily long sections of code."
msgstr ""
"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut "
"poser problème pour le développement et la revue, parce que beaucoup de "
"codes d'installation et de nettoyage peuvent finir par être séparés par des "
"sections de code arbitrairement longues."
#: ../Doc/library/contextlib.rst:619
msgid ""
@ -545,18 +763,25 @@ msgid ""
"execution at the end of a ``with`` statement, and then later decide to skip "
"executing that callback::"
msgstr ""
":class:`ExitStack` rend possible de plutôt enregistrer une fonction de "
"rappel pour être exécutée à la fin d'une instruction ``with``, et décider "
"ensuite de passer l'exécution de cet appel ::"
#: ../Doc/library/contextlib.rst:631
msgid ""
"This allows the intended cleanup up behaviour to be made explicit up front, "
"rather than requiring a separate flag variable."
msgstr ""
"Cela permet de rendre explicite dès le départ le comportement de nettoyage "
"attendu, plutôt que de nécessiter une option séparée."
#: ../Doc/library/contextlib.rst:634
msgid ""
"If a particular application uses this pattern a lot, it can be simplified "
"even further by means of a small helper class::"
msgstr ""
"Si une application particulière utilise beaucoup ce modèle, cela peut-être "
"simplifié encore plus au moyen d'une petite classe d'aide ::"
#: ../Doc/library/contextlib.rst:652
msgid ""
@ -564,6 +789,10 @@ msgid ""
"function, then it is still possible to use the decorator form of :meth:"
"`ExitStack.callback` to declare the resource cleanup in advance::"
msgstr ""
"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans "
"une fonction autonome, il est possible d'utiliser le décorateur :meth:"
"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en "
"avance ::"
#: ../Doc/library/contextlib.rst:667
msgid ""
@ -571,16 +800,24 @@ msgid ""
"this way cannot take any parameters. Instead, any resources to be released "
"must be accessed as closure variables."
msgstr ""
"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée "
"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer "
"doivent être récupérées depuis l'extérieur comme des variables de fermeture "
"(*closure*)."
#: ../Doc/library/contextlib.rst:673
msgid "Using a context manager as a function decorator"
msgstr ""
"Utiliser un gestionnaire de contexte en tant que décorateur de fonction"
#: ../Doc/library/contextlib.rst:675
msgid ""
":class:`ContextDecorator` makes it possible to use a context manager in both "
"an ordinary ``with`` statement and also as a function decorator."
msgstr ""
":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de "
"contexte à la fois ordinairement avec une instruction ``with`` ou comme un "
"décorateur de fonction."
#: ../Doc/library/contextlib.rst:678
msgid ""
@ -590,14 +827,22 @@ msgid ""
"task, inheriting from :class:`ContextDecorator` provides both capabilities "
"in a single definition::"
msgstr ""
"Par exemple, il est parfois utile d'emballer les fonctions ou blocs "
"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution "
"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un "
"gestionnaire de contexte pour la même tâche, hériter de :class:"
"`ContextDecorator` fournit les deux fonctionnalités en une seule "
"définition ::"
#: ../Doc/library/contextlib.rst:699
msgid "Instances of this class can be used as both a context manager::"
msgstr ""
"Les instances de cette classe peuvent être utilisées comme gestionnaires de "
"contexte ::"
#: ../Doc/library/contextlib.rst:705
msgid "And also as a function decorator::"
msgstr ""
msgstr "Et comme décorateurs de fonctions ::"
#: ../Doc/library/contextlib.rst:712
msgid ""
@ -606,6 +851,10 @@ msgid ""
"`__enter__`. If that value is needed, then it is still necessary to use an "
"explicit ``with`` statement."
msgstr ""
"Notez qu'il y a une autre limitation en utilisant les gestionnaires de "
"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur "
"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut "
"utiliser explicitement une instruction ``with``."
#: ../Doc/library/contextlib.rst:720
msgid ":pep:`343` - The \"with\" statement"
@ -621,7 +870,7 @@ msgstr ""
#: ../Doc/library/contextlib.rst:726
msgid "Single use, reusable and reentrant context managers"
msgstr ""
msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants"
#: ../Doc/library/contextlib.rst:728
msgid ""
@ -630,6 +879,11 @@ msgid ""
"managers must be created afresh each time they're used - attempting to use "
"them a second time will trigger an exception or otherwise not work correctly."
msgstr ""
"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne "
"leur permet que d'être utilisés une fois avec une instruction :keyword:"
"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés "
"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois "
"lève une exception ou ne fonctionne pas correctement."
#: ../Doc/library/contextlib.rst:734
msgid ""
@ -637,6 +891,10 @@ msgid ""
"context managers directly in the header of the :keyword:`with` statement "
"where they are used (as shown in all of the usage examples above)."
msgstr ""
"Cette limitation commune signifie qu'il est généralement conseillé de créer "
"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:"
"`with` où ils sont utilisés (comme montré dans tous les exemples "
"d'utilisation au-dessus)."
#: ../Doc/library/contextlib.rst:738
msgid ""
@ -644,6 +902,10 @@ msgid ""
"first :keyword:`with` statement will close the file, preventing any further "
"IO operations using that file object."
msgstr ""
"Les fichiers sont un exemple de gestionnaires de contexte étant "
"effectivement à usage unique, puisque la première instruction :keyword:"
"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie "
"d'être exécutées sur ce fichier."
#: ../Doc/library/contextlib.rst:742
msgid ""
@ -651,10 +913,13 @@ msgid ""
"context managers, and will complain about the underlying generator failing "
"to yield if an attempt is made to use them a second time::"
msgstr ""
"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à "
"usage unique, et se plaindront du fait que le générateur sous-jacent ne "
"produise plus de valeur si vous essayez de les utiliser une seconde fois ::"
#: ../Doc/library/contextlib.rst:770
msgid "Reentrant context managers"
msgstr ""
msgstr "Gestionnaires de contexte réentrants"
#: ../Doc/library/contextlib.rst:772
msgid ""
@ -663,6 +928,11 @@ msgid ""
"may also be used *inside* a :keyword:`!with` statement that is already using "
"the same context manager."
msgstr ""
"Certains gestionnaires de contexte plus sophistiqués peuvent être "
 réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être "
"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à "
"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même "
"gestionnaire de contexte."
#: ../Doc/library/contextlib.rst:777
msgid ""
@ -670,6 +940,9 @@ msgid ""
"are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple "
"example of reentrant use::"
msgstr ""
":class:`threading.RLock` est un exemple de gestionnaire de contexte "
"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. "
"Voici un très simple exemple d'utilisation réentrante ::"
#: ../Doc/library/contextlib.rst:796
msgid ""
@ -677,6 +950,9 @@ msgid ""
"functions calling each other and hence be far more complicated than this "
"example."
msgstr ""
"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs "
"fonctions s'entre-appelant, et donc être bien plus compliqués que cet "
"exemple."
#: ../Doc/library/contextlib.rst:800
msgid ""
@ -685,10 +961,14 @@ msgid ""
"as it makes a global modification to the system state by binding :data:`sys."
"stdout` to a different stream."
msgstr ""
"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:"
"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, "
"puisqu'il effectue des changements globaux sur l'état du système en "
"branchant :data:`sys.stdout` sur différents flux."
#: ../Doc/library/contextlib.rst:809
msgid "Reusable context managers"
msgstr ""
msgstr "Gestionnaires de contexte réutilisables"
#: ../Doc/library/contextlib.rst:811
msgid ""
@ -699,6 +979,14 @@ msgid ""
"will fail (or otherwise not work correctly) if the specific context manager "
"instance has already been used in a containing with statement."
msgstr ""
"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants "
"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus "
"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires "
"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de "
"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront "
"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de "
"contexte référencée a déjà été utilisée dans une instruction *with* "
"englobante."
#: ../Doc/library/contextlib.rst:818
msgid ""
@ -706,6 +994,9 @@ msgid ""
"context manager (for a reentrant lock, it is necessary to use :class:"
"`threading.RLock` instead)."
msgstr ""
":class:`threading.Lock` est un exemple de gestionnaire de contexte "
"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la "
"place utiliser :class:`threading.RLock`)."
#: ../Doc/library/contextlib.rst:822
msgid ""
@ -713,6 +1004,10 @@ msgid ""
"`ExitStack`, as it invokes *all* currently registered callbacks when leaving "
"any with statement, regardless of where those callbacks were added::"
msgstr ""
"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant "
"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel "
"actuellement enregistrées en quittant l'instruction *with*, sans regarder où "
"ces fonctions ont été ajoutées ::"
#: ../Doc/library/contextlib.rst:853
msgid ""
@ -721,9 +1016,15 @@ msgid ""
"cause the stack to be cleared at the end of the innermost with statement, "
"which is unlikely to be desirable behaviour."
msgstr ""
"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre "
"plusieurs instructions *with* fonctionne correctement, mais essayer de les "
"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce "
"qui n'est probablement pas le comportement voulu."
#: ../Doc/library/contextlib.rst:858
msgid ""
"Using separate :class:`ExitStack` instances instead of reusing a single "
"instance avoids that problem::"
msgstr ""
"Pour éviter ce problème, utilisez des instances différentes de :class:"
"`ExitStack` plutôt qu'une seule instance ::"

View File

@ -1948,7 +1948,7 @@ msgstr "``KEY_CLOSE``"
#: ../Doc/library/curses.rst:1443
msgid "Close"
msgstr ""
msgstr "*Close*"
#: ../Doc/library/curses.rst:1445
msgid "``KEY_COMMAND``"
@ -1964,7 +1964,7 @@ msgstr "``KEY_COPY``"
#: ../Doc/library/curses.rst:1447
msgid "Copy"
msgstr ""
msgstr "*Copy*"
#: ../Doc/library/curses.rst:1449
msgid "``KEY_CREATE``"
@ -1988,7 +1988,7 @@ msgstr "``KEY_EXIT``"
#: ../Doc/library/curses.rst:1453
msgid "Exit"
msgstr ""
msgstr "*Exit*"
#: ../Doc/library/curses.rst:1455
msgid "``KEY_FIND``"
@ -2068,7 +2068,7 @@ msgstr "``KEY_REDO``"
#: ../Doc/library/curses.rst:1473
msgid "Redo"
msgstr ""
msgstr "*Redo*"
#: ../Doc/library/curses.rst:1475
msgid "``KEY_REFERENCE``"
@ -2116,7 +2116,7 @@ msgstr "``KEY_SAVE``"
#: ../Doc/library/curses.rst:1485
msgid "Save"
msgstr ""
msgstr "*Save*"
#: ../Doc/library/curses.rst:1487
msgid "``KEY_SBEG``"
@ -2364,7 +2364,7 @@ msgstr "``KEY_UNDO``"
#: ../Doc/library/curses.rst:1547
msgid "Undo"
msgstr ""
msgstr "*Undo*"
#: ../Doc/library/curses.rst:1549
msgid "``KEY_MOUSE``"

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-12 18:59+0200\n"
"PO-Revision-Date: 2019-07-18 21:03+0200\n"
"Last-Translator: Aya Keddam <aya.keddam@etu.sorbonne-universite.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Aya Keddam <aya.keddam@etu.sorbonne-universite.fr>\n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/dis.rst:2

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-12 18:59+0200\n"
"PO-Revision-Date: 2019-07-26 19:08+0200\n"
"Last-Translator: Antoine Wecxsteen\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Antoine Wecxsteen\n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/library/enum.rst:2

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
"PO-Revision-Date: 2019-10-09 17:26+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"X-Generator: Poedit 2.2.4\n"
#: ../Doc/library/getopt.rst:2

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/heapq.rst:2
msgid ":mod:`heapq` --- Heap queue algorithm"
msgstr ""
msgstr ":mod:`heapq` — File de priorité basée sur un tas"
#: ../Doc/library/heapq.rst:12
msgid "**Source code:** :source:`Lib/heapq.py`"
@ -27,6 +27,8 @@ msgid ""
"This module provides an implementation of the heap queue algorithm, also "
"known as the priority queue algorithm."
msgstr ""
"Ce module expose une implémentation de l'algorithme de file de priorité, "
"basée sur un tas."
#: ../Doc/library/heapq.rst:19
msgid ""
@ -37,6 +39,13 @@ msgid ""
"elements are considered to be infinite. The interesting property of a heap "
"is that its smallest element is always the root, ``heap[0]``."
msgstr ""
"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un "
"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation "
"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= "
"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour "
"contenter l'opérateur de comparaison, les éléments inexistants sont "
"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son "
"plus petit élément est toujours la racine, ``tas[0]``."
#: ../Doc/library/heapq.rst:26
msgid ""
@ -48,6 +57,13 @@ msgid ""
"\"max heap\" is more common in texts because of its suitability for in-place "
"sorting)."
msgstr ""
"L'API ci-dessous diffère de la file de priorité classique par deux aspects : "
"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation "
"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec "
"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* "
"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans "
"les manuels scolaires ; le « tas-max » étant généralement plus courant dans "
"la littérature car il permet le classement sans tampon)."
#: ../Doc/library/heapq.rst:33
msgid ""
@ -55,12 +71,18 @@ msgid ""
"surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains "
"the heap invariant!"
msgstr ""
"Ces deux points permettent d'aborder le tas comme une liste Python standard "
"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap."
"sort()`` ne modifie pas le tas !"
#: ../Doc/library/heapq.rst:37
msgid ""
"To create a heap, use a list initialized to ``[]``, or you can transform a "
"populated list into a heap via function :func:`heapify`."
msgstr ""
"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez "
"une liste existante et transformez la en tas à l'aide de la fonction :func:"
"`heapify`."
#: ../Doc/library/heapq.rst:40
msgid "The following functions are provided:"
@ -69,6 +91,8 @@ msgstr "Les fonctions suivantes sont fournies :"
#: ../Doc/library/heapq.rst:45
msgid "Push the value *item* onto the *heap*, maintaining the heap invariant."
msgstr ""
"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du "
"tas."
#: ../Doc/library/heapq.rst:50
msgid ""
@ -76,6 +100,9 @@ msgid ""
"invariant. If the heap is empty, :exc:`IndexError` is raised. To access "
"the smallest item without popping it, use ``heap[0]``."
msgstr ""
"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si "
"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au "
"plus petit élément sans le retirer, utilisez ``heap[0]``."
#: ../Doc/library/heapq.rst:57
msgid ""
@ -83,10 +110,15 @@ msgid ""
"*heap*. The combined action runs more efficiently than :func:`heappush` "
"followed by a separate call to :func:`heappop`."
msgstr ""
"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément "
"de *heap*. Cette action combinée est plus efficace que :func:`heappush` "
"suivie par un appel séparé à :func:`heappop`."
#: ../Doc/library/heapq.rst:64
msgid "Transform list *x* into a heap, in-place, in linear time."
msgstr ""
"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps "
"linéaire."
#: ../Doc/library/heapq.rst:69
msgid ""
@ -94,6 +126,9 @@ msgid ""
"*item*. The heap size doesn't change. If the heap is empty, :exc:"
"`IndexError` is raised."
msgstr ""
"Extraie le plus petit élément de *heap* et introduit le nouvel élément "
"*item*. La taille du tas ne change pas. Si le tas est vide, une exception :"
"exc:`IndexError` est levée."
#: ../Doc/library/heapq.rst:72
msgid ""
@ -102,6 +137,10 @@ msgid ""
"heap. The pop/push combination always returns an element from the heap and "
"replaces it with *item*."
msgstr ""
"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` "
"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas "
"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément "
"du tas et le remplace par *item*."
#: ../Doc/library/heapq.rst:77
msgid ""
@ -110,10 +149,15 @@ msgid ""
"combination returns the smaller of the two values, leaving the larger value "
"on the heap."
msgstr ""
"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si "
"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. "
"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs "
"et laisse la plus grande sur le tas."
#: ../Doc/library/heapq.rst:83
msgid "The module also offers three general purpose functions based on heaps."
msgstr ""
"Ce module contient également trois fonctions génériques utilisant les tas."
#: ../Doc/library/heapq.rst:88
msgid ""
@ -121,6 +165,9 @@ msgid ""
"timestamped entries from multiple log files). Returns an :term:`iterator` "
"over the sorted values."
msgstr ""
"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par "
"exemple, fusionne des entrées datées provenant de multiples journaux "
"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées."
#: ../Doc/library/heapq.rst:92
msgid ""
@ -128,6 +175,9 @@ msgid ""
"does not pull the data into memory all at once, and assumes that each of the "
"input streams is already sorted (smallest to largest)."
msgstr ""
"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un "
"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose "
"que chaque flux d'entrée est déjà classé (en ordre croissant)."
#: ../Doc/library/heapq.rst:96
msgid ""
@ -169,6 +219,11 @@ msgid ""
"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, "
"reverse=True)[:n]``."
msgstr ""
"Renvoie une liste contenant les *n* plus grands éléments du jeu de données "
"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une "
"fonction à un argument qui est utilisée pour extraire la clé de comparaison "
"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). "
"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``."
#: ../Doc/library/heapq.rst:122
msgid ""
@ -178,6 +233,11 @@ msgid ""
"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)[:"
"n]``."
msgstr ""
"Renvoie une liste contenant les *n* plus petits éléments du jeu de données "
"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une "
"fonction à un argument qui est utilisée pour extraire la clé de comparaison "
"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). "
"Équivalent à : ``sorted(iterable, key=key)[:n]``."
#: ../Doc/library/heapq.rst:128
msgid ""
@ -187,10 +247,16 @@ msgid ""
"`max` functions. If repeated usage of these functions is required, consider "
"turning the iterable into an actual heap."
msgstr ""
"Les deux fonctions précédentes sont les plus efficaces pour des petites "
"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la "
"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace "
"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez "
"utiliser ces fonctions de façon répétée, il est préférable de transformer "
"l'itérable en tas."
#: ../Doc/library/heapq.rst:136
msgid "Basic Examples"
msgstr ""
msgstr "Exemples simples"
#: ../Doc/library/heapq.rst:138
msgid ""
@ -198,52 +264,71 @@ msgid ""
"pushing all values onto a heap and then popping off the smallest values one "
"at a time::"
msgstr ""
"Un `tri par tas <https://fr.wikipedia.org/wiki/Tri_par_tas>`_ peut être "
"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant "
"l'extraction des éléments un par un ::"
#: ../Doc/library/heapq.rst:151
msgid ""
"This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this "
"implementation is not stable."
msgstr ""
"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:"
"`sorted`, cette implémentation n'est pas stable."
#: ../Doc/library/heapq.rst:154
msgid ""
"Heap elements can be tuples. This is useful for assigning comparison values "
"(such as task priorities) alongside the main record being tracked::"
msgstr ""
"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour "
"assigner des valeurs de comparaison (par exemple, des priorités de tâches) "
"en plus de l'élément qui est suivi ::"
#: ../Doc/library/heapq.rst:167
msgid "Priority Queue Implementation Notes"
msgstr ""
msgstr "Notes d'implémentation de la file de priorité"
#: ../Doc/library/heapq.rst:169
msgid ""
"A `priority queue <https://en.wikipedia.org/wiki/Priority_queue>`_ is common "
"use for a heap, and it presents several implementation challenges:"
msgstr ""
"Une `file de priorité <https://fr.wikipedia.org/wiki/File_de_priorit"
"%C3%A9>`_ est une application courante des tas et présente plusieurs défis "
"d'implémentation :"
#: ../Doc/library/heapq.rst:172
msgid ""
"Sort stability: how do you get two tasks with equal priorities to be "
"returned in the order they were originally added?"
msgstr ""
"Stabilité du classement : comment s'assurer que deux tâches avec la même "
"priorité sont renvoyées dans l'ordre de leur ajout ?"
#: ../Doc/library/heapq.rst:175
msgid ""
"Tuple comparison breaks for (priority, task) pairs if the priorities are "
"equal and the tasks do not have a default comparison order."
msgstr ""
"La comparaison des couples (priorité, tâche) échoue si les priorités sont "
"identiques et que les tâches n'ont pas de relation d'ordre par défaut."
#: ../Doc/library/heapq.rst:178
msgid ""
"If the priority of a task changes, how do you move it to a new position in "
"the heap?"
msgstr ""
"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle "
"position dans le tas ?"
#: ../Doc/library/heapq.rst:181
msgid ""
"Or if a pending task needs to be deleted, how do you find it and remove it "
"from the queue?"
msgstr ""
"Si une tâche en attente doit être supprimée, comment la trouver et la "
"supprimer de la file ?"
#: ../Doc/library/heapq.rst:184
msgid ""
@ -253,6 +338,13 @@ msgid ""
"returned in the order they were added. And since no two entry counts are the "
"same, the tuple comparison will never attempt to directly compare two tasks."
msgstr ""
"Une solution aux deux premiers problèmes consiste à stocker les entrées sous "
"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la "
"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux "
"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. "
"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la "
"comparaison des triplets ne va jamais chercher à comparer des tâches entre "
"elles."
#: ../Doc/library/heapq.rst:190
msgid ""
@ -260,6 +352,9 @@ msgid ""
"wrapper class that ignores the task item and only compares the priority "
"field::"
msgstr ""
"Une autre solution au fait que les tâches ne possèdent pas de relation "
"d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche "
"et ne compare que le champ priorité ::"
#: ../Doc/library/heapq.rst:201
msgid ""
@ -267,6 +362,9 @@ msgid ""
"changes to its priority or removing it entirely. Finding a task can be done "
"with a dictionary pointing to an entry in the queue."
msgstr ""
"Le problème restant consiste à trouver une tâche en attente et modifier sa "
"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un "
"dictionnaire pointant vers une entrée dans la file."
#: ../Doc/library/heapq.rst:205
msgid ""
@ -274,10 +372,14 @@ msgid ""
"would break the heap structure invariants. So, a possible solution is to "
"mark the entry as removed and add a new entry with the revised priority::"
msgstr ""
"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela "
"romprait l'invariant de la structure de tas. Une solution possible est de "
"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa "
"priorité modifiée ::"
#: ../Doc/library/heapq.rst:239
msgid "Theory"
msgstr ""
msgstr "Théorie"
#: ../Doc/library/heapq.rst:241
msgid ""
@ -286,12 +388,19 @@ msgid ""
"elements are considered to be infinite. The interesting property of a heap "
"is that ``a[0]`` is always its smallest element."
msgstr ""
"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= "
"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour "
"simplifier la comparaison, les éléments inexistants sont considérés comme "
"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus "
"petit élément."
#: ../Doc/library/heapq.rst:246
msgid ""
"The strange invariant above is meant to be an efficient memory "
"representation for a tournament. The numbers below are *k*, not ``a[k]``::"
msgstr ""
"L'invariant étrange ci-dessus est une représentation efficace en mémoire "
"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::"
#: ../Doc/library/heapq.rst:259
msgid ""
@ -305,6 +414,17 @@ msgid ""
"two cells it tops contain three different items, but the top cell \"wins\" "
"over the two topped cells."
msgstr ""
"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k"
"+2``. Dans les tournois binaires habituels dans les compétitions sportives, "
"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons "
"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient "
"ses adversaires. Cependant, dans de nombreuses applications informatiques de "
"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. "
"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa "
"promotion par un autre élément à un plus bas niveau. La règle devient alors "
"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments "
"différents, mais le nœud supérieur « gagne » contre les deux nœuds "
"inférieurs."
#: ../Doc/library/heapq.rst:268
msgid ""
@ -316,6 +436,15 @@ msgid ""
"logarithmic on the total number of items in the tree. By iterating over all "
"items, you get an O(n log n) sort."
msgstr ""
"Si cet invariant de tas est vérifié à tout instant, alors l'élément à "
"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le "
"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant "
"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à "
"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur "
"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette "
"approche a un coût logarithmique par rapport au nombre total d'éléments dans "
"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n "
"log n) opérations."
#: ../Doc/library/heapq.rst:275
msgid ""
@ -328,6 +457,16 @@ msgid ""
"easily go into the heap. So, a heap is a good structure for implementing "
"schedulers (this is what I used for my MIDI sequencer :-)."
msgstr ""
"Une propriété agréable de cet algorithme est qu'il possible d'insérer "
"efficacement de nouveaux éléments en cours de classement, du moment que les "
"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été "
"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la "
"liste des événements arrivants et que la condition de « victoire » est le "
"plus petit temps d'exécution planifié. Lorsqu'un événement programme "
"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et "
"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour "
"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon "
"séquenceur MIDI ☺)."
#: ../Doc/library/heapq.rst:284
msgid ""
@ -337,6 +476,11 @@ msgid ""
"average case. However, there are other representations which are more "
"efficient overall, yet the worst cases might be terrible."
msgstr ""
"Plusieurs structures ont été étudiées en détail pour implémenter des "
"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement "
"rapides, leur vitesse est presque constante et le pire cas ne diffère pas "
"trop du cas moyen. S'il existe des représentations qui sont plus efficaces "
"en général, les pires cas peuvent être terriblement mauvais."
#: ../Doc/library/heapq.rst:290
msgid ""
@ -351,6 +495,18 @@ msgid ""
"which are twice the size of the memory for random input, and much better for "
"input fuzzily ordered."
msgstr ""
"Les tas sont également très utiles pour ordonner les données sur de gros "
"disques. Vous savez probablement qu'un gros tri implique la production de "
"séquences pré-classées (dont la taille est généralement liée à la quantité "
"de mémoire CPU disponible), suivie par une passe de fusion qui est "
"généralement organisée de façon très intelligente [#]_. Il est très "
"important que le classement initial produise des séquences les plus longues "
"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en "
"utilisant toute la mémoire disponible pour stocker un tournoi, vous "
"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la "
"séquence courante, vous produirez des séquences d'une taille égale au double "
"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée "
"approximativement triée."
#: ../Doc/library/heapq.rst:300
msgid ""
@ -362,12 +518,23 @@ msgid ""
"the first heap is melting. When the first heap completely vanishes, you "
"switch heaps and start a new run. Clever and quite effective!"
msgstr ""
"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez "
"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa "
"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne "
"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La "
"mémoire libérée peut être réutilisée immédiatement pour progressivement "
"construire un deuxième tas, qui croit à la même vitesse que le premier "
"décroît. Lorsque le premier tas a complètement disparu, vous échangez les "
"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !"
#: ../Doc/library/heapq.rst:308
msgid ""
"In a word, heaps are useful memory structures to know. I use them in a few "
"applications, and I think it is good to keep a 'heap' module around. :-)"
msgstr ""
"Pour résumer, les tas sont des structures de données qu'il est bon de "
"connaître. Je les utilise dans quelques applications et je pense qu'il est "
"bon de garder le module *heap* sous le coude. ☺"
#: ../Doc/library/heapq.rst:312
msgid "Footnotes"
@ -385,3 +552,14 @@ msgid ""
"Believe me, real good tape sorts were quite spectacular to watch! From all "
"times, sorting has always been a Great Art! :-)"
msgstr ""
"Les algorithmes de répartition de charge pour les disques, courants de nos "
"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à "
"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire "
"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin "
"était différent et il fallait être malin pour s'assurer (bien à l'avance) "
"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire "
"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes "
"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de "
"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient "
"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été "
"le Grand Art ! ☺"

View File

@ -7,13 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-19 22:32+0200\n"
"PO-Revision-Date: 2019-07-02 11:42+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/idle.rst:4
@ -648,7 +647,8 @@ msgstr "Menu *Debug* (fenêtre de console uniquement)"
msgid "Go to File/Line"
msgstr "*Go to File/Line*"
# Look on the current line. with the cursor, and the line above for a filename and line number.
# Look on the current line. with the cursor, and the line above for a filename
# and line number.
# Il y a des erreurs d'anglais là-dedans...
#: ../Doc/library/idle.rst:265
msgid ""
@ -1540,7 +1540,8 @@ msgstr ""
"redémarrer la console dans le menu Shell peut résoudre un problème "
"temporaire."
# ... this can be prevented by never editing the files by hand, using the configuration dialog, under Options, instead Options.
# ... this can be prevented by never editing the files by hand, using the
# configuration dialog, under Options, instead Options.
# Qu'est-ce que ça veut dire ???
#: ../Doc/library/idle.rst:677
msgid ""
@ -1560,7 +1561,8 @@ msgstr ""
"la solution peut être de supprimer un ou plusieurs des fichiers de "
"configuration."
# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m idlelib``)...
# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m
# idlelib``)...
#: ../Doc/library/idle.rst:684
msgid ""
"If IDLE quits with no message, and it was not started from a console, try "

View File

@ -1330,7 +1330,7 @@ msgstr ""
#: ../Doc/library/io.rst:992
msgid "Performance"
msgstr ""
msgstr "Performances"
#: ../Doc/library/io.rst:994
msgid ""

View File

@ -676,7 +676,7 @@ msgstr ""
#: ../Doc/library/ipaddress.rst:693
msgid "Iteration"
msgstr ""
msgstr "Itération"
#: ../Doc/library/ipaddress.rst:695
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-05-23 21:40+0200\n"
"Last-Translator: Paul Bourhis <p.bourhis56@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Paul Bourhis <p.bourhis56@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/library/os.path.rst:2

View File

@ -989,7 +989,7 @@ msgstr ""
#: ../Doc/library/pickle.rst:861
msgid "Performance"
msgstr ""
msgstr "Performances"
#: ../Doc/library/pickle.rst:863
msgid ""

View File

@ -34,7 +34,7 @@ msgstr ""
#: ../Doc/library/pickletools.rst:21
msgid "Command line usage"
msgstr ""
msgstr "Utilisation de la ligne de commande"
#: ../Doc/library/pickletools.rst:25
msgid ""

View File

@ -489,7 +489,7 @@ msgstr ""
#: ../Doc/library/random.rst:347
msgid "Examples and Recipes"
msgstr ""
msgstr "Exemples et Recettes"
#: ../Doc/library/random.rst:349
msgid "Basic examples::"

View File

@ -17,10 +17,12 @@ msgstr ""
#: ../Doc/library/secrets.rst:2
msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets"
msgstr ""
":mod:`secrets` — Générer des nombres aléatoires de façon sécurisée pour la "
"gestion des secrets"
#: ../Doc/library/secrets.rst:16
msgid "**Source code:** :source:`Lib/secrets.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/secrets.py`"
#: ../Doc/library/secrets.rst:20
msgid ""
@ -28,6 +30,10 @@ msgid ""
"random numbers suitable for managing data such as passwords, account "
"authentication, security tokens, and related secrets."
msgstr ""
"Le module :mod:`secrets` permet de générer des nombres aléatoires forts au "
"sens de la cryptographie, adaptés à la gestion des mots de passe, à "
"l'authentification des comptes, à la gestion des jetons de sécurité et des "
"secrets associés."
#: ../Doc/library/secrets.rst:24
msgid ""
@ -35,10 +41,13 @@ msgid ""
"pseudo-random number generator in the :mod:`random` module, which is "
"designed for modelling and simulation, not security or cryptography."
msgstr ""
"Il faut préférer :mod:`secrets` par rapport au générateur pseudo-aléatoire "
"du module :mod:`random`, ce dernier étant conçu pour la modélisation et la "
"simulation, et non pour la sécurité ou la cryptographie."
#: ../Doc/library/secrets.rst:30
msgid ":pep:`506`"
msgstr ""
msgstr ":pep:`506`"
#: ../Doc/library/secrets.rst:34
msgid "Random numbers"
@ -49,6 +58,8 @@ msgid ""
"The :mod:`secrets` module provides access to the most secure source of "
"randomness that your operating system provides."
msgstr ""
"Le module :mod:`secrets` fournit un accès à la source d'aléa la plus sûre "
"disponible sur votre système d'exploitation."
#: ../Doc/library/secrets.rst:41
msgid ""
@ -56,22 +67,25 @@ msgid ""
"provided by the operating system. See :class:`random.SystemRandom` for "
"additional details."
msgstr ""
"Classe permettant de générer des nombres aléatoires à partir des sources "
"d'aléa les plus sûres fournies par le système d'exploitation. Se référer à :"
"class:`random.SystemRandom` pour plus de détails."
#: ../Doc/library/secrets.rst:47
msgid "Return a randomly-chosen element from a non-empty sequence."
msgstr ""
msgstr "Renvoie un élément choisi aléatoirement dans une séquence non-vide."
#: ../Doc/library/secrets.rst:51
msgid "Return a random int in the range [0, *n*)."
msgstr ""
msgstr "Renvoie un entier aléatoire dans l'intervalle [0, *n*)."
#: ../Doc/library/secrets.rst:55
msgid "Return an int with *k* random bits."
msgstr ""
msgstr "Renvoie un entier de *k* bits aléatoires."
#: ../Doc/library/secrets.rst:59
msgid "Generating tokens"
msgstr ""
msgstr "Génération de jetons"
#: ../Doc/library/secrets.rst:61
msgid ""
@ -79,12 +93,17 @@ msgid ""
"suitable for applications such as password resets, hard-to-guess URLs, and "
"similar."
msgstr ""
"Le module :mod:`secrets` fournit des fonctions pour la génération sécurisée "
"de jetons adaptés à la réinitialisation de mots de passe, à la production "
"d'URLs difficiles à deviner, etc."
#: ../Doc/library/secrets.rst:67
msgid ""
"Return a random byte string containing *nbytes* number of bytes. If *nbytes* "
"is ``None`` or not supplied, a reasonable default is used."
msgstr ""
"Renvoie une chaîne d'octets aléatoire contenant *nbytes* octets. Si *nbytes* "
"est ``None`` ou omis, une valeur par défaut raisonnable est utilisée."
#: ../Doc/library/secrets.rst:79
msgid ""
@ -92,6 +111,10 @@ msgid ""
"bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or "
"not supplied, a reasonable default is used."
msgstr ""
"Renvoie une chaîne de caractères aléatoire en hexadécimal. La chaîne "
"comporte *nbytes* octets aléatoires, chaque octet étant écrit sous la forme "
"de deux chiffres hexadécimaux. Si *nbytes* est ``None`` ou omis, une valeur "
"par défaut raisonnable est utilisée."
#: ../Doc/library/secrets.rst:90
msgid ""
@ -100,10 +123,14 @@ msgid ""
"characters. If *nbytes* is ``None`` or not supplied, a reasonable default "
"is used."
msgstr ""
"Renvoie une chaîne de caractères aléatoire adaptée au format URL, contenant "
"*nbytes* octets aléatoires. Le texte est encodé en base64, chaque octet "
"produisant en moyenne 1,3 caractères. Si *nbytes* est ``None`` ou omis, une "
"valeur par défaut raisonnable est utilisée."
#: ../Doc/library/secrets.rst:102
msgid "How many bytes should tokens use?"
msgstr ""
msgstr "Combien d'octets mon jeton doit-il comporter ?"
#: ../Doc/library/secrets.rst:104
msgid ""
@ -115,6 +142,13 @@ msgid ""
"is sufficient for the typical use-case expected for the :mod:`secrets` "
"module."
msgstr ""
"Afin de se prémunir des `attaques par force brute <https://fr.wikipedia.org/"
"wiki/Attaque_par_force_brute>`_, les jetons doivent être suffisamment "
"aléatoires. Malheureusement, l'augmentation de la puissance de calcul des "
"ordinateurs leur permet de réaliser plus de tentatives dans le même laps de "
"temps. De ce fait, le nombre de bits recommandé pour l'aléa augmente aussi. "
"En 2015, une longueur de 32 octets (256 bits) aléatoires est généralement "
"considérée suffisante pour les usages typiques du module :mod:`secrets`."
#: ../Doc/library/secrets.rst:112
msgid ""
@ -123,22 +157,31 @@ msgid ""
"argument to the various ``token_*`` functions. That argument is taken as "
"the number of bytes of randomness to use."
msgstr ""
"Si vous souhaitez gérer la longueur des jetons par vous-même, vous pouvez "
"spécifier la quantité d'aléa à introduire dans les jetons en passant un "
"argument :class:`int` aux différentes fonctions ``token_*``. Cet argument "
"indique alors le nombre d'octets aléatoires utilisés pour la création du "
"jeton."
#: ../Doc/library/secrets.rst:117
msgid ""
"Otherwise, if no argument is provided, or if the argument is ``None``, the "
"``token_*`` functions will use a reasonable default instead."
msgstr ""
"Sinon, si aucun argument n'est passé ou si celui-ci est ``None``, les "
"fonctions ``token_*`` utilisent une valeur par défaut raisonnable à la place."
#: ../Doc/library/secrets.rst:122
msgid ""
"That default is subject to change at any time, including during maintenance "
"releases."
msgstr ""
"Cette valeur par défaut est susceptible de changer à n'importe quel moment, "
"y compris lors des mises à jour de maintenance."
#: ../Doc/library/secrets.rst:127
msgid "Other functions"
msgstr ""
msgstr "Autres fonctions"
#: ../Doc/library/secrets.rst:131
msgid ""
@ -147,20 +190,26 @@ msgid ""
"lesson-in-timing-attacks/>`_. See :func:`hmac.compare_digest` for additional "
"details."
msgstr ""
"Renvoie ``True`` si les chaînes *a* et *b* sont égales et ``False`` sinon, "
"d'une manière permettant de réduire le risque d'`attaque temporelle <https://"
"fr.wikipedia.org/wiki/Attaque_temporelle>`_. Se référer à :func:`hmac."
"compare_digest` pour plus de détails."
#: ../Doc/library/secrets.rst:138
msgid "Recipes and best practices"
msgstr ""
msgstr "Recettes et bonnes pratiques"
#: ../Doc/library/secrets.rst:140
msgid ""
"This section shows recipes and best practices for using :mod:`secrets` to "
"manage a basic level of security."
msgstr ""
"Cette section expose les recettes et les bonnes pratiques d'utilisation de :"
"mod:`secrets` pour gérer un niveau minimal de sécurité."
#: ../Doc/library/secrets.rst:143
msgid "Generate an eight-character alphanumeric password:"
msgstr ""
msgstr "Générer un mot de passe à huit caractères alphanumériques :"
#: ../Doc/library/secrets.rst:154
msgid ""
@ -169,19 +218,30 @@ msgid ""
"They should be salted and hashed using a cryptographically-strong one-way "
"(irreversible) hash function."
msgstr ""
"Les applications ne doivent jamais `stocker des mots de passe dans un format "
"permettant leur récupération <http://cwe.mitre.org/data/definitions/257."
"html>`_, que ce soit en texte brut ou chiffré. Il convient que les mots de "
"passe soient salés et transformés de façon irréversible par une fonction de "
"hachage cryptographique."
#: ../Doc/library/secrets.rst:160
msgid ""
"Generate a ten-character alphanumeric password with at least one lowercase "
"character, at least one uppercase character, and at least three digits:"
msgstr ""
"Générer un mot de passe alphanumérique à dix caractères contenant au moins "
"un caractère en minuscule, au moins un caractère en majuscule et au moins "
"trois chiffres :"
#: ../Doc/library/secrets.rst:176
msgid "Generate an `XKCD-style passphrase <https://xkcd.com/936/>`_:"
msgstr ""
"Générer une `phrase de passe dans le style xkcd <https://xkcd.com/936/>`_ :"
#: ../Doc/library/secrets.rst:187
msgid ""
"Generate a hard-to-guess temporary URL containing a security token suitable "
"for password recovery applications:"
msgstr ""
"Générer une URL temporaire difficile à deviner contenant un jeton de "
"sécurité adapté à réinitialisation d'un mot de passe :"

View File

@ -750,7 +750,7 @@ msgstr ""
#: ../Doc/library/socket.rst:619
msgid "Other functions"
msgstr ""
msgstr "Autres fonctions"
#: ../Doc/library/socket.rst:621
msgid "The :mod:`socket` module also offers various network-related services:"

View File

@ -264,7 +264,7 @@ msgstr ""
#: ../Doc/library/sysconfig.rst:162
msgid "Other functions"
msgstr ""
msgstr "Autres fonctions"
#: ../Doc/library/sysconfig.rst:166
msgid ""

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.1.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.1.1\n"
#: ../Doc/library/tabnanny.rst:2
msgid ":mod:`tabnanny` --- Detection of ambiguous indentation"

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-08-20 18:10+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/library/timeit.rst:2

View File

@ -180,7 +180,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:121
msgid "cursor"
msgstr ""
msgstr "*cursor*"
#: ../Doc/library/tkinter.ttk.rst:121
msgid ""
@ -541,7 +541,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:325
msgid "justify"
msgstr ""
msgstr "*justify*"
#: ../Doc/library/tkinter.ttk.rst:325
msgid ""
@ -699,7 +699,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:430
msgid "format"
msgstr ""
msgstr "format"
#: ../Doc/library/tkinter.ttk.rst:430
msgid ""
@ -1359,7 +1359,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:895
msgid "font"
msgstr ""
msgstr "*font*"
#: ../Doc/library/tkinter.ttk.rst:895
msgid "Specifies the font to use when drawing text."
@ -1663,7 +1663,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:1083
msgid "region"
msgstr ""
msgstr "*region*"
#: ../Doc/library/tkinter.ttk.rst:1083
msgid "meaning"

View File

@ -20,35 +20,40 @@ msgstr ""
#: ../Doc/library/unittest.mock-examples.rst:13
msgid "Using Mock"
msgstr ""
msgstr "Utilisation de Mock ou l'art de singer"
#: ../Doc/library/unittest.mock-examples.rst:16
msgid "Mock Patching Methods"
msgstr ""
msgstr "Simulation des méthodes"
#: ../Doc/library/unittest.mock-examples.rst:18
msgid "Common uses for :class:`Mock` objects include:"
msgstr ""
msgstr "Usages courant de :class:`Mock` :"
#: ../Doc/library/unittest.mock-examples.rst:20
msgid "Patching methods"
msgstr ""
msgstr "Substitution des méthodes"
#: ../Doc/library/unittest.mock-examples.rst:21
msgid "Recording method calls on objects"
msgstr ""
msgstr "Enregistrement des appels faits sur les objets"
#: ../Doc/library/unittest.mock-examples.rst:23
msgid ""
"You might want to replace a method on an object to check that it is called "
"with the correct arguments by another part of the system:"
msgstr ""
"On peut remplacer une méthode sur un objet pour contrôler qu'elle est bien "
"appelée avec le nombre correct d'arguments :"
#: ../Doc/library/unittest.mock-examples.rst:31
msgid ""
"Once our mock has been used (``real.method`` in this example) it has methods "
"and attributes that allow you to make assertions about how it has been used."
msgstr ""
"Une fois notre objet simulacre appelé (via ``real.method`` dans notre "
"exemple), il fournit des méthodes et attributs permettant de valider comment "
"il a été appelé."
#: ../Doc/library/unittest.mock-examples.rst:36
msgid ""
@ -56,6 +61,10 @@ msgid ""
"are interchangeable. As the ``MagicMock`` is the more capable class it makes "
"a sensible one to use by default."
msgstr ""
"Dans la majeure partie des exemples donnés ici, les classes :class:`Mock` "
"et :class:`MagicMock` sont interchangeables. Étant donné que ``MagicMock`` "
"est la classe la plus puissante des deux, cela fait sens de l'utiliser par "
"défaut."
#: ../Doc/library/unittest.mock-examples.rst:40
msgid ""
@ -64,16 +73,22 @@ msgid ""
"or :meth:`~Mock.assert_called_once_with` method to check that it was called "
"with the correct arguments."
msgstr ""
"Une fois l'objet Mock appelé, son attribut :attr:`~Mock.called` est défini à "
"``True``. Qui plus est, nous pouvons utiliser les méthodes :meth:`~Mock."
"assert_called_with` ou :meth:`~Mock.assert_called_once_with` pour contrôler "
"qu'il a été appelé avec les bons arguments."
#: ../Doc/library/unittest.mock-examples.rst:45
msgid ""
"This example tests that calling ``ProductionClass().method`` results in a "
"call to the ``something`` method:"
msgstr ""
"Cet exemple teste que l'appel de la méthode ``ProductionClass().method`` "
"implique bien celui de la méthode ``something`` :"
#: ../Doc/library/unittest.mock-examples.rst:62
msgid "Mock for Method Calls on an Object"
msgstr ""
msgstr "S'assurer de la bonne utilisation d'un objet"
#: ../Doc/library/unittest.mock-examples.rst:64
msgid ""
@ -82,18 +97,27 @@ msgid ""
"method (or some part of the system under test) and then check that it is "
"used in the correct way."
msgstr ""
"Dans l'exemple précédent, nous avons directement remplacé une méthode par un "
"objet (afin de valider que l'appel était correct). Une autre façon de faire "
"est de passer un objet Mock en argument d'une méthode (ou de tout autre "
"partie du code à tester) et ensuite de contrôler que notre objet a été "
"utilisé de la façon attendue."
#: ../Doc/library/unittest.mock-examples.rst:69
msgid ""
"The simple ``ProductionClass`` below has a ``closer`` method. If it is "
"called with an object then it calls ``close`` on it."
msgstr ""
"Ci-dessous, ``ProductionClass`` dispose d'une méthode ``closer``. Si on "
"l'appelle avec un objet, alors elle appelle la méthode ``close`` dessus."
#: ../Doc/library/unittest.mock-examples.rst:77
msgid ""
"So to test it we need to pass in an object with a ``close`` method and check "
"that it was called correctly."
msgstr ""
"Ainsi, pour tester cette classe, nous devons lui passer un objet ayant une "
"méthode ``close``, puis vérifier qu'elle a bien été appelée."
#: ../Doc/library/unittest.mock-examples.rst:85
msgid ""
@ -102,10 +126,15 @@ msgid ""
"accessing it in the test will create it, but :meth:`~Mock."
"assert_called_with` will raise a failure exception."
msgstr ""
"En fait, nous n'avons pas à nous soucier de fournir la méthode ``close`` "
"dans notre objet « simulé ». Le simple fait d'accéder à la méthode ``close`` "
"l'a crée. Si par contre la méthode ``close`` n'a pas été appelée alors, bien "
"que le test la créée en y accédant, :meth:`~Mock.assert_called_with` lèvera "
"une exception."
#: ../Doc/library/unittest.mock-examples.rst:92
msgid "Mocking Classes"
msgstr ""
msgstr "Simulation des classes"
#: ../Doc/library/unittest.mock-examples.rst:94
msgid ""
@ -114,6 +143,11 @@ msgid ""
"Instances are created by *calling the class*. This means you access the "
"\"mock instance\" by looking at the return value of the mocked class."
msgstr ""
"Un cas d'utilisation courant consiste à émuler les classes instanciées par "
"le code que nous testons. Quand on *patch* une classe, alors cette classe "
"est remplacée par un objet *mock*. Les instances de la classe étant créées "
"en *appelant la classe*, on accède à « l'instance *mock* » via la valeur de "
"retour de la classe émulée."
#: ../Doc/library/unittest.mock-examples.rst:99
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-12 18:59+0200\n"
"PO-Revision-Date: 2019-08-06 09:57+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/library/zipapp.rst:2

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
"PO-Revision-Date: 2019-07-18 20:03+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/library/zipimport.rst:2

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.5\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.0.5\n"
#: ../Doc/library/zlib.rst:2
msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.2.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: ../Doc/using/windows.rst:7

View File

@ -327,7 +327,7 @@ msgstr ""
#: ../Doc/whatsnew/2.3.rst:331
msgid ":pep:`273` - Import Modules from Zip Archives"
msgstr ""
msgstr ":pep:`273` - Import Modules from Zip Archives"
#: ../Doc/whatsnew/2.3.rst:329
msgid ""
@ -786,7 +786,7 @@ msgstr ""
#: ../Doc/whatsnew/2.3.rst:760
msgid ":pep:`302` - New Import Hooks"
msgstr ""
msgstr ":pep:`302` — Nouveaux crochets d'importation"
#: ../Doc/whatsnew/2.3.rst:761
msgid ""

View File

@ -595,6 +595,9 @@ msgid ""
"The cumulative effect of these changes is to turn generators from one-way "
"producers of information into both producers and consumers."
msgstr ""
"Ces changements cumulés transforment les générateurs de producteurs "
"unidirectionnels d'information vers un statut hybride à la fois producteur "
"et consommateur."
#: ../Doc/whatsnew/2.5.rst:518
msgid ""

View File

@ -1258,7 +1258,7 @@ msgstr ""
#: ../Doc/whatsnew/3.0.rst:884
msgid "Performance"
msgstr ""
msgstr "Performances"
#: ../Doc/whatsnew/3.0.rst:886
msgid ""