encore de l'asyncio (#154)

Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Reviewed-on: AFPy/python-docs-fr#154
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophenan@noreply.localhost>
Co-committed-by: Christophe Nanteuil <christophenan@noreply.localhost>
This commit is contained in:
Christophe Nanteuil 2023-07-05 06:58:09 +00:00 committed by Julien Palard
parent 3cd06fe97f
commit c17336438c
5 changed files with 559 additions and 318 deletions

View File

@ -6,21 +6,24 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2023-06-17 19:31+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@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"
"X-Generator: Poedit 3.2.2\n"
#: library/asyncio-api-index.rst:6
msgid "High-level API Index"
msgstr ""
msgstr "Index de l'API de haut niveau"
#: library/asyncio-api-index.rst:8
msgid "This page lists all high-level async/await enabled asyncio APIs."
msgstr ""
"Cette page répertorie toutes les API *async/await* de haut niveau "
"disponibles dans l'API *asyncio*."
#: library/asyncio-api-index.rst:12
msgid "Tasks"
@ -31,24 +34,26 @@ msgid ""
"Utilities to run asyncio programs, create Tasks, and await on multiple "
"things with timeouts."
msgstr ""
"Utilitaires pour exécuter des programmes asynchrones, créer des tâches et "
"attendre plusieurs choses avec des délais maximaux d'attente."
#: library/asyncio-api-index.rst:21
#, fuzzy
msgid ":func:`run`"
msgstr ":func:`round`"
msgstr ":func:`run`"
#: library/asyncio-api-index.rst:22
msgid "Create event loop, run a coroutine, close the loop."
msgstr ""
msgstr "Crée une boucle d'événements, exécute une coroutine, ferme la boucle."
#: library/asyncio-api-index.rst:24
#, fuzzy
msgid ":class:`Runner`"
msgstr ":class:`Queue`"
msgstr ":class:`Runner`"
#: library/asyncio-api-index.rst:25
msgid "A context manager that simplifies multiple async function calls."
msgstr ""
"Gestionnaire de contexte qui simplifie plusieurs appels de fonction "
"asynchrones."
#: library/asyncio-api-index.rst:27
msgid ":class:`Task`"
@ -56,18 +61,19 @@ msgstr ":class:`Task`"
#: library/asyncio-api-index.rst:28
msgid "Task object."
msgstr ""
msgstr "Objet de tâche."
#: library/asyncio-api-index.rst:30
#, fuzzy
msgid ":class:`TaskGroup`"
msgstr ":class:`Task`"
msgstr ":class:`TaskGroup`"
#: library/asyncio-api-index.rst:31
msgid ""
"A context manager that holds a group of tasks. Provides a convenient and "
"reliable way to wait for all tasks in the group to finish."
msgstr ""
"Gestionnaire de contexte pour un groupe de tâches. Fournit un moyen pratique "
"et fiable d'attendre la fin de toutes les tâches du groupe."
#: library/asyncio-api-index.rst:35
msgid ":func:`create_task`"
@ -75,7 +81,7 @@ msgstr ":func:`create_task`"
#: library/asyncio-api-index.rst:36
msgid "Start an asyncio Task, then returns it."
msgstr ""
msgstr "Démarre une tâche asynchrone, puis la renvoie."
#: library/asyncio-api-index.rst:38
msgid ":func:`current_task`"
@ -83,7 +89,7 @@ msgstr ":func:`current_task`"
#: library/asyncio-api-index.rst:39
msgid "Return the current Task."
msgstr ""
msgstr "Renvoie la tâche actuelle."
#: library/asyncio-api-index.rst:41
msgid ":func:`all_tasks`"
@ -92,64 +98,67 @@ msgstr ":func:`all_tasks`"
#: library/asyncio-api-index.rst:42
msgid "Return all tasks that are not yet finished for an event loop."
msgstr ""
"Renvoie toutes les tâches qui ne sont pas encore terminées pour une boucle "
"d'événements."
#: library/asyncio-api-index.rst:44
msgid "``await`` :func:`sleep`"
msgstr ""
msgstr "``await`` :func:`sleep`"
#: library/asyncio-api-index.rst:45
msgid "Sleep for a number of seconds."
msgstr ""
msgstr "Dort quelques secondes."
#: library/asyncio-api-index.rst:47
msgid "``await`` :func:`gather`"
msgstr ""
msgstr "``await`` :func:`gather`"
#: library/asyncio-api-index.rst:48
msgid "Schedule and wait for things concurrently."
msgstr ""
msgstr "Planifie et attend des choses concurrentes."
#: library/asyncio-api-index.rst:50
msgid "``await`` :func:`wait_for`"
msgstr ""
msgstr "``await`` :func:`wait_for`"
#: library/asyncio-api-index.rst:51
msgid "Run with a timeout."
msgstr ""
msgstr "Exécute avec un délai d'attente."
#: library/asyncio-api-index.rst:53
msgid "``await`` :func:`shield`"
msgstr ""
msgstr "``await`` :func:`shield`"
#: library/asyncio-api-index.rst:54
msgid "Shield from cancellation."
msgstr ""
msgstr "Empêche l'annulation."
#: library/asyncio-api-index.rst:56
msgid "``await`` :func:`wait`"
msgstr ""
msgstr "``await`` :func:`wait`"
#: library/asyncio-api-index.rst:57
msgid "Monitor for completion."
msgstr ""
msgstr "Surveille l'achèvement."
#: library/asyncio-api-index.rst:59
#, fuzzy
msgid ":func:`timeout`"
msgstr ":func:`round`"
msgstr ":func:`timeout`"
#: library/asyncio-api-index.rst:60
msgid "Run with a timeout. Useful in cases when ``wait_for`` is not suitable."
msgstr ""
"Exécute avec un délai d'attente. Utile dans les cas où ``wait_for`` ne "
"convient pas."
#: library/asyncio-api-index.rst:62
#, fuzzy
msgid ":func:`to_thread`"
msgstr ":func:`round`"
msgstr ":func:`to_thread`"
#: library/asyncio-api-index.rst:63
msgid "Asynchronously run a function in a separate OS thread."
msgstr ""
"Exécute de manière asynchrone une fonction dans un fil d'exécution séparé."
#: library/asyncio-api-index.rst:65
msgid ":func:`run_coroutine_threadsafe`"
@ -157,15 +166,15 @@ msgstr ":func:`run_coroutine_threadsafe`"
#: library/asyncio-api-index.rst:66
msgid "Schedule a coroutine from another OS thread."
msgstr ""
msgstr "Planifie une coroutine à partir d'un autre fil d'exécution."
#: library/asyncio-api-index.rst:68
msgid "``for in`` :func:`as_completed`"
msgstr ""
msgstr "``for in`` :func:`as_completed`"
#: library/asyncio-api-index.rst:69
msgid "Monitor for completion with a ``for`` loop."
msgstr ""
msgstr "Surveille l'achèvement avec une boucle ``for``."
#: library/asyncio-api-index.rst:73 library/asyncio-api-index.rst:109
#: library/asyncio-api-index.rst:133 library/asyncio-api-index.rst:169
@ -178,34 +187,41 @@ msgid ""
":ref:`Using asyncio.gather() to run things in parallel "
"<asyncio_example_gather>`."
msgstr ""
":ref:`Utilisation d'asyncio.gather() pour exécuter des choses en parallèle "
"<asyncio_example_gather>`."
#: library/asyncio-api-index.rst:77
msgid ""
":ref:`Using asyncio.wait_for() to enforce a timeout "
"<asyncio_example_waitfor>`."
msgstr ""
":ref:`Utilisation d'asyncio.wait_for() pour appliquer un délai d'attente "
"<asyncio_example_waitfor>`."
#: library/asyncio-api-index.rst:80
msgid ":ref:`Cancellation <asyncio_example_task_cancel>`."
msgstr ""
msgstr ":ref:`Annulation <asyncio_example_task_cancel>`."
#: library/asyncio-api-index.rst:82
msgid ":ref:`Using asyncio.sleep() <asyncio_example_sleep>`."
msgstr ""
msgstr ":ref:`Utilisation d'asyncio.sleep() <asyncio_example_sleep>`."
#: library/asyncio-api-index.rst:84
msgid "See also the main :ref:`Tasks documentation page <coroutine>`."
msgstr ""
msgstr "Voir aussi la page de :ref:`documentation de Tasks <coroutine>`."
#: library/asyncio-api-index.rst:88
msgid "Queues"
msgstr ""
msgstr "Files d'attente"
#: library/asyncio-api-index.rst:90
msgid ""
"Queues should be used to distribute work amongst multiple asyncio Tasks, "
"implement connection pools, and pub/sub patterns."
msgstr ""
"Les files d'attente doivent être utilisées pour répartir le travail entre "
"plusieurs tâches asynchrones, implémenter des pools de connexions et des "
"modèles *pub*/*sub*."
#: library/asyncio-api-index.rst:98
msgid ":class:`Queue`"
@ -213,7 +229,7 @@ msgstr ":class:`Queue`"
#: library/asyncio-api-index.rst:99
msgid "A FIFO queue."
msgstr ""
msgstr "File d'attente FIFO (premier entré, premier sorti)."
#: library/asyncio-api-index.rst:101
msgid ":class:`PriorityQueue`"
@ -221,7 +237,7 @@ msgstr ":class:`PriorityQueue`"
#: library/asyncio-api-index.rst:102
msgid "A priority queue."
msgstr ""
msgstr "File d'attente avec gestion des priorités."
#: library/asyncio-api-index.rst:104
msgid ":class:`LifoQueue`"
@ -229,17 +245,20 @@ msgstr ":class:`LifoQueue`"
#: library/asyncio-api-index.rst:105
msgid "A LIFO queue."
msgstr ""
msgstr "Pile LIFO (dernier entré, premier sorti)."
#: library/asyncio-api-index.rst:110
msgid ""
":ref:`Using asyncio.Queue to distribute workload between several Tasks "
"<asyncio_example_queue_dist>`."
msgstr ""
":ref:`Utilisation d'asyncio.Queue pour répartir la charge de travail entre "
"plusieurs tâches <asyncio_example_queue_dist>`."
#: library/asyncio-api-index.rst:113
msgid "See also the :ref:`Queues documentation page <asyncio-queues>`."
msgstr ""
"Voir aussi la page de :ref:`documentation des Queues <asyncio-queues>`."
#: library/asyncio-api-index.rst:117
msgid "Subprocesses"
@ -248,70 +267,73 @@ msgstr "Sous-processus"
#: library/asyncio-api-index.rst:119
msgid "Utilities to spawn subprocesses and run shell commands."
msgstr ""
"Utilitaires pour générer des sous-processus et exécuter des commandes shell."
#: library/asyncio-api-index.rst:125
msgid "``await`` :func:`create_subprocess_exec`"
msgstr ""
msgstr "``await`` :func:`create_subprocess_exec`"
#: library/asyncio-api-index.rst:126
msgid "Create a subprocess."
msgstr ""
msgstr "Crée un sous-processus."
#: library/asyncio-api-index.rst:128
msgid "``await`` :func:`create_subprocess_shell`"
msgstr ""
msgstr "``await`` :func:`create_subprocess_shell`"
#: library/asyncio-api-index.rst:129
msgid "Run a shell command."
msgstr ""
msgstr "Exécute une commande shell."
#: library/asyncio-api-index.rst:134
msgid ":ref:`Executing a shell command <asyncio_example_subprocess_shell>`."
msgstr ""
":ref:`Exécution d'une commande shell <asyncio_example_subprocess_shell>`."
#: library/asyncio-api-index.rst:136
msgid "See also the :ref:`subprocess APIs <asyncio-subprocess>` documentation."
msgstr ""
"Voir aussi la documentation des :ref:`API subprocess <asyncio-subprocess>`."
#: library/asyncio-api-index.rst:141
msgid "Streams"
msgstr "Streams"
msgstr "Flux (*streams*)"
#: library/asyncio-api-index.rst:143
msgid "High-level APIs to work with network IO."
msgstr ""
msgstr "API de haut niveau pour travailler avec les entrées-sorties réseau."
#: library/asyncio-api-index.rst:149
msgid "``await`` :func:`open_connection`"
msgstr ""
msgstr "``await`` :func:`open_connection`"
#: library/asyncio-api-index.rst:150
msgid "Establish a TCP connection."
msgstr ""
msgstr "Établit une connexion TCP."
#: library/asyncio-api-index.rst:152
msgid "``await`` :func:`open_unix_connection`"
msgstr ""
msgstr "``await`` :func:`open_unix_connection`"
#: library/asyncio-api-index.rst:153
msgid "Establish a Unix socket connection."
msgstr ""
msgstr "Établit une connexion sur un connecteur Unix."
#: library/asyncio-api-index.rst:155
msgid "``await`` :func:`start_server`"
msgstr ""
msgstr "``await`` :func:`start_server`"
#: library/asyncio-api-index.rst:156
msgid "Start a TCP server."
msgstr ""
msgstr "Démarre un serveur TCP."
#: library/asyncio-api-index.rst:158
msgid "``await`` :func:`start_unix_server`"
msgstr ""
msgstr "``await`` :func:`start_unix_server`"
#: library/asyncio-api-index.rst:159
msgid "Start a Unix socket server."
msgstr ""
msgstr "Démarre un serveur de socket Unix."
#: library/asyncio-api-index.rst:161
msgid ":class:`StreamReader`"
@ -319,7 +341,7 @@ msgstr ":class:`StreamReader`"
#: library/asyncio-api-index.rst:162
msgid "High-level async/await object to receive network data."
msgstr ""
msgstr "Objet *async/await* de haut niveau pour recevoir des données réseau."
#: library/asyncio-api-index.rst:164
msgid ":class:`StreamWriter`"
@ -327,23 +349,25 @@ msgstr ":class:`StreamWriter`"
#: library/asyncio-api-index.rst:165
msgid "High-level async/await object to send network data."
msgstr ""
msgstr "Objet *async/await* de haut niveau pour envoyer des données réseau."
#: library/asyncio-api-index.rst:170
msgid ":ref:`Example TCP client <asyncio_example_stream>`."
msgstr ""
msgstr ":ref:`Exemple de client TCP <asyncio_example_stream>`."
#: library/asyncio-api-index.rst:172
msgid "See also the :ref:`streams APIs <asyncio-streams>` documentation."
msgstr ""
msgstr "Voir aussi la documentation des :ref:`API streams <asyncio-streams>`."
#: library/asyncio-api-index.rst:177
msgid "Synchronization"
msgstr ""
msgstr "Synchronisation"
#: library/asyncio-api-index.rst:179
msgid "Threading-like synchronization primitives that can be used in Tasks."
msgstr ""
"Primitives de synchronisation de type thread qui peuvent être utilisées dans "
"les tâches."
#: library/asyncio-api-index.rst:185
msgid ":class:`Lock`"
@ -351,7 +375,7 @@ msgstr ":class:`Lock`"
#: library/asyncio-api-index.rst:186
msgid "A mutex lock."
msgstr ""
msgstr "Verrou mutex."
#: library/asyncio-api-index.rst:188
msgid ":class:`Event`"
@ -359,7 +383,7 @@ msgstr ":class:`Event`"
#: library/asyncio-api-index.rst:189
msgid "An event object."
msgstr ""
msgstr "Objet événement."
#: library/asyncio-api-index.rst:191
msgid ":class:`Condition`"
@ -367,7 +391,7 @@ msgstr ":class:`Condition`"
#: library/asyncio-api-index.rst:192
msgid "A condition object."
msgstr ""
msgstr "Objet condition."
#: library/asyncio-api-index.rst:194
msgid ":class:`Semaphore`"
@ -375,7 +399,7 @@ msgstr ":class:`Semaphore`"
#: library/asyncio-api-index.rst:195
msgid "A semaphore."
msgstr ""
msgstr "Sémaphore."
#: library/asyncio-api-index.rst:197
msgid ":class:`BoundedSemaphore`"
@ -383,30 +407,31 @@ msgstr ":class:`BoundedSemaphore`"
#: library/asyncio-api-index.rst:198
msgid "A bounded semaphore."
msgstr ""
msgstr "Sémaphore avec des bornes."
#: library/asyncio-api-index.rst:200
#, fuzzy
msgid ":class:`Barrier`"
msgstr ":class:`Semaphore`"
msgstr ":class:`Barrier`"
#: library/asyncio-api-index.rst:201
msgid "A barrier object."
msgstr ""
msgstr "Objet barrière."
#: library/asyncio-api-index.rst:206
msgid ":ref:`Using asyncio.Event <asyncio_example_sync_event>`."
msgstr ""
msgstr ":ref:`Utilisation d'asyncio.Event <asyncio_example_sync_event>`."
#: library/asyncio-api-index.rst:208
msgid ":ref:`Using asyncio.Barrier <asyncio_example_barrier>`."
msgstr ""
msgstr ":ref:`Utilisation d'asyncio.Barrier <asyncio_example_barrier>`."
#: library/asyncio-api-index.rst:210
msgid ""
"See also the documentation of asyncio :ref:`synchronization primitives "
"<asyncio-sync>`."
msgstr ""
"Voir aussi la documentation des :ref:`primitives asyncio de synchronisation "
"<asyncio-sync>`."
#: library/asyncio-api-index.rst:215
msgid "Exceptions"
@ -418,24 +443,28 @@ msgstr ":exc:`asyncio.CancelledError`"
#: library/asyncio-api-index.rst:223
msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`."
msgstr ""
msgstr "Levée lorsqu'une tâche est annulée. Voir aussi :meth:`Task.cancel`."
#: library/asyncio-api-index.rst:225
msgid ":exc:`asyncio.BrokenBarrierError`"
msgstr ""
msgstr ":exc:`asyncio.BrokenBarrierError`"
#: library/asyncio-api-index.rst:226
msgid "Raised when a Barrier is broken. See also :meth:`Barrier.wait`."
msgstr ""
msgstr "Levée lorsqu'une barrière est brisée. Voir aussi :meth:`Barrier.wait`."
#: library/asyncio-api-index.rst:231
msgid ""
":ref:`Handling CancelledError to run code on cancellation request "
"<asyncio_example_task_cancel>`."
msgstr ""
":ref:`Utilisation de CancelledError pour exécuter le code sur la demande "
"d'annulation <asyncio_example_task_cancel>`."
#: library/asyncio-api-index.rst:234
msgid ""
"See also the full list of :ref:`asyncio-specific exceptions <asyncio-"
"exceptions>`."
msgstr ""
"Voir aussi la liste complète des :ref:`exceptions spécifiques asyncio "
"<asyncio-exceptions>`."

View File

@ -6,51 +6,66 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-23 00:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2023-06-17 19:00+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@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"
"X-Generator: Poedit 3.2.2\n"
#: library/asyncio-extending.rst:6
msgid "Extending"
msgstr ""
msgstr "Extension"
#: library/asyncio-extending.rst:8
msgid ""
"The main direction for :mod:`asyncio` extending is writing custom *event "
"loop* classes. Asyncio has helpers that could be used to simplify this task."
msgstr ""
"La direction principale pour l'extension d':mod:`asyncio` est l'écriture de "
"classes *event loop* personnalisées. *Asyncio* a des assistants qui peuvent "
"être utilisés pour simplifier cette tâche."
# suit un :
#: library/asyncio-extending.rst:13
msgid ""
"Third-parties should reuse existing asyncio code with caution, a new Python "
"version is free to break backward compatibility in *internal* part of API."
msgstr ""
"la réutilisation du code asynchrone existant doit se faire avec prudence, "
"une nouvelle version de Python est libre de rompre la compatibilité "
"descendante dans la partie *interne* de l'API."
#: library/asyncio-extending.rst:19
msgid "Writing a Custom Event Loop"
msgstr ""
msgstr "Écriture d'une boucle d'événements personnalisée"
#: library/asyncio-extending.rst:21
msgid ""
":class:`asyncio.AbstractEventLoop` declares very many methods. Implementing "
"all them from scratch is a tedious job."
msgstr ""
":class:`asyncio.AbstractEventLoop` déclare de très nombreuses méthodes. Les "
"mettre en œuvre à partir de zéro est un travail fastidieux."
#: library/asyncio-extending.rst:24
msgid ""
"A loop can get many common methods implementation for free by inheriting "
"from :class:`asyncio.BaseEventLoop`."
msgstr ""
"Une boucle d'événements peut obtenir gratuitement l'implémentation de "
"nombreuses méthodes courantes en héritant de :class:`asyncio.BaseEventLoop`."
#: library/asyncio-extending.rst:27
msgid ""
"In turn, the successor should implement a bunch of *private* methods "
"declared but not implemented in :class:`asyncio.BaseEventLoop`."
msgstr ""
"Le successeur doit, pour ce qui le concerne, implémenter un ensemble de "
"méthodes *privées* déclarées mais non implémentées dans :class:`asyncio."
"BaseEventLoop`."
#: library/asyncio-extending.rst:30
msgid ""
@ -59,10 +74,14 @@ msgid ""
"implemented by inherited class. The ``_make_socket_transport()`` method is "
"not documented and is considered as an *internal* API."
msgstr ""
"Par exemple, ``loop.create_connection()`` vérifie les arguments, résout les "
"adresses DNS et appelle ``loop._make_socket_transport()`` qui doit être "
"implémentée par la classe héritée. La méthode ``_make_socket_transport()`` "
"n'est pas documentée et est considérée comme une API *interne*."
#: library/asyncio-extending.rst:38
msgid "Future and Task private constructors"
msgstr ""
msgstr "Constructeurs privés *Future* et *Task*"
#: library/asyncio-extending.rst:40
msgid ""
@ -70,6 +89,10 @@ msgid ""
"directly, please use corresponding :meth:`loop.create_future` and :meth:"
"`loop.create_task`, or :func:`asyncio.create_task` factories instead."
msgstr ""
":class:`asyncio.Future` et :class:`asyncio.Task` ne doivent jamais être "
"créées directement, veuillez utiliser les correspondances :meth:`loop."
"create_future` et :meth:`loop.create_task`, ou les fabriques :func:`asyncio."
"create_task` à la place."
#: library/asyncio-extending.rst:44
msgid ""
@ -77,36 +100,42 @@ msgid ""
"implementations for the sake of getting a complex and highly optimized code "
"for free."
msgstr ""
"Cependant, les *boucles d'événements* tierces peuvent *réutiliser* les "
"implémentations de *Future* et de *Task* intégrées dans le but d'obtenir "
"gratuitement un code complexe et hautement optimisé."
#: library/asyncio-extending.rst:47
msgid "For this purpose the following, *private* constructors are listed:"
msgstr ""
msgstr "À cette fin, les constructeurs *privés* suivants sont répertoriés :"
#: library/asyncio-extending.rst:51
msgid "Create a built-in future instance."
msgstr ""
msgstr "Crée une instance de la *future* native."
#: library/asyncio-extending.rst:53
msgid "*loop* is an optional event loop instance."
msgstr ""
msgstr "*loop* est une instance de boucle d'événements facultative."
#: library/asyncio-extending.rst:57
msgid "Create a built-in task instance."
msgstr ""
msgstr "Crée une instance de la *Task* native."
#: library/asyncio-extending.rst:59
msgid ""
"*loop* is an optional event loop instance. The rest of arguments are "
"described in :meth:`loop.create_task` description."
msgstr ""
"*loop* est une instance de boucle d'événements facultative. Le reste des "
"arguments est décrit dans la description de :meth:`loop.create_task`."
# suit un :
#: library/asyncio-extending.rst:64
msgid "*context* argument is added."
msgstr ""
msgstr "l'argument *contexte* a été ajouté."
#: library/asyncio-extending.rst:69
msgid "Task lifetime support"
msgstr ""
msgstr "Prise en charge de la durée de vie des tâches"
#: library/asyncio-extending.rst:71
msgid ""
@ -114,39 +143,48 @@ msgid ""
"keep a task visible by :func:`asyncio.get_tasks` and :func:`asyncio."
"current_task`:"
msgstr ""
"Une implémentation tierce de tâche doit appeler les fonctions suivantes pour "
"garder une tâche visible par :func:`asyncio.get_tasks` et :func:`asyncio."
"current_task` :"
#: library/asyncio-extending.rst:76
msgid "Register a new *task* as managed by *asyncio*."
msgstr ""
msgstr "Enregistre une nouvelle *tâche* comme gérée par *asyncio*."
#: library/asyncio-extending.rst:78
msgid "Call the function from a task constructor."
msgstr ""
msgstr "Appelez la fonction à partir d'un constructeur de tâche."
#: library/asyncio-extending.rst:82
msgid "Unregister a *task* from *asyncio* internal structures."
msgstr ""
msgstr "Désinscrit une *tâche* des structures internes *asyncio*."
#: library/asyncio-extending.rst:84
msgid "The function should be called when a task is about to finish."
msgstr ""
"La fonction doit être appelée lorsqu'une tâche est sur le point de se "
"terminer."
#: library/asyncio-extending.rst:88
msgid "Switch the current task to the *task* argument."
msgstr ""
msgstr "Bascule la tâche en cours vers l'argument *task*."
#: library/asyncio-extending.rst:90
msgid ""
"Call the function just before executing a portion of embedded *coroutine* (:"
"meth:`coroutine.send` or :meth:`coroutine.throw`)."
msgstr ""
"Appelez la fonction juste avant d'exécuter une partie de la *coroutine* "
"intégrée (:meth:`coroutine.send` ou :meth:`coroutine.throw`)."
#: library/asyncio-extending.rst:95
msgid "Switch the current task back from *task* to ``None``."
msgstr ""
msgstr "Rebascule la tâche en cours de *task* à ``None``."
#: library/asyncio-extending.rst:97
msgid ""
"Call the function just after :meth:`coroutine.send` or :meth:`coroutine."
"throw` execution."
msgstr ""
"Appelez la fonction juste après l'exécution de :meth:`coroutine.send` ou :"
"meth:`coroutine.throw`."

File diff suppressed because it is too large Load Diff

View File

@ -6,17 +6,18 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2023-06-17 17:57+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@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"
"X-Generator: Poedit 3.2.2\n"
#: library/asyncio-platforms.rst:9
msgid "Platform Support"
msgstr ""
msgstr "Prise en charge de la plate-forme"
#: library/asyncio-platforms.rst:11
msgid ""
@ -24,16 +25,21 @@ msgid ""
"have subtle differences and limitations due to the platforms' underlying "
"architecture and capabilities."
msgstr ""
"Le module :mod:`asyncio` est conçu pour être portable, mais certaines plates-"
"formes présentent des différences et des limitations subtiles en raison de "
"l'architecture et des capacités sous-jacentes des plates-formes."
#: library/asyncio-platforms.rst:17
msgid "All Platforms"
msgstr ""
msgstr "Toutes plateformes"
#: library/asyncio-platforms.rst:19
msgid ""
":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to "
"monitor file I/O."
msgstr ""
":meth:`loop.add_reader` et :meth:`loop.add_writer` ne peuvent pas être "
"utilisées pour surveiller les entrées-sorties de fichiers."
#: library/asyncio-platforms.rst:24
msgid "Windows"
@ -44,48 +50,69 @@ msgid ""
"**Source code:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/"
"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`"
msgstr ""
"**Code source :** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/"
"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`"
# suit un :
#: library/asyncio-platforms.rst:34
msgid "On Windows, :class:`ProactorEventLoop` is now the default event loop."
msgstr ""
"sous Windows, :class:`ProactorEventLoop` est désormais la boucle "
"d'événements par défaut."
#: library/asyncio-platforms.rst:36
msgid "All event loops on Windows do not support the following methods:"
msgstr ""
"Aucune boucle d'événements sous Windows ne prend en charge les méthodes "
"suivantes :"
#: library/asyncio-platforms.rst:38
msgid ""
":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are "
"not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix."
msgstr ""
":meth:`loop.create_unix_connection` et :meth:`loop.create_unix_server` ne "
"sont pas prises en charge. La famille de connecteurs :data:`socket.AF_UNIX` "
"est spécifique à Unix."
#: library/asyncio-platforms.rst:42
msgid ""
":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are "
"not supported."
msgstr ""
":meth:`loop.add_signal_handler` et :meth:`loop.remove_signal_handler` ne "
"sont pas prises en charge."
#: library/asyncio-platforms.rst:45
msgid ":class:`SelectorEventLoop` has the following limitations:"
msgstr ""
msgstr ":class:`SelectorEventLoop` a les limitations suivantes :"
#: library/asyncio-platforms.rst:47
msgid ""
":class:`~selectors.SelectSelector` is used to wait on socket events: it "
"supports sockets and is limited to 512 sockets."
msgstr ""
":class:`~selectors.SelectSelector` est utilisée pour attendre les événements "
"de connecteur (*sockets*) : elle prend en charge les connecteurs et est "
"limitée à 512 connecteurs."
#: library/asyncio-platforms.rst:50
msgid ""
":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket "
"handles (e.g. pipe file descriptors are not supported)."
msgstr ""
":meth:`loop.add_reader` et :meth:`loop.add_writer` n'acceptent que les "
"descripteurs de connecteur (par exemple, les descripteurs de tube fichier ne "
"sont pas pris en charge)."
#: library/asyncio-platforms.rst:53
msgid ""
"Pipes are not supported, so the :meth:`loop.connect_read_pipe` and :meth:"
"`loop.connect_write_pipe` methods are not implemented."
msgstr ""
"Les tubes ne sont pas pris en charge, donc les méthodes :meth:`loop."
"connect_read_pipe` et :meth:`loop.connect_write_pipe` ne sont pas "
"implémentées."
#: library/asyncio-platforms.rst:56
msgid ""
@ -93,16 +120,21 @@ msgid ""
"subprocess_exec` and :meth:`loop.subprocess_shell` methods are not "
"implemented."
msgstr ""
"Les :ref:`sous-processus <asyncio-subprocess>` ne sont pas pris en charge, "
"c'est-à-dire que les méthodes :meth:`loop.subprocess_exec` et :meth:`loop."
"subprocess_shell` ne sont pas implémentées."
#: library/asyncio-platforms.rst:60
msgid ":class:`ProactorEventLoop` has the following limitations:"
msgstr ""
msgstr ":class:`ProactorEventLoop` a les limitations suivantes :"
#: library/asyncio-platforms.rst:62
msgid ""
"The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not "
"supported."
msgstr ""
"Les méthodes :meth:`loop.add_reader` et :meth:`loop.add_writer` ne sont pas "
"prises en charge."
#: library/asyncio-platforms.rst:65
msgid ""
@ -111,16 +143,23 @@ msgid ""
"depends on the hardware (availability of `HPET <https://en.wikipedia.org/"
"wiki/High_Precision_Event_Timer>`_) and on the Windows configuration."
msgstr ""
"La résolution de l'horloge monotone sous Windows est généralement d'environ "
"15,6 millisecondes. La meilleure résolution est de 0,5 milliseconde. La "
"résolution dépend du matériel (disponibilité de `HPET <https://fr.wikipedia."
"org/wiki/High_Precision_Event_Timer>`_) et de la configuration de Windows."
#: library/asyncio-platforms.rst:75
msgid "Subprocess Support on Windows"
msgstr ""
msgstr "Prise en charge des sous-processus sous Windows"
#: library/asyncio-platforms.rst:77
msgid ""
"On Windows, the default event loop :class:`ProactorEventLoop` supports "
"subprocesses, whereas :class:`SelectorEventLoop` does not."
msgstr ""
"Sous Windows, la boucle d'événements par défaut :class:`ProactorEventLoop` "
"prend en charge les sous-processus, contrairement à :class:"
"`SelectorEventLoop`."
#: library/asyncio-platforms.rst:80
msgid ""
@ -128,6 +167,10 @@ msgid ""
"set_child_watcher>` function is also not supported, as :class:"
"`ProactorEventLoop` has a different mechanism to watch child processes."
msgstr ""
"La fonction :meth:`policy.set_child_watcher() <AbstractEventLoopPolicy."
"set_child_watcher>` n'est pas non plus prise en charge, car :class:"
"`ProactorEventLoop` a un mécanisme différent pour surveiller les processus "
"enfants."
#: library/asyncio-platforms.rst:87
msgid "macOS"
@ -135,11 +178,11 @@ msgstr "macOS"
#: library/asyncio-platforms.rst:89
msgid "Modern macOS versions are fully supported."
msgstr ""
msgstr "Les versions modernes de macOS sont entièrement prises en charge."
#: library/asyncio-platforms.rst:92
msgid "macOS <= 10.8"
msgstr ""
msgstr "macOS ≤ 10.8"
#: library/asyncio-platforms.rst:93
msgid ""
@ -149,3 +192,10 @@ msgid ""
"class:`~selectors.SelectSelector` or :class:`~selectors.PollSelector` to "
"support character devices on these older versions of macOS. Example::"
msgstr ""
"Sur macOS 10.6, 10.7 et 10.8, la boucle d'événements par défaut utilise :"
"class:`selectors.KqueueSelector`, qui ne prend pas en charge les "
"périphériques de caractères sur ces versions. La :class:`SelectorEventLoop` "
"peut être configurée manuellement pour utiliser :class:`~selectors."
"SelectSelector` ou :class:`~selectors.PollSelector` pour prendre en charge "
"les périphériques de caractères sur ces anciennes versions de macOS. Par "
"exemple ::"

View File

@ -6,18 +6,18 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-11-17 01:26+0100\n"
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
"PO-Revision-Date: 2023-06-17 17:44+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@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"
"X-Generator: Poedit 2.2.4\n"
"X-Generator: Poedit 3.2.2\n"
#: library/asyncio-policy.rst:8
msgid "Policies"
msgstr "Stratégies"
msgstr "Politiques"
#: library/asyncio-policy.rst:10
msgid ""
@ -28,25 +28,32 @@ msgid ""
"implementations, or substituted by a :ref:`custom policy <asyncio-custom-"
"policies>` that can override these behaviors."
msgstr ""
"Une politique de boucle d'événements est un objet global utilisé pour "
"obtenir et définir la :ref:`boucle d'événements <asyncio-event-loop>` "
"actuelle, ainsi que créer de nouvelles boucles d'événements. La politique "
"par défaut peut être :ref:`remplacée <asyncio-policy-get-set>` par des :ref:"
"`alternatives intégrées <asyncio-policy-builtin>` afin d'utiliser d'autres "
"implémentations de boucles d'événements, ou remplacée par une :ref:"
"`politique personnalisée <asyncio-custom-policies>` qui peut remplacer ces "
"comportements."
#: library/asyncio-policy.rst:19
#, fuzzy
msgid ""
"The :ref:`policy object <asyncio-policy-objects>` gets and sets a separate "
"event loop per *context*. This is per-thread by default, though custom "
"policies could define *context* differently."
msgstr ""
"Une stratégie définit la notion de *contexte* et gère une boucle d'événement "
"distincte par contexte. La stratégie par défaut définit le *contexte* comme "
"étant le fil d'exécution actuel."
"Un :ref:`objet politique <asyncio-policy-objects>` définit la notion de "
"*contexte* et gère une boucle d'événement distincte par contexte. Ceci est "
"valable fil par fil d'exécution par défaut, bien que les politiques "
"personnalisées puissent définir le *contexte* différemment."
#: library/asyncio-policy.rst:24
#, fuzzy
msgid ""
"Custom event loop policies can control the behavior of :func:"
"`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop`."
msgstr ""
"En utilisant une stratégie de boucle d'événement personnalisée, le "
"En utilisant une politique de boucle d'événement personnalisée, le "
"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` "
"et :func:`new_event_loop` peut être personnalisé."
@ -55,12 +62,12 @@ msgid ""
"Policy objects should implement the APIs defined in the :class:"
"`AbstractEventLoopPolicy` abstract base class."
msgstr ""
"Les objets de stratégie doivent implémenter les API définies dans la classe "
"de base abstraite :class:`AbstractEventLoopPolicy`."
"Les objets politiques doivent implémenter les API définies dans la classe "
"mère abstraite :class:`AbstractEventLoopPolicy`."
#: library/asyncio-policy.rst:34
msgid "Getting and Setting the Policy"
msgstr "Obtenir et définir la stratégie"
msgstr "Obtenir et définir la politique"
#: library/asyncio-policy.rst:36
msgid ""
@ -68,35 +75,35 @@ msgid ""
"current process:"
msgstr ""
"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la "
"stratégie du processus en cours :"
"politique du processus en cours :"
#: library/asyncio-policy.rst:41
msgid "Return the current process-wide policy."
msgstr "Renvoie la stratégie actuelle à l'échelle du processus."
msgstr "Renvoie la politique actuelle à l'échelle du processus."
#: library/asyncio-policy.rst:45
msgid "Set the current process-wide policy to *policy*."
msgstr ""
"Définit la stratégie actuelle sur l'ensemble du processus sur *policy*."
"Définit la politique actuelle sur l'ensemble du processus sur *policy*."
#: library/asyncio-policy.rst:47
msgid "If *policy* is set to ``None``, the default policy is restored."
msgstr ""
"Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée."
"Si *policy* est définie sur ``None``, la politique par défaut est restaurée."
#: library/asyncio-policy.rst:53
msgid "Policy Objects"
msgstr "Sujets de stratégie"
msgstr "Objets politiques"
#: library/asyncio-policy.rst:55
msgid "The abstract event loop policy base class is defined as follows:"
msgstr ""
"La classe de base abstraite de la stratégie de boucle d'événements est "
"définie comme suit :"
"La classe mère abstraite de la politique de boucle d'événements est définie "
"comme suit :"
#: library/asyncio-policy.rst:59
msgid "An abstract base class for asyncio policies."
msgstr "Une classe de base abstraite pour les stratégies *asyncio*."
msgstr "Une classe de base abstraite pour les politiques *asyncio*."
#: library/asyncio-policy.rst:63
msgid "Get the event loop for the current context."
@ -144,14 +151,14 @@ msgstr "Définit l'observateur du processus enfant actuel à *watcher*."
#: library/asyncio-policy.rst:100
msgid "asyncio ships with the following built-in policies:"
msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :"
msgstr "*asyncio* est livré avec les politiques intégrées suivantes :"
#: library/asyncio-policy.rst:105
msgid ""
"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :"
"class:`ProactorEventLoop` on Windows."
msgstr ""
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"La politique *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"les plates-formes Unix et :class:`ProactorEventLoop` sur Windows."
#: library/asyncio-policy.rst:108
@ -159,13 +166,14 @@ msgid ""
"There is no need to install the default policy manually. asyncio is "
"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 "
"Il n'est pas nécessaire d'installer la politique par défaut manuellement. "
"*asyncio* est configuré pour utiliser automatiquement la politique par "
"défaut."
#: library/asyncio-policy.rst:113
msgid "On Windows, :class:`ProactorEventLoop` is now used by default."
msgstr ""
"Sous Windows, :class:`ProactorEventLoop` est désormais utilisée par défaut."
#: library/asyncio-policy.rst:116
msgid ""
@ -174,13 +182,18 @@ msgid ""
"no running event loop and no current loop is set. In some future Python "
"release this will become an error."
msgstr ""
"Dans les versions Python 3.10.9, 3.11.1 et 3.12, la méthode :meth:"
"`get_event_loop` de la politique *asyncio* par défaut lève un :exc:"
"`DeprecationWarning` s'il n'y a pas de boucle d'événements en cours et "
"qu'aucune boucle actuelle n'est définie. Dans une future version de Python, "
"cela deviendra une erreur."
#: library/asyncio-policy.rst:124
msgid ""
"An alternative event loop policy that uses the :class:`SelectorEventLoop` "
"event loop implementation."
msgstr ""
"Stratégie de boucle d'événements alternative utilisant l'implémentation de "
"Politique de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:135
@ -188,12 +201,11 @@ msgid ":ref:`Availability <availability>`: Windows."
msgstr ":ref:`Disponibilité <availability>` : Windows."
#: library/asyncio-policy.rst:132
#, fuzzy
msgid ""
"An alternative event loop policy that uses the :class:`ProactorEventLoop` "
"event loop implementation."
msgstr ""
"Stratégie de boucle d'événements alternative utilisant l'implémentation de "
"Politique de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:141
@ -220,7 +232,6 @@ msgstr ""
"`create_subprocess_exec` et :meth:`loop.subprocess_exec`."
#: library/asyncio-policy.rst:151
#, fuzzy
msgid ""
"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which "
"child watchers should implement, and has four different implementations: :"
@ -228,10 +239,11 @@ msgid ""
"`MultiLoopChildWatcher`, :class:`SafeChildWatcher`, and :class:"
"`FastChildWatcher`."
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`."
"*asyncio* définit la classe mère abstraite :class:`AbstractChildWatcher`, "
"que les observateurs enfants doivent implémenter et possède quatre "
"implémentations différentes : :class:`ThreadedChildWatcher` (configurée pour "
"être utilisé par défaut), :class:`MultiLoopChildWatcher`, :class:"
"`SafeChildWatcher` et :class:`FastChildWatcher`."
#: library/asyncio-policy.rst:157
msgid ""
@ -252,7 +264,7 @@ msgstr ""
#: library/asyncio-policy.rst:165
msgid "Return the current child watcher for the current policy."
msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle."
msgstr "Renvoie l'observateur enfant actuel pour la politique actuelle."
#: library/asyncio-policy.rst:169
msgid ""
@ -260,7 +272,7 @@ 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. "
"Définit l'observateur enfant actuel à *watcher* pour la politique actuelle. "
"*watcher* doit implémenter les méthodes définies dans la classe de base :"
"class:`AbstractChildWatcher`."
@ -270,9 +282,9 @@ msgid ""
"watchers. For such event loops, using :func:`set_child_watcher` might be "
"prohibited or have no effect."
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 "
"Les implémentations de boucles d'événements 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."
#: library/asyncio-policy.rst:182
@ -286,7 +298,7 @@ msgid ""
"same process replaces the previous handler."
msgstr ""
"Organise l'appel de ``callback(pid, returncode, * args)`` lorsqu'un "
"processus dont le PID est égal à *pid* se termine. La spécification d'un "
"processus dont le *PID* est égal à *pid* se termine. La spécification d'un "
"autre rappel pour le même processus remplace le gestionnaire précédent."
#: library/asyncio-policy.rst:189
@ -325,13 +337,15 @@ msgstr "Remarque : la boucle peut être ``None``."
#: library/asyncio-policy.rst:209
msgid "Return ``True`` if the watcher is ready to use."
msgstr ""
msgstr "Renvoie ``True`` si l'observateur est prêt à être utilisé."
#: library/asyncio-policy.rst:211
msgid ""
"Spawning a subprocess with *inactive* current child watcher raises :exc:"
"`RuntimeError`."
msgstr ""
"La création d'un sous-processus avec un observateur enfant actuel *inactif* "
"lève une :exc:`RuntimeError`."
#: library/asyncio-policy.rst:218
msgid "Close the watcher."
@ -346,26 +360,21 @@ msgstr ""
"jacentes sont nettoyées."
#: library/asyncio-policy.rst:225
#, fuzzy
msgid ""
"This implementation starts a new waiting thread for every subprocess spawn."
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 démarre un nouveau fil d'exécution en attente pour "
"chaque génération de sous-processus."
#: library/asyncio-policy.rst:227
#, fuzzy
msgid ""
"It works reliably even when the asyncio event loop is run in a non-main OS "
"thread."
msgstr ""
"C'est une solution sûre, mais elle nécessite un temps système important lors "
"de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que "
"un :py:data:`SIGCHLD` est reçu)."
"Il fonctionne de manière fiable même lorsque la boucle d'événements "
"*asyncio* est exécutée dans un fil d'exécution non principal."
#: library/asyncio-policy.rst:229
#, fuzzy
msgid ""
"There is no noticeable overhead when handling a big number of children "
"(*O(1)* each time a child terminates), but starting a thread per process "
@ -376,7 +385,7 @@ msgstr ""
#: library/asyncio-policy.rst:232
msgid "This watcher is used by default."
msgstr ""
msgstr "Cet observateur est utilisé par défaut."
#: library/asyncio-policy.rst:238
msgid ""
@ -384,24 +393,34 @@ msgid ""
"instantiation. That can break third-party code that installs a custom "
"handler for :py:data:`SIGCHLD` signal."
msgstr ""
"Cette implémentation enregistre un gestionnaire de signal :py:data:`SIGCHLD` "
"lors de l'instanciation. Cela peut casser le code tiers qui installe un "
"gestionnaire personnalisé pour le signal :py:data:`SIGCHLD`."
#: library/asyncio-policy.rst:260
msgid ""
"The watcher avoids disrupting other code spawning processes by polling every "
"process explicitly on a :py:data:`SIGCHLD` signal."
msgstr ""
"L'observateur évite de perturber un autre code qui crée des processus en "
"interrogeant explicitement chaque processus sur un signal :py:data:`SIGCHLD`."
#: library/asyncio-policy.rst:245
msgid ""
"There is no limitation for running subprocesses from different threads once "
"the watcher is installed."
msgstr ""
"Il n'y a aucune limitation pour l'exécution de sous-processus à partir de "
"différents fils d'exécution une fois l'observateur installé."
#: library/asyncio-policy.rst:248
msgid ""
"The solution is safe but it has a significant overhead when handling a big "
"number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)."
msgstr ""
"La solution est sûre mais elle a une surcharge importante lors de la gestion "
"d'un grand nombre de processus (*O(n)* chaque fois qu'un :py:data:`SIGCHLD` "
"est reçu)."
#: library/asyncio-policy.rst:256
msgid ""
@ -409,6 +428,11 @@ msgid ""
"py:data:`SIGCHLD` signal. If the main thread has no running event loop "
"another thread cannot spawn a subprocess (:exc:`RuntimeError` is raised)."
msgstr ""
"Cette implémentation utilise une boucle d'événements active du fil "
"d'exécution principal pour gérer le signal :py:data:`SIGCHLD`. Si le fil "
"d'exécution principal n'a pas de boucle d'événements en cours d'exécution, "
"un autre fil ne pourra pas générer de sous-processus (une :exc:"
"`RuntimeError` est levée)."
#: library/asyncio-policy.rst:263
msgid ""
@ -416,6 +440,9 @@ msgid ""
"*O(N)* complexity but requires a running event loop in the main thread to "
"work."
msgstr ""
"Cette solution est aussi sûre que :class:`MultiLoopChildWatcher` et a la "
"même complexité en *O(N)* mais nécessite une boucle d'événements en cours "
"d'exécution dans le fil d'exécution principal pour fonctionner."
#: library/asyncio-policy.rst:268
msgid ""
@ -440,6 +467,9 @@ msgid ""
"This solution requires a running event loop in the main thread to work, as :"
"class:`SafeChildWatcher`."
msgstr ""
"Cette solution nécessite une boucle d'événements en cours d'exécution dans "
"le fil d'exécution principal pour fonctionner, comme :class:"
"`SafeChildWatcher`."
#: library/asyncio-policy.rst:280
msgid ""
@ -451,10 +481,18 @@ msgid ""
"event loop. The main disadvantage is that pidfds are specific to Linux, and "
"only work on recent (5.3+) kernels."
msgstr ""
"Cette implémentation interroge les descripteurs de fichiers de processus "
"(*pidfds*) pour attendre la fin du processus enfant. À certains égards, :"
"class:`PidfdChildWatcher` est une implémentation d'observateur d'enfants "
"*Goldilocks*. Elle ne nécessite ni signaux ni threads, n'interfère avec "
"aucun processus lancé en dehors de la boucle d'événements et évolue de "
"manière linéaire avec le nombre de sous-processus lancés par la boucle "
"d'événements. Le principal inconvénient est que les *pidfds* sont "
"spécifiques à Linux et ne fonctionnent que sur les noyaux récents (5.3+)."
#: library/asyncio-policy.rst:294
msgid "Custom Policies"
msgstr "Stratégies personnalisées"
msgstr "Politiques personnalisées"
#: library/asyncio-policy.rst:296
msgid ""