forked from AFPy/python-docs-fr
Backport from 3.8
This commit is contained in:
parent
ef3cbeb573
commit
71ee8d0211
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -378,7 +378,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/setupscript.rst:335
|
||||
msgid "Other options"
|
||||
msgstr ""
|
||||
msgstr "Autres options"
|
||||
|
||||
#: ../Doc/distutils/setupscript.rst:337
|
||||
msgid ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ::"
|
||||
|
|
|
@ -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``"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
186
library/heapq.po
186
library/heapq.po
|
@ -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 ! ☺"
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -1330,7 +1330,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/io.rst:992
|
||||
msgid "Performance"
|
||||
msgstr ""
|
||||
msgstr "Performances"
|
||||
|
||||
#: ../Doc/library/io.rst:994
|
||||
msgid ""
|
||||
|
|
|
@ -676,7 +676,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/ipaddress.rst:693
|
||||
msgid "Iteration"
|
||||
msgstr ""
|
||||
msgstr "Itération"
|
||||
|
||||
#: ../Doc/library/ipaddress.rst:695
|
||||
msgid ""
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -989,7 +989,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/pickle.rst:861
|
||||
msgid "Performance"
|
||||
msgstr ""
|
||||
msgstr "Performances"
|
||||
|
||||
#: ../Doc/library/pickle.rst:863
|
||||
msgid ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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::"
|
||||
|
|
|
@ -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 :"
|
||||
|
|
|
@ -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:"
|
||||
|
|
|
@ -264,7 +264,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sysconfig.rst:162
|
||||
msgid "Other functions"
|
||||
msgstr ""
|
||||
msgstr "Autres fonctions"
|
||||
|
||||
#: ../Doc/library/sysconfig.rst:166
|
||||
msgid ""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -1258,7 +1258,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/whatsnew/3.0.rst:884
|
||||
msgid "Performance"
|
||||
msgstr ""
|
||||
msgstr "Performances"
|
||||
|
||||
#: ../Doc/whatsnew/3.0.rst:886
|
||||
msgid ""
|
||||
|
|
Loading…
Reference in New Issue
Block a user