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
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
msgid ""
"For the \"Title\" field, enter a *very* short description of the problem; "
"less than ten words is good."
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
msgid ""

View File

@ -24,11 +24,16 @@ msgid ""
"correspond to the version code is **built** with, not necessarily the "
"version used at **run time**."
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
msgid ""
"See :ref:`stable` for a discussion of API and ABI stability across versions."
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
#, fuzzy
@ -92,7 +97,7 @@ msgstr "Signification"
#: c-api/apiabiversion.rst:45
msgid "Value for ``3.4.1a2``"
msgstr ""
msgstr "Valeur pour ``3.4.1a2``"
#: c-api/apiabiversion.rst:47
msgid "1"
@ -105,11 +110,11 @@ msgstr "``1-8``"
#: c-api/apiabiversion.rst:47
msgid "``PY_MAJOR_VERSION``"
msgstr ""
msgstr "``PY_MAJOR_VERSION``"
#: c-api/apiabiversion.rst:47
msgid "``0x03``"
msgstr ""
msgstr "``0x03``"
#: c-api/apiabiversion.rst:49
msgid "2"
@ -122,11 +127,11 @@ msgstr "``9-16``"
#: c-api/apiabiversion.rst:49
msgid "``PY_MINOR_VERSION``"
msgstr ""
msgstr "``PY_MINOR_VERSION``"
#: c-api/apiabiversion.rst:49
msgid "``0x04``"
msgstr ""
msgstr "``0x04``"
#: c-api/apiabiversion.rst:51
msgid "3"
@ -139,11 +144,11 @@ msgstr "``17-24``"
#: c-api/apiabiversion.rst:51
msgid "``PY_MICRO_VERSION``"
msgstr ""
msgstr "``PY_MICRO_VERSION``"
#: c-api/apiabiversion.rst:51
msgid "``0x01``"
msgstr ""
msgstr "``0x01``"
#: c-api/apiabiversion.rst:53
msgid "4"
@ -156,11 +161,11 @@ msgstr "``25-28``"
#: c-api/apiabiversion.rst:53
msgid "``PY_RELEASE_LEVEL``"
msgstr ""
msgstr "``PY_RELEASE_LEVEL``"
#: c-api/apiabiversion.rst:53
msgid "``0xA``"
msgstr ""
msgstr "``0xA``"
#: c-api/apiabiversion.rst:55
#, fuzzy
@ -169,11 +174,11 @@ msgstr "``29-32``"
#: c-api/apiabiversion.rst:55
msgid "``PY_RELEASE_SERIAL``"
msgstr ""
msgstr "``PY_RELEASE_SERIAL``"
#: c-api/apiabiversion.rst:55
msgid "``0x2``"
msgstr ""
msgstr "``0x2``"
#: c-api/apiabiversion.rst:58
#, fuzzy

View File

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

View File

@ -20,11 +20,11 @@ msgstr "Objets fonctions"
#: c-api/function.rst:10
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
msgid "The C structure used for functions."
msgstr ""
msgstr "La structure C utilisée pour les fonctions."
#: c-api/function.rst:22
msgid ""
@ -32,6 +32,8 @@ msgid ""
"function type. It is exposed to Python programmers as ``types."
"FunctionType``."
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
msgid ""
@ -39,6 +41,9 @@ msgid ""
"`PyFunction_Type`). The parameter must not be ``NULL``. This function "
"always succeeds."
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
msgid ""
@ -46,6 +51,8 @@ msgid ""
"*globals* must be a dictionary with the global variables accessible to the "
"function."
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
msgid ""
@ -65,60 +72,77 @@ msgstr ""
#: c-api/function.rst:54
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
msgid "Return the globals dictionary associated with the function object *op*."
msgstr ""
"Renvoie le dictionnaire global associé avec l'objet de la fonction *op*."
#: c-api/function.rst:64
msgid ""
"Return a :term:`borrowed reference` to the *__module__* attribute of the "
"function object *op*. It can be *NULL*."
msgstr ""
"Renvoie un :term:`borrowed reference` à l'attribut ``__module__`` de l'objet "
"fonction *op*. Il peut être *NULL*."
#: c-api/function.rst:67
msgid ""
"This is normally a string containing the module name, but can be set to any "
"other object by Python code."
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
msgid ""
"Return the argument default values of the function object *op*. This can be "
"a tuple of arguments or ``NULL``."
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
msgid ""
"Set the argument default values for the function object *op*. *defaults* "
"must be ``Py_None`` or a tuple."
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
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
msgid ""
"Return the closure associated with the function object *op*. This can be "
"``NULL`` or a tuple of cell objects."
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
msgid ""
"Set the closure associated with the function object *op*. *closure* must be "
"``Py_None`` or a tuple of cell objects."
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
msgid ""
"Return the annotations of the function object *op*. This can be a mutable "
"dictionary or ``NULL``."
msgstr ""
"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un "
"dictionnaire mutable ou ``NULL``."
#: c-api/function.rst:107
msgid ""
"Set the annotations for the function object *op*. *annotations* must be a "
"dictionary or ``Py_None``."
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 "
"objects."
msgstr ""
"Les macros dans cette section permettent de gérer le compteur de références "
"des objets Python."
#: c-api/refcounting.rst:16
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
msgid ""
@ -34,40 +36,54 @@ msgid ""
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
"used to create a new :term:`strong reference`."
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
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`."
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
msgid ""
"Increment the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect."
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
msgid "See also :c:func:`Py_XNewRef`."
msgstr ""
msgstr "Voir aussi :c:func:`Py_XNewRef`."
#: c-api/refcounting.rst:36
msgid ""
"Create a new :term:`strong reference` to an object: increment the reference "
"count of the object *o* and return the object *o*."
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
msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to decrement the object reference count."
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
msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``."
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
msgid "For example::"
@ -75,41 +91,47 @@ msgstr "Par exemple ::"
#: c-api/refcounting.rst:50
msgid "can be written as::"
msgstr ""
msgstr "peut s'écrire ::"
#: c-api/refcounting.rst:54
msgid "See also :c:func:`Py_INCREF`."
msgstr ""
msgstr "Voir aussi :c:func:`Py_INCREF`."
#: c-api/refcounting.rst:61
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
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
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
msgid ""
"If the reference count reaches zero, the object's type's deallocation "
"function (which must not be ``NULL``) is invoked."
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
msgid ""
"This function is usually used to delete a :term:`strong reference` before "
"exiting its scope."
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
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`."
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
msgid ""
@ -123,6 +145,15 @@ msgid ""
"update the list data structure, and then call :c:func:`Py_DECREF` for the "
"temporary variable."
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
msgid ""
@ -130,6 +161,10 @@ msgid ""
"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."
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
msgid ""
@ -140,24 +175,38 @@ msgid ""
"object passed because the macro carefully uses a temporary variable and sets "
"the argument to ``NULL`` before decrementing its reference count."
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
msgid ""
"It is a good idea to use this macro whenever decrementing the reference "
"count of an object that might be traversed during garbage collection."
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
msgid ""
"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."
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
msgid ""
"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."
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
msgid ""
@ -165,3 +214,7 @@ msgid ""
"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"
"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`."
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
msgid "Get the *frame* next outer frame."
msgstr ""
msgstr "Renvoie la *frame* encadrant immédiatement à *frame*."
#: c-api/reflection.rst:38
msgid ""
"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame."
msgstr ""
"Renvoie un :term:`strong reference`, ou ``NULL`` si *frame* n'a pas de "
"*frame* encadrante."
#: c-api/reflection.rst:60
msgid "*frame* must not be ``NULL``."
@ -73,11 +75,11 @@ msgstr ""
#: c-api/reflection.rst:47
msgid "Get the *frame* code."
msgstr ""
msgstr "Obtenir le code *frame*."
#: c-api/reflection.rst:49
msgid "Return a :term:`strong reference`."
msgstr ""
msgstr "Renvoie un :term:`strong reference`."
#: c-api/reflection.rst:51
msgid ""

View File

@ -16,7 +16,7 @@ msgstr ""
#: c-api/stable.rst:7
msgid "C API Stability"
msgstr ""
msgstr "Stabilité de lAPI C"
#: c-api/stable.rst:9
#, fuzzy
@ -40,12 +40,20 @@ msgid ""
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.10.x."
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
msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases."
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
msgid "Stable Application Binary Interface"
@ -58,6 +66,11 @@ msgid ""
"multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below <stable-abi-list>`."
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
msgid ""
@ -66,6 +79,11 @@ msgid ""
"symbols exposed in the Limited API, but also other ones for example, "
"functions necessary to support older versions of the Limited API."
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
msgid ""
@ -73,12 +91,17 @@ msgid ""
"and Stable ABI work the same way for all uses of the API for example, "
"embedding Python.)"
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
msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version."
msgstr ""
"Définissez cette macro avant dinclure ``Python.h`` pour ninclure que lAPI "
"restreinte et indiquer sa version."
#: c-api/stable.rst:47
msgid ""
@ -88,6 +111,11 @@ msgid ""
"the specified one onward, and can use Limited API introduced up to that "
"version."
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
msgid ""
@ -95,12 +123,19 @@ msgid ""
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions."
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
msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
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
msgid ""
@ -108,6 +143,9 @@ msgid ""
"``python3.dll`` rather than a version-specific library such as ``python39."
"dll``."
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
msgid ""
@ -117,6 +155,12 @@ msgid ""
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python."
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
msgid ""
@ -124,16 +168,23 @@ msgid ""
"library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor."
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
msgid "Limited API Scope and Performance"
msgstr ""
msgstr "Porté de lAPI restreinte et performance"
#: c-api/stable.rst:79
msgid ""
"The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty."
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
msgid ""
@ -141,6 +192,10 @@ msgid ""
"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."
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
msgid ""
@ -149,6 +204,11 @@ msgid ""
"allowing stability as Python's data structures are improved, but possibly "
"reducing performance."
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
msgid ""
@ -159,10 +219,17 @@ msgid ""
"where a version-specific one is not available for example, for prereleases "
"of an upcoming Python version."
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
msgid "Limited API Caveats"
msgstr ""
msgstr "Inconvénients de lAPI restreinte"
#: c-api/stable.rst:103
msgid ""
@ -171,6 +238,10 @@ msgid ""
"only covers definitions, but an API also includes other issues, such as "
"expected semantics."
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
msgid ""
@ -181,18 +252,31 @@ msgid ""
"the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs."
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
msgid ""
"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."
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
msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version."
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
msgid ""
@ -201,6 +285,11 @@ msgid ""
"few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)."
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
msgid ""
@ -210,10 +299,15 @@ msgid ""
"particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable."
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
msgid "Platform Considerations"
msgstr ""
msgstr "Considérations relatives aux plateformes"
#: c-api/stable.rst:138
msgid ""
@ -222,6 +316,11 @@ msgid ""
"ABI, these details define a “platform”. They usually depend on the OS type "
"and processor architecture"
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
msgid ""
@ -230,14 +329,19 @@ msgid ""
"does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors."
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
msgid "Contents of Limited API"
msgstr ""
msgstr "Contenu de lAPI restreinte"
#: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:"
msgstr ""
msgstr "Pour le moment lAPI restreinte inclut les éléments suivants :"
#~ msgid ""
#~ "Unfortunately, the API compatibility does not extend to binary "

View File

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

View File

@ -16,11 +16,11 @@ msgstr ""
#: c-api/unicode.rst:6
msgid "Unicode Objects and Codecs"
msgstr ""
msgstr "Objets Unicode et Codecs"
#: c-api/unicode.rst:12
msgid "Unicode Objects"
msgstr ""
msgstr "Objets Unicode"
#: c-api/unicode.rst:14
msgid ""
@ -31,6 +31,12 @@ msgid ""
"65536; otherwise, code points must be below 1114112 (which is the full "
"Unicode range)."
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
msgid ""
@ -38,12 +44,18 @@ msgid ""
"cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is "
"deprecated and inefficient."
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
msgid ""
"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:"
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
msgid ""
@ -51,6 +63,9 @@ msgid ""
"Unicode API. They use the most efficient representation allowed by the "
"implementation."
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
msgid ""
@ -59,6 +74,10 @@ msgid ""
"`Py_UNICODE*` representation; you will have to call :c:func:"
"`PyUnicode_READY` on them before calling any other API."
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
msgid ""
@ -66,16 +85,21 @@ msgid ""
"APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` "
"for more information."
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
msgid "Unicode Type"
msgstr ""
msgstr "Type Unicode"
#: c-api/unicode.rst:45
msgid ""
"These are the basic Unicode object types used for the Unicode implementation "
"in Python:"
msgstr ""
"Voici les types d'objets Unicode utilisés pour l'implémentation Unicode en "
"Python :"
#: c-api/unicode.rst:52
msgid ""
@ -83,12 +107,17 @@ msgid ""
"characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with "
"single Unicode characters, use :c:type:`Py_UCS4`."
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
msgid ""
"This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit "
"type depending on the platform."
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
msgid ""
@ -96,6 +125,9 @@ msgid ""
"whether you selected a \"narrow\" or \"wide\" Unicode version of Python at "
"build time."
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
msgid ""

View File

@ -345,6 +345,11 @@ msgid ""
"using a dotted expression, and would instead need to be retrieved with :func:"
"`getattr`."
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
msgid "awaitable"
@ -511,6 +516,8 @@ msgid ""
"A callable is an object that can be called, possibly with a set of arguments "
"(see :term:`argument`), with the following syntax::"
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
msgid ""
@ -518,6 +525,9 @@ msgid ""
"instance of a class that implements the :meth:`~object.__call__` method is "
"also a callable."
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
msgid "callback"
@ -1034,6 +1044,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`."
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
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 "
"serialized as a sequence of bytes."
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
msgid ""
"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\"."
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
msgid ""
"There are a variety of different text serialization :ref:`codecs <standard-"
"encodings>`, which are collectively referred to as \"text encodings\"."
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
msgid "text file"

View File

@ -141,6 +141,9 @@ msgid ""
"ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is "
"available."
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
msgid "The Python curses module"

View File

@ -44,22 +44,29 @@ msgid ""
":term:`Descriptors <descriptor>` let objects customize attribute lookup, "
"storage, and deletion."
msgstr ""
"Les :term:`descripteurs <descriptor>` permettent de personnaliser la "
"recherche, le stockage et la suppression des attributs des objets."
#: howto/descriptor.rst:16
msgid "This guide has four major sections:"
msgstr ""
msgstr "Ce guide comporte quatre parties principales :"
#: howto/descriptor.rst:18
msgid ""
"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."
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
msgid ""
"The second section shows a complete, practical descriptor example. If you "
"already know the basics, start there."
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
msgid ""
@ -67,6 +74,9 @@ msgid ""
"detailed mechanics of how descriptors work. Most people don't need this "
"level of detail."
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
msgid ""
@ -75,38 +85,51 @@ msgid ""
"bound methods or about the implementation of common tools like :func:"
"`classmethod`, :func:`staticmethod`, :func:`property`, and :term:`__slots__`."
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
msgid "Primer"
msgstr ""
msgstr "Introduction"
#: howto/descriptor.rst:38
msgid ""
"In this primer, we start with the most basic possible example and then we'll "
"add new capabilities one by one."
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
msgid "Simple example: A descriptor that returns a constant"
msgstr ""
msgstr "Un exemple simple : un descripteur qui renvoie une constante"
#: howto/descriptor.rst:45
msgid ""
"The :class:`Ten` class is a descriptor whose :meth:`__get__` method always "
"returns the constant ``10``:"
msgstr ""
"La classe :class:`Ten` est un descripteur dont la méthode :meth:`__get__` "
"renvoie toujours la constante ``10`` :"
#: howto/descriptor.rst:54
msgid ""
"To use the descriptor, it must be stored as a class variable in another "
"class:"
msgstr ""
"Pour utiliser le descripteur, il doit être stocké en tant que variable de "
"classe dans une autre classe :"
#: howto/descriptor.rst:62
msgid ""
"An interactive session shows the difference between normal attribute lookup "
"and descriptor lookup:"
msgstr ""
"Une session interactive montre la différence entre la recherche d'attribut "
"normale et la recherche *via* un descripteur :"
#: howto/descriptor.rst:73
msgid ""
@ -115,39 +138,55 @@ msgid ""
"descriptor instance, recognized by its ``__get__`` method. Calling that "
"method returns ``10``."
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
msgid ""
"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."
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
msgid ""
"This example shows how a simple descriptor works, but it isn't very useful. "
"For retrieving constants, normal attribute lookup would be better."
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
msgid ""
"In the next section, we'll create something more useful, a dynamic lookup."
msgstr ""
"Dans la section suivante, nous allons créer quelque chose de plus utile, une "
"recherche dynamique."
#: howto/descriptor.rst:88
msgid "Dynamic lookups"
msgstr ""
msgstr "Recherches dynamiques"
#: howto/descriptor.rst:90
msgid ""
"Interesting descriptors typically run computations instead of returning "
"constants:"
msgstr ""
"Les descripteurs intéressants exécutent généralement des calculs au lieu de "
"renvoyer des constantes :"
#: howto/descriptor.rst:109
msgid ""
"An interactive session shows that the lookup is dynamic — it computes "
"different, updated answers each time::"
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
msgid ""
@ -158,10 +197,16 @@ msgid ""
"that lets the :meth:`__get__` method learn the target directory. The "
"*objtype* parameter is the class *Directory*."
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
msgid "Managed attributes"
msgstr ""
msgstr "Attributs gérés"
#: howto/descriptor.rst:133
msgid ""
@ -171,6 +216,12 @@ msgid ""
"dictionary. The descriptor's :meth:`__get__` and :meth:`__set__` methods "
"are triggered when the public attribute is accessed."
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
msgid ""
@ -178,12 +229,18 @@ msgid ""
"private attribute. When the public attribute is accessed, the descriptor "
"logs the lookup or update:"
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
msgid ""
"An interactive session shows that all access to the managed attribute *age* "
"is logged, but that the regular attribute *name* is not logged:"
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
msgid ""
@ -192,16 +249,22 @@ msgid ""
"only have one logged attribute and that its name is unchangeable. In the "
"next example, we'll fix that problem."
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
msgid "Customized names"
msgstr ""
msgstr "Noms personnalisés"
#: howto/descriptor.rst:215
msgid ""
"When a class uses descriptors, it can inform each descriptor about which "
"variable name was used."
msgstr ""
"Lorsqu'une classe utilise des descripteurs, elle peut informer chaque "
"descripteur du nom de variable utilisé."
#: howto/descriptor.rst:218
msgid ""
@ -211,6 +274,11 @@ msgid ""
"can be recorded, giving each descriptor its own *public_name* and "
"*private_name*:"
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
msgid ""
@ -218,24 +286,30 @@ msgid ""
"`__set_name__` so that the field names would be recorded. Here we call :"
"func:`vars` to look up the descriptor without triggering it:"
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
msgid "The new class now logs access to both *name* and *age*:"
msgstr ""
"La nouvelle classe enregistre désormais l'accès à la fois à *name* et *age* :"
#: howto/descriptor.rst:284
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
msgid "Closing thoughts"
msgstr ""
msgstr "Réflexions finales"
#: howto/descriptor.rst:297
msgid ""
"A :term:`descriptor` is what we call any object that defines :meth:"
"`__get__`, :meth:`__set__`, or :meth:`__delete__`."
msgstr ""
"Nous appelons :term:`descripteur <descriptor>` tout objet qui définit :meth:"
"`__get__`, :meth:`__set__` ou :meth:`__delete__`."
#: howto/descriptor.rst:300
msgid ""
@ -244,6 +318,11 @@ msgid ""
"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.)"
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
msgid ""
@ -251,18 +330,28 @@ msgid ""
"descriptor is accessed indirectly with ``vars(some_class)"
"[descriptor_name]``, the descriptor instance is returned without invoking it."
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
msgid ""
"Descriptors only work when used as class variables. When put in instances, "
"they have no effect."
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
msgid ""
"The main motivation for descriptors is to provide a hook allowing objects "
"stored in class variables to control what happens during attribute lookup."
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
msgid ""
@ -270,6 +359,9 @@ msgid ""
"Descriptors invert that relationship and allow the data being looked-up to "
"have a say in the matter."
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
msgid ""
@ -278,20 +370,26 @@ msgid ""
"`staticmethod`, :func:`property`, and :func:`functools.cached_property` are "
"all implemented as descriptors."
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
msgid "Complete Practical Example"
msgstr ""
msgstr "Exemple complet pratique"
#: howto/descriptor.rst:328
msgid ""
"In this example, we create a practical and powerful tool for locating "
"notoriously hard to find data corruption bugs."
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
msgid "Validator class"
msgstr ""
msgstr "Classe « validateur »"
#: howto/descriptor.rst:335
msgid ""
@ -300,31 +398,43 @@ msgid ""
"restrictions. If those restrictions aren't met, it raises an exception to "
"prevent data corruption at its source."
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
msgid ""
"This :class:`Validator` class is both an :term:`abstract base class` and a "
"managed attribute descriptor:"
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
msgid ""
"Custom validators need to inherit from :class:`Validator` and must supply a :"
"meth:`validate` method to test various restrictions as needed."
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
msgid "Custom validators"
msgstr ""
msgstr "Validateurs personnalisés"
#: howto/descriptor.rst:370
msgid "Here are three practical data validation utilities:"
msgstr ""
msgstr "Voici trois utilitaires concrets de validation de données :"
#: howto/descriptor.rst:372
msgid ""
":class:`OneOf` verifies that a value is one of a restricted set of options."
msgstr ""
":class:`OneOf` vérifie qu'une valeur fait partie d'un ensemble limité de "
"valeurs ;"
#: howto/descriptor.rst:374
msgid ""
@ -332,6 +442,9 @@ msgid ""
"`float`. Optionally, it verifies that a value is between a given minimum or "
"maximum."
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
msgid ""
@ -340,28 +453,36 @@ msgid ""
"`predicate <https://en.wikipedia.org/wiki/Predicate_(mathematical_logic)>`_ "
"as well."
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
msgid "Practical application"
msgstr ""
msgstr "Application pratique"
#: howto/descriptor.rst:439
msgid "Here's how the data validators can be used in a real class:"
msgstr ""
"Voici comment les validateurs de données peuvent être utilisés par une "
"classe réelle :"
#: howto/descriptor.rst:454
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
msgid "Technical Tutorial"
msgstr ""
msgstr "Tutoriel technique"
#: howto/descriptor.rst:483
msgid ""
"What follows is a more technical tutorial for the mechanics and details of "
"how descriptors work."
msgstr ""
"Ce qui suit est un tutoriel plus technique relatif aux mécanismes et détails "
"de fonctionnement des descripteurs."
#: howto/descriptor.rst:488
msgid "Abstract"
@ -372,6 +493,9 @@ msgid ""
"Defines descriptors, summarizes the protocol, and shows how descriptors are "
"called. Provides an example showing how object relational mappings work."
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
#, fuzzy
@ -512,7 +636,7 @@ msgstr ""
#: howto/descriptor.rst:552
msgid "Overview of descriptor invocation"
msgstr ""
msgstr "Présentation de l'appel de descripteur"
#: howto/descriptor.rst:554
#, fuzzy
@ -528,6 +652,8 @@ msgid ""
"But it is more common for a descriptor to be invoked automatically from "
"attribute access."
msgstr ""
"Mais il est plus courant qu'un descripteur soit invoqué automatiquement à "
"partir d'un accès à un attribut."
#: howto/descriptor.rst:560
msgid ""
@ -536,6 +662,10 @@ msgid ""
"instance ``__dict__``, its :meth:`__get__` method is invoked according to "
"the precedence rules listed below."
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
#, fuzzy
@ -548,7 +678,7 @@ msgstr ""
#: howto/descriptor.rst:570
msgid "Invocation from an instance"
msgstr ""
msgstr "Appel depuis une instance"
#: howto/descriptor.rst:572
msgid ""
@ -557,18 +687,26 @@ msgid ""
"descriptors, then class variables, and lastly :meth:`__getattr__` if it is "
"provided."
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
msgid ""
"If a descriptor is found for ``a.x``, then it is invoked with: ``desc."
"__get__(a, type(a))``."
msgstr ""
"Si un descripteur est trouvé pour ``a.x``, alors il est appelé par ``desc."
"__get__(a, type(a))``."
#: howto/descriptor.rst:580
msgid ""
"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here "
"is a pure Python equivalent:"
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
msgid ""
@ -576,6 +714,10 @@ msgid ""
"code. That is why calling :meth:`__getattribute__` directly or with "
"``super().__getattribute__`` will bypass :meth:`__getattr__` entirely."
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
msgid ""
@ -584,6 +726,10 @@ msgid ""
"`__getattribute__` raises an :exc:`AttributeError`. Their logic is "
"encapsulated in a helper function:"
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
#, fuzzy
@ -597,26 +743,36 @@ msgid ""
"__getattribute__` but the instance dictionary lookup is replaced by a search "
"through the class's :term:`method resolution order`."
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
msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``."
msgstr ""
"Si un descripteur est trouvé, il est appelé par ``desc.__get__(None, A)``."
#: howto/descriptor.rst:782
msgid ""
"The full C implementation can be found in :c:func:`type_getattro()` and :c:"
"func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`."
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
msgid "Invocation from super"
msgstr ""
msgstr "Appel depuis super"
#: howto/descriptor.rst:789
msgid ""
"The logic for super's dotted lookup is in the :meth:`__getattribute__` "
"method for object returned by :class:`super()`."
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
#, fuzzy
@ -648,13 +804,15 @@ msgstr ""
#: howto/descriptor.rst:804
msgid "Summary of invocation logic"
msgstr ""
msgstr "Résumé de la logique d'appel"
#: howto/descriptor.rst:806
msgid ""
"The mechanism for descriptors is embedded in the :meth:`__getattribute__()` "
"methods for :class:`object`, :class:`type`, and :func:`super`."
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
msgid "The important points to remember are:"
@ -670,6 +828,8 @@ msgid ""
"Classes inherit this machinery from :class:`object`, :class:`type`, or :func:"
"`super`."
msgstr ""
"les classes héritent ce mécanisme de :class:`object`, :class:`type` ou :func:"
"`super` ;"
#: howto/descriptor.rst:816
#, fuzzy
@ -707,7 +867,7 @@ msgstr ""
#: howto/descriptor.rst:830
msgid "Automatic name notification"
msgstr ""
msgstr "Notification automatique des noms"
#: howto/descriptor.rst:832
msgid ""
@ -718,6 +878,13 @@ msgid ""
"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."
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
#, fuzzy
@ -735,10 +902,14 @@ msgid ""
"place at the time of class creation. If descriptors are added to the class "
"afterwards, :meth:`__set_name__` will need to be called manually."
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
msgid "ORM example"
msgstr ""
msgstr "Exemple d'ORM"
#: howto/descriptor.rst:850
msgid ""
@ -753,6 +924,10 @@ msgid ""
"Python instances only hold keys to the database's tables. Descriptors take "
"care of lookups or updates:"
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
msgid ""
@ -760,20 +935,26 @@ msgid ""
"org/wiki/Database_model>`_ that describe the schema for each table in a "
"database:"
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
msgid "To use the models, first connect to the database::"
msgstr ""
"Pour utiliser les modèles, connectons-nous d'abord à la base de données ::"
#: howto/descriptor.rst:903
msgid ""
"An interactive session shows how data is retrieved from the database and how "
"it can be updated:"
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
msgid "Pure Python Equivalents"
msgstr ""
msgstr "Équivalents en Python pur"
#: howto/descriptor.rst:950
#, fuzzy
@ -853,6 +1034,8 @@ msgid ""
"Either the built-in :func:`property` or our :func:`Property` equivalent "
"would work in this example."
msgstr ""
"Soit la :func:`property` native, soit notre équivalent :func:`Property` "
"fonctionnent dans cet exemple."
#: howto/descriptor.rst:1117
#, fuzzy
@ -889,6 +1072,8 @@ msgid ""
"Methods can be created manually with :class:`types.MethodType` which is "
"roughly equivalent to:"
msgstr ""
"Les méthodes peuvent être créées manuellement avec :class:`types."
"MethodType`, qui équivaut à peu près à :"
#: howto/descriptor.rst:1144
#, fuzzy
@ -917,36 +1102,50 @@ msgstr ""
msgid ""
"The function has a :term:`qualified name` attribute to support introspection:"
msgstr ""
"La fonction possède un attribut ``__qualname__`` (:term:`nom "
"qualifié<qualified name>`) pour prendre en charge l'introspection :"
#: howto/descriptor.rst:1176
msgid ""
"Accessing the function through the class dictionary does not invoke :meth:"
"`__get__`. Instead, it just returns the underlying function object::"
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
msgid ""
"Dotted access from a class calls :meth:`__get__` which just returns the "
"underlying function unchanged::"
msgstr ""
"La recherche d'attribut depuis une classe appelle :meth:`__get__`, qui "
"renvoie simplement la fonction sous-jacente inchangée ::"
#: howto/descriptor.rst:1188
msgid ""
"The interesting behavior occurs during dotted access from an instance. The "
"dotted lookup calls :meth:`__get__` which returns a bound method object::"
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
msgid ""
"Internally, the bound method stores the underlying function and the bound "
"instance::"
msgstr ""
"En interne, la méthode liée stocke la fonction sous-jacente et l'instance "
"liée ::"
#: howto/descriptor.rst:1204
msgid ""
"If you have ever wondered where *self* comes from in regular methods or "
"where *cls* comes from in class methods, this is it!"
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
#, fuzzy
@ -1147,7 +1346,7 @@ msgstr ""
#: howto/descriptor.rst:1426
msgid "Member objects and __slots__"
msgstr ""
msgstr "Objets membres et *__slots__*"
#: howto/descriptor.rst:1428
msgid ""
@ -1155,18 +1354,26 @@ msgid ""
"fixed-length array of slot values. From a user point of view that has "
"several effects:"
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
msgid ""
"1. Provides immediate detection of bugs due to misspelled attribute "
"assignments. Only attribute names specified in ``__slots__`` are allowed:"
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
msgid ""
"2. Helps create immutable objects where descriptors manage access to private "
"attributes stored in ``__slots__``:"
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
msgid ""
@ -1175,18 +1382,28 @@ msgid ""
"design pattern <https://en.wikipedia.org/wiki/Flyweight_pattern>`_ likely "
"only matters when a large number of instances are going to be created."
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
msgid ""
"4. Improves speed. Reading instance variables is 35% faster with "
"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)."
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
msgid ""
"5. Blocks tools like :func:`functools.cached_property` which require an "
"instance dictionary to function correctly:"
msgstr ""
"5/ bloque les outils comme :func:`functools.cached_property` qui nécessitent "
"un dictionnaire d'instance pour fonctionner correctement :"
#: howto/descriptor.rst:1513
msgid ""
@ -1197,12 +1414,21 @@ msgid ""
"``_slotvalues`` list. Reads and writes to that private structure are "
"managed by member descriptors:"
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
msgid ""
"The :meth:`type.__new__` method takes care of adding member objects to class "
"variables:"
msgstr ""
"La méthode :meth:`type.__new__` s'occupe d'ajouter des objets membres aux "
"variables de classe :"
#: howto/descriptor.rst:1574
msgid ""
@ -1210,27 +1436,37 @@ msgid ""
"slots instead of an instance dictionary. Here is a rough simulation in pure "
"Python:"
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
msgid ""
"To use the simulation in a real class, just inherit from :class:`Object` and "
"set the :term:`metaclass` to :class:`Type`:"
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
msgid ""
"At this point, the metaclass has loaded member objects for *x* and *y*::"
msgstr ""
"À ce stade, la métaclasse a chargé des objets membres pour *x* et *y* ::"
#: howto/descriptor.rst:1644
msgid ""
"When instances are created, they have a ``slot_values`` list where the "
"attributes are stored:"
msgstr ""
"Lorsque les instances sont créées, elles ont une liste ``slot_values`` où "
"les attributs sont stockés :"
#: howto/descriptor.rst:1656
msgid "Misspelled or unassigned attributes will raise an exception:"
msgstr ""
"Les attributs mal orthographiés ou non attribués lèvent une exception :"
#~ msgid ""
#~ "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 "
"files in it."
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
msgid "Custom handling of levels"
msgstr ""
msgstr "Personnalisation du niveau de journalisation"
#: howto/logging-cookbook.rst:284
msgid ""
@ -214,22 +220,33 @@ msgid ""
"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:"
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
msgid "Send messages of severity ``INFO`` and ``WARNING`` to ``sys.stdout``"
msgstr ""
"envoyer les messages de niveau ``INFO`` et ``WARNING`` à ``sys.stdout`` ;"
#: howto/logging-cookbook.rst:290
msgid "Send messages of severity ``ERROR`` and above to ``sys.stderr``"
msgstr ""
"envoyer les messages de niveau ``ERROR`` et au-dessus à ``sys.stderr`` ;"
#: howto/logging-cookbook.rst:291
msgid "Send messages of severity ``DEBUG`` and above to file ``app.log``"
msgstr ""
"envoyer les messages de niveau ``DEBUG`` et au-dessus vers le fichier ``app."
"log``."
#: howto/logging-cookbook.rst:293
msgid "Suppose you configure logging with the following JSON:"
msgstr ""
"Supposons que vous configurez la journalisation avec le contenu au format "
"JSON suivant :"
#: howto/logging-cookbook.rst:335
msgid ""
@ -239,16 +256,26 @@ msgid ""
"those messages and add it to the relevant handler. This can be configured by "
"adding a ``filters`` section parallel to ``formatters`` and ``handlers``:"
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
msgid "and changing the section on the ``stdout`` handler to add it:"
msgstr ""
"et en changeant la section du gestionnaire ``stdout`` pour ajouter le "
"filtre :"
#: howto/logging-cookbook.rst:362
msgid ""
"A filter is just a function, so we can define the ``filter_maker`` (a "
"factory function) as follows:"
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
msgid ""
@ -260,18 +287,28 @@ msgid ""
"filter_maker`` in the filter configuration. You will need to change that if "
"you define it in a different module."
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
msgid "With the filter added, we can run ``main.py``, which in full is:"
msgstr ""
"Avec le filtre, nous pouvons exécuter ``main.py`` dont voici la version "
"complète :"
#: howto/logging-cookbook.rst:453
msgid "And after running it like this:"
msgstr ""
msgstr "Et après l'avoir exécuté comme ceci :"
#: howto/logging-cookbook.rst:459
msgid "We can see the results are as expected:"
msgstr ""
msgstr "Nous obtenons le résultat attendu :"
#: howto/logging-cookbook.rst:485
msgid "Configuration server example"
@ -406,6 +443,16 @@ msgid ""
"application, to use the above approach for logging, so that any blocking "
"code runs only in the ``QueueListener`` thread."
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
msgid ""
@ -751,6 +798,11 @@ msgid ""
"handlers, you can use a filter that returns a new :class:`~LogRecord` "
"instead of modifying it in-place, as shown in the following script::"
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
msgid "Logging to a single file from multiple processes"
@ -1137,7 +1189,7 @@ msgstr ""
#: howto/logging-cookbook.rst:1707
msgid "Customizing ``LogRecord``"
msgstr ""
msgstr "Personnalisation de ``LogRecord``"
#: howto/logging-cookbook.rst:1709
msgid ""
@ -1149,12 +1201,22 @@ msgid ""
"disabled). Before Python 3.2, there were only two places where this creation "
"was done:"
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
msgid ""
":meth:`Logger.makeRecord`, which is called in the normal process of logging "
"an event. This invoked :class:`LogRecord` directly to create an instance."
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
msgid ""
@ -1164,12 +1226,20 @@ msgid ""
"via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:"
"`~handlers.HTTPHandler`)."
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
msgid ""
"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."
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
msgid ""
@ -1177,6 +1247,9 @@ msgid ""
"makeRecord`, and set it using :func:`~logging.setLoggerClass` before any "
"loggers that you care about are instantiated."
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
msgid ""
@ -1184,6 +1257,9 @@ msgid ""
"special manipulation you need when its :meth:`~Filter.filter` method is "
"called."
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
msgid ""
@ -1192,6 +1268,10 @@ msgid ""
"attempt to set its own :class:`Logger` subclass, and the one which did this "
"last would win."
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
msgid ""
@ -1201,6 +1281,12 @@ msgid ""
"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 ::"
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
msgid ""
@ -1211,6 +1297,13 @@ msgid ""
"so output from that handler would not reflect the intentions of the library "
"developer."
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
msgid ""
@ -1221,6 +1314,13 @@ msgid ""
"signature as the :class:`~logging.LogRecord` constructor, as :class:"
"`LogRecord` is the default setting for the factory."
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
msgid ""
@ -1229,6 +1329,10 @@ msgid ""
"additional attributes to the record once created, using a pattern similar to "
"this::"
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
msgid ""
@ -1239,10 +1343,18 @@ msgid ""
"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."
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
msgid "Subclassing QueueHandler - a ZeroMQ example"
msgstr ""
msgstr "Dérivation de *QueueHandler* un exemple de *ZeroMQ*"
#: howto/logging-cookbook.rst:1787
msgid ""
@ -1250,22 +1362,31 @@ msgid ""
"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')::"
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
msgid ""
"Of course there are other ways of organizing this, for example passing in "
"the data needed by the handler to create the socket::"
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
msgid "Subclassing QueueListener - a ZeroMQ example"
msgstr ""
msgstr "Dérivation de *QueueListener* un exemple de *ZeroMQ*"
#: howto/logging-cookbook.rst:1826
msgid ""
"You can also subclass :class:`QueueListener` to get messages from other "
"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::"
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
msgid "Module :mod:`logging`"
@ -1294,14 +1415,18 @@ msgstr "Gestionnaires utiles inclus avec le module de journalisation."
#: howto/logging-cookbook.rst:1853
msgid ":ref:`A basic logging tutorial <logging-basic-tutorial>`"
msgstr ""
":ref:`Les bases de lutilisation du module de journalisation <logging-basic-"
"tutorial>`"
#: howto/logging-cookbook.rst:1855
msgid ":ref:`A more advanced logging tutorial <logging-advanced-tutorial>`"
msgstr ""
":ref:`Utilisation avancée du module de journalisation <logging-advanced-"
"tutorial>`"
#: howto/logging-cookbook.rst:1859
msgid "An example dictionary-based configuration"
msgstr ""
msgstr "Exemple de configuration basée sur un dictionnaire"
#: howto/logging-cookbook.rst:1861
msgid ""
@ -1310,6 +1435,11 @@ msgid ""
"stable/topics/logging/#configuring-logging>`_. This dictionary is passed to :"
"func:`~config.dictConfig` to put the configuration into effect::"
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
msgid ""
@ -1317,10 +1447,15 @@ msgid ""
"section <https://docs.djangoproject.com/en/stable/topics/logging/"
"#configuring-logging>`_ of the Django documentation."
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
msgid "Using a rotator and namer to customize log rotation processing"
msgstr ""
"Utilisation dun rotateur et dun nom pour personnaliser la rotation des "
"journaux"
#: howto/logging-cookbook.rst:1926
msgid ""
@ -1337,7 +1472,7 @@ msgstr ""
#: howto/logging-cookbook.rst:1949
msgid "A more elaborate multiprocessing example"
msgstr ""
msgstr "Exemple plus élaboré avec traitement en parallèle"
#: howto/logging-cookbook.rst:1951
msgid ""
@ -1346,6 +1481,11 @@ msgid ""
"simple, but serve to illustrate how more complex ones could be implemented "
"in a real multiprocessing scenario."
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
msgid ""
@ -1359,16 +1499,30 @@ msgid ""
"purely illustrative, but you should be able to adapt this example to your "
"own scenario."
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
msgid ""
"Here's the script - the docstrings and the comments hopefully explain how it "
"works::"
msgstr ""
"Voici le script les chaines de documentation et les commentaires "
"expliquent (en anglais), le principe de fonctionnement ::"
#: howto/logging-cookbook.rst:2178
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
msgid ""
@ -1378,6 +1532,11 @@ msgid ""
"encoded using UTF-8. (See the :rfc:`relevant section of the specification "
"<5424#section-6>`.)"
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
msgid ""
@ -1386,6 +1545,10 @@ msgid ""
"incorrectly, with the BOM appearing at the beginning of the message and "
"hence not allowing any pure-ASCII component to appear before it."
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
msgid ""
@ -1395,18 +1558,28 @@ msgid ""
"an optional pure-ASCII sequence before it and arbitrary Unicode after it, "
"encoded using UTF-8, then you need to do the following:"
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
msgid ""
"Attach a :class:`~logging.Formatter` instance to your :class:`~logging."
"handlers.SysLogHandler` instance, with a format string such as::"
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
msgid ""
"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'``."
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
msgid ""
@ -1414,6 +1587,9 @@ msgid ""
"that the data that appears in there after substitution is always ASCII (that "
"way, it will remain unchanged after UTF-8 encoding)."
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
msgid ""
@ -1421,6 +1597,10 @@ msgid ""
"which appears there after substitution contains characters outside the ASCII "
"range, that's fine -- it will be encoded using UTF-8."
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
msgid ""
@ -1430,10 +1610,15 @@ msgid ""
"complain, but your messages will not be RFC 5424-compliant, and your syslog "
"daemon may complain."
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
msgid "Implementing structured logging"
msgstr ""
msgstr "Journalisation structurée"
#: howto/logging-cookbook.rst:2224
msgid ""
@ -1446,30 +1631,42 @@ msgid ""
"following is a simple approach which uses JSON to serialise the event in a "
"machine-parseable manner::"
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
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
msgid ""
"Note that the order of items might be different according to the version of "
"Python used."
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
msgid ""
"If you need more specialised processing, you can use a custom JSON encoder, "
"as in the following complete example::"
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
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
msgid "Customizing handlers with :func:`dictConfig`"
msgstr ""
msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`"
#: howto/logging-cookbook.rst:2307
msgid ""
@ -1480,12 +1677,23 @@ msgid ""
"the file handlers in the stdlib don't offer built-in support. You can "
"customize handler creation using a plain function such as::"
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
msgid ""
"You can then specify, in a logging configuration passed to :func:"
"`dictConfig`, that a logging handler be created by calling this function::"
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
msgid ""
@ -1493,10 +1701,14 @@ msgid ""
"group, just for the purposes of illustration. Putting it together into a "
"working script, ``chowntest.py``::"
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
msgid "To run this, you will probably need to run as ``root``:"
msgstr ""
"Pour lexécuter, vous devrez probablement le faire en tant que ``root`` :"
#: howto/logging-cookbook.rst:2411
msgid ""
@ -1506,16 +1718,25 @@ msgid ""
"With pre-3.3 versions, you would need to implement the actual ownership "
"change using e.g. :func:`os.chown`."
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
msgid ""
"In practice, the handler-creating function may be in a utility module "
"somewhere in your project. Instead of the line in the configuration::"
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
msgid "you could use e.g.::"
msgstr ""
msgstr "vous pouvez écrire par exemple ::"
#: howto/logging-cookbook.rst:2426
msgid ""
@ -1524,6 +1745,11 @@ msgid ""
"__main__.owned_file_handler'`` should work. Here, the actual callable is "
"resolved by :func:`dictConfig` from the ``ext://`` specification."
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
msgid ""
@ -1531,6 +1757,9 @@ msgid ""
"types of file change - e.g. setting specific POSIX permission bits - in the "
"same way, using :func:`os.chmod`."
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
msgid ""
@ -1538,6 +1767,10 @@ msgid ""
"than a :class:`~logging.FileHandler` - for example, one of the rotating file "
"handlers, or a different type of handler altogether."
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
msgid "Using particular formatting styles throughout your application"
@ -2252,12 +2485,12 @@ msgstr ""
#: howto/logging-cookbook.rst:3798
msgid "Other resources"
msgstr ""
msgstr "Autres ressources"
#: howto/logging-cookbook.rst:3811
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel de découverte <logging-basic-tutorial>`"
#: howto/logging-cookbook.rst:3813
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
msgid "Create a subprocess."
msgstr ""
msgstr "Crée un sous-processus."
#: library/asyncio-api-index.rst:117
msgid "``await`` :func:`create_subprocess_shell`"

View File

@ -281,6 +281,9 @@ msgid ""
"class:`contextvars.Context` for the *callback* to run in. The current "
"context is used when no *context* is provided."
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
msgid ""
@ -318,6 +321,7 @@ msgid ""
"The *context* keyword-only parameter was added. See :pep:`567` for more "
"details."
msgstr ""
"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails."
#: library/asyncio-eventloop.rst:236
msgid ""

View File

@ -813,7 +813,7 @@ msgstr ""
#: library/asyncio-llapi-index.rst:411
msgid "Protocols"
msgstr ""
msgstr "Protocoles"
#: library/asyncio-llapi-index.rst:413
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:"
"`RuntimeError`."
msgstr ""
"Instancier un sous-processus avec un observateur enfant actuel *inactif* "
"lève l'exception :exc:`RuntimeError`."
#: library/asyncio-policy.rst:212
msgid "Close the watcher."

View File

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

View File

@ -69,6 +69,8 @@ msgstr "Le paramètre *loop*."
#: library/asyncio-queue.rst:43
msgid "This class is :ref:`not thread safe <asyncio-multithreading>`."
msgstr ""
"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils <asyncio-"
"multithreading>`."
#: library/asyncio-queue.rst:47
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
msgid "Removed the *loop* parameter."
msgstr ""
msgstr "Suppression du paramètre *loop*."
#: library/asyncio-stream.rst:94
msgid "Start a socket server."

View File

@ -29,12 +29,16 @@ msgid ""
"This section describes high-level async/await asyncio APIs to create and "
"manage subprocesses."
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
msgid ""
"Here's an example of how asyncio can run a shell command and obtain its "
"result::"
msgstr ""
"Voici un exemple de comment *asyncio* peut lancer une commande shell et "
"obtenir son résultat ::"
#: library/asyncio-subprocess.rst:40
#, fuzzy
@ -51,15 +55,15 @@ msgstr ""
#: library/asyncio-subprocess.rst:58
msgid "See also the `Examples`_ subsection."
msgstr ""
msgstr "Voir également la section `Exemples`_."
#: library/asyncio-subprocess.rst:62
msgid "Creating Subprocesses"
msgstr ""
msgstr "Créer des sous-processus"
#: library/asyncio-subprocess.rst:67
msgid "Create a subprocess."
msgstr ""
msgstr "Crée un sous-processus."
#: library/asyncio-subprocess.rst:69 library/asyncio-subprocess.rst:87
msgid ""
@ -67,15 +71,21 @@ msgid ""
"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:"
"`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)."
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
msgid "Return a :class:`~asyncio.subprocess.Process` instance."
msgstr ""
msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`."
#: library/asyncio-subprocess.rst:75
msgid ""
"See the documentation of :meth:`loop.subprocess_exec` for other parameters."
msgstr ""
"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres "
"paramètres."
#: library/asyncio-subprocess.rst:78 library/asyncio-subprocess.rst:105
#, fuzzy
@ -90,6 +100,8 @@ msgstr "Exécute la commande *cmd* dans un *shell*."
msgid ""
"See the documentation of :meth:`loop.subprocess_shell` for other parameters."
msgstr ""
"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres "
"paramètres."
#: library/asyncio-subprocess.rst:98
msgid ""
@ -100,6 +112,13 @@ msgid ""
"escape whitespace and special shell characters in strings that are going to "
"be used to construct shell commands."
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
msgid ""
@ -107,6 +126,9 @@ msgid ""
"used. See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` "
"for details."
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
msgid ""
@ -123,7 +145,7 @@ msgstr "Constantes"
#: library/asyncio-subprocess.rst:129
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
msgid ""
@ -131,6 +153,9 @@ msgid ""
"subprocess.Process.stdin>` attribute will point to a :class:`StreamWriter` "
"instance."
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
msgid ""
@ -139,12 +164,18 @@ msgid ""
"<asyncio.subprocess.Process.stderr>` attributes will point to :class:"
"`StreamReader` instances."
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
msgid ""
"Special value that can be used as the *stderr* argument and indicates that "
"standard error should be redirected into standard output."
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
msgid ""
@ -152,10 +183,13 @@ msgid ""
"to process creation functions. It indicates that the special file :data:`os."
"devnull` will be used for the corresponding subprocess stream."
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
msgid "Interacting with Subprocesses"
msgstr ""
msgstr "Interagir avec les sous-processus"
#: library/asyncio-subprocess.rst:157
msgid ""
@ -199,11 +233,13 @@ msgstr ""
#: library/asyncio-subprocess.rst:184
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
msgid "This class is :ref:`not thread safe <asyncio-multithreading>`."
msgstr ""
"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils <asyncio-"
"multithreading>`."
#: library/asyncio-subprocess.rst:188
msgid ""
@ -215,11 +251,11 @@ msgstr ""
#: library/asyncio-subprocess.rst:193
msgid "Wait for the child process to terminate."
msgstr ""
msgstr "Attend que le sous processus s'arrête."
#: library/asyncio-subprocess.rst:195
msgid "Set and return the :attr:`returncode` attribute."
msgstr ""
msgstr "Définit et renvoie l'attribut :attr:`returncode`."
#: library/asyncio-subprocess.rst:199
msgid ""
@ -228,32 +264,41 @@ msgid ""
"pipe buffer to accept more data. Use the :meth:`communicate` method when "
"using pipes to avoid this condition."
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
msgid "Interact with process:"
msgstr ""
msgstr "Interagit avec le processus :"
#: library/asyncio-subprocess.rst:209
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
msgid "read data from *stdout* and *stderr*, until EOF is reached;"
msgstr ""
"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit "
"atteint ;"
#: library/asyncio-subprocess.rst:211
msgid "wait for process to terminate."
msgstr ""
msgstr "attend que le processus s'arrête."
#: library/asyncio-subprocess.rst:213
msgid ""
"The optional *input* argument is the data (:class:`bytes` object) that will "
"be sent to the child process."
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
msgid "Return a tuple ``(stdout_data, stderr_data)``."
msgstr ""
msgstr "Renvoie un tuple ``(stdout_data, stderr_data)``."
#: library/asyncio-subprocess.rst:218
msgid ""
@ -327,7 +372,7 @@ msgstr ""
#: library/asyncio-subprocess.rst:260
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
msgid ""
@ -358,6 +403,8 @@ msgstr ""
#: library/asyncio-subprocess.rst:288
msgid "Process identification number (PID)."
msgstr ""
"Numéro d'identification du processus (PID, pour *Process Identification "
"Number* en anglais)."
#: library/asyncio-subprocess.rst:290
msgid ""
@ -367,7 +414,7 @@ msgstr ""
#: library/asyncio-subprocess.rst:295
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
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:"
"`RuntimeError`."
msgstr ""
"Instancier un sous-processus avec un observateur enfant actuel *inactif* "
"lève l'exception :exc:`RuntimeError`."
#: library/asyncio-subprocess.rst:326
msgid ""
"Note that alternative event loop implementations might have own limitations; "
"please refer to their documentation."
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
msgid ""
"The :ref:`Concurrency and multithreading in asyncio <asyncio-"
"multithreading>` section."
msgstr ""
"La section :ref:`Exécution concurrente et multi-fils d'exécution <asyncio-"
"multithreading>`."
#: library/asyncio-subprocess.rst:336
msgid "Examples"
@ -437,14 +491,20 @@ msgid ""
"subprocess and the :class:`StreamReader` class to read from its standard "
"output."
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
msgid ""
"The subprocess is created by the :func:`create_subprocess_exec` function::"
msgstr ""
"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::"
#: library/asyncio-subprocess.rst:371
msgid ""
"See also the :ref:`same example <asyncio_example_subprocess_proto>` written "
"using low-level APIs."
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 "
"running event loop."
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
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 "
"public API of CPython:"
msgstr ""
"Les évènements suivants sont levés en interne et ne correspondent à aucune "
"API publique de CPython:"
#: library/audit_events.rst:27
#, fuzzy
@ -67,61 +69,63 @@ msgstr "Arguments"
#: library/audit_events.rst:29
msgid "_winapi.CreateFile"
msgstr ""
msgstr "_winapi.CreateFile"
#: library/audit_events.rst:29
msgid ""
"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, "
"``flags_and_attributes``"
msgstr ""
"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, "
"``flags_and_attributes``"
#: library/audit_events.rst:33
msgid "_winapi.CreateJunction"
msgstr ""
msgstr "_winapi.CreateJunction"
#: library/audit_events.rst:33
msgid "``src_path``, ``dst_path``"
msgstr ""
msgstr "``src_path``, ``dst_path``"
#: library/audit_events.rst:35
msgid "_winapi.CreateNamedPipe"
msgstr ""
msgstr "_winapi.CreateNamedPipe"
#: library/audit_events.rst:35
msgid "``name``, ``open_mode``, ``pipe_mode``"
msgstr ""
msgstr "``name``, ``open_mode``, ``pipe_mode``"
#: library/audit_events.rst:37
msgid "_winapi.CreatePipe"
msgstr ""
msgstr "_winapi.CreatePipe"
#: library/audit_events.rst:39
msgid "_winapi.CreateProcess"
msgstr ""
msgstr "_winapi.CreateProcess"
#: library/audit_events.rst:39
msgid "``application_name``, ``command_line``, ``current_directory``"
msgstr ""
msgstr "``application_name``, ``command_line``, ``current_directory``"
#: library/audit_events.rst:42
msgid "_winapi.OpenProcess"
msgstr ""
msgstr "_winapi.OpenProcess"
#: library/audit_events.rst:42
msgid "``process_id``, ``desired_access``"
msgstr ""
msgstr "``process_id``, ``desired_access``"
#: library/audit_events.rst:44
msgid "_winapi.TerminateProcess"
msgstr ""
msgstr "_winapi.TerminateProcess"
#: library/audit_events.rst:44
msgid "``handle``, ``exit_code``"
msgstr ""
msgstr "``handle``, ``exit_code``"
#: library/audit_events.rst:46
msgid "ctypes.PyObj_FromPtr"
msgstr ""
msgstr "ctypes.PyObj_FromPtr"
#: library/audit_events.rst:46
msgid "``obj``"

View File

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

View File

@ -30,7 +30,7 @@ msgstr ""
#: library/functions.rst:0
msgid "**A**"
msgstr ""
msgstr "**A**"
#: library/functions.rst:0
msgid ":func:`abs`"
@ -58,7 +58,7 @@ msgstr ":func:`ascii`"
#: library/functions.rst:0
msgid "**B**"
msgstr ""
msgstr "**B**"
#: library/functions.rst:0
msgid ":func:`bin`"
@ -82,7 +82,7 @@ msgstr "|func-bytes|_"
#: library/functions.rst:0
msgid "**C**"
msgstr ""
msgstr "*C**"
#: library/functions.rst:0
msgid ":func:`callable`"
@ -106,7 +106,7 @@ msgstr ":func:`complex`"
#: library/functions.rst:0
msgid "**D**"
msgstr ""
msgstr "**D**"
#: library/functions.rst:0
msgid ":func:`delattr`"
@ -126,7 +126,7 @@ msgstr ":func:`divmod`"
#: library/functions.rst:0
msgid "**E**"
msgstr ""
msgstr "**E**"
#: library/functions.rst:0
msgid ":func:`enumerate`"
@ -142,7 +142,7 @@ msgstr ":func:`exec`"
#: library/functions.rst:0
msgid "**F**"
msgstr ""
msgstr "**F**"
#: library/functions.rst:0
msgid ":func:`filter`"
@ -162,7 +162,7 @@ msgstr "|func-frozenset|_"
#: library/functions.rst:0
msgid "**G**"
msgstr ""
msgstr "**G**"
#: library/functions.rst:0
msgid ":func:`getattr`"
@ -174,7 +174,7 @@ msgstr ":func:`globals`"
#: library/functions.rst:0
msgid "**H**"
msgstr ""
msgstr "**H**"
#: library/functions.rst:0
msgid ":func:`hasattr`"
@ -194,7 +194,7 @@ msgstr ":func:`hex`"
#: library/functions.rst:0
msgid "**I**"
msgstr ""
msgstr "**I**"
#: library/functions.rst:0
msgid ":func:`id`"
@ -222,7 +222,7 @@ msgstr ":func:`iter`"
#: library/functions.rst:0
msgid "**L**"
msgstr ""
msgstr "**L**"
#: library/functions.rst:0
msgid ":func:`len`"
@ -238,7 +238,7 @@ msgstr ":func:`locals`"
#: library/functions.rst:0
msgid "**M**"
msgstr ""
msgstr "**M**"
#: library/functions.rst:0
msgid ":func:`map`"
@ -258,7 +258,7 @@ msgstr ":func:`min`"
#: library/functions.rst:0
msgid "**N**"
msgstr ""
msgstr "**N**"
#: library/functions.rst:0
msgid ":func:`next`"
@ -266,7 +266,7 @@ msgstr ":func:`next`"
#: library/functions.rst:0
msgid "**O**"
msgstr ""
msgstr "**O**"
#: library/functions.rst:0
msgid ":func:`object`"
@ -286,7 +286,7 @@ msgstr ":func:`ord`"
#: library/functions.rst:0
msgid "**P**"
msgstr ""
msgstr "**P**"
#: library/functions.rst:0
msgid ":func:`pow`"
@ -302,7 +302,7 @@ msgstr ":func:`property`"
#: library/functions.rst:0
msgid "**R**"
msgstr ""
msgstr "**R**"
#: library/functions.rst:0
msgid "|func-range|_"
@ -322,7 +322,7 @@ msgstr ":func:`round`"
#: library/functions.rst:0
msgid "**S**"
msgstr ""
msgstr "**S**"
#: library/functions.rst:0
msgid "|func-set|_"
@ -358,7 +358,7 @@ msgstr ":func:`super`"
#: library/functions.rst:0
msgid "**T**"
msgstr ""
msgstr "**T**"
#: library/functions.rst:0
msgid "|func-tuple|_"
@ -370,7 +370,7 @@ msgstr ":func:`type`"
#: library/functions.rst:0
msgid "**V**"
msgstr ""
msgstr "**V**"
#: library/functions.rst:0
msgid ":func:`vars`"
@ -378,7 +378,7 @@ msgstr ":func:`vars`"
#: library/functions.rst:0
msgid "**Z**"
msgstr ""
msgstr "**Z**"
#: library/functions.rst:0
msgid ":func:`zip`"
@ -386,7 +386,7 @@ msgstr ":func:`zip`"
#: library/functions.rst:0
msgid "**_**"
msgstr ""
msgstr "**_**"
#: library/functions.rst:0
msgid ":func:`__import__`"
@ -407,10 +407,15 @@ msgid ""
"Return an :term:`asynchronous iterator` for an :term:`asynchronous "
"iterable`. Equivalent to calling ``x.__aiter__()``."
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
msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant."
msgstr ""
"Remarque : contrairement à :func:`iter`, :func:`aiter` n'a pas de variante à "
"2 arguments."
#: library/functions.rst:75
msgid ""
@ -425,11 +430,16 @@ msgid ""
"When awaited, return the next item from the given :term:`asynchronous "
"iterator`, or *default* if given and the iterator is exhausted."
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
msgid ""
"This is the async variant of the :func:`next` builtin, and behaves similarly."
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
#, fuzzy
@ -743,6 +753,9 @@ msgid ""
"``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) and "
"have a new ``__wrapped__`` attribute."
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
msgid ""
@ -1224,6 +1237,8 @@ msgid ""
"If the given source is a string, then leading and trailing spaces and tabs "
"are stripped."
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
msgid ""
@ -1535,6 +1550,10 @@ msgid ""
"with two leading underscores) name in order to retrieve it with :func:"
"`getattr`."
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
#, fuzzy
@ -1678,7 +1697,7 @@ msgstr ""
#: library/functions.rst:826
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
#, fuzzy

View File

@ -17,14 +17,18 @@ msgstr ""
#: library/graphlib.rst:2
msgid ":mod:`graphlib` --- Functionality to operate with graph-like structures"
msgstr ""
":mod:`graphlib` — Fonctionnalités pour travailler avec des structures de "
"type graphe"
#: library/graphlib.rst:8
msgid "**Source code:** :source:`Lib/graphlib.py`"
msgstr ""
msgstr "**Code source:** :source:`Lib/graphlib.py`"
#: library/graphlib.rst:20
msgid "Provides functionality to topologically sort a graph of hashable nodes."
msgstr ""
"Fournit les fonctionnalités pour trier topologiquement un graphe de nœuds "
"hachables."
#: library/graphlib.rst:22
msgid ""
@ -37,6 +41,14 @@ msgid ""
"topological ordering is possible if and only if the graph has no directed "
"cycles, that is, if it is a directed acyclic graph."
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
msgid ""
@ -46,26 +58,35 @@ msgid ""
"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."
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
msgid ""
"In the general case, the steps required to perform the sorting of a given "
"graph are as follows:"
msgstr ""
"De manière générale, les étapes nécessaires pour trier un graphe donné sont "
"les suivantes :"
#: library/graphlib.rst:40
msgid ""
"Create an instance of the :class:`TopologicalSorter` with an optional "
"initial graph."
msgstr ""
"créer une instance de la classe :class:`TopologicalSorter` avec "
"éventuellement un graphe initial ;"
#: library/graphlib.rst:42
msgid "Add additional nodes to the graph."
msgstr ""
msgstr "ajouter d'autres nœuds au graphe ;"
#: library/graphlib.rst:43
msgid "Call :meth:`~TopologicalSorter.prepare` on the graph."
msgstr ""
msgstr "appeler :meth:`~TopologicalSorter.prepare` sur le graphe ;"
#: library/graphlib.rst:44
msgid ""
@ -73,6 +94,10 @@ msgid ""
"nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. "
"Call :meth:`~TopologicalSorter.done` on each node as it finishes processing."
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
msgid ""
@ -80,24 +105,34 @@ msgid ""
"no parallelism is involved, the convenience method :meth:`TopologicalSorter."
"static_order` can be used directly:"
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
msgid ""
"The class is designed to easily support parallel processing of the nodes as "
"they become ready. For instance::"
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
msgid ""
"Add a new node and its predecessors to the graph. Both the *node* and all "
"elements in *predecessors* must be hashable."
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
msgid ""
"If called multiple times with the same node argument, the set of "
"dependencies will be the union of all dependencies passed in."
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
msgid ""
@ -106,11 +141,17 @@ msgid ""
"provided before is included among *predecessors* it will be automatically "
"added to the graph with no predecessors of its own."
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
msgid ""
"Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`."
msgstr ""
"Lève une :exc:`ValueError` si appelée après :meth:`~TopologicalSorter."
"prepare`."
#: library/graphlib.rst:102
msgid ""
@ -121,6 +162,12 @@ msgid ""
"be modified, and therefore no more nodes can be added using :meth:"
"`~TopologicalSorter.add`."
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
msgid ""
@ -131,22 +178,32 @@ msgid ""
"`TopologicalSorter.done` is less than the number that have been returned by :"
"meth:`TopologicalSorter.get_ready`."
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
msgid ""
"The :meth:`~TopologicalSorter.__bool__` method of this class defers to this "
"function, so instead of::"
msgstr ""
"La méthode :meth:`~TopologicalSorter.__bool__` de cette classe renvoie à "
"cette fonction donc au lieu de ::"
#: library/graphlib.rst:124
msgid "it is possible to simply do::"
msgstr ""
msgstr "il est plus simple de faire ::"
#: library/graphlib.rst:152
msgid ""
"Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter."
"prepare` previously."
msgstr ""
"Lève une :exc:`ValueError` si l'appel à :meth:`~TopologicalSorter.prepare` "
"n'a pas été fait au préalable."
#: library/graphlib.rst:134
msgid ""
@ -154,6 +211,9 @@ msgid ""
"processed, unblocking any successor of each node in *nodes* for being "
"returned in the future by a call to :meth:`TopologicalSorter.get_ready`."
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
msgid ""
@ -163,6 +223,11 @@ msgid ""
"meth:`~TopologicalSorter.prepare` or if node has not yet been returned by :"
"meth:`~TopologicalSorter.get_ready`."
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
msgid ""
@ -172,6 +237,11 @@ msgid ""
"nodes that have all their predecessors already processed. Once no more "
"progress can be made, empty tuples are returned."
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
msgid ""
@ -186,6 +256,8 @@ msgid ""
"The particular order that is returned may depend on the specific order in "
"which the items were inserted in the graph. For example:"
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
msgid ""
@ -194,10 +266,14 @@ msgid ""
"`~TopologicalSorter.get_ready`) and the order between them is determined by "
"the order of insertion."
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
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
msgid "Exceptions"
@ -205,7 +281,7 @@ msgstr "Exceptions"
#: library/graphlib.rst:199
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
msgid ""
@ -213,6 +289,9 @@ msgid ""
"cycles exist in the working graph. If multiple cycles exist, only one "
"undefined choice among them will be reported and included in the exception."
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
msgid ""
@ -222,3 +301,8 @@ msgid ""
"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."
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
msgid "Security Considerations"
msgstr ""
msgstr "Considérations de sécurité"
#: library/http.server.rst:499
msgid ""

View File

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

View File

@ -710,10 +710,11 @@ msgstr ""
#: library/importlib.rst:531
msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised."
msgstr ""
"Si la ressource ne peut pas être trouvée, :exc:`FileNotFoundError` est levée."
#: library/importlib.rst:536
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
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``, "
"``mode``, ``flags``."
msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``open`` avec les arguments "
"``path``, ``mode``, ``flags``."
#: library/io.rst:175
msgid ""

View File

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

View File

@ -25,6 +25,11 @@ msgid ""
"Windows implementations of their services. For example, the :mod:`getpass` "
"module uses this in the implementation of the :func:`getpass` function."
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
msgid ""
@ -45,10 +50,12 @@ msgid ""
"Operations in this module now raise :exc:`OSError` where :exc:`IOError` was "
"raised."
msgstr ""
"Les opérations de ce module lèvent désormais :exc:`OSError` au lieu de :exc:"
"`IOError`."
#: library/msvcrt.rst:33
msgid "File Operations"
msgstr ""
msgstr "Opérations sur les fichiers"
#: library/msvcrt.rst:38
msgid ""
@ -73,16 +80,24 @@ msgid ""
"immediately tries again after 1 second. If, after 10 attempts, the bytes "
"cannot be locked, :exc:`OSError` is raised."
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
msgid ""
"Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is "
"raised."
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
msgid "Unlocks the specified bytes, which must have been previously locked."
msgstr ""
"Déverrouille les octets spécifiés, qui doivent avoir été précédemment "
"verrouillés."
#: library/msvcrt.rst:70
msgid ""
@ -119,11 +134,11 @@ msgstr ""
#: library/msvcrt.rst:96
msgid "Console I/O"
msgstr ""
msgstr "Entrées-sorties sur un terminal"
#: library/msvcrt.rst:101
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
msgid ""
@ -138,6 +153,8 @@ msgstr ""
#: library/msvcrt.rst:116
msgid "Wide char variant of :func:`getch`, returning a Unicode value."
msgstr ""
"Variante de :func:`getch` qui lit un caractère large et renvoie une valeur "
"Unicode."
#: library/msvcrt.rst:121
msgid ""
@ -148,6 +165,8 @@ msgstr ""
#: library/msvcrt.rst:127
msgid "Wide char variant of :func:`getche`, returning a Unicode value."
msgstr ""
"Variante de :func:`getche` qui lit un caractère large et renvoie une valeur "
"Unicode."
#: library/msvcrt.rst:132
msgid "Print the byte string *char* to the console without buffering."
@ -156,6 +175,8 @@ msgstr ""
#: library/msvcrt.rst:137
msgid "Wide char variant of :func:`putch`, accepting a Unicode value."
msgstr ""
"Variante de :func:`putch` qui accepte une valeur Unicode et l'écrit comme "
"caractère large."
#: library/msvcrt.rst:142
msgid ""
@ -166,6 +187,8 @@ msgstr ""
#: library/msvcrt.rst:148
msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value."
msgstr ""
"Variante de :func:`ungetch` qui accepte une valeur Unicode et l'écrit comme "
"caractère large."
#: library/msvcrt.rst:154
#, fuzzy

View File

@ -137,7 +137,7 @@ msgstr ""
#: library/nntplib.rst:150
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
msgid ""

View File

@ -156,6 +156,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`."
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
msgid ""

View File

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

View File

@ -359,6 +359,8 @@ msgid ""
"If the path starts with more than two successive slashes, :class:`~pathlib."
"PurePosixPath` collapses them::"
msgstr ""
"Si le chemin commence par plus de deux slashes successifs, :class:`~pathlib."
"PurePosixPath` n'en conserve qu'un ::"
#: library/pathlib.rst:330
msgid ""
@ -366,6 +368,9 @@ msgid ""
"paragraph `4.11 Pathname Resolution <https://pubs.opengroup.org/"
"onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_:"
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
msgid ""

View File

@ -127,7 +127,7 @@ msgstr ""
#: library/pyexpat.rst:122
msgid "XMLParser Objects"
msgstr ""
msgstr "Objets XMLParser"
#: library/pyexpat.rst:124
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
msgid "Functions"
msgstr ""
msgstr "Fonctions"
#: library/re.rst:727
msgid ""
@ -1754,7 +1754,7 @@ msgstr "Vide le cache d'expressions rationnelles."
#: library/re.rst:989
msgid "Exceptions"
msgstr ""
msgstr "Exceptions"
#: library/re.rst:993
msgid ""

View File

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

View File

@ -52,27 +52,35 @@ msgstr ""
#: library/sqlite3.rst:34
msgid "This document includes four main sections:"
msgstr ""
msgstr "Ce document inclus 4 sections principales :"
#: library/sqlite3.rst:36
msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module."
msgstr ""
":ref:`tutoriel sqlite3 <sqlite3-tutorial>` explique comment utiliser le "
"module :mod:`!sqlite3`."
#: library/sqlite3.rst:37
msgid ""
":ref:`sqlite3-reference` describes the classes and functions this module "
"defines."
msgstr ""
":ref:`référence sqlite3 <sqlite3-reference>` décrit les classes et les "
"fonctions que ce module définit."
#: library/sqlite3.rst:39
msgid ":ref:`sqlite3-howtos` details how to handle specific tasks."
msgstr ""
":ref:`guide sqlite3 <sqlite3-howtos>` détaille comment gérer des tâches "
"spécifiques."
#: library/sqlite3.rst:40
msgid ""
":ref:`sqlite3-explanation` provides in-depth background on transaction "
"control."
msgstr ""
":ref:`explications sqlite3 <sqlite3-explanation>` propose un contexte "
"détaillé du contrôle de transaction."
#: library/sqlite3.rst:47
msgid "https://www.sqlite.org"
@ -104,7 +112,7 @@ msgstr "PEP écrite par Marc-André Lemburg."
#: library/sqlite3.rst:66
msgid "Tutorial"
msgstr ""
msgstr "Tutoriel"
#: library/sqlite3.rst:68
msgid ""
@ -112,6 +120,10 @@ msgid ""
"basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding "
"of database concepts, including `cursors`_ and `transactions`_."
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
msgid ""
@ -120,12 +132,19 @@ msgid ""
"create a connection to the database :file:`tutorial.db` in the current "
"working directory, implicitly creating it if it does not exist:"
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
msgid ""
"The returned :class:`Connection` object ``con`` represents the connection to "
"the on-disk database."
msgstr ""
"Lobjet :class:`Connection` renvoyé — ``con`` — représente la connexion à la "
"base de données sur disque."
#: library/sqlite3.rst:87
msgid ""
@ -133,6 +152,9 @@ msgid ""
"will need to use a database cursor. Call :meth:`con.cursor() <Connection."
"cursor>` to create the :class:`Cursor`:"
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
msgid ""
@ -143,6 +165,14 @@ msgid ""
"types is optional. Execute the ``CREATE TABLE`` statement by calling :meth:"
"`cur.execute(...) <Cursor.execute>`:"
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
msgid ""
@ -153,6 +183,13 @@ msgid ""
"execute>`, assign the result to ``res``, and call :meth:`res.fetchone() "
"<Cursor.fetchone>` to fetch the resulting row:"
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
msgid ""
@ -160,6 +197,10 @@ msgid ""
"`tuple` containing the table's name. If we query ``sqlite_master`` for a non-"
"existent table ``spam``, :meth:`!res.fetchone()` will return ``None``:"
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
msgid ""
@ -167,6 +208,9 @@ msgid ""
"``INSERT`` statement, once again by calling :meth:`cur.execute(...) <Cursor."
"execute>`:"
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
msgid ""
@ -175,6 +219,11 @@ msgid ""
"controlling-transactions` for details). Call :meth:`con.commit() <Connection."
"commit>` on the connection object to commit the transaction:"
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
msgid ""
@ -183,18 +232,27 @@ msgid ""
"assign the result to ``res``, and call :meth:`res.fetchall() <Cursor."
"fetchall>` to return all resulting rows:"
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
msgid ""
"The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each "
"containing that row's ``score`` value."
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
msgid ""
"Now, insert three more rows by calling :meth:`cur.executemany(...) <Cursor."
"executemany>`:"
msgstr ""
"Maintenant, insérez trois lignes supplémentaires en appelant :meth:`cur."
"executemany(…) <Cursor.executemany>` :"
#: library/sqlite3.rst:186
msgid ""
@ -203,18 +261,28 @@ msgid ""
"to bind Python values to SQL statements, to avoid `SQL injection attacks`_ "
"(see :ref:`sqlite3-placeholders` for more details)."
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
msgid ""
"We can verify that the new rows were inserted by executing a ``SELECT`` "
"query, this time iterating over the results of the query:"
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
msgid ""
"Each row is a two-item :class:`tuple` of ``(year, title)``, matching the "
"columns selected in the query."
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
msgid ""
@ -222,41 +290,51 @@ msgid ""
"`con.close() <Connection.close>` to close the existing connection, opening a "
"new one, creating a new cursor, then querying the database:"
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
msgid ""
"You've now created an SQLite database using the :mod:`!sqlite3` module, "
"inserted data and retrieved values from it in multiple ways."
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
msgid ":ref:`sqlite3-howtos` for further reading:"
msgstr ""
msgstr ":ref:`guide sqlite3 <sqlite3-howtos>` pour une lecture plus poussée:"
#: library/sqlite3.rst:238
msgid ":ref:`sqlite3-placeholders`"
msgstr ""
msgstr ":ref:`placeholders sqlite3 <sqlite3-placeholders>`"
#: library/sqlite3.rst:239
msgid ":ref:`sqlite3-adapters`"
msgstr ""
msgstr ":ref:`adaptateurs sqlite3 <sqlite3-adapters>`"
#: library/sqlite3.rst:240
msgid ":ref:`sqlite3-converters`"
msgstr ""
msgstr ":ref:`convertisseurs sqlite3 <sqlite3-converters>`"
#: library/sqlite3.rst:514
msgid ":ref:`sqlite3-connection-context-manager`"
msgstr ""
":ref:`gestionnaire de contexte de connexion sqlite3 <sqlite3-connection-"
"context-manager>`"
#: library/sqlite3.rst:243
msgid ""
":ref:`sqlite3-explanation` for in-depth background on transaction control."
msgstr ""
":ref:`explications sqlite3 <sqlite3-explanation>` pour un contexte détaillé "
"du contrôle de transaction."
#: library/sqlite3.rst:248
msgid "Reference"
msgstr ""
msgstr "Référence"
#: library/sqlite3.rst:256
#, fuzzy
@ -265,17 +343,20 @@ msgstr "Fonctions et constantes du module"
#: library/sqlite3.rst:263
msgid "Open a connection to an SQLite database."
msgstr ""
msgstr "Ouvrez une connexion à une base de données SQLite."
#: library/sqlite3.rst:0
msgid "Parameters"
msgstr ""
msgstr "Paramètres"
#: library/sqlite3.rst:265
msgid ""
"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."
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
msgid ""
@ -284,6 +365,11 @@ msgid ""
"transaction to modify the database, it will be locked until that transaction "
"is committed. Default five seconds."
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
msgid ""
@ -297,6 +383,17 @@ msgid ""
"class:`str` will be returned instead. By default (``0``), type detection is "
"disabled."
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
msgid ""
@ -306,6 +403,12 @@ msgid ""
"opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` "
"for more."
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
msgid ""
@ -319,6 +422,8 @@ msgid ""
"A custom subclass of :class:`Connection` to create the connection with, if "
"not the default :class:`Connection` class."
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
msgid ""
@ -334,6 +439,12 @@ msgid ""
"absolute. The query string allows passing parameters to SQLite, enabling "
"various :ref:`sqlite3-uri-tricks`."
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
#, fuzzy
@ -360,6 +471,8 @@ msgstr ""
msgid ""
"*database* can now also be a :term:`path-like object`, not only a string."
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
msgid "The ``sqlite3.connect/handle`` auditing event."
@ -372,6 +485,11 @@ msgid ""
"performed, other than checking that there are no unclosed string literals "
"and the statement is terminated by a semicolon."
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
#, fuzzy
@ -384,6 +502,10 @@ msgid ""
"entered text seems to form a complete SQL statement, or if additional input "
"is needed before calling :meth:`~Cursor.execute`."
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
msgid ""
@ -401,6 +523,10 @@ msgid ""
"its sole argument, and must return a value of a :ref:`type that SQLite "
"natively understands <sqlite3-types>`."
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
msgid ""
@ -411,12 +537,20 @@ msgid ""
"parameter *detect_types* of :func:`connect` for information regarding how "
"type detection works."
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
msgid ""
"Note: *typename* and the name of the type in your query are matched case-"
"insensitively."
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
#, fuzzy
@ -1287,7 +1421,7 @@ msgstr "SQLite type"
#: library/sqlite3.rst:1378
msgid "``None``"
msgstr ""
msgstr "``None``"
#: library/sqlite3.rst:1378
msgid "``NULL``"

View File

@ -7180,6 +7180,9 @@ msgid ""
"Documentation on how to implement generic classes that can be parameterized "
"at runtime and understood by static type-checkers."
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
#, fuzzy

View File

@ -72,10 +72,13 @@ msgstr ""
"l'interpréteur en cours d'exécution."
#: library/sys.rst:38
#, fuzzy
msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.addaudithook`` with no "
"arguments."
msgstr ""
"Déclenche un :ref:`événement d'audit <auditing>` ``sys.addaudithook`` sans "
"arguments."
#: library/sys.rst:40
#, fuzzy
@ -97,6 +100,9 @@ msgid ""
"See the :ref:`audit events table <audit-events>` for all events raised by "
"CPython, and :pep:`578` for the original design discussion."
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
msgid ""
@ -177,6 +183,8 @@ msgid ""
"For example, one auditing event is named ``os.chdir``. This event has one "
"argument called *path* that will contain the requested new working directory."
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
msgid ""
@ -187,24 +195,38 @@ msgid ""
"implementations to decide how to respond to particular events: they can "
"merely log the event or abort the operation by raising an exception."
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
msgid ""
"Hooks are added using the :func:`sys.addaudithook` or :c:func:"
"`PySys_AddAuditHook` functions."
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
msgid ""
"The native equivalent of this function is :c:func:`PySys_Audit`. Using the "
"native function is preferred when possible."
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
msgid ""
"See the :ref:`audit events table <audit-events>` for all events raised by "
"CPython."
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
#, fuzzy
@ -337,6 +359,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys._current_frames`` with no "
"arguments."
msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys._current_frames`` sans "
"arguments."
#: library/sys.rst:203
#, fuzzy
@ -531,7 +555,7 @@ msgstr ""
#: library/sys.rst:327
msgid ""
"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
msgid ""
@ -540,6 +564,11 @@ msgid ""
"`PYTHONPYCACHEPREFIX` environment variable (command-line takes precedence). "
"If neither are set, it is ``None``."
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
msgid ""
@ -571,6 +600,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.excepthook`` with arguments "
"``hook``, ``type``, ``value``, ``traceback``."
msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys.excepthook`` avec les "
"arguments ``hook``, ``type``, ``value``, ``traceback``."
#: library/sys.rst:350
msgid ""
@ -581,6 +612,13 @@ msgid ""
"Otherwise, the audit hook exception will be reported as unraisable and ``sys."
"excepthook`` will be called."
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
msgid ""
@ -588,6 +626,9 @@ msgid ""
"the :func:`threading.excepthook` function handles exception raised by :func:"
"`threading.Thread.run`."
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
msgid ""
@ -876,7 +917,7 @@ msgstr ":const:`dev_mode`"
#: library/sys.rst:479
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
msgid ":const:`utf8_mode`"
@ -1074,6 +1115,8 @@ msgid ""
"Use :func:`math.ulp(0.0) <math.ulp>` to get the smallest positive "
"*denormalized* representable float."
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
msgid ":const:`min_exp`"
@ -1274,6 +1317,11 @@ msgid ""
"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :"
"c:type:`PyConfig`."
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
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 "
"process. See :pep:`421` for more information."
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
msgid ""
@ -1864,12 +1914,17 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` "
"with argument ``hook``."
msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``cpython.run_interactivehook`` "
"avec comme argument ``hook``."
#: library/sys.rst:1000
msgid ""
"Raises an :ref:`auditing event <auditing>` ``cpython.run_interactivehook`` "
"with the hook object as the argument when the hook is called on startup."
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
msgid ""
@ -2254,6 +2309,9 @@ msgid ""
"Name of the platform-specific library directory. It is used to build the "
"path of standard library and the paths of installed extension modules."
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
msgid ""
@ -2261,12 +2319,18 @@ msgid ""
"equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys."
"path`` paths (where ``X.Y`` is the Python ``major.minor`` version):"
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
msgid ""
"``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` "
"module)"
msgstr ""
"``/usr/lib64/pythonX.Y/`` : Bibliothèque standard (comme ``os.py`` du "
"module :mod:`os`)"
#: library/sys.rst:1227
msgid ""
@ -2274,18 +2338,25 @@ msgid ""
"library (like the :mod:`errno` module, the exact filename is platform "
"specific)"
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
msgid ""
"``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys."
"platlibdir`): Third-party modules"
msgstr ""
"``/usr/lib/pythonX.Y/site-packages/`` (toujours utiliser ``lib``, et non :"
"data:`sys.platlibdir`) : modules tiers"
#: library/sys.rst:1232
msgid ""
"``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party "
"packages"
msgstr ""
"``/usr/lib64/pythonX.Y/site-packages/`` : Modules d'extension C de paquets "
"tiers"
#: library/sys.rst:1240
#, fuzzy
@ -2406,6 +2477,8 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.setprofile`` with no "
"arguments."
msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys.setprofile`` sans "
"arguments."
#: library/sys.rst:1394
msgid "The events have the following meaning:"
@ -2675,6 +2748,17 @@ msgid ""
"tracing function that simply returns ``None`` to disable itself immediately "
"on each frame)."
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
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 "
"arguments."
msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys.settrace`` sans arguments."
#: library/sys.rst:1449
msgid ""
@ -2728,18 +2813,24 @@ msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys."
"set_asyncgen_hooks_firstiter`` with no arguments."
msgstr ""
"Lève un :ref:`évènement d'audit <auditing>` ``sys."
"set_asyncgen_hooks_firstiter`` sans arguments."
#: library/sys.rst:1469
msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys."
"set_asyncgen_hooks_finalizer`` with no arguments."
msgstr ""
"Lève un :ref:`événement d'audit <auditing>` ``sys."
"set_asyncgen_hooks_finalizer`` sans arguments."
#: library/sys.rst:1471
msgid ""
"Two auditing events are raised because the underlying API consists of two "
"calls, each of which must raise its own event."
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
msgid ""
@ -2919,6 +3010,8 @@ msgstr ""
msgid ""
"Non-interactive ``stderr`` is now line-buffered instead of fully buffered."
msgstr ""
"Le ``stderr`` non interactif est maintenant mis en mémoire-tampon ligne par "
"ligne plutôt qu'entièrement."
#: library/sys.rst:1575
msgid ""
@ -3081,7 +3174,7 @@ msgstr ""
#: library/sys.rst:1665
msgid "Handle an unraisable exception."
msgstr ""
msgstr "Gère une exception *non levable* (**unraisable** en anglais)"
#: library/sys.rst:1667
msgid ""
@ -3089,6 +3182,9 @@ msgid ""
"handle it. For example, when a destructor raises an exception or during "
"garbage collection (:func:`gc.collect`)."
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
msgid "The *unraisable* argument has the following attributes:"
@ -3109,23 +3205,28 @@ msgstr ""
#: library/sys.rst:1676
msgid "*err_msg*: Error message, can be ``None``."
msgstr ""
msgstr "*err_msg* : Message d'erreur, peut être ``None``."
#: library/sys.rst:1677
msgid "*object*: Object causing the exception, can be ``None``."
msgstr ""
msgstr "*object* : Objet causant l'exception, peut être ``None``."
#: library/sys.rst:1679
msgid ""
"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``."
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
msgid ""
":func:`sys.unraisablehook` can be overridden to control how unraisable "
"exceptions are handled."
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
msgid ""
@ -3151,7 +3252,7 @@ msgstr ""
#: library/sys.rst:1694
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
msgid ""
@ -3166,6 +3267,10 @@ msgid ""
"``unraisable`` object is the same as what will be passed to the hook. If no "
"hook has been set, ``hook`` may be ``None``."
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
msgid ""

View File

@ -72,6 +72,10 @@ msgid ""
"`typing_extensions <https://pypi.org/project/typing-extensions/>`_ package "
"provides backports of these new features to older versions of Python."
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
msgid ""
@ -79,10 +83,15 @@ msgid ""
"reference for type system features, useful typing related tools and typing "
"best practices."
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
msgid "Relevant PEPs"
msgstr ""
msgstr "PEPs pertinentes"
#: library/typing.rst:49
msgid ""
@ -90,87 +99,102 @@ msgid ""
"number of PEPs have modified and enhanced Python's framework for type "
"annotations. These include:"
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
msgid ":pep:`526`: Syntax for Variable Annotations"
msgstr ""
msgstr ":pep:`526` : Syntaxe pour les Annotations de Variables"
#: library/typing.rst:54
msgid ""
"*Introducing* syntax for annotating variables outside of function "
"definitions, and :data:`ClassVar`"
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
msgid ":pep:`544`: Protocols: Structural subtyping (static duck typing)"
msgstr ""
":pep:`544`: Protocoles : Sous-typage Structurel (*duck-typing* statique)"
#: library/typing.rst:57
msgid ""
"*Introducing* :class:`Protocol` and the :func:"
"`@runtime_checkable<runtime_checkable>` decorator"
msgstr ""
"*Ajout* de :class:`Protocol` et du décorateur :func:"
"`@runtime_checkable<runtime_checkable>`"
#: library/typing.rst:60
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
msgid ""
"*Introducing* :class:`types.GenericAlias` and the ability to use standard "
"library classes as :ref:`generic types<types-genericalias>`"
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
msgid ":pep:`586`: Literal Types"
msgstr ""
msgstr ":pep:`586`: Types Littéraux"
#: library/typing.rst:63
msgid "*Introducing* :data:`Literal`"
msgstr ""
msgstr "*Ajout* de :data:`Literal`"
#: library/typing.rst:64
msgid ""
":pep:`589`: TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys"
msgstr ""
":pep:`589`: TypedDict: Annotations de Type pour les Dictionnaires ayant un "
"Ensemble Fixe de Clés"
#: library/typing.rst:65
msgid "*Introducing* :class:`TypedDict`"
msgstr ""
msgstr "*Ajout* de :class:`TypedDict`"
#: library/typing.rst:66
msgid ":pep:`591`: Adding a final qualifier to typing"
msgstr ""
msgstr ":pep:`591`: Ajout d'un qualificatif final au typage"
#: library/typing.rst:67
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
msgid ":pep:`593`: Flexible function and variable annotations"
msgstr ""
msgstr ":pep:`593`: fonction Flexible et annotations de variables"
#: library/typing.rst:69
msgid "*Introducing* :data:`Annotated`"
msgstr ""
msgstr "*Ajout* de :data:`Annotated`"
#: library/typing.rst:72
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
msgid ""
"*Introducing* :data:`types.UnionType` and the ability to use the binary-or "
"operator ``|`` to signify a :ref:`union of types<types-union>`"
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
msgid ":pep:`612`: Parameter Specification Variables"
msgstr ""
msgstr ":pep:`612`: Variables de Spécification de Paramètre"
#: library/typing.rst:75
msgid "*Introducing* :class:`ParamSpec` and :data:`Concatenate`"
msgstr ""
msgstr "*Ajout* de :class:`ParamSpec` et de :data:`Concatenate`"
#: library/typing.rst:76
#, fuzzy
@ -179,15 +203,15 @@ msgstr "Voir la :pep:`484` pour plus de détails."
#: library/typing.rst:77
msgid "*Introducing* :data:`TypeAlias`"
msgstr ""
msgstr "*Ajout* de :data:`TypeAlias`"
#: library/typing.rst:79
msgid ":pep:`647`: User-Defined Type Guards"
msgstr ""
msgstr ":pep:`647`: Gardes de Types Définies par l'Utilisateur"
#: library/typing.rst:79
msgid "*Introducing* :data:`TypeGuard`"
msgstr ""
msgstr "*Ajout* de :data:`TypeGuard`"
#: library/typing.rst:84
msgid "Type aliases"
@ -277,7 +301,7 @@ msgstr ""
#: library/typing.rst:159
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
#, fuzzy
@ -332,6 +356,9 @@ msgid ""
"runtime cost when calling ``NewType`` over a regular function. However, "
"this cost will be reduced in 3.11.0."
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
msgid "Callable"
@ -370,18 +397,29 @@ msgid ""
"``Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], "
"ReturnType]`` respectively."
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
msgid ""
"``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :"
"pep:`612` for more details."
msgstr ""
"``Callable`` prend désormais en charge :class:`ParamSpec` et :data:"
"`Concatenate`. Voir :pep:`612` pour plus de détails."
#: library/typing.rst:240
msgid ""
"The documentation for :class:`ParamSpec` and :class:`Concatenate` provides "
"examples of usage in ``Callable``."
msgstr ""
"La documentation pour :class:`ParamSpec` et :class:`Concatenate` fournit des "
"exemples d'utilisation dans ``Callable``."
#: library/typing.rst:246
msgid "Generics"
@ -1983,7 +2021,7 @@ msgstr "Classe de base abstraite pour les types génériques."
#: library/typing.rst:1752
msgid "Corresponding to collections in :mod:`collections.abc`"
msgstr ""
msgstr "Correspond aux collections au sein de :mod:`collections.abc`"
#: library/typing.rst:1756
msgid "A generic version of :class:`collections.abc.Set`."
@ -2164,7 +2202,7 @@ msgstr ""
#: library/typing.rst:1871
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
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
msgid "Asynchronous programming"
msgstr ""
msgstr "Programmation asynchrone"
#: library/typing.rst:1945
msgid ""
@ -2356,7 +2394,7 @@ msgstr ""
#: library/typing.rst:2030
msgid "Context manager types"
msgstr ""
msgstr "Types associés aux gestionnaires de contexte"
#: library/typing.rst:2034
msgid "A generic version of :class:`contextlib.AbstractContextManager`."
@ -2385,11 +2423,11 @@ msgstr ""
#: library/typing.rst:2055
msgid "Protocols"
msgstr ""
msgstr "Protocoles"
#: library/typing.rst:2057
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
msgid ""
@ -2551,7 +2589,7 @@ msgstr ""
#: library/typing.rst:2192
msgid "Introspection helpers"
msgstr ""
msgstr "Utilitaires d'introspection"
#: library/typing.rst:2196
msgid ""
@ -2584,6 +2622,9 @@ msgid ""
"unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for "
"more information). For example::"
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
msgid ""
@ -2591,10 +2632,14 @@ msgid ""
"aliases>` that include forward references. Enabling postponed evaluation of "
"annotations (:pep:`563`) may remove the need for most forward references."
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
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
msgid "Provide basic introspection for generic types and special typing forms."
@ -2620,7 +2665,7 @@ msgstr ""
#: library/typing.rst:2254
msgid "Check if a type is a :class:`TypedDict`."
msgstr ""
msgstr "Vérifier si un type est un :class:`TypedDict`."
#: library/typing.rst:2269
#, fuzzy
@ -2643,6 +2688,9 @@ msgid ""
"implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus "
"will not automatically resolve to ``list[SomeClass]``."
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
msgid "Constant"
@ -2678,6 +2726,11 @@ msgid ""
"in ``__annotations__``. This makes it unnecessary to use quotes around the "
"annotation (see :pep:`563`)."
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 ""
#~ "The latter example's signature is essentially the overloading of ``(str, "

View File

@ -16,25 +16,28 @@ msgstr ""
#: library/xml.etree.elementtree.rst:2
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
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
msgid ""
"The :mod:`xml.etree.ElementTree` module implements a simple and efficient "
"API for parsing and creating XML data."
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
msgid "This module will use a fast implementation whenever available."
msgstr ""
"Ce module utilise une implémentation rapide chaque fois que c'est possible."
#: library/xml.etree.elementtree.rst:19
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
#, fuzzy
@ -57,10 +60,13 @@ msgid ""
"short). The goal is to demonstrate some of the building blocks and basic "
"concepts of the module."
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
msgid "XML tree and elements"
msgstr ""
msgstr "Arborescence et éléments XML"
#: library/xml.etree.elementtree.rst:39
msgid ""
@ -72,24 +78,33 @@ msgid ""
"class:`ElementTree` level. Interactions with a single XML element and its "
"sub-elements are done on the :class:`Element` level."
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
msgid "Parsing XML"
msgstr ""
msgstr "Analyse XML"
#: library/xml.etree.elementtree.rst:52
msgid ""
"We'll be using the following XML document as the sample data for this "
"section:"
msgstr ""
"Nous utilisons le document XML suivant comme exemple pour cette section :"
#: library/xml.etree.elementtree.rst:80
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
msgid "Or directly from a string::"
msgstr ""
msgstr "Ou depuis une chaîne de caractères ::"
#: library/xml.etree.elementtree.rst:90
msgid ""
@ -98,19 +113,27 @@ msgid ""
"functions may create an :class:`ElementTree`. Check the documentation to be "
"sure."
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
msgid ""
"As an :class:`Element`, ``root`` has a tag and a dictionary of attributes::"
msgstr ""
"Comme :class:`Element`, ``root`` a une balise et un dictionnaire "
"d'attributs ::"
#: library/xml.etree.elementtree.rst:101
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
msgid "Children are nested, and we can access specific child nodes by index::"
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
msgid ""
@ -123,10 +146,19 @@ msgid ""
"passing a custom :class:`TreeBuilder` instance to the :class:`XMLParser` "
"constructor."
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
msgid "Pull API for non-blocking parsing"
msgstr ""
msgstr "API à flux tiré"
#: library/xml.etree.elementtree.rst:134
msgid ""
@ -166,7 +198,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:169
msgid "Finding interesting elements"
msgstr ""
msgstr "Trouver les éléments d'intérêt"
#: library/xml.etree.elementtree.rst:171
msgid ""
@ -174,6 +206,9 @@ msgid ""
"all the sub-tree below it (its children, their children, and so on). For "
"example, :meth:`Element.iter`::"
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
msgid ""
@ -182,6 +217,11 @@ msgid ""
"child with a particular tag, and :attr:`Element.text` accesses the element's "
"text content. :meth:`Element.get` accesses the element's attributes::"
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
msgid ""
@ -191,7 +231,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:202
msgid "Modifying an XML File"
msgstr ""
msgstr "Modification d'un fichier XML"
#: library/xml.etree.elementtree.rst:204
msgid ""
@ -215,7 +255,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:222 library/xml.etree.elementtree.rst:266
msgid "Our XML now looks like this:"
msgstr ""
msgstr "Maintenant, notre XML ressemble à ceci :"
#: library/xml.etree.elementtree.rst:250
msgid ""
@ -233,7 +273,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:288
msgid "Building XML documents"
msgstr ""
msgstr "Création de documents XML"
#: library/xml.etree.elementtree.rst:290
msgid ""
@ -243,7 +283,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:301
msgid "Parsing XML with Namespaces"
msgstr ""
msgstr "Analyse d'un XML avec des espaces de noms"
#: library/xml.etree.elementtree.rst:303
msgid ""
@ -276,11 +316,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:355
msgid "These two approaches both output::"
msgstr ""
msgstr "Ces deux approches donnent le même résultat ::"
#: library/xml.etree.elementtree.rst:369
msgid "XPath support"
msgstr ""
msgstr "Prise en charge de XPath"
#: library/xml.etree.elementtree.rst:371
msgid ""
@ -309,7 +349,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:410
msgid "Supported XPath syntax"
msgstr ""
msgstr "Prise en charge de la syntaxe XPath"
#: library/xml.etree.elementtree.rst:415
msgid "Syntax"
@ -332,6 +372,13 @@ msgid ""
"``spam`` in any (or no) namespace, and ``{}*`` only selects tags that are "
"not in a namespace."
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
msgid "Support for star-wildcards was added."
@ -488,6 +535,7 @@ msgstr "Fonctions"
#: library/xml.etree.elementtree.rst:502
msgid "`C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ transformation function."
msgstr ""
"`C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ fonction de transformation."
#: library/xml.etree.elementtree.rst:504
msgid ""
@ -514,11 +562,13 @@ msgstr "Usage typique ::"
#: library/xml.etree.elementtree.rst:528
msgid "The configuration *options* are as follows:"
msgstr ""
msgstr "Les *options* de configuration sont les suivantes :"
#: library/xml.etree.elementtree.rst:530
msgid "*with_comments*: set to true to include comments (default: false)"
msgstr ""
"*with_comments* : attribue à vrai pour inclure les commentaires (par "
"défaut : faux)"
#: library/xml.etree.elementtree.rst:531
msgid ""
@ -527,7 +577,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:532 library/xml.etree.elementtree.rst:534
msgid "(default: false)"
msgstr ""
msgstr "(par défaut : faux)"
#: library/xml.etree.elementtree.rst:533
msgid ""
@ -593,7 +643,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:569
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
msgid ""
@ -671,11 +721,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:641
msgid "The *parser* argument."
msgstr ""
msgstr "L'argument *parser*."
#: library/xml.etree.elementtree.rst:644 library/xml.etree.elementtree.rst:1473
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
msgid ""
@ -744,7 +794,7 @@ msgstr "Le paramètre *short_empty_elements*."
#: library/xml.etree.elementtree.rst:708 library/xml.etree.elementtree.rst:735
msgid "The *xml_declaration* and *default_namespace* parameters."
msgstr ""
msgstr "Les paramètres *xml_declaration* et *default_namespace*."
#: library/xml.etree.elementtree.rst:711
msgid ""
@ -791,7 +841,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:763
msgid "XInclude support"
msgstr ""
msgstr "Prise en charge de XInclude"
#: library/xml.etree.elementtree.rst:765
msgid ""
@ -888,6 +938,8 @@ msgid ""
"Element class. This class defines the Element interface, and provides a "
"reference implementation of this interface."
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
msgid ""
@ -944,6 +996,8 @@ msgstr ""
#: library/xml.etree.elementtree.rst:916
msgid "The following dictionary-like methods work on the element attributes."
msgstr ""
"Les méthodes dictionnaire-compatibles suivantes traitent les attributs de "
"l'élément."
#: library/xml.etree.elementtree.rst:921
msgid ""
@ -953,18 +1007,22 @@ msgstr ""
#: library/xml.etree.elementtree.rst:927
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
msgid ""
"Returns the attribute value, or *default* if the attribute was not found."
msgstr ""
"Renvoie la valeur de l'attribut ou *default* si l'attribut n'a pas été "
"trouvé."
#: library/xml.etree.elementtree.rst:934
msgid ""
"Returns the element attributes as a sequence of (name, value) pairs. The "
"attributes are returned in an arbitrary order."
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
msgid ""
@ -974,11 +1032,11 @@ msgstr ""
#: library/xml.etree.elementtree.rst:946
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
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
msgid ""
@ -1110,7 +1168,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1094
msgid "ElementTree Objects"
msgstr ""
msgstr "Objets ElementTree"
#: library/xml.etree.elementtree.rst:1099
msgid ""
@ -1134,7 +1192,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1116
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
msgid "Same as :meth:`Element.findall`, starting at the root of the tree."
@ -1146,7 +1204,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1131
msgid "Returns the root element for this tree."
msgstr ""
msgstr "Renvoie l'élément racine de l'arbre."
#: library/xml.etree.elementtree.rst:1136
msgid ""
@ -1210,7 +1268,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1220
msgid "QName Objects"
msgstr ""
msgstr "Objets QName"
#: library/xml.etree.elementtree.rst:1225
msgid ""
@ -1224,7 +1282,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1237
msgid "TreeBuilder Objects"
msgstr ""
msgstr "Objets TreeBuilder"
#: library/xml.etree.elementtree.rst:1243
msgid ""
@ -1262,12 +1320,16 @@ msgid ""
"Adds text to the current element. *data* is a string. This should be "
"either a bytestring, or a Unicode string."
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
msgid ""
"Closes the current element. *tag* is the element name. Returns the closed "
"element."
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
msgid ""
@ -1325,7 +1387,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1344
msgid "XMLParser Objects"
msgstr ""
msgstr "Objets XMLParser"
#: library/xml.etree.elementtree.rst:1349
msgid ""
@ -1368,7 +1430,7 @@ msgstr ""
#: library/xml.etree.elementtree.rst:1417
msgid "XMLPullParser Objects"
msgstr ""
msgstr "Objets XMLPullParser"
#: library/xml.etree.elementtree.rst:1421
msgid ""
@ -1461,6 +1523,8 @@ msgstr ""
msgid ""
"A tuple of *line*, *column* numbers, specifying where the error occurred."
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
msgid "Footnotes"
@ -1473,3 +1537,7 @@ msgid ""
"https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://"
"www.iana.org/assignments/character-sets/character-sets.xhtml."
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
msgid "Any non-string :term:`iterable` may be assigned to *__slots__*."
msgstr ""
"Tout :term:`itérable <iterable>`, sauf les chaînes de caractères, peuvent "
"être affectés à *__slots__*."
#: reference/datamodel.rst:1882
msgid ""
@ -3373,6 +3375,11 @@ msgid ""
"can be used to provide per-attribute docstrings that will be recognised by :"
"func:`inspect.getdoc` and displayed in the output of :func:`help`."
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
#, fuzzy
@ -3939,6 +3946,11 @@ msgid ""
"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`."
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
#, fuzzy
@ -3947,33 +3959,43 @@ msgstr ":pep:`343` — L'instruction ``with``"
#: reference/datamodel.rst:2208
msgid "Introducing Python's framework for type annotations"
msgstr ""
msgstr "Introduction à l'annotation de types en Python (document en anglais)"
#: reference/datamodel.rst:2211
msgid ":ref:`Generic Alias Types<types-genericalias>`"
msgstr ""
msgstr ":ref:`Types alias génériques <types-genericalias>`"
#: reference/datamodel.rst:2211
msgid "Documentation for objects representing parameterized generic classes"
msgstr ""
"Documentation pour les objets qui représentent des classes génériques "
"paramétrées"
#: reference/datamodel.rst:2214
msgid ""
":ref:`Generics`, :ref:`user-defined generics<user-defined-generics>` and :"
"class:`typing.Generic`"
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
msgid ""
"Documentation on how to implement generic classes that can be parameterized "
"at runtime and understood by static type-checkers."
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
msgid ""
"A class can *generally* only be parameterized if it defines the special "
"class method ``__class_getitem__()``."
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
msgid ""
@ -3989,10 +4011,13 @@ msgid ""
"method. As such, there is no need for it to be decorated with :func:"
"`@classmethod<classmethod>` when it is defined."
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
msgid "The purpose of *__class_getitem__*"
msgstr ""
msgstr "Intention de *__class_getitem__*"
#: reference/datamodel.rst:2233
msgid ""
@ -4000,6 +4025,10 @@ msgid ""
"parameterization of standard-library generic classes in order to more easily "
"apply :term:`type hints<type hint>` to these classes."
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
msgid ""
@ -4009,6 +4038,11 @@ msgid ""
"__class_getitem__`, or inherit from :class:`typing.Generic`, which has its "
"own implementation of ``__class_getitem__()``."
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
msgid ""
@ -4017,10 +4051,15 @@ msgid ""
"type-checkers such as mypy. Using ``__class_getitem__()`` on any class for "
"purposes other than type hinting is discouraged."
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
msgid "*__class_getitem__* versus *__getitem__*"
msgstr ""
msgstr "*__class_getitem__* contre *__getitem__*"
#: reference/datamodel.rst:2255
msgid ""
@ -4031,6 +4070,13 @@ msgid ""
"instead. ``__class_getitem__()`` should return a :ref:`GenericAlias<types-"
"genericalias>` object if it is properly defined."
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
msgid ""
@ -4038,6 +4084,9 @@ msgid ""
"follows something like the following process to decide whether :meth:"
"`~object.__getitem__` or :meth:`~object.__class_getitem__` should be called::"
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
msgid ""
@ -4048,6 +4097,12 @@ msgid ""
"``dict[str, float]`` and ``tuple[str, bytes]`` all result in :meth:`~object."
"__class_getitem__` being called::"
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
msgid ""
@ -4055,6 +4110,10 @@ msgid ""
"__getitem__`, subscribing the class may result in different behaviour. An "
"example of this can be found in the :mod:`enum` module::"
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
#, fuzzy
@ -4068,6 +4127,9 @@ msgid ""
"`subscription<subscriptions>` results in ``__class_getitem__()`` being "
"called instead of :meth:`~object.__getitem__`"
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
msgid "Emulating callable objects"
@ -4253,6 +4315,10 @@ msgid ""
"meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. "
"See :ref:`classgetitem-versus-getitem` for more details."
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
msgid ""
@ -4548,6 +4614,8 @@ msgid ""
"The built-in function :func:`int` falls back to :meth:`__trunc__` if "
"neither :meth:`__int__` nor :meth:`__index__` is defined."
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
msgid "With Statement Context Managers"

View File

@ -79,33 +79,35 @@ msgstr ""
#: reference/executionmodel.rst:59
msgid "The following constructs bind names:"
msgstr ""
msgstr "Les noms sont liés *via* les constructions suivantes :"
#: reference/executionmodel.rst:61
msgid "formal parameters to functions,"
msgstr ""
msgstr "paramètres formels de fonctions,"
#: reference/executionmodel.rst:62
msgid "class definitions,"
msgstr ""
msgstr "définitions de classes,"
#: reference/executionmodel.rst:63
msgid "function definitions,"
msgstr ""
msgstr "définitions de fonctions,"
#: reference/executionmodel.rst:64
msgid "assignment expressions,"
msgstr ""
msgstr "expressions d'affectation,"
#: reference/executionmodel.rst:65
msgid ""
":ref:`targets <assignment>` that are identifiers if occurring in an "
"assignment:"
msgstr ""
":ref:`cibles <assignment>` qui sont des identifiants, lorsque c'est une "
"affectation :"
#: reference/executionmodel.rst:68
msgid ":keyword:`for` loop header,"
msgstr ""
msgstr "de l'entête d'une boucle :keyword:`for`,"
#: reference/executionmodel.rst:69
msgid ""
@ -115,11 +117,11 @@ msgstr ""
#: reference/executionmodel.rst:71
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
msgid ":keyword:`import` statements."
msgstr ""
msgstr "des instructions :keyword:`import`."
#: reference/executionmodel.rst:75
msgid ""
@ -127,6 +129,10 @@ msgid ""
"names defined in the imported module, except those beginning with an "
"underscore. This form may only be used at the module level."
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
msgid ""

View File

@ -920,6 +920,8 @@ msgid ""
"In typical use, this is called with a single exception instance similar to "
"the way the :keyword:`raise` keyword is used."
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
msgid ""
@ -1047,6 +1049,16 @@ msgid ""
"the async generator by calling :meth:`~agen.aclose` method to finalize the "
"generator and ultimately detach it from the event loop."
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
msgid ""
@ -1277,12 +1289,18 @@ msgid ""
"term:`generic class <generic type>` will generally return a :ref:"
"`GenericAlias <types-genericalias>` object."
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
msgid ""
"When an object is subscripted, the interpreter will evaluate the primary and "
"the expression list."
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
msgid ""
@ -1293,6 +1311,13 @@ msgid ""
"one of these methods. For more details on when ``__class_getitem__`` is "
"called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`."
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
msgid ""
@ -1300,6 +1325,10 @@ msgid ""
"class:`tuple` containing the items of the expression list. Otherwise, the "
"expression list will evaluate to the value of the list's sole member."
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
#, fuzzy

View File

@ -650,6 +650,8 @@ msgid ""
"Use of :meth:`~importlib.abc.MetaPathFinder.find_module` by the import "
"system now raises :exc:`ImportWarning`."
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
msgid "Loading"
@ -904,7 +906,7 @@ msgstr ""
#: reference/import.rst:477
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
msgid "Submodules"
@ -1314,6 +1316,10 @@ msgid ""
"``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to "
"stop in Python 3.12."
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
msgid "Cached bytecode invalidation"

View File

@ -587,6 +587,12 @@ msgid ""
"statement, but this distinction is done at the parser level, not when "
"tokenizing."
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
msgid ""
@ -594,6 +600,9 @@ msgid ""
"preserving compatibility with existing code that uses ``match``, ``case`` "
"and ``_`` as identifier names."
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
msgid "Reserved classes of identifiers"
@ -615,11 +624,11 @@ msgstr "``_*``"
#: reference/lexical_analysis.rst:387
msgid "Not imported by ``from module import *``."
msgstr ""
msgstr "N'est pas importé par ``from module import *``."
#: reference/lexical_analysis.rst:408
msgid "``_``"
msgstr ""
msgstr "``_``"
#: reference/lexical_analysis.rst:390
msgid ""
@ -627,6 +636,9 @@ msgid ""
"`soft keyword <soft-keywords>` that denotes a :ref:`wildcard <wildcard-"
"patterns>`."
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
msgid ""
@ -634,12 +646,18 @@ msgid ""
"evaluation available in the variable ``_``. (It is stored in the :mod:"
"`builtins` module, alongside built-in functions like ``print``.)"
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
msgid ""
"Elsewhere, ``_`` is a regular identifier. It is often used to name "
"\"special\" items, but it is not special to Python itself."
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
msgid ""
@ -654,6 +672,8 @@ msgstr ""
#: reference/lexical_analysis.rst:408
msgid "It is also commonly used for unused variables."
msgstr ""
"Il est aussi communément utilisé pour signifier que la variable n'est pas "
"utilisée."
#: reference/lexical_analysis.rst:416
msgid "``__*__``"
@ -861,7 +881,7 @@ msgstr "barre oblique inversée et retour à la ligne ignorés"
#: reference/lexical_analysis.rst:555
msgid "\\(1)"
msgstr ""
msgstr "\\(1)"
#: reference/lexical_analysis.rst:557
msgid "``\\\\``"
@ -1007,7 +1027,7 @@ msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits"
#: reference/lexical_analysis.rst:594
msgid "\\(7)"
msgstr ""
msgstr "\\(7)"
#: reference/lexical_analysis.rst:598
msgid "Notes:"

View File

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

View File

@ -376,12 +376,18 @@ msgid ""
"will have the exception being handled attached to it and included in the "
"error message::"
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
msgid ""
"To indicate that an exception is a direct consequence of another, the :"
"keyword:`raise` statement allows an optional :keyword:`from<raise>` clause::"
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
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 "
"None`` idiom::"
msgstr ""
"Cela permet également de désactiver le chaînage automatique des exceptions à "
"l'aide de l'idiome ``from None`` ::"
#: tutorial/errors.rst:336
msgid ""

View File

@ -192,6 +192,9 @@ msgid ""
"expression, an equal sign, then the representation of the evaluated "
"expression:"
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
#, fuzzy

View File

@ -88,6 +88,9 @@ msgid ""
"https://www.python.org: The major Python web site. It contains code, "
"documentation, and pointers to Python-related pages around the web."
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
msgid "https://docs.python.org: Fast access to Python's documentation."

View File

@ -16,47 +16,57 @@ msgstr ""
#: using/configure.rst:3
msgid "Configure Python"
msgstr ""
msgstr "Configurer Python"
#: using/configure.rst:8
msgid "Configure Options"
msgstr ""
msgstr "Options de configuration"
#: using/configure.rst:10
msgid "List all ``./configure`` script options using::"
msgstr ""
"Il est possible d'obtenir toutes les options de ``./configure`` avec ::"
#: using/configure.rst:14
msgid ""
"See also the :file:`Misc/SpecialBuilds.txt` in the Python source "
"distribution."
msgstr ""
"Voir aussi le fichier :file:`Misc/SpecialBuilds.txt` dans la distribution "
"des sources Python."
#: using/configure.rst:17
msgid "General Options"
msgstr ""
msgstr "Options générales"
#: using/configure.rst:21
msgid ""
"Support loadable extensions in the :mod:`_sqlite` extension module (default "
"is no)."
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
msgid ""
"See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:"
"`sqlite3` module."
msgstr ""
"Voir la méthode :meth:`sqlite3.Connection.enable_load_extension` du module :"
"mod:`sqlite3`."
#: using/configure.rst:31
msgid ""
"Disable IPv6 support (enabled by default if supported), see the :mod:"
"`socket` module."
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
msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits."
msgstr ""
"Définit la taille en bits des chiffres Python :class:`int` : 15 ou 30 bits."
#: using/configure.rst:38
msgid ""
@ -66,21 +76,24 @@ msgstr ""
#: using/configure.rst:41
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
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
msgid ""
"Compile the Python ``main()`` function and link Python executable with C++ "
"compiler: ``$CXX``, or *COMPILER* if specified."
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
msgid "Set the Python executable suffix to *SUFFIX*."
msgstr ""
msgstr "Définit à *SUFFIX* le suffixe de l'exécutable Python."
#: using/configure.rst:55
msgid ""
@ -94,77 +107,93 @@ msgid ""
"the :ref:`Compile-time configuration <zoneinfo_data_compile_time_config>` of "
"the :mod:`zoneinfo` module."
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
msgid ""
"Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/"
"etc/zoneinfo``."
msgstr ""
"Par défaut : ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/"
"zoneinfo:/etc/zoneinfo``."
#: using/configure.rst:66
msgid "See :data:`os.pathsep` path separator."
msgstr ""
msgstr "Voir le séparateur de chemins :data:`os.pathsep`."
#: using/configure.rst:72
msgid ""
"Build the ``_decimal`` extension module using a thread-local context rather "
"than a coroutine-local context (default), see the :mod:`decimal` module."
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
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
msgid "Override order to check db backends for the :mod:`dbm` module"
msgstr ""
"Change l'ordre de détection des implémentations de base de données pour le "
"module :mod:`dbm`."
#: using/configure.rst:83
msgid ""
"A valid value is a colon (``:``) separated string with the backend names:"
msgstr ""
"Une valeur valide est une chaîne de noms d'implémentations séparés par des "
"deux-points (``:``)."
#: using/configure.rst:85
msgid "``ndbm``;"
msgstr ""
msgstr "``ndbm`` ;"
#: using/configure.rst:86
msgid "``gdbm``;"
msgstr ""
msgstr "``gdbm`` ;"
#: using/configure.rst:87
msgid "``bdb``."
msgstr ""
msgstr "``bdb``."
#: using/configure.rst:91
msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)."
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
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
msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`."
msgstr ""
msgstr "Voir :envvar:`PYTHONCOERCECLOCALE` et la :pep:`538`."
#: using/configure.rst:99
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
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
msgid "See :data:`sys.platlibdir`."
msgstr ""
msgstr "Voir :data:`sys.platlibdir`."
#: using/configure.rst:109
msgid ""
"Directory of wheel packages used by the :mod:`ensurepip` module (none by "
"default)."
msgstr ""
"Dossier de paquets *wheel* utilisé par le module :mod:`ensurepip` (par "
"défaut : aucun)."
#: using/configure.rst:112
msgid ""
@ -173,56 +202,75 @@ msgid ""
"share/python-wheels/`` directory and don't install the :mod:`ensurepip."
"_bundled` package."
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
msgid "Install Options"
msgstr ""
msgstr "Options d'installation"
#: using/configure.rst:125
msgid ""
"Don't build nor install test modules, like the :mod:`test` package or the :"
"mod:`_testcapi` extension module (built and installed by default)."
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
msgid "Select the :mod:`ensurepip` command run on Python installation:"
msgstr ""
"Sélectionne la commande :mod:`ensurepip` exécutée à l'installation de "
"Python :"
#: using/configure.rst:134
msgid ""
"``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` "
"command."
msgstr ""
"``upgrade`` (défaut) : exécute la commande ``python -m ensurepip --"
"altinstall --upgrade`` ;"
#: using/configure.rst:136
msgid "``install``: run ``python -m ensurepip --altinstall`` command;"
msgstr ""
"``install`` : exécute la commande ``python -m ensurepip --altinstall`` ;"
#: using/configure.rst:137
msgid "``no``: don't run ensurepip;"
msgstr ""
msgstr "``no`` : n'exécute pas *ensurepip*."
#: using/configure.rst:143
msgid "Performance options"
msgstr ""
msgstr "Options de performance"
#: using/configure.rst:145
msgid ""
"Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) "
"is recommended for best performance."
msgstr ""
"Pour de meilleures performances, il est recommandé de configurer Python avec "
"``--enable-optimizations --with-lto`` (*PGO* + *LTO*)."
#: using/configure.rst:150
msgid ""
"Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` "
"(disabled by default)."
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
msgid ""
"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."
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
msgid ""
@ -230,100 +278,120 @@ msgid ""
"GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker "
"flags."
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
msgid "Use ``-fno-semantic-interposition`` on GCC."
msgstr ""
msgstr "Utilisation de ``-fno-semantic-interposition`` avec GCC."
#: using/configure.rst:167
msgid ""
"Environment variable used in the Makefile: Python command line arguments for "
"the PGO generation task."
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
msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``."
msgstr ""
msgstr "Par défaut : ``-m test --pgo --timeout=$(TESTTIMEOUT)``."
#: using/configure.rst:176
msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)."
msgstr ""
"Active l'optimisation à l'édition des liens (*Link Time Optimization*, LTO) "
"à la compilation (désactivé par défaut)."
#: using/configure.rst:178
msgid ""
"The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well "
"as an LTO-aware linker (``ld.gold`` or ``lld``)."
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
msgid ""
"Enable computed gotos in evaluation loop (enabled by default on supported "
"compilers)."
msgstr ""
"Autorise les *gotos* calculés dans les boucles (activé par défaut pour les "
"compilateurs qui le gèrent)."
#: using/configure.rst:190
msgid ""
"Disable the specialized Python memory allocator :ref:`pymalloc <pymalloc>` "
"(enabled by default)."
msgstr ""
"Désactive l'allocateur spécialisé de mémoire de Python :ref:`pymalloc "
"<pymalloc>` (activé par défaut)."
#: using/configure.rst:193
msgid "See also :envvar:`PYTHONMALLOC` environment variable."
msgstr ""
msgstr "Voir aussi la variable d'environnement :envvar:`PYTHONMALLOC`."
#: using/configure.rst:197
msgid ""
"Disable static documentation strings to reduce the memory footprint (enabled "
"by default). Documentation strings defined in Python are not affected."
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
msgid "Don't define the ``WITH_DOC_STRINGS`` macro."
msgstr ""
msgstr "Ne définit pas la macro ``WITH_DOC_STRINGS``."
#: using/configure.rst:202
msgid "See the ``PyDoc_STRVAR()`` macro."
msgstr ""
msgstr "Voir la macro ``PyDoc_STRVAR()``."
#: using/configure.rst:206
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
msgid "Python Debug Build"
msgstr ""
msgstr "Compilation de Python en mode débogage"
#: using/configure.rst:214
msgid ""
"A debug build is Python built with the :option:`--with-pydebug` configure "
"option."
msgstr ""
"Une compilation de Python en mode débogage se fait avec l'option de "
"configuration :option:`--with-pydebug`."
#: using/configure.rst:217
msgid "Effects of a debug build:"
msgstr ""
msgstr "Effets du mode débogage :"
#: using/configure.rst:219
msgid ""
"Display all warnings by default: the list of default warning filters is "
"empty in the :mod:`warnings` module."
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
msgid "Add ``d`` to :data:`sys.abiflags`."
msgstr ""
msgstr "Ajout de ``d`` à :data:`sys.abiflags`."
#: using/configure.rst:222
msgid "Add :func:`sys.gettotalrefcount` function."
msgstr ""
msgstr "Ajout de la fonction :func:`sys.gettotalrefcount`."
#: using/configure.rst:223
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
msgid "Add :envvar:`PYTHONTHREADDEBUG` environment variable."
msgstr ""
msgstr "Ajout de la variable d'environnement :envvar:`PYTHONTHREADDEBUG`."
#: using/configure.rst:225
msgid ""
@ -336,10 +404,13 @@ msgid ""
"Install :ref:`debug hooks on memory allocators <default-memory-allocators>` "
"to detect buffer overflow and other memory errors."
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
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
msgid ""
@ -351,37 +422,48 @@ msgstr ""
#: using/configure.rst:235
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
msgid ""
"Unicode and int objects are created with their memory filled with a pattern "
"to detect usage of uninitialized objects."
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
msgid ""
"Ensure that functions which can clear or replace the current exception are "
"not called with an exception raised."
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
msgid ""
"The garbage collector (:func:`gc.collect` function) runs some basic checks "
"on objects consistency."
msgstr ""
"Le ramasse-miettes (la fonction :func:`gc.collect`) effectue quelques tests "
"basiques relatifs à la cohérence des objets."
#: using/configure.rst:242
msgid ""
"The :c:macro:`Py_SAFE_DOWNCAST()` macro checks for integer underflow and "
"overflow when downcasting from wide types to narrow types."
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
msgid ""
"See also the :ref:`Python Development Mode <devmode>` and the :option:`--"
"with-trace-refs` configure option."
msgstr ""
"Voir aussi le :ref:`mode de développement Python <devmode>` et l'option de "
"configuration :option:`--with-trace-refs`."
#: using/configure.rst:248
msgid ""

View File

@ -485,7 +485,8 @@ msgstr "La syntaxe générique du filtrage par motifs est ::"
# Lexique pour cette section:
# "pattern": "motif du filtre"
# "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
# "wildcard": "attrape-tout"
# "guard": "garde"
@ -1837,6 +1838,8 @@ msgid ""
"Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood "
"and Terry Jan Reedy in :issue:`45447`.)"
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
msgid ""

View File

@ -1632,7 +1632,7 @@ msgstr "(Contribution par Victor Stinner)"
#: whatsnew/3.2.rst:1539
msgid "shutil"
msgstr ""
msgstr "``shutils``"
#: whatsnew/3.2.rst:1541
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
msgid "sysconfig"
msgstr ""
msgstr "``sysconfig``"
#: whatsnew/3.2.rst:2046
msgid ""

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -977,6 +977,8 @@ msgid ""
"Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood "
"and Terry Jan Reedy in :issue:`45447`.)"
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
msgid "imaplib"
@ -998,7 +1000,8 @@ msgstr ""
"et :class:`~imaplib.IMAP4_stream` appliquent ce changement (contribution de "
"*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
msgid ""
":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` "