Skip to content

Conversation

@entwanne
Copy link
Collaborator

@entwanne entwanne commented Oct 4, 2018

  • Rebaser et squasher les commits fixup

@entwanne entwanne changed the title [WIP] library/ultiprocessing [WIP] library/multiprocessing Oct 4, 2018
"Interpreter Lock` en utilisant des processus plutôt que des *threads*. "
"Ainsi, le module :mod:`multiprocessing` permet au développeur de bénéficier "
"entièrement des multiples processeurs sur une machine. Il tourne à la fois "
"sur les systèmes Unix et Windows."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/paquet/module ?
s/Le paquet multiprocessing offre à la fois.../Il offre à la fois.../

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je préfère conserver le terme « paquet » quand il est utilisé sur la page originale. Et pour la seconde remarque, j'aurais aimé le faire mais ça provoque une erreur lors de la compilation parce qu'on n'a plus autant de références dans le texte source que dans le texte traduit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah oui ! J'avais oublié ce détail !

"unlinked until the next reboot.)"
msgstr ""
"Sous Unix, utiliser les méthodes de démarrage *spawn* ou *forkserver* "
"démarrera aussi un processus *semaphore tracker* qui traquera les sémaphores "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je crois que l'on préfère le présent au futur (@christopheNan)

"They are, however, slower than using shared memory."
msgstr ""
"Les processus serveurs de gestionnaires sont plus flexibles que les mémoires "
"partagées parce qu'ils peuvent supporter des des types d'objets arbitraires. "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/supporter/gérer/, répétition de "des"

Copy link
Contributor

@christopheNan christopheNan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour ce très gros travail. La contribution est de très bonne qualité. Quelques remarques générales :
Souvent l'anglais utilise "should" que l'on traduit plutôt par "doit" en français (sinon le programmeur français pourrait se sentir autorisé à transgresser la règle).
Le texte anglais utilise le futur à l'occasion. Souvent, le présent en français est plus adéquat.
sémaphore est masculin.
Merci d'essayer de traduire l'ensemble des termes (par exemple timeout, deadlock, buffer, socket, ...). Il est très rare que le mot ou l'expression française n'existe pas pour les concepts utilisés en Python. Cette traduction s'adresse à priori à des personnes ayant peu de connaissances en anglais ou en informatique ; à mon avis, l'utilisation de termes français facilite la compréhension des concepts sous-jacents.
Bémol à la remarque précédente : les termes sont parfois des paramètres nommés des fonctions. Il faut alors trouver le bon équilibre entre l'utilisation du nom de paramètre (en anglais) et le concept (en français).

":mod:`multiprocessing` est un paquet qui permet l'instanciation de processus "
"via la même API que le module :mod:`threading`. Le paquet :mod:"
"`multiprocessing` offre à la fois des possibilités de programmation "
"concurrente locale ou à distance, évitant les problèmes du :term:`Global "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/évitant/contournant/ ?

"module. This basic example of data parallelism using :class:"
"`~multiprocessing.pool.Pool`, ::"
msgstr ""
"Le module :mod:`multiprocessing` introduit aussi des APIs sans analogues "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

en français, les acronymes ne prennent pas la marque du pluriel : s/APIs/API/

"`~multiprocessing.pool.Pool`, ::"
msgstr ""
"Le module :mod:`multiprocessing` introduit aussi des APIs sans analogues "
"dans le module :mod:`threading`. Un exemple de cela est l'objet :class:"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"de cela" est inutile.

"`~multiprocessing.pool.Pool` qui offre une manière pratique de paralléliser "
"l'exécution d'une fonction sur de multiples valeurs d'entrée, distribuant "
"ces valeurs entre les processus (parallélisme de données). L'exemple suivant "
"présente la manière commune de définir une telle fonction dans un module "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/commune/classique/ ?

#: ../Doc/library/multiprocessing.rst:40
msgid "will print to standard output ::"
msgstr ""
msgstr "affichera sur la sortie standard : ::"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le futur est inutile à mon avis.

msgstr ""
"Les objets de connexion autorisent l'envoi et la réception d'objets "
"sérialisables ou de chaînes de caractères. Ils peuvent être vus comme des "
"*sockets* connectées orientées messages."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

socket : interface de connexion

"though it depends on the OS) may raise a :exc:`ValueError` exception."
msgstr ""
"L'objet doit être sérialisable. Les *pickles* très larges (approximativement "
"32 MiB+, bien que cela dépende de l'OS) pourront lever une exception :exc:"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/MiB/Mo/ (ou Mio si vraiment la différence a un sens, ce que je ne pense pas d'après le "approximativement").

msgstr ""
"La méthode :meth:`Connection.recv` désérialise automatiquement les données "
"qu'elle reçoit, ce qui peut être un risque de sécurité à moins que vous ne "
"soyez sûr du processus émetteur du message."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/soyez sûr/fassiez réellement confiance/ ?

"maximum pendant ce nombre spécifié de secondes, tant que le verrou ne peut "
"être acquis. Les invocations avec une valeur de *timeout* négatives sont "
"équivalents à zéro. Les invocations avec un *timeout* à ``None`` (par "
"défaut) correspondent à un délai d'attente infi. Notez que le traitement des "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/infi/infini/

"used in :keyword:`with` statements."
msgstr ""
":class:`Lock` supporte le protocole :term:`context manager` et peut ainsi "
"être utilisé avec une instruction :keyword:`with`."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/utilisé/utilisée/ (la classe)

Copy link
Contributor

@christopheNan christopheNan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci d'essayer de traduire l'ensemble des termes : wrapper, process-safe, lock, proxy, callable

"which allow one to use it to store and retrieve strings."
msgstr ""
"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et "
"*raw* qui permettent de l'utilisé pour stocker et récupérer des chaînes de "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/utilisé/utiliser/

"initialize the array and whose length determines the length of the array."
msgstr ""
"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il "
"s'agit soit d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

un caractère codant le type des éléments du tableau (le typecode)

"documentation for :mod:`ctypes`."
msgstr ""
"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et "
"*raw* qui permettent de l'utilisé pour stocker et récupérer des chaînes de "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/utilisé/utiliser/

"peut être utilisé pour partager des objets entre les processus. L'objet "
"gestionnaire renvoyé correspond à un processus enfant instancié et possède "
"des méthodes pour créer des objets partagés et renvoyer les *proxies* "
"correspondant."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/correspondant/correspondants/

msgstr ""
"Il est possible de lancer un serveur gestionnaire sur une machine et d'avoir "
"des clients l'utilisant sur d'autres machines (en supposant que les pare-feu "
"impliqués l'autorise)."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

les pare-feux impliqués l'autorisent.

Copy link
Collaborator Author

@entwanne entwanne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour vos retours, je fais en sorte de corriger tout ça au plus vite.
Désolé de ne pas être revenu dessus pendant le sprint, je préférais rester focalisé pour arriver au bout du module.

"Interpreter Lock` en utilisant des processus plutôt que des *threads*. "
"Ainsi, le module :mod:`multiprocessing` permet au développeur de bénéficier "
"entièrement des multiples processeurs sur une machine. Il tourne à la fois "
"sur les systèmes Unix et Windows."
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je préfère conserver le terme « paquet » quand il est utilisé sur la page originale. Et pour la seconde remarque, j'aurais aimé le faire mais ça provoque une erreur lors de la compilation parce qu'on n'a plus autant de références dans le texte source que dans le texte traduit.

@entwanne
Copy link
Collaborator Author

entwanne commented Oct 7, 2018

J'ai corrigé la plupart des remarques, je ferai une seconde passe de relecture et de correction des anglicismes.
Ainsi que les erreurs Travis. :)

@JulienPalard
Copy link
Member

Ça me semble mature. C'est c'est bon pour toi @entwanne tu peux enlver le WIP.


#: ../Doc/library/multiprocessing.rst:2848
msgid ""
"An example showing how to use queues to feed tasks to a collection of worker "
"processes and collect the results:"
msgstr ""
"Un exemple montrant comment utiliser des queues pour délivrer les tâches à "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

délivrer est un anglicisme. alimenter en ?

@entwanne
Copy link
Collaborator Author

@JulienPalard Je dois encore corriger la plupart des anglicismes, j'aurai pas le temps ce week-end mais ça devrait être bon en début de semaine.

@entwanne
Copy link
Collaborator Author

J'ai corrigé la majeure partie des anglicismes, et simplement conservé les wrappers et process-safe que je trouve bien plus clairs que leurs possibles traduction (emballages, sûr entre les processus).

@entwanne entwanne changed the title [WIP] library/multiprocessing Complete library/multiprocessing Oct 15, 2018
Copy link
Contributor

@christopheNan christopheNan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mes propositions pour "process-safe"

"créé pour synchroniser l'accès à la valeur. Si *lock* est un objet :class:"
"`Lock` ou :class:`RLock` alors il sera utilisé pour synchroniser l'accès à "
"la valeur. Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas "
"automatiquement protégé par un verrou, donc il ne sera pas forcément "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ce qui rend son utilisation hasardeuse dans un contexte avec de multiples fils d'exécution ou multi-processus.


#: ../Doc/library/multiprocessing.rst:1465
msgid ""
"The same as :func:`RawArray` except that depending on the value of *lock* a "
"process-safe synchronization wrapper may be returned instead of a raw ctypes "
"array."
msgstr ""
"Identique à :func:`RawArray` à l'exception que suivant la valeur de *lock* "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sauf que, suivant la valeur de lock, le tableau ctypes brut renvoyé pourra être encapsulé dans un objet gérant la synchronisation entre des fils d'exécution ou des processus.

@JulienPalard JulienPalard merged commit b257e33 into python:3.7 Oct 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants