1
0
Fork 0

Backporting from 3.11

This commit is contained in:
Julien Palard 2023-03-22 11:17:19 +01:00
parent 99f2135a89
commit d562365a3d
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
64 changed files with 2357 additions and 383 deletions

View File

@ -188,13 +188,15 @@ msgstr ""
#: bugs.rst:67 #: bugs.rst:67
msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgid "The submission form has two fields, \"Title\" and \"Comment\"."
msgstr "" msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*."
#: bugs.rst:69 #: bugs.rst:69
msgid "" msgid ""
"For the \"Title\" field, enter a *very* short description of the problem; " "For the \"Title\" field, enter a *very* short description of the problem; "
"less than ten words is good." "less than ten words is good."
msgstr "" msgstr ""
"Dans le champ *Title*, entrez une *très* brève description du problème "
"rencontré ; tâchez de vous limiter à dix mots."
#: bugs.rst:72 #: bugs.rst:72
msgid "" msgid ""

View File

@ -24,11 +24,16 @@ msgid ""
"correspond to the version code is **built** with, not necessarily the " "correspond to the version code is **built** with, not necessarily the "
"version used at **run time**." "version used at **run time**."
msgstr "" msgstr ""
"CPython révèle son numéro de version dans les macros suivantes. À noter "
"qu'ils correspondent au code de la version **compilée** avec, pas "
"nécessairement la version utilisée à l'**exécution**."
#: c-api/apiabiversion.rst:13 #: c-api/apiabiversion.rst:13
msgid "" msgid ""
"See :ref:`stable` for a discussion of API and ABI stability across versions." "See :ref:`stable` for a discussion of API and ABI stability across versions."
msgstr "" msgstr ""
"Voir :ref:`stable` pour une discussion sur la stabilité des API et ABI entre "
"(ou en fonction) de la version."
#: c-api/apiabiversion.rst:17 #: c-api/apiabiversion.rst:17
#, fuzzy #, fuzzy
@ -92,7 +97,7 @@ msgstr "Signification"
#: c-api/apiabiversion.rst:45 #: c-api/apiabiversion.rst:45
msgid "Value for ``3.4.1a2``" msgid "Value for ``3.4.1a2``"
msgstr "" msgstr "Valeur pour ``3.4.1a2``"
#: c-api/apiabiversion.rst:47 #: c-api/apiabiversion.rst:47
msgid "1" msgid "1"
@ -105,11 +110,11 @@ msgstr "``1-8``"
#: c-api/apiabiversion.rst:47 #: c-api/apiabiversion.rst:47
msgid "``PY_MAJOR_VERSION``" msgid "``PY_MAJOR_VERSION``"
msgstr "" msgstr "``PY_MAJOR_VERSION``"
#: c-api/apiabiversion.rst:47 #: c-api/apiabiversion.rst:47
msgid "``0x03``" msgid "``0x03``"
msgstr "" msgstr "``0x03``"
#: c-api/apiabiversion.rst:49 #: c-api/apiabiversion.rst:49
msgid "2" msgid "2"
@ -122,11 +127,11 @@ msgstr "``9-16``"
#: c-api/apiabiversion.rst:49 #: c-api/apiabiversion.rst:49
msgid "``PY_MINOR_VERSION``" msgid "``PY_MINOR_VERSION``"
msgstr "" msgstr "``PY_MINOR_VERSION``"
#: c-api/apiabiversion.rst:49 #: c-api/apiabiversion.rst:49
msgid "``0x04``" msgid "``0x04``"
msgstr "" msgstr "``0x04``"
#: c-api/apiabiversion.rst:51 #: c-api/apiabiversion.rst:51
msgid "3" msgid "3"
@ -139,11 +144,11 @@ msgstr "``17-24``"
#: c-api/apiabiversion.rst:51 #: c-api/apiabiversion.rst:51
msgid "``PY_MICRO_VERSION``" msgid "``PY_MICRO_VERSION``"
msgstr "" msgstr "``PY_MICRO_VERSION``"
#: c-api/apiabiversion.rst:51 #: c-api/apiabiversion.rst:51
msgid "``0x01``" msgid "``0x01``"
msgstr "" msgstr "``0x01``"
#: c-api/apiabiversion.rst:53 #: c-api/apiabiversion.rst:53
msgid "4" msgid "4"
@ -156,11 +161,11 @@ msgstr "``25-28``"
#: c-api/apiabiversion.rst:53 #: c-api/apiabiversion.rst:53
msgid "``PY_RELEASE_LEVEL``" msgid "``PY_RELEASE_LEVEL``"
msgstr "" msgstr "``PY_RELEASE_LEVEL``"
#: c-api/apiabiversion.rst:53 #: c-api/apiabiversion.rst:53
msgid "``0xA``" msgid "``0xA``"
msgstr "" msgstr "``0xA``"
#: c-api/apiabiversion.rst:55 #: c-api/apiabiversion.rst:55
#, fuzzy #, fuzzy
@ -169,11 +174,11 @@ msgstr "``29-32``"
#: c-api/apiabiversion.rst:55 #: c-api/apiabiversion.rst:55
msgid "``PY_RELEASE_SERIAL``" msgid "``PY_RELEASE_SERIAL``"
msgstr "" msgstr "``PY_RELEASE_SERIAL``"
#: c-api/apiabiversion.rst:55 #: c-api/apiabiversion.rst:55
msgid "``0x2``" msgid "``0x2``"
msgstr "" msgstr "``0x2``"
#: c-api/apiabiversion.rst:58 #: c-api/apiabiversion.rst:58
#, fuzzy #, fuzzy

View File

@ -261,7 +261,7 @@ msgstr "Fonction"
#: c-api/call.rst:189 #: c-api/call.rst:189
msgid "callable" msgid "callable"
msgstr "" msgstr "appelable (*callable*)"
#: c-api/call.rst:189 #: c-api/call.rst:189
msgid "args" msgid "args"

View File

@ -20,11 +20,11 @@ msgstr "Objets fonctions"
#: c-api/function.rst:10 #: c-api/function.rst:10
msgid "There are a few functions specific to Python functions." msgid "There are a few functions specific to Python functions."
msgstr "" msgstr "Certaines fonctions sont spécifiques aux fonctions Python."
#: c-api/function.rst:15 #: c-api/function.rst:15
msgid "The C structure used for functions." msgid "The C structure used for functions."
msgstr "" msgstr "La structure C utilisée pour les fonctions."
#: c-api/function.rst:22 #: c-api/function.rst:22
msgid "" msgid ""
@ -32,6 +32,8 @@ msgid ""
"function type. It is exposed to Python programmers as ``types." "function type. It is exposed to Python programmers as ``types."
"FunctionType``." "FunctionType``."
msgstr "" msgstr ""
"C'est une instance de :c:type:`PyTypeObject` et représente le type fonction "
"en Python. Il est exposé aux développeurs comme ``types.FunctionType``."
#: c-api/function.rst:28 #: c-api/function.rst:28
msgid "" msgid ""
@ -39,6 +41,9 @@ msgid ""
"`PyFunction_Type`). The parameter must not be ``NULL``. This function " "`PyFunction_Type`). The parameter must not be ``NULL``. This function "
"always succeeds." "always succeeds."
msgstr "" msgstr ""
"Renvoie vrai si *o* est un objet de type fonction (a comme type :c:data:"
"`PyFunction_Type`). Le paramètre ne doit pas être ``NULL``. Cette fonction "
"réussit toujours."
#: c-api/function.rst:34 #: c-api/function.rst:34
msgid "" msgid ""
@ -46,6 +51,8 @@ msgid ""
"*globals* must be a dictionary with the global variables accessible to the " "*globals* must be a dictionary with the global variables accessible to the "
"function." "function."
msgstr "" msgstr ""
"Renvoie une nouvelle fonction associée avec l'objet *code*. *globals* doit "
"être un dictionnaire avec les variables globales accessibles à la fonction."
#: c-api/function.rst:37 #: c-api/function.rst:37
msgid "" msgid ""
@ -65,60 +72,77 @@ msgstr ""
#: c-api/function.rst:54 #: c-api/function.rst:54
msgid "Return the code object associated with the function object *op*." msgid "Return the code object associated with the function object *op*."
msgstr "" msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*."
#: c-api/function.rst:59 #: c-api/function.rst:59
msgid "Return the globals dictionary associated with the function object *op*." msgid "Return the globals dictionary associated with the function object *op*."
msgstr "" msgstr ""
"Renvoie le dictionnaire global associé avec l'objet de la fonction *op*."
#: c-api/function.rst:64 #: c-api/function.rst:64
msgid "" msgid ""
"Return a :term:`borrowed reference` to the *__module__* attribute of the " "Return a :term:`borrowed reference` to the *__module__* attribute of the "
"function object *op*. It can be *NULL*." "function object *op*. It can be *NULL*."
msgstr "" msgstr ""
"Renvoie un :term:`borrowed reference` à l'attribut ``__module__`` de l'objet "
"fonction *op*. Il peut être *NULL*."
#: c-api/function.rst:67 #: c-api/function.rst:67
msgid "" msgid ""
"This is normally a string containing the module name, but can be set to any " "This is normally a string containing the module name, but can be set to any "
"other object by Python code." "other object by Python code."
msgstr "" msgstr ""
"C'est typiquement une chaîne de caractère contenant le nom du module, mais "
"il peut être changé par du code Python pour n'importe quel autre objet."
#: c-api/function.rst:73 #: c-api/function.rst:73
msgid "" msgid ""
"Return the argument default values of the function object *op*. This can be " "Return the argument default values of the function object *op*. This can be "
"a tuple of arguments or ``NULL``." "a tuple of arguments or ``NULL``."
msgstr "" msgstr ""
"Renvoie les valeurs par défaut de l'argument de l'objet de la fonction *op*. "
"Cela peut être un tuple d'arguments ou ``NULL``."
#: c-api/function.rst:79 #: c-api/function.rst:79
msgid "" msgid ""
"Set the argument default values for the function object *op*. *defaults* " "Set the argument default values for the function object *op*. *defaults* "
"must be ``Py_None`` or a tuple." "must be ``Py_None`` or a tuple."
msgstr "" msgstr ""
"Définir les valeurs par défaut de l'argument pour l'objet de la fonction "
"*op*. *defaults* doit être ``Py_None`` ou un tuple."
#: c-api/function.rst:96 c-api/function.rst:110 #: c-api/function.rst:96 c-api/function.rst:110
msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." msgid "Raises :exc:`SystemError` and returns ``-1`` on failure."
msgstr "" msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec."
#: c-api/function.rst:87 #: c-api/function.rst:87
msgid "" msgid ""
"Return the closure associated with the function object *op*. This can be " "Return the closure associated with the function object *op*. This can be "
"``NULL`` or a tuple of cell objects." "``NULL`` or a tuple of cell objects."
msgstr "" msgstr ""
"Renvoie la fermeture associée avec l'objet de la fonction *op*. Cela peut "
"être ``NULL`` ou un tuple d'objets cellule."
#: c-api/function.rst:93 #: c-api/function.rst:93
msgid "" msgid ""
"Set the closure associated with the function object *op*. *closure* must be " "Set the closure associated with the function object *op*. *closure* must be "
"``Py_None`` or a tuple of cell objects." "``Py_None`` or a tuple of cell objects."
msgstr "" msgstr ""
"Définir la fermeture associée avec l'objet de la fonction *op*. *closure* "
"doit être ``Py_None`` ou un tuple d'objets cellule."
#: c-api/function.rst:101 #: c-api/function.rst:101
msgid "" msgid ""
"Return the annotations of the function object *op*. This can be a mutable " "Return the annotations of the function object *op*. This can be a mutable "
"dictionary or ``NULL``." "dictionary or ``NULL``."
msgstr "" msgstr ""
"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un "
"dictionnaire mutable ou ``NULL``."
#: c-api/function.rst:107 #: c-api/function.rst:107
msgid "" msgid ""
"Set the annotations for the function object *op*. *annotations* must be a " "Set the annotations for the function object *op*. *annotations* must be a "
"dictionary or ``Py_None``." "dictionary or ``Py_None``."
msgstr "" msgstr ""
"Définir les annotations pour l'objet de la fonction *op*. *annotations* doit "
"être un dictionnaire ou ``Py_None``."

View File

@ -23,10 +23,12 @@ msgid ""
"The macros in this section are used for managing reference counts of Python " "The macros in this section are used for managing reference counts of Python "
"objects." "objects."
msgstr "" msgstr ""
"Les macros dans cette section permettent de gérer le compteur de références "
"des objets Python."
#: c-api/refcounting.rst:16 #: c-api/refcounting.rst:16
msgid "Increment the reference count for object *o*." msgid "Increment the reference count for object *o*."
msgstr "" msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:18 #: c-api/refcounting.rst:18
msgid "" msgid ""
@ -34,40 +36,54 @@ msgid ""
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be " "term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
"used to create a new :term:`strong reference`." "used to create a new :term:`strong reference`."
msgstr "" msgstr ""
"Cette fonction est souvent utilisée pour convertir une :term:`référence "
"empruntée` en une :term:`référence forte` *sur place*. La fonction :c:func:"
"`Py_NewRef` peut être utilisée pour créer une nouvelle :term:`référence "
"forte`."
#: c-api/refcounting.rst:22 #: c-api/refcounting.rst:22
msgid "" msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`." "use :c:func:`Py_XINCREF`."
msgstr "" msgstr ""
"L'objet ne doit pas être ``NULL``, la fonction :c:func:`Py_XINCREF` doit "
"être utilisée s'il est possible qu'il soit ``NULL``."
#: c-api/refcounting.rst:28 #: c-api/refcounting.rst:28
msgid "" msgid ""
"Increment the reference count for object *o*. The object may be ``NULL``, " "Increment the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect." "in which case the macro has no effect."
msgstr "" msgstr ""
"Incrémente le compteur de références de l'objet *o*. La macro n'a pas "
"d'effet si l'objet est ``NULL``."
#: c-api/refcounting.rst:31 #: c-api/refcounting.rst:31
msgid "See also :c:func:`Py_XNewRef`." msgid "See also :c:func:`Py_XNewRef`."
msgstr "" msgstr "Voir aussi :c:func:`Py_XNewRef`."
#: c-api/refcounting.rst:36 #: c-api/refcounting.rst:36
msgid "" msgid ""
"Create a new :term:`strong reference` to an object: increment the reference " "Create a new :term:`strong reference` to an object: increment the reference "
"count of the object *o* and return the object *o*." "count of the object *o* and return the object *o*."
msgstr "" msgstr ""
"Créer une nouvelle :term:`référence forte` d'un objet : incrémente le "
"compteur de référence de l'objet *o* et renvoie l'objet *o*."
#: c-api/refcounting.rst:39 #: c-api/refcounting.rst:39
msgid "" msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " "When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to decrement the object reference count." "should be called on it to decrement the object reference count."
msgstr "" msgstr ""
":c:func:`Py_DECREF` doit être appelée quand la :term:`référence forte` n'est "
"plus utilisée pour décrémenter le compteur de références de l'objet."
#: c-api/refcounting.rst:42 #: c-api/refcounting.rst:42
msgid "" msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be " "The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``." "``NULL``."
msgstr "" msgstr ""
"L'objet *o* ne doit pas être ``NULL`` et la fonction :c:func:`Py_XNewRef` "
"doit être utilisée si *o* peut être ``NULL``."
#: c-api/refcounting.rst:45 #: c-api/refcounting.rst:45
msgid "For example::" msgid "For example::"
@ -75,41 +91,47 @@ msgstr "Par exemple ::"
#: c-api/refcounting.rst:50 #: c-api/refcounting.rst:50
msgid "can be written as::" msgid "can be written as::"
msgstr "" msgstr "peut s'écrire ::"
#: c-api/refcounting.rst:54 #: c-api/refcounting.rst:54
msgid "See also :c:func:`Py_INCREF`." msgid "See also :c:func:`Py_INCREF`."
msgstr "" msgstr "Voir aussi :c:func:`Py_INCREF`."
#: c-api/refcounting.rst:61 #: c-api/refcounting.rst:61
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
msgstr "" msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``."
#: c-api/refcounting.rst:63 #: c-api/refcounting.rst:63
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
msgstr "" msgstr "Cette fonction renvoie ``NULL`` si l'objet *o* est ``NULL``."
#: c-api/refcounting.rst:70 #: c-api/refcounting.rst:70
msgid "Decrement the reference count for object *o*." msgid "Decrement the reference count for object *o*."
msgstr "" msgstr "Décrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:72 #: c-api/refcounting.rst:72
msgid "" msgid ""
"If the reference count reaches zero, the object's type's deallocation " "If the reference count reaches zero, the object's type's deallocation "
"function (which must not be ``NULL``) is invoked." "function (which must not be ``NULL``) is invoked."
msgstr "" msgstr ""
"Si le compteur de références atteint zéro, la fonction de dés-allocation du "
"type de l'objet (qui ne doit pas être ``NULL``) est invoquée."
#: c-api/refcounting.rst:75 #: c-api/refcounting.rst:75
msgid "" msgid ""
"This function is usually used to delete a :term:`strong reference` before " "This function is usually used to delete a :term:`strong reference` before "
"exiting its scope." "exiting its scope."
msgstr "" msgstr ""
"Cette fonction est généralement utilisée pour supprimer une :term:`référence "
"forte` avant qu'elle ne soit plus accessible."
#: c-api/refcounting.rst:78 #: c-api/refcounting.rst:78
msgid "" msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`." "use :c:func:`Py_XDECREF`."
msgstr "" msgstr ""
"L'objet en argument ne doit pas être ``NULL``. :c:func:`Py_XDECREF` doit "
"être utilisée si l'objet peut être ``NULL``."
#: c-api/refcounting.rst:83 #: c-api/refcounting.rst:83
msgid "" msgid ""
@ -123,6 +145,15 @@ msgid ""
"update the list data structure, and then call :c:func:`Py_DECREF` for the " "update the list data structure, and then call :c:func:`Py_DECREF` for the "
"temporary variable." "temporary variable."
msgstr "" msgstr ""
"La fonction de dés-allocation peut invoquer du code Python arbitraire (par "
"exemple quand une instance d'une classe avec une méthode :meth:`__del__` est "
"supprimée). Le code exécuté a accès à toutes les variables Python globales "
"mais les exceptions lors de l'exécution de ce code ne sont pas propagées. "
"Tous les objets qui peuvent être atteints à partir d'une variable globale "
"doivent être dans un état cohérent avant d'appeler :c:func:`Py_DECREF`. Par "
"exemple le code pour supprimer un élément d'une liste doit copier une "
"référence à l'objet dans une variable temporaire, mettre à jour la liste, et "
"enfin appeler :c:func:`Py_DECREF` avec la variable temporaire."
#: c-api/refcounting.rst:95 #: c-api/refcounting.rst:95
msgid "" msgid ""
@ -130,6 +161,10 @@ msgid ""
"in which case the macro has no effect; otherwise the effect is the same as " "in which case the macro has no effect; otherwise the effect is the same as "
"for :c:func:`Py_DECREF`, and the same warning applies." "for :c:func:`Py_DECREF`, and the same warning applies."
msgstr "" msgstr ""
"Décrémente le compteur de références de l'objet *o*. L'objet peut être "
"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le "
"comportement est identique à :c:func:`Py_DECREF` et les mêmes avertissements "
"sont de rigueur."
#: c-api/refcounting.rst:102 #: c-api/refcounting.rst:102
msgid "" msgid ""
@ -140,24 +175,38 @@ msgid ""
"object passed because the macro carefully uses a temporary variable and sets " "object passed because the macro carefully uses a temporary variable and sets "
"the argument to ``NULL`` before decrementing its reference count." "the argument to ``NULL`` before decrementing its reference count."
msgstr "" msgstr ""
"Décrémente le compteur de références de l'objet *o*. L'objet peut être "
"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le "
"comportement est identique à :c:func:`Py_DECREF`, puis l'argument est mis à "
"``NULL``. L'avertissement au sujet de l'objet passé en argument à :c:func:"
"`Py_DECREF` ne s'applique pas car la macro utilise une variable temporaire "
"et met l'objet à ``NULL`` avant de décrémenter le compteur de références."
#: c-api/refcounting.rst:109 #: c-api/refcounting.rst:109
msgid "" msgid ""
"It is a good idea to use this macro whenever decrementing the reference " "It is a good idea to use this macro whenever decrementing the reference "
"count of an object that might be traversed during garbage collection." "count of an object that might be traversed during garbage collection."
msgstr "" msgstr ""
"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de "
"référence d'un objet qui peut être parcouru par le ramasse-miette."
#: c-api/refcounting.rst:114 #: c-api/refcounting.rst:114
msgid "" msgid ""
"Increment the reference count for object *o*. A function version of :c:func:" "Increment the reference count for object *o*. A function version of :c:func:"
"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python." "`Py_XINCREF`. It can be used for runtime dynamic embedding of Python."
msgstr "" msgstr ""
"Incrémente le compteur de références de l'objet *o*. C'est la version "
"fonctionnelle de :c:func:`Py_XINCREF`. Elle peut être utilisée lorsque "
"Python est embarqué dynamiquement dans une application."
#: c-api/refcounting.rst:120 #: c-api/refcounting.rst:120
msgid "" msgid ""
"Decrement the reference count for object *o*. A function version of :c:func:" "Decrement the reference count for object *o*. A function version of :c:func:"
"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python." "`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
msgstr "" msgstr ""
"Décrémente le compteur de références de l'objet *o*. C'est la version "
"fonctionnelle de :c:func:`Py_XDECREF`. Elle peut être utilisée lorsque "
"Python est embarqué dynamiquement dans une application."
#: c-api/refcounting.rst:124 #: c-api/refcounting.rst:124
msgid "" msgid ""
@ -165,3 +214,7 @@ msgid ""
"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"
"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`."
msgstr "" msgstr ""
"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein "
"de l'interpréteur et ne font pas partie de l'API publique : :c:func:"
"`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, "
"ainsi que la variable globale :c:data:`_Py_RefTotal`."

View File

@ -60,12 +60,14 @@ msgstr ""
#: c-api/reflection.rst:36 #: c-api/reflection.rst:36
msgid "Get the *frame* next outer frame." msgid "Get the *frame* next outer frame."
msgstr "" msgstr "Renvoie la *frame* encadrant immédiatement à *frame*."
#: c-api/reflection.rst:38 #: c-api/reflection.rst:38
msgid "" msgid ""
"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame." "Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame."
msgstr "" msgstr ""
"Renvoie un :term:`strong reference`, ou ``NULL`` si *frame* n'a pas de "
"*frame* encadrante."
#: c-api/reflection.rst:60 #: c-api/reflection.rst:60
msgid "*frame* must not be ``NULL``." msgid "*frame* must not be ``NULL``."
@ -73,11 +75,11 @@ msgstr ""
#: c-api/reflection.rst:47 #: c-api/reflection.rst:47
msgid "Get the *frame* code." msgid "Get the *frame* code."
msgstr "" msgstr "Obtenir le code *frame*."
#: c-api/reflection.rst:49 #: c-api/reflection.rst:49
msgid "Return a :term:`strong reference`." msgid "Return a :term:`strong reference`."
msgstr "" msgstr "Renvoie un :term:`strong reference`."
#: c-api/reflection.rst:51 #: c-api/reflection.rst:51
msgid "" msgid ""

View File

@ -16,7 +16,7 @@ msgstr ""
#: c-api/stable.rst:7 #: c-api/stable.rst:7
msgid "C API Stability" msgid "C API Stability"
msgstr "" msgstr "Stabilité de lAPI C"
#: c-api/stable.rst:9 #: c-api/stable.rst:9
#, fuzzy #, fuzzy
@ -40,12 +40,20 @@ msgid ""
"work on 3.10.8 and vice versa, but will need to be compiled separately for " "work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.10.x." "3.9.x and 3.10.x."
msgstr "" msgstr ""
"Linterface binaire de CPython (ABI) est entièrement compatible au sein "
"dune version mineure (à condition que la compilation soit toujours faite de "
"même manière, comme indiqué dans :ref:`stable-abi-platform` ci-dessous). "
"Ainsi le code compilé pour Python 3.10.0 fonctionnera avec Python 3.10.8 et "
"inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x."
#: c-api/stable.rst:21 #: c-api/stable.rst:21
msgid "" msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private " "Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases." "API that can change without notice even in patch releases."
msgstr "" msgstr ""
"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, "
"font partie de lAPI privée et peuvent changer sans préavis même dans une "
"version de correctif."
#: c-api/stable.rst:26 #: c-api/stable.rst:26
msgid "Stable Application Binary Interface" msgid "Stable Application Binary Interface"
@ -58,6 +66,11 @@ msgid ""
"multiple versions of Python. Contents of the Limited API are :ref:`listed " "multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below <stable-abi-list>`." "below <stable-abi-list>`."
msgstr "" msgstr ""
"Le concept d*API restreinte*, un sous-ensemble de lAPI C de Python, existe "
"depuis Python 3.2. Les extensions qui utilisent uniquement lAPI restreinte "
"peuvent être compilées une seule fois et fonctionner avec plusieurs versions "
"de Python. Les objets faisant partie de lAPI restreinte sont :ref:"
"`documentés ci-dessous <stable-abi-list>`."
#: c-api/stable.rst:33 #: c-api/stable.rst:33
msgid "" msgid ""
@ -66,6 +79,11 @@ msgid ""
"symbols exposed in the Limited API, but also other ones for example, " "symbols exposed in the Limited API, but also other ones for example, "
"functions necessary to support older versions of the Limited API." "functions necessary to support older versions of the Limited API."
msgstr "" msgstr ""
"Python a aussi une *ABI stable* : un ensemble de symboles qui sont "
"compatibles avec lensemble des versions Python 3.x. LABI stable contient "
"les symboles utilisés par lAPI restreinte, mais pas seulement — par exemple "
"les fonctions nécessaires pour supporter les versions précédentes de lAPI "
"restreinte en font aussi partie."
#: c-api/stable.rst:38 #: c-api/stable.rst:38
msgid "" msgid ""
@ -73,12 +91,17 @@ msgid ""
"and Stable ABI work the same way for all uses of the API for example, " "and Stable ABI work the same way for all uses of the API for example, "
"embedding Python.)" "embedding Python.)"
msgstr "" msgstr ""
"(Par simplicité ce document parle *dextensions*, mais lAPI restreinte et "
"lABI stable fonctionnent de la même manière pour tous les cas dusages de "
"lAPI — par exemple pour embarquer Python.)"
#: c-api/stable.rst:44 #: c-api/stable.rst:44
msgid "" msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the " "Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version." "Limited API, and to select the Limited API version."
msgstr "" msgstr ""
"Définissez cette macro avant dinclure ``Python.h`` pour ninclure que lAPI "
"restreinte et indiquer sa version."
#: c-api/stable.rst:47 #: c-api/stable.rst:47
msgid "" msgid ""
@ -88,6 +111,11 @@ msgid ""
"the specified one onward, and can use Limited API introduced up to that " "the specified one onward, and can use Limited API introduced up to that "
"version." "version."
msgstr "" msgstr ""
"Définissez ``Py_LIMITED_API`` à la valeur de :c:data:`PY_VERSION_HEX` "
"correspond à la version minimale de Python que votre extension supporte. "
"Cette extension fonctionnera sans re-compilation avec toutes les versions "
"futures de Python 3, et peut utiliser lensemble des éléments de lAPI "
"restreinte présent dans cette version."
#: c-api/stable.rst:53 #: c-api/stable.rst:53
msgid "" msgid ""
@ -95,12 +123,19 @@ msgid ""
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when " "minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions." "compiling with future Python versions."
msgstr "" msgstr ""
"Il est recommandé de renseigner une version mineure minimale (par exemple "
"``0x030A0000`` pour Python 3.10) plutôt que dutiliser directement la macro "
"``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée "
"lors de la compilation."
#: c-api/stable.rst:57 #: c-api/stable.rst:57
msgid "" msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as " "You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)." "``0x03020000`` (Python 3.2, the version that introduced Limited API)."
msgstr "" msgstr ""
"Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est "
"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version "
"à supporter lAPI restreinte."
#: c-api/stable.rst:60 #: c-api/stable.rst:60
msgid "" msgid ""
@ -108,6 +143,9 @@ msgid ""
"``python3.dll`` rather than a version-specific library such as ``python39." "``python3.dll`` rather than a version-specific library such as ``python39."
"dll``." "dll``."
msgstr "" msgstr ""
"Sur Windows les extensions qui utilisent lABI stable doivent être liées "
"avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une "
"version comme ``python39.dll``."
#: c-api/stable.rst:64 #: c-api/stable.rst:64
msgid "" msgid ""
@ -117,6 +155,12 @@ msgid ""
"to ensure that, for example, extensions built with the 3.10+ Limited API are " "to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python." "not installed for lower versions of Python."
msgstr "" msgstr ""
"Sur certaines plateformes Python essaiera de charger une bibliothèque "
"partagée dont le nom contient ``abi3`` (par exemple ``mymodule.abi3.so``). "
"Il ne vérifie pas si ces extensions respectent lABI stable. Lutilisateur "
"(ou ses outils dadministration) doit sassurer que les extensions compilées "
"avec une version donnée de lAPI restreinte, par exemple 3.10+, ne sont pas "
"utilisées avec des versions plus anciennes de Python."
#: c-api/stable.rst:71 #: c-api/stable.rst:71
msgid "" msgid ""
@ -124,16 +168,23 @@ msgid ""
"library, not solely as macros. This makes them usable from languages that " "library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor." "don't use the C preprocessor."
msgstr "" msgstr ""
"Toutes les fonctions de lABI stable sont présentes dans la bibliothèque "
"dynamique de Python en tant que fonction, et pas uniquement comme macro. "
"Elles peuvent donc être utilisées avec des langages qui nutilisent pas le "
"pré-processeur C."
#: c-api/stable.rst:77 #: c-api/stable.rst:77
msgid "Limited API Scope and Performance" msgid "Limited API Scope and Performance"
msgstr "" msgstr "Porté de lAPI restreinte et performance"
#: c-api/stable.rst:79 #: c-api/stable.rst:79
msgid "" msgid ""
"The goal for the Limited API is to allow everything that is possible with " "The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty." "the full C API, but possibly with a performance penalty."
msgstr "" msgstr ""
"Lobjectif de lAPI restreinte est de permettre lensemble des opérations "
"possibles avec lAPI C étendue, mais peut avoir un impact sur les "
"performances."
#: c-api/stable.rst:82 #: c-api/stable.rst:82
msgid "" msgid ""
@ -141,6 +192,10 @@ msgid ""
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it " "variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
"can rely on version-specific implementation details of the list object." "can rely on version-specific implementation details of the list object."
msgstr "" msgstr ""
"Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la "
"macro « dangereuse » :c:func:`PyList_GET_ITEM` ne lest pas. Cette macro "
"peut être plus rapide car elle dépend de détails dimplémentation spécifique "
"à lobjet ``list``."
#: c-api/stable.rst:87 #: c-api/stable.rst:87
msgid "" msgid ""
@ -149,6 +204,11 @@ msgid ""
"allowing stability as Python's data structures are improved, but possibly " "allowing stability as Python's data structures are improved, but possibly "
"reducing performance." "reducing performance."
msgstr "" msgstr ""
"Si ``Py_LIMITED_API`` nest pas défini certaines fonctions de lAPI C seront "
"remplacées par des macros ou une version en-ligne. Définir "
"``Py_LIMITED_API`` désactive cette optimisation, permettant de se garantir "
"contre les évolutions des structures de données utilisées par Python, et "
"peut réduire les performances."
#: c-api/stable.rst:92 #: c-api/stable.rst:92
msgid "" msgid ""
@ -159,10 +219,17 @@ msgid ""
"where a version-specific one is not available for example, for prereleases " "where a version-specific one is not available for example, for prereleases "
"of an upcoming Python version." "of an upcoming Python version."
msgstr "" msgstr ""
"En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler "
"une extension utilisant lAPI restreinte avec une version spécifique de "
"lABI. Les performances seront meilleures pour cette version de Python, mais "
"la compatibilité sera réduite. Compiler en définissant ``Py_LIMITED_API`` "
"produira une extension qui peut être utilisée quand une variante spécifique "
"à une version nest pas disponible — par exemple pour une version alpha de "
"Python."
#: c-api/stable.rst:101 #: c-api/stable.rst:101
msgid "Limited API Caveats" msgid "Limited API Caveats"
msgstr "" msgstr "Inconvénients de lAPI restreinte"
#: c-api/stable.rst:103 #: c-api/stable.rst:103
msgid "" msgid ""
@ -171,6 +238,10 @@ msgid ""
"only covers definitions, but an API also includes other issues, such as " "only covers definitions, but an API also includes other issues, such as "
"expected semantics." "expected semantics."
msgstr "" msgstr ""
"Compiler avec ``Py_LIMITED_API`` *nest pas* une garantie absolue que le "
"code est conforme à lAPI restreinte ou à lABI stable. ``Py_LIMITED_API`` "
"ne concerne que la définition des objets, mais une API inclut aussi dautres "
"spécificités comme le comportement attendu."
#: c-api/stable.rst:108 #: c-api/stable.rst:108
msgid "" msgid ""
@ -181,18 +252,31 @@ msgid ""
"the argument will be used directly, causing a ``NULL`` dereference and " "the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs." "crash. A similar argument works for fields of structs."
msgstr "" msgstr ""
"Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre lappel "
"dune fonction avec des arguments qui sont invalides pour une version de "
"Python plus ancienne. Par exemple considérons une fonction qui accepte "
"``NULL`` comme argument à partir de 3.9. ``NULL`` permet maintenant "
"dutiliser le comportement par défaut, mais Python 3.8 essayera daccéder à "
"lobjet pointé et dé-référencera ``NULL``, causant un crash. Des problèmes "
"similaires peuvent se produire avec les attributs des structures."
#: c-api/stable.rst:115 #: c-api/stable.rst:115
msgid "" msgid ""
"Another issue is that some struct fields are currently not hidden when " "Another issue is that some struct fields are currently not hidden when "
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API." "``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
msgstr "" msgstr ""
"Un autre problème est que certains attributs ne sont pas encore cachés "
"lorsque ``Py_LIMITED_API`` est défini, même sils ne font pas partie de "
"lAPI restreinte."
#: c-api/stable.rst:118 #: c-api/stable.rst:118
msgid "" msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python " "For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version." "versions it supports, and preferably to build with the *lowest* such version."
msgstr "" msgstr ""
"Pour ces raisons il est recommandé de tester une extension avec *lensemble "
"des versions mineures* supportées de Python, et généralement de la compiler "
"avec la plus *ancienne* de ces versions."
#: c-api/stable.rst:121 #: c-api/stable.rst:121
msgid "" msgid ""
@ -201,6 +285,11 @@ msgid ""
"few private declarations are exposed for technical reasons (or even " "few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)." "unintentionally, as bugs)."
msgstr "" msgstr ""
"Il est aussi recommandé de vérifier la documentation de toutes les API "
"utilisées pour vérifier quelles fassent bien partie de lAPI restreinte. "
"Même lorsque ``Py_LIMITED_API`` est défini quelques fonctions privées "
"peuvent être exposées aux utilisateurs pour des raisons techniques, ou par "
"erreur."
#: c-api/stable.rst:126 #: c-api/stable.rst:126
msgid "" msgid ""
@ -210,10 +299,15 @@ msgid ""
"particular, parts of the Limited API may be deprecated and removed, provided " "particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable." "that the Stable ABI stays stable."
msgstr "" msgstr ""
"Notez aussi que lAPI restreinte nest pas forcément stable : compiler avec "
"Python 3.8 en définissant ``Py_LIMITED_API`` garanti que lextension "
"fonctionnera avec Python 3.12, mais pas quelle pourra *être compilée* avec "
"Python 3.12. En particulier certaines parties de lAPI restreinte peuvent "
"être dépréciées et retirées tant que lABI stable nest pas modifiée."
#: c-api/stable.rst:136 #: c-api/stable.rst:136
msgid "Platform Considerations" msgid "Platform Considerations"
msgstr "" msgstr "Considérations relatives aux plateformes"
#: c-api/stable.rst:138 #: c-api/stable.rst:138
msgid "" msgid ""
@ -222,6 +316,11 @@ msgid ""
"ABI, these details define a “platform”. They usually depend on the OS type " "ABI, these details define a “platform”. They usually depend on the OS type "
"and processor architecture" "and processor architecture"
msgstr "" msgstr ""
"La stabilité de lABI ne dépend pas que de Python mais aussi du compilateur "
"utilisé, des bibliothèques systèmes et des options du compilateur. "
"Lensemble de ces détails correspondent à ce que lABI stable appelle une "
 plateforme ». Ils dépendent généralement du système dexploitation et de "
"larchitecture du processeur."
#: c-api/stable.rst:143 #: c-api/stable.rst:143
msgid "" msgid ""
@ -230,14 +329,19 @@ msgid ""
"does not break the Stable ABI. This is the case with Windows and macOS " "does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors." "releases from ``python.org`` and many third-party distributors."
msgstr "" msgstr ""
"Les distributeurs de Python doivent sassurer que toutes les versions de "
"Python pour une plateforme donnée sont compilées de manière à ne pas rompre "
"la compatibilité de lABI stable. Cest le cas des versions produites pour "
"Windows et macOS de ``python.org`` et de la plupart des distributions "
"tierces."
#: c-api/stable.rst:153 #: c-api/stable.rst:153
msgid "Contents of Limited API" msgid "Contents of Limited API"
msgstr "" msgstr "Contenu de lAPI restreinte"
#: c-api/stable.rst:156 #: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:" msgid "Currently, the Limited API includes the following items:"
msgstr "" msgstr "Pour le moment lAPI restreinte inclut les éléments suivants :"
#~ msgid "" #~ msgid ""
#~ "Unfortunately, the API compatibility does not extend to binary " #~ "Unfortunately, the API compatibility does not extend to binary "

View File

@ -644,7 +644,7 @@ msgstr ""
#: c-api/structures.rst:493 #: c-api/structures.rst:493
msgid "name" msgid "name"
msgstr "" msgstr "nom"
#: c-api/structures.rst:493 #: c-api/structures.rst:493
msgid "attribute name" msgid "attribute name"

View File

@ -16,11 +16,11 @@ msgstr ""
#: c-api/unicode.rst:6 #: c-api/unicode.rst:6
msgid "Unicode Objects and Codecs" msgid "Unicode Objects and Codecs"
msgstr "" msgstr "Objets Unicode et Codecs"
#: c-api/unicode.rst:12 #: c-api/unicode.rst:12
msgid "Unicode Objects" msgid "Unicode Objects"
msgstr "" msgstr "Objets Unicode"
#: c-api/unicode.rst:14 #: c-api/unicode.rst:14
msgid "" msgid ""
@ -31,6 +31,12 @@ msgid ""
"65536; otherwise, code points must be below 1114112 (which is the full " "65536; otherwise, code points must be below 1114112 (which is the full "
"Unicode range)." "Unicode range)."
msgstr "" msgstr ""
"Depuis l'implémentation de :pep:`393` dans Python 3.3, les objets Unicode "
"utilisent une variété de représentations internes, pour permettre de gérer "
"l'intervalle complet des caractères Unicode en restant efficace en termes de "
"mémoire. Il y a des cas spéciaux pour les chaînes où tous les points de code "
"sont inférieurs à 128, 256, ou 65536 ; sinon, les points de code doivent "
"être inférieurs à 1114112 (qui est l'intervalle Unicode complet)."
#: c-api/unicode.rst:20 #: c-api/unicode.rst:20
msgid "" msgid ""
@ -38,12 +44,18 @@ msgid ""
"cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is " "cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is "
"deprecated and inefficient." "deprecated and inefficient."
msgstr "" msgstr ""
"Des représentations :c:expr:`Py_UNICODE*` et UTF-8 sont créées à la demande "
"et mises en cache dans l'objet Unicode. La représentation :c:expr:"
"`Py_UNICODE*` est dépréciée et inefficace."
#: c-api/unicode.rst:24 #: c-api/unicode.rst:24
msgid "" msgid ""
"Due to the transition between the old APIs and the new APIs, Unicode objects " "Due to the transition between the old APIs and the new APIs, Unicode objects "
"can internally be in two states depending on how they were created:" "can internally be in two states depending on how they were created:"
msgstr "" msgstr ""
"En raison de la transition des anciennes APIs vers les nouvelles APIs, les "
"objets Unicode peuvent être dans deux états internes selon comment ils ont "
"été créés :"
#: c-api/unicode.rst:27 #: c-api/unicode.rst:27
msgid "" msgid ""
@ -51,6 +63,9 @@ msgid ""
"Unicode API. They use the most efficient representation allowed by the " "Unicode API. They use the most efficient representation allowed by the "
"implementation." "implementation."
msgstr "" msgstr ""
"Les objets Unicode « canoniques » sont tous les objets créés par une API "
"Unicode non-dépréciée. Ils utilisent la représentation la plus efficace "
"permise par l'implémentation."
#: c-api/unicode.rst:31 #: c-api/unicode.rst:31
msgid "" msgid ""
@ -59,6 +74,10 @@ msgid ""
"`Py_UNICODE*` representation; you will have to call :c:func:" "`Py_UNICODE*` representation; you will have to call :c:func:"
"`PyUnicode_READY` on them before calling any other API." "`PyUnicode_READY` on them before calling any other API."
msgstr "" msgstr ""
"Les objets Unicode « historiques » ont été créés via une des APIs dépréciées "
"(typiquement :c:func:`PyUnicode_FromUnicode`) et supportent uniquement la "
"représentation :c:expr:`Py_UNICODE*`; vous devrez appeler :c:func:"
"`PyUnicode_READY` sur eux avant d'appeler n'importe quelle autre API."
#: c-api/unicode.rst:37 #: c-api/unicode.rst:37
msgid "" msgid ""
@ -66,16 +85,21 @@ msgid ""
"APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " "APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` "
"for more information." "for more information."
msgstr "" msgstr ""
"Les objets Unicode « historiques » vont être supprimés de Python 3.12 avec "
"les APIs dépréciées. Tous les objets Unicode vont être « canoniques » à "
"partir de là. Voir :pep:`623` pour plus d'information."
#: c-api/unicode.rst:43 #: c-api/unicode.rst:43
msgid "Unicode Type" msgid "Unicode Type"
msgstr "" msgstr "Type Unicode"
#: c-api/unicode.rst:45 #: c-api/unicode.rst:45
msgid "" msgid ""
"These are the basic Unicode object types used for the Unicode implementation " "These are the basic Unicode object types used for the Unicode implementation "
"in Python:" "in Python:"
msgstr "" msgstr ""
"Voici les types d'objets Unicode utilisés pour l'implémentation Unicode en "
"Python :"
#: c-api/unicode.rst:52 #: c-api/unicode.rst:52
msgid "" msgid ""
@ -83,12 +107,17 @@ msgid ""
"characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " "characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with "
"single Unicode characters, use :c:type:`Py_UCS4`." "single Unicode characters, use :c:type:`Py_UCS4`."
msgstr "" msgstr ""
"Voici les *typedefs* pour les types entiers non signés suffisamment large "
"pour contenir des caractères de 32 bits, 16 bits et 8 bits, respectivement. "
"Pour traiter des caractères uniques, utilisez :c:type:`Py_UCS4`."
#: c-api/unicode.rst:61 #: c-api/unicode.rst:61
msgid "" msgid ""
"This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit " "This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit "
"type depending on the platform." "type depending on the platform."
msgstr "" msgstr ""
"Ceci est un *typedef* de :c:expr:`wchar_t`, qui est un type 16-bit ou un "
"type 32-bit selon la plateforme."
#: c-api/unicode.rst:64 #: c-api/unicode.rst:64
msgid "" msgid ""
@ -96,6 +125,9 @@ msgid ""
"whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " "whether you selected a \"narrow\" or \"wide\" Unicode version of Python at "
"build time." "build time."
msgstr "" msgstr ""
"Dans les versions précédentes, ceci était un type 16-bit ou un type 32-bit "
"selon que vous choisissiez une version Unicode *narrow* ou *wide* de Python "
"à la compilation."
#: c-api/unicode.rst:74 #: c-api/unicode.rst:74
msgid "" msgid ""

View File

@ -345,6 +345,11 @@ msgid ""
"using a dotted expression, and would instead need to be retrieved with :func:" "using a dotted expression, and would instead need to be retrieved with :func:"
"`getattr`." "`getattr`."
msgstr "" msgstr ""
"Il est possible de donner à un objet un attribut dont le nom n'est pas un "
"identifiant tel que défini pour les :ref:`identifiers`, par exemple en "
"utilisant :func:`setattr`, si l'objet le permet. Un tel attribut ne sera pas "
"accessible à l'aide d'une expression pointée et on devra y accéder avec :"
"func:`getattr`."
#: glossary.rst:149 #: glossary.rst:149
msgid "awaitable" msgid "awaitable"
@ -511,6 +516,8 @@ msgid ""
"A callable is an object that can be called, possibly with a set of arguments " "A callable is an object that can be called, possibly with a set of arguments "
"(see :term:`argument`), with the following syntax::" "(see :term:`argument`), with the following syntax::"
msgstr "" msgstr ""
"Un appelable est un objet qui peut être appelé, éventuellement avec un "
"ensemble d'arguments (voir :term:`argument`), avec la syntaxe suivante ::"
#: glossary.rst:219 #: glossary.rst:219
msgid "" msgid ""
@ -518,6 +525,9 @@ msgid ""
"instance of a class that implements the :meth:`~object.__call__` method is " "instance of a class that implements the :meth:`~object.__call__` method is "
"also a callable." "also a callable."
msgstr "" msgstr ""
"Une :term:`fonction <function>`, et par extension une :term:`méthode "
"<method>`, est un appelable. Une instance d'une classe qui implémente la "
"méthode :meth:`~object.__call__` est également un appelable."
#: glossary.rst:222 #: glossary.rst:222
msgid "callback" msgid "callback"
@ -1034,6 +1044,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" "filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`." "c:type:`PyConfig`."
msgstr "" msgstr ""
"L':term:`encodage du système de fichiers et gestionnaire d'erreurs associé "
"<filesystem encoding and error handler>` sont configurés au démarrage de "
"Python par la fonction :c:func:`PyConfig_Read` : regardez :c:member:"
"`~PyConfig.filesystem_encoding` et :c:member:`~PyConfig.filesystem_errors` "
"dans les membres de :c:type:`PyConfig`."
#: glossary.rst:437 #: glossary.rst:437
msgid "See also the :term:`locale encoding`." msgid "See also the :term:`locale encoding`."
@ -2715,18 +2730,27 @@ msgid ""
"``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " "``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be "
"serialized as a sequence of bytes." "serialized as a sequence of bytes."
msgstr "" msgstr ""
"Une chaîne de caractères en Python est une suite de points de code Unicode "
"(dans l'intervalle ``U+0000``--``U+10FFFF``). Pour stocker ou transmettre "
"une chaîne, il est nécessaire de la sérialiser en suite d'octets."
#: glossary.rst:1160 #: glossary.rst:1160
msgid "" msgid ""
"Serializing a string into a sequence of bytes is known as \"encoding\", and " "Serializing a string into a sequence of bytes is known as \"encoding\", and "
"recreating the string from the sequence of bytes is known as \"decoding\"." "recreating the string from the sequence of bytes is known as \"decoding\"."
msgstr "" msgstr ""
"Sérialiser une chaîne de caractères en une suite d'octets s'appelle "
 encoder » et recréer la chaîne à partir de la suite d'octets s'appelle "
 décoder »."
#: glossary.rst:1163 #: glossary.rst:1163
msgid "" msgid ""
"There are a variety of different text serialization :ref:`codecs <standard-" "There are a variety of different text serialization :ref:`codecs <standard-"
"encodings>`, which are collectively referred to as \"text encodings\"." "encodings>`, which are collectively referred to as \"text encodings\"."
msgstr "" msgstr ""
"Il existe de multiples :ref:`codecs <standard-encodings>` pour la "
"sérialisation de texte, que l'on regroupe sous l'expression « encodages de "
"texte »."
#: glossary.rst:1166 #: glossary.rst:1166
msgid "text file" msgid "text file"

View File

@ -141,6 +141,9 @@ msgid ""
"ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is " "ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is "
"available." "available."
msgstr "" msgstr ""
"La version Windows de Python n'inclut pas le module :mod:`curses`. Une "
"version portée appelée `UniCurses <https://pypi.org/project/UniCurses>`_ est "
"disponible."
#: howto/curses.rst:62 #: howto/curses.rst:62
msgid "The Python curses module" msgid "The Python curses module"

View File

@ -44,22 +44,29 @@ msgid ""
":term:`Descriptors <descriptor>` let objects customize attribute lookup, " ":term:`Descriptors <descriptor>` let objects customize attribute lookup, "
"storage, and deletion." "storage, and deletion."
msgstr "" msgstr ""
"Les :term:`descripteurs <descriptor>` permettent de personnaliser la "
"recherche, le stockage et la suppression des attributs des objets."
#: howto/descriptor.rst:16 #: howto/descriptor.rst:16
msgid "This guide has four major sections:" msgid "This guide has four major sections:"
msgstr "" msgstr "Ce guide comporte quatre parties principales :"
#: howto/descriptor.rst:18 #: howto/descriptor.rst:18
msgid "" msgid ""
"The \"primer\" gives a basic overview, moving gently from simple examples, " "The \"primer\" gives a basic overview, moving gently from simple examples, "
"adding one feature at a time. Start here if you're new to descriptors." "adding one feature at a time. Start here if you're new to descriptors."
msgstr "" msgstr ""
"l'« introduction » donne un premier aperçu, en partant d'exemples simples, "
"puis en ajoutant une fonctionnalité à la fois. Commencez par là si vous "
"débutez avec les descripteurs ;"
#: howto/descriptor.rst:21 #: howto/descriptor.rst:21
msgid "" msgid ""
"The second section shows a complete, practical descriptor example. If you " "The second section shows a complete, practical descriptor example. If you "
"already know the basics, start there." "already know the basics, start there."
msgstr "" msgstr ""
"la deuxième partie montre un exemple de descripteur complet et pratique. Si "
"vous connaissez déjà les bases, commencez par là ;"
#: howto/descriptor.rst:24 #: howto/descriptor.rst:24
msgid "" msgid ""
@ -67,6 +74,9 @@ msgid ""
"detailed mechanics of how descriptors work. Most people don't need this " "detailed mechanics of how descriptors work. Most people don't need this "
"level of detail." "level of detail."
msgstr "" msgstr ""
"la troisième partie fournit un didacticiel plus technique qui décrit de "
"manière détaillée comment fonctionnent les descripteurs. La plupart des gens "
"n'ont pas besoin de ce niveau de détail ;"
#: howto/descriptor.rst:28 #: howto/descriptor.rst:28
msgid "" msgid ""
@ -75,38 +85,51 @@ msgid ""
"bound methods or about the implementation of common tools like :func:" "bound methods or about the implementation of common tools like :func:"
"`classmethod`, :func:`staticmethod`, :func:`property`, and :term:`__slots__`." "`classmethod`, :func:`staticmethod`, :func:`property`, and :term:`__slots__`."
msgstr "" msgstr ""
"la dernière partie contient des équivalents en pur Python des descripteurs "
"natifs écrits en C. Lisez ceci si vous êtes curieux de savoir comment les "
"fonctions se transforment en méthodes liées ou si vous voulez connaître "
"l'implémentation d'outils courants comme :func:`classmethod`, :func:"
"`staticmethod`, :func:`property` et :term:`__slots__`."
#: howto/descriptor.rst:36 #: howto/descriptor.rst:36
msgid "Primer" msgid "Primer"
msgstr "" msgstr "Introduction"
#: howto/descriptor.rst:38 #: howto/descriptor.rst:38
msgid "" msgid ""
"In this primer, we start with the most basic possible example and then we'll " "In this primer, we start with the most basic possible example and then we'll "
"add new capabilities one by one." "add new capabilities one by one."
msgstr "" msgstr ""
"Dans cette introduction, nous commençons par l'exemple le plus simple "
"possible, puis nous ajoutons de nouvelles fonctionnalités une par une."
#: howto/descriptor.rst:43 #: howto/descriptor.rst:43
msgid "Simple example: A descriptor that returns a constant" msgid "Simple example: A descriptor that returns a constant"
msgstr "" msgstr "Un exemple simple : un descripteur qui renvoie une constante"
#: howto/descriptor.rst:45 #: howto/descriptor.rst:45
msgid "" msgid ""
"The :class:`Ten` class is a descriptor whose :meth:`__get__` method always " "The :class:`Ten` class is a descriptor whose :meth:`__get__` method always "
"returns the constant ``10``:" "returns the constant ``10``:"
msgstr "" msgstr ""
"La classe :class:`Ten` est un descripteur dont la méthode :meth:`__get__` "
"renvoie toujours la constante ``10`` :"
#: howto/descriptor.rst:54 #: howto/descriptor.rst:54
msgid "" msgid ""
"To use the descriptor, it must be stored as a class variable in another " "To use the descriptor, it must be stored as a class variable in another "
"class:" "class:"
msgstr "" msgstr ""
"Pour utiliser le descripteur, il doit être stocké en tant que variable de "
"classe dans une autre classe :"
#: howto/descriptor.rst:62 #: howto/descriptor.rst:62
msgid "" msgid ""
"An interactive session shows the difference between normal attribute lookup " "An interactive session shows the difference between normal attribute lookup "
"and descriptor lookup:" "and descriptor lookup:"
msgstr "" msgstr ""
"Une session interactive montre la différence entre la recherche d'attribut "
"normale et la recherche *via* un descripteur :"
#: howto/descriptor.rst:73 #: howto/descriptor.rst:73
msgid "" msgid ""
@ -115,39 +138,55 @@ msgid ""
"descriptor instance, recognized by its ``__get__`` method. Calling that " "descriptor instance, recognized by its ``__get__`` method. Calling that "
"method returns ``10``." "method returns ``10``."
msgstr "" msgstr ""
"Dans la recherche d'attribut ``a.x``, l'opérateur « point » trouve ``'x': "
"5`` dans le dictionnaire de classe. Dans la recherche ``a.y``, l'opérateur "
 point » trouve une instance de descripteur, reconnue par sa méthode "
"``__get__``. L'appel de cette méthode renvoie ``10``."
#: howto/descriptor.rst:78 #: howto/descriptor.rst:78
msgid "" msgid ""
"Note that the value ``10`` is not stored in either the class dictionary or " "Note that the value ``10`` is not stored in either the class dictionary or "
"the instance dictionary. Instead, the value ``10`` is computed on demand." "the instance dictionary. Instead, the value ``10`` is computed on demand."
msgstr "" msgstr ""
"Notez que la valeur ``10`` n'est stockée ni dans le dictionnaire de classe "
"ni dans le dictionnaire d'instance. Non, la valeur ``10`` est calculée à la "
"demande."
#: howto/descriptor.rst:81 #: howto/descriptor.rst:81
msgid "" msgid ""
"This example shows how a simple descriptor works, but it isn't very useful. " "This example shows how a simple descriptor works, but it isn't very useful. "
"For retrieving constants, normal attribute lookup would be better." "For retrieving constants, normal attribute lookup would be better."
msgstr "" msgstr ""
"Cet exemple montre comment fonctionne un descripteur simple, mais il n'est "
"pas très utile. Pour récupérer des constantes, une recherche d'attribut "
"normale est préférable."
#: howto/descriptor.rst:84 #: howto/descriptor.rst:84
msgid "" msgid ""
"In the next section, we'll create something more useful, a dynamic lookup." "In the next section, we'll create something more useful, a dynamic lookup."
msgstr "" msgstr ""
"Dans la section suivante, nous allons créer quelque chose de plus utile, une "
"recherche dynamique."
#: howto/descriptor.rst:88 #: howto/descriptor.rst:88
msgid "Dynamic lookups" msgid "Dynamic lookups"
msgstr "" msgstr "Recherches dynamiques"
#: howto/descriptor.rst:90 #: howto/descriptor.rst:90
msgid "" msgid ""
"Interesting descriptors typically run computations instead of returning " "Interesting descriptors typically run computations instead of returning "
"constants:" "constants:"
msgstr "" msgstr ""
"Les descripteurs intéressants exécutent généralement des calculs au lieu de "
"renvoyer des constantes :"
#: howto/descriptor.rst:109 #: howto/descriptor.rst:109
msgid "" msgid ""
"An interactive session shows that the lookup is dynamic — it computes " "An interactive session shows that the lookup is dynamic — it computes "
"different, updated answers each time::" "different, updated answers each time::"
msgstr "" msgstr ""
"Une session interactive montre que la recherche est dynamique — elle calcule "
"des réponses différentes, mises à jour à chaque fois ::"
#: howto/descriptor.rst:122 #: howto/descriptor.rst:122
msgid "" msgid ""
@ -158,10 +197,16 @@ msgid ""
"that lets the :meth:`__get__` method learn the target directory. The " "that lets the :meth:`__get__` method learn the target directory. The "
"*objtype* parameter is the class *Directory*." "*objtype* parameter is the class *Directory*."
msgstr "" msgstr ""
"En plus de montrer comment les descripteurs peuvent exécuter des calculs, "
"cet exemple révèle également le but des paramètres de :meth:`__get__`. Le "
"paramètre *self* est *size*, une instance de *DirectorySize*. Le paramètre "
"*obj* est soit *g* soit *s*, une instance de *Directory*. C'est le paramètre "
"*obj* qui permet à la méthode :meth:`__get__` de connaître le répertoire "
"cible. Le paramètre *objtype* est la classe *Directory*."
#: howto/descriptor.rst:131 #: howto/descriptor.rst:131
msgid "Managed attributes" msgid "Managed attributes"
msgstr "" msgstr "Attributs gérés"
#: howto/descriptor.rst:133 #: howto/descriptor.rst:133
msgid "" msgid ""
@ -171,6 +216,12 @@ msgid ""
"dictionary. The descriptor's :meth:`__get__` and :meth:`__set__` methods " "dictionary. The descriptor's :meth:`__get__` and :meth:`__set__` methods "
"are triggered when the public attribute is accessed." "are triggered when the public attribute is accessed."
msgstr "" msgstr ""
"Une utilisation courante des descripteurs est la gestion de l'accès aux "
"données d'instances. Le descripteur est affecté à un attribut public dans le "
"dictionnaire de classe tandis que les données réelles sont stockées en tant "
"qu'attribut privé dans le dictionnaire d'instance. Les méthodes :meth:"
"`__get__` et :meth:`__set__` du descripteur sont déclenchées lors de l'accès "
"à l'attribut public."
#: howto/descriptor.rst:139 #: howto/descriptor.rst:139
msgid "" msgid ""
@ -178,12 +229,18 @@ msgid ""
"private attribute. When the public attribute is accessed, the descriptor " "private attribute. When the public attribute is accessed, the descriptor "
"logs the lookup or update:" "logs the lookup or update:"
msgstr "" msgstr ""
"Dans l'exemple qui suit, *age* est l'attribut public et *_age* est "
"l'attribut privé. Lors de l'accès à l'attribut public, le descripteur "
"journalise la recherche ou la mise à jour :"
#: howto/descriptor.rst:172 #: howto/descriptor.rst:172
msgid "" msgid ""
"An interactive session shows that all access to the managed attribute *age* " "An interactive session shows that all access to the managed attribute *age* "
"is logged, but that the regular attribute *name* is not logged:" "is logged, but that the regular attribute *name* is not logged:"
msgstr "" msgstr ""
"Une session interactive montre que tous les accès à l'attribut géré *age* "
"sont consignés, mais que rien n'est journalisé pour l'attribut normal "
"*name* :"
#: howto/descriptor.rst:206 #: howto/descriptor.rst:206
msgid "" msgid ""
@ -192,16 +249,22 @@ msgid ""
"only have one logged attribute and that its name is unchangeable. In the " "only have one logged attribute and that its name is unchangeable. In the "
"next example, we'll fix that problem." "next example, we'll fix that problem."
msgstr "" msgstr ""
"Un problème majeur avec cet exemple est que le nom privé *_age* est écrit en "
"dur dans la classe *LoggedAgeAccess*. Cela signifie que chaque instance ne "
"peut avoir qu'un seul attribut journalisé et que son nom est immuable. Dans "
"l'exemple suivant, nous allons résoudre ce problème."
#: howto/descriptor.rst:213 #: howto/descriptor.rst:213
msgid "Customized names" msgid "Customized names"
msgstr "" msgstr "Noms personnalisés"
#: howto/descriptor.rst:215 #: howto/descriptor.rst:215
msgid "" msgid ""
"When a class uses descriptors, it can inform each descriptor about which " "When a class uses descriptors, it can inform each descriptor about which "
"variable name was used." "variable name was used."
msgstr "" msgstr ""
"Lorsqu'une classe utilise des descripteurs, elle peut informer chaque "
"descripteur du nom de variable utilisé."
#: howto/descriptor.rst:218 #: howto/descriptor.rst:218
msgid "" msgid ""
@ -211,6 +274,11 @@ msgid ""
"can be recorded, giving each descriptor its own *public_name* and " "can be recorded, giving each descriptor its own *public_name* and "
"*private_name*:" "*private_name*:"
msgstr "" msgstr ""
"Dans cet exemple, la classe :class:`Person` a deux instances de "
"descripteurs, *name* et *age*. Lorsque la classe :class:`Person` est "
"définie, :meth:`__set_name__` est appelée automatiquement dans "
"*LoggedAccess* afin que les noms de champs puissent être enregistrés, en "
"donnant à chaque descripteur ses propres *public_name* et *private_name* :"
#: howto/descriptor.rst:256 #: howto/descriptor.rst:256
msgid "" msgid ""
@ -218,24 +286,30 @@ msgid ""
"`__set_name__` so that the field names would be recorded. Here we call :" "`__set_name__` so that the field names would be recorded. Here we call :"
"func:`vars` to look up the descriptor without triggering it:" "func:`vars` to look up the descriptor without triggering it:"
msgstr "" msgstr ""
"Une session interactive montre que la classe :class:`Person` a appelé :meth:"
"`__set_name__` pour que les noms des champs soient enregistrés. Ici, nous "
"appelons :func:`vars` pour rechercher le descripteur sans le déclencher :"
#: howto/descriptor.rst:267 #: howto/descriptor.rst:267
msgid "The new class now logs access to both *name* and *age*:" msgid "The new class now logs access to both *name* and *age*:"
msgstr "" msgstr ""
"La nouvelle classe enregistre désormais l'accès à la fois à *name* et *age* :"
#: howto/descriptor.rst:284 #: howto/descriptor.rst:284
msgid "The two *Person* instances contain only the private names:" msgid "The two *Person* instances contain only the private names:"
msgstr "" msgstr "Les deux instances de *Person* ne contiennent que les noms privés :"
#: howto/descriptor.rst:295 #: howto/descriptor.rst:295
msgid "Closing thoughts" msgid "Closing thoughts"
msgstr "" msgstr "Réflexions finales"
#: howto/descriptor.rst:297 #: howto/descriptor.rst:297
msgid "" msgid ""
"A :term:`descriptor` is what we call any object that defines :meth:" "A :term:`descriptor` is what we call any object that defines :meth:"
"`__get__`, :meth:`__set__`, or :meth:`__delete__`." "`__get__`, :meth:`__set__`, or :meth:`__delete__`."
msgstr "" msgstr ""
"Nous appelons :term:`descripteur <descriptor>` tout objet qui définit :meth:"
"`__get__`, :meth:`__set__` ou :meth:`__delete__`."
#: howto/descriptor.rst:300 #: howto/descriptor.rst:300
msgid "" msgid ""
@ -244,6 +318,11 @@ msgid ""
"it was created or the name of class variable it was assigned to. (This " "it was created or the name of class variable it was assigned to. (This "
"method, if present, is called even if the class is not a descriptor.)" "method, if present, is called even if the class is not a descriptor.)"
msgstr "" msgstr ""
"Facultativement, les descripteurs peuvent avoir une méthode :meth:"
"`__set_name__`. Elle n'est utile que dans les cas où un descripteur doit "
"connaître soit la classe dans laquelle il a été créé, soit le nom de la "
"variable de classe à laquelle il a été affecté (cette méthode, si elle est "
"présente, est appelée même si la classe n'est pas un descripteur)."
#: howto/descriptor.rst:305 #: howto/descriptor.rst:305
msgid "" msgid ""
@ -251,18 +330,28 @@ msgid ""
"descriptor is accessed indirectly with ``vars(some_class)" "descriptor is accessed indirectly with ``vars(some_class)"
"[descriptor_name]``, the descriptor instance is returned without invoking it." "[descriptor_name]``, the descriptor instance is returned without invoking it."
msgstr "" msgstr ""
"Les descripteurs sont invoqués par l'opérateur « point » lors de la "
"recherche d'attribut. Si on accède indirectement au descripteur avec "
"``vars(some_class)[descriptor_name]``, l'instance du descripteur est "
"renvoyée sans l'invoquer."
#: howto/descriptor.rst:309 #: howto/descriptor.rst:309
msgid "" msgid ""
"Descriptors only work when used as class variables. When put in instances, " "Descriptors only work when used as class variables. When put in instances, "
"they have no effect." "they have no effect."
msgstr "" msgstr ""
"Les descripteurs ne fonctionnent que lorsqu'ils sont utilisés comme "
"variables de classe. Lorsqu'ils sont placés dans des instances, ils n'ont "
"aucun effet."
#: howto/descriptor.rst:312 #: howto/descriptor.rst:312
msgid "" msgid ""
"The main motivation for descriptors is to provide a hook allowing objects " "The main motivation for descriptors is to provide a hook allowing objects "
"stored in class variables to control what happens during attribute lookup." "stored in class variables to control what happens during attribute lookup."
msgstr "" msgstr ""
"La principale raison d'être des descripteurs est de fournir un point "
"d'entrée permettant aux objets stockés dans des variables de classe de "
"contrôler ce qui se passe lors de la recherche d'attributs."
#: howto/descriptor.rst:315 #: howto/descriptor.rst:315
msgid "" msgid ""
@ -270,6 +359,9 @@ msgid ""
"Descriptors invert that relationship and allow the data being looked-up to " "Descriptors invert that relationship and allow the data being looked-up to "
"have a say in the matter." "have a say in the matter."
msgstr "" msgstr ""
"Traditionnellement, la classe appelante contrôle ce qui se passe pendant la "
"recherche. Les descripteurs inversent cette relation et permettent aux "
"données recherchées d'avoir leur mot à dire."
#: howto/descriptor.rst:319 #: howto/descriptor.rst:319
msgid "" msgid ""
@ -278,20 +370,26 @@ msgid ""
"`staticmethod`, :func:`property`, and :func:`functools.cached_property` are " "`staticmethod`, :func:`property`, and :func:`functools.cached_property` are "
"all implemented as descriptors." "all implemented as descriptors."
msgstr "" msgstr ""
"Les descripteurs sont utilisés partout dans le langage. C'est ainsi que les "
"fonctions se transforment en méthodes liées. Les outils courants tels que :"
"func:`classmethod`, :func:`staticmethod`, :func:`property` et :func:"
"`functools.cached_property` sont tous implémentés en tant que descripteurs."
#: howto/descriptor.rst:326 #: howto/descriptor.rst:326
msgid "Complete Practical Example" msgid "Complete Practical Example"
msgstr "" msgstr "Exemple complet pratique"
#: howto/descriptor.rst:328 #: howto/descriptor.rst:328
msgid "" msgid ""
"In this example, we create a practical and powerful tool for locating " "In this example, we create a practical and powerful tool for locating "
"notoriously hard to find data corruption bugs." "notoriously hard to find data corruption bugs."
msgstr "" msgstr ""
"Dans cet exemple, nous créons un outil pratique et puissant pour localiser "
"les bogues de corruption de données notoirement difficiles à trouver."
#: howto/descriptor.rst:333 #: howto/descriptor.rst:333
msgid "Validator class" msgid "Validator class"
msgstr "" msgstr "Classe « validateur »"
#: howto/descriptor.rst:335 #: howto/descriptor.rst:335
msgid "" msgid ""
@ -300,31 +398,43 @@ msgid ""
"restrictions. If those restrictions aren't met, it raises an exception to " "restrictions. If those restrictions aren't met, it raises an exception to "
"prevent data corruption at its source." "prevent data corruption at its source."
msgstr "" msgstr ""
"Un validateur est un descripteur pour l'accès aux attributs gérés. Avant de "
"stocker des données, il vérifie que la nouvelle valeur respecte différentes "
"restrictions de type et de plage. Si ces restrictions ne sont pas "
"respectées, il lève une exception pour empêcher la corruption des données à "
"la source."
#: howto/descriptor.rst:340 #: howto/descriptor.rst:340
msgid "" msgid ""
"This :class:`Validator` class is both an :term:`abstract base class` and a " "This :class:`Validator` class is both an :term:`abstract base class` and a "
"managed attribute descriptor:" "managed attribute descriptor:"
msgstr "" msgstr ""
"Cette classe :class:`Validator` est à la fois une :term:`classe mère "
"abstraite <abstract base class>` et un descripteur d'attributs gérés :"
#: howto/descriptor.rst:363 #: howto/descriptor.rst:363
msgid "" msgid ""
"Custom validators need to inherit from :class:`Validator` and must supply a :" "Custom validators need to inherit from :class:`Validator` and must supply a :"
"meth:`validate` method to test various restrictions as needed." "meth:`validate` method to test various restrictions as needed."
msgstr "" msgstr ""
"Les validateurs personnalisés doivent hériter de :class:`Validator` et "
"doivent fournir une méthode :meth:`validate` pour tester diverses "
"restrictions adaptées aux besoins."
#: howto/descriptor.rst:368 #: howto/descriptor.rst:368
msgid "Custom validators" msgid "Custom validators"
msgstr "" msgstr "Validateurs personnalisés"
#: howto/descriptor.rst:370 #: howto/descriptor.rst:370
msgid "Here are three practical data validation utilities:" msgid "Here are three practical data validation utilities:"
msgstr "" msgstr "Voici trois utilitaires concrets de validation de données :"
#: howto/descriptor.rst:372 #: howto/descriptor.rst:372
msgid "" msgid ""
":class:`OneOf` verifies that a value is one of a restricted set of options." ":class:`OneOf` verifies that a value is one of a restricted set of options."
msgstr "" msgstr ""
":class:`OneOf` vérifie qu'une valeur fait partie d'un ensemble limité de "
"valeurs ;"
#: howto/descriptor.rst:374 #: howto/descriptor.rst:374
msgid "" msgid ""
@ -332,6 +442,9 @@ msgid ""
"`float`. Optionally, it verifies that a value is between a given minimum or " "`float`. Optionally, it verifies that a value is between a given minimum or "
"maximum." "maximum."
msgstr "" msgstr ""
":class:`Number` vérifie qu'une valeur est soit un :class:`int` soit un :"
"class:`float`. Facultativement, il vérifie qu'une valeur se situe entre un "
"minimum ou un maximum donnés ;"
#: howto/descriptor.rst:378 #: howto/descriptor.rst:378
msgid "" msgid ""
@ -340,28 +453,36 @@ msgid ""
"`predicate <https://en.wikipedia.org/wiki/Predicate_(mathematical_logic)>`_ " "`predicate <https://en.wikipedia.org/wiki/Predicate_(mathematical_logic)>`_ "
"as well." "as well."
msgstr "" msgstr ""
":class:`String` vérifie qu'une valeur est une :class:`chaîne de caractères "
"<str>`. Éventuellement, il valide les longueurs minimale ou maximale "
"données. Il peut également valider un `prédicat <https://fr.wikipedia.org/"
"wiki/Pr%C3%A9dicat_(logique_math%C3%A9matique)>`_ défini par l'utilisateur."
#: howto/descriptor.rst:437 #: howto/descriptor.rst:437
msgid "Practical application" msgid "Practical application"
msgstr "" msgstr "Application pratique"
#: howto/descriptor.rst:439 #: howto/descriptor.rst:439
msgid "Here's how the data validators can be used in a real class:" msgid "Here's how the data validators can be used in a real class:"
msgstr "" msgstr ""
"Voici comment les validateurs de données peuvent être utilisés par une "
"classe réelle :"
#: howto/descriptor.rst:454 #: howto/descriptor.rst:454
msgid "The descriptors prevent invalid instances from being created:" msgid "The descriptors prevent invalid instances from being created:"
msgstr "" msgstr "Les descripteurs empêchent la création d'instances non valides :"
#: howto/descriptor.rst:481 #: howto/descriptor.rst:481
msgid "Technical Tutorial" msgid "Technical Tutorial"
msgstr "" msgstr "Tutoriel technique"
#: howto/descriptor.rst:483 #: howto/descriptor.rst:483
msgid "" msgid ""
"What follows is a more technical tutorial for the mechanics and details of " "What follows is a more technical tutorial for the mechanics and details of "
"how descriptors work." "how descriptors work."
msgstr "" msgstr ""
"Ce qui suit est un tutoriel plus technique relatif aux mécanismes et détails "
"de fonctionnement des descripteurs."
#: howto/descriptor.rst:488 #: howto/descriptor.rst:488
msgid "Abstract" msgid "Abstract"
@ -372,6 +493,9 @@ msgid ""
"Defines descriptors, summarizes the protocol, and shows how descriptors are " "Defines descriptors, summarizes the protocol, and shows how descriptors are "
"called. Provides an example showing how object relational mappings work." "called. Provides an example showing how object relational mappings work."
msgstr "" msgstr ""
"Ce tutoriel définit des descripteurs, résume le protocole et montre comment "
"les descripteurs sont appelés. Il fournit un exemple montrant comment "
"fonctionnent les correspondances relationnelles entre objets."
#: howto/descriptor.rst:493 #: howto/descriptor.rst:493
#, fuzzy #, fuzzy
@ -512,7 +636,7 @@ msgstr ""
#: howto/descriptor.rst:552 #: howto/descriptor.rst:552
msgid "Overview of descriptor invocation" msgid "Overview of descriptor invocation"
msgstr "" msgstr "Présentation de l'appel de descripteur"
#: howto/descriptor.rst:554 #: howto/descriptor.rst:554
#, fuzzy #, fuzzy
@ -528,6 +652,8 @@ msgid ""
"But it is more common for a descriptor to be invoked automatically from " "But it is more common for a descriptor to be invoked automatically from "
"attribute access." "attribute access."
msgstr "" msgstr ""
"Mais il est plus courant qu'un descripteur soit invoqué automatiquement à "
"partir d'un accès à un attribut."
#: howto/descriptor.rst:560 #: howto/descriptor.rst:560
msgid "" msgid ""
@ -536,6 +662,10 @@ msgid ""
"instance ``__dict__``, its :meth:`__get__` method is invoked according to " "instance ``__dict__``, its :meth:`__get__` method is invoked according to "
"the precedence rules listed below." "the precedence rules listed below."
msgstr "" msgstr ""
"L'expression ``obj.x`` recherche l'attribut ``x`` dans les espaces de noms "
"pour ``obj``. Si la recherche trouve un descripteur en dehors de l'instance "
"``__dict__``, sa méthode :meth:`__get__` est appelée selon les règles de "
"priorité listées ci-dessous."
#: howto/descriptor.rst:565 #: howto/descriptor.rst:565
#, fuzzy #, fuzzy
@ -548,7 +678,7 @@ msgstr ""
#: howto/descriptor.rst:570 #: howto/descriptor.rst:570
msgid "Invocation from an instance" msgid "Invocation from an instance"
msgstr "" msgstr "Appel depuis une instance"
#: howto/descriptor.rst:572 #: howto/descriptor.rst:572
msgid "" msgid ""
@ -557,18 +687,26 @@ msgid ""
"descriptors, then class variables, and lastly :meth:`__getattr__` if it is " "descriptors, then class variables, and lastly :meth:`__getattr__` if it is "
"provided." "provided."
msgstr "" msgstr ""
"La recherche d'instance consiste à parcourir la liste d'espaces de noms en "
"donnant aux descripteurs de données la priorité la plus élevée, suivis des "
"variables d'instance, puis des descripteurs hors-données, puis des variables "
"de classe, et enfin :meth:`__getattr__` s'il est fourni."
#: howto/descriptor.rst:577 #: howto/descriptor.rst:577
msgid "" msgid ""
"If a descriptor is found for ``a.x``, then it is invoked with: ``desc." "If a descriptor is found for ``a.x``, then it is invoked with: ``desc."
"__get__(a, type(a))``." "__get__(a, type(a))``."
msgstr "" msgstr ""
"Si un descripteur est trouvé pour ``a.x``, alors il est appelé par ``desc."
"__get__(a, type(a))``."
#: howto/descriptor.rst:580 #: howto/descriptor.rst:580
msgid "" msgid ""
"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here " "The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here "
"is a pure Python equivalent:" "is a pure Python equivalent:"
msgstr "" msgstr ""
"La logique d'une recherche « après un point » se trouve dans :meth:`object."
"__getattribute__`. Voici un équivalent en Python pur :"
#: howto/descriptor.rst:719 #: howto/descriptor.rst:719
msgid "" msgid ""
@ -576,6 +714,10 @@ msgid ""
"code. That is why calling :meth:`__getattribute__` directly or with " "code. That is why calling :meth:`__getattribute__` directly or with "
"``super().__getattribute__`` will bypass :meth:`__getattr__` entirely." "``super().__getattribute__`` will bypass :meth:`__getattr__` entirely."
msgstr "" msgstr ""
"Notez qu'il n'y a pas d'appel vers :meth:`__getattr__` dans le code de :meth:"
"`__getattribute__`. C'est pourquoi appeler :meth:`__getattribute__` "
"directement ou avec ``super().__getattribute__`` contourne entièrement :meth:"
"`__getattr__`."
#: howto/descriptor.rst:723 #: howto/descriptor.rst:723
msgid "" msgid ""
@ -584,6 +726,10 @@ msgid ""
"`__getattribute__` raises an :exc:`AttributeError`. Their logic is " "`__getattribute__` raises an :exc:`AttributeError`. Their logic is "
"encapsulated in a helper function:" "encapsulated in a helper function:"
msgstr "" msgstr ""
"Au lieu, c'est l'opérateur « point » et la fonction :func:`getattr` qui sont "
"responsables de l'appel de :meth:`__getattr__` chaque fois que :meth:"
"`__getattribute__` déclenche une :exc:`AttributeError`. Cette logique est "
"présentée encapsulée dans une fonction utilitaire :"
#: howto/descriptor.rst:773 #: howto/descriptor.rst:773
#, fuzzy #, fuzzy
@ -597,26 +743,36 @@ msgid ""
"__getattribute__` but the instance dictionary lookup is replaced by a search " "__getattribute__` but the instance dictionary lookup is replaced by a search "
"through the class's :term:`method resolution order`." "through the class's :term:`method resolution order`."
msgstr "" msgstr ""
"La logique pour une recherche « après un point » telle que ``A.x`` se trouve "
"dans :meth:`type.__getattribute__`. Les étapes sont similaires à celles de :"
"meth:`object.__getattribute__` mais la recherche dans le dictionnaire "
"d'instance est remplacée par une recherche suivant l':term:`ordre de "
"résolution des méthodes <method resolution order>` de la classe."
#: howto/descriptor.rst:780 #: howto/descriptor.rst:780
msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``." msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``."
msgstr "" msgstr ""
"Si un descripteur est trouvé, il est appelé par ``desc.__get__(None, A)``."
#: howto/descriptor.rst:782 #: howto/descriptor.rst:782
msgid "" msgid ""
"The full C implementation can be found in :c:func:`type_getattro()` and :c:" "The full C implementation can be found in :c:func:`type_getattro()` and :c:"
"func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`." "func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`."
msgstr "" msgstr ""
"L'implémentation C complète peut être trouvée dans :c:func:`type_getattro()` "
"et :c:func:`_PyType_Lookup()` dans :source:`Objects/typeobject.c`."
#: howto/descriptor.rst:787 #: howto/descriptor.rst:787
msgid "Invocation from super" msgid "Invocation from super"
msgstr "" msgstr "Appel depuis super"
#: howto/descriptor.rst:789 #: howto/descriptor.rst:789
msgid "" msgid ""
"The logic for super's dotted lookup is in the :meth:`__getattribute__` " "The logic for super's dotted lookup is in the :meth:`__getattribute__` "
"method for object returned by :class:`super()`." "method for object returned by :class:`super()`."
msgstr "" msgstr ""
"La logique de la recherche « après un point » de super se trouve dans la "
"méthode :meth:`__getattribute__` de l'objet renvoyé par :class:`super()`."
#: howto/descriptor.rst:792 #: howto/descriptor.rst:792
#, fuzzy #, fuzzy
@ -648,13 +804,15 @@ msgstr ""
#: howto/descriptor.rst:804 #: howto/descriptor.rst:804
msgid "Summary of invocation logic" msgid "Summary of invocation logic"
msgstr "" msgstr "Résumé de la logique d'appel"
#: howto/descriptor.rst:806 #: howto/descriptor.rst:806
msgid "" msgid ""
"The mechanism for descriptors is embedded in the :meth:`__getattribute__()` " "The mechanism for descriptors is embedded in the :meth:`__getattribute__()` "
"methods for :class:`object`, :class:`type`, and :func:`super`." "methods for :class:`object`, :class:`type`, and :func:`super`."
msgstr "" msgstr ""
"Le fonctionnement des descripteurs se trouve dans les méthodes :meth:"
"`__getattribute__()` de :class:`object`, :class:`type` et :func:`super`."
#: howto/descriptor.rst:809 #: howto/descriptor.rst:809
msgid "The important points to remember are:" msgid "The important points to remember are:"
@ -670,6 +828,8 @@ msgid ""
"Classes inherit this machinery from :class:`object`, :class:`type`, or :func:" "Classes inherit this machinery from :class:`object`, :class:`type`, or :func:"
"`super`." "`super`."
msgstr "" msgstr ""
"les classes héritent ce mécanisme de :class:`object`, :class:`type` ou :func:"
"`super` ;"
#: howto/descriptor.rst:816 #: howto/descriptor.rst:816
#, fuzzy #, fuzzy
@ -707,7 +867,7 @@ msgstr ""
#: howto/descriptor.rst:830 #: howto/descriptor.rst:830
msgid "Automatic name notification" msgid "Automatic name notification"
msgstr "" msgstr "Notification automatique des noms"
#: howto/descriptor.rst:832 #: howto/descriptor.rst:832
msgid "" msgid ""
@ -718,6 +878,13 @@ msgid ""
"with two arguments. The *owner* is the class where the descriptor is used, " "with two arguments. The *owner* is the class where the descriptor is used, "
"and the *name* is the class variable the descriptor was assigned to." "and the *name* is the class variable the descriptor was assigned to."
msgstr "" msgstr ""
"Il est parfois souhaitable qu'un descripteur sache à quel nom de variable de "
"classe il a été affecté. Lorsqu'une nouvelle classe est créée, la "
"métaclasse :class:`type` parcourt le dictionnaire de la nouvelle classe. Si "
"l'une des entrées est un descripteur et si elle définit :meth:"
"`__set_name__`, cette méthode est appelée avec deux arguments : *owner* "
"(propriétaire) est la classe où le descripteur est utilisé, et *name* est la "
"variable de classe à laquelle le descripteur a été assigné."
#: howto/descriptor.rst:839 #: howto/descriptor.rst:839
#, fuzzy #, fuzzy
@ -735,10 +902,14 @@ msgid ""
"place at the time of class creation. If descriptors are added to the class " "place at the time of class creation. If descriptors are added to the class "
"afterwards, :meth:`__set_name__` will need to be called manually." "afterwards, :meth:`__set_name__` will need to be called manually."
msgstr "" msgstr ""
"Comme la logique de mise à jour est dans :meth:`type.__new__`, les "
"notifications n'ont lieu qu'au moment de la création de la classe. Si des "
"descripteurs sont ajoutés à la classe par la suite, :meth:`__set_name__` "
"doit être appelée manuellement."
#: howto/descriptor.rst:848 #: howto/descriptor.rst:848
msgid "ORM example" msgid "ORM example"
msgstr "" msgstr "Exemple d'ORM"
#: howto/descriptor.rst:850 #: howto/descriptor.rst:850
msgid "" msgid ""
@ -753,6 +924,10 @@ msgid ""
"Python instances only hold keys to the database's tables. Descriptors take " "Python instances only hold keys to the database's tables. Descriptors take "
"care of lookups or updates:" "care of lookups or updates:"
msgstr "" msgstr ""
"L'idée essentielle est que les données sont stockées dans une base de "
"données externe. Les instances Python ne contiennent que les clés des tables "
"de la base de données. Les descripteurs s'occupent des recherches et des "
"mises à jour :"
#: howto/descriptor.rst:873 #: howto/descriptor.rst:873
msgid "" msgid ""
@ -760,20 +935,26 @@ msgid ""
"org/wiki/Database_model>`_ that describe the schema for each table in a " "org/wiki/Database_model>`_ that describe the schema for each table in a "
"database:" "database:"
msgstr "" msgstr ""
"Nous pouvons utiliser la classe :class:`Field` pour définir des `modèles "
"<https://en.wikipedia.org/wiki/Database_model>`_ qui décrivent le schéma de "
"chaque table d'une base de données :"
#: howto/descriptor.rst:898 #: howto/descriptor.rst:898
msgid "To use the models, first connect to the database::" msgid "To use the models, first connect to the database::"
msgstr "" msgstr ""
"Pour utiliser les modèles, connectons-nous d'abord à la base de données ::"
#: howto/descriptor.rst:903 #: howto/descriptor.rst:903
msgid "" msgid ""
"An interactive session shows how data is retrieved from the database and how " "An interactive session shows how data is retrieved from the database and how "
"it can be updated:" "it can be updated:"
msgstr "" msgstr ""
"Une session interactive montre comment les données sont extraites de la base "
"de données et comment elles peuvent être mises à jour :"
#: howto/descriptor.rst:948 #: howto/descriptor.rst:948
msgid "Pure Python Equivalents" msgid "Pure Python Equivalents"
msgstr "" msgstr "Équivalents en Python pur"
#: howto/descriptor.rst:950 #: howto/descriptor.rst:950
#, fuzzy #, fuzzy
@ -853,6 +1034,8 @@ msgid ""
"Either the built-in :func:`property` or our :func:`Property` equivalent " "Either the built-in :func:`property` or our :func:`Property` equivalent "
"would work in this example." "would work in this example."
msgstr "" msgstr ""
"Soit la :func:`property` native, soit notre équivalent :func:`Property` "
"fonctionnent dans cet exemple."
#: howto/descriptor.rst:1117 #: howto/descriptor.rst:1117
#, fuzzy #, fuzzy
@ -889,6 +1072,8 @@ msgid ""
"Methods can be created manually with :class:`types.MethodType` which is " "Methods can be created manually with :class:`types.MethodType` which is "
"roughly equivalent to:" "roughly equivalent to:"
msgstr "" msgstr ""
"Les méthodes peuvent être créées manuellement avec :class:`types."
"MethodType`, qui équivaut à peu près à :"
#: howto/descriptor.rst:1144 #: howto/descriptor.rst:1144
#, fuzzy #, fuzzy
@ -917,36 +1102,50 @@ msgstr ""
msgid "" msgid ""
"The function has a :term:`qualified name` attribute to support introspection:" "The function has a :term:`qualified name` attribute to support introspection:"
msgstr "" msgstr ""
"La fonction possède un attribut ``__qualname__`` (:term:`nom "
"qualifié<qualified name>`) pour prendre en charge l'introspection :"
#: howto/descriptor.rst:1176 #: howto/descriptor.rst:1176
msgid "" msgid ""
"Accessing the function through the class dictionary does not invoke :meth:" "Accessing the function through the class dictionary does not invoke :meth:"
"`__get__`. Instead, it just returns the underlying function object::" "`__get__`. Instead, it just returns the underlying function object::"
msgstr "" msgstr ""
"L'accès à la fonction *via* le dictionnaire de classe n'invoque pas :meth:"
"`__get__`. À la place, il renvoie simplement l'objet de fonction sous-"
"jacent ::"
#: howto/descriptor.rst:1182 #: howto/descriptor.rst:1182
msgid "" msgid ""
"Dotted access from a class calls :meth:`__get__` which just returns the " "Dotted access from a class calls :meth:`__get__` which just returns the "
"underlying function unchanged::" "underlying function unchanged::"
msgstr "" msgstr ""
"La recherche d'attribut depuis une classe appelle :meth:`__get__`, qui "
"renvoie simplement la fonction sous-jacente inchangée ::"
#: howto/descriptor.rst:1188 #: howto/descriptor.rst:1188
msgid "" msgid ""
"The interesting behavior occurs during dotted access from an instance. The " "The interesting behavior occurs during dotted access from an instance. The "
"dotted lookup calls :meth:`__get__` which returns a bound method object::" "dotted lookup calls :meth:`__get__` which returns a bound method object::"
msgstr "" msgstr ""
"Le comportement intéressant se produit lors d'une recherche d'attribut à "
"partir d'une instance. La recherche d'attribut appelle :meth:`__get__` qui "
"renvoie un objet « méthode liée » ::"
#: howto/descriptor.rst:1195 #: howto/descriptor.rst:1195
msgid "" msgid ""
"Internally, the bound method stores the underlying function and the bound " "Internally, the bound method stores the underlying function and the bound "
"instance::" "instance::"
msgstr "" msgstr ""
"En interne, la méthode liée stocke la fonction sous-jacente et l'instance "
"liée ::"
#: howto/descriptor.rst:1204 #: howto/descriptor.rst:1204
msgid "" msgid ""
"If you have ever wondered where *self* comes from in regular methods or " "If you have ever wondered where *self* comes from in regular methods or "
"where *cls* comes from in class methods, this is it!" "where *cls* comes from in class methods, this is it!"
msgstr "" msgstr ""
"Si vous vous êtes déjà demandé d'où vient *self* dans les méthodes "
"ordinaires ou d'où vient *cls* dans les méthodes de classe, c'est ça !"
#: howto/descriptor.rst:1209 #: howto/descriptor.rst:1209
#, fuzzy #, fuzzy
@ -1147,7 +1346,7 @@ msgstr ""
#: howto/descriptor.rst:1426 #: howto/descriptor.rst:1426
msgid "Member objects and __slots__" msgid "Member objects and __slots__"
msgstr "" msgstr "Objets membres et *__slots__*"
#: howto/descriptor.rst:1428 #: howto/descriptor.rst:1428
msgid "" msgid ""
@ -1155,18 +1354,26 @@ msgid ""
"fixed-length array of slot values. From a user point of view that has " "fixed-length array of slot values. From a user point of view that has "
"several effects:" "several effects:"
msgstr "" msgstr ""
"Lorsqu'une classe définit ``__slots__``, Python remplace le dictionnaire "
"d'instance par un tableau de longueur fixe de créneaux prédéfinis. D'un "
"point de vue utilisateur, cela :"
#: howto/descriptor.rst:1432 #: howto/descriptor.rst:1432
msgid "" msgid ""
"1. Provides immediate detection of bugs due to misspelled attribute " "1. Provides immediate detection of bugs due to misspelled attribute "
"assignments. Only attribute names specified in ``__slots__`` are allowed:" "assignments. Only attribute names specified in ``__slots__`` are allowed:"
msgstr "" msgstr ""
"1/ permet une détection immédiate des bogues dus à des affectations "
"d'attributs mal orthographiés. Seuls les noms d'attribut spécifiés dans "
"``__slots__`` sont autorisés :"
#: howto/descriptor.rst:1448 #: howto/descriptor.rst:1448
msgid "" msgid ""
"2. Helps create immutable objects where descriptors manage access to private " "2. Helps create immutable objects where descriptors manage access to private "
"attributes stored in ``__slots__``:" "attributes stored in ``__slots__``:"
msgstr "" msgstr ""
"2/ aide à créer des objets immuables où les descripteurs gèrent l'accès aux "
"attributs privés stockés dans ``__slots__`` :"
#: howto/descriptor.rst:1483 #: howto/descriptor.rst:1483
msgid "" msgid ""
@ -1175,18 +1382,28 @@ msgid ""
"design pattern <https://en.wikipedia.org/wiki/Flyweight_pattern>`_ likely " "design pattern <https://en.wikipedia.org/wiki/Flyweight_pattern>`_ likely "
"only matters when a large number of instances are going to be created." "only matters when a large number of instances are going to be created."
msgstr "" msgstr ""
"3/ économise de la mémoire. Sur une version Linux 64 bits, une instance avec "
"deux attributs prend 48 octets avec ``__slots__`` et 152 octets sans. Ce "
"patron de conception `poids mouche <https://fr.wikipedia.org/wiki/Poids-"
"mouche_(patron_de_conception)>`_ n'a probablement d'importance que si un "
"grand nombre d'instances doivent être créées ;"
#: howto/descriptor.rst:1488 #: howto/descriptor.rst:1488
msgid "" msgid ""
"4. Improves speed. Reading instance variables is 35% faster with " "4. Improves speed. Reading instance variables is 35% faster with "
"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)." "``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)."
msgstr "" msgstr ""
"4/ améliore la vitesse. La lecture des variables d'instance est 35 % plus "
"rapide avec ``__slots__`` (mesure effectuée avec Python 3.10 sur un "
"processeur Apple M1) ;"
#: howto/descriptor.rst:1491 #: howto/descriptor.rst:1491
msgid "" msgid ""
"5. Blocks tools like :func:`functools.cached_property` which require an " "5. Blocks tools like :func:`functools.cached_property` which require an "
"instance dictionary to function correctly:" "instance dictionary to function correctly:"
msgstr "" msgstr ""
"5/ bloque les outils comme :func:`functools.cached_property` qui nécessitent "
"un dictionnaire d'instance pour fonctionner correctement :"
#: howto/descriptor.rst:1513 #: howto/descriptor.rst:1513
msgid "" msgid ""
@ -1197,12 +1414,21 @@ msgid ""
"``_slotvalues`` list. Reads and writes to that private structure are " "``_slotvalues`` list. Reads and writes to that private structure are "
"managed by member descriptors:" "managed by member descriptors:"
msgstr "" msgstr ""
"Il n'est pas possible de créer une version Python pure exacte de "
"``__slots__`` car il faut un accès direct aux structures C et un contrôle "
"sur l'allocation de la mémoire des objets. Cependant, nous pouvons "
"construire une simulation presque fidèle où la structure C réelle pour les "
"*slots* est émulée par une liste privée ``_slotvalues``. Les lectures et "
"écritures dans cette structure privée sont gérées par des descripteurs de "
"membres :"
#: howto/descriptor.rst:1558 #: howto/descriptor.rst:1558
msgid "" msgid ""
"The :meth:`type.__new__` method takes care of adding member objects to class " "The :meth:`type.__new__` method takes care of adding member objects to class "
"variables:" "variables:"
msgstr "" msgstr ""
"La méthode :meth:`type.__new__` s'occupe d'ajouter des objets membres aux "
"variables de classe :"
#: howto/descriptor.rst:1574 #: howto/descriptor.rst:1574
msgid "" msgid ""
@ -1210,27 +1436,37 @@ msgid ""
"slots instead of an instance dictionary. Here is a rough simulation in pure " "slots instead of an instance dictionary. Here is a rough simulation in pure "
"Python:" "Python:"
msgstr "" msgstr ""
"La méthode :meth:`object.__new__` s'occupe de créer des instances qui ont "
"des *slots* au lieu d'un dictionnaire d'instances. Voici une simulation "
"approximative en Python pur :"
#: howto/descriptor.rst:1609 #: howto/descriptor.rst:1609
msgid "" msgid ""
"To use the simulation in a real class, just inherit from :class:`Object` and " "To use the simulation in a real class, just inherit from :class:`Object` and "
"set the :term:`metaclass` to :class:`Type`:" "set the :term:`metaclass` to :class:`Type`:"
msgstr "" msgstr ""
"Pour utiliser la simulation dans une classe réelle, héritez simplement de :"
"class:`Object` et définissez la :term:`métaclasse <metaclass>` à :class:"
"`Type` :"
#: howto/descriptor.rst:1623 #: howto/descriptor.rst:1623
msgid "" msgid ""
"At this point, the metaclass has loaded member objects for *x* and *y*::" "At this point, the metaclass has loaded member objects for *x* and *y*::"
msgstr "" msgstr ""
"À ce stade, la métaclasse a chargé des objets membres pour *x* et *y* ::"
#: howto/descriptor.rst:1644 #: howto/descriptor.rst:1644
msgid "" msgid ""
"When instances are created, they have a ``slot_values`` list where the " "When instances are created, they have a ``slot_values`` list where the "
"attributes are stored:" "attributes are stored:"
msgstr "" msgstr ""
"Lorsque les instances sont créées, elles ont une liste ``slot_values`` où "
"les attributs sont stockés :"
#: howto/descriptor.rst:1656 #: howto/descriptor.rst:1656
msgid "Misspelled or unassigned attributes will raise an exception:" msgid "Misspelled or unassigned attributes will raise an exception:"
msgstr "" msgstr ""
"Les attributs mal orthographiés ou non attribués lèvent une exception :"
#~ msgid "" #~ msgid ""
#~ "Defines descriptors, summarizes the protocol, and shows how descriptors " #~ "Defines descriptors, summarizes the protocol, and shows how descriptors "

View File

@ -202,10 +202,16 @@ msgid ""
"the directory exists and that you have the permissions to create and update " "the directory exists and that you have the permissions to create and update "
"files in it." "files in it."
msgstr "" msgstr ""
"Notez que le choix du nom de fichier journal ``/tmp/myapp.log`` ci-dessus "
"implique l'utilisation d'un emplacement standard pour les fichiers "
"temporaires sur les systèmes POSIX. Sous Windows, vous devrez peut-être "
"choisir un nom de répertoire différent pour le journal assurez-vous "
"simplement que le répertoire existe et que vous disposez des autorisations "
"nécessaires pour créer et mettre à jour des fichiers dans celui-ci."
#: howto/logging-cookbook.rst:282 #: howto/logging-cookbook.rst:282
msgid "Custom handling of levels" msgid "Custom handling of levels"
msgstr "" msgstr "Personnalisation du niveau de journalisation"
#: howto/logging-cookbook.rst:284 #: howto/logging-cookbook.rst:284
msgid "" msgid ""
@ -214,22 +220,33 @@ msgid ""
"get processed by a handler. To do this, you need to use filters. Let's look " "get processed by a handler. To do this, you need to use filters. Let's look "
"at a scenario where you want to arrange things as follows:" "at a scenario where you want to arrange things as follows:"
msgstr "" msgstr ""
"Il peut arriver que vous souhaitiez que vos gestionnaires journalisent "
"légèrement différemment de la gestion standard des niveaux, où tous les "
"niveaux au-dessus d'un seuil sont traités par un gestionnaire. Pour ce "
"faire, vous devez utiliser des filtres. Examinons un scénario dans lequel "
"vous souhaitez organiser les choses comme suit :"
#: howto/logging-cookbook.rst:289 #: howto/logging-cookbook.rst:289
msgid "Send messages of severity ``INFO`` and ``WARNING`` to ``sys.stdout``" msgid "Send messages of severity ``INFO`` and ``WARNING`` to ``sys.stdout``"
msgstr "" msgstr ""
"envoyer les messages de niveau ``INFO`` et ``WARNING`` à ``sys.stdout`` ;"
#: howto/logging-cookbook.rst:290 #: howto/logging-cookbook.rst:290
msgid "Send messages of severity ``ERROR`` and above to ``sys.stderr``" msgid "Send messages of severity ``ERROR`` and above to ``sys.stderr``"
msgstr "" msgstr ""
"envoyer les messages de niveau ``ERROR`` et au-dessus à ``sys.stderr`` ;"
#: howto/logging-cookbook.rst:291 #: howto/logging-cookbook.rst:291
msgid "Send messages of severity ``DEBUG`` and above to file ``app.log``" msgid "Send messages of severity ``DEBUG`` and above to file ``app.log``"
msgstr "" msgstr ""
"envoyer les messages de niveau ``DEBUG`` et au-dessus vers le fichier ``app."
"log``."
#: howto/logging-cookbook.rst:293 #: howto/logging-cookbook.rst:293
msgid "Suppose you configure logging with the following JSON:" msgid "Suppose you configure logging with the following JSON:"
msgstr "" msgstr ""
"Supposons que vous configurez la journalisation avec le contenu au format "
"JSON suivant :"
#: howto/logging-cookbook.rst:335 #: howto/logging-cookbook.rst:335
msgid "" msgid ""
@ -239,16 +256,26 @@ msgid ""
"those messages and add it to the relevant handler. This can be configured by " "those messages and add it to the relevant handler. This can be configured by "
"adding a ``filters`` section parallel to ``formatters`` and ``handlers``:" "adding a ``filters`` section parallel to ``formatters`` and ``handlers``:"
msgstr "" msgstr ""
"Cette configuration fait *presque* ce que nous voulons, sauf que ``sys."
"stdout`` affiche les messages de gravité ``ERROR`` et supérieurs ainsi que "
"les messages ``INFO`` et ``WARNING``. Pour éviter cela, nous pouvons "
"configurer un filtre qui exclut ces messages et l'ajouter au gestionnaire "
"approprié. Effectuons la configuration en ajoutant une section ``filters`` "
"parallèle à ``formatters`` et ``handlers`` :"
#: howto/logging-cookbook.rst:350 #: howto/logging-cookbook.rst:350
msgid "and changing the section on the ``stdout`` handler to add it:" msgid "and changing the section on the ``stdout`` handler to add it:"
msgstr "" msgstr ""
"et en changeant la section du gestionnaire ``stdout`` pour ajouter le "
"filtre :"
#: howto/logging-cookbook.rst:362 #: howto/logging-cookbook.rst:362
msgid "" msgid ""
"A filter is just a function, so we can define the ``filter_maker`` (a " "A filter is just a function, so we can define the ``filter_maker`` (a "
"factory function) as follows:" "factory function) as follows:"
msgstr "" msgstr ""
"Un filtre n'est qu'une fonction, nous pouvons donc définir un "
"``filter_maker`` (une fonction fabrique) comme suit :"
#: howto/logging-cookbook.rst:375 #: howto/logging-cookbook.rst:375
msgid "" msgid ""
@ -260,18 +287,28 @@ msgid ""
"filter_maker`` in the filter configuration. You will need to change that if " "filter_maker`` in the filter configuration. You will need to change that if "
"you define it in a different module." "you define it in a different module."
msgstr "" msgstr ""
"Elle convertit la chaîne transmise en argument vers un niveau numérique puis "
"renvoie une fonction qui ne renvoie ``True`` que si le niveau de "
"l'enregistrement transmis est inférieur ou égal au niveau spécifié. Notez "
"que dans cet exemple, nous avons défini ``filter_maker`` dans un script de "
"test ``main.py`` qui est exécuté depuis la ligne de commande, donc son "
"module est ``__main__`` d'où le ``__main__.filter_maker`` dans la "
"configuration du filtre. Vous devez le changer si vous la définissez dans un "
"module différent."
#: howto/logging-cookbook.rst:383 #: howto/logging-cookbook.rst:383
msgid "With the filter added, we can run ``main.py``, which in full is:" msgid "With the filter added, we can run ``main.py``, which in full is:"
msgstr "" msgstr ""
"Avec le filtre, nous pouvons exécuter ``main.py`` dont voici la version "
"complète :"
#: howto/logging-cookbook.rst:453 #: howto/logging-cookbook.rst:453
msgid "And after running it like this:" msgid "And after running it like this:"
msgstr "" msgstr "Et après l'avoir exécuté comme ceci :"
#: howto/logging-cookbook.rst:459 #: howto/logging-cookbook.rst:459
msgid "We can see the results are as expected:" msgid "We can see the results are as expected:"
msgstr "" msgstr "Nous obtenons le résultat attendu :"
#: howto/logging-cookbook.rst:485 #: howto/logging-cookbook.rst:485
msgid "Configuration server example" msgid "Configuration server example"
@ -406,6 +443,16 @@ msgid ""
"application, to use the above approach for logging, so that any blocking " "application, to use the above approach for logging, so that any blocking "
"code runs only in the ``QueueListener`` thread." "code runs only in the ``QueueListener`` thread."
msgstr "" msgstr ""
"bien que la discussion précédente n'aborde pas spécifiquement l'utilisation "
"de code asynchrone, mais concerne les gestionnaires de journalisation lents, "
"notez que lors de la journalisation à partir de code asynchrone, les "
"gestionnaires qui écrivent vers le réseau ou même dans des fichiers peuvent "
"entraîner des problèmes (blocage de la boucle d'événements) car une certaine "
"journalisation est faite à partir du code natif de :mod:`asyncio`. Il peut "
"être préférable, si un code asynchrone est utilisé dans une application, "
"d'utiliser l'approche ci-dessus pour la journalisation, de sorte que tout ce "
"qui utilise du code bloquant ne s'exécute que dans le thread "
"``QueueListener``."
#: howto/logging-cookbook.rst:615 #: howto/logging-cookbook.rst:615
msgid "" msgid ""
@ -751,6 +798,11 @@ msgid ""
"handlers, you can use a filter that returns a new :class:`~LogRecord` " "handlers, you can use a filter that returns a new :class:`~LogRecord` "
"instead of modifying it in-place, as shown in the following script::" "instead of modifying it in-place, as shown in the following script::"
msgstr "" msgstr ""
"Chaque :class:`~Handler` possède sa propre chaîne de filtres. Si vous "
"souhaitez ajouter des informations contextuelles à un :class:`LogRecord` "
"sans impacter d'autres gestionnaires, vous pouvez utiliser un filtre qui "
"renvoie un nouveau :class:`~LogRecord` au lieu de le modifier sur place, "
"comme dans le script suivant ::"
#: howto/logging-cookbook.rst:1189 #: howto/logging-cookbook.rst:1189
msgid "Logging to a single file from multiple processes" msgid "Logging to a single file from multiple processes"
@ -1137,7 +1189,7 @@ msgstr ""
#: howto/logging-cookbook.rst:1707 #: howto/logging-cookbook.rst:1707
msgid "Customizing ``LogRecord``" msgid "Customizing ``LogRecord``"
msgstr "" msgstr "Personnalisation de ``LogRecord``"
#: howto/logging-cookbook.rst:1709 #: howto/logging-cookbook.rst:1709
msgid "" msgid ""
@ -1149,12 +1201,22 @@ msgid ""
"disabled). Before Python 3.2, there were only two places where this creation " "disabled). Before Python 3.2, there were only two places where this creation "
"was done:" "was done:"
msgstr "" msgstr ""
"Chaque événement de journalisation est représenté par une instance :class:"
"`LogRecord`. Lorsquun événement est enregistré et non filtré en raison du "
"niveau dun enregistreur, un :class:`LogRecord` est créé, rempli avec les "
"informations de lévénement, puis transmis aux gestionnaires de cet "
"enregistreur (et ses ancêtres, jusquà et y compris lenregistreur où la "
"propagation vers le haut de la hiérarchie est désactivée). Avant Python 3.2, "
"il ny avait que deux endroits où cette création était effectuée :"
#: howto/logging-cookbook.rst:1716 #: howto/logging-cookbook.rst:1716
msgid "" msgid ""
":meth:`Logger.makeRecord`, which is called in the normal process of logging " ":meth:`Logger.makeRecord`, which is called in the normal process of logging "
"an event. This invoked :class:`LogRecord` directly to create an instance." "an event. This invoked :class:`LogRecord` directly to create an instance."
msgstr "" msgstr ""
":meth:`Logger.makeRecord`, qui est appelée dans le processus normal de "
"journalisation dun événement. Elle appelait :class:`LogRecord` directement "
"pour créer une instance."
#: howto/logging-cookbook.rst:1719 #: howto/logging-cookbook.rst:1719
msgid "" msgid ""
@ -1164,12 +1226,20 @@ msgid ""
"via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" "via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:"
"`~handlers.HTTPHandler`)." "`~handlers.HTTPHandler`)."
msgstr "" msgstr ""
":func:`makeLogRecord`, qui est appelée avec un dictionnaire contenant des "
"attributs à ajouter au *LogRecord*. Elle est généralement invoquée lorsquun "
"dictionnaire approprié a été reçu par le réseau (par exemple, sous forme de "
"*pickle* *via* un :class:`~handlers.SocketHandler`, ou sous format JSON "
"*via* un :class:`~handlers.HTTPHandler`)."
#: howto/logging-cookbook.rst:1725 #: howto/logging-cookbook.rst:1725
msgid "" msgid ""
"This has usually meant that if you need to do anything special with a :class:" "This has usually meant that if you need to do anything special with a :class:"
"`LogRecord`, you've had to do one of the following." "`LogRecord`, you've had to do one of the following."
msgstr "" msgstr ""
"Cela signifiait généralement que, si vous deviez faire quelque chose de "
"spécial avec un :class:`LogRecord`, vous deviez faire lune des choses "
"suivantes."
#: howto/logging-cookbook.rst:1728 #: howto/logging-cookbook.rst:1728
msgid "" msgid ""
@ -1177,6 +1247,9 @@ msgid ""
"makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any "
"loggers that you care about are instantiated." "loggers that you care about are instantiated."
msgstr "" msgstr ""
"Créer votre propre sous-classe :class:`Logger`, surchargeant :meth:`Logger."
"makeRecord`, et la personnaliser à laide de :func:`~logging.setLoggerClass` "
"avant que les enregistreurs qui vous intéressaient ne soient instanciés."
#: howto/logging-cookbook.rst:1731 #: howto/logging-cookbook.rst:1731
msgid "" msgid ""
@ -1184,6 +1257,9 @@ msgid ""
"special manipulation you need when its :meth:`~Filter.filter` method is " "special manipulation you need when its :meth:`~Filter.filter` method is "
"called." "called."
msgstr "" msgstr ""
"Ajouter un :class:`Filter` à un enregistreur ou un gestionnaire, qui "
"effectuait la manipulation spéciale nécessaire dont vous aviez besoin "
"lorsque sa méthode :meth:`~Filter.filter` était appelée."
#: howto/logging-cookbook.rst:1735 #: howto/logging-cookbook.rst:1735
msgid "" msgid ""
@ -1192,6 +1268,10 @@ msgid ""
"attempt to set its own :class:`Logger` subclass, and the one which did this " "attempt to set its own :class:`Logger` subclass, and the one which did this "
"last would win." "last would win."
msgstr "" msgstr ""
"La première approche est un peu lourde dans le scénario où (disons) "
"plusieurs bibliothèques différentes veulent faire des choses différentes. "
"Chacun essaie de définir sa propre sous-classe :class:`Logger`, et celui qui "
"la fait en dernier gagne."
#: howto/logging-cookbook.rst:1740 #: howto/logging-cookbook.rst:1740
msgid "" msgid ""
@ -1201,6 +1281,12 @@ msgid ""
"to remember to do this every time they introduced a new logger (which they " "to remember to do this every time they introduced a new logger (which they "
"would do simply by adding new packages or modules and doing ::" "would do simply by adding new packages or modules and doing ::"
msgstr "" msgstr ""
"La seconde approche fonctionne raisonnablement bien dans de nombreux cas, "
"mais ne vous permet pas, par exemple, dutiliser une sous-classe spécialisée "
"de :class:`LogRecord`. Les développeurs de bibliothèques peuvent définir un "
"filtre approprié sur leurs enregistreurs, mais ils doivent se rappeler de le "
"faire chaque fois quils introduisent un nouvel enregistreur (ce quils font "
"simplement en ajoutant de nouveaux paquets ou modules et en écrivant ::"
#: howto/logging-cookbook.rst:1748 #: howto/logging-cookbook.rst:1748
msgid "" msgid ""
@ -1211,6 +1297,13 @@ msgid ""
"so output from that handler would not reflect the intentions of the library " "so output from that handler would not reflect the intentions of the library "
"developer." "developer."
msgstr "" msgstr ""
"au niveau des modules). Cest probablement trop de choses auxquelles penser. "
"Les développeurs pourraient également ajouter le filtre à un :class:"
"`~logging.NullHandler` attaché à leur enregistreur de niveau supérieur, mais "
"cela ne serait pas invoqué si un développeur dapplication attachait un "
"gestionnaire à un enregistreur de bibliothèque de niveau inférieur — donc la "
"sortie de ce gestionnaire ne refléterait pas les intentions du développeur "
"de la bibliothèque."
#: howto/logging-cookbook.rst:1754 #: howto/logging-cookbook.rst:1754
msgid "" msgid ""
@ -1221,6 +1314,13 @@ msgid ""
"signature as the :class:`~logging.LogRecord` constructor, as :class:" "signature as the :class:`~logging.LogRecord` constructor, as :class:"
"`LogRecord` is the default setting for the factory." "`LogRecord` is the default setting for the factory."
msgstr "" msgstr ""
"Dans Python 3.2 et ultérieurs, la création de :class:`~logging.LogRecord` "
"est effectuée via une fabrique, que vous pouvez spécifier. La fabrique est "
"juste un appelable que vous pouvez définir avec :func:`~logging."
"setLogRecordFactory`, et interroger avec :func:`~logging."
"getLogRecordFactory`. La fabrique est invoquée avec la même signature que le "
"constructeur :class:`~logging.LogRecord`, car :class:`LogRecord` est le "
"paramètre par défaut de la fabrique."
#: howto/logging-cookbook.rst:1761 #: howto/logging-cookbook.rst:1761
msgid "" msgid ""
@ -1229,6 +1329,10 @@ msgid ""
"additional attributes to the record once created, using a pattern similar to " "additional attributes to the record once created, using a pattern similar to "
"this::" "this::"
msgstr "" msgstr ""
"Cette approche permet à une fabrique personnalisée de contrôler tous les "
"aspects de la création dun *LogRecord*. Par exemple, vous pouvez renvoyer "
"une sous-classe ou simplement ajouter des attributs supplémentaires à "
"lenregistrement une fois créé, en utilisant un modèle similaire à celui-ci :"
#: howto/logging-cookbook.rst:1774 #: howto/logging-cookbook.rst:1774
msgid "" msgid ""
@ -1239,10 +1343,18 @@ msgid ""
"time overhead to all logging operations, and the technique should only be " "time overhead to all logging operations, and the technique should only be "
"used when the use of a :class:`Filter` does not provide the desired result." "used when the use of a :class:`Filter` does not provide the desired result."
msgstr "" msgstr ""
"Ce modèle permet à différentes bibliothèques denchaîner des fabriques, et "
"tant quelles nécrasent pas les attributs des autres ou nécrasent pas "
"involontairement les attributs fournis en standard, il ne devrait pas y "
"avoir de surprise. Cependant, il faut garder à lesprit que chaque maillon "
"de la chaîne ajoute une surcharge dexécution à toutes les opérations de "
"journalisation, et la technique ne doit être utilisée que lorsque "
"lutilisation dun :class:`Filter` ne permet pas dobtenir le résultat "
"souhaité."
#: howto/logging-cookbook.rst:1785 #: howto/logging-cookbook.rst:1785
msgid "Subclassing QueueHandler - a ZeroMQ example" msgid "Subclassing QueueHandler - a ZeroMQ example"
msgstr "" msgstr "Dérivation de *QueueHandler* un exemple de *ZeroMQ*"
#: howto/logging-cookbook.rst:1787 #: howto/logging-cookbook.rst:1787
msgid "" msgid ""
@ -1250,22 +1362,31 @@ msgid ""
"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " "of queues, for example a ZeroMQ 'publish' socket. In the example below,the "
"socket is created separately and passed to the handler (as its 'queue')::" "socket is created separately and passed to the handler (as its 'queue')::"
msgstr "" msgstr ""
"Vous pouvez utiliser une sous-classe :class:`QueueHandler` pour envoyer des "
"messages à dautres types de files dattente, par exemple un connecteur "
"*ZeroMQ publish*. Dans lexemple ci-dessous, le connecteur est créé "
"séparément et transmis au gestionnaire (en tant que file dattente) ::"
#: howto/logging-cookbook.rst:1806 #: howto/logging-cookbook.rst:1806
msgid "" msgid ""
"Of course there are other ways of organizing this, for example passing in " "Of course there are other ways of organizing this, for example passing in "
"the data needed by the handler to create the socket::" "the data needed by the handler to create the socket::"
msgstr "" msgstr ""
"Bien sûr, il existe dautres manières de faire, par exemple en transmettant "
"les données nécessaires au gestionnaire pour créer le connecteur ::"
#: howto/logging-cookbook.rst:1824 #: howto/logging-cookbook.rst:1824
msgid "Subclassing QueueListener - a ZeroMQ example" msgid "Subclassing QueueListener - a ZeroMQ example"
msgstr "" msgstr "Dérivation de *QueueListener* un exemple de *ZeroMQ*"
#: howto/logging-cookbook.rst:1826 #: howto/logging-cookbook.rst:1826
msgid "" msgid ""
"You can also subclass :class:`QueueListener` to get messages from other " "You can also subclass :class:`QueueListener` to get messages from other "
"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::"
msgstr "" msgstr ""
"Vous pouvez également dériver :class:`QueueListener` pour obtenir des "
"messages dautres types de files dattente, par exemple un connecteur "
"*ZeroMQ subscribe*. Voici un exemple ::"
#: howto/logging-cookbook.rst:1845 howto/logging-cookbook.rst:3803 #: howto/logging-cookbook.rst:1845 howto/logging-cookbook.rst:3803
msgid "Module :mod:`logging`" msgid "Module :mod:`logging`"
@ -1294,14 +1415,18 @@ msgstr "Gestionnaires utiles inclus avec le module de journalisation."
#: howto/logging-cookbook.rst:1853 #: howto/logging-cookbook.rst:1853
msgid ":ref:`A basic logging tutorial <logging-basic-tutorial>`" msgid ":ref:`A basic logging tutorial <logging-basic-tutorial>`"
msgstr "" msgstr ""
":ref:`Les bases de lutilisation du module de journalisation <logging-basic-"
"tutorial>`"
#: howto/logging-cookbook.rst:1855 #: howto/logging-cookbook.rst:1855
msgid ":ref:`A more advanced logging tutorial <logging-advanced-tutorial>`" msgid ":ref:`A more advanced logging tutorial <logging-advanced-tutorial>`"
msgstr "" msgstr ""
":ref:`Utilisation avancée du module de journalisation <logging-advanced-"
"tutorial>`"
#: howto/logging-cookbook.rst:1859 #: howto/logging-cookbook.rst:1859
msgid "An example dictionary-based configuration" msgid "An example dictionary-based configuration"
msgstr "" msgstr "Exemple de configuration basée sur un dictionnaire"
#: howto/logging-cookbook.rst:1861 #: howto/logging-cookbook.rst:1861
msgid "" msgid ""
@ -1310,6 +1435,11 @@ msgid ""
"stable/topics/logging/#configuring-logging>`_. This dictionary is passed to :" "stable/topics/logging/#configuring-logging>`_. This dictionary is passed to :"
"func:`~config.dictConfig` to put the configuration into effect::" "func:`~config.dictConfig` to put the configuration into effect::"
msgstr "" msgstr ""
"Vous trouverez ci-dessous un exemple de dictionnaire de configuration de "
"journalisation ­ il est tiré de la `documentation du projet Django <https://"
"docs.djangoproject.com/fr/stable/topics/logging/#configuring-logging>`_. Ce "
"dictionnaire est passé à :func:`~config.dictConfig` pour activer la "
"configuration ::"
#: howto/logging-cookbook.rst:1917 #: howto/logging-cookbook.rst:1917
msgid "" msgid ""
@ -1317,10 +1447,15 @@ msgid ""
"section <https://docs.djangoproject.com/en/stable/topics/logging/" "section <https://docs.djangoproject.com/en/stable/topics/logging/"
"#configuring-logging>`_ of the Django documentation." "#configuring-logging>`_ of the Django documentation."
msgstr "" msgstr ""
"Pour plus dinformations sur cette configuration, vous pouvez consulter la "
"`section correspondante <https://docs.djangoproject.com/fr/stable/topics/"
"logging/#configuring-logging>`_ de la documentation de *Django*."
#: howto/logging-cookbook.rst:1924 #: howto/logging-cookbook.rst:1924
msgid "Using a rotator and namer to customize log rotation processing" msgid "Using a rotator and namer to customize log rotation processing"
msgstr "" msgstr ""
"Utilisation dun rotateur et dun nom pour personnaliser la rotation des "
"journaux"
#: howto/logging-cookbook.rst:1926 #: howto/logging-cookbook.rst:1926
msgid "" msgid ""
@ -1337,7 +1472,7 @@ msgstr ""
#: howto/logging-cookbook.rst:1949 #: howto/logging-cookbook.rst:1949
msgid "A more elaborate multiprocessing example" msgid "A more elaborate multiprocessing example"
msgstr "" msgstr "Exemple plus élaboré avec traitement en parallèle"
#: howto/logging-cookbook.rst:1951 #: howto/logging-cookbook.rst:1951
msgid "" msgid ""
@ -1346,6 +1481,11 @@ msgid ""
"simple, but serve to illustrate how more complex ones could be implemented " "simple, but serve to illustrate how more complex ones could be implemented "
"in a real multiprocessing scenario." "in a real multiprocessing scenario."
msgstr "" msgstr ""
"Lexemple suivant que nous allons étudier montre comment la journalisation "
"peut être utilisée, à laide de fichiers de configuration, pour un programme "
"effectuant des traitements parallèles. Les configurations sont assez "
"simples, mais servent à illustrer comment des configurations plus complexes "
"pourraient être implémentées dans un scénario multi-processus réel."
#: howto/logging-cookbook.rst:1956 #: howto/logging-cookbook.rst:1956
msgid "" msgid ""
@ -1359,16 +1499,30 @@ msgid ""
"purely illustrative, but you should be able to adapt this example to your " "purely illustrative, but you should be able to adapt this example to your "
"own scenario." "own scenario."
msgstr "" msgstr ""
"Dans lexemple, le processus principal génère un processus découte et des "
"processus de travail. Chacun des processus, le principal, lauditeur "
"(*listener_process* dans lexemple) et les processus de travail "
"(*worker_process* dans lexemple) ont trois configurations distinctes (les "
"processus de travail partagent tous la même configuration). Nous pouvons "
"voir la journalisation dans le processus principal, comment les processus de "
"travail se connectent à un *QueueHandler* et comment lauditeur implémente "
"un *QueueListener* avec une configuration de journalisation plus complexe, "
"et sarrange pour envoyer les événements reçus *via* la file dattente aux "
"gestionnaires spécifiés dans la configuration. Notez que ces configurations "
"sont purement illustratives, mais vous devriez pouvoir adapter cet exemple à "
"votre propre scénario."
#: howto/logging-cookbook.rst:1966 #: howto/logging-cookbook.rst:1966
msgid "" msgid ""
"Here's the script - the docstrings and the comments hopefully explain how it " "Here's the script - the docstrings and the comments hopefully explain how it "
"works::" "works::"
msgstr "" msgstr ""
"Voici le script les chaines de documentation et les commentaires "
"expliquent (en anglais), le principe de fonctionnement ::"
#: howto/logging-cookbook.rst:2178 #: howto/logging-cookbook.rst:2178
msgid "Inserting a BOM into messages sent to a SysLogHandler" msgid "Inserting a BOM into messages sent to a SysLogHandler"
msgstr "" msgstr "Insertion dune *BOM* dans les messages envoyés à un *SysLogHandler*"
#: howto/logging-cookbook.rst:2180 #: howto/logging-cookbook.rst:2180
msgid "" msgid ""
@ -1378,6 +1532,11 @@ msgid ""
"encoded using UTF-8. (See the :rfc:`relevant section of the specification " "encoded using UTF-8. (See the :rfc:`relevant section of the specification "
"<5424#section-6>`.)" "<5424#section-6>`.)"
msgstr "" msgstr ""
"La :rfc:`5424` requiert quun message Unicode soit envoyé à un démon "
"*syslog* sous la forme dun ensemble doctets ayant la structure suivante : "
"un composant ASCII pur facultatif, suivi dune marque dordre doctet (*BOM* "
"pour *Byte Order Mark* en anglais) UTF-8, suivie de contenu Unicode UTF-8 "
"(voir la :rfc:`la spécification correspondante <5424#section-6>`)."
#: howto/logging-cookbook.rst:2186 #: howto/logging-cookbook.rst:2186
msgid "" msgid ""
@ -1386,6 +1545,10 @@ msgid ""
"incorrectly, with the BOM appearing at the beginning of the message and " "incorrectly, with the BOM appearing at the beginning of the message and "
"hence not allowing any pure-ASCII component to appear before it." "hence not allowing any pure-ASCII component to appear before it."
msgstr "" msgstr ""
"Dans Python 3.1, du code a été ajouté à :class:`~logging.handlers."
"SysLogHandler` pour insérer une *BOM* dans le message mais, malheureusement, "
"il a été implémenté de manière incorrecte, la *BOM* apparaissant au début du "
"message et nautorisant donc aucun composant ASCII pur à être placé devant."
#: howto/logging-cookbook.rst:2192 #: howto/logging-cookbook.rst:2192
msgid "" msgid ""
@ -1395,18 +1558,28 @@ msgid ""
"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " "an optional pure-ASCII sequence before it and arbitrary Unicode after it, "
"encoded using UTF-8, then you need to do the following:" "encoded using UTF-8, then you need to do the following:"
msgstr "" msgstr ""
"Comme ce comportement est inadéquat, le code incorrect dinsertion de la "
"*BOM* a été supprimé de Python 3.2.4 et ultérieurs. Cependant, il nest pas "
"remplacé et, si vous voulez produire des messages conformes :rfc:`5424` qui "
"incluent une *BOM*, une séquence facultative en ASCII pur avant et un "
"Unicode arbitraire après, encodé en UTF-8, alors vous devez appliquer ce qui "
"suit :"
#: howto/logging-cookbook.rst:2198 #: howto/logging-cookbook.rst:2198
msgid "" msgid ""
"Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "Attach a :class:`~logging.Formatter` instance to your :class:`~logging."
"handlers.SysLogHandler` instance, with a format string such as::" "handlers.SysLogHandler` instance, with a format string such as::"
msgstr "" msgstr ""
"Adjoignez une instance :class:`~logging.Formatter` à votre instance :class:"
"`~logging.handlers.SysLogHandler`, avec une chaîne de format telle que ::"
#: howto/logging-cookbook.rst:2204 #: howto/logging-cookbook.rst:2204
msgid "" msgid ""
"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as "
"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``."
msgstr "" msgstr ""
"Le point de code Unicode U+FEFF, lorsquil est encodé en UTF-8, est encodé "
"comme une *BOM* UTF-8 la chaîne doctets ``b'\\xef\\xbb\\xbf'``."
#: howto/logging-cookbook.rst:2207 #: howto/logging-cookbook.rst:2207
msgid "" msgid ""
@ -1414,6 +1587,9 @@ msgid ""
"that the data that appears in there after substitution is always ASCII (that " "that the data that appears in there after substitution is always ASCII (that "
"way, it will remain unchanged after UTF-8 encoding)." "way, it will remain unchanged after UTF-8 encoding)."
msgstr "" msgstr ""
"Remplacez la section ASCII par les caractères de votre choix, mais assurez-"
"vous que les données qui y apparaissent après la substitution sont toujours "
"ASCII (ainsi elles resteront inchangées après lencodage UTF-8)."
#: howto/logging-cookbook.rst:2211 #: howto/logging-cookbook.rst:2211
msgid "" msgid ""
@ -1421,6 +1597,10 @@ msgid ""
"which appears there after substitution contains characters outside the ASCII " "which appears there after substitution contains characters outside the ASCII "
"range, that's fine -- it will be encoded using UTF-8." "range, that's fine -- it will be encoded using UTF-8."
msgstr "" msgstr ""
"Remplacez la section Unicode par le contenu de votre choix ; si les données "
"qui y apparaissent après la substitution contiennent des caractères en "
"dehors de la plage ASCII, cest pris en charge elles seront encodées en "
"UTF-8."
#: howto/logging-cookbook.rst:2215 #: howto/logging-cookbook.rst:2215
msgid "" msgid ""
@ -1430,10 +1610,15 @@ msgid ""
"complain, but your messages will not be RFC 5424-compliant, and your syslog " "complain, but your messages will not be RFC 5424-compliant, and your syslog "
"daemon may complain." "daemon may complain."
msgstr "" msgstr ""
"Le message formaté *sera* encodé en UTF-8 par ``SysLogHandler``. Si vous "
"suivez les règles ci-dessus, vous devriez pouvoir produire des messages "
"conformes à la :rfc:`5424`. Si vous ne le faites pas, la journalisation ne "
"se plaindra peut-être pas, mais vos messages ne seront pas conformes à la "
"RFC 5424 et votre démon *syslog* est susceptible de se plaindre."
#: howto/logging-cookbook.rst:2222 #: howto/logging-cookbook.rst:2222
msgid "Implementing structured logging" msgid "Implementing structured logging"
msgstr "" msgstr "Journalisation structurée"
#: howto/logging-cookbook.rst:2224 #: howto/logging-cookbook.rst:2224
msgid "" msgid ""
@ -1446,30 +1631,42 @@ msgid ""
"following is a simple approach which uses JSON to serialise the event in a " "following is a simple approach which uses JSON to serialise the event in a "
"machine-parseable manner::" "machine-parseable manner::"
msgstr "" msgstr ""
"Bien que la plupart des messages de journalisation soient destinés à être "
"lus par des humains, et donc difficilement analysables par la machine, il "
"peut arriver que vous souhaitiez produire des messages dans un format "
"structuré dans le but dêtre analysé par un programme (sans avoir besoin "
"dexpressions régulières complexes pour analyser le message du journal). "
"Cest simple à réaliser en utilisant le paquet de journalisation. Il existe "
"plusieurs façons dy parvenir et voici une approche simple qui utilise JSON "
"pour sérialiser lévénement de manière à être analysable par une machine ::"
#: howto/logging-cookbook.rst:2248 #: howto/logging-cookbook.rst:2248
msgid "If the above script is run, it prints:" msgid "If the above script is run, it prints:"
msgstr "" msgstr "Si vous lancez le script ci-dessus, il imprime :"
#: howto/logging-cookbook.rst:2254 howto/logging-cookbook.rst:2296 #: howto/logging-cookbook.rst:2254 howto/logging-cookbook.rst:2296
msgid "" msgid ""
"Note that the order of items might be different according to the version of " "Note that the order of items might be different according to the version of "
"Python used." "Python used."
msgstr "" msgstr ""
"Notez que lordre des éléments peut être différent en fonction de la version "
"de Python utilisée."
#: howto/logging-cookbook.rst:2257 #: howto/logging-cookbook.rst:2257
msgid "" msgid ""
"If you need more specialised processing, you can use a custom JSON encoder, " "If you need more specialised processing, you can use a custom JSON encoder, "
"as in the following complete example::" "as in the following complete example::"
msgstr "" msgstr ""
"Si vous avez besoin dun traitement plus spécifique, vous pouvez utiliser un "
"encodeur JSON personnalisé, comme dans lexemple complet suivant :"
#: howto/logging-cookbook.rst:2290 #: howto/logging-cookbook.rst:2290
msgid "When the above script is run, it prints:" msgid "When the above script is run, it prints:"
msgstr "" msgstr "Quand vous exécutez le script ci-dessus, il imprime :"
#: howto/logging-cookbook.rst:2305 #: howto/logging-cookbook.rst:2305
msgid "Customizing handlers with :func:`dictConfig`" msgid "Customizing handlers with :func:`dictConfig`"
msgstr "" msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`"
#: howto/logging-cookbook.rst:2307 #: howto/logging-cookbook.rst:2307
msgid "" msgid ""
@ -1480,12 +1677,23 @@ msgid ""
"the file handlers in the stdlib don't offer built-in support. You can " "the file handlers in the stdlib don't offer built-in support. You can "
"customize handler creation using a plain function such as::" "customize handler creation using a plain function such as::"
msgstr "" msgstr ""
"Il arrive de souhaiter personnaliser les gestionnaires de journalisation "
"dune manière particulière et, en utilisant :func:`dictConfig`, vous pourrez "
"peut-être le faire sans avoir à dériver les classes mères. Par exemple, "
"supposons que vous souhaitiez définir le propriétaire dun fichier journal. "
"Dans un environnement POSIX, cela se fait facilement en utilisant :func:"
"`shutil.chown`, mais les gestionnaires de fichiers de la bibliothèque "
"standard noffrent pas cette gestion nativement. Vous pouvez personnaliser "
"la création du gestionnaire à laide dune fonction simple telle que ::"
#: howto/logging-cookbook.rst:2321 #: howto/logging-cookbook.rst:2321
msgid "" msgid ""
"You can then specify, in a logging configuration passed to :func:" "You can then specify, in a logging configuration passed to :func:"
"`dictConfig`, that a logging handler be created by calling this function::" "`dictConfig`, that a logging handler be created by calling this function::"
msgstr "" msgstr ""
"Vous pouvez ensuite spécifier, dans une configuration de journalisation "
"transmise à :func:`dictConfig`, quun gestionnaire de journalisation soit "
"créé en appelant cette fonction ::"
#: howto/logging-cookbook.rst:2354 #: howto/logging-cookbook.rst:2354
msgid "" msgid ""
@ -1493,10 +1701,14 @@ msgid ""
"group, just for the purposes of illustration. Putting it together into a " "group, just for the purposes of illustration. Putting it together into a "
"working script, ``chowntest.py``::" "working script, ``chowntest.py``::"
msgstr "" msgstr ""
"Dans cet exemple, nous définissons le propriétaire à lutilisateur et au "
"groupe ``pulse``, uniquement à des fins dillustration. Rassemblons le tout "
"dans un script ``chowntest.py`` ::"
#: howto/logging-cookbook.rst:2401 #: howto/logging-cookbook.rst:2401
msgid "To run this, you will probably need to run as ``root``:" msgid "To run this, you will probably need to run as ``root``:"
msgstr "" msgstr ""
"Pour lexécuter, vous devrez probablement le faire en tant que ``root`` :"
#: howto/logging-cookbook.rst:2411 #: howto/logging-cookbook.rst:2411
msgid "" msgid ""
@ -1506,16 +1718,25 @@ msgid ""
"With pre-3.3 versions, you would need to implement the actual ownership " "With pre-3.3 versions, you would need to implement the actual ownership "
"change using e.g. :func:`os.chown`." "change using e.g. :func:`os.chown`."
msgstr "" msgstr ""
"Notez que cet exemple utilise Python 3.3 car cest là que :func:`shutil."
"chown` fait son apparition. Cette approche devrait fonctionner avec "
"nimporte quelle version de Python prenant en charge :func:`dictConfig` à "
"savoir, Python 2.7, 3.2 ou version ultérieure. Avec les versions antérieures "
"à la 3.3, vous devrez implémenter le changement de propriétaire réel en "
"utilisant par exemple :func:`os.chown`."
#: howto/logging-cookbook.rst:2417 #: howto/logging-cookbook.rst:2417
msgid "" msgid ""
"In practice, the handler-creating function may be in a utility module " "In practice, the handler-creating function may be in a utility module "
"somewhere in your project. Instead of the line in the configuration::" "somewhere in your project. Instead of the line in the configuration::"
msgstr "" msgstr ""
"En pratique, la fonction de création de gestionnaire peut être située dans "
"un module utilitaire ailleurs dans votre projet. Au lieu de cette ligne dans "
"la configuration ::"
#: howto/logging-cookbook.rst:2422 #: howto/logging-cookbook.rst:2422
msgid "you could use e.g.::" msgid "you could use e.g.::"
msgstr "" msgstr "vous pouvez écrire par exemple ::"
#: howto/logging-cookbook.rst:2426 #: howto/logging-cookbook.rst:2426
msgid "" msgid ""
@ -1524,6 +1745,11 @@ msgid ""
"__main__.owned_file_handler'`` should work. Here, the actual callable is " "__main__.owned_file_handler'`` should work. Here, the actual callable is "
"resolved by :func:`dictConfig` from the ``ext://`` specification." "resolved by :func:`dictConfig` from the ``ext://`` specification."
msgstr "" msgstr ""
"où ``project.util`` peut être remplacé par le nom réel du paquet où réside "
"la fonction. Dans le script étudié ci-dessus, lutilisation de ``'ext://"
"__main__.owned_file_handler'`` devrait fonctionner. Dans le cas présent, "
"lappelable réel est résolu par :func:`dictConfig` à partir de la "
"spécification ``ext://``."
#: howto/logging-cookbook.rst:2431 #: howto/logging-cookbook.rst:2431
msgid "" msgid ""
@ -1531,6 +1757,9 @@ msgid ""
"types of file change - e.g. setting specific POSIX permission bits - in the " "types of file change - e.g. setting specific POSIX permission bits - in the "
"same way, using :func:`os.chmod`." "same way, using :func:`os.chmod`."
msgstr "" msgstr ""
"Nous espérons qu'à partir de cet exemple vous saurez implémenter dautres "
"types de modification de fichier par ex. définir des bits dautorisation "
"POSIX spécifiques de la même manière, en utilisant :func:`os.chmod`."
#: howto/logging-cookbook.rst:2435 #: howto/logging-cookbook.rst:2435
msgid "" msgid ""
@ -1538,6 +1767,10 @@ msgid ""
"than a :class:`~logging.FileHandler` - for example, one of the rotating file " "than a :class:`~logging.FileHandler` - for example, one of the rotating file "
"handlers, or a different type of handler altogether." "handlers, or a different type of handler altogether."
msgstr "" msgstr ""
"Bien sûr, lapproche pourrait également être étendue à des types de "
"gestionnaires autres quun :class:`~logging.FileHandler` par exemple, lun "
"des gestionnaires à roulement de fichiers ou un autre type de gestionnaire "
"complètement différent."
#: howto/logging-cookbook.rst:2445 #: howto/logging-cookbook.rst:2445
msgid "Using particular formatting styles throughout your application" msgid "Using particular formatting styles throughout your application"
@ -2252,12 +2485,12 @@ msgstr ""
#: howto/logging-cookbook.rst:3798 #: howto/logging-cookbook.rst:3798
msgid "Other resources" msgid "Other resources"
msgstr "" msgstr "Autres ressources"
#: howto/logging-cookbook.rst:3811 #: howto/logging-cookbook.rst:3811
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`" msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
msgstr "" msgstr ":ref:`Tutoriel de découverte <logging-basic-tutorial>`"
#: howto/logging-cookbook.rst:3813 #: howto/logging-cookbook.rst:3813
msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`" msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`"
msgstr "" msgstr ":ref:`Tutoriel avancé <logging-advanced-tutorial>`"

View File

@ -226,7 +226,7 @@ msgstr ""
#: library/asyncio-api-index.rst:115 #: library/asyncio-api-index.rst:115
msgid "Create a subprocess." msgid "Create a subprocess."
msgstr "" msgstr "Crée un sous-processus."
#: library/asyncio-api-index.rst:117 #: library/asyncio-api-index.rst:117
msgid "``await`` :func:`create_subprocess_shell`" msgid "``await`` :func:`create_subprocess_shell`"

View File

@ -281,6 +281,9 @@ msgid ""
"class:`contextvars.Context` for the *callback* to run in. The current " "class:`contextvars.Context` for the *callback* to run in. The current "
"context is used when no *context* is provided." "context is used when no *context* is provided."
msgstr "" msgstr ""
"L'argument nommé optionnel *context* permet de spécifier une classe :class:"
"`contextvars.Context` personnalisée dans laquelle la fonction de rappel "
"sexécutera. Le contexte actuel est utilisé si *context* n'est pas fourni."
#: library/asyncio-eventloop.rst:211 #: library/asyncio-eventloop.rst:211
msgid "" msgid ""
@ -318,6 +321,7 @@ msgid ""
"The *context* keyword-only parameter was added. See :pep:`567` for more " "The *context* keyword-only parameter was added. See :pep:`567` for more "
"details." "details."
msgstr "" msgstr ""
"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails."
#: library/asyncio-eventloop.rst:236 #: library/asyncio-eventloop.rst:236
msgid "" msgid ""

View File

@ -813,7 +813,7 @@ msgstr ""
#: library/asyncio-llapi-index.rst:411 #: library/asyncio-llapi-index.rst:411
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr "Protocoles"
#: library/asyncio-llapi-index.rst:413 #: library/asyncio-llapi-index.rst:413
msgid "Protocol classes can implement the following **callback methods**:" msgid "Protocol classes can implement the following **callback methods**:"

View File

@ -324,6 +324,8 @@ 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-policy.rst:212 #: library/asyncio-policy.rst:212
msgid "Close the watcher." msgid "Close the watcher."

View File

@ -585,7 +585,7 @@ msgstr ""
#: library/asyncio-protocol.rst:436 #: library/asyncio-protocol.rst:436
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr "Protocoles"
#: library/asyncio-protocol.rst:438 #: library/asyncio-protocol.rst:438
msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" msgid "**Source code:** :source:`Lib/asyncio/protocols.py`"

View File

@ -69,6 +69,8 @@ msgstr "Le paramètre *loop*."
#: library/asyncio-queue.rst:43 #: library/asyncio-queue.rst:43
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-queue.rst:47 #: library/asyncio-queue.rst:47
msgid "Number of items allowed in the queue." msgid "Number of items allowed in the queue."

View File

@ -89,7 +89,7 @@ msgstr ""
#: library/asyncio-stream.rst:121 library/asyncio-stream.rst:176 #: library/asyncio-stream.rst:121 library/asyncio-stream.rst:176
msgid "Removed the *loop* parameter." msgid "Removed the *loop* parameter."
msgstr "" msgstr "Suppression du paramètre *loop*."
#: library/asyncio-stream.rst:94 #: library/asyncio-stream.rst:94
msgid "Start a socket server." msgid "Start a socket server."

View File

@ -29,12 +29,16 @@ 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 #, fuzzy
@ -51,15 +55,15 @@ msgstr ""
#: 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,15 +71,21 @@ 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 #, fuzzy
@ -90,6 +100,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 +112,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,6 +126,9 @@ 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
msgid "" msgid ""
@ -123,7 +145,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 +153,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 +164,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 +183,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 +233,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 +251,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 +264,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 ""
@ -327,7 +372,7 @@ msgstr ""
#: 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 +403,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 +414,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."
@ -414,18 +461,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 +491,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."

View File

@ -986,6 +986,8 @@ msgid ""
"Deprecation warning is emitted if *loop* is not specified and there is no " "Deprecation warning is emitted if *loop* is not specified and there is no "
"running event loop." "running event loop."
msgstr "" msgstr ""
"Un ``DeprecationWarning`` est levé si *loop* n'est pas spécifié et s'il n'y "
"a pas de boucle d'évènements en cours d'exécution."
#: library/asyncio-task.rst:850 #: library/asyncio-task.rst:850
msgid "Request the Task to be cancelled." msgid "Request the Task to be cancelled."

View File

@ -55,6 +55,8 @@ msgid ""
"The following events are raised internally and do not correspond to any " "The following events are raised internally and do not correspond to any "
"public API of CPython:" "public API of CPython:"
msgstr "" msgstr ""
"Les évènements suivants sont levés en interne et ne correspondent à aucune "
"API publique de CPython:"
#: library/audit_events.rst:27 #: library/audit_events.rst:27
#, fuzzy #, fuzzy
@ -67,61 +69,63 @@ msgstr "Arguments"
#: library/audit_events.rst:29 #: library/audit_events.rst:29
msgid "_winapi.CreateFile" msgid "_winapi.CreateFile"
msgstr "" msgstr "_winapi.CreateFile"
#: library/audit_events.rst:29 #: library/audit_events.rst:29
msgid "" msgid ""
"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " "``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, "
"``flags_and_attributes``" "``flags_and_attributes``"
msgstr "" msgstr ""
"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, "
"``flags_and_attributes``"
#: library/audit_events.rst:33 #: library/audit_events.rst:33
msgid "_winapi.CreateJunction" msgid "_winapi.CreateJunction"
msgstr "" msgstr "_winapi.CreateJunction"
#: library/audit_events.rst:33 #: library/audit_events.rst:33
msgid "``src_path``, ``dst_path``" msgid "``src_path``, ``dst_path``"
msgstr "" msgstr "``src_path``, ``dst_path``"
#: library/audit_events.rst:35 #: library/audit_events.rst:35
msgid "_winapi.CreateNamedPipe" msgid "_winapi.CreateNamedPipe"
msgstr "" msgstr "_winapi.CreateNamedPipe"
#: library/audit_events.rst:35 #: library/audit_events.rst:35
msgid "``name``, ``open_mode``, ``pipe_mode``" msgid "``name``, ``open_mode``, ``pipe_mode``"
msgstr "" msgstr "``name``, ``open_mode``, ``pipe_mode``"
#: library/audit_events.rst:37 #: library/audit_events.rst:37
msgid "_winapi.CreatePipe" msgid "_winapi.CreatePipe"
msgstr "" msgstr "_winapi.CreatePipe"
#: library/audit_events.rst:39 #: library/audit_events.rst:39
msgid "_winapi.CreateProcess" msgid "_winapi.CreateProcess"
msgstr "" msgstr "_winapi.CreateProcess"
#: library/audit_events.rst:39 #: library/audit_events.rst:39
msgid "``application_name``, ``command_line``, ``current_directory``" msgid "``application_name``, ``command_line``, ``current_directory``"
msgstr "" msgstr "``application_name``, ``command_line``, ``current_directory``"
#: library/audit_events.rst:42 #: library/audit_events.rst:42
msgid "_winapi.OpenProcess" msgid "_winapi.OpenProcess"
msgstr "" msgstr "_winapi.OpenProcess"
#: library/audit_events.rst:42 #: library/audit_events.rst:42
msgid "``process_id``, ``desired_access``" msgid "``process_id``, ``desired_access``"
msgstr "" msgstr "``process_id``, ``desired_access``"
#: library/audit_events.rst:44 #: library/audit_events.rst:44
msgid "_winapi.TerminateProcess" msgid "_winapi.TerminateProcess"
msgstr "" msgstr "_winapi.TerminateProcess"
#: library/audit_events.rst:44 #: library/audit_events.rst:44
msgid "``handle``, ``exit_code``" msgid "``handle``, ``exit_code``"
msgstr "" msgstr "``handle``, ``exit_code``"
#: library/audit_events.rst:46 #: library/audit_events.rst:46
msgid "ctypes.PyObj_FromPtr" msgid "ctypes.PyObj_FromPtr"
msgstr "" msgstr "ctypes.PyObj_FromPtr"
#: library/audit_events.rst:46 #: library/audit_events.rst:46
msgid "``obj``" msgid "``obj``"

View File

@ -600,10 +600,14 @@ msgstr ""
#: library/dataclasses.rst:330 #: library/dataclasses.rst:330
msgid "Example of using :func:`asdict` on nested dataclasses::" msgid "Example of using :func:`asdict` on nested dataclasses::"
msgstr "" msgstr ""
"Exemple d'utilisation de :func:`asdict` sur des classes de données "
"imbriquées ::"
#: library/dataclasses.rst:367 #: library/dataclasses.rst:367
msgid "To create a shallow copy, the following workaround may be used::" msgid "To create a shallow copy, the following workaround may be used::"
msgstr "" msgstr ""
"Pour créer une copie superficielle, la solution de contournement suivante "
"peut être utilisée ::"
#: library/dataclasses.rst:351 #: library/dataclasses.rst:351
#, fuzzy #, fuzzy

View File

@ -30,7 +30,7 @@ msgstr ""
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**A**" msgid "**A**"
msgstr "" msgstr "**A**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`abs`" msgid ":func:`abs`"
@ -58,7 +58,7 @@ msgstr ":func:`ascii`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**B**" msgid "**B**"
msgstr "" msgstr "**B**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`bin`" msgid ":func:`bin`"
@ -82,7 +82,7 @@ msgstr "|func-bytes|_"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**C**" msgid "**C**"
msgstr "" msgstr "*C**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`callable`" msgid ":func:`callable`"
@ -106,7 +106,7 @@ msgstr ":func:`complex`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**D**" msgid "**D**"
msgstr "" msgstr "**D**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`delattr`" msgid ":func:`delattr`"
@ -126,7 +126,7 @@ msgstr ":func:`divmod`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**E**" msgid "**E**"
msgstr "" msgstr "**E**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`enumerate`" msgid ":func:`enumerate`"
@ -142,7 +142,7 @@ msgstr ":func:`exec`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**F**" msgid "**F**"
msgstr "" msgstr "**F**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`filter`" msgid ":func:`filter`"
@ -162,7 +162,7 @@ msgstr "|func-frozenset|_"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**G**" msgid "**G**"
msgstr "" msgstr "**G**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`getattr`" msgid ":func:`getattr`"
@ -174,7 +174,7 @@ msgstr ":func:`globals`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**H**" msgid "**H**"
msgstr "" msgstr "**H**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`hasattr`" msgid ":func:`hasattr`"
@ -194,7 +194,7 @@ msgstr ":func:`hex`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**I**" msgid "**I**"
msgstr "" msgstr "**I**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`id`" msgid ":func:`id`"
@ -222,7 +222,7 @@ msgstr ":func:`iter`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**L**" msgid "**L**"
msgstr "" msgstr "**L**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`len`" msgid ":func:`len`"
@ -238,7 +238,7 @@ msgstr ":func:`locals`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**M**" msgid "**M**"
msgstr "" msgstr "**M**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`map`" msgid ":func:`map`"
@ -258,7 +258,7 @@ msgstr ":func:`min`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**N**" msgid "**N**"
msgstr "" msgstr "**N**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`next`" msgid ":func:`next`"
@ -266,7 +266,7 @@ msgstr ":func:`next`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**O**" msgid "**O**"
msgstr "" msgstr "**O**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`object`" msgid ":func:`object`"
@ -286,7 +286,7 @@ msgstr ":func:`ord`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**P**" msgid "**P**"
msgstr "" msgstr "**P**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`pow`" msgid ":func:`pow`"
@ -302,7 +302,7 @@ msgstr ":func:`property`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**R**" msgid "**R**"
msgstr "" msgstr "**R**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "|func-range|_" msgid "|func-range|_"
@ -322,7 +322,7 @@ msgstr ":func:`round`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**S**" msgid "**S**"
msgstr "" msgstr "**S**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "|func-set|_" msgid "|func-set|_"
@ -358,7 +358,7 @@ msgstr ":func:`super`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**T**" msgid "**T**"
msgstr "" msgstr "**T**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "|func-tuple|_" msgid "|func-tuple|_"
@ -370,7 +370,7 @@ msgstr ":func:`type`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**V**" msgid "**V**"
msgstr "" msgstr "**V**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`vars`" msgid ":func:`vars`"
@ -378,7 +378,7 @@ msgstr ":func:`vars`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**Z**" msgid "**Z**"
msgstr "" msgstr "**Z**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`zip`" msgid ":func:`zip`"
@ -386,7 +386,7 @@ msgstr ":func:`zip`"
#: library/functions.rst:0 #: library/functions.rst:0
msgid "**_**" msgid "**_**"
msgstr "" msgstr "**_**"
#: library/functions.rst:0 #: library/functions.rst:0
msgid ":func:`__import__`" msgid ":func:`__import__`"
@ -407,10 +407,15 @@ msgid ""
"Return an :term:`asynchronous iterator` for an :term:`asynchronous " "Return an :term:`asynchronous iterator` for an :term:`asynchronous "
"iterable`. Equivalent to calling ``x.__aiter__()``." "iterable`. Equivalent to calling ``x.__aiter__()``."
msgstr "" msgstr ""
"Renvoie un :term:`itérateur asynchrone <asynchronous iterator>` pour l':term:"
"`itérable asynchrone <asynchronous iterable>` donné. Équivaut à appeler ``x."
"__aiter__()``."
#: library/functions.rst:69 #: library/functions.rst:69
msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant."
msgstr "" msgstr ""
"Remarque : contrairement à :func:`iter`, :func:`aiter` n'a pas de variante à "
"2 arguments."
#: library/functions.rst:75 #: library/functions.rst:75
msgid "" msgid ""
@ -425,11 +430,16 @@ msgid ""
"When awaited, return the next item from the given :term:`asynchronous " "When awaited, return the next item from the given :term:`asynchronous "
"iterator`, or *default* if given and the iterator is exhausted." "iterator`, or *default* if given and the iterator is exhausted."
msgstr "" msgstr ""
"Lorsqu'il est attendu, renvoie l'élément suivant à partir de l':term:"
"`itérateur asynchrone <asynchronous iterator>` donné, ou *default* s'il est "
"fourni et que l'itérateur est épuisé."
#: library/functions.rst:90 #: library/functions.rst:90
msgid "" msgid ""
"This is the async variant of the :func:`next` builtin, and behaves similarly." "This is the async variant of the :func:`next` builtin, and behaves similarly."
msgstr "" msgstr ""
"Il s'agit de la variante asynchrone de la fonction native :func:`next` et "
"elle se comporte de la même manière."
#: library/functions.rst:93 #: library/functions.rst:93
#, fuzzy #, fuzzy
@ -743,6 +753,9 @@ msgid ""
"``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) and " "``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) and "
"have a new ``__wrapped__`` attribute." "have a new ``__wrapped__`` attribute."
msgstr "" msgstr ""
"les méthodes de classe peuvent maintenant hériter des attributs des méthodes "
"(``__module__``, ``__name__``, ``__qualname__``, ``__doc__`` et "
"``__annotations__``) et ont un nouvel attribut ``__wrapped__``."
#: library/functions.rst:278 #: library/functions.rst:278
msgid "" msgid ""
@ -1224,6 +1237,8 @@ msgid ""
"If the given source is a string, then leading and trailing spaces and tabs " "If the given source is a string, then leading and trailing spaces and tabs "
"are stripped." "are stripped."
msgstr "" msgstr ""
"Si la source donnée est une chaîne, les espaces de début et de fin et les "
"tabulations sont supprimées."
#: library/functions.rst:543 #: library/functions.rst:543
msgid "" msgid ""
@ -1535,6 +1550,10 @@ msgid ""
"with two leading underscores) name in order to retrieve it with :func:" "with two leading underscores) name in order to retrieve it with :func:"
"`getattr`." "`getattr`."
msgstr "" msgstr ""
"étant donné que la :ref:`transformation des noms privés <private-name-"
"mangling>` se produit au moment de la compilation, il faut modifier "
"manuellement le nom d'un attribut privé (attributs avec deux traits de "
"soulignement en tête) afin de le récupérer avec :func:`getattr`."
#: library/functions.rst:740 #: library/functions.rst:740
#, fuzzy #, fuzzy
@ -1678,7 +1697,7 @@ msgstr ""
#: library/functions.rst:826 #: library/functions.rst:826
msgid "This is the address of the object in memory." msgid "This is the address of the object in memory."
msgstr "" msgstr "c'est l'adresse de l'objet en mémoire."
#: library/functions.rst:828 #: library/functions.rst:828
#, fuzzy #, fuzzy

View File

@ -17,14 +17,18 @@ msgstr ""
#: library/graphlib.rst:2 #: library/graphlib.rst:2
msgid ":mod:`graphlib` --- Functionality to operate with graph-like structures" msgid ":mod:`graphlib` --- Functionality to operate with graph-like structures"
msgstr "" msgstr ""
":mod:`graphlib` — Fonctionnalités pour travailler avec des structures de "
"type graphe"
#: library/graphlib.rst:8 #: library/graphlib.rst:8
msgid "**Source code:** :source:`Lib/graphlib.py`" msgid "**Source code:** :source:`Lib/graphlib.py`"
msgstr "" msgstr "**Code source:** :source:`Lib/graphlib.py`"
#: library/graphlib.rst:20 #: library/graphlib.rst:20
msgid "Provides functionality to topologically sort a graph of hashable nodes." msgid "Provides functionality to topologically sort a graph of hashable nodes."
msgstr "" msgstr ""
"Fournit les fonctionnalités pour trier topologiquement un graphe de nœuds "
"hachables."
#: library/graphlib.rst:22 #: library/graphlib.rst:22
msgid "" msgid ""
@ -37,6 +41,14 @@ msgid ""
"topological ordering is possible if and only if the graph has no directed " "topological ordering is possible if and only if the graph has no directed "
"cycles, that is, if it is a directed acyclic graph." "cycles, that is, if it is a directed acyclic graph."
msgstr "" msgstr ""
"L'ordre topologique est un ordre linéaire des sommets d'un graphe afin que "
"pour chaque arête u → v d'un sommet u à un sommet v, cet ordre va placer le "
"sommet u avant le sommet v. Par exemple, les sommets d'un graphe peuvent "
"représenter une tâche à faire et une arête peut représenter la contrainte "
"comme quoi telle tâche doit être réalisée avant telle autre. Dans cet "
"exemple, un ordre topologique est simplement une séquence valide pour ces "
"tâches. Cet ordre n'est possible que si le graphe n'a pas de circuit, c'est-"
"à-dire si c'est un graphe orienté acyclique."
#: library/graphlib.rst:31 #: library/graphlib.rst:31
msgid "" msgid ""
@ -46,26 +58,35 @@ msgid ""
"nodes that have edges that point to the value in the key). Additional nodes " "nodes that have edges that point to the value in the key). Additional nodes "
"can be added to the graph using the :meth:`~TopologicalSorter.add` method." "can be added to the graph using the :meth:`~TopologicalSorter.add` method."
msgstr "" msgstr ""
"Si l'argument optionnel *graph* est fourni, cela doit être un dictionnaire "
"représentant un graphe acyclique avec comme clés les nœuds et comme valeurs "
"des itérables sur les prédécesseurs de ces nœuds dans le graphe (les nœuds "
"qui ont des arêtes qui pointent vers la valeur de la clé). Les nœuds "
"s'ajoutent en utilisant la méthode :meth:`~TopologicalSorter.add`"
#: library/graphlib.rst:37 #: library/graphlib.rst:37
msgid "" msgid ""
"In the general case, the steps required to perform the sorting of a given " "In the general case, the steps required to perform the sorting of a given "
"graph are as follows:" "graph are as follows:"
msgstr "" msgstr ""
"De manière générale, les étapes nécessaires pour trier un graphe donné sont "
"les suivantes :"
#: library/graphlib.rst:40 #: library/graphlib.rst:40
msgid "" msgid ""
"Create an instance of the :class:`TopologicalSorter` with an optional " "Create an instance of the :class:`TopologicalSorter` with an optional "
"initial graph." "initial graph."
msgstr "" msgstr ""
"créer une instance de la classe :class:`TopologicalSorter` avec "
"éventuellement un graphe initial ;"
#: library/graphlib.rst:42 #: library/graphlib.rst:42
msgid "Add additional nodes to the graph." msgid "Add additional nodes to the graph."
msgstr "" msgstr "ajouter d'autres nœuds au graphe ;"
#: library/graphlib.rst:43 #: library/graphlib.rst:43
msgid "Call :meth:`~TopologicalSorter.prepare` on the graph." msgid "Call :meth:`~TopologicalSorter.prepare` on the graph."
msgstr "" msgstr "appeler :meth:`~TopologicalSorter.prepare` sur le graphe ;"
#: library/graphlib.rst:44 #: library/graphlib.rst:44
msgid "" msgid ""
@ -73,6 +94,10 @@ msgid ""
"nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. " "nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. "
"Call :meth:`~TopologicalSorter.done` on each node as it finishes processing." "Call :meth:`~TopologicalSorter.done` on each node as it finishes processing."
msgstr "" msgstr ""
"tant que :meth:`~TopologicalSorter.is_active` est à ``True``, itérer sur les "
"nœuds renvoyés par :meth:`~TopologicalSorter.get_ready` pour les traiter. "
"Appeler :meth:`~TopologicalSorter.done` sur chaque nœud une fois le "
"traitement terminé."
#: library/graphlib.rst:49 #: library/graphlib.rst:49
msgid "" msgid ""
@ -80,24 +105,34 @@ msgid ""
"no parallelism is involved, the convenience method :meth:`TopologicalSorter." "no parallelism is involved, the convenience method :meth:`TopologicalSorter."
"static_order` can be used directly:" "static_order` can be used directly:"
msgstr "" msgstr ""
"Si vous souhaitez simplement trier des nœuds du graphe sans parallélisme, la "
"méthode :meth:`TopologicalSorter.static_order` peut être utilisée "
"directement :"
#: library/graphlib.rst:60 #: library/graphlib.rst:60
msgid "" msgid ""
"The class is designed to easily support parallel processing of the nodes as " "The class is designed to easily support parallel processing of the nodes as "
"they become ready. For instance::" "they become ready. For instance::"
msgstr "" msgstr ""
"La classe est conçue pour prendre facilement en charge le traitement en "
"parallèle des nœuds quand ils deviennent disponibles. Par exemple ::"
#: library/graphlib.rst:87 #: library/graphlib.rst:87
msgid "" msgid ""
"Add a new node and its predecessors to the graph. Both the *node* and all " "Add a new node and its predecessors to the graph. Both the *node* and all "
"elements in *predecessors* must be hashable." "elements in *predecessors* must be hashable."
msgstr "" msgstr ""
"Ajoute un nouveau nœud et son prédécesseur dans le graphe. Le *node* ainsi "
"que tous les éléments dans *predecessors* doivent être hachables."
#: library/graphlib.rst:90 #: library/graphlib.rst:90
msgid "" msgid ""
"If called multiple times with the same node argument, the set of " "If called multiple times with the same node argument, the set of "
"dependencies will be the union of all dependencies passed in." "dependencies will be the union of all dependencies passed in."
msgstr "" msgstr ""
"S'il est appelé plusieurs fois avec le même nœud en tant qu'argument, "
"l'ensemble des dépendances sera l'union de toutes les dépendances qui auront "
"été transmises."
#: library/graphlib.rst:93 #: library/graphlib.rst:93
msgid "" msgid ""
@ -106,11 +141,17 @@ msgid ""
"provided before is included among *predecessors* it will be automatically " "provided before is included among *predecessors* it will be automatically "
"added to the graph with no predecessors of its own." "added to the graph with no predecessors of its own."
msgstr "" msgstr ""
"Il est possible d'ajouter un nœud sans dépendance (*predecessors* n'est pas "
"fourni) ou de fournir une dépendance deux fois. Si un nœud qui n'a jamais "
"été fourni auparavant est inclus dans *predecessors* il sera automatiquement "
"ajouté au graphe sans prédécesseur lui-même."
#: library/graphlib.rst:98 #: library/graphlib.rst:98
msgid "" msgid ""
"Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`." "Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`."
msgstr "" msgstr ""
"Lève une :exc:`ValueError` si appelée après :meth:`~TopologicalSorter."
"prepare`."
#: library/graphlib.rst:102 #: library/graphlib.rst:102
msgid "" msgid ""
@ -121,6 +162,12 @@ msgid ""
"be modified, and therefore no more nodes can be added using :meth:" "be modified, and therefore no more nodes can be added using :meth:"
"`~TopologicalSorter.add`." "`~TopologicalSorter.add`."
msgstr "" msgstr ""
"Indique que le graphe est terminé et vérifie les circuits du graphe. Si un "
"circuit est détecté, une :exc:`CycleError` est levée mais :meth:"
"`~TopologicalSorter.get_ready` peut encore être utilisée pour obtenir autant "
"de nœuds que possible avant que les circuits ne bloquent la progression. "
"Après un appel de cette fonction, le graphe ne peut pas être modifié, et "
"donc aucun nœud ne peut être ajouté avec :meth:`~TopologicalSorter.add`."
#: library/graphlib.rst:111 #: library/graphlib.rst:111
msgid "" msgid ""
@ -131,22 +178,32 @@ msgid ""
"`TopologicalSorter.done` is less than the number that have been returned by :" "`TopologicalSorter.done` is less than the number that have been returned by :"
"meth:`TopologicalSorter.get_ready`." "meth:`TopologicalSorter.get_ready`."
msgstr "" msgstr ""
"Renvoie ``True`` si une progression peut être faite et ``False`` dans le cas "
"contraire. La progression est possible si des circuits ne bloquent pas la "
"résolution ou qu'il reste des nœuds prêts qui n'ont pas encore été renvoyés "
"par :meth:`TopologicalSorter.get_ready` ou que le nombre de nœuds marqués :"
"meth:`TopologicalSorter.done` est inférieur au nombre qui a été renvoyé par :"
"meth:`TopologicalSorter.get_ready`."
#: library/graphlib.rst:118 #: library/graphlib.rst:118
msgid "" msgid ""
"The :meth:`~TopologicalSorter.__bool__` method of this class defers to this " "The :meth:`~TopologicalSorter.__bool__` method of this class defers to this "
"function, so instead of::" "function, so instead of::"
msgstr "" msgstr ""
"La méthode :meth:`~TopologicalSorter.__bool__` de cette classe renvoie à "
"cette fonction donc au lieu de ::"
#: library/graphlib.rst:124 #: library/graphlib.rst:124
msgid "it is possible to simply do::" msgid "it is possible to simply do::"
msgstr "" msgstr "il est plus simple de faire ::"
#: library/graphlib.rst:152 #: library/graphlib.rst:152
msgid "" msgid ""
"Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter." "Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter."
"prepare` previously." "prepare` previously."
msgstr "" msgstr ""
"Lève une :exc:`ValueError` si l'appel à :meth:`~TopologicalSorter.prepare` "
"n'a pas été fait au préalable."
#: library/graphlib.rst:134 #: library/graphlib.rst:134
msgid "" msgid ""
@ -154,6 +211,9 @@ msgid ""
"processed, unblocking any successor of each node in *nodes* for being " "processed, unblocking any successor of each node in *nodes* for being "
"returned in the future by a call to :meth:`TopologicalSorter.get_ready`." "returned in the future by a call to :meth:`TopologicalSorter.get_ready`."
msgstr "" msgstr ""
"Marque un ensemble de nœuds renvoyé par :meth:`TopologicalSorter.get_ready` "
"comme traités, permettant aux successeurs de chaque nœud de *nodes* d'être "
"renvoyés lors d'un prochain appel à :meth:`~TopologicalSorter.get_ready`."
#: library/graphlib.rst:138 #: library/graphlib.rst:138
msgid "" msgid ""
@ -163,6 +223,11 @@ msgid ""
"meth:`~TopologicalSorter.prepare` or if node has not yet been returned by :" "meth:`~TopologicalSorter.prepare` or if node has not yet been returned by :"
"meth:`~TopologicalSorter.get_ready`." "meth:`~TopologicalSorter.get_ready`."
msgstr "" msgstr ""
"Lève une :exc:`ValueError` si n'importe quel nœud dans *nodes* a déjà été "
"marqué comme traité par un précédent appel à cette méthode ou si un nœud n'a "
"pas été ajouté au graphe en utilisant :meth:`TopologicalSorter.add`, si "
"l'appel est fait sans appel à :meth:`~TopologicalSorter.prepare` ou si le "
"nœud n'a pas encore été renvoyé par :meth:`~TopologicalSorter.get_ready`."
#: library/graphlib.rst:146 #: library/graphlib.rst:146
msgid "" msgid ""
@ -172,6 +237,11 @@ msgid ""
"nodes that have all their predecessors already processed. Once no more " "nodes that have all their predecessors already processed. Once no more "
"progress can be made, empty tuples are returned." "progress can be made, empty tuples are returned."
msgstr "" msgstr ""
"Renvoie un *n*-uplet avec tous les nœuds prêts. Renvoie d'abord tous les "
"nœuds sans prédécesseurs, et une fois marqués comme traités avec un appel "
"de :meth:`TopologicalSorter.done`, les autres appels renvoient tous les "
"nouveaux nœuds dont tous les prédécesseurs sont traités. Une fois que la "
"progression n'est plus possible, des tuples vides sont renvoyés."
#: library/graphlib.rst:157 #: library/graphlib.rst:157
msgid "" msgid ""
@ -186,6 +256,8 @@ msgid ""
"The particular order that is returned may depend on the specific order in " "The particular order that is returned may depend on the specific order in "
"which the items were inserted in the graph. For example:" "which the items were inserted in the graph. For example:"
msgstr "" msgstr ""
"Le tri obtenu peut dépendre de l'ordre dans lequel les éléments ont été "
"ajoutés dans le graphe. Par exemple :"
#: library/graphlib.rst:186 #: library/graphlib.rst:186
msgid "" msgid ""
@ -194,10 +266,14 @@ msgid ""
"`~TopologicalSorter.get_ready`) and the order between them is determined by " "`~TopologicalSorter.get_ready`) and the order between them is determined by "
"the order of insertion." "the order of insertion."
msgstr "" msgstr ""
"Ceci est dû au fait que \"0\" et \"2\" sont au même niveau dans le graphe "
"(ils auraient été renvoyés dans le même appel à :meth:`~TopologicalSorter."
"get_ready`) et l'ordre entre eux est déterminé par l'ordre lors de "
"l'insertion."
#: library/graphlib.rst:192 #: library/graphlib.rst:192
msgid "If any cycle is detected, :exc:`CycleError` will be raised." msgid "If any cycle is detected, :exc:`CycleError` will be raised."
msgstr "" msgstr "Si un circuit est détecté alors une :exc:`CycleError` est levée."
#: library/graphlib.rst:198 #: library/graphlib.rst:198
msgid "Exceptions" msgid "Exceptions"
@ -205,7 +281,7 @@ msgstr "Exceptions"
#: library/graphlib.rst:199 #: library/graphlib.rst:199
msgid "The :mod:`graphlib` module defines the following exception classes:" msgid "The :mod:`graphlib` module defines the following exception classes:"
msgstr "" msgstr "Le module :mod:`graphlib` définit les classes d'exceptions suivantes :"
#: library/graphlib.rst:203 #: library/graphlib.rst:203
msgid "" msgid ""
@ -213,6 +289,9 @@ msgid ""
"cycles exist in the working graph. If multiple cycles exist, only one " "cycles exist in the working graph. If multiple cycles exist, only one "
"undefined choice among them will be reported and included in the exception." "undefined choice among them will be reported and included in the exception."
msgstr "" msgstr ""
"Une classe héritant de :exc:`ValueError` levée par :meth:`TopologicalSorter."
"prepare` si un circuit existe dans le graphe courant. Si plusieurs circuits "
"existent, un seul est inclus dans l'exception."
#: library/graphlib.rst:207 #: library/graphlib.rst:207
msgid "" msgid ""
@ -222,3 +301,8 @@ msgid ""
"predecessor of the next node in the list. In the reported list, the first " "predecessor of the next node in the list. In the reported list, the first "
"and the last node will be the same, to make it clear that it is cyclic." "and the last node will be the same, to make it clear that it is cyclic."
msgstr "" msgstr ""
"On accède au circuit détecté via le second élément de l'attribut :attr:"
"`~CycleError.args` de l'instance de l'exception. Cet attribut est une liste "
"de nœuds où chaque nœud est, dans le graphe, un prédécesseur immédiat du "
"nœud suivant de la liste. Dans la liste renvoyée, le premier et le dernier "
"nœud sont les mêmes afin de bien indiquer que c'est un circuit."

View File

@ -671,7 +671,7 @@ msgstr ""
#: library/http.server.rst:495 #: library/http.server.rst:495
msgid "Security Considerations" msgid "Security Considerations"
msgstr "" msgstr "Considérations de sécurité"
#: library/http.server.rst:499 #: library/http.server.rst:499
msgid "" msgid ""

View File

@ -1129,7 +1129,7 @@ msgstr ""
#: library/idle.rst:478 #: library/idle.rst:478
msgid "Search and Replace" msgid "Search and Replace"
msgstr "" msgstr "Recherche et substitution"
#: library/idle.rst:480 #: library/idle.rst:480
msgid "" msgid ""

View File

@ -710,10 +710,11 @@ msgstr ""
#: library/importlib.rst:531 #: library/importlib.rst:531
msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised."
msgstr "" msgstr ""
"Si la ressource ne peut pas être trouvée, :exc:`FileNotFoundError` est levée."
#: library/importlib.rst:536 #: library/importlib.rst:536
msgid "Returns the file system path to the *resource*." msgid "Returns the file system path to the *resource*."
msgstr "" msgstr "Renvoie le chemin de *resource* dans le système de fichiers."
#: library/importlib.rst:538 #: library/importlib.rst:538
msgid "" msgid ""

File diff suppressed because it is too large Load Diff

View File

@ -227,6 +227,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``open`` with arguments ``path``, " "Raises an :ref:`auditing event <auditing>` ``open`` with arguments ``path``, "
"``mode``, ``flags``." "``mode``, ``flags``."
msgstr "" msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``open`` avec les arguments "
"``path``, ``mode``, ``flags``."
#: library/io.rst:175 #: library/io.rst:175
msgid "" msgid ""

View File

@ -1520,7 +1520,7 @@ msgstr ""
#: library/logging.rst:0 #: library/logging.rst:0
msgid "name" msgid "name"
msgstr "" msgstr "nom"
#: library/logging.rst:928 #: library/logging.rst:928
msgid "``%(name)s``" msgid "``%(name)s``"

View File

@ -25,6 +25,11 @@ msgid ""
"Windows implementations of their services. For example, the :mod:`getpass` " "Windows implementations of their services. For example, the :mod:`getpass` "
"module uses this in the implementation of the :func:`getpass` function." "module uses this in the implementation of the :func:`getpass` function."
msgstr "" msgstr ""
"Ces fonctions permettent d'accéder à certaines capacités utiles sur les "
"plateformes Windows. Certains modules de plus haut niveau utilisent ces "
"fonctions pour construire les implémentations Windows de leurs services. "
"Par exemple, le module :mod:`getpass` les utilise dans l'implémentation de "
"la fonction :func:`getpass`."
#: library/msvcrt.rst:17 #: library/msvcrt.rst:17
msgid "" msgid ""
@ -45,10 +50,12 @@ msgid ""
"Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " "Operations in this module now raise :exc:`OSError` where :exc:`IOError` was "
"raised." "raised."
msgstr "" msgstr ""
"Les opérations de ce module lèvent désormais :exc:`OSError` au lieu de :exc:"
"`IOError`."
#: library/msvcrt.rst:33 #: library/msvcrt.rst:33
msgid "File Operations" msgid "File Operations"
msgstr "" msgstr "Opérations sur les fichiers"
#: library/msvcrt.rst:38 #: library/msvcrt.rst:38
msgid "" msgid ""
@ -73,16 +80,24 @@ msgid ""
"immediately tries again after 1 second. If, after 10 attempts, the bytes " "immediately tries again after 1 second. If, after 10 attempts, the bytes "
"cannot be locked, :exc:`OSError` is raised." "cannot be locked, :exc:`OSError` is raised."
msgstr "" msgstr ""
"Verrouille les octets spécifiés. Si les octets ne peuvent pas être "
"verrouillés, le programme réessaie immédiatement après 1 seconde. Si, après "
"10 tentatives, les octets ne peuvent pas être verrouillés, :exc:`OSError` "
"est levée."
#: library/msvcrt.rst:59 #: library/msvcrt.rst:59
msgid "" msgid ""
"Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is " "Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is "
"raised." "raised."
msgstr "" msgstr ""
"Verrouille les octets spécifiés. Si les octets ne peuvent pas être "
"verrouillés, :exc:`OSError` est levée."
#: library/msvcrt.rst:65 #: library/msvcrt.rst:65
msgid "Unlocks the specified bytes, which must have been previously locked." msgid "Unlocks the specified bytes, which must have been previously locked."
msgstr "" msgstr ""
"Déverrouille les octets spécifiés, qui doivent avoir été précédemment "
"verrouillés."
#: library/msvcrt.rst:70 #: library/msvcrt.rst:70
msgid "" msgid ""
@ -119,11 +134,11 @@ msgstr ""
#: library/msvcrt.rst:96 #: library/msvcrt.rst:96
msgid "Console I/O" msgid "Console I/O"
msgstr "" msgstr "Entrées-sorties sur un terminal"
#: library/msvcrt.rst:101 #: library/msvcrt.rst:101
msgid "Return ``True`` if a keypress is waiting to be read." msgid "Return ``True`` if a keypress is waiting to be read."
msgstr "" msgstr "Renvoie ``True`` si une touche est en attente de lecture."
#: library/msvcrt.rst:106 #: library/msvcrt.rst:106
msgid "" msgid ""
@ -138,6 +153,8 @@ msgstr ""
#: library/msvcrt.rst:116 #: library/msvcrt.rst:116
msgid "Wide char variant of :func:`getch`, returning a Unicode value." msgid "Wide char variant of :func:`getch`, returning a Unicode value."
msgstr "" msgstr ""
"Variante de :func:`getch` qui lit un caractère large et renvoie une valeur "
"Unicode."
#: library/msvcrt.rst:121 #: library/msvcrt.rst:121
msgid "" msgid ""
@ -148,6 +165,8 @@ msgstr ""
#: library/msvcrt.rst:127 #: library/msvcrt.rst:127
msgid "Wide char variant of :func:`getche`, returning a Unicode value." msgid "Wide char variant of :func:`getche`, returning a Unicode value."
msgstr "" msgstr ""
"Variante de :func:`getche` qui lit un caractère large et renvoie une valeur "
"Unicode."
#: library/msvcrt.rst:132 #: library/msvcrt.rst:132
msgid "Print the byte string *char* to the console without buffering." msgid "Print the byte string *char* to the console without buffering."
@ -156,6 +175,8 @@ msgstr ""
#: library/msvcrt.rst:137 #: library/msvcrt.rst:137
msgid "Wide char variant of :func:`putch`, accepting a Unicode value." msgid "Wide char variant of :func:`putch`, accepting a Unicode value."
msgstr "" msgstr ""
"Variante de :func:`putch` qui accepte une valeur Unicode et l'écrit comme "
"caractère large."
#: library/msvcrt.rst:142 #: library/msvcrt.rst:142
msgid "" msgid ""
@ -166,6 +187,8 @@ msgstr ""
#: library/msvcrt.rst:148 #: library/msvcrt.rst:148
msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value." msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value."
msgstr "" msgstr ""
"Variante de :func:`ungetch` qui accepte une valeur Unicode et l'écrit comme "
"caractère large."
#: library/msvcrt.rst:154 #: library/msvcrt.rst:154
#, fuzzy #, fuzzy

View File

@ -137,7 +137,7 @@ msgstr ""
#: library/nntplib.rst:150 #: library/nntplib.rst:150
msgid "Exception raised when an unexpected reply is received from the server." msgid "Exception raised when an unexpected reply is received from the server."
msgstr "" msgstr "Exception levée lorsqu'une réponse inattendue est reçue du serveur."
#: library/nntplib.rst:155 #: library/nntplib.rst:155
msgid "" msgid ""

View File

@ -156,6 +156,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" "filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`." "c:type:`PyConfig`."
msgstr "" msgstr ""
"L':term:`encodage du système de fichiers et gestionnaire d'erreurs associé "
"<filesystem encoding and error handler>` sont configurés au démarrage de "
"Python par la fonction :c:func:`PyConfig_Read` : regardez :c:member:"
"`~PyConfig.filesystem_encoding` et :c:member:`~PyConfig.filesystem_errors` "
"dans les membres de :c:type:`PyConfig`."
#: library/os.rst:79 #: library/os.rst:79
msgid "" msgid ""

View File

@ -37,6 +37,8 @@ msgid ""
"Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " "Operations in this module now raise :exc:`OSError` where :exc:`IOError` was "
"raised." "raised."
msgstr "" msgstr ""
"Les opérations de ce module lèvent désormais :exc:`OSError` au lieu de :exc:"
"`IOError`."
#: library/ossaudiodev.rst:55 #: library/ossaudiodev.rst:55
msgid "" msgid ""

View File

@ -359,6 +359,8 @@ msgid ""
"If the path starts with more than two successive slashes, :class:`~pathlib." "If the path starts with more than two successive slashes, :class:`~pathlib."
"PurePosixPath` collapses them::" "PurePosixPath` collapses them::"
msgstr "" msgstr ""
"Si le chemin commence par plus de deux slashes successifs, :class:`~pathlib."
"PurePosixPath` n'en conserve qu'un ::"
#: library/pathlib.rst:330 #: library/pathlib.rst:330
msgid "" msgid ""
@ -366,6 +368,9 @@ msgid ""
"paragraph `4.11 Pathname Resolution <https://pubs.opengroup.org/" "paragraph `4.11 Pathname Resolution <https://pubs.opengroup.org/"
"onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_:" "onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_:"
msgstr "" msgstr ""
"Ce comportement se conforme au paragraphe 4.11 `Pathname Resolution <https://"
"pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04."
"html#tag_04_11>`_ des *Open Group Base Specifications* version 6 :"
#: library/pathlib.rst:334 #: library/pathlib.rst:334
msgid "" msgid ""

View File

@ -127,7 +127,7 @@ msgstr ""
#: library/pyexpat.rst:122 #: library/pyexpat.rst:122
msgid "XMLParser Objects" msgid "XMLParser Objects"
msgstr "" msgstr "Objets XMLParser"
#: library/pyexpat.rst:124 #: library/pyexpat.rst:124
msgid ":class:`xmlparser` objects have the following methods:" msgid ":class:`xmlparser` objects have the following methods:"

View File

@ -1389,7 +1389,7 @@ msgstr "Correspond à l'option de groupe ``(?x)``."
#: library/re.rst:723 #: library/re.rst:723
msgid "Functions" msgid "Functions"
msgstr "" msgstr "Fonctions"
#: library/re.rst:727 #: library/re.rst:727
msgid "" msgid ""
@ -1754,7 +1754,7 @@ msgstr "Vide le cache d'expressions rationnelles."
#: library/re.rst:989 #: library/re.rst:989
msgid "Exceptions" msgid "Exceptions"
msgstr "" msgstr "Exceptions"
#: library/re.rst:993 #: library/re.rst:993
msgid "" msgid ""

View File

@ -1568,7 +1568,7 @@ msgstr ""
#: library/socket.rst:0 #: library/socket.rst:0
msgid "platform" msgid "platform"
msgstr "" msgstr "``platform``"
#: library/socket.rst:1360 #: library/socket.rst:1360
msgid "Windows" msgid "Windows"

View File

@ -52,27 +52,35 @@ msgstr ""
#: library/sqlite3.rst:34 #: library/sqlite3.rst:34
msgid "This document includes four main sections:" msgid "This document includes four main sections:"
msgstr "" msgstr "Ce document inclus 4 sections principales :"
#: library/sqlite3.rst:36 #: library/sqlite3.rst:36
msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module." msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module."
msgstr "" msgstr ""
":ref:`tutoriel sqlite3 <sqlite3-tutorial>` explique comment utiliser le "
"module :mod:`!sqlite3`."
#: library/sqlite3.rst:37 #: library/sqlite3.rst:37
msgid "" msgid ""
":ref:`sqlite3-reference` describes the classes and functions this module " ":ref:`sqlite3-reference` describes the classes and functions this module "
"defines." "defines."
msgstr "" msgstr ""
":ref:`référence sqlite3 <sqlite3-reference>` décrit les classes et les "
"fonctions que ce module définit."
#: library/sqlite3.rst:39 #: library/sqlite3.rst:39
msgid ":ref:`sqlite3-howtos` details how to handle specific tasks." msgid ":ref:`sqlite3-howtos` details how to handle specific tasks."
msgstr "" msgstr ""
":ref:`guide sqlite3 <sqlite3-howtos>` détaille comment gérer des tâches "
"spécifiques."
#: library/sqlite3.rst:40 #: library/sqlite3.rst:40
msgid "" msgid ""
":ref:`sqlite3-explanation` provides in-depth background on transaction " ":ref:`sqlite3-explanation` provides in-depth background on transaction "
"control." "control."
msgstr "" msgstr ""
":ref:`explications sqlite3 <sqlite3-explanation>` propose un contexte "
"détaillé du contrôle de transaction."
#: library/sqlite3.rst:47 #: library/sqlite3.rst:47
msgid "https://www.sqlite.org" msgid "https://www.sqlite.org"
@ -104,7 +112,7 @@ msgstr "PEP écrite par Marc-André Lemburg."
#: library/sqlite3.rst:66 #: library/sqlite3.rst:66
msgid "Tutorial" msgid "Tutorial"
msgstr "" msgstr "Tutoriel"
#: library/sqlite3.rst:68 #: library/sqlite3.rst:68
msgid "" msgid ""
@ -112,6 +120,10 @@ msgid ""
"basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding " "basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding "
"of database concepts, including `cursors`_ and `transactions`_." "of database concepts, including `cursors`_ and `transactions`_."
msgstr "" msgstr ""
"Dans ce tutoriel, vous allez créer une base de données des films des Monty "
"Python en utilisant les fonctionnalités de base de :mod:`!sqlite3`. Cela "
"nécessite une compréhension élémentaire des concepts des bases de données, "
"notamment les `curseurs`_ et les `transactions`_."
#: library/sqlite3.rst:73 #: library/sqlite3.rst:73
msgid "" msgid ""
@ -120,12 +132,19 @@ msgid ""
"create a connection to the database :file:`tutorial.db` in the current " "create a connection to the database :file:`tutorial.db` in the current "
"working directory, implicitly creating it if it does not exist:" "working directory, implicitly creating it if it does not exist:"
msgstr "" msgstr ""
"Tout dabord, nous devons créer une nouvelle base de données et ouvrir une "
"connexion à la base de données pour permettre à :mod:`!sqlite3` de "
"travailler avec elle. Appelez :func:`sqlite3.connect` pour créer une "
"connexion à la base de données :file:`tutorial.db` dans le répertoire de "
"travail actuel, en la créant implicitement si elle nexiste pas :"
#: library/sqlite3.rst:84 #: library/sqlite3.rst:84
msgid "" msgid ""
"The returned :class:`Connection` object ``con`` represents the connection to " "The returned :class:`Connection` object ``con`` represents the connection to "
"the on-disk database." "the on-disk database."
msgstr "" msgstr ""
"Lobjet :class:`Connection` renvoyé — ``con`` — représente la connexion à la "
"base de données sur disque."
#: library/sqlite3.rst:87 #: library/sqlite3.rst:87
msgid "" msgid ""
@ -133,6 +152,9 @@ msgid ""
"will need to use a database cursor. Call :meth:`con.cursor() <Connection." "will need to use a database cursor. Call :meth:`con.cursor() <Connection."
"cursor>` to create the :class:`Cursor`:" "cursor>` to create the :class:`Cursor`:"
msgstr "" msgstr ""
"Afin dexécuter les instructions SQL et de récupérer les résultats des "
"requêtes SQL, nous devrons utiliser un curseur de base de données. Appelez :"
"meth:`con.cursor() <Connection.cursor>` pour créer la :class:`Cursor` :"
#: library/sqlite3.rst:95 #: library/sqlite3.rst:95
msgid "" msgid ""
@ -143,6 +165,14 @@ msgid ""
"types is optional. Execute the ``CREATE TABLE`` statement by calling :meth:" "types is optional. Execute the ``CREATE TABLE`` statement by calling :meth:"
"`cur.execute(...) <Cursor.execute>`:" "`cur.execute(...) <Cursor.execute>`:"
msgstr "" msgstr ""
"Maintenant que nous avons une connexion à la base de données et un curseur, "
"nous pouvons créer une table ``movie`` avec des colonnes pour le titre, "
"lannée de sortie et la note de la critique. Pour plus de simplicité, nous "
"pouvons simplement utiliser les noms des colonnes dans la déclaration de la "
"table — grâce à la fonctionnalité de `typage flexible <flexible typing_>`_ "
"de SQLite, spécifier les types de données est facultatif. Exécutez "
"linstruction ``CREATE TABLE`` en appelant :meth:`cur.execute(…) <Cursor."
"execute>` :"
#: library/sqlite3.rst:111 #: library/sqlite3.rst:111
msgid "" msgid ""
@ -153,6 +183,13 @@ msgid ""
"execute>`, assign the result to ``res``, and call :meth:`res.fetchone() " "execute>`, assign the result to ``res``, and call :meth:`res.fetchone() "
"<Cursor.fetchone>` to fetch the resulting row:" "<Cursor.fetchone>` to fetch the resulting row:"
msgstr "" msgstr ""
"Nous pouvons vérifier que la nouvelle table a été créée en interrogeant la "
"table ``sqlite_master`` intégrée à SQLite, qui devrait maintenant contenir "
"une entrée pour la définition de la table ``movie`` (voir `le schéma Table "
"<The Schema Table_>`_ pour plus de détails). Exécutez cette requête en "
"appelant :meth:`cur.execute(…) <Cursor.execute>`, affectez le résultat à "
"``res``, et appelez :meth:`res.fetchone() <Cursor.fetchone>` pour récupérer "
"la ligne résultante :"
#: library/sqlite3.rst:125 #: library/sqlite3.rst:125
msgid "" msgid ""
@ -160,6 +197,10 @@ msgid ""
"`tuple` containing the table's name. If we query ``sqlite_master`` for a non-" "`tuple` containing the table's name. If we query ``sqlite_master`` for a non-"
"existent table ``spam``, :meth:`!res.fetchone()` will return ``None``:" "existent table ``spam``, :meth:`!res.fetchone()` will return ``None``:"
msgstr "" msgstr ""
"Nous pouvons voir que la table a été créée, puisque la requête retourne un :"
"class:`tuple` contenant le nom de la table. Si nous interrogeons "
"``sqlite_master`` pour une table ``spam`` inexistante, :meth:`!res."
"fetchone()`` retournera ``None`` :"
#: library/sqlite3.rst:136 #: library/sqlite3.rst:136
msgid "" msgid ""
@ -167,6 +208,9 @@ msgid ""
"``INSERT`` statement, once again by calling :meth:`cur.execute(...) <Cursor." "``INSERT`` statement, once again by calling :meth:`cur.execute(...) <Cursor."
"execute>`:" "execute>`:"
msgstr "" msgstr ""
"Maintenant, ajoutez deux lignes de données en tant que littéraux SQL en "
"exécutant une instruction ``INSERT``, une fois encore en appelant :meth:`cur."
"execute(…) <Cursor.execute>` :"
#: library/sqlite3.rst:148 #: library/sqlite3.rst:148
msgid "" msgid ""
@ -175,6 +219,11 @@ msgid ""
"controlling-transactions` for details). Call :meth:`con.commit() <Connection." "controlling-transactions` for details). Call :meth:`con.commit() <Connection."
"commit>` on the connection object to commit the transaction:" "commit>` on the connection object to commit the transaction:"
msgstr "" msgstr ""
"Linstruction ``INSERT`` ouvre implicitement une transaction, qui doit être "
"validée avant que les modifications ne soient enregistrées dans la base de "
"données (voir :ref:`contrôle des transactions SQL <sqlite3-controlling-"
"transactions>` pour plus de détails). Appelez :meth:`con.commit() "
"<Connection.commit>` sur lobjet de connexion pour valider la transaction :"
#: library/sqlite3.rst:158 #: library/sqlite3.rst:158
msgid "" msgid ""
@ -183,18 +232,27 @@ msgid ""
"assign the result to ``res``, and call :meth:`res.fetchall() <Cursor." "assign the result to ``res``, and call :meth:`res.fetchall() <Cursor."
"fetchall>` to return all resulting rows:" "fetchall>` to return all resulting rows:"
msgstr "" msgstr ""
"Nous pouvons vérifier que les données ont été insérées correctement en "
"exécutant une requête ``SELECT``. Utilisez la désormais familière :meth:`cur."
"execute(…) <Cursor.execute>` pour affecter le résultat à ``res``, et "
"appelez :meth:`res.fetchall() <Cursor.fetchall>` pour retourner toutes les "
"lignes résultantes :"
#: library/sqlite3.rst:170 #: library/sqlite3.rst:170
msgid "" msgid ""
"The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each " "The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each "
"containing that row's ``score`` value." "containing that row's ``score`` value."
msgstr "" msgstr ""
"Le résultat est une :class:`liste <list>` de deux :class:`!tuple`\\s, une "
"par ligne, chacun contenant la valeur ``score`` de cette ligne."
#: library/sqlite3.rst:173 #: library/sqlite3.rst:173
msgid "" msgid ""
"Now, insert three more rows by calling :meth:`cur.executemany(...) <Cursor." "Now, insert three more rows by calling :meth:`cur.executemany(...) <Cursor."
"executemany>`:" "executemany>`:"
msgstr "" msgstr ""
"Maintenant, insérez trois lignes supplémentaires en appelant :meth:`cur."
"executemany(…) <Cursor.executemany>` :"
#: library/sqlite3.rst:186 #: library/sqlite3.rst:186
msgid "" msgid ""
@ -203,18 +261,28 @@ msgid ""
"to bind Python values to SQL statements, to avoid `SQL injection attacks`_ " "to bind Python values to SQL statements, to avoid `SQL injection attacks`_ "
"(see :ref:`sqlite3-placeholders` for more details)." "(see :ref:`sqlite3-placeholders` for more details)."
msgstr "" msgstr ""
"Remarquez que les marqueurs ``?`` sont utilisés pour lier les ``data`` à la "
"requête. Utilisez toujours les marqueurs au lieu d:ref:`expressions "
"formatées <tut-formatting>` pour lier les valeurs Python aux instructions "
"SQL, afin déviter les `injections SQL`_ (voir :ref:`placeholder SQL "
"<sqlite3-placeholders>` pour plus de détails)."
#: library/sqlite3.rst:192 #: library/sqlite3.rst:192
msgid "" msgid ""
"We can verify that the new rows were inserted by executing a ``SELECT`` " "We can verify that the new rows were inserted by executing a ``SELECT`` "
"query, this time iterating over the results of the query:" "query, this time iterating over the results of the query:"
msgstr "" msgstr ""
"Nous pouvons vérifier que les nouvelles lignes ont été insérées en exécutant "
"une requête ``SELECT``, cette fois-ci en itérant sur les résultats de la "
"requête :"
#: library/sqlite3.rst:206 #: library/sqlite3.rst:206
msgid "" msgid ""
"Each row is a two-item :class:`tuple` of ``(year, title)``, matching the " "Each row is a two-item :class:`tuple` of ``(year, title)``, matching the "
"columns selected in the query." "columns selected in the query."
msgstr "" msgstr ""
"Chaque ligne est un :class:`tuple` de deux éléments ``(année, titre)``, "
"correspondant aux colonnes sélectionnées dans la requête."
#: library/sqlite3.rst:209 #: library/sqlite3.rst:209
msgid "" msgid ""
@ -222,41 +290,51 @@ msgid ""
"`con.close() <Connection.close>` to close the existing connection, opening a " "`con.close() <Connection.close>` to close the existing connection, opening a "
"new one, creating a new cursor, then querying the database:" "new one, creating a new cursor, then querying the database:"
msgstr "" msgstr ""
"Enfin, vérifiez que la base de données a été écrite sur le disque en "
"appelant :meth:`con.close() <Connection.close>` pour fermer la connexion "
"existante, en ouvrir une nouvelle, créer un nouveau curseur, puis interroger "
"la base de données :"
#: library/sqlite3.rst:224 #: library/sqlite3.rst:224
msgid "" msgid ""
"You've now created an SQLite database using the :mod:`!sqlite3` module, " "You've now created an SQLite database using the :mod:`!sqlite3` module, "
"inserted data and retrieved values from it in multiple ways." "inserted data and retrieved values from it in multiple ways."
msgstr "" msgstr ""
"Vous avez maintenant créé une base de données SQLite à laide du module :mod:"
"`!sqlite3`, inséré des données et récupéré des valeurs de plusieurs façons."
#: library/sqlite3.rst:236 #: library/sqlite3.rst:236
msgid ":ref:`sqlite3-howtos` for further reading:" msgid ":ref:`sqlite3-howtos` for further reading:"
msgstr "" msgstr ":ref:`guide sqlite3 <sqlite3-howtos>` pour une lecture plus poussée:"
#: library/sqlite3.rst:238 #: library/sqlite3.rst:238
msgid ":ref:`sqlite3-placeholders`" msgid ":ref:`sqlite3-placeholders`"
msgstr "" msgstr ":ref:`placeholders sqlite3 <sqlite3-placeholders>`"
#: library/sqlite3.rst:239 #: library/sqlite3.rst:239
msgid ":ref:`sqlite3-adapters`" msgid ":ref:`sqlite3-adapters`"
msgstr "" msgstr ":ref:`adaptateurs sqlite3 <sqlite3-adapters>`"
#: library/sqlite3.rst:240 #: library/sqlite3.rst:240
msgid ":ref:`sqlite3-converters`" msgid ":ref:`sqlite3-converters`"
msgstr "" msgstr ":ref:`convertisseurs sqlite3 <sqlite3-converters>`"
#: library/sqlite3.rst:514 #: library/sqlite3.rst:514
msgid ":ref:`sqlite3-connection-context-manager`" msgid ":ref:`sqlite3-connection-context-manager`"
msgstr "" msgstr ""
":ref:`gestionnaire de contexte de connexion sqlite3 <sqlite3-connection-"
"context-manager>`"
#: library/sqlite3.rst:243 #: library/sqlite3.rst:243
msgid "" msgid ""
":ref:`sqlite3-explanation` for in-depth background on transaction control." ":ref:`sqlite3-explanation` for in-depth background on transaction control."
msgstr "" msgstr ""
":ref:`explications sqlite3 <sqlite3-explanation>` pour un contexte détaillé "
"du contrôle de transaction."
#: library/sqlite3.rst:248 #: library/sqlite3.rst:248
msgid "Reference" msgid "Reference"
msgstr "" msgstr "Référence"
#: library/sqlite3.rst:256 #: library/sqlite3.rst:256
#, fuzzy #, fuzzy
@ -265,17 +343,20 @@ msgstr "Fonctions et constantes du module"
#: library/sqlite3.rst:263 #: library/sqlite3.rst:263
msgid "Open a connection to an SQLite database." msgid "Open a connection to an SQLite database."
msgstr "" msgstr "Ouvrez une connexion à une base de données SQLite."
#: library/sqlite3.rst:0 #: library/sqlite3.rst:0
msgid "Parameters" msgid "Parameters"
msgstr "" msgstr "Paramètres"
#: library/sqlite3.rst:265 #: library/sqlite3.rst:265
msgid "" msgid ""
"The path to the database file to be opened. Pass ``\":memory:\"`` to open a " "The path to the database file to be opened. Pass ``\":memory:\"`` to open a "
"connection to a database that is in RAM instead of on disk." "connection to a database that is in RAM instead of on disk."
msgstr "" msgstr ""
"Le chemin daccès au fichier de la base de données à ouvrir. Passez ``\":"
"memory:\"`` pour ouvrir une connexion à une base de données qui est dans la "
"RAM plutôt que sur le disque."
#: library/sqlite3.rst:271 #: library/sqlite3.rst:271
msgid "" msgid ""
@ -284,6 +365,11 @@ msgid ""
"transaction to modify the database, it will be locked until that transaction " "transaction to modify the database, it will be locked until that transaction "
"is committed. Default five seconds." "is committed. Default five seconds."
msgstr "" msgstr ""
"Le temps (en secondes) que la connexion doit attendre avant de lever une "
"exception, si la base de données est verrouillée par une autre connexion. Si "
"une autre connexion ouvre une transaction pour modifier la base de données, "
"celle-ci sera verrouillée jusquà ce que cette transaction soit validée. Par "
"défaut, cinq secondes."
#: library/sqlite3.rst:278 #: library/sqlite3.rst:278
msgid "" msgid ""
@ -297,6 +383,17 @@ msgid ""
"class:`str` will be returned instead. By default (``0``), type detection is " "class:`str` will be returned instead. By default (``0``), type detection is "
"disabled." "disabled."
msgstr "" msgstr ""
"Contrôle si et comment les types de données non :ref:`nativement pris en "
"charge par SQLite <sqlite3-types>` sont recherchés pour être convertis en "
"types Python, en utilisant les convertisseurs enregistrés avec :func:"
"`register_converter`. Définissez-le à nimporte quelle combinaison (en "
"utilisant ``|``, opérateurs bit-à-bit OR) de :const:`PARSE_DECLTYPES` et :"
"const:`PARSE_COLNAMES` pour activer ceci. Les noms de colonnes ont la "
"priorité sur les types déclarés si les deux drapeaux sont activés. Les types "
"ne peuvent pas être détectés pour les champs générés (par exemple "
"``max(data)``), même si le paramètre *detect_types* est activé ; :class:"
"`str` sera retourné à la place. Par défaut (``0``), la détection des types "
"est désactivée."
#: library/sqlite3.rst:292 #: library/sqlite3.rst:292
msgid "" msgid ""
@ -306,6 +403,12 @@ msgid ""
"opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` " "opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` "
"for more." "for more."
msgstr "" msgstr ""
"Lattribut :attr:`~Connection.isolation_level` de la connexion, contrôlant "
"si et comment les transactions sont ouvertes implicitement. Peut être "
"``\"DEFERRED\"`` (par défaut), ``\"EXCLUSIVE\"`` ou ``\"IMMEDIATE\"`` ; ou "
"``None`` pour désactiver louverture implicite des transactions. Voir :ref:"
"`contrôle des transactions sqlite3 <sqlite3-controlling-transactions>` pour "
"en savoir plus."
#: library/sqlite3.rst:300 #: library/sqlite3.rst:300
msgid "" msgid ""
@ -319,6 +422,8 @@ msgid ""
"A custom subclass of :class:`Connection` to create the connection with, if " "A custom subclass of :class:`Connection` to create the connection with, if "
"not the default :class:`Connection` class." "not the default :class:`Connection` class."
msgstr "" msgstr ""
"Une sous-classe personnalisée de :class:`Connection` pour créer la "
"connexion, si ce nest pas la classe par défaut :class:`Connection`."
#: library/sqlite3.rst:310 #: library/sqlite3.rst:310
msgid "" msgid ""
@ -334,6 +439,12 @@ msgid ""
"absolute. The query string allows passing parameters to SQLite, enabling " "absolute. The query string allows passing parameters to SQLite, enabling "
"various :ref:`sqlite3-uri-tricks`." "various :ref:`sqlite3-uri-tricks`."
msgstr "" msgstr ""
"Si elle a pour valeur ``True``, la base de données est interprétée comme un :"
"abbr:`URI (Uniform Resource Identifier)` avec un chemin daccès au fichier "
"et une chaîne de requête facultative. La partie schéma *doit* être ``\"file:"
"\"``, et le chemin peut être relatif ou absolu. La chaîne dinterrogation "
"permet de passer des paramètres à SQLite, ce qui permet dactiver diverses :"
"ref:`astuces dURI sqlite3 <sqlite3-uri-tricks>`."
#: library/sqlite3.rst:0 #: library/sqlite3.rst:0
#, fuzzy #, fuzzy
@ -360,6 +471,8 @@ msgstr ""
msgid "" msgid ""
"*database* can now also be a :term:`path-like object`, not only a string." "*database* can now also be a :term:`path-like object`, not only a string."
msgstr "" msgstr ""
"*database* peut maintenant aussi être un :term:`objet de type chemin <path-"
"like object>`, et pas seulement une chaîne de caractères."
#: library/sqlite3.rst:335 #: library/sqlite3.rst:335
msgid "The ``sqlite3.connect/handle`` auditing event." msgid "The ``sqlite3.connect/handle`` auditing event."
@ -372,6 +485,11 @@ msgid ""
"performed, other than checking that there are no unclosed string literals " "performed, other than checking that there are no unclosed string literals "
"and the statement is terminated by a semicolon." "and the statement is terminated by a semicolon."
msgstr "" msgstr ""
"Renvoie ``True`` si la déclaration de la chaîne semble contenir une ou "
"plusieurs déclarations SQL complètes. Aucune vérification syntaxique ou "
"analyse syntaxique daucune sorte nest effectuée, si ce nest la "
"vérification quil ny a pas de chaîne littérale non fermée et que "
"linstruction se termine par un point-virgule."
#: library/sqlite3.rst:346 #: library/sqlite3.rst:346
#, fuzzy #, fuzzy
@ -384,6 +502,10 @@ msgid ""
"entered text seems to form a complete SQL statement, or if additional input " "entered text seems to form a complete SQL statement, or if additional input "
"is needed before calling :meth:`~Cursor.execute`." "is needed before calling :meth:`~Cursor.execute`."
msgstr "" msgstr ""
"Cette fonction peut être utile pendant la saisie en ligne de commande pour "
"déterminer si le texte saisi semble former une instruction SQL complète, ou "
"si une saisie supplémentaire est nécessaire avant dappeler :meth:`~Cursor."
"execute`."
#: library/sqlite3.rst:361 #: library/sqlite3.rst:361
msgid "" msgid ""
@ -401,6 +523,10 @@ msgid ""
"its sole argument, and must return a value of a :ref:`type that SQLite " "its sole argument, and must return a value of a :ref:`type that SQLite "
"natively understands <sqlite3-types>`." "natively understands <sqlite3-types>`."
msgstr "" msgstr ""
"Enregistre un *adaptateur* appelable pour adapter le type Python *type* en "
"un type SQLite. Ladaptateur est appelé avec un objet Python de type *type* "
"comme unique argument, et doit retourner une valeur dun :ref:`type que "
"SQLite comprend nativement <sqlite3-types>`."
#: library/sqlite3.rst:378 #: library/sqlite3.rst:378
msgid "" msgid ""
@ -411,12 +537,20 @@ msgid ""
"parameter *detect_types* of :func:`connect` for information regarding how " "parameter *detect_types* of :func:`connect` for information regarding how "
"type detection works." "type detection works."
msgstr "" msgstr ""
"Enregistre le *convertisseur* appelable pour convertir les objets SQLite de "
"type *typename* en un objet Python dun type spécifique. Le convertisseur "
"est invoqué pour toutes les valeurs SQLite de type *typename* ; on lui passe "
"un objet :class:`bytes` et il doit retourner un objet du type Python désiré. "
"Consultez le paramètre *detect_types* de :func:`connect` pour des "
"informations sur le fonctionnement de la détection des types."
#: library/sqlite3.rst:386 #: library/sqlite3.rst:386
msgid "" msgid ""
"Note: *typename* and the name of the type in your query are matched case-" "Note: *typename* and the name of the type in your query are matched case-"
"insensitively." "insensitively."
msgstr "" msgstr ""
"Remarque : *typename* et le nom du type dans votre requête sont comparés "
"sans tenir compte de la casse."
#: library/sqlite3.rst:393 #: library/sqlite3.rst:393
#, fuzzy #, fuzzy
@ -1287,7 +1421,7 @@ msgstr "SQLite type"
#: library/sqlite3.rst:1378 #: library/sqlite3.rst:1378
msgid "``None``" msgid "``None``"
msgstr "" msgstr "``None``"
#: library/sqlite3.rst:1378 #: library/sqlite3.rst:1378
msgid "``NULL``" msgid "``NULL``"

View File

@ -7180,6 +7180,9 @@ msgid ""
"Documentation on how to implement generic classes that can be parameterized " "Documentation on how to implement generic classes that can be parameterized "
"at runtime and understood by static type-checkers." "at runtime and understood by static type-checkers."
msgstr "" msgstr ""
"Documentation sur la manière d'implémenter des classes génériques qui "
"peuvent être paramétrées à l'exécution et comprises par les vérificateurs "
"statiques de types."
#: library/stdtypes.rst:5031 #: library/stdtypes.rst:5031
#, fuzzy #, fuzzy

View File

@ -72,10 +72,13 @@ msgstr ""
"l'interpréteur en cours d'exécution." "l'interpréteur en cours d'exécution."
#: library/sys.rst:38 #: library/sys.rst:38
#, fuzzy
msgid "" msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.addaudithook`` with no " "Raises an :ref:`auditing event <auditing>` ``sys.addaudithook`` with no "
"arguments." "arguments."
msgstr "" msgstr ""
"Déclenche un :ref:`événement d'audit <auditing>` ``sys.addaudithook`` sans "
"arguments."
#: library/sys.rst:40 #: library/sys.rst:40
#, fuzzy #, fuzzy
@ -97,6 +100,9 @@ msgid ""
"See the :ref:`audit events table <audit-events>` for all events raised by " "See the :ref:`audit events table <audit-events>` for all events raised by "
"CPython, and :pep:`578` for the original design discussion." "CPython, and :pep:`578` for the original design discussion."
msgstr "" msgstr ""
"Voir la :ref:`table d'évenements d'audit <audit-events>` pour tous les "
"événements levés par CPython et :pep:`578` pour la discussion originale de "
"ce design."
#: library/sys.rst:54 #: library/sys.rst:54
msgid "" msgid ""
@ -177,6 +183,8 @@ msgid ""
"For example, one auditing event is named ``os.chdir``. This event has one " "For example, one auditing event is named ``os.chdir``. This event has one "
"argument called *path* that will contain the requested new working directory." "argument called *path* that will contain the requested new working directory."
msgstr "" msgstr ""
"Par exemple, un événement d'audit est nommé ``os.chdir``. Cet événement à un "
"argument appelé *path* qui contiendras le nouveau répertoire de travail."
#: library/sys.rst:100 #: library/sys.rst:100
msgid "" msgid ""
@ -187,24 +195,38 @@ msgid ""
"implementations to decide how to respond to particular events: they can " "implementations to decide how to respond to particular events: they can "
"merely log the event or abort the operation by raising an exception." "merely log the event or abort the operation by raising an exception."
msgstr "" msgstr ""
":func:`sys.audit` appellera les point d'entrées (*hooks* en anglais) "
"d'audits existants, en passant le nom de l'événement et ses arguments, et "
"lèvera à nouveau la première exception de n'importe quel point d'entrée. En "
"général, si une exception est levée, elle ne devrais pas être gérée et le "
"processus devrait être terminé aussi rapidement que possible. Cela permet "
"que les implémentations des points d'entrées décident comment répondre à des "
"événements particuliers : Ils peuvent simplement *logger* l'événement ou "
"arrêter l'opération en levant une exception."
#: library/sys.rst:108 #: library/sys.rst:108
msgid "" msgid ""
"Hooks are added using the :func:`sys.addaudithook` or :c:func:" "Hooks are added using the :func:`sys.addaudithook` or :c:func:"
"`PySys_AddAuditHook` functions." "`PySys_AddAuditHook` functions."
msgstr "" msgstr ""
"Les points d'entrées sont ajoutés en utilisant les fonctions :func:`sys."
"addaudithook` ou :c:func:`PySys_AddAuditHook`."
#: library/sys.rst:111 #: library/sys.rst:111
msgid "" msgid ""
"The native equivalent of this function is :c:func:`PySys_Audit`. Using the " "The native equivalent of this function is :c:func:`PySys_Audit`. Using the "
"native function is preferred when possible." "native function is preferred when possible."
msgstr "" msgstr ""
"L'équivalent natif de cette fonction est :c:func:`PySys_Audit`. "
"L'utilisation de la fonction native est encouragée lorsque c'est possible."
#: library/sys.rst:114 #: library/sys.rst:114
msgid "" msgid ""
"See the :ref:`audit events table <audit-events>` for all events raised by " "See the :ref:`audit events table <audit-events>` for all events raised by "
"CPython." "CPython."
msgstr "" msgstr ""
"Voir le :ref:`tableau d'événements d'audit <audit-events>` pour tous les "
"événements levés par CPython."
#: library/sys.rst:122 #: library/sys.rst:122
#, fuzzy #, fuzzy
@ -337,6 +359,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys._current_frames`` with no " "Raises an :ref:`auditing event <auditing>` ``sys._current_frames`` with no "
"arguments." "arguments."
msgstr "" msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys._current_frames`` sans "
"arguments."
#: library/sys.rst:203 #: library/sys.rst:203
#, fuzzy #, fuzzy
@ -531,7 +555,7 @@ msgstr ""
#: library/sys.rst:327 #: library/sys.rst:327
msgid "" msgid ""
"A relative path is interpreted relative to the current working directory." "A relative path is interpreted relative to the current working directory."
msgstr "" msgstr "Un chemin relatif est interprété relativement au répertoire courant."
#: library/sys.rst:329 #: library/sys.rst:329
msgid "" msgid ""
@ -540,6 +564,11 @@ msgid ""
"`PYTHONPYCACHEPREFIX` environment variable (command-line takes precedence). " "`PYTHONPYCACHEPREFIX` environment variable (command-line takes precedence). "
"If neither are set, it is ``None``." "If neither are set, it is ``None``."
msgstr "" msgstr ""
"Cette valeur est initialement définie basée sur la valeur de l'option de "
"ligne de commande :option:`-X` ``pycache_prefix=PATH`` ou la variable "
"d'environnement :envvar:`PYTHONPYCACHEPREFIX` (La ligne de commande est "
"prioritaire). Si aucune des deux options n'est définie, alors la valeur est "
"``None``."
#: library/sys.rst:339 #: library/sys.rst:339
msgid "" msgid ""
@ -571,6 +600,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.excepthook`` with arguments " "Raises an :ref:`auditing event <auditing>` ``sys.excepthook`` with arguments "
"``hook``, ``type``, ``value``, ``traceback``." "``hook``, ``type``, ``value``, ``traceback``."
msgstr "" msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys.excepthook`` avec les "
"arguments ``hook``, ``type``, ``value``, ``traceback``."
#: library/sys.rst:350 #: library/sys.rst:350
msgid "" msgid ""
@ -581,6 +612,13 @@ msgid ""
"Otherwise, the audit hook exception will be reported as unraisable and ``sys." "Otherwise, the audit hook exception will be reported as unraisable and ``sys."
"excepthook`` will be called." "excepthook`` will be called."
msgstr "" msgstr ""
"Lève un événement d'audit ``sys.excepthook`` avec les arguments ``hook``, "
"``type``, ``value``, ``traceback`` lorsqu'une exception non interceptée se "
"produit. Si aucun point d'entrée n'a été défini, ``hook`` peut être "
"``None``. Si n'importe quel point d'entrée lève une exception dérivée de :"
"class:`RuntimeError`, l'appel au point d'entrée sera supprimé. Autrement, "
"l'exception du point d'entrée d'audit sera reporté comme *non levable* "
"(**unraisable** en anglais) et ``sys.excepthook`` sera appelé."
#: library/sys.rst:359 #: library/sys.rst:359
msgid "" msgid ""
@ -588,6 +626,9 @@ msgid ""
"the :func:`threading.excepthook` function handles exception raised by :func:" "the :func:`threading.excepthook` function handles exception raised by :func:"
"`threading.Thread.run`." "`threading.Thread.run`."
msgstr "" msgstr ""
"La fonction :func:`sys.unraisablehook` gère les exceptions *non-levables* et "
"la fonction :func:`threading.excepthook` gère les exceptions levées par :"
"func:`threading.Thread.run`."
#: library/sys.rst:369 #: library/sys.rst:369
msgid "" msgid ""
@ -876,7 +917,7 @@ msgstr ":const:`dev_mode`"
#: library/sys.rst:479 #: library/sys.rst:479
msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode <devmode>`)" msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode <devmode>`)"
msgstr "" msgstr ":option:`-X dev <-X>` (:ref:`Python en mode développement <devmode>`)"
#: library/sys.rst:480 #: library/sys.rst:480
msgid ":const:`utf8_mode`" msgid ":const:`utf8_mode`"
@ -1074,6 +1115,8 @@ msgid ""
"Use :func:`math.ulp(0.0) <math.ulp>` to get the smallest positive " "Use :func:`math.ulp(0.0) <math.ulp>` to get the smallest positive "
"*denormalized* representable float." "*denormalized* representable float."
msgstr "" msgstr ""
"Utilisez :func:`math.ulp(0.0) <math.ulp>` pour obtenir le plus petit nombre "
"a virgule positif *dénormalisé* représentable."
#: library/sys.rst:544 #: library/sys.rst:544
msgid ":const:`min_exp`" msgid ":const:`min_exp`"
@ -1274,6 +1317,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" "filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`." "c:type:`PyConfig`."
msgstr "" msgstr ""
"L':term:`encodage du système de fichiers et gestionnaire d'erreurs associé "
"<filesystem encoding and error handler>` sont configurés au démarrage de "
"Python par la fonction :c:func:`PyConfig_Read` : regardez :c:member:"
"`~PyConfig.filesystem_encoding` et :c:member:`~PyConfig.filesystem_errors` "
"dans les membres de :c:type:`PyConfig`."
#: library/sys.rst:654 #: library/sys.rst:654
msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore." msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore."
@ -1782,6 +1830,8 @@ msgid ""
"The addition of new required attributes must go through the normal PEP " "The addition of new required attributes must go through the normal PEP "
"process. See :pep:`421` for more information." "process. See :pep:`421` for more information."
msgstr "" msgstr ""
"L'addition de nouveaux attributs requis doivent passer par le processus de "
"**PEP** classique. Voir :pep:`421` pour plus d'informations."
#: library/sys.rst:959 #: library/sys.rst:959
msgid "" msgid ""
@ -1864,12 +1914,17 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` " "Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` "
"with argument ``hook``." "with argument ``hook``."
msgstr "" msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``cpython.run_interactivehook`` "
"avec comme argument ``hook``."
#: library/sys.rst:1000 #: library/sys.rst:1000
msgid "" msgid ""
"Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` " "Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` "
"with the hook object as the argument when the hook is called on startup." "with the hook object as the argument when the hook is called on startup."
msgstr "" msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``cpython.run_interactivehook`` "
"avec l'objet de point d'entrée comme argument lorsqu'il est appelé au "
"démarrage."
#: library/sys.rst:1009 #: library/sys.rst:1009
msgid "" msgid ""
@ -2254,6 +2309,9 @@ msgid ""
"Name of the platform-specific library directory. It is used to build the " "Name of the platform-specific library directory. It is used to build the "
"path of standard library and the paths of installed extension modules." "path of standard library and the paths of installed extension modules."
msgstr "" msgstr ""
"Nom du dossier de la bibliothèque spécifique à la plateforme. Il est utilisé "
"pour construire le chemin de vers la bibliothèque standard et les chemins "
"vers les modules d'extensions installés."
#: library/sys.rst:1221 #: library/sys.rst:1221
msgid "" msgid ""
@ -2261,12 +2319,18 @@ msgid ""
"equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." "equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys."
"path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" "path`` paths (where ``X.Y`` is the Python ``major.minor`` version):"
msgstr "" msgstr ""
"C'est égal à ``\"lib\"`` sur la plupart des plateformes. Sur Fedora et SuSE, "
"c'est égal à ``\"lib64\"`` sur les plateformes 64-bits qui renvoient les "
"chemins ``sys.path`` suivants (où ``X.Y`` et la version ``majeure.mineur`` "
"de Python) :"
#: library/sys.rst:1225 #: library/sys.rst:1225
msgid "" msgid ""
"``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` "
"module)" "module)"
msgstr "" msgstr ""
"``/usr/lib64/pythonX.Y/`` : Bibliothèque standard (comme ``os.py`` du "
"module :mod:`os`)"
#: library/sys.rst:1227 #: library/sys.rst:1227
msgid "" msgid ""
@ -2274,18 +2338,25 @@ msgid ""
"library (like the :mod:`errno` module, the exact filename is platform " "library (like the :mod:`errno` module, the exact filename is platform "
"specific)" "specific)"
msgstr "" msgstr ""
"``/usr/lib64/pythonX.Y/lib-dynload/`` : Modules d'extension C de la "
"bibliothèque standard (comme le module :mod:`errno`, le nom du fichier exact "
"est spécifique à la plateforme)"
#: library/sys.rst:1230 #: library/sys.rst:1230
msgid "" msgid ""
"``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys."
"platlibdir`): Third-party modules" "platlibdir`): Third-party modules"
msgstr "" msgstr ""
"``/usr/lib/pythonX.Y/site-packages/`` (toujours utiliser ``lib``, et non :"
"data:`sys.platlibdir`) : modules tiers"
#: library/sys.rst:1232 #: library/sys.rst:1232
msgid "" msgid ""
"``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party "
"packages" "packages"
msgstr "" msgstr ""
"``/usr/lib64/pythonX.Y/site-packages/`` : Modules d'extension C de paquets "
"tiers"
#: library/sys.rst:1240 #: library/sys.rst:1240
#, fuzzy #, fuzzy
@ -2406,6 +2477,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.setprofile`` with no " "Raises an :ref:`auditing event <auditing>` ``sys.setprofile`` with no "
"arguments." "arguments."
msgstr "" msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys.setprofile`` sans "
"arguments."
#: library/sys.rst:1394 #: library/sys.rst:1394
msgid "The events have the following meaning:" msgid "The events have the following meaning:"
@ -2675,6 +2748,17 @@ msgid ""
"tracing function that simply returns ``None`` to disable itself immediately " "tracing function that simply returns ``None`` to disable itself immediately "
"on each frame)." "on each frame)."
msgstr "" msgstr ""
"Pour une utilisation plus fine, il est possible de définir une fonction de "
"traçage en assignant ``frame.f_trace = tracefunc`` explicitement, plutôt que "
"de s'appuyer sur le fait qu'elle soit définie indirectement par la valeur de "
"retour d'une fonction trace déjà installée. Cela est aussi demandé pour "
"l'activation de la fonction de traçage dans le cadre, ce que :func:"
"`settrace` ne fait pas. Notez que pour que cela fonctionne, une fonction "
"globale de traçage doit avoir été installée avec :func:`settrace` afin "
"d'activer le mécanisme de traçage au moment de l'exécution, mais il n'est "
"pas nécessaire que ce soit la même fonction de traçage (Par exemple, cela "
"pourrait être une fonction de traçage avec peu de surcharge qui retourne "
"simplement ``None`` pour se désactiver immédiatement à chaque cadre)."
#: library/sys.rst:1443 #: library/sys.rst:1443
msgid "For more information on code and frame objects, refer to :ref:`types`." msgid "For more information on code and frame objects, refer to :ref:`types`."
@ -2687,6 +2771,7 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.settrace`` with no " "Raises an :ref:`auditing event <auditing>` ``sys.settrace`` with no "
"arguments." "arguments."
msgstr "" msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys.settrace`` sans arguments."
#: library/sys.rst:1449 #: library/sys.rst:1449
msgid "" msgid ""
@ -2728,18 +2813,24 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys." "Raises an :ref:`auditing event <auditing>` ``sys."
"set_asyncgen_hooks_firstiter`` with no arguments." "set_asyncgen_hooks_firstiter`` with no arguments."
msgstr "" msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys."
"set_asyncgen_hooks_firstiter`` sans arguments."
#: library/sys.rst:1469 #: library/sys.rst:1469
msgid "" msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys." "Raises an :ref:`auditing event <auditing>` ``sys."
"set_asyncgen_hooks_finalizer`` with no arguments." "set_asyncgen_hooks_finalizer`` with no arguments."
msgstr "" msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys."
"set_asyncgen_hooks_finalizer`` sans arguments."
#: library/sys.rst:1471 #: library/sys.rst:1471
msgid "" msgid ""
"Two auditing events are raised because the underlying API consists of two " "Two auditing events are raised because the underlying API consists of two "
"calls, each of which must raise its own event." "calls, each of which must raise its own event."
msgstr "" msgstr ""
"Deux événements d'audit sont levés car l'API sous-jacente consiste de deux "
"appels, dont chacun doit lever son propre événement."
#: library/sys.rst:1474 #: library/sys.rst:1474
msgid "" msgid ""
@ -2919,6 +3010,8 @@ msgstr ""
msgid "" msgid ""
"Non-interactive ``stderr`` is now line-buffered instead of fully buffered." "Non-interactive ``stderr`` is now line-buffered instead of fully buffered."
msgstr "" msgstr ""
"Le ``stderr`` non interactif est maintenant mis en mémoire-tampon ligne par "
"ligne plutôt qu'entièrement."
#: library/sys.rst:1575 #: library/sys.rst:1575
msgid "" msgid ""
@ -3081,7 +3174,7 @@ msgstr ""
#: library/sys.rst:1665 #: library/sys.rst:1665
msgid "Handle an unraisable exception." msgid "Handle an unraisable exception."
msgstr "" msgstr "Gère une exception *non levable* (**unraisable** en anglais)"
#: library/sys.rst:1667 #: library/sys.rst:1667
msgid "" msgid ""
@ -3089,6 +3182,9 @@ msgid ""
"handle it. For example, when a destructor raises an exception or during " "handle it. For example, when a destructor raises an exception or during "
"garbage collection (:func:`gc.collect`)." "garbage collection (:func:`gc.collect`)."
msgstr "" msgstr ""
"Appelé lorsqu'une exception s'est produite mais qu'il n'y a aucun moyen pour "
"Python de la gérer. Par exemple, lorsqu'un destructeur lève une exception ou "
"durant le passage du ramasse-miettes (:func:`gc.collect`)."
#: library/sys.rst:1671 #: library/sys.rst:1671
msgid "The *unraisable* argument has the following attributes:" msgid "The *unraisable* argument has the following attributes:"
@ -3109,23 +3205,28 @@ msgstr ""
#: library/sys.rst:1676 #: library/sys.rst:1676
msgid "*err_msg*: Error message, can be ``None``." msgid "*err_msg*: Error message, can be ``None``."
msgstr "" msgstr "*err_msg* : Message d'erreur, peut être ``None``."
#: library/sys.rst:1677 #: library/sys.rst:1677
msgid "*object*: Object causing the exception, can be ``None``." msgid "*object*: Object causing the exception, can be ``None``."
msgstr "" msgstr "*object* : Objet causant l'exception, peut être ``None``."
#: library/sys.rst:1679 #: library/sys.rst:1679
msgid "" msgid ""
"The default hook formats *err_msg* and *object* as: ``f'{err_msg}: {object!" "The default hook formats *err_msg* and *object* as: ``f'{err_msg}: {object!"
"r}'``; use \"Exception ignored in\" error message if *err_msg* is ``None``." "r}'``; use \"Exception ignored in\" error message if *err_msg* is ``None``."
msgstr "" msgstr ""
"Le point d'entrée par défaut formate *err_msg* et *object* de la façon "
"suivante : ``f'{err_msg}: {object!r}'``; sinon utilise \"*Exception ignored "
"in*\" dans le message d'erreur si *err_msg* est à ``None``."
#: library/sys.rst:1683 #: library/sys.rst:1683
msgid "" msgid ""
":func:`sys.unraisablehook` can be overridden to control how unraisable " ":func:`sys.unraisablehook` can be overridden to control how unraisable "
"exceptions are handled." "exceptions are handled."
msgstr "" msgstr ""
":func:`sys.unraisablehook` peut être remplacé pour contrôler comment les "
"exceptions *non levables* (**unraisable** en anglais) sont gérées."
#: library/sys.rst:1686 #: library/sys.rst:1686
msgid "" msgid ""
@ -3151,7 +3252,7 @@ msgstr ""
#: library/sys.rst:1694 #: library/sys.rst:1694
msgid "See also :func:`excepthook` which handles uncaught exceptions." msgid "See also :func:`excepthook` which handles uncaught exceptions."
msgstr "" msgstr "Voir aussi :func:`excepthook` qui gère les exceptions *non levables*."
#: library/sys.rst:1696 #: library/sys.rst:1696
msgid "" msgid ""
@ -3166,6 +3267,10 @@ msgid ""
"``unraisable`` object is the same as what will be passed to the hook. If no " "``unraisable`` object is the same as what will be passed to the hook. If no "
"hook has been set, ``hook`` may be ``None``." "hook has been set, ``hook`` may be ``None``."
msgstr "" msgstr ""
"Lève un événement d'audit ``sys.unraisablehook`` avec comme arguments "
"``hook``, ``unraisable`` lorsqu'une exception qui ne peut être gérée se "
"produit. L'objet ``unraisable`` est le même qui sera passé au point "
"d'entrée. Si aucun point d'entrée n'est défini, ``hook`` peut être ``None``."
#: library/sys.rst:1707 #: library/sys.rst:1707
msgid "" msgid ""

View File

@ -72,6 +72,10 @@ msgid ""
"`typing_extensions <https://pypi.org/project/typing-extensions/>`_ package " "`typing_extensions <https://pypi.org/project/typing-extensions/>`_ package "
"provides backports of these new features to older versions of Python." "provides backports of these new features to older versions of Python."
msgstr "" msgstr ""
"Le module ``typing`` est fréquemment enrichi de nouvelles fonctionnalités. "
"Le package `typing_extensions <https://pypi.org/project/typing-extensions/"
">`_ fournit des rétro-portages de ces fonctionnalités vers les anciennes "
"versions de Python."
#: library/typing.rst:41 #: library/typing.rst:41
msgid "" msgid ""
@ -79,10 +83,15 @@ msgid ""
"reference for type system features, useful typing related tools and typing " "reference for type system features, useful typing related tools and typing "
"best practices." "best practices."
msgstr "" msgstr ""
"La documentation https://typing.readthedocs.io/ est une référence utile pour "
"les fonctionnalités du système de types, les outils liés au typage et les "
"bonnes pratiques de typage.La documentation sur https://typing.readthedocs."
"io/ sert de référence pour les fonctionnalités, les outils utiles et les "
"meilleures pratiques liés au système de typage."
#: library/typing.rst:47 #: library/typing.rst:47
msgid "Relevant PEPs" msgid "Relevant PEPs"
msgstr "" msgstr "PEPs pertinentes"
#: library/typing.rst:49 #: library/typing.rst:49
msgid "" msgid ""
@ -90,87 +99,102 @@ msgid ""
"number of PEPs have modified and enhanced Python's framework for type " "number of PEPs have modified and enhanced Python's framework for type "
"annotations. These include:" "annotations. These include:"
msgstr "" msgstr ""
"Depuis l'introduction initiale des annotations de type dans les :pep:`484` "
"et :pep:`483`, plusieurs PEPs ont modifié et amélioré le framework "
"d'annotation de type. Cela inclut :"
#: library/typing.rst:54 #: library/typing.rst:54
msgid ":pep:`526`: Syntax for Variable Annotations" msgid ":pep:`526`: Syntax for Variable Annotations"
msgstr "" msgstr ":pep:`526` : Syntaxe pour les Annotations de Variables"
#: library/typing.rst:54 #: library/typing.rst:54
msgid "" msgid ""
"*Introducing* syntax for annotating variables outside of function " "*Introducing* syntax for annotating variables outside of function "
"definitions, and :data:`ClassVar`" "definitions, and :data:`ClassVar`"
msgstr "" msgstr ""
"*Introduction* d'une syntaxe permettant d'annoter les variables autrement "
"qu'au sein de la définition d'une fonction et de :data:`ClassVar`"
#: library/typing.rst:57 #: library/typing.rst:57
msgid ":pep:`544`: Protocols: Structural subtyping (static duck typing)" msgid ":pep:`544`: Protocols: Structural subtyping (static duck typing)"
msgstr "" msgstr ""
":pep:`544`: Protocoles : Sous-typage Structurel (*duck-typing* statique)"
#: library/typing.rst:57 #: library/typing.rst:57
msgid "" msgid ""
"*Introducing* :class:`Protocol` and the :func:" "*Introducing* :class:`Protocol` and the :func:"
"`@runtime_checkable<runtime_checkable>` decorator" "`@runtime_checkable<runtime_checkable>` decorator"
msgstr "" msgstr ""
"*Ajout* de :class:`Protocol` et du décorateur :func:"
"`@runtime_checkable<runtime_checkable>`"
#: library/typing.rst:60 #: library/typing.rst:60
msgid ":pep:`585`: Type Hinting Generics In Standard Collections" msgid ":pep:`585`: Type Hinting Generics In Standard Collections"
msgstr "" msgstr ":pep:`585`: Annotations de Type Générique dans les Collections Natives"
#: library/typing.rst:60 #: library/typing.rst:60
msgid "" msgid ""
"*Introducing* :class:`types.GenericAlias` and the ability to use standard " "*Introducing* :class:`types.GenericAlias` and the ability to use standard "
"library classes as :ref:`generic types<types-genericalias>`" "library classes as :ref:`generic types<types-genericalias>`"
msgstr "" msgstr ""
"*Ajout* de :class:`types.GenericAlias` et de la possibilité d'utiliser les "
"classes de bibliothèques natives comme les :ref:`types génériques<types-"
"genericalias>`"
#: library/typing.rst:62 #: library/typing.rst:62
msgid ":pep:`586`: Literal Types" msgid ":pep:`586`: Literal Types"
msgstr "" msgstr ":pep:`586`: Types Littéraux"
#: library/typing.rst:63 #: library/typing.rst:63
msgid "*Introducing* :data:`Literal`" msgid "*Introducing* :data:`Literal`"
msgstr "" msgstr "*Ajout* de :data:`Literal`"
#: library/typing.rst:64 #: library/typing.rst:64
msgid "" msgid ""
":pep:`589`: TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys" ":pep:`589`: TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys"
msgstr "" msgstr ""
":pep:`589`: TypedDict: Annotations de Type pour les Dictionnaires ayant un "
"Ensemble Fixe de Clés"
#: library/typing.rst:65 #: library/typing.rst:65
msgid "*Introducing* :class:`TypedDict`" msgid "*Introducing* :class:`TypedDict`"
msgstr "" msgstr "*Ajout* de :class:`TypedDict`"
#: library/typing.rst:66 #: library/typing.rst:66
msgid ":pep:`591`: Adding a final qualifier to typing" msgid ":pep:`591`: Adding a final qualifier to typing"
msgstr "" msgstr ":pep:`591`: Ajout d'un qualificatif final au typage"
#: library/typing.rst:67 #: library/typing.rst:67
msgid "*Introducing* :data:`Final` and the :func:`@final<final>` decorator" msgid "*Introducing* :data:`Final` and the :func:`@final<final>` decorator"
msgstr "" msgstr "*Ajout* de :data:`Final` et du décorateur :func:`@final<final>`"
#: library/typing.rst:68 #: library/typing.rst:68
msgid ":pep:`593`: Flexible function and variable annotations" msgid ":pep:`593`: Flexible function and variable annotations"
msgstr "" msgstr ":pep:`593`: fonction Flexible et annotations de variables"
#: library/typing.rst:69 #: library/typing.rst:69
msgid "*Introducing* :data:`Annotated`" msgid "*Introducing* :data:`Annotated`"
msgstr "" msgstr "*Ajout* de :data:`Annotated`"
#: library/typing.rst:72 #: library/typing.rst:72
msgid ":pep:`604`: Allow writing union types as ``X | Y``" msgid ":pep:`604`: Allow writing union types as ``X | Y``"
msgstr "" msgstr ":pep:`604`: Permettre l'écriture de types union tels que ``X | Y``"
#: library/typing.rst:71 #: library/typing.rst:71
msgid "" msgid ""
"*Introducing* :data:`types.UnionType` and the ability to use the binary-or " "*Introducing* :data:`types.UnionType` and the ability to use the binary-or "
"operator ``|`` to signify a :ref:`union of types<types-union>`" "operator ``|`` to signify a :ref:`union of types<types-union>`"
msgstr "" msgstr ""
"*Ajout* de :data:`types.UnionType` et la possibilité d'utiliser l'opérateur "
"binaire ``|`` (*ou*) pour signifier :ref:`union of types<types-union>`"
#: library/typing.rst:74 #: library/typing.rst:74
msgid ":pep:`612`: Parameter Specification Variables" msgid ":pep:`612`: Parameter Specification Variables"
msgstr "" msgstr ":pep:`612`: Variables de Spécification de Paramètre"
#: library/typing.rst:75 #: library/typing.rst:75
msgid "*Introducing* :class:`ParamSpec` and :data:`Concatenate`" msgid "*Introducing* :class:`ParamSpec` and :data:`Concatenate`"
msgstr "" msgstr "*Ajout* de :class:`ParamSpec` et de :data:`Concatenate`"
#: library/typing.rst:76 #: library/typing.rst:76
#, fuzzy #, fuzzy
@ -179,15 +203,15 @@ msgstr "Voir la :pep:`484` pour plus de détails."
#: library/typing.rst:77 #: library/typing.rst:77
msgid "*Introducing* :data:`TypeAlias`" msgid "*Introducing* :data:`TypeAlias`"
msgstr "" msgstr "*Ajout* de :data:`TypeAlias`"
#: library/typing.rst:79 #: library/typing.rst:79
msgid ":pep:`647`: User-Defined Type Guards" msgid ":pep:`647`: User-Defined Type Guards"
msgstr "" msgstr ":pep:`647`: Gardes de Types Définies par l'Utilisateur"
#: library/typing.rst:79 #: library/typing.rst:79
msgid "*Introducing* :data:`TypeGuard`" msgid "*Introducing* :data:`TypeGuard`"
msgstr "" msgstr "*Ajout* de :data:`TypeGuard`"
#: library/typing.rst:84 #: library/typing.rst:84
msgid "Type aliases" msgid "Type aliases"
@ -277,7 +301,7 @@ msgstr ""
#: library/typing.rst:159 #: library/typing.rst:159
msgid "It is invalid to create a subtype of ``Derived``::" msgid "It is invalid to create a subtype of ``Derived``::"
msgstr "" msgstr "La création d'un sous-type de ``Derived`` est invalide:"
#: library/typing.rst:168 #: library/typing.rst:168
#, fuzzy #, fuzzy
@ -332,6 +356,9 @@ msgid ""
"runtime cost when calling ``NewType`` over a regular function. However, " "runtime cost when calling ``NewType`` over a regular function. However, "
"this cost will be reduced in 3.11.0." "this cost will be reduced in 3.11.0."
msgstr "" msgstr ""
"``NewType`` est maintenant une classe (plutôt qu'une fonction). Cela "
"entraine un coût supplémentaire en temps d'exécution lors d'un appel. "
"Cependant, ce coût sera réduit dans la version 3.11.0."
#: library/typing.rst:203 #: library/typing.rst:203
msgid "Callable" msgid "Callable"
@ -370,18 +397,29 @@ msgid ""
"``Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], " "``Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], "
"ReturnType]`` respectively." "ReturnType]`` respectively."
msgstr "" msgstr ""
"Les appelables qui prennent en argument d'autres appelables peuvent indiquer "
"que leurs types de paramètres dépendent les uns des autres en utilisant :"
"class:`ParamSpec`. De plus, si un appelable ajoute ou supprime des arguments "
"d'autres appelables, l'opérateur :data:`Concatenate` peut être utilisé. Ils "
"prennent la forme ``Callable[ParamSpecVariable, ReturnType]`` et "
"``Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], "
"ReturnType]`` respectivement."
#: library/typing.rst:726 #: library/typing.rst:726
msgid "" msgid ""
"``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :" "``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :"
"pep:`612` for more details." "pep:`612` for more details."
msgstr "" msgstr ""
"``Callable`` prend désormais en charge :class:`ParamSpec` et :data:"
"`Concatenate`. Voir :pep:`612` pour plus de détails."
#: library/typing.rst:240 #: library/typing.rst:240
msgid "" msgid ""
"The documentation for :class:`ParamSpec` and :class:`Concatenate` provides " "The documentation for :class:`ParamSpec` and :class:`Concatenate` provides "
"examples of usage in ``Callable``." "examples of usage in ``Callable``."
msgstr "" msgstr ""
"La documentation pour :class:`ParamSpec` et :class:`Concatenate` fournit des "
"exemples d'utilisation dans ``Callable``."
#: library/typing.rst:246 #: library/typing.rst:246
msgid "Generics" msgid "Generics"
@ -1983,7 +2021,7 @@ msgstr "Classe de base abstraite pour les types génériques."
#: library/typing.rst:1752 #: library/typing.rst:1752
msgid "Corresponding to collections in :mod:`collections.abc`" msgid "Corresponding to collections in :mod:`collections.abc`"
msgstr "" msgstr "Correspond aux collections au sein de :mod:`collections.abc`"
#: library/typing.rst:1756 #: library/typing.rst:1756
msgid "A generic version of :class:`collections.abc.Set`." msgid "A generic version of :class:`collections.abc.Set`."
@ -2164,7 +2202,7 @@ msgstr ""
#: library/typing.rst:1871 #: library/typing.rst:1871
msgid "Corresponding to other types in :mod:`collections.abc`" msgid "Corresponding to other types in :mod:`collections.abc`"
msgstr "" msgstr "Correspond aux autres types au sein de :mod:`collections.abc`."
#: library/typing.rst:1875 #: library/typing.rst:1875
msgid "A generic version of :class:`collections.abc.Iterable`." msgid "A generic version of :class:`collections.abc.Iterable`."
@ -2256,7 +2294,7 @@ msgstr "Un alias pour :class:`collections.abc.Sized`"
#: library/typing.rst:1941 #: library/typing.rst:1941
msgid "Asynchronous programming" msgid "Asynchronous programming"
msgstr "" msgstr "Programmation asynchrone"
#: library/typing.rst:1945 #: library/typing.rst:1945
msgid "" msgid ""
@ -2356,7 +2394,7 @@ msgstr ""
#: library/typing.rst:2030 #: library/typing.rst:2030
msgid "Context manager types" msgid "Context manager types"
msgstr "" msgstr "Types associés aux gestionnaires de contexte"
#: library/typing.rst:2034 #: library/typing.rst:2034
msgid "A generic version of :class:`contextlib.AbstractContextManager`." msgid "A generic version of :class:`contextlib.AbstractContextManager`."
@ -2385,11 +2423,11 @@ msgstr ""
#: library/typing.rst:2055 #: library/typing.rst:2055
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr "Protocoles"
#: library/typing.rst:2057 #: library/typing.rst:2057
msgid "These protocols are decorated with :func:`runtime_checkable`." msgid "These protocols are decorated with :func:`runtime_checkable`."
msgstr "" msgstr "Ces protocoles sont décorés par :func:`runtime_checkable`."
#: library/typing.rst:2061 #: library/typing.rst:2061
msgid "" msgid ""
@ -2551,7 +2589,7 @@ msgstr ""
#: library/typing.rst:2192 #: library/typing.rst:2192
msgid "Introspection helpers" msgid "Introspection helpers"
msgstr "" msgstr "Utilitaires d'introspection"
#: library/typing.rst:2196 #: library/typing.rst:2196
msgid "" msgid ""
@ -2584,6 +2622,9 @@ msgid ""
"unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for " "unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for "
"more information). For example::" "more information). For example::"
msgstr "" msgstr ""
"La fonction remplace récursivement tous les ``Annotated[T, ...]`` avec "
"``T``, sauf si la valeur de ``include_extras`` est définie à ``True`` (voir :"
"class:`Annotated` pour plus d'information). Par exemple ::"
#: library/typing.rst:2222 #: library/typing.rst:2222
msgid "" msgid ""
@ -2591,10 +2632,14 @@ msgid ""
"aliases>` that include forward references. Enabling postponed evaluation of " "aliases>` that include forward references. Enabling postponed evaluation of "
"annotations (:pep:`563`) may remove the need for most forward references." "annotations (:pep:`563`) may remove the need for most forward references."
msgstr "" msgstr ""
":func:`get_type_hints` ne fonctionne pas avec les :ref:`alias de type <type-"
"aliases>` importés contenant des références postérieures. L'activation "
"d'évaluation différée des annotations (:pep:`563`) permet de supprimer le "
"besoin de références postérieures supplémentaires."
#: library/typing.rst:2227 #: library/typing.rst:2227
msgid "Added ``include_extras`` parameter as part of :pep:`593`." msgid "Added ``include_extras`` parameter as part of :pep:`593`."
msgstr "" msgstr "Ajout du paramètre ``include_extras`` comme énoncé dans la :pep:`593`."
#: library/typing.rst:2233 #: library/typing.rst:2233
msgid "Provide basic introspection for generic types and special typing forms." msgid "Provide basic introspection for generic types and special typing forms."
@ -2620,7 +2665,7 @@ msgstr ""
#: library/typing.rst:2254 #: library/typing.rst:2254
msgid "Check if a type is a :class:`TypedDict`." msgid "Check if a type is a :class:`TypedDict`."
msgstr "" msgstr "Vérifier si un type est un :class:`TypedDict`."
#: library/typing.rst:2269 #: library/typing.rst:2269
#, fuzzy #, fuzzy
@ -2643,6 +2688,9 @@ msgid ""
"implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus " "implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus "
"will not automatically resolve to ``list[SomeClass]``." "will not automatically resolve to ``list[SomeClass]``."
msgstr "" msgstr ""
"Les types :pep:`585` tels que ``list[\"SomeClass\"]`` ne seront pas "
"implicitement transformés en ``list[ForwardRef(\"SomeClass\")]`` et ne "
"seront donc pas automatiquement résolus en ``list[SomeClass]``."
#: library/typing.rst:2282 #: library/typing.rst:2282
msgid "Constant" msgid "Constant"
@ -2678,6 +2726,11 @@ msgid ""
"in ``__annotations__``. This makes it unnecessary to use quotes around the " "in ``__annotations__``. This makes it unnecessary to use quotes around the "
"annotation (see :pep:`563`)." "annotation (see :pep:`563`)."
msgstr "" msgstr ""
"Si ``from __future__ import annotations`` est utilisé, les annotations ne "
"sont pas évaluées au moment de la définition de fonction. Elles sont alors "
"stockées comme des chaînes de caractères dans ``__annotations__``, ce qui "
"rend inutile l'utilisation de guillemets autour de l'annotation (Voir :pep:"
"`563`)."
#~ msgid "" #~ msgid ""
#~ "The latter example's signature is essentially the overloading of ``(str, " #~ "The latter example's signature is essentially the overloading of ``(str, "

View File

@ -16,25 +16,28 @@ msgstr ""
#: library/xml.etree.elementtree.rst:2 #: library/xml.etree.elementtree.rst:2
msgid ":mod:`xml.etree.ElementTree` --- The ElementTree XML API" msgid ":mod:`xml.etree.ElementTree` --- The ElementTree XML API"
msgstr "" msgstr ":mod:`xml.etree.ElementTree` — L'API ElementTree XML"
#: library/xml.etree.elementtree.rst:9 #: library/xml.etree.elementtree.rst:9
msgid "**Source code:** :source:`Lib/xml/etree/ElementTree.py`" msgid "**Source code:** :source:`Lib/xml/etree/ElementTree.py`"
msgstr "" msgstr "**Code Source:** :source:`Lib/xml/etree/ElementTree.py`"
#: library/xml.etree.elementtree.rst:13 #: library/xml.etree.elementtree.rst:13
msgid "" msgid ""
"The :mod:`xml.etree.ElementTree` module implements a simple and efficient " "The :mod:`xml.etree.ElementTree` module implements a simple and efficient "
"API for parsing and creating XML data." "API for parsing and creating XML data."
msgstr "" msgstr ""
"Le module :mod:`xml.etree.ElementTree` implémente une API simple et "
"efficace pour analyser et créer des données XML."
#: library/xml.etree.elementtree.rst:16 #: library/xml.etree.elementtree.rst:16
msgid "This module will use a fast implementation whenever available." msgid "This module will use a fast implementation whenever available."
msgstr "" msgstr ""
"Ce module utilise une implémentation rapide chaque fois que c'est possible."
#: library/xml.etree.elementtree.rst:19 #: library/xml.etree.elementtree.rst:19
msgid "The :mod:`xml.etree.cElementTree` module is deprecated." msgid "The :mod:`xml.etree.cElementTree` module is deprecated."
msgstr "" msgstr "Le module :mod:`xml.etree.cElementTree` est obsolète."
#: library/xml.etree.elementtree.rst:25 #: library/xml.etree.elementtree.rst:25
#, fuzzy #, fuzzy
@ -57,10 +60,13 @@ msgid ""
"short). The goal is to demonstrate some of the building blocks and basic " "short). The goal is to demonstrate some of the building blocks and basic "
"concepts of the module." "concepts of the module."
msgstr "" msgstr ""
"Ceci est un petit tutoriel pour utiliser :mod:`xml.etree.ElementTree` "
"(``ET``). Le but est de démontrer quelques composants et les concepts "
"basiques du module."
#: library/xml.etree.elementtree.rst:37 #: library/xml.etree.elementtree.rst:37
msgid "XML tree and elements" msgid "XML tree and elements"
msgstr "" msgstr "Arborescence et éléments XML"
#: library/xml.etree.elementtree.rst:39 #: library/xml.etree.elementtree.rst:39
msgid "" msgid ""
@ -72,24 +78,33 @@ msgid ""
"class:`ElementTree` level. Interactions with a single XML element and its " "class:`ElementTree` level. Interactions with a single XML element and its "
"sub-elements are done on the :class:`Element` level." "sub-elements are done on the :class:`Element` level."
msgstr "" msgstr ""
"XML est un format de données fondamentalement hiérarchique et la façon la "
"plus naturelle de la représenter est avec un arbre. ``ET`` a deux classes "
"pour ce but- :class:`ElementTree` représente l'ensemble du document XML "
"comme un arbre et :class:`Element` est représenté en tant que nœud dans cet "
"arbre. Les interactions (lire et écrire vers/depuis des fichiers) sur le "
"document sont habituellement effectués au niveau de :class:`ElementTree`. "
"Les interactions sur un seul élément XML et ses sous-éléments sont effectués "
"au niveau de :class:`Element`."
#: library/xml.etree.elementtree.rst:50 #: library/xml.etree.elementtree.rst:50
msgid "Parsing XML" msgid "Parsing XML"
msgstr "" msgstr "Analyse XML"
#: library/xml.etree.elementtree.rst:52 #: library/xml.etree.elementtree.rst:52
msgid "" msgid ""
"We'll be using the following XML document as the sample data for this " "We'll be using the following XML document as the sample data for this "
"section:" "section:"
msgstr "" msgstr ""
"Nous utilisons le document XML suivant comme exemple pour cette section :"
#: library/xml.etree.elementtree.rst:80 #: library/xml.etree.elementtree.rst:80
msgid "We can import this data by reading from a file::" msgid "We can import this data by reading from a file::"
msgstr "" msgstr "Nous pouvons importer cette donnée en lisant un fichier ::"
#: library/xml.etree.elementtree.rst:86 #: library/xml.etree.elementtree.rst:86
msgid "Or directly from a string::" msgid "Or directly from a string::"
msgstr "" msgstr "Ou depuis une chaîne de caractères ::"
#: library/xml.etree.elementtree.rst:90 #: library/xml.etree.elementtree.rst:90
msgid "" msgid ""
@ -98,19 +113,27 @@ msgid ""
"functions may create an :class:`ElementTree`. Check the documentation to be " "functions may create an :class:`ElementTree`. Check the documentation to be "
"sure." "sure."
msgstr "" msgstr ""
":func:`fromstring` analyse le XML depuis une chaîne de caractères vers un :"
"class:`Element`, ce dernier est l'élément racine de l'arbre analysé. "
"D'Autres fonctions d'analyse peuvent créer un :class:`ElementTree`. "
"Vérifier la documentation pour être sûr."
#: library/xml.etree.elementtree.rst:94 #: library/xml.etree.elementtree.rst:94
msgid "" msgid ""
"As an :class:`Element`, ``root`` has a tag and a dictionary of attributes::" "As an :class:`Element`, ``root`` has a tag and a dictionary of attributes::"
msgstr "" msgstr ""
"Comme :class:`Element`, ``root`` a une balise et un dictionnaire "
"d'attributs ::"
#: library/xml.etree.elementtree.rst:101 #: library/xml.etree.elementtree.rst:101
msgid "It also has children nodes over which we can iterate::" msgid "It also has children nodes over which we can iterate::"
msgstr "" msgstr "Il contient aussi des nœuds enfants que nous pouvons itérer ::"
#: library/xml.etree.elementtree.rst:110 #: library/xml.etree.elementtree.rst:110
msgid "Children are nested, and we can access specific child nodes by index::" msgid "Children are nested, and we can access specific child nodes by index::"
msgstr "" msgstr ""
"Les enfants sont imbriqués et nous pouvons accéder aux nœuds enfants "
"spécifiques via un index ::"
#: library/xml.etree.elementtree.rst:118 #: library/xml.etree.elementtree.rst:118
msgid "" msgid ""
@ -123,10 +146,19 @@ msgid ""
"passing a custom :class:`TreeBuilder` instance to the :class:`XMLParser` " "passing a custom :class:`TreeBuilder` instance to the :class:`XMLParser` "
"constructor." "constructor."
msgstr "" msgstr ""
"Les éléments du XML d'entrée ne sont pas tous considérés comme des éléments "
"de l'arborescence. Souvent, le module ignore les commentaires XML, les "
"instructions de traitements et la déclaration du type de document dans "
"l'entrée. Néanmoins, les arborescences sont construites en utilisant l'API "
"du module plutôt que d'analyser depuis un texte XML qui peut contenir des "
"commentaires et des instructions de traitements ; ils peuvent être inclus "
"lors de la génération du XML de sortie. Le type de déclaration du document "
"est accessible en passant par une instance de :class:`TreeBuilder` dans le "
"constructeur de :class:`XMLParser`."
#: library/xml.etree.elementtree.rst:132 #: library/xml.etree.elementtree.rst:132
msgid "Pull API for non-blocking parsing" msgid "Pull API for non-blocking parsing"
msgstr "" msgstr "API à flux tiré"
#: library/xml.etree.elementtree.rst:134 #: library/xml.etree.elementtree.rst:134
msgid "" msgid ""
@ -166,7 +198,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:169 #: library/xml.etree.elementtree.rst:169
msgid "Finding interesting elements" msgid "Finding interesting elements"
msgstr "" msgstr "Trouver les éléments d'intérêt"
#: library/xml.etree.elementtree.rst:171 #: library/xml.etree.elementtree.rst:171
msgid "" msgid ""
@ -174,6 +206,9 @@ msgid ""
"all the sub-tree below it (its children, their children, and so on). For " "all the sub-tree below it (its children, their children, and so on). For "
"example, :meth:`Element.iter`::" "example, :meth:`Element.iter`::"
msgstr "" msgstr ""
":class:`Element` a quelques méthodes très utiles qui aident à parcourir "
"récursivement tous les sous-arbres (ses enfants, leurs enfants et ainsi de "
"suite). Par exemple, :meth:`Element.iter` ::"
#: library/xml.etree.elementtree.rst:184 #: library/xml.etree.elementtree.rst:184
msgid "" msgid ""
@ -182,6 +217,11 @@ msgid ""
"child with a particular tag, and :attr:`Element.text` accesses the element's " "child with a particular tag, and :attr:`Element.text` accesses the element's "
"text content. :meth:`Element.get` accesses the element's attributes::" "text content. :meth:`Element.get` accesses the element's attributes::"
msgstr "" msgstr ""
":meth:`Element.findall` récupère seulement les éléments avec une balise qui "
"sont les descendants directs de l'élément courant. :meth:`Element.find` "
"récupère le *premier* élément avec une balise particulière et :attr:`Element."
"text` accède au contenu textuel de l'élément. :meth:`Element.get` accède "
"aux attributs de l'élément ::"
#: library/xml.etree.elementtree.rst:198 #: library/xml.etree.elementtree.rst:198
msgid "" msgid ""
@ -191,7 +231,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:202 #: library/xml.etree.elementtree.rst:202
msgid "Modifying an XML File" msgid "Modifying an XML File"
msgstr "" msgstr "Modification d'un fichier XML"
#: library/xml.etree.elementtree.rst:204 #: library/xml.etree.elementtree.rst:204
msgid "" msgid ""
@ -215,7 +255,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:222 library/xml.etree.elementtree.rst:266 #: library/xml.etree.elementtree.rst:222 library/xml.etree.elementtree.rst:266
msgid "Our XML now looks like this:" msgid "Our XML now looks like this:"
msgstr "" msgstr "Maintenant, notre XML ressemble à ceci :"
#: library/xml.etree.elementtree.rst:250 #: library/xml.etree.elementtree.rst:250
msgid "" msgid ""
@ -233,7 +273,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:288 #: library/xml.etree.elementtree.rst:288
msgid "Building XML documents" msgid "Building XML documents"
msgstr "" msgstr "Création de documents XML"
#: library/xml.etree.elementtree.rst:290 #: library/xml.etree.elementtree.rst:290
msgid "" msgid ""
@ -243,7 +283,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:301 #: library/xml.etree.elementtree.rst:301
msgid "Parsing XML with Namespaces" msgid "Parsing XML with Namespaces"
msgstr "" msgstr "Analyse d'un XML avec des espaces de noms"
#: library/xml.etree.elementtree.rst:303 #: library/xml.etree.elementtree.rst:303
msgid "" msgid ""
@ -276,11 +316,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:355 #: library/xml.etree.elementtree.rst:355
msgid "These two approaches both output::" msgid "These two approaches both output::"
msgstr "" msgstr "Ces deux approches donnent le même résultat ::"
#: library/xml.etree.elementtree.rst:369 #: library/xml.etree.elementtree.rst:369
msgid "XPath support" msgid "XPath support"
msgstr "" msgstr "Prise en charge de XPath"
#: library/xml.etree.elementtree.rst:371 #: library/xml.etree.elementtree.rst:371
msgid "" msgid ""
@ -309,7 +349,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:410 #: library/xml.etree.elementtree.rst:410
msgid "Supported XPath syntax" msgid "Supported XPath syntax"
msgstr "" msgstr "Prise en charge de la syntaxe XPath"
#: library/xml.etree.elementtree.rst:415 #: library/xml.etree.elementtree.rst:415
msgid "Syntax" msgid "Syntax"
@ -332,6 +372,13 @@ msgid ""
"``spam`` in any (or no) namespace, and ``{}*`` only selects tags that are " "``spam`` in any (or no) namespace, and ``{}*`` only selects tags that are "
"not in a namespace." "not in a namespace."
msgstr "" msgstr ""
"Sélectionne tous les éléments enfants avec une balise donnée. Par exemple, "
"``spam`` sélectionne tous les éléments enfants nommés ``spam`` et ``spam/"
"egg`` sélectionne tous les petits-enfants nommés ``egg`` dans les enfants "
"nommés ``spam``. ``{namespace}*`` sélectionne toutes les balises dans "
"l'espace de nom donné, ``{*}spam`` sélectionne les balises nommées ``spam`` "
"dans n'importe quel (ou aucun) espace de nom et ``{}*`` sélectionne "
"seulement les balises qui ne sont pas dans un espace de nom."
#: library/xml.etree.elementtree.rst:426 #: library/xml.etree.elementtree.rst:426
msgid "Support for star-wildcards was added." msgid "Support for star-wildcards was added."
@ -488,6 +535,7 @@ msgstr "Fonctions"
#: library/xml.etree.elementtree.rst:502 #: library/xml.etree.elementtree.rst:502
msgid "`C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ transformation function." msgid "`C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ transformation function."
msgstr "" msgstr ""
"`C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ fonction de transformation."
#: library/xml.etree.elementtree.rst:504 #: library/xml.etree.elementtree.rst:504
msgid "" msgid ""
@ -514,11 +562,13 @@ msgstr "Usage typique ::"
#: library/xml.etree.elementtree.rst:528 #: library/xml.etree.elementtree.rst:528
msgid "The configuration *options* are as follows:" msgid "The configuration *options* are as follows:"
msgstr "" msgstr "Les *options* de configuration sont les suivantes :"
#: library/xml.etree.elementtree.rst:530 #: library/xml.etree.elementtree.rst:530
msgid "*with_comments*: set to true to include comments (default: false)" msgid "*with_comments*: set to true to include comments (default: false)"
msgstr "" msgstr ""
"*with_comments* : attribue à vrai pour inclure les commentaires (par "
"défaut : faux)"
#: library/xml.etree.elementtree.rst:531 #: library/xml.etree.elementtree.rst:531
msgid "" msgid ""
@ -527,7 +577,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:532 library/xml.etree.elementtree.rst:534 #: library/xml.etree.elementtree.rst:532 library/xml.etree.elementtree.rst:534
msgid "(default: false)" msgid "(default: false)"
msgstr "" msgstr "(par défaut : faux)"
#: library/xml.etree.elementtree.rst:533 #: library/xml.etree.elementtree.rst:533
msgid "" msgid ""
@ -593,7 +643,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:569 #: library/xml.etree.elementtree.rst:569
msgid "*elem* is an element tree or an individual element." msgid "*elem* is an element tree or an individual element."
msgstr "" msgstr "*elem* est un élément de l'arborescence ou un élément individuel."
#: library/xml.etree.elementtree.rst:571 #: library/xml.etree.elementtree.rst:571
msgid "" msgid ""
@ -671,11 +721,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:641 #: library/xml.etree.elementtree.rst:641
msgid "The *parser* argument." msgid "The *parser* argument."
msgstr "" msgstr "L'argument *parser*."
#: library/xml.etree.elementtree.rst:644 library/xml.etree.elementtree.rst:1473 #: library/xml.etree.elementtree.rst:644 library/xml.etree.elementtree.rst:1473
msgid "The ``comment`` and ``pi`` events were added." msgid "The ``comment`` and ``pi`` events were added."
msgstr "" msgstr "Les évènements ``comment`` et ``pi`` ont été ajoutés."
#: library/xml.etree.elementtree.rst:650 #: library/xml.etree.elementtree.rst:650
msgid "" msgid ""
@ -744,7 +794,7 @@ msgstr "Le paramètre *short_empty_elements*."
#: library/xml.etree.elementtree.rst:708 library/xml.etree.elementtree.rst:735 #: library/xml.etree.elementtree.rst:708 library/xml.etree.elementtree.rst:735
msgid "The *xml_declaration* and *default_namespace* parameters." msgid "The *xml_declaration* and *default_namespace* parameters."
msgstr "" msgstr "Les paramètres *xml_declaration* et *default_namespace*."
#: library/xml.etree.elementtree.rst:711 #: library/xml.etree.elementtree.rst:711
msgid "" msgid ""
@ -791,7 +841,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:763 #: library/xml.etree.elementtree.rst:763
msgid "XInclude support" msgid "XInclude support"
msgstr "" msgstr "Prise en charge de XInclude"
#: library/xml.etree.elementtree.rst:765 #: library/xml.etree.elementtree.rst:765
msgid "" msgid ""
@ -888,6 +938,8 @@ msgid ""
"Element class. This class defines the Element interface, and provides a " "Element class. This class defines the Element interface, and provides a "
"reference implementation of this interface." "reference implementation of this interface."
msgstr "" msgstr ""
"Classe Element. Cette classe définit l'interface Element et fournit une "
"implémentation de référence de cette interface."
#: library/xml.etree.elementtree.rst:870 #: library/xml.etree.elementtree.rst:870
msgid "" msgid ""
@ -944,6 +996,8 @@ msgstr ""
#: library/xml.etree.elementtree.rst:916 #: library/xml.etree.elementtree.rst:916
msgid "The following dictionary-like methods work on the element attributes." msgid "The following dictionary-like methods work on the element attributes."
msgstr "" msgstr ""
"Les méthodes dictionnaire-compatibles suivantes traitent les attributs de "
"l'élément."
#: library/xml.etree.elementtree.rst:921 #: library/xml.etree.elementtree.rst:921
msgid "" msgid ""
@ -953,18 +1007,22 @@ msgstr ""
#: library/xml.etree.elementtree.rst:927 #: library/xml.etree.elementtree.rst:927
msgid "Gets the element attribute named *key*." msgid "Gets the element attribute named *key*."
msgstr "" msgstr "Accède à l'attribut de l'élément nommé *key*."
#: library/xml.etree.elementtree.rst:929 #: library/xml.etree.elementtree.rst:929
msgid "" msgid ""
"Returns the attribute value, or *default* if the attribute was not found." "Returns the attribute value, or *default* if the attribute was not found."
msgstr "" msgstr ""
"Renvoie la valeur de l'attribut ou *default* si l'attribut n'a pas été "
"trouvé."
#: library/xml.etree.elementtree.rst:934 #: library/xml.etree.elementtree.rst:934
msgid "" msgid ""
"Returns the element attributes as a sequence of (name, value) pairs. The " "Returns the element attributes as a sequence of (name, value) pairs. The "
"attributes are returned in an arbitrary order." "attributes are returned in an arbitrary order."
msgstr "" msgstr ""
"Renvoie les attributs de l'élément comme une séquence de paire (nom, "
"valeur). Les attributs sont renvoyés un l'ordre arbitraire."
#: library/xml.etree.elementtree.rst:940 #: library/xml.etree.elementtree.rst:940
msgid "" msgid ""
@ -974,11 +1032,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:946 #: library/xml.etree.elementtree.rst:946
msgid "Set the attribute *key* on the element to *value*." msgid "Set the attribute *key* on the element to *value*."
msgstr "" msgstr "Change l'attribut *key* à l'élément *value*."
#: library/xml.etree.elementtree.rst:948 #: library/xml.etree.elementtree.rst:948
msgid "The following methods work on the element's children (subelements)." msgid "The following methods work on the element's children (subelements)."
msgstr "" msgstr "Les méthodes suivantes traitent les éléments enfants (sous-éléments)."
#: library/xml.etree.elementtree.rst:953 #: library/xml.etree.elementtree.rst:953
msgid "" msgid ""
@ -1110,7 +1168,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1094 #: library/xml.etree.elementtree.rst:1094
msgid "ElementTree Objects" msgid "ElementTree Objects"
msgstr "" msgstr "Objets ElementTree"
#: library/xml.etree.elementtree.rst:1099 #: library/xml.etree.elementtree.rst:1099
msgid "" msgid ""
@ -1134,7 +1192,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1116 #: library/xml.etree.elementtree.rst:1116
msgid "Same as :meth:`Element.find`, starting at the root of the tree." msgid "Same as :meth:`Element.find`, starting at the root of the tree."
msgstr "" msgstr "Comme :meth:`Element.find`, commence à la racine de l'arbre."
#: library/xml.etree.elementtree.rst:1121 #: library/xml.etree.elementtree.rst:1121
msgid "Same as :meth:`Element.findall`, starting at the root of the tree." msgid "Same as :meth:`Element.findall`, starting at the root of the tree."
@ -1146,7 +1204,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1131 #: library/xml.etree.elementtree.rst:1131
msgid "Returns the root element for this tree." msgid "Returns the root element for this tree."
msgstr "" msgstr "Renvoie l'élément racine de l'arbre."
#: library/xml.etree.elementtree.rst:1136 #: library/xml.etree.elementtree.rst:1136
msgid "" msgid ""
@ -1210,7 +1268,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1220 #: library/xml.etree.elementtree.rst:1220
msgid "QName Objects" msgid "QName Objects"
msgstr "" msgstr "Objets QName"
#: library/xml.etree.elementtree.rst:1225 #: library/xml.etree.elementtree.rst:1225
msgid "" msgid ""
@ -1224,7 +1282,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1237 #: library/xml.etree.elementtree.rst:1237
msgid "TreeBuilder Objects" msgid "TreeBuilder Objects"
msgstr "" msgstr "Objets TreeBuilder"
#: library/xml.etree.elementtree.rst:1243 #: library/xml.etree.elementtree.rst:1243
msgid "" msgid ""
@ -1262,12 +1320,16 @@ msgid ""
"Adds text to the current element. *data* is a string. This should be " "Adds text to the current element. *data* is a string. This should be "
"either a bytestring, or a Unicode string." "either a bytestring, or a Unicode string."
msgstr "" msgstr ""
"Ajoute du texte à l'élément courant. *data* est une chaîne de caractères. "
"Cela peut être une chaîne d'octets ou une chaîne Unicode."
#: library/xml.etree.elementtree.rst:1273 #: library/xml.etree.elementtree.rst:1273
msgid "" msgid ""
"Closes the current element. *tag* is the element name. Returns the closed " "Closes the current element. *tag* is the element name. Returns the closed "
"element." "element."
msgstr "" msgstr ""
"Ferme l'élément courant. *tag* est le nom de l'élément. Renvoie l'élément "
"fermé."
#: library/xml.etree.elementtree.rst:1279 #: library/xml.etree.elementtree.rst:1279
msgid "" msgid ""
@ -1325,7 +1387,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1344 #: library/xml.etree.elementtree.rst:1344
msgid "XMLParser Objects" msgid "XMLParser Objects"
msgstr "" msgstr "Objets XMLParser"
#: library/xml.etree.elementtree.rst:1349 #: library/xml.etree.elementtree.rst:1349
msgid "" msgid ""
@ -1368,7 +1430,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1417 #: library/xml.etree.elementtree.rst:1417
msgid "XMLPullParser Objects" msgid "XMLPullParser Objects"
msgstr "" msgstr "Objets XMLPullParser"
#: library/xml.etree.elementtree.rst:1421 #: library/xml.etree.elementtree.rst:1421
msgid "" msgid ""
@ -1461,6 +1523,8 @@ msgstr ""
msgid "" msgid ""
"A tuple of *line*, *column* numbers, specifying where the error occurred." "A tuple of *line*, *column* numbers, specifying where the error occurred."
msgstr "" msgstr ""
"Un *n*-uplet de numéro de *ligne*, de *colonne* indiquant le lieu "
"d'apparition de l'erreur."
#: library/xml.etree.elementtree.rst:1497 #: library/xml.etree.elementtree.rst:1497
msgid "Footnotes" msgid "Footnotes"
@ -1473,3 +1537,7 @@ msgid ""
"https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://" "https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://"
"www.iana.org/assignments/character-sets/character-sets.xhtml." "www.iana.org/assignments/character-sets/character-sets.xhtml."
msgstr "" msgstr ""
"La chaîne de caractères encodée inclue dans la sortie XML doit être conforme "
"aux standards. Par exemple, « UTF-8 » est valide, mais pas « UTF8 ». Voir "
"https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl et https://"
"www.iana.org/assignments/character-sets/character-sets.xhtml."

View File

@ -3365,6 +3365,8 @@ msgstr ""
#: reference/datamodel.rst:1880 #: reference/datamodel.rst:1880
msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgid "Any non-string :term:`iterable` may be assigned to *__slots__*."
msgstr "" msgstr ""
"Tout :term:`itérable <iterable>`, sauf les chaînes de caractères, peuvent "
"être affectés à *__slots__*."
#: reference/datamodel.rst:1882 #: reference/datamodel.rst:1882
msgid "" msgid ""
@ -3373,6 +3375,11 @@ msgid ""
"can be used to provide per-attribute docstrings that will be recognised by :" "can be used to provide per-attribute docstrings that will be recognised by :"
"func:`inspect.getdoc` and displayed in the output of :func:`help`." "func:`inspect.getdoc` and displayed in the output of :func:`help`."
msgstr "" msgstr ""
"Si vous affectez *__slots__* à un :class:`dictionnaire <dict>`, les clés du "
"dictionnaires seront les noms du *slot*. Les valeurs du dictionnaire peuvent "
"être utilisées en tant que chaines de description (*docstrings*) et sont "
"reconnues par :func:`inspect.getdoc` qui les affiche dans la sortie de :func:"
"`help`."
#: reference/datamodel.rst:1887 #: reference/datamodel.rst:1887
#, fuzzy #, fuzzy
@ -3939,6 +3946,11 @@ msgid ""
"notation. For example, the annotation ``list[int]`` might be used to signify " "notation. For example, the annotation ``list[int]`` might be used to signify "
"a :class:`list` in which all the elements are of type :class:`int`." "a :class:`list` in which all the elements are of type :class:`int`."
msgstr "" msgstr ""
"Lors de l'utilisation d':term:`annotations de types<annotation>`, il est "
"souvent utile de *paramètrer* un :term:`type générique <generic type>` en se "
"servant de la notation crochets de Python. Par exemple, l'annotation "
"``list[int]`` peut être utilisée pour signifier une :class:`liste <list>` "
"dans laquelle tous les éléments sont de type :class:`entiers <int>`."
#: reference/datamodel.rst:2208 #: reference/datamodel.rst:2208
#, fuzzy #, fuzzy
@ -3947,33 +3959,43 @@ msgstr ":pep:`343` — L'instruction ``with``"
#: reference/datamodel.rst:2208 #: reference/datamodel.rst:2208
msgid "Introducing Python's framework for type annotations" msgid "Introducing Python's framework for type annotations"
msgstr "" msgstr "Introduction à l'annotation de types en Python (document en anglais)"
#: reference/datamodel.rst:2211 #: reference/datamodel.rst:2211
msgid ":ref:`Generic Alias Types<types-genericalias>`" msgid ":ref:`Generic Alias Types<types-genericalias>`"
msgstr "" msgstr ":ref:`Types alias génériques <types-genericalias>`"
#: reference/datamodel.rst:2211 #: reference/datamodel.rst:2211
msgid "Documentation for objects representing parameterized generic classes" msgid "Documentation for objects representing parameterized generic classes"
msgstr "" msgstr ""
"Documentation pour les objets qui représentent des classes génériques "
"paramétrées"
#: reference/datamodel.rst:2214 #: reference/datamodel.rst:2214
msgid "" msgid ""
":ref:`Generics`, :ref:`user-defined generics<user-defined-generics>` and :" ":ref:`Generics`, :ref:`user-defined generics<user-defined-generics>` and :"
"class:`typing.Generic`" "class:`typing.Generic`"
msgstr "" msgstr ""
":ref:`Generics`, :ref:`Types génériques définis par l'utilisateur <user-"
"defined-generics>` et classe :class:`typing.Generic (classe de base "
"abstraite pour les types génériques) <typing.Generic>`"
#: reference/datamodel.rst:2214 #: reference/datamodel.rst:2214
msgid "" msgid ""
"Documentation on how to implement generic classes that can be parameterized " "Documentation on how to implement generic classes that can be parameterized "
"at runtime and understood by static type-checkers." "at runtime and understood by static type-checkers."
msgstr "" msgstr ""
"Documentation sur la manière d'implémenter des classes génériques qui "
"peuvent être paramétrées à l'exécution et comprises par les vérificateurs "
"statiques de types."
#: reference/datamodel.rst:2217 #: reference/datamodel.rst:2217
msgid "" msgid ""
"A class can *generally* only be parameterized if it defines the special " "A class can *generally* only be parameterized if it defines the special "
"class method ``__class_getitem__()``." "class method ``__class_getitem__()``."
msgstr "" msgstr ""
"*Généralement*, une classe ne peut être paramétrée que si elle définit une "
"méthode spéciale de classe ``__class_getitem__()``."
#: reference/datamodel.rst:2222 #: reference/datamodel.rst:2222
msgid "" msgid ""
@ -3989,10 +4011,13 @@ msgid ""
"method. As such, there is no need for it to be decorated with :func:" "method. As such, there is no need for it to be decorated with :func:"
"`@classmethod<classmethod>` when it is defined." "`@classmethod<classmethod>` when it is defined."
msgstr "" msgstr ""
"Lorsqu'elle est définie dans une classe, ``__class_getitem__()`` est "
"automatiquement une méthode de classe. Ainsi, il est superflu de la décorer "
"avec :func:`@classmethod<classmethod>` lors de sa définition."
#: reference/datamodel.rst:2231 #: reference/datamodel.rst:2231
msgid "The purpose of *__class_getitem__*" msgid "The purpose of *__class_getitem__*"
msgstr "" msgstr "Intention de *__class_getitem__*"
#: reference/datamodel.rst:2233 #: reference/datamodel.rst:2233
msgid "" msgid ""
@ -4000,6 +4025,10 @@ msgid ""
"parameterization of standard-library generic classes in order to more easily " "parameterization of standard-library generic classes in order to more easily "
"apply :term:`type hints<type hint>` to these classes." "apply :term:`type hints<type hint>` to these classes."
msgstr "" msgstr ""
"Le but de :meth:`~object.__class_getitem__` est de permettre la "
"paramétrisation à l'exécution des classes génériques de la bibliothèque "
"standard de façon à pouvoir appliquer plus facilement des :term:`annotations "
"de type <type hint>` à ces classes."
#: reference/datamodel.rst:2237 #: reference/datamodel.rst:2237
msgid "" msgid ""
@ -4009,6 +4038,11 @@ msgid ""
"__class_getitem__`, or inherit from :class:`typing.Generic`, which has its " "__class_getitem__`, or inherit from :class:`typing.Generic`, which has its "
"own implementation of ``__class_getitem__()``." "own implementation of ``__class_getitem__()``."
msgstr "" msgstr ""
"Pour implémenter des classes génériques particularisées pouvant être "
"paramétrées à l'exécution, et comprises par les vérificateurs statiques de "
"type, vous pouvez soit hériter d'une classe de la bibliothèque standard qui "
"implémente déjà :meth:`~object.__class_getitem__`, ou hériter de :class:"
"`typing.Generic`, qui a sa propre implémentation de ``__class_getitem__()``."
#: reference/datamodel.rst:2243 #: reference/datamodel.rst:2243
msgid "" msgid ""
@ -4017,10 +4051,15 @@ msgid ""
"type-checkers such as mypy. Using ``__class_getitem__()`` on any class for " "type-checkers such as mypy. Using ``__class_getitem__()`` on any class for "
"purposes other than type hinting is discouraged." "purposes other than type hinting is discouraged."
msgstr "" msgstr ""
"Les implémentations particularisées de :meth:`~object.__class_getitem__` sur "
"des classes définies ailleurs que la bibliothèque standard peuvent ne pas "
"être comprises par des vérificateurs de types tiers tels que *mypy*. "
"L'utilisation de ``__class_getitem__()`` pour tout autre objectif que "
"l'annotation de type n'est pas conseillée."
#: reference/datamodel.rst:2253 #: reference/datamodel.rst:2253
msgid "*__class_getitem__* versus *__getitem__*" msgid "*__class_getitem__* versus *__getitem__*"
msgstr "" msgstr "*__class_getitem__* contre *__getitem__*"
#: reference/datamodel.rst:2255 #: reference/datamodel.rst:2255
msgid "" msgid ""
@ -4031,6 +4070,13 @@ msgid ""
"instead. ``__class_getitem__()`` should return a :ref:`GenericAlias<types-" "instead. ``__class_getitem__()`` should return a :ref:`GenericAlias<types-"
"genericalias>` object if it is properly defined." "genericalias>` object if it is properly defined."
msgstr "" msgstr ""
"D'habitude, l':ref:`indiçage <subscriptions>` d'un objet en utilisant des "
"crochets appelle la méthode :meth:`~object.__getitem__` de l'instance, "
"définie dans la classe de l'objet. Cependant, si l'objet dont on cherche un "
"indice est lui-même une classe, la méthode de classe :meth:`~object."
"__class_getitem__` peut être appelée à la place. ``__class_getitem__()`` "
"doit renvoyer un objet :ref:`GenericAlias<types-genericalias>` si elle est "
"correctement définie."
#: reference/datamodel.rst:2262 #: reference/datamodel.rst:2262
msgid "" msgid ""
@ -4038,6 +4084,9 @@ msgid ""
"follows something like the following process to decide whether :meth:" "follows something like the following process to decide whether :meth:"
"`~object.__getitem__` or :meth:`~object.__class_getitem__` should be called::" "`~object.__getitem__` or :meth:`~object.__class_getitem__` should be called::"
msgstr "" msgstr ""
"Lorsqu'on lui présente l':term:`expression` ``obj[x]``, l'interpréteur "
"Python suit une sorte de processus suivant pour décider s'il faut appeler :"
"meth:`~object.__getitem__` ou :meth:`~object.__class_getitem__` ::"
#: reference/datamodel.rst:2290 #: reference/datamodel.rst:2290
msgid "" msgid ""
@ -4048,6 +4097,12 @@ msgid ""
"``dict[str, float]`` and ``tuple[str, bytes]`` all result in :meth:`~object." "``dict[str, float]`` and ``tuple[str, bytes]`` all result in :meth:`~object."
"__class_getitem__` being called::" "__class_getitem__` being called::"
msgstr "" msgstr ""
"En Python, toutes les classes sont des instances d'autres classes. La classe "
"d'une classe est appelée la :term:`métaclasse <metaclass>` de la classe et "
"la plupart des classes ont la classe :class:`type` comme métaclasse. :class:"
"`type` ne définit pas :meth:`~object.__getitem__`, ce qui veut dire que des "
"expressions telles que ``list[int]``, ``dict[str, float]`` et ``tuple[str, "
"bytes]`` aboutissent toutes à l'appel de :meth:`~object.__class_getitem__` ::"
#: reference/datamodel.rst:2309 #: reference/datamodel.rst:2309
msgid "" msgid ""
@ -4055,6 +4110,10 @@ msgid ""
"__getitem__`, subscribing the class may result in different behaviour. An " "__getitem__`, subscribing the class may result in different behaviour. An "
"example of this can be found in the :mod:`enum` module::" "example of this can be found in the :mod:`enum` module::"
msgstr "" msgstr ""
"Cependant, si une classe a une métaclasse particularisée qui définit :meth:"
"`~object.__getitem__`, l'indiçage de la classe peut conduire à un "
"comportement différent. Un exemple peut être trouvé dans le module :mod:"
"`enum` ::"
#: reference/datamodel.rst:2334 #: reference/datamodel.rst:2334
#, fuzzy #, fuzzy
@ -4068,6 +4127,9 @@ msgid ""
"`subscription<subscriptions>` results in ``__class_getitem__()`` being " "`subscription<subscriptions>` results in ``__class_getitem__()`` being "
"called instead of :meth:`~object.__getitem__`" "called instead of :meth:`~object.__getitem__`"
msgstr "" msgstr ""
"Introduction de :meth:`~object.__class_getitem__`, et présentation des cas "
"où un :ref:`indiçage<subscriptions>` conduit à l'appel de "
"``__class_getitem__()`` au lieu de :meth:`~object.__getitem__`"
#: reference/datamodel.rst:2341 #: reference/datamodel.rst:2341
msgid "Emulating callable objects" msgid "Emulating callable objects"
@ -4253,6 +4315,10 @@ msgid ""
"meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. " "meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. "
"See :ref:`classgetitem-versus-getitem` for more details." "See :ref:`classgetitem-versus-getitem` for more details."
msgstr "" msgstr ""
"quand on vous :ref:`spécifiez un indice <subscriptions>` pour une *classe*, "
"la méthode de classe spéciale :meth:`~object.__class_getitem__` peut être "
"appelée au lieu de ``__getitem__()``. Reportez-vous à :ref:`classgetitem-"
"versus-getitem` pour plus de détails."
#: reference/datamodel.rst:2465 #: reference/datamodel.rst:2465
msgid "" msgid ""
@ -4548,6 +4614,8 @@ msgid ""
"The built-in function :func:`int` falls back to :meth:`__trunc__` if " "The built-in function :func:`int` falls back to :meth:`__trunc__` if "
"neither :meth:`__int__` nor :meth:`__index__` is defined." "neither :meth:`__int__` nor :meth:`__index__` is defined."
msgstr "" msgstr ""
"La fonction native :func:`int` se replie sur :meth:`__trunc__` dans le cas "
"où ni :meth:`__int__` ni :meth:`__index__` ne sont définies."
#: reference/datamodel.rst:2699 #: reference/datamodel.rst:2699
msgid "With Statement Context Managers" msgid "With Statement Context Managers"

View File

@ -79,33 +79,35 @@ msgstr ""
#: reference/executionmodel.rst:59 #: reference/executionmodel.rst:59
msgid "The following constructs bind names:" msgid "The following constructs bind names:"
msgstr "" msgstr "Les noms sont liés *via* les constructions suivantes :"
#: reference/executionmodel.rst:61 #: reference/executionmodel.rst:61
msgid "formal parameters to functions," msgid "formal parameters to functions,"
msgstr "" msgstr "paramètres formels de fonctions,"
#: reference/executionmodel.rst:62 #: reference/executionmodel.rst:62
msgid "class definitions," msgid "class definitions,"
msgstr "" msgstr "définitions de classes,"
#: reference/executionmodel.rst:63 #: reference/executionmodel.rst:63
msgid "function definitions," msgid "function definitions,"
msgstr "" msgstr "définitions de fonctions,"
#: reference/executionmodel.rst:64 #: reference/executionmodel.rst:64
msgid "assignment expressions," msgid "assignment expressions,"
msgstr "" msgstr "expressions d'affectation,"
#: reference/executionmodel.rst:65 #: reference/executionmodel.rst:65
msgid "" msgid ""
":ref:`targets <assignment>` that are identifiers if occurring in an " ":ref:`targets <assignment>` that are identifiers if occurring in an "
"assignment:" "assignment:"
msgstr "" msgstr ""
":ref:`cibles <assignment>` qui sont des identifiants, lorsque c'est une "
"affectation :"
#: reference/executionmodel.rst:68 #: reference/executionmodel.rst:68
msgid ":keyword:`for` loop header," msgid ":keyword:`for` loop header,"
msgstr "" msgstr "de l'entête d'une boucle :keyword:`for`,"
#: reference/executionmodel.rst:69 #: reference/executionmodel.rst:69
msgid "" msgid ""
@ -115,11 +117,11 @@ msgstr ""
#: reference/executionmodel.rst:71 #: reference/executionmodel.rst:71
msgid "in a capture pattern in structural pattern matching" msgid "in a capture pattern in structural pattern matching"
msgstr "" msgstr "dans un champ de recherche d'un filtrage par motifs"
#: reference/executionmodel.rst:73 #: reference/executionmodel.rst:73
msgid ":keyword:`import` statements." msgid ":keyword:`import` statements."
msgstr "" msgstr "des instructions :keyword:`import`."
#: reference/executionmodel.rst:75 #: reference/executionmodel.rst:75
msgid "" msgid ""
@ -127,6 +129,10 @@ msgid ""
"names defined in the imported module, except those beginning with an " "names defined in the imported module, except those beginning with an "
"underscore. This form may only be used at the module level." "underscore. This form may only be used at the module level."
msgstr "" msgstr ""
"L'instruction :keyword:`!import` sous la forme ``from ... import *`` lie "
"tous les noms définis dans le module importé, sauf ceux qui commencent par "
"le caractère souligné. Cette écriture ne peut être utilisée qu'au niveau du "
"module."
#: reference/executionmodel.rst:79 #: reference/executionmodel.rst:79
msgid "" msgid ""

View File

@ -920,6 +920,8 @@ msgid ""
"In typical use, this is called with a single exception instance similar to " "In typical use, this is called with a single exception instance similar to "
"the way the :keyword:`raise` keyword is used." "the way the :keyword:`raise` keyword is used."
msgstr "" msgstr ""
"Dans son utilisation typique, elle est appelée avec une seule instance "
"d'exception, de façon similaire à l'utilisation du mot-clé :keyword:`raise`."
#: reference/expressions.rst:571 #: reference/expressions.rst:571
msgid "" msgid ""
@ -1047,6 +1049,16 @@ msgid ""
"the async generator by calling :meth:`~agen.aclose` method to finalize the " "the async generator by calling :meth:`~agen.aclose` method to finalize the "
"generator and ultimately detach it from the event loop." "generator and ultimately detach it from the event loop."
msgstr "" msgstr ""
"Si un générateur asynchrone se termine précipitamment en raison d'un :"
"keyword:`break`, de l'annulation de la tâche de l'appelant ou d'une "
"exception, le code de nettoyage du générateur asynchrone est exécuté et lève "
"possiblement des exceptions, accède à des variables de contexte dans un "
"contexte inattendu — peut-être parce que la tâche de laquelle il dépend est "
"finie, ou pendant la fermeture de la boucle d'événements quand le point "
"d'entrée du ramasse-miettes a déjà été appelé. Afin d'éviter cette "
"situation, l'appelant doit explicitement fermer le générateur asynchrone en "
"appelant la méthode :meth:`~agen.aclose` pour « finaliser » le générateur et "
"le détacher de la boucle d'événements."
#: reference/expressions.rst:669 #: reference/expressions.rst:669
msgid "" msgid ""
@ -1277,12 +1289,18 @@ msgid ""
"term:`generic class <generic type>` will generally return a :ref:" "term:`generic class <generic type>` will generally return a :ref:"
"`GenericAlias <types-genericalias>` object." "`GenericAlias <types-genericalias>` object."
msgstr "" msgstr ""
"L'indiçage d'une instance de :ref:`classe containeur <sequence-types>` "
"sélectionne généralement un élément du conteneur. L'indiçage d'une :term:"
"`classe générique <generic type>` renvoie généralement un objet :ref:"
"`GenericAlias <types-genericalias>`."
#: reference/expressions.rst:834 #: reference/expressions.rst:834
msgid "" msgid ""
"When an object is subscripted, the interpreter will evaluate the primary and " "When an object is subscripted, the interpreter will evaluate the primary and "
"the expression list." "the expression list."
msgstr "" msgstr ""
"Lorsqu'on accède à l'indice d'un objet, l'interpréteur évalue la primaire et "
"la liste d'expressions."
#: reference/expressions.rst:837 #: reference/expressions.rst:837
msgid "" msgid ""
@ -1293,6 +1311,13 @@ msgid ""
"one of these methods. For more details on when ``__class_getitem__`` is " "one of these methods. For more details on when ``__class_getitem__`` is "
"called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." "called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`."
msgstr "" msgstr ""
"L'évaluation de la primaire doit produire un objet qui gère l'indiçage. Un "
"objet est susceptible de gérer l'indiçage s'il définit la ou les deux "
"méthodes :meth:`~object.__getitem__` et :meth:`~object.__class_getitem__`. "
"Quand on spécifie un indice du primaire, le résultat de l'évaluation de la "
"liste d'expression est passé à l'une de ces méthodes. Pour plus de détails "
"sur le choix de ``__class_getitem__`` ou ``__getitem__`` pour l'appel, "
"lisez :ref:`classgetitem-versus-getitem`."
#: reference/expressions.rst:844 #: reference/expressions.rst:844
msgid "" msgid ""
@ -1300,6 +1325,10 @@ msgid ""
"class:`tuple` containing the items of the expression list. Otherwise, the " "class:`tuple` containing the items of the expression list. Otherwise, the "
"expression list will evaluate to the value of the list's sole member." "expression list will evaluate to the value of the list's sole member."
msgstr "" msgstr ""
"Si la liste d'expressions contient au moins une virgule, elle est considérée "
"comme un :class:`n-uplet <tuple>` contenant les éléments de la liste "
"d'expressions. Sinon, la liste d'expressions est évaluée à la valeur du seul "
"membre de la liste."
#: reference/expressions.rst:848 #: reference/expressions.rst:848
#, fuzzy #, fuzzy

View File

@ -650,6 +650,8 @@ msgid ""
"Use of :meth:`~importlib.abc.MetaPathFinder.find_module` by the import " "Use of :meth:`~importlib.abc.MetaPathFinder.find_module` by the import "
"system now raises :exc:`ImportWarning`." "system now raises :exc:`ImportWarning`."
msgstr "" msgstr ""
"l'utilisation de :meth:`~importlib.abc.MetaPathFinder.find_module` par le "
"système d'importation lève maintenant un :exc:`ImportWarning`."
#: reference/import.rst:338 #: reference/import.rst:338
msgid "Loading" msgid "Loading"
@ -904,7 +906,7 @@ msgstr ""
#: reference/import.rst:477 #: reference/import.rst:477
msgid "Use of ``load_module()`` will raise :exc:`ImportWarning`." msgid "Use of ``load_module()`` will raise :exc:`ImportWarning`."
msgstr "" msgstr "l'utilisation de ``load_module()`` lève un :exc:`ImportWarning`."
#: reference/import.rst:481 #: reference/import.rst:481
msgid "Submodules" msgid "Submodules"
@ -1314,6 +1316,10 @@ msgid ""
"``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to " "``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to "
"stop in Python 3.12." "stop in Python 3.12."
msgstr "" msgstr ""
"l'appel à :meth:`~importlib.abc.Loader.module_repr` a maintenant lieu après "
"avoir essayé d'utiliser l'attribut ``__spec__`` du module mais avant de se "
"rabattre vers ``__file__``. L'utilisation de :meth:`~importlib.abc.Loader."
"module_repr` est prévue d'être arrêtée dans Python 3.12."
#: reference/import.rst:693 #: reference/import.rst:693
msgid "Cached bytecode invalidation" msgid "Cached bytecode invalidation"

View File

@ -587,6 +587,12 @@ msgid ""
"statement, but this distinction is done at the parser level, not when " "statement, but this distinction is done at the parser level, not when "
"tokenizing." "tokenizing."
msgstr "" msgstr ""
"Certains identifiants ne sont réservés que dans des contextes particuliers. "
"Ils sont appelés *mots-clés ad hoc*. Les identifiants ``match``, ``case`` et "
"``_`` peuvent être interprétés en tant que mots-clés dans le contexte "
"d'instructions de filtrage par motifs, mais cette distinction est effectuée "
"au niveau de l'analyseur syntaxique (*parser* en anglais), pas lors de "
"l'analyse lexicale (*tokenization* en anglais)."
#: reference/lexical_analysis.rst:369 #: reference/lexical_analysis.rst:369
msgid "" msgid ""
@ -594,6 +600,9 @@ msgid ""
"preserving compatibility with existing code that uses ``match``, ``case`` " "preserving compatibility with existing code that uses ``match``, ``case`` "
"and ``_`` as identifier names." "and ``_`` as identifier names."
msgstr "" msgstr ""
"En tant que mots-clés ad hoc, leur utilisation dans le filtrage par motifs "
"est possible tout en conservant la compatibilité avec du code existant qui "
"utilise ``match``, ``case`` et ``_`` comme identifiants."
#: reference/lexical_analysis.rst:380 #: reference/lexical_analysis.rst:380
msgid "Reserved classes of identifiers" msgid "Reserved classes of identifiers"
@ -615,11 +624,11 @@ msgstr "``_*``"
#: reference/lexical_analysis.rst:387 #: reference/lexical_analysis.rst:387
msgid "Not imported by ``from module import *``." msgid "Not imported by ``from module import *``."
msgstr "" msgstr "N'est pas importé par ``from module import *``."
#: reference/lexical_analysis.rst:408 #: reference/lexical_analysis.rst:408
msgid "``_``" msgid "``_``"
msgstr "" msgstr "``_``"
#: reference/lexical_analysis.rst:390 #: reference/lexical_analysis.rst:390
msgid "" msgid ""
@ -627,6 +636,9 @@ msgid ""
"`soft keyword <soft-keywords>` that denotes a :ref:`wildcard <wildcard-" "`soft keyword <soft-keywords>` that denotes a :ref:`wildcard <wildcard-"
"patterns>`." "patterns>`."
msgstr "" msgstr ""
"Dans un motif ``case`` d'une instruction :keyword:`match`, ``_`` est un :ref:"
"`mot-clé ad hoc <soft-keywords>` qui décrit un motif :ref:`attrape-tout "
"<wildcard-patterns>`."
#: reference/lexical_analysis.rst:394 #: reference/lexical_analysis.rst:394
msgid "" msgid ""
@ -634,12 +646,18 @@ msgid ""
"evaluation available in the variable ``_``. (It is stored in the :mod:" "evaluation available in the variable ``_``. (It is stored in the :mod:"
"`builtins` module, alongside built-in functions like ``print``.)" "`builtins` module, alongside built-in functions like ``print``.)"
msgstr "" msgstr ""
"De son côté, l'interpréteur interactif place le résultat de la dernière "
"évaluation dans la variable ``-`` (son emplacement se situe dans le module :"
"mod:`builtins`, avec les fonctions natives telles que ``print``)."
#: reference/lexical_analysis.rst:399 #: reference/lexical_analysis.rst:399
msgid "" msgid ""
"Elsewhere, ``_`` is a regular identifier. It is often used to name " "Elsewhere, ``_`` is a regular identifier. It is often used to name "
"\"special\" items, but it is not special to Python itself." "\"special\" items, but it is not special to Python itself."
msgstr "" msgstr ""
"Ailleurs, ``_`` est un identifiant comme un autre. Il est souvent utilisé "
"pour désigner des éléments « spéciaux », mais il n'est pas spécial pour "
"Python en tant que tel."
#: reference/lexical_analysis.rst:404 #: reference/lexical_analysis.rst:404
msgid "" msgid ""
@ -654,6 +672,8 @@ msgstr ""
#: reference/lexical_analysis.rst:408 #: reference/lexical_analysis.rst:408
msgid "It is also commonly used for unused variables." msgid "It is also commonly used for unused variables."
msgstr "" msgstr ""
"Il est aussi communément utilisé pour signifier que la variable n'est pas "
"utilisée."
#: reference/lexical_analysis.rst:416 #: reference/lexical_analysis.rst:416
msgid "``__*__``" msgid "``__*__``"
@ -861,7 +881,7 @@ msgstr "barre oblique inversée et retour à la ligne ignorés"
#: reference/lexical_analysis.rst:555 #: reference/lexical_analysis.rst:555
msgid "\\(1)" msgid "\\(1)"
msgstr "" msgstr "\\(1)"
#: reference/lexical_analysis.rst:557 #: reference/lexical_analysis.rst:557
msgid "``\\\\``" msgid "``\\\\``"
@ -1007,7 +1027,7 @@ msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits"
#: reference/lexical_analysis.rst:594 #: reference/lexical_analysis.rst:594
msgid "\\(7)" msgid "\\(7)"
msgstr "" msgstr "\\(7)"
#: reference/lexical_analysis.rst:598 #: reference/lexical_analysis.rst:598
msgid "Notes:" msgid "Notes:"

View File

@ -136,7 +136,7 @@ msgstr ""
#: reference/simple_stmts.rst:127 #: reference/simple_stmts.rst:127
msgid "Else:" msgid "Else:"
msgstr "" msgstr "Sinon :"
#: reference/simple_stmts.rst:129 #: reference/simple_stmts.rst:129
msgid "" msgid ""

View File

@ -376,12 +376,18 @@ msgid ""
"will have the exception being handled attached to it and included in the " "will have the exception being handled attached to it and included in the "
"error message::" "error message::"
msgstr "" msgstr ""
"Si une exception non gérée se produit à l'intérieur d'une section :keyword:"
"`except`, l'exception en cours de traitement est jointe à l'exception non "
"gérée et incluse dans le message d'erreur ::"
#: tutorial/errors.rst:297 #: tutorial/errors.rst:297
msgid "" msgid ""
"To indicate that an exception is a direct consequence of another, the :" "To indicate that an exception is a direct consequence of another, the :"
"keyword:`raise` statement allows an optional :keyword:`from<raise>` clause::" "keyword:`raise` statement allows an optional :keyword:`from<raise>` clause::"
msgstr "" msgstr ""
"Pour indiquer qu'une exception est la conséquence directe d'une autre, "
"l'instruction :keyword:`raise` autorise une clause facultative :keyword:"
"`from<raise>` ::"
#: tutorial/errors.rst:303 #: tutorial/errors.rst:303
msgid "This can be useful when you are transforming exceptions. For example::" msgid "This can be useful when you are transforming exceptions. For example::"
@ -393,6 +399,8 @@ msgid ""
"It also allows disabling automatic exception chaining using the ``from " "It also allows disabling automatic exception chaining using the ``from "
"None`` idiom::" "None`` idiom::"
msgstr "" msgstr ""
"Cela permet également de désactiver le chaînage automatique des exceptions à "
"l'aide de l'idiome ``from None`` ::"
#: tutorial/errors.rst:336 #: tutorial/errors.rst:336
msgid "" msgid ""

View File

@ -192,6 +192,9 @@ msgid ""
"expression, an equal sign, then the representation of the evaluated " "expression, an equal sign, then the representation of the evaluated "
"expression:" "expression:"
msgstr "" msgstr ""
"Le spécificateur ``=`` peut être utilisé pour développer une expression en "
 texte de l'expression, un signe égal, puis la représentation de "
"l'expression évaluée » :"
#: tutorial/inputoutput.rst:145 #: tutorial/inputoutput.rst:145
#, fuzzy #, fuzzy

View File

@ -88,6 +88,9 @@ msgid ""
"https://www.python.org: The major Python web site. It contains code, " "https://www.python.org: The major Python web site. It contains code, "
"documentation, and pointers to Python-related pages around the web." "documentation, and pointers to Python-related pages around the web."
msgstr "" msgstr ""
"https://www.python.org : le site principal pour Python. Il contient du code, "
"de la documentation, des liens vers d'autres sites traitant de Python "
"partout sur Internet."
#: tutorial/whatnow.rst:36 #: tutorial/whatnow.rst:36
msgid "https://docs.python.org: Fast access to Python's documentation." msgid "https://docs.python.org: Fast access to Python's documentation."

View File

@ -16,47 +16,57 @@ msgstr ""
#: using/configure.rst:3 #: using/configure.rst:3
msgid "Configure Python" msgid "Configure Python"
msgstr "" msgstr "Configurer Python"
#: using/configure.rst:8 #: using/configure.rst:8
msgid "Configure Options" msgid "Configure Options"
msgstr "" msgstr "Options de configuration"
#: using/configure.rst:10 #: using/configure.rst:10
msgid "List all ``./configure`` script options using::" msgid "List all ``./configure`` script options using::"
msgstr "" msgstr ""
"Il est possible d'obtenir toutes les options de ``./configure`` avec ::"
#: using/configure.rst:14 #: using/configure.rst:14
msgid "" msgid ""
"See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "See also the :file:`Misc/SpecialBuilds.txt` in the Python source "
"distribution." "distribution."
msgstr "" msgstr ""
"Voir aussi le fichier :file:`Misc/SpecialBuilds.txt` dans la distribution "
"des sources Python."
#: using/configure.rst:17 #: using/configure.rst:17
msgid "General Options" msgid "General Options"
msgstr "" msgstr "Options générales"
#: using/configure.rst:21 #: using/configure.rst:21
msgid "" msgid ""
"Support loadable extensions in the :mod:`_sqlite` extension module (default " "Support loadable extensions in the :mod:`_sqlite` extension module (default "
"is no)." "is no)."
msgstr "" msgstr ""
"Active la prise en charge des extensions chargeables dans le module "
"d'extension :mod:`_sqlite` (désactivé par défaut)."
#: using/configure.rst:24 #: using/configure.rst:24
msgid "" msgid ""
"See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" "See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:"
"`sqlite3` module." "`sqlite3` module."
msgstr "" msgstr ""
"Voir la méthode :meth:`sqlite3.Connection.enable_load_extension` du module :"
"mod:`sqlite3`."
#: using/configure.rst:31 #: using/configure.rst:31
msgid "" msgid ""
"Disable IPv6 support (enabled by default if supported), see the :mod:" "Disable IPv6 support (enabled by default if supported), see the :mod:"
"`socket` module." "`socket` module."
msgstr "" msgstr ""
"Désactive la prise en charge d'IPv6 (activé par défaut si géré), voir le "
"module :mod:`socket`."
#: using/configure.rst:36 #: using/configure.rst:36
msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits."
msgstr "" msgstr ""
"Définit la taille en bits des chiffres Python :class:`int` : 15 ou 30 bits."
#: using/configure.rst:38 #: using/configure.rst:38
msgid "" msgid ""
@ -66,21 +76,24 @@ msgstr ""
#: using/configure.rst:41 #: using/configure.rst:41
msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``."
msgstr "" msgstr "Définit ``PYLONG_BITS_IN_DIGIT`` à ``15`` ou ``30``."
#: using/configure.rst:43 #: using/configure.rst:43
msgid "See :data:`sys.int_info.bits_per_digit <sys.int_info>`." msgid "See :data:`sys.int_info.bits_per_digit <sys.int_info>`."
msgstr "" msgstr "Voir :data:`sys.int_info.bits_per_digit <sys.int_info>`."
#: using/configure.rst:48 #: using/configure.rst:48
msgid "" msgid ""
"Compile the Python ``main()`` function and link Python executable with C++ " "Compile the Python ``main()`` function and link Python executable with C++ "
"compiler: ``$CXX``, or *COMPILER* if specified." "compiler: ``$CXX``, or *COMPILER* if specified."
msgstr "" msgstr ""
"Utilise le compilateur C++ (``$CXX``, ou *COMPILER* si spécifié) pour "
"compiler la fonction Python ``main()`` et l'édition des liens de "
"l'exécutable Python."
#: using/configure.rst:53 #: using/configure.rst:53
msgid "Set the Python executable suffix to *SUFFIX*." msgid "Set the Python executable suffix to *SUFFIX*."
msgstr "" msgstr "Définit à *SUFFIX* le suffixe de l'exécutable Python."
#: using/configure.rst:55 #: using/configure.rst:55
msgid "" msgid ""
@ -94,77 +107,93 @@ msgid ""
"the :ref:`Compile-time configuration <zoneinfo_data_compile_time_config>` of " "the :ref:`Compile-time configuration <zoneinfo_data_compile_time_config>` of "
"the :mod:`zoneinfo` module." "the :mod:`zoneinfo` module."
msgstr "" msgstr ""
"Définit le chemin par défaut de recherche des fuseaux horaires pour :data:"
"`zoneinfo.TZPATH`. Voir la :ref:`Configuration à la compilation "
"<zoneinfo_data_compile_time_config>` du module :mod:`zoneinfo`."
#: using/configure.rst:64 #: using/configure.rst:64
msgid "" msgid ""
"Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" "Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/"
"etc/zoneinfo``." "etc/zoneinfo``."
msgstr "" msgstr ""
"Par défaut : ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/"
"zoneinfo:/etc/zoneinfo``."
#: using/configure.rst:66 #: using/configure.rst:66
msgid "See :data:`os.pathsep` path separator." msgid "See :data:`os.pathsep` path separator."
msgstr "" msgstr "Voir le séparateur de chemins :data:`os.pathsep`."
#: using/configure.rst:72 #: using/configure.rst:72
msgid "" msgid ""
"Build the ``_decimal`` extension module using a thread-local context rather " "Build the ``_decimal`` extension module using a thread-local context rather "
"than a coroutine-local context (default), see the :mod:`decimal` module." "than a coroutine-local context (default), see the :mod:`decimal` module."
msgstr "" msgstr ""
"Compile le module d'extension ``_decimal`` en utilisant un contexte local au "
"fil d'exécution plutôt qu'un contexte local de coroutine (défaut). Voir le "
"module :mod:`decimal`."
#: using/configure.rst:75 #: using/configure.rst:75
msgid "See :data:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgid "See :data:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module."
msgstr "" msgstr "Voir :data:`decimal.HAVE_CONTEXTVAR` et le module :mod:`contextvars`."
#: using/configure.rst:81 #: using/configure.rst:81
msgid "Override order to check db backends for the :mod:`dbm` module" msgid "Override order to check db backends for the :mod:`dbm` module"
msgstr "" msgstr ""
"Change l'ordre de détection des implémentations de base de données pour le "
"module :mod:`dbm`."
#: using/configure.rst:83 #: using/configure.rst:83
msgid "" msgid ""
"A valid value is a colon (``:``) separated string with the backend names:" "A valid value is a colon (``:``) separated string with the backend names:"
msgstr "" msgstr ""
"Une valeur valide est une chaîne de noms d'implémentations séparés par des "
"deux-points (``:``)."
#: using/configure.rst:85 #: using/configure.rst:85
msgid "``ndbm``;" msgid "``ndbm``;"
msgstr "" msgstr "``ndbm`` ;"
#: using/configure.rst:86 #: using/configure.rst:86
msgid "``gdbm``;" msgid "``gdbm``;"
msgstr "" msgstr "``gdbm`` ;"
#: using/configure.rst:87 #: using/configure.rst:87
msgid "``bdb``." msgid "``bdb``."
msgstr "" msgstr "``bdb``."
#: using/configure.rst:91 #: using/configure.rst:91
msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)."
msgstr "" msgstr ""
"Désactive le forçage des paramètres régionaux C pour un paramètre régional "
"basé sur UTF-8 (activé par défaut)."
#: using/configure.rst:93 #: using/configure.rst:93
msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro."
msgstr "" msgstr "Ne pas définir la macro ``PY_COERCE_C_LOCALE``."
#: using/configure.rst:95 #: using/configure.rst:95
msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`."
msgstr "" msgstr "Voir :envvar:`PYTHONCOERCECLOCALE` et la :pep:`538`."
#: using/configure.rst:99 #: using/configure.rst:99
msgid "Python library directory name (default is ``lib``)." msgid "Python library directory name (default is ``lib``)."
msgstr "" msgstr "Nom du dossier de bibliothèques Python (par défaut : ``lib``)."
#: using/configure.rst:101 #: using/configure.rst:101
msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms."
msgstr "" msgstr "Fedora et SuSE utilisent ``lib64`` sur les systèmes 64-bit."
#: using/configure.rst:103 #: using/configure.rst:103
msgid "See :data:`sys.platlibdir`." msgid "See :data:`sys.platlibdir`."
msgstr "" msgstr "Voir :data:`sys.platlibdir`."
#: using/configure.rst:109 #: using/configure.rst:109
msgid "" msgid ""
"Directory of wheel packages used by the :mod:`ensurepip` module (none by " "Directory of wheel packages used by the :mod:`ensurepip` module (none by "
"default)." "default)."
msgstr "" msgstr ""
"Dossier de paquets *wheel* utilisé par le module :mod:`ensurepip` (par "
"défaut : aucun)."
#: using/configure.rst:112 #: using/configure.rst:112
msgid "" msgid ""
@ -173,56 +202,75 @@ msgid ""
"share/python-wheels/`` directory and don't install the :mod:`ensurepip." "share/python-wheels/`` directory and don't install the :mod:`ensurepip."
"_bundled` package." "_bundled` package."
msgstr "" msgstr ""
"La politique de paquets de certaines distributions Linux déconseille "
"l'inclusion des dépendances. Par exemple, Fedora installe les paquets "
"*wheel* dans le répertoire ``/usr/share/python-wheels/`` et n'installe pas "
"le paquet :mod:`ensurepip._bundled`."
#: using/configure.rst:121 #: using/configure.rst:121
msgid "Install Options" msgid "Install Options"
msgstr "" msgstr "Options d'installation"
#: using/configure.rst:125 #: using/configure.rst:125
msgid "" msgid ""
"Don't build nor install test modules, like the :mod:`test` package or the :" "Don't build nor install test modules, like the :mod:`test` package or the :"
"mod:`_testcapi` extension module (built and installed by default)." "mod:`_testcapi` extension module (built and installed by default)."
msgstr "" msgstr ""
"Désactive la compilation et l'installation des modules de test, comme le "
"paquet :mod:`test` et le module d'extension :mod:`_testcapi` (compilés et "
"installés par défaut)."
#: using/configure.rst:132 #: using/configure.rst:132
msgid "Select the :mod:`ensurepip` command run on Python installation:" msgid "Select the :mod:`ensurepip` command run on Python installation:"
msgstr "" msgstr ""
"Sélectionne la commande :mod:`ensurepip` exécutée à l'installation de "
"Python :"
#: using/configure.rst:134 #: using/configure.rst:134
msgid "" msgid ""
"``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` "
"command." "command."
msgstr "" msgstr ""
"``upgrade`` (défaut) : exécute la commande ``python -m ensurepip --"
"altinstall --upgrade`` ;"
#: using/configure.rst:136 #: using/configure.rst:136
msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgid "``install``: run ``python -m ensurepip --altinstall`` command;"
msgstr "" msgstr ""
"``install`` : exécute la commande ``python -m ensurepip --altinstall`` ;"
#: using/configure.rst:137 #: using/configure.rst:137
msgid "``no``: don't run ensurepip;" msgid "``no``: don't run ensurepip;"
msgstr "" msgstr "``no`` : n'exécute pas *ensurepip*."
#: using/configure.rst:143 #: using/configure.rst:143
msgid "Performance options" msgid "Performance options"
msgstr "" msgstr "Options de performance"
#: using/configure.rst:145 #: using/configure.rst:145
msgid "" msgid ""
"Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) " "Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) "
"is recommended for best performance." "is recommended for best performance."
msgstr "" msgstr ""
"Pour de meilleures performances, il est recommandé de configurer Python avec "
"``--enable-optimizations --with-lto`` (*PGO* + *LTO*)."
#: using/configure.rst:150 #: using/configure.rst:150
msgid "" msgid ""
"Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` "
"(disabled by default)." "(disabled by default)."
msgstr "" msgstr ""
"Active l'optimisation guidée par profilage (*Profile Guided Optimization*, "
"PGO) en utilisant :envvar:`PROFILE_TASK` (désactivé par défaut)."
#: using/configure.rst:153 #: using/configure.rst:153
msgid "" msgid ""
"The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, " "The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, "
"GCC also requires it: GCC is just an alias to Clang on macOS." "GCC also requires it: GCC is just an alias to Clang on macOS."
msgstr "" msgstr ""
"L'utilisation de PGO avec le compilateur C Clang nécessite ``llvm-"
"profdata``. Sur macOS, GCC est juste un alias vers Clang et partage donc "
"cette contrainte."
#: using/configure.rst:156 #: using/configure.rst:156
msgid "" msgid ""
@ -230,100 +278,120 @@ msgid ""
"GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker " "GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker "
"flags." "flags."
msgstr "" msgstr ""
"Désactive également l'interposition sémantique dans *libpython* si GCC est "
"utilisé avec ``--enable-shared`` : ajoute l'option ``-fno-semantic-"
"interposition`` à la compilation et à l'édition des liens."
#: using/configure.rst:162 #: using/configure.rst:162
msgid "Use ``-fno-semantic-interposition`` on GCC." msgid "Use ``-fno-semantic-interposition`` on GCC."
msgstr "" msgstr "Utilisation de ``-fno-semantic-interposition`` avec GCC."
#: using/configure.rst:167 #: using/configure.rst:167
msgid "" msgid ""
"Environment variable used in the Makefile: Python command line arguments for " "Environment variable used in the Makefile: Python command line arguments for "
"the PGO generation task." "the PGO generation task."
msgstr "" msgstr ""
"Variable d'environnement utilisée dans le ``Makefile`` : arguments Python "
"utilisés pour la tâche de préparation de la PGO."
#: using/configure.rst:170 #: using/configure.rst:170
msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``."
msgstr "" msgstr "Par défaut : ``-m test --pgo --timeout=$(TESTTIMEOUT)``."
#: using/configure.rst:176 #: using/configure.rst:176
msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)."
msgstr "" msgstr ""
"Active l'optimisation à l'édition des liens (*Link Time Optimization*, LTO) "
"à la compilation (désactivé par défaut)."
#: using/configure.rst:178 #: using/configure.rst:178
msgid "" msgid ""
"The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well " "The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well "
"as an LTO-aware linker (``ld.gold`` or ``lld``)." "as an LTO-aware linker (``ld.gold`` or ``lld``)."
msgstr "" msgstr ""
"Le compilateur C Clang nécessite ``llvm-ar`` pour la LTO (``ar`` sur macOS), "
"ainsi qu'un éditeur de liens implémentant la LTO (``ld.gold`` ou ``lld``)."
#: using/configure.rst:185 #: using/configure.rst:185
msgid "" msgid ""
"Enable computed gotos in evaluation loop (enabled by default on supported " "Enable computed gotos in evaluation loop (enabled by default on supported "
"compilers)." "compilers)."
msgstr "" msgstr ""
"Autorise les *gotos* calculés dans les boucles (activé par défaut pour les "
"compilateurs qui le gèrent)."
#: using/configure.rst:190 #: using/configure.rst:190
msgid "" msgid ""
"Disable the specialized Python memory allocator :ref:`pymalloc <pymalloc>` " "Disable the specialized Python memory allocator :ref:`pymalloc <pymalloc>` "
"(enabled by default)." "(enabled by default)."
msgstr "" msgstr ""
"Désactive l'allocateur spécialisé de mémoire de Python :ref:`pymalloc "
"<pymalloc>` (activé par défaut)."
#: using/configure.rst:193 #: using/configure.rst:193
msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgid "See also :envvar:`PYTHONMALLOC` environment variable."
msgstr "" msgstr "Voir aussi la variable d'environnement :envvar:`PYTHONMALLOC`."
#: using/configure.rst:197 #: using/configure.rst:197
msgid "" msgid ""
"Disable static documentation strings to reduce the memory footprint (enabled " "Disable static documentation strings to reduce the memory footprint (enabled "
"by default). Documentation strings defined in Python are not affected." "by default). Documentation strings defined in Python are not affected."
msgstr "" msgstr ""
"Désactive les chaînes de documentation statiques pour réduire l'empreinte "
"mémoire (activé par défaut). Les chaînes définies dans Python ne sont pas "
"affectées."
#: using/configure.rst:200 #: using/configure.rst:200
msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgid "Don't define the ``WITH_DOC_STRINGS`` macro."
msgstr "" msgstr "Ne définit pas la macro ``WITH_DOC_STRINGS``."
#: using/configure.rst:202 #: using/configure.rst:202
msgid "See the ``PyDoc_STRVAR()`` macro." msgid "See the ``PyDoc_STRVAR()`` macro."
msgstr "" msgstr "Voir la macro ``PyDoc_STRVAR()``."
#: using/configure.rst:206 #: using/configure.rst:206
msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgid "Enable C-level code profiling with ``gprof`` (disabled by default)."
msgstr "" msgstr "Active le profilage du code C avec ``gprof`` (désactivé par défaut)."
#: using/configure.rst:212 #: using/configure.rst:212
msgid "Python Debug Build" msgid "Python Debug Build"
msgstr "" msgstr "Compilation de Python en mode débogage"
#: using/configure.rst:214 #: using/configure.rst:214
msgid "" msgid ""
"A debug build is Python built with the :option:`--with-pydebug` configure " "A debug build is Python built with the :option:`--with-pydebug` configure "
"option." "option."
msgstr "" msgstr ""
"Une compilation de Python en mode débogage se fait avec l'option de "
"configuration :option:`--with-pydebug`."
#: using/configure.rst:217 #: using/configure.rst:217
msgid "Effects of a debug build:" msgid "Effects of a debug build:"
msgstr "" msgstr "Effets du mode débogage :"
#: using/configure.rst:219 #: using/configure.rst:219
msgid "" msgid ""
"Display all warnings by default: the list of default warning filters is " "Display all warnings by default: the list of default warning filters is "
"empty in the :mod:`warnings` module." "empty in the :mod:`warnings` module."
msgstr "" msgstr ""
"Affichage de tous les avertissements par défaut : le filtre par défaut des "
"avertissements est vide dans le module :mod:`warnings`."
#: using/configure.rst:221 #: using/configure.rst:221
msgid "Add ``d`` to :data:`sys.abiflags`." msgid "Add ``d`` to :data:`sys.abiflags`."
msgstr "" msgstr "Ajout de ``d`` à :data:`sys.abiflags`."
#: using/configure.rst:222 #: using/configure.rst:222
msgid "Add :func:`sys.gettotalrefcount` function." msgid "Add :func:`sys.gettotalrefcount` function."
msgstr "" msgstr "Ajout de la fonction :func:`sys.gettotalrefcount`."
#: using/configure.rst:223 #: using/configure.rst:223
msgid "Add :option:`-X showrefcount <-X>` command line option." msgid "Add :option:`-X showrefcount <-X>` command line option."
msgstr "" msgstr "Ajout de l'option de ligne de commande :option:`-X showrefcount <-X>`."
#: using/configure.rst:224 #: using/configure.rst:224
msgid "Add :envvar:`PYTHONTHREADDEBUG` environment variable." msgid "Add :envvar:`PYTHONTHREADDEBUG` environment variable."
msgstr "" msgstr "Ajout de la variable d'environnement :envvar:`PYTHONTHREADDEBUG`."
#: using/configure.rst:225 #: using/configure.rst:225
msgid "" msgid ""
@ -336,10 +404,13 @@ msgid ""
"Install :ref:`debug hooks on memory allocators <default-memory-allocators>` " "Install :ref:`debug hooks on memory allocators <default-memory-allocators>` "
"to detect buffer overflow and other memory errors." "to detect buffer overflow and other memory errors."
msgstr "" msgstr ""
"Installation des :ref:`debug hooks on memory allocators <default-memory-"
"allocators>` pour détecter les débordements de mémoire tampon et autres "
"erreurs de mémoire."
#: using/configure.rst:229 #: using/configure.rst:229
msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros."
msgstr "" msgstr "Définition des macros ``Py_DEBUG`` et ``Py_REF_DEBUG``."
#: using/configure.rst:230 #: using/configure.rst:230
msgid "" msgid ""
@ -351,37 +422,48 @@ msgstr ""
#: using/configure.rst:235 #: using/configure.rst:235
msgid "Add sanity checks on the function arguments." msgid "Add sanity checks on the function arguments."
msgstr "" msgstr "Ajout des contrôles d'intégrité sur les arguments de fonction."
#: using/configure.rst:236 #: using/configure.rst:236
msgid "" msgid ""
"Unicode and int objects are created with their memory filled with a pattern " "Unicode and int objects are created with their memory filled with a pattern "
"to detect usage of uninitialized objects." "to detect usage of uninitialized objects."
msgstr "" msgstr ""
"Les objets ``unicode`` et ``int`` sont créés avec un motif particulier à "
"l'initialisation de leur mémoire afin de détecter l'usage d'objets non "
"initialisés."
#: using/configure.rst:238 #: using/configure.rst:238
msgid "" msgid ""
"Ensure that functions which can clear or replace the current exception are " "Ensure that functions which can clear or replace the current exception are "
"not called with an exception raised." "not called with an exception raised."
msgstr "" msgstr ""
"S'assurer que les fonctions qui peuvent effacer ou remplacer l'exception "
"courante ne sont pas appelées avec une exception levée."
#: using/configure.rst:240 #: using/configure.rst:240
msgid "" msgid ""
"The garbage collector (:func:`gc.collect` function) runs some basic checks " "The garbage collector (:func:`gc.collect` function) runs some basic checks "
"on objects consistency." "on objects consistency."
msgstr "" msgstr ""
"Le ramasse-miettes (la fonction :func:`gc.collect`) effectue quelques tests "
"basiques relatifs à la cohérence des objets."
#: using/configure.rst:242 #: using/configure.rst:242
msgid "" msgid ""
"The :c:macro:`Py_SAFE_DOWNCAST()` macro checks for integer underflow and " "The :c:macro:`Py_SAFE_DOWNCAST()` macro checks for integer underflow and "
"overflow when downcasting from wide types to narrow types." "overflow when downcasting from wide types to narrow types."
msgstr "" msgstr ""
"La macro :c:macro:`Py_SAFE_DOWNCAST()` vérifie s'il y a des débordements "
"d'entier lors du passage de types grands vers des types plus petits."
#: using/configure.rst:245 #: using/configure.rst:245
msgid "" msgid ""
"See also the :ref:`Python Development Mode <devmode>` and the :option:`--" "See also the :ref:`Python Development Mode <devmode>` and the :option:`--"
"with-trace-refs` configure option." "with-trace-refs` configure option."
msgstr "" msgstr ""
"Voir aussi le :ref:`mode de développement Python <devmode>` et l'option de "
"configuration :option:`--with-trace-refs`."
#: using/configure.rst:248 #: using/configure.rst:248
msgid "" msgid ""

View File

@ -485,7 +485,8 @@ msgstr "La syntaxe générique du filtrage par motifs est ::"
# Lexique pour cette section: # Lexique pour cette section:
# "pattern": "motif du filtre" # "pattern": "motif du filtre"
# "match": "comparaison" action de tester si il y a un match # "match": "comparaison" action de tester si il y a un match
# "match": "bloc ``match``" ou "instruction ``match`` pour l'élément syntaxique # "match": "bloc ``match``" ou "instruction ``match`` pour l'élément
# syntaxique
# "match": "appariement" comparaison réussie # "match": "appariement" comparaison réussie
# "wildcard": "attrape-tout" # "wildcard": "attrape-tout"
# "guard": "garde" # "guard": "garde"
@ -1837,6 +1838,8 @@ msgid ""
"Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood "
"and Terry Jan Reedy in :issue:`45447`.)" "and Terry Jan Reedy in :issue:`45447`.)"
msgstr "" msgstr ""
"Applique la coloration syntaxique aux fichiers ``.pyi`` (contribution "
"d'*Alex Waygood* et de *Terry Jan Reedy* dans :issue:`45447`)."
#: whatsnew/3.10.rst:1178 #: whatsnew/3.10.rst:1178
msgid "" msgid ""

View File

@ -1632,7 +1632,7 @@ msgstr "(Contribution par Victor Stinner)"
#: whatsnew/3.2.rst:1539 #: whatsnew/3.2.rst:1539
msgid "shutil" msgid "shutil"
msgstr "" msgstr "``shutils``"
#: whatsnew/3.2.rst:1541 #: whatsnew/3.2.rst:1541
msgid "The :func:`shutil.copytree` function has two new options:" msgid "The :func:`shutil.copytree` function has two new options:"
@ -2267,7 +2267,7 @@ msgstr "(Contribution par Tarek Ziadé; :issue:`6693`.)"
#: whatsnew/3.2.rst:2044 #: whatsnew/3.2.rst:2044
msgid "sysconfig" msgid "sysconfig"
msgstr "" msgstr "``sysconfig``"
#: whatsnew/3.2.rst:2046 #: whatsnew/3.2.rst:2046
msgid "" msgid ""

View File

@ -2472,7 +2472,7 @@ msgstr ""
#: whatsnew/3.3.rst:1734 #: whatsnew/3.3.rst:1734
msgid "re" msgid "re"
msgstr "" msgstr "``re``"
#: whatsnew/3.3.rst:1736 #: whatsnew/3.3.rst:1736
msgid "" msgid ""
@ -2548,7 +2548,7 @@ msgstr ""
#: whatsnew/3.3.rst:1786 #: whatsnew/3.3.rst:1786
msgid "shutil" msgid "shutil"
msgstr "" msgstr "``shutils``"
#: whatsnew/3.3.rst:1788 #: whatsnew/3.3.rst:1788
msgid "New functions:" msgid "New functions:"

View File

@ -1553,7 +1553,7 @@ msgstr ""
#: whatsnew/3.4.rst:1158 #: whatsnew/3.4.rst:1158
msgid "operator" msgid "operator"
msgstr "" msgstr "``operator``"
#: whatsnew/3.4.rst:1160 #: whatsnew/3.4.rst:1160
msgid "" msgid ""
@ -1756,7 +1756,7 @@ msgstr ""
#: whatsnew/3.4.rst:1301 #: whatsnew/3.4.rst:1301
msgid "re" msgid "re"
msgstr "" msgstr "``re``"
#: whatsnew/3.4.rst:1303 #: whatsnew/3.4.rst:1303
msgid "" msgid ""
@ -1836,7 +1836,7 @@ msgstr ""
#: whatsnew/3.4.rst:1360 #: whatsnew/3.4.rst:1360
msgid "shutil" msgid "shutil"
msgstr "" msgstr "``shutils``"
#: whatsnew/3.4.rst:1362 #: whatsnew/3.4.rst:1362
msgid "" msgid ""

View File

@ -1070,7 +1070,7 @@ msgstr ""
#: whatsnew/3.5.rst:893 #: whatsnew/3.5.rst:893
msgid "code" msgid "code"
msgstr "" msgstr "code"
#: whatsnew/3.5.rst:895 #: whatsnew/3.5.rst:895
msgid "" msgid ""
@ -1770,7 +1770,7 @@ msgstr ""
#: whatsnew/3.5.rst:1468 #: whatsnew/3.5.rst:1468
msgid "operator" msgid "operator"
msgstr "" msgstr "``operator``"
#: whatsnew/3.5.rst:1470 #: whatsnew/3.5.rst:1470
msgid "" msgid ""
@ -1921,7 +1921,7 @@ msgstr ""
#: whatsnew/3.5.rst:1584 #: whatsnew/3.5.rst:1584
msgid "re" msgid "re"
msgstr "" msgstr "``re``"
#: whatsnew/3.5.rst:1586 #: whatsnew/3.5.rst:1586
msgid "" msgid ""
@ -1981,7 +1981,7 @@ msgstr ""
#: whatsnew/3.5.rst:1639 #: whatsnew/3.5.rst:1639
msgid "shutil" msgid "shutil"
msgstr "" msgstr "``shutils``"
#: whatsnew/3.5.rst:1641 #: whatsnew/3.5.rst:1641
msgid "" msgid ""
@ -2305,7 +2305,7 @@ msgstr ""
#: whatsnew/3.5.rst:1880 #: whatsnew/3.5.rst:1880
msgid "sysconfig" msgid "sysconfig"
msgstr "" msgstr "``sysconfig``"
#: whatsnew/3.5.rst:1882 #: whatsnew/3.5.rst:1882
msgid "" msgid ""

View File

@ -1707,7 +1707,7 @@ msgstr ""
#: whatsnew/3.6.rst:2025 #: whatsnew/3.6.rst:2025
msgid "re" msgid "re"
msgstr "" msgstr "``re``"
#: whatsnew/3.6.rst:1347 #: whatsnew/3.6.rst:1347
msgid "" msgid ""

View File

@ -1731,7 +1731,7 @@ msgstr ""
#: whatsnew/3.7.rst:1237 #: whatsnew/3.7.rst:1237
msgid "re" msgid "re"
msgstr "" msgstr "``re``"
#: whatsnew/3.7.rst:1239 #: whatsnew/3.7.rst:1239
msgid "" msgid ""
@ -2702,7 +2702,7 @@ msgstr ""
#: whatsnew/3.7.rst:1890 #: whatsnew/3.7.rst:1890
msgid "Other CPython Implementation Changes" msgid "Other CPython Implementation Changes"
msgstr "" msgstr "Autres changements à l'implémentation de CPython"
#: whatsnew/3.7.rst:1892 #: whatsnew/3.7.rst:1892
msgid "" msgid ""

View File

@ -1448,7 +1448,7 @@ msgstr ""
#: whatsnew/3.8.rst:1152 #: whatsnew/3.8.rst:1152
msgid "shutil" msgid "shutil"
msgstr "" msgstr "``shutils``"
#: whatsnew/3.8.rst:1154 #: whatsnew/3.8.rst:1154
msgid "" msgid ""

View File

@ -977,6 +977,8 @@ msgid ""
"Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood "
"and Terry Jan Reedy in :issue:`45447`.)" "and Terry Jan Reedy in :issue:`45447`.)"
msgstr "" msgstr ""
"Applique la coloration syntaxique aux fichiers ``.pyi`` (contribution "
"d'*Alex Waygood* et de *Terry Jan Reedy* dans :issue:`45447`)."
#: whatsnew/3.9.rst:507 #: whatsnew/3.9.rst:507
msgid "imaplib" msgid "imaplib"
@ -998,7 +1000,8 @@ msgstr ""
"et :class:`~imaplib.IMAP4_stream` appliquent ce changement (contribution de " "et :class:`~imaplib.IMAP4_stream` appliquent ce changement (contribution de "
"*Dong-hee Na* dans :issue:`38615`)." "*Dong-hee Na* dans :issue:`38615`)."
# "Return" n'est pas un renvoi de fonction, c'est un retour à un état précédent. # "Return" n'est pas un renvoi de fonction, c'est un retour à un état
# précédent.
#: whatsnew/3.9.rst:516 #: whatsnew/3.9.rst:516
msgid "" msgid ""
":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` "