@@ -6,7 +6,7 @@ msgstr ""
6
6
"Project-Id-Version : Python 3\n "
7
7
"Report-Msgid-Bugs-To : \n "
8
8
"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 "
10
10
"
Last-Translator :
Julien Palard <[email protected] >\n "
11
11
"
Language-Team :
FRENCH <[email protected] >\n "
12
12
"Language : fr\n "
@@ -71,9 +71,9 @@ msgstr ""
71
71
"et ainsi préserver la portabilité vers d'autres implémentations. Par "
72
72
"exemple, si vous devez appeler une fonction de la bibliothèque C ou faire un "
73
73
"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 "
77
77
"implémentations de Python que l'écriture et la compilation d'une d'extension "
78
78
"C."
79
79
@@ -309,6 +309,7 @@ msgstr ""
309
309
"de le déterminer à partir de la valeur renvoyée."
310
310
311
311
#: extending/extending.rst:160
312
+ #, fuzzy
312
313
msgid ""
313
314
"When a function *f* that calls another function *g* detects that the latter "
314
315
"fails, *f* should itself return an error value (usually ``NULL`` or "
@@ -667,12 +668,11 @@ msgstr ""
667
668
"`PyModule_Create`, qui renvoie un objet module, et insère des objets "
668
669
"fonction intégrés dans le module nouvellement créé en se basant sur la table "
669
670
"(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``."
676
676
677
677
#: extending/extending.rst:383
678
678
msgid ""
@@ -884,6 +884,16 @@ msgid ""
884
884
"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if "
885
885
"you want to pass an integral event code, you might use the following code::"
886
886
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 ::"
887
897
888
898
#: extending/extending.rst:608
889
899
msgid ""
@@ -1026,7 +1036,7 @@ msgstr ""
1026
1036
"Une différence par rapport à :c:func:`PyArg_ParseTuple` : alors que ce "
1027
1037
"dernier nécessite que son premier argument soit un n-uplet (puisque les "
1028
1038
"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 "
1030
1040
"n'en construit un que si sa chaîne formatée contient deux unités formatées "
1031
1041
"ou plus. Si la chaîne formatée est vide, il renvoie ``None`` ; s'il contient "
1032
1042
"exactement une unité formatée, il renvoie tout objet décrit par cette unité "
@@ -1100,6 +1110,14 @@ msgid ""
1100
1110
"reference to it is deleted. When the counter reaches zero, the last "
1101
1111
"reference to the object has been deleted and the object is freed."
1102
1112
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é."
1103
1121
1104
1122
#: extending/extending.rst:888
1105
1123
msgid ""
@@ -1116,6 +1134,20 @@ msgid ""
1116
1134
"garbage collector will be available for C. Until then, we'll have to live "
1117
1135
"with reference counts."
1118
1136
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."
1119
1151
1120
1152
#: extending/extending.rst:900
1121
1153
msgid ""
@@ -1193,12 +1225,12 @@ msgstr ""
1193
1225
"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne "
1194
1226
"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le "
1195
1227
"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."
1202
1234
1203
1235
#: extending/extending.rst:943
1204
1236
msgid ""
@@ -1353,6 +1385,13 @@ msgid ""
1353
1385
"defined a :meth:`__del__` method. If this class instance has a reference "
1354
1386
"count of 1, disposing of it will call its :meth:`__del__` method."
1355
1387
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__`."
1356
1395
1357
1396
#: extending/extending.rst:1043
1358
1397
msgid ""
@@ -1440,13 +1479,19 @@ msgid ""
1440
1479
"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from "
1441
1480
"a function that may raise an exception."
1442
1481
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."
1443
1485
1444
1486
#: extending/extending.rst:1106
1445
1487
msgid ""
1446
1488
"The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for "
1447
1489
"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:"
1448
1490
"func:`Py_XDECREF` do."
1449
1491
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."
1450
1495
1451
1496
#: extending/extending.rst:1110
1452
1497
msgid ""
@@ -1468,17 +1513,19 @@ msgstr ""
1468
1513
"il garantit qu'il s'agit toujours d'un n-uplet [#]_."
1469
1514
1470
1515
#: extending/extending.rst:1120
1516
+ #, fuzzy
1471
1517
msgid ""
1472
1518
"It is a severe error to ever let a ``NULL`` pointer \" escape\" to the Python "
1473
1519
"user."
1474
1520
msgstr ""
1521
+ "C'est une grave erreur de laisser un pointeur ``NULL`` \" échapper\" vers "
1522
+ "l'utilisateur Python."
1475
1523
1476
1524
#: extending/extending.rst:1131
1477
1525
msgid "Writing Extensions in C++"
1478
1526
msgstr "Écrire des extensions en C++"
1479
1527
1480
1528
#: extending/extending.rst:1133
1481
- #, fuzzy
1482
1529
msgid ""
1483
1530
"It is possible to write extension modules in C++. Some restrictions apply. "
1484
1531
"If the main program (the Python interpreter) is compiled and linked by the C "
@@ -1498,9 +1545,9 @@ msgstr ""
1498
1545
"seront appelées par l'interpréteur Python (en particulier, les fonctions "
1499
1546
"d'initialisation des modules) doivent être déclarées en utilisant le \" C\" "
1500
1547
"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)."
1504
1551
1505
1552
#: extending/extending.rst:1147
1506
1553
msgid "Providing a C API for an Extension Module"
@@ -1627,12 +1674,18 @@ msgid ""
1627
1674
msgstr ""
1628
1675
1629
1676
#: extending/extending.rst:1205
1677
+ #, fuzzy
1630
1678
msgid ""
1631
1679
"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a "
1632
1680
"C API provided via a Capsule, but only if the Capsule's name matches this "
1633
1681
"convention. This behavior gives C API users a high degree of certainty that "
1634
1682
"the Capsule they load contains the correct C API."
1635
1683
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."
1636
1689
1637
1690
#: extending/extending.rst:1210
1638
1691
msgid ""
0 commit comments