1
0
Fork 0

asyncio-subprocess (#71)

J'ai avancé sur la traduction de la documentation de asyncio-subprocess.

Co-authored-by: nicolastala <contact@nicolastala.fr>
Co-authored-by: Julien Palard <julien@palard.fr>
Reviewed-on: AFPy/python-docs-fr#71
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: nicolas talabardon <contact@nicolastala.fr>
Co-committed-by: nicolas talabardon <contact@nicolastala.fr>
This commit is contained in:
nicolas talabardon 2023-03-19 13:47:27 +00:00 committed by Julien Palard
parent c5cb1d9e65
commit 88312851b0
1 changed files with 93 additions and 28 deletions

View File

@ -6,13 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n" "Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n" "POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-15 00:37+0200\n" "PO-Revision-Date: 2023-03-19 14:41+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n" "Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n" "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
#: library/asyncio-subprocess.rst:7 #: library/asyncio-subprocess.rst:7
msgid "Subprocesses" msgid "Subprocesses"
@ -29,37 +30,45 @@ msgid ""
"This section describes high-level async/await asyncio APIs to create and " "This section describes high-level async/await asyncio APIs to create and "
"manage subprocesses." "manage subprocesses."
msgstr "" msgstr ""
"Cette section décrit des API de haut niveau de *asyncio* pour créer et gérer "
"des sous-processus via ``async``/``await``."
#: library/asyncio-subprocess.rst:19 #: library/asyncio-subprocess.rst:19
msgid "" msgid ""
"Here's an example of how asyncio can run a shell command and obtain its " "Here's an example of how asyncio can run a shell command and obtain its "
"result::" "result::"
msgstr "" msgstr ""
"Voici un exemple de comment *asyncio* peut lancer une commande shell et "
"obtenir son résultat ::"
#: library/asyncio-subprocess.rst:40 #: library/asyncio-subprocess.rst:40
#, fuzzy
msgid "will print::" msgid "will print::"
msgstr "affiche ::" msgstr "affiche ::"
#: library/asyncio-subprocess.rst:46 #: library/asyncio-subprocess.rst:46
#, fuzzy
msgid "" msgid ""
"Because all asyncio subprocess functions are asynchronous and asyncio " "Because all asyncio subprocess functions are asynchronous and asyncio "
"provides many tools to work with such functions, it is easy to execute and " "provides many tools to work with such functions, it is easy to execute and "
"monitor multiple subprocesses in parallel. It is indeed trivial to modify " "monitor multiple subprocesses in parallel. It is indeed trivial to modify "
"the above example to run several commands simultaneously::" "the above example to run several commands simultaneously::"
msgstr "" msgstr ""
"Puisque toutes les fonctions à sous-processus d'*asyncio* sont synchrones et "
"qu'*asyncio* fournit de nombreux outils pour travailler avec de telles "
"fonctions, il est facile d'exécuter et de surveiller de nombreux processus "
"en parallèle :"
#: library/asyncio-subprocess.rst:58 #: library/asyncio-subprocess.rst:58
msgid "See also the `Examples`_ subsection." msgid "See also the `Examples`_ subsection."
msgstr "" msgstr "Voir également la section `Exemples`_."
#: library/asyncio-subprocess.rst:62 #: library/asyncio-subprocess.rst:62
msgid "Creating Subprocesses" msgid "Creating Subprocesses"
msgstr "" msgstr "Créer des sous-processus"
#: library/asyncio-subprocess.rst:67 #: library/asyncio-subprocess.rst:67
msgid "Create a subprocess." msgid "Create a subprocess."
msgstr "" msgstr "Crée un sous-processus."
#: library/asyncio-subprocess.rst:69 library/asyncio-subprocess.rst:87 #: library/asyncio-subprocess.rst:69 library/asyncio-subprocess.rst:87
msgid "" msgid ""
@ -67,20 +76,25 @@ msgid ""
"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" "wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:"
"`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)."
msgstr "" msgstr ""
"Le paramètre *limit* définit la taille maximale du tampon pour les instances "
"de :class:`StreamReader` encapsulant :attr:`Process.stdout` et :attr:"
"`Process.stderr` (Si :attr:`subprocess.PIPE` est passé aux paramètres "
"*stdout* et *stderr*)."
#: library/asyncio-subprocess.rst:73 library/asyncio-subprocess.rst:91 #: library/asyncio-subprocess.rst:73 library/asyncio-subprocess.rst:91
msgid "Return a :class:`~asyncio.subprocess.Process` instance." msgid "Return a :class:`~asyncio.subprocess.Process` instance."
msgstr "" msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`."
#: library/asyncio-subprocess.rst:75 #: library/asyncio-subprocess.rst:75
msgid "" msgid ""
"See the documentation of :meth:`loop.subprocess_exec` for other parameters." "See the documentation of :meth:`loop.subprocess_exec` for other parameters."
msgstr "" msgstr ""
"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres "
"paramètres."
#: library/asyncio-subprocess.rst:78 library/asyncio-subprocess.rst:105 #: library/asyncio-subprocess.rst:78 library/asyncio-subprocess.rst:105
#, fuzzy
msgid "Removed the *loop* parameter." msgid "Removed the *loop* parameter."
msgstr "Autres paramètres :" msgstr "Suppression du paramètre *loop*."
#: library/asyncio-subprocess.rst:85 #: library/asyncio-subprocess.rst:85
msgid "Run the *cmd* shell command." msgid "Run the *cmd* shell command."
@ -90,6 +104,8 @@ msgstr "Exécute la commande *cmd* dans un *shell*."
msgid "" msgid ""
"See the documentation of :meth:`loop.subprocess_shell` for other parameters." "See the documentation of :meth:`loop.subprocess_shell` for other parameters."
msgstr "" msgstr ""
"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres "
"paramètres."
#: library/asyncio-subprocess.rst:98 #: library/asyncio-subprocess.rst:98
msgid "" msgid ""
@ -100,6 +116,13 @@ msgid ""
"escape whitespace and special shell characters in strings that are going to " "escape whitespace and special shell characters in strings that are going to "
"be used to construct shell commands." "be used to construct shell commands."
msgstr "" msgstr ""
"Il est de la responsabilité de l'application de s'assurer que tous les "
"espaces et les caractères spéciaux sont correctement mis entre guillemets "
"pour éviter les vulnérabilités de type `injection de code <https://en."
"wikipedia.org/wiki/Shell_injection#Shell_injection>`_. La fonction :func:"
"`shlex.quote` peut être utilisée pour léchappement des espaces et "
"caractères spéciaux dans les chaînes utilisées pour construire des commandes "
"shell."
#: library/asyncio-subprocess.rst:110 #: library/asyncio-subprocess.rst:110
msgid "" msgid ""
@ -107,8 +130,12 @@ msgid ""
"used. See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` " "used. See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` "
"for details." "for details."
msgstr "" msgstr ""
"Les sous-processus sont disponibles pour Windows si un :class:"
"`ProactorEventLoop` est utilisé. Voir :ref:`Support des sous-processus sous "
"Windows <asyncio-windows-subprocess>` pour plus de précisions."
#: library/asyncio-subprocess.rst:116 #: library/asyncio-subprocess.rst:116
#, fuzzy
msgid "" msgid ""
"asyncio also has the following *low-level* APIs to work with subprocesses: :" "asyncio also has the following *low-level* APIs to work with subprocesses: :"
"meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." "meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop."
@ -116,6 +143,8 @@ msgid ""
"`Subprocess Transports <asyncio-subprocess-transports>` and :ref:`Subprocess " "`Subprocess Transports <asyncio-subprocess-transports>` and :ref:`Subprocess "
"Protocols <asyncio-subprocess-protocols>`." "Protocols <asyncio-subprocess-protocols>`."
msgstr "" msgstr ""
"*asyncio* propose aussi les API de « bas niveau » suivantes pour travailler "
"avec les sous-processus :"
#: library/asyncio-subprocess.rst:124 #: library/asyncio-subprocess.rst:124
msgid "Constants" msgid "Constants"
@ -123,7 +152,7 @@ msgstr "Constantes"
#: library/asyncio-subprocess.rst:129 #: library/asyncio-subprocess.rst:129
msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters."
msgstr "" msgstr "Peut être passé aux paramètres *stdin*, *stdout* ou *stderr*."
#: library/asyncio-subprocess.rst:131 #: library/asyncio-subprocess.rst:131
msgid "" msgid ""
@ -131,6 +160,9 @@ msgid ""
"subprocess.Process.stdin>` attribute will point to a :class:`StreamWriter` " "subprocess.Process.stdin>` attribute will point to a :class:`StreamWriter` "
"instance." "instance."
msgstr "" msgstr ""
"Si *PIPE* est passé au paramètre *stdin*, l'attribut :attr:`Process.stdin "
"<asyncio.subprocess.Process.stdin>` ne pointera pas vers une instance de :"
"class:`StreamWriter`."
#: library/asyncio-subprocess.rst:135 #: library/asyncio-subprocess.rst:135
msgid "" msgid ""
@ -139,12 +171,18 @@ msgid ""
"<asyncio.subprocess.Process.stderr>` attributes will point to :class:" "<asyncio.subprocess.Process.stderr>` attributes will point to :class:"
"`StreamReader` instances." "`StreamReader` instances."
msgstr "" msgstr ""
"Si *PIPE* est passé au paramètre *stdout* ou *stderr* , l'attribut :attr:"
"`Process.stdout <asyncio.subprocess.Process.stdout>` et :attr:`Process."
"stderr <asyncio.subprocess.Process.stderr>` pointeront vers des instances "
"de :class:`StreamReader`."
#: library/asyncio-subprocess.rst:143 #: library/asyncio-subprocess.rst:143
msgid "" msgid ""
"Special value that can be used as the *stderr* argument and indicates that " "Special value that can be used as the *stderr* argument and indicates that "
"standard error should be redirected into standard output." "standard error should be redirected into standard output."
msgstr "" msgstr ""
"Une valeur spéciale qui peut être passée au paramètre *stderr* et qui "
"indique que la sortie d'erreur doit être redirigée vers la sortie standard."
#: library/asyncio-subprocess.rst:149 #: library/asyncio-subprocess.rst:149
msgid "" msgid ""
@ -152,10 +190,13 @@ msgid ""
"to process creation functions. It indicates that the special file :data:`os." "to process creation functions. It indicates that the special file :data:`os."
"devnull` will be used for the corresponding subprocess stream." "devnull` will be used for the corresponding subprocess stream."
msgstr "" msgstr ""
"Une valeur spéciale qui peut être passée à l'argument *stdin*, *stdout* ou "
"*stderr* des fonctions créant des processus. Elle implique l'utilisation du "
"fichier :data:`os.devnull` pour le flux correspondant du processus."
#: library/asyncio-subprocess.rst:155 #: library/asyncio-subprocess.rst:155
msgid "Interacting with Subprocesses" msgid "Interacting with Subprocesses"
msgstr "" msgstr "Interagir avec les sous-processus"
#: library/asyncio-subprocess.rst:157 #: library/asyncio-subprocess.rst:157
msgid "" msgid ""
@ -199,11 +240,13 @@ msgstr ""
#: library/asyncio-subprocess.rst:184 #: library/asyncio-subprocess.rst:184
msgid "the *universal_newlines* parameter is not supported." msgid "the *universal_newlines* parameter is not supported."
msgstr "" msgstr "le paramètre *universal_newlines* n'est pas pris en charge."
#: library/asyncio-subprocess.rst:186 #: library/asyncio-subprocess.rst:186
msgid "This class is :ref:`not thread safe <asyncio-multithreading>`." msgid "This class is :ref:`not thread safe <asyncio-multithreading>`."
msgstr "" msgstr ""
"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils <asyncio-"
"multithreading>`."
#: library/asyncio-subprocess.rst:188 #: library/asyncio-subprocess.rst:188
msgid "" msgid ""
@ -215,11 +258,11 @@ msgstr ""
#: library/asyncio-subprocess.rst:193 #: library/asyncio-subprocess.rst:193
msgid "Wait for the child process to terminate." msgid "Wait for the child process to terminate."
msgstr "" msgstr "Attend que le sous processus s'arrête."
#: library/asyncio-subprocess.rst:195 #: library/asyncio-subprocess.rst:195
msgid "Set and return the :attr:`returncode` attribute." msgid "Set and return the :attr:`returncode` attribute."
msgstr "" msgstr "Définit et renvoie l'attribut :attr:`returncode`."
#: library/asyncio-subprocess.rst:199 #: library/asyncio-subprocess.rst:199
msgid "" msgid ""
@ -228,32 +271,41 @@ msgid ""
"pipe buffer to accept more data. Use the :meth:`communicate` method when " "pipe buffer to accept more data. Use the :meth:`communicate` method when "
"using pipes to avoid this condition." "using pipes to avoid this condition."
msgstr "" msgstr ""
"Cette méthode peut générer un interblocage quand ``stdout=PIPE`` ou "
"``stderr=PIPE`` est utilisé et que le sous-processus génère tellement de "
"sorties qu'il se bloque, dans l'attente que le tampon du tube côté OS "
"accepte des données supplémentaires. Pour éviter cette situation, choisissez "
"la méthode :meth:`communicate` quand vous utilisez des tubes."
#: library/asyncio-subprocess.rst:207 #: library/asyncio-subprocess.rst:207
msgid "Interact with process:" msgid "Interact with process:"
msgstr "" msgstr "Interagit avec le processus :"
#: library/asyncio-subprocess.rst:209 #: library/asyncio-subprocess.rst:209
msgid "send data to *stdin* (if *input* is not ``None``);" msgid "send data to *stdin* (if *input* is not ``None``);"
msgstr "" msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``);"
#: library/asyncio-subprocess.rst:210 #: library/asyncio-subprocess.rst:210
msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgid "read data from *stdout* and *stderr*, until EOF is reached;"
msgstr "" msgstr ""
"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit "
"atteint ;"
#: library/asyncio-subprocess.rst:211 #: library/asyncio-subprocess.rst:211
msgid "wait for process to terminate." msgid "wait for process to terminate."
msgstr "" msgstr "attend que le processus s'arrête."
#: library/asyncio-subprocess.rst:213 #: library/asyncio-subprocess.rst:213
msgid "" msgid ""
"The optional *input* argument is the data (:class:`bytes` object) that will " "The optional *input* argument is the data (:class:`bytes` object) that will "
"be sent to the child process." "be sent to the child process."
msgstr "" msgstr ""
"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les "
"données transmises au sous-processus."
#: library/asyncio-subprocess.rst:216 #: library/asyncio-subprocess.rst:216
msgid "Return a tuple ``(stdout_data, stderr_data)``." msgid "Return a tuple ``(stdout_data, stderr_data)``."
msgstr "" msgstr "Renvoie un tuple ``(stdout_data, stderr_data)``."
#: library/asyncio-subprocess.rst:218 #: library/asyncio-subprocess.rst:218
msgid "" msgid ""
@ -284,15 +336,15 @@ msgid "Sends the signal *signal* to the child process."
msgstr "Envoie le signal *signal* au sous-processus." msgstr "Envoie le signal *signal* au sous-processus."
#: library/asyncio-subprocess.rst:238 #: library/asyncio-subprocess.rst:238
#, fuzzy
msgid "" msgid ""
"On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " "On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. "
"``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started "
"with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." "with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``."
msgstr "" msgstr ""
"Sous Windows, *SIGTERM* est un alias pour :meth:`terminate`. *CTRL_C_EVENT* " "Sous Windows, :py:data:`SIGTERM` est un alias pour :meth:`terminate`. "
"et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus démarrés avec un " "*CTRL_C_EVENT* et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus "
"paramètre *creationflags* incluant `CREATE_NEW_PROCESS_GROUP`." "démarrés avec un paramètre *creationflags* incluant "
"``CREATE_NEW_PROCESS_GROUP``."
#: library/asyncio-subprocess.rst:245 #: library/asyncio-subprocess.rst:245
msgid "Stop the child process." msgid "Stop the child process."
@ -303,7 +355,7 @@ msgid ""
"On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " "On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child "
"process." "process."
msgstr "" msgstr ""
"Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " "Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au "
"sous-processus." "sous-processus."
#: library/asyncio-subprocess.rst:250 #: library/asyncio-subprocess.rst:250
@ -313,21 +365,19 @@ msgid ""
msgstr "" msgstr ""
#: library/asyncio-subprocess.rst:255 #: library/asyncio-subprocess.rst:255
#, fuzzy
msgid "Kill the child process." msgid "Kill the child process."
msgstr "Arrête le sous-processus." msgstr "Arrête le sous-processus."
#: library/asyncio-subprocess.rst:257 #: library/asyncio-subprocess.rst:257
#, fuzzy
msgid "" msgid ""
"On POSIX systems this method sends :py:data:`SIGKILL` to the child process." "On POSIX systems this method sends :py:data:`SIGKILL` to the child process."
msgstr "" msgstr ""
"Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " "Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au "
"sous-processus." "sous-processus."
#: library/asyncio-subprocess.rst:260 #: library/asyncio-subprocess.rst:260
msgid "On Windows this method is an alias for :meth:`terminate`." msgid "On Windows this method is an alias for :meth:`terminate`."
msgstr "" msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`."
#: library/asyncio-subprocess.rst:264 #: library/asyncio-subprocess.rst:264
msgid "" msgid ""
@ -358,6 +408,8 @@ msgstr ""
#: library/asyncio-subprocess.rst:288 #: library/asyncio-subprocess.rst:288
msgid "Process identification number (PID)." msgid "Process identification number (PID)."
msgstr "" msgstr ""
"Numéro d'identification du processus (PID, pour *Process Identification "
"Number* en anglais)."
#: library/asyncio-subprocess.rst:290 #: library/asyncio-subprocess.rst:290
msgid "" msgid ""
@ -367,7 +419,7 @@ msgstr ""
#: library/asyncio-subprocess.rst:295 #: library/asyncio-subprocess.rst:295
msgid "Return code of the process when it exits." msgid "Return code of the process when it exits."
msgstr "" msgstr "Code de retour du processus quand il se termine."
#: library/asyncio-subprocess.rst:297 #: library/asyncio-subprocess.rst:297
msgid "A ``None`` value indicates that the process has not terminated yet." msgid "A ``None`` value indicates that the process has not terminated yet."
@ -379,7 +431,7 @@ msgid ""
"``N`` (POSIX only)." "``N`` (POSIX only)."
msgstr "" msgstr ""
"Une valeur négative ``-N`` indique que le sous-processus a été terminé par " "Une valeur négative ``-N`` indique que le sous-processus a été terminé par "
"un signal ``N`` (seulement sur les systèmes *POSIX*)." "le signal ``N`` (seulement sur les systèmes *POSIX*)."
#: library/asyncio-subprocess.rst:306 #: library/asyncio-subprocess.rst:306
msgid "Subprocess and Threads" msgid "Subprocess and Threads"
@ -414,18 +466,25 @@ msgid ""
"Spawning a subprocess with *inactive* current child watcher raises :exc:" "Spawning a subprocess with *inactive* current child watcher raises :exc:"
"`RuntimeError`." "`RuntimeError`."
msgstr "" msgstr ""
"Instancier un sous-processus avec un observateur enfant actuel *inactif* "
"lève l'exception :exc:`RuntimeError`."
#: library/asyncio-subprocess.rst:326 #: library/asyncio-subprocess.rst:326
msgid "" msgid ""
"Note that alternative event loop implementations might have own limitations; " "Note that alternative event loop implementations might have own limitations; "
"please refer to their documentation." "please refer to their documentation."
msgstr "" msgstr ""
"Notez que ces implémentations alternatives de la boucle d'événements peuvent "
"comporter leurs propres limitations. Veuillez vous référer à leur "
"documentation."
#: library/asyncio-subprocess.rst:331 #: library/asyncio-subprocess.rst:331
msgid "" msgid ""
"The :ref:`Concurrency and multithreading in asyncio <asyncio-" "The :ref:`Concurrency and multithreading in asyncio <asyncio-"
"multithreading>` section." "multithreading>` section."
msgstr "" msgstr ""
"La section :ref:`Exécution concurrente et multi-fils d'exécution <asyncio-"
"multithreading>`."
#: library/asyncio-subprocess.rst:336 #: library/asyncio-subprocess.rst:336
msgid "Examples" msgid "Examples"
@ -437,14 +496,20 @@ msgid ""
"subprocess and the :class:`StreamReader` class to read from its standard " "subprocess and the :class:`StreamReader` class to read from its standard "
"output." "output."
msgstr "" msgstr ""
"Un exemple utilisant la classe :class:`~asyncio.subprocess.Process` pour "
"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa "
"sortie standard."
#: library/asyncio-subprocess.rst:344 #: library/asyncio-subprocess.rst:344
msgid "" msgid ""
"The subprocess is created by the :func:`create_subprocess_exec` function::" "The subprocess is created by the :func:`create_subprocess_exec` function::"
msgstr "" msgstr ""
"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::"
#: library/asyncio-subprocess.rst:371 #: library/asyncio-subprocess.rst:371
msgid "" msgid ""
"See also the :ref:`same example <asyncio_example_subprocess_proto>` written " "See also the :ref:`same example <asyncio_example_subprocess_proto>` written "
"using low-level APIs." "using low-level APIs."
msgstr "" msgstr ""
"Voir également :ref:`le même exemple <asyncio_example_subprocess_proto>`, "
"écrit en utilisant des API de bas niveau."