@@ -59,6 +59,9 @@ msgid ""
5959"appear in various places, almost entirely for diagnostic purposes. Try to "
6060"choose something that will be helpful in such a situation! ::"
6161msgstr ""
62+ "Le nom du type -- comme mentionné dans le chapitre précédent, il apparaîtra "
63+ "à divers endroits, presque entièrement à des fins de diagnostic. Essayez de "
64+ "choisir quelque chose qui vous sera utile dans une telle situation ! ::"
6265
6366#: extending/newtypes.rst:39
6467msgid ""
@@ -68,6 +71,11 @@ msgid ""
6871"`~PyTypeObject.tp_itemsize` field comes in. This will be dealt with "
6972"later. ::"
7073msgstr ""
74+ "Ces champs indiquent au *runtime* la quantité de mémoire à allouer lorsque "
75+ "de nouveaux objets de ce type sont créés. *Python* a une implémentation "
76+ "intégrée pour les structures de longueur variable (par exemple les chaînes "
77+ "de caractères ou les n-uplets), et c'est là qu'intervient le champ :c:member:"
78+ "`~PyTypeObject.tp_itemsize`. Ce sujet sera traité plus tard."
7179
7280#: extending/newtypes.rst:46
7381msgid ""
@@ -98,6 +106,11 @@ msgid ""
98106"here. The object itself needs to be freed here as well. Here is an example "
99107"of this function::"
100108msgstr ""
109+ "Cette fonction est appelée lorsque le nombre de références de l'instance de "
110+ "votre type est réduit à zéro et que l'interpréteur *Python* veut le "
111+ "récupérer. Si votre type a de la mémoire à libérer ou un autre nettoyage à "
112+ "effectuer, vous pouvez le mettre ici. L'objet lui-même doit être libéré ici "
113+ "aussi. Voici un exemple de cette fonction ::"
101114
102115#: extending/newtypes.rst:83
103116msgid ""
@@ -126,6 +139,16 @@ msgid ""
126139"(as in the example above) might end up calling :c:member:`~PyTypeObject."
127140"tp_dealloc` again, causing a double free and a crash."
128141msgstr ""
142+ "Il y a des limites par rapport à ce qu'on peut faire en toute sécurité dans "
143+ "une fonction de *deallocator*. Tout d'abord, si votre type supporte le "
144+ "ramasse-miettes (en utilisant :c:member:`~PyTypeObject.tp_traverse` et/ou :c:"
145+ "member:`~PyTypeObject.tp_clear`), certains des membres de l'objet peuvent "
146+ "avoir été effacés ou finalisés au moment où :c:member:`~PyTypeObject."
147+ "tp_dealloc` est appelé. Ensuite, dans :c:member:`~PyTypeObject.tp_dealloc`, "
148+ "votre objet est dans un état instable : son compte de référence est égal à "
149+ "zéro. Tout appel à un objet ou à une API plus complexe (comme dans l'exemple "
150+ "ci-dessus) pourrait finir par appeler à nouveau :c:member:`~PyTypeObject."
151+ "tp_dealloc`, provoquant à la fois un *free* et une panne."
129152
130153#: extending/newtypes.rst:131
131154msgid ""
@@ -262,6 +285,15 @@ msgid ""
262285"`~PyTypeObject.tp_getattro` and :c:member:`~PyTypeObject.tp_setattro` fields "
263286"``NULL`` as well, allowing the base type to handle attributes."
264287msgstr ""
288+ "Lorsqu'elle est lancée, la fonction :c:func:`PyType_Ready` utilise trois "
289+ "tables référencées par l'objet type qui soit être créé, notamment les "
290+ "instances :term:`descriptor` stockés dans le dictionnaire de l'objet type. "
291+ "Chaque descripteur contrôle l’accès vers un seul attribut de l'instance. "
292+ "Chacune des tables sont optionnelles. Si toutes les trois ont des valeurs "
293+ "``NULL``, les instances du type doivent avoir des attributs hérités de leur "
294+ "type de base, et les champs :c:member:`~PyTypeObject.tp_getattro` et :c:"
295+ "member:`~PyTypeObject.tp_setattro` doivent avoir la valeur ``NULL`` "
296+ "également, afin de permettre au type de base de gérer des attributs."
265297
266298#: extending/newtypes.rst:241
267299msgid "The tables are declared as three fields of the type object::"
@@ -290,6 +322,10 @@ msgid ""
290322"access may be read-only or read-write. The structures in the table are "
291323"defined as::"
292324msgstr ""
325+ "Le second tableau sert à définir les attributs qui correspondent directement "
326+ "aux données stockées dans l'instance. Une grande partie de types primitifs "
327+ "*C* sont pris en charge, et l'accès peut être en lecture seule ou en lecture-"
328+ "écriture. Les structures de la table sont définies comme suit ::"
293329
294330#: extending/newtypes.rst:275
295331msgid ""
@@ -307,6 +343,8 @@ msgid ""
307343"The following flag constants are defined in :file:`structmember.h`; they may "
308344"be combined using bitwise-OR."
309345msgstr ""
346+ "Les constantes de drapeau suivantes sont définies dans :file:`structmember."
347+ "h`. Elles peuvent être combinées à l'aide d'un OU logique."
310348
311349#: extending/newtypes.rst:286
312350msgid "Constant"
@@ -424,6 +462,14 @@ msgid ""
424462"comparison is not implemented and the other object's comparison method "
425463"should be tried, or ``NULL`` if an exception was set."
426464msgstr ""
465+ "Cette fonction est appelée avec deux objets *Python* et l'opérateur comme "
466+ "arguments, où l'opérateur est l'un des objets suivants : ``Py_EQ``, "
467+ "``Py_NE``, ``Py_LE``, ``Py_GT``, ``Py_LT`` ou ``Py_GT``. Il doit comparer "
468+ "les deux objets par rapport à l'opérateur spécifié et retourner ``Py_True`` "
469+ "ou ``Py_False`` si la comparaison est réussie, ``Py_NotImplemented`` pour "
470+ "indiquer que la comparaison n'est pas implémentée et que la méthode de "
471+ "comparaison de l'autre objet doit être essayée, ou ``NULL`` si une exception "
472+ "a été définie."
427473
428474#: extending/newtypes.rst:391
429475msgid ""
@@ -496,6 +542,10 @@ msgid ""
496542"script contains ``obj1('hello')``, the :c:member:`~PyTypeObject.tp_call` "
497543"handler is invoked."
498544msgstr ""
545+ "Cette fonction est appelée lorsqu'une instance de votre type de données est "
546+ "\" appelée\" , par exemple, si ``obj1`` est une instance de votre type de "
547+ "données et que le script Python contient ``obj1('hello')``, le gestionnaire :"
548+ "c:member:`~PyTypeObject.tp_call` est invoqué."
499549
500550#: extending/newtypes.rst:477
501551msgid "This function takes three arguments:"
@@ -538,6 +588,13 @@ msgid ""
538588"`~PyTypeObject.tp_iternext` corresponds to the Python :meth:`~iterator."
539589"__next__` method."
540590msgstr ""
591+ "Ces fonctions fournissent une implémentation pour le protocole d'itération. "
592+ "Les deux gestionnaires prennent un seul paramètre, notamment l'instance pour "
593+ "laquelle ils sont appelés, et renvoient une nouvelle référence. En cas "
594+ "d'erreur, ils doivent définir une exception et renvoyer ``NULL``. :c:member:"
595+ "`~PyTypeObject.tp_iter` correspond à la méthode Python :meth:`__iter__`, "
596+ "tandis que :c:member:`~PyTypeObject.tp_iternext` correspond à la méthode "
597+ "*Python* :meth:`~iterator.__next__`."
541598
542599#: extending/newtypes.rst:524
543600msgid ""
@@ -688,7 +745,11 @@ msgid ""
688745msgstr ""
689746"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète "
690747"du type que vous implémentez, utilisez la fonction :c:func:"
748+ <<<<<<< HEAD
691749"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::"
750+ =======
751+ "`PyObject_TypeCheck`. Voici un exemple de son utilisation :"
752+ >>>>>>> 7f32fae2 (Traduction de extending/newtypes.po 10011150)
692753
693754#: extending/newtypes.rst:623
694755msgid "Download CPython source releases."
0 commit comments