Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0f231c4

Browse files
committed
Contribution 10211441
1 parent f49c840 commit 0f231c4

File tree

1 file changed

+74
-21
lines changed

1 file changed

+74
-21
lines changed

extending/extending.po

Lines changed: 74 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ msgstr ""
66
"Project-Id-Version: Python 3\n"
77
"Report-Msgid-Bugs-To: \n"
88
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
9-
"PO-Revision-Date: 2020-10-02 15:06+0200\n"
9+
"PO-Revision-Date: 2020-10-21 14:39+0200\n"
1010
"Last-Translator: Julien Palard <[email protected]>\n"
1111
"Language-Team: FRENCH <[email protected]>\n"
1212
"Language: fr\n"
@@ -71,9 +71,9 @@ msgstr ""
7171
"et ainsi préserver la portabilité vers d'autres implémentations. Par "
7272
"exemple, si vous devez appeler une fonction de la bibliothèque C ou faire un "
7373
"appel système, vous devriez envisager d'utiliser le module :mod:`ctypes` ou "
74-
"d'utiliser la bibliothèque `cffi <https://cffi.readthedocs.io/>`_ plutôt que "
75-
"d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du code "
76-
"Python s'interfaçant avec le code C et sont plus portables entre les "
74+
"d'utiliser la bibliothèque `*cffi* <https://cffi.readthedocs.io/>`_ plutôt "
75+
"que d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du "
76+
"code Python s'interfaçant avec le code C et sont plus portables entre les "
7777
"implémentations de Python que l'écriture et la compilation d'une d'extension "
7878
"C."
7979

@@ -309,6 +309,7 @@ msgstr ""
309309
"de le déterminer à partir de la valeur renvoyée."
310310

311311
#: extending/extending.rst:160
312+
#, fuzzy
312313
msgid ""
313314
"When a function *f* that calls another function *g* detects that the latter "
314315
"fails, *f* should itself return an error value (usually ``NULL`` or "
@@ -667,12 +668,11 @@ msgstr ""
667668
"`PyModule_Create`, qui renvoie un objet module, et insère des objets "
668669
"fonction intégrés dans le module nouvellement créé en se basant sur la table "
669670
"(un tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition "
670-
"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet "
671-
"module qu'il crée. Il peut s'interrompre avec une erreur fatale pour "
672-
"certaines erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être "
673-
"initialisé de manière satisfaisante. La fonction `init` doit renvoyer "
674-
"l'objet module à son appelant, afin qu'il soit ensuite inséré dans ``sys."
675-
"modules``."
671+
"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module "
672+
"qu'il crée. Il peut s'interrompre avec une erreur fatale pour certaines "
673+
"erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être initialisé de "
674+
"manière satisfaisante. La fonction `*init* doit renvoyer l'objet module à "
675+
"son appelant, afin qu'il soit ensuite inséré dans ``sys.modules``."
676676

677677
#: extending/extending.rst:383
678678
msgid ""
@@ -884,6 +884,16 @@ msgid ""
884884
"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if "
885885
"you want to pass an integral event code, you might use the following code::"
886886
msgstr ""
887+
"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez "
888+
"peut-être aussi fournir une liste d'arguments à :c:func:"
889+
"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également "
890+
"fournie par le programme Python, par l'intermédiaire de la même interface "
891+
"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et "
892+
"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous "
893+
"pouvez avoir à construire un nouveau n-uplet à passer comme liste "
894+
"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:"
895+
"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement "
896+
"intégral, vous pouvez utiliser le code suivant ::"
887897

888898
#: extending/extending.rst:608
889899
msgid ""
@@ -1026,7 +1036,7 @@ msgstr ""
10261036
"Une différence par rapport à :c:func:`PyArg_ParseTuple` : alors que ce "
10271037
"dernier nécessite que son premier argument soit un n-uplet (puisque les "
10281038
"listes d'arguments Python sont toujours représentées par des *n*-uplets en "
1029-
"interne), :c:func:`Py_BuildValue` ne construit pas toujours un *n*-uplet. Il "
1039+
"interne), :c:func:`Py_BuildValue` ne construit pas toujours un n-uplet. Il "
10301040
"n'en construit un que si sa chaîne formatée contient deux unités formatées "
10311041
"ou plus. Si la chaîne formatée est vide, il renvoie ``None`` ; s'il contient "
10321042
"exactement une unité formatée, il renvoie tout objet décrit par cette unité "
@@ -1100,6 +1110,14 @@ msgid ""
11001110
"reference to it is deleted. When the counter reaches zero, the last "
11011111
"reference to the object has been deleted and the object is freed."
11021112
msgstr ""
1113+
"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:"
1114+
"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi "
1115+
"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:"
1116+
"`reference counting`. Le principe est simple : chaque objet contient un "
1117+
"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée "
1118+
"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est "
1119+
"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet "
1120+
"a été supprimée et l'objet est libéré."
11031121

11041122
#: extending/extending.rst:888
11051123
msgid ""
@@ -1116,6 +1134,20 @@ msgid ""
11161134
"garbage collector will be available for C. Until then, we'll have to live "
11171135
"with reference counts."
11181136
msgstr ""
1137+
"Une stratégie alternative est appelée :dfn:`automatic garbage collection` "
1138+
"(collecte automatique des déchets). Parfois, le comptage des références est "
1139+
"également appelé stratégie de collecte des déchets, d'où l'utilisation du "
1140+
"terme \"automatique\" pour distinguer les deux. Le grand avantage de la "
1141+
"collecte automatique des déchets est que l'utilisateur n'a pas besoin "
1142+
"d'appeler :c:func:`free` explicitement. (Un autre avantage important est "
1143+
"l'amélioration de la vitesse ou de l'utilisation de la mémoire --- ce n'est "
1144+
"cependant pas un fait avéré). L'inconvénient est que pour C, il n'y a pas de "
1145+
"collecte automatique des déchets vraiment portable, alors que le comptage "
1146+
"des références peut être implémenté de façon portable (tant que les "
1147+
"fonctions :c:func:`malloc` et :c:func:`free` soient disponibles --- ce que "
1148+
"la norme C garantit). Peut-être qu'un jour un collecteur automatique de "
1149+
"déchets suffisamment portable sera disponible pour C. D'ici là, nous devrons "
1150+
"utiliser les compteurs des références."
11191151

11201152
#: extending/extending.rst:900
11211153
msgid ""
@@ -1193,12 +1225,12 @@ msgstr ""
11931225
"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne "
11941226
"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le "
11951227
"comptage de références d'un objet est maintenant défini comme étant le "
1196-
"nombre de références à cet objet. Le propriétaire "
1197-
"d'une référence est responsable d'appeler :c:func:`Py_DECREF` lorsque la "
1198-
"référence n'est plus nécessaire. La propriété d'une référence peut être "
1199-
"transférée. Il y a trois façons de disposer d'une référence : "
1200-
"la transmettre, la stocker, ou appeler :c:func:`Py_DECREF`. Oublier de se "
1201-
"débarrasser d'une référence crée une fuite de mémoire."
1228+
"nombre de références à cet objet. Le propriétaire d'une référence est "
1229+
"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus "
1230+
"nécessaire. La propriété d'une référence peut être transférée. Il y a trois "
1231+
"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :"
1232+
"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite "
1233+
"de mémoire."
12021234

12031235
#: extending/extending.rst:943
12041236
msgid ""
@@ -1353,6 +1385,13 @@ msgid ""
13531385
"defined a :meth:`__del__` method. If this class instance has a reference "
13541386
"count of 1, disposing of it will call its :meth:`__del__` method."
13551387
msgstr ""
1388+
"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède "
1389+
"des références à tous ses éléments, donc quand l'élément 1 est remplacé, "
1390+
"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que "
1391+
"l'élément 1 original était une instance d'une classe définie par "
1392+
"l'utilisateur, et supposons en outre que la classe définisse une méthode :"
1393+
"meth:`__del__`. Si l'instance de cette classe a un nombre des références de "
1394+
"1, sa destruction appellera sa méthode :meth:`__del__`."
13561395

13571396
#: extending/extending.rst:1043
13581397
msgid ""
@@ -1440,13 +1479,19 @@ msgid ""
14401479
"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from "
14411480
"a function that may raise an exception."
14421481
msgstr ""
1482+
"Il est préférable de tester la présence de ``NULL`` uniquement au début : "
1483+
"lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, de :c:func:"
1484+
"`malloc` ou d'une fonction qui peut lever une exception."
14431485

14441486
#: extending/extending.rst:1106
14451487
msgid ""
14461488
"The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for "
14471489
"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:"
14481490
"func:`Py_XDECREF` do."
14491491
msgstr ""
1492+
"Les macros :c:func:`Py_INCREF` et :c:func:`Py_DECREF` ne vérifient pas les "
1493+
"pointeurs ``NULL``. Cependant, leurs variantes :c:func:`Py_XINCREF` et :c:"
1494+
"func:`Py_XDECREF` le font."
14501495

14511496
#: extending/extending.rst:1110
14521497
msgid ""
@@ -1468,17 +1513,19 @@ msgstr ""
14681513
"il garantit qu'il s'agit toujours d'un n-uplet [#]_."
14691514

14701515
#: extending/extending.rst:1120
1516+
#, fuzzy
14711517
msgid ""
14721518
"It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python "
14731519
"user."
14741520
msgstr ""
1521+
"C'est une grave erreur de laisser un pointeur ``NULL`` \"échapper\" vers "
1522+
"l'utilisateur Python."
14751523

14761524
#: extending/extending.rst:1131
14771525
msgid "Writing Extensions in C++"
14781526
msgstr "Écrire des extensions en C++"
14791527

14801528
#: extending/extending.rst:1133
1481-
#, fuzzy
14821529
msgid ""
14831530
"It is possible to write extension modules in C++. Some restrictions apply. "
14841531
"If the main program (the Python interpreter) is compiled and linked by the C "
@@ -1498,9 +1545,9 @@ msgstr ""
14981545
"seront appelées par l'interpréteur Python (en particulier, les fonctions "
14991546
"d'initialisation des modules) doivent être déclarées en utilisant le \"C\" "
15001547
"externe. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python "
1501-
"dans le ``extern \"C\" {...}``, car ils utilisent déjà ce format si le "
1502-
"symbole ``__cplusplus`` est défini (tous les compilateurs C++ récents "
1503-
"définissent ce symbole)."
1548+
"dans le ``extern \"C\" {}``, car ils utilisent déjà ce format si le symbole "
1549+
"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce "
1550+
"symbole)."
15041551

15051552
#: extending/extending.rst:1147
15061553
msgid "Providing a C API for an Extension Module"
@@ -1627,12 +1674,18 @@ msgid ""
16271674
msgstr ""
16281675

16291676
#: extending/extending.rst:1205
1677+
#, fuzzy
16301678
msgid ""
16311679
"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a "
16321680
"C API provided via a Capsule, but only if the Capsule's name matches this "
16331681
"convention. This behavior gives C API users a high degree of certainty that "
16341682
"the Capsule they load contains the correct C API."
16351683
msgstr ""
1684+
"La fonction communément utilisée :c:func:`PyCapsule_Import` permet de "
1685+
"charger facilement une API C fournie via une Capsule, mais seulement si le "
1686+
"nom de la Capsule correspond à cette convention. Ce comportement donne aux "
1687+
"utilisateurs d'API C un degré élevé de certitude que la Capsule qu'ils "
1688+
"chargent contient l'API C correcte."
16361689

16371690
#: extending/extending.rst:1210
16381691
msgid ""

0 commit comments

Comments
 (0)