From 26941a0cb16f33de9a7e86797dfda98d16c44346 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 10 Dec 2022 17:43:45 +0000 Subject: [PATCH] Relecture et fuzzy de reference/datamodel.po (#9) Co-authored-by: Christophe Nanteuil Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/9 Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- library/typing.po | 15 +- reference/compound_stmts.po | 8 +- reference/datamodel.po | 811 +++++++++++++++++++--------------- reference/expressions.po | 42 +- reference/import.po | 32 +- reference/lexical_analysis.po | 6 +- reference/simple_stmts.po | 20 +- whatsnew/3.9.po | 14 +- 8 files changed, 510 insertions(+), 438 deletions(-) diff --git a/library/typing.po b/library/typing.po index 942f6f96..2679748e 100644 --- a/library/typing.po +++ b/library/typing.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.1\n" +"X-Generator: Poedit 2.4.3\n" #: library/typing.rst:3 msgid ":mod:`typing` --- Support for type hints" @@ -34,17 +34,14 @@ msgstr "" "tiers tels que les contrôleurs de type, les IDE, les analyseurs de code, etc." #: library/typing.rst:20 -#, fuzzy msgid "" "This module provides runtime support for type hints. The most fundamental " "support consists of the types :data:`Any`, :data:`Union`, :data:`Callable`, :" "class:`TypeVar`, and :class:`Generic`. For a full specification, please see :" "pep:`484`. For a simplified introduction to type hints, see :pep:`483`." msgstr "" -"Ce module fournit la gestion des annotations de type à l'exécution " -"conformément à ce qui est spécifié dans les :pep:`484`, :pep:`526`, :pep:" -"`544`, :pep:`586`, :pep:`589` et :pep:`591`. Le support le plus fondamental " -"se compose des types :data:`Any`, :data:`Union`, :data:`Tuple`, :data:" +"Ce module fournit la gestion des annotations de type à l'exécution. La prise " +"en compte de base comprend les types :data:`Any`, :data:`Union`, :data:" "`Callable`, :class:`TypeVar` et :class:`Generic`. Pour les spécifications " "complètes, voir la :pep:`484`. Pour une introduction simplifiée aux " "annotations de type, voir la :pep:`483`." @@ -1716,9 +1713,9 @@ msgstr "Marquez une classe de protocole comme protocole d'exécution." msgid "" "Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " "This raises :exc:`TypeError` when applied to a non-protocol class. This " -"allows a simple-minded structural check, very similar to \"one trick " -"ponies\" in :mod:`collections.abc` such as :class:`~collections.abc." -"Iterable`. For example::" +"allows a simple-minded structural check, very similar to \"one trick ponies" +"\" in :mod:`collections.abc` such as :class:`~collections.abc.Iterable`. " +"For example::" msgstr "" "Un tel protocole peut être utilisé avec :func:`isinstance` et :func:" "`issubclass`. Cela lève :exc:`TypeError` lorsqu'il est appliqué à une classe " diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index 8c090c9f..9e5e942e 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-18 15:46+0200\n" -"PO-Revision-Date: 2022-11-20 22:20+0100\n" +"PO-Revision-Date: 2022-12-04 14:57+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.2.1\n" #: reference/compound_stmts.rst:5 msgid "Compound statements" @@ -1791,8 +1791,8 @@ msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" msgstr "" -"Une définition de fonction définit un objet fonction allogène (voir la " -"section :ref:`types`) :" +"Une définition de fonction définit un objet fonction défini par " +"l'utilisateur (voir la section :ref:`types`) :" #: reference/compound_stmts.rst:1183 msgid "" diff --git a/reference/datamodel.po b/reference/datamodel.po index 2f5e871f..4c09840f 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-22 23:13+0200\n" -"PO-Revision-Date: 2021-10-21 23:42+0200\n" +"PO-Revision-Date: 2022-11-20 21:56+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 2.4.2\n" #: reference/datamodel.rst:6 msgid "Data model" @@ -254,7 +254,7 @@ msgstr "" "Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " "cette valeur. Vous accédez à cet objet avec le nom natif ``None``. Il est " "utilisé pour signifier l'absence de valeur dans de nombreux cas, par exemple " -"pour des fonctions qui ne retournent rien explicitement. Sa valeur booléenne " +"pour des fonctions qui ne renvoient rien explicitement. Sa valeur booléenne " "est fausse." #: reference/datamodel.rst:170 @@ -329,15 +329,14 @@ msgstr "" "numériques par les ordinateurs." #: reference/datamodel.rst:190 -#, fuzzy msgid "" "The string representations of the numeric classes, computed by :meth:" "`~object.__repr__` and :meth:`~object.__str__`, have the following " "properties:" msgstr "" "Les représentations sous forme de chaînes de caractères des objets " -"numériques, produites par :meth:`__repr__` et :meth:`__str__`, ont les " -"propriétés suivantes :" +"numériques, produites par :meth:`~object.__repr__` et :meth:`~object." +"__str__`, ont les propriétés suivantes :" #: reference/datamodel.rst:194 msgid "" @@ -426,8 +425,8 @@ msgid "" "representing the values ``False`` and ``True`` are the only Boolean objects. " "The Boolean type is a subtype of the integer type, and Boolean values behave " "like the values 0 and 1, respectively, in almost all contexts, the exception " -"being that when converted to a string, the strings ``\"False\"`` or " -"``\"True\"`` are returned, respectively." +"being that when converted to a string, the strings ``\"False\"`` or ``\"True" +"\"`` are returned, respectively." msgstr "" "Ils représentent les valeurs *faux* et *vrai*. Deux objets, ``False`` et " "``True``, sont les seuls objets booléens. Le type booléen est un sous-type " @@ -502,7 +501,7 @@ msgstr "" "Ils représentent des ensembles de taille finie indicés par des entiers " "positifs ou nuls. La fonction native :func:`len` renvoie le nombre " "d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " -"l'ensemble des indices contient les entiers 0, 1 …, *n-1*. On accède à " +"l'ensemble des indices contient les entiers 0, 1, …, *n-1*. On accède à " "l'élément d'indice *i* de la séquence *a* par ``a[i]``." #: reference/datamodel.rst:283 @@ -636,7 +635,7 @@ msgid "" msgstr "" "Les séquences muables peuvent être modifiées après leur création. Les " "notations de tranches et de sous-ensembles peuvent être utilisées en tant " -"que cibles d'une assignation ou de l'instruction :keyword:`del` " +"que cibles d'une affectation ou de l'instruction :keyword:`del` " "(suppression)." #: reference/datamodel.rst:363 @@ -764,8 +763,8 @@ msgid "" msgstr "" "Ils représentent les ensembles finis d'objets indicés par des ensembles " "index arbitraires. La notation ``a[k]`` sélectionne l'élément indicé par " -"``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " -"des expressions, comme cible d'une assignation ou avec l'instruction :" +"``k`` dans le tableau de correspondances ``a`` ; elle peut être utilisée " +"dans des expressions, comme cible d'une affectation ou avec l'instruction :" "keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " "du tableau de correspondances." @@ -830,13 +829,14 @@ msgstr "" "d'autres exemples de types tableaux de correspondances, de même que le " "module :mod:`collections`." +# suit un : #: reference/datamodel.rst:461 msgid "" "Dictionaries did not preserve insertion order in versions of Python before " "3.6. In CPython 3.6, insertion order was preserved, but it was considered an " "implementation detail at that time rather than a language guarantee." msgstr "" -"Les dictionnaires ne conservaient pas l’ordre d’insertion dans les versions " +"les dictionnaires ne conservaient pas l’ordre d’insertion dans les versions " "antérieures à Python 3.6. Dans CPython 3.6, l’ordre d’insertion était déjà " "conservé, mais considéré comme un détail d’implémentation et non comme une " "garantie du langage." @@ -855,7 +855,7 @@ msgstr "" #: reference/datamodel.rst:579 msgid "User-defined functions" -msgstr "Fonctions allogènes" +msgstr "Fonctions définies par l'utilisateur" #: reference/datamodel.rst:482 msgid "" @@ -863,11 +863,11 @@ msgid "" "section :ref:`function`). It should be called with an argument list " "containing the same number of items as the function's formal parameter list." msgstr "" -"Un objet fonction allogène (ou fonction définie par l'utilisateur, mais ce " -"n'est pas forcément l'utilisateur courant qui a défini cette fonction) est " -"créé par la définition d'une fonction (voir la section :ref:`function`). Il " -"doit être appelé avec une liste d'arguments contenant le même nombre " -"d'éléments que la liste des paramètres formels de la fonction." +"Un objet fonction définie par l'utilisateur (mais ce n'est pas forcément " +"l'utilisateur courant qui a défini cette fonction) est créé par la " +"définition d'une fonction (voir la section :ref:`function`). Il doit être " +"appelé avec une liste d'arguments contenant le même nombre d'éléments que la " +"liste des paramètres formels de la fonction." #: reference/datamodel.rst:841 msgid "Special attributes:" @@ -936,8 +936,8 @@ msgid "" "A tuple containing default argument values for those arguments that have " "defaults, or ``None`` if no arguments have a default value." msgstr "" -"Tuple contenant les valeurs des arguments par défaut pour ceux qui en sont " -"dotés ou ``None`` si aucun argument n'a de valeur par défaut." +"*N*-uplet contenant les valeurs des arguments par défaut pour ceux qui en " +"sont dotés ou ``None`` si aucun argument n'a de valeur par défaut." #: reference/datamodel.rst:530 msgid ":attr:`__code__`" @@ -1018,7 +1018,7 @@ msgid "" "value." msgstr "" "La plupart des attributs étiquetés « Accessible en écriture » vérifient le " -"type de la valeur qu'on leur assigne." +"type de la valeur qu'on leur affecte." #: reference/datamodel.rst:567 msgid "" @@ -1029,7 +1029,7 @@ msgid "" "functions. Function attributes on built-in functions may be supported in the " "future.*" msgstr "" -"Les objets fonctions acceptent également l'assignation et la lecture " +"Les objets fonctions acceptent également l'affectation et la lecture " "d'attributs arbitraires. Vous pouvez utiliser cette fonctionnalité pour, par " "exemple, associer des métadonnées aux fonctions. La notation classique par " "point est utilisée pour définir et lire de tels attributs. *Notez que " @@ -1168,7 +1168,7 @@ msgid "" msgstr "" "Notez que la transformation d'objet fonction en objet méthode d'instance se " "produit à chaque fois que l'attribut est récupéré à partir de l'instance. " -"Dans certains cas, assigner l'attribut à une variable locale et appeler " +"Dans certains cas, affecter l'attribut à une variable locale et appeler " "cette variable locale constitue une bonne optimisation. Notez aussi que " "cette transformation n'a lieu que pour les fonctions définies par " "l'utilisateur : les autres objets appelables (et les objets non appelables) " @@ -1182,7 +1182,6 @@ msgid "Generator functions" msgstr "Fonctions génératrices (ou générateurs)" #: reference/datamodel.rst:649 -#, fuzzy msgid "" "A function or method which uses the :keyword:`yield` statement (see section :" "ref:`yield`) is called a :dfn:`generator function`. Such a function, when " @@ -1196,13 +1195,13 @@ msgid "" msgstr "" "Une fonction ou une méthode qui utilise l'instruction :keyword:`yield` (voir " "la section :ref:`yield`) est appelée :dfn:`fonction génératrice`. Une telle " -"fonction, lorsqu'elle est appelée, renvoie toujours un objet itérateur qui " -"peut être utilisé pour exécuter le corps de la fonction : appeler la " -"méthode :meth:`iterator.__next__` de l'itérateur exécute la fonction jusqu'à " -"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`!yield`. " -"Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " -"exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " -"l'ensemble de valeurs qu'il peut renvoyer." +"fonction, lorsqu'elle est appelée, renvoie toujours un objet :term:" +"`itérateur ` qui peut être utilisé pour exécuter le corps de la " +"fonction : appeler la méthode :meth:`iterator.__next__` de l'itérateur " +"exécute la fonction jusqu'à ce qu'elle renvoie une valeur à l'aide de " +"l'instruction :keyword:`!yield`. Quand la fonction exécute l'instruction :" +"keyword:`return` ou se termine, une exception :exc:`StopIteration` est levée " +"et l'itérateur a atteint la fin de l'ensemble de valeurs qu'il peut renvoyer." #: reference/datamodel.rst:667 msgid "Coroutine functions" @@ -1227,7 +1226,6 @@ msgid "Asynchronous generator functions" msgstr "Fonctions génératrices (ou générateurs) asynchrones" #: reference/datamodel.rst:674 -#, fuzzy msgid "" "A function or method which is defined using :keyword:`async def` and which " "uses the :keyword:`yield` statement is called a :dfn:`asynchronous generator " @@ -1237,12 +1235,12 @@ msgid "" msgstr "" "Une fonction ou une méthode définie avec :keyword:`async def` et qui utilise " "l'instruction :keyword:`yield` est appelée :dfn:`fonction génératrice " -"asynchrone`. Une telle fonction, quand elle est appelée, renvoie un objet " -"itérateur asynchrone qui peut être utilisé dans des instructions :keyword:" -"`async for` pour exécuter le corps de la fonction." +"asynchrone`. Une telle fonction, quand elle est appelée, renvoie un objet :" +"term:`itérateur asynchrone ` qui peut être utilisé " +"dans des instructions :keyword:`async for` pour exécuter le corps de la " +"fonction." #: reference/datamodel.rst:680 -#, fuzzy msgid "" "Calling the asynchronous iterator's :meth:`aiterator.__anext__ ` method will return an :term:`awaitable` which when awaited will " @@ -1252,13 +1250,13 @@ msgid "" "asynchronous iterator will have reached the end of the set of values to be " "yielded." msgstr "" -"Appeler la méthode :meth:`aiterator.__anext__` de l'itérateur asynchrone " -"renvoie un :term:`awaitable` qui, lorsqu'on l'attend, s'exécute jusqu'à ce " -"qu'il fournisse une valeur à l'aide de l'expression :keyword:`yield`. Quand " -"la fonction exécute une instruction :keyword:`return` (sans valeur) ou " -"arrive à la fin, une exception :exc:`StopAsynciteration` est levée et " -"l'itérateur asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut " -"produire." +"Appeler la méthode :meth:`aiterator.__anext__ ` de " +"l'itérateur asynchrone renvoie un :term:`awaitable` qui, lorsqu'on l'attend, " +"s'exécute jusqu'à ce qu'il fournisse une valeur à l'aide de l'expression :" +"keyword:`yield`. Quand la fonction exécute une instruction :keyword:`return` " +"(sans valeur) ou arrive à la fin, une exception :exc:`StopAsyncIteration` " +"est levée et l'itérateur asynchrone a atteint la fin de l'ensemble des " +"valeurs qu'il peut produire." #: reference/datamodel.rst:702 msgid "Built-in functions" @@ -1308,7 +1306,6 @@ msgid "Classes" msgstr "Classes" #: reference/datamodel.rst:717 -#, fuzzy msgid "" "Classes are callable. These objects normally act as factories for new " "instances of themselves, but variations are possible for class types that " @@ -1318,22 +1315,21 @@ msgid "" msgstr "" "Les classes sont des appelables. Ces objets sont normalement utilisés pour " "créer des instances d'elles-mêmes mais des variations sont possibles pour " -"les types de classes qui surchargent :meth:`__new__`. Les arguments de " -"l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" -"`__new__` initialise une nouvelle instance." +"les types de classes qui surchargent :meth:`~object.__new__`. Les arguments " +"de l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" +"`~object.__init__` initialise une nouvelle instance." #: reference/datamodel.rst:726 msgid "Class Instances" msgstr "Instances de classe" #: reference/datamodel.rst:724 -#, fuzzy msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`~object.__call__` method in their class." msgstr "" "Les instances d'une classe peuvent devenir des appelables si vous définissez " -"la méthode :meth:`__call__` de leur classe." +"la méthode :meth:`~object.__call__` de leur classe." #: reference/datamodel.rst:789 msgid "Modules" @@ -1359,17 +1355,17 @@ msgstr "" "possède un espace de nommage implémenté par un objet dictionnaire (c'est le " "dictionnaire référencé par l'attribut ``__globals__`` des fonctions définies " "dans le module). Les références à un attribut sont traduites en recherches " -"dans ce dictionnaire, par exemple ``m.x`` est équivalent à ``m." -"__dict__[\"x\"]``. Un objet module ne contient pas l'objet code utilisé pour " -"initialiser le module (puisque celui-ci n'est plus nécessaire une fois " -"l'initialisation terminée)." +"dans ce dictionnaire, par exemple ``m.x`` est équivalent à ``m.__dict__[\"x" +"\"]``. Un objet module ne contient pas l'objet code utilisé pour initialiser " +"le module (puisque celui-ci n'est plus nécessaire une fois l'initialisation " +"terminée)." #: reference/datamodel.rst:745 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" -"L'assignation d'un attribut met à jour le dictionnaire d'espace de nommage " +"L'affectation d'un attribut met à jour le dictionnaire d'espace de nommage " "du module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = " "1``." @@ -1470,11 +1466,11 @@ msgstr "" "d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " "les classes de base. Les classes de base sont trouvées en utilisant l'ordre " "de résolution des méthodes (*method resolution order* en anglais, ou MRO) " -"*C3* qui a un comportement cohérent même en présence d'héritages en " -"\"diamant\", où différentes branches d'héritages conduisent vers un ancêtre " -"commun. Vous trouverez plus de détails sur l'ordre de résolution des " -"méthodes MRO *C3* utilisé par Python dans la documentation de la version 2.3 " -"disponible sur https://www.python.org/download/releases/2.3/mro/." +"*C3* qui a un comportement cohérent même en présence d'héritages en \"diamant" +"\", où différentes branches d'héritages conduisent vers un ancêtre commun. " +"Vous trouverez plus de détails sur l'ordre de résolution des méthodes MRO " +"*C3* utilisé par Python dans la documentation de la version 2.3 disponible " +"sur https://www.python.org/download/releases/2.3/mro/." #: reference/datamodel.rst:816 msgid "" @@ -1499,7 +1495,7 @@ msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." msgstr "" -"Les assignations d'un attribut de classe mettent à jour le dictionnaire de " +"Les affectations d'un attribut de classe mettent à jour le dictionnaire de " "la classe, jamais le dictionnaire d'une classe de base." #: reference/datamodel.rst:831 @@ -1535,7 +1531,7 @@ msgid "" "A tuple containing the base classes, in the order of their occurrence in the " "base class list." msgstr "" -"*n*-uplet des classes mères, dans le même ordre que dans la définition de la " +"*N*-uplet des classes mères, dans le même ordre que dans la définition de la " "classe." #: reference/datamodel.rst:857 @@ -1559,7 +1555,6 @@ msgid "Class instances" msgstr "Instances de classe" #: reference/datamodel.rst:873 -#, fuzzy msgid "" "A class instance is created by calling a class object (see above). A class " "instance has a namespace implemented as a dictionary which is the first " @@ -1589,21 +1584,20 @@ msgstr "" "récupérer les attributs d'une classe, où la récupération *via* ses instances " "peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " "de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " -"l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " -"pour rechercher une correspondance." +"l'objet possède une méthode :meth:`~object.__getattr__`, cette méthode est " +"appelée pour rechercher une correspondance." #: reference/datamodel.rst:889 -#, fuzzy msgid "" "Attribute assignments and deletions update the instance's dictionary, never " "a class's dictionary. If the class has a :meth:`~object.__setattr__` or :" "meth:`~object.__delattr__` method, this is called instead of updating the " "instance dictionary directly." msgstr "" -"Les assignations et suppressions d'attributs mettent à jour le dictionnaire " +"Les affectations et suppressions d'attributs mettent à jour le dictionnaire " "de l'instance, jamais le dictionnaire de la classe. Si la classe possède une " -"méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " -"de mettre à jour le dictionnaire de l'instance directement." +"méthode :meth:`~object.__setattr__` ou :meth:`~object.__delattr__`, elle est " +"appelée au lieu de mettre à jour le dictionnaire de l'instance directement." #: reference/datamodel.rst:899 msgid "" @@ -1611,7 +1605,7 @@ msgid "" "have methods with certain special names. See section :ref:`specialnames`." msgstr "" "Les instances de classes peuvent prétendre être des nombres, des séquences " -"ou des tableaux de correspondance si elles ont des méthodes avec des noms " +"ou des tableaux de correspondances si elles ont des méthodes avec des noms " "spéciaux. Voir la section :ref:`specialnames`." #: reference/datamodel.rst:906 @@ -1624,7 +1618,7 @@ msgstr "" #: reference/datamodel.rst:933 msgid "I/O objects (also known as file objects)" -msgstr "Objets Entrées-Sorties (ou objets fichiers)" +msgstr "Objets entrées-sorties (ou objets fichiers)" #: reference/datamodel.rst:923 msgid "" @@ -1683,17 +1677,17 @@ msgid "" "no references (directly or indirectly) to mutable objects." msgstr "" "Un objet code représente le code Python sous sa forme compilée en :term:" -"`bytecode`. La différence entre un objet code et un objet fonction est que " -"l'objet fonction contient une référence explicite vers les globales de la " -"fonction (le module dans lequel elle est définie) alors qu'un objet code ne " -"contient aucun contexte ; par ailleurs, les valeurs par défaut des arguments " -"sont stockées dans l'objet fonction, pas dans l'objet code (parce que ce " -"sont des valeurs calculées au moment de l'exécution). Contrairement aux " -"objets fonctions, les objets codes sont immuables et ne contiennent aucune " -"référence (directe ou indirecte) à des objets muables." +"`code intermédiaire `. La différence entre un objet code et un " +"objet fonction est que l'objet fonction contient une référence explicite " +"vers les globales de la fonction (le module dans lequel elle est définie) " +"alors qu'un objet code ne contient aucun contexte ; par ailleurs, les " +"valeurs par défaut des arguments sont stockées dans l'objet fonction, pas " +"dans l'objet code (parce que ce sont des valeurs calculées au moment de " +"l'exécution). Contrairement aux objets fonctions, les objets codes sont " +"immuables et ne contiennent aucune référence (directe ou indirecte) à des " +"objets muables." #: reference/datamodel.rst:975 -#, fuzzy msgid "" "Special read-only attributes: :attr:`co_name` gives the function name; :attr:" "`co_qualname` gives the fully qualified function name; :attr:`co_argcount` " @@ -1718,6 +1712,7 @@ msgid "" "encoding a number of flags for the interpreter." msgstr "" "Attributs spéciaux en lecture seule : :attr:`co_name` donne le nom de la " +"fonction ; :attr:`co_qualname` donne le nom complètement qualifié de la " "fonction ; :attr:`co_argcount` est le nombre total d'arguments positionnels " "(y compris les arguments uniquement positionnels et les arguments avec des " "valeurs par défaut) ; :attr:`co_posonlyargcount` est le nombre d'arguments " @@ -1789,6 +1784,8 @@ msgid "" "Returns an iterable over the source code positions of each bytecode " "instruction in the code object." msgstr "" +"Renvoie un itérable qui parcourt les positions du code source pour chaque " +"instruction de code intermédiaire dans l'objet *codeobject*." #: reference/datamodel.rst:1024 msgid "" @@ -1797,37 +1794,52 @@ msgid "" "the source code that compiled to the *i-th* instruction. Column information " "is 0-indexed utf-8 byte offsets on the given source line." msgstr "" +"L'itérateur renvoie un *n*-uplet contenant ``(ligne_début, ligne_fin, " +"colonne_début, colonne_fin)``. Le i\\ :sup:`ème` *n*-uplet correspond à la " +"position dans le code source qui compile la i\\ :sup:`ème` instruction. " +"L'information de colonne est l'indice (en partant de zéro) de l'octet utf-8 " +"dans la ligne source donnée." #: reference/datamodel.rst:1030 msgid "" "This positional information can be missing. A non-exhaustive lists of cases " "where this may happen:" msgstr "" +"L'information sur la position peut être manquante. Ce peut être le cas si " +"(liste non exhaustive) :" #: reference/datamodel.rst:1033 msgid "Running the interpreter with :option:`-X` ``no_debug_ranges``." msgstr "" +"l'interpréteur est lancé avec l'option :option:`-X` ``no_debug_ranges`` ;" #: reference/datamodel.rst:1034 msgid "" "Loading a pyc file compiled while using :option:`-X` ``no_debug_ranges``." msgstr "" +"le fichier *.pyc* est le produit d'une compilation avec l'option :option:`-" +"X` ``no_debug_ranges`` ;" #: reference/datamodel.rst:1035 msgid "Position tuples corresponding to artificial instructions." -msgstr "" +msgstr "le *n*-uplet de position correspond à des instructions artificielles ;" #: reference/datamodel.rst:1036 msgid "" "Line and column numbers that can't be represented due to implementation " "specific limitations." msgstr "" +"les lignes et colonnes ne peuvent pas être représentées en tant que nombre, " +"en raison de limitations dues à l'implémentation ;" #: reference/datamodel.rst:1039 msgid "" "When this occurs, some or all of the tuple elements can be :const:`None`." msgstr "" +"Dans ce cas, certains ou tous les éléments du *n*-uplet peuvent valoir :" +"const:`None`." +# suite un : #: reference/datamodel.rst:1045 msgid "" "This feature requires storing column positions in code objects which may " @@ -1837,6 +1849,13 @@ msgid "" "``no_debug_ranges`` command line flag or the :envvar:`PYTHONNODEBUGRANGES` " "environment variable can be used." msgstr "" +"cette fonctionnalité nécessite de stocker les positions de colonne dans les " +"objets code, ce qui peut conduire à une légère augmentation de l'utilisation " +"du disque par les fichiers Python compilés ou de l'utilisation de la " +"mémoire. Pour éviter de stocker cette information supplémentaire ou pour " +"désactiver l'affichage supplémentaire dans la pile d'appels, vous pouvez " +"activer l'option de ligne de commande :option:`-X` ``no_debug_ranges`` ou la " +"variable d'environnement :envvar:`PYTHONNODEBUGRANGES`." #: reference/datamodel.rst:1112 msgid "Frame objects" @@ -1867,8 +1886,8 @@ msgstr "" "`f_locals` est le dictionnaire dans lequel sont cherchées les variables " "locales ; :attr:`f_globals` est utilisé pour les variables globales ; :attr:" "`f_builtins` est utilisé pour les noms natifs ; :attr:`f_lasti` donne " -"l'instruction précise (c'est un indice dans la chaîne de *bytecode* de " -"l'objet code)." +"l'instruction précise (c'est un indice dans la chaîne de code intermédiaire " +"de l'objet code)." #: reference/datamodel.rst:1076 msgid "" @@ -1886,7 +1905,7 @@ msgid "" "can be disabled by setting :attr:`f_trace_lines` to :const:`False`." msgstr "" "Attributs spéciaux en lecture-écriture : :attr:`f_trace`, s'il n'est pas " -"``None``, c'est une fonction appelée à différentes occasions durant " +"``None``, est une fonction appelée à différentes occasions durant " "l'exécution du code (elle est utilisée par le débogueur). Normalement, un " "événement est déclenché pour chaque ligne de code source — ce comportement " "peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." @@ -1901,8 +1920,8 @@ msgstr "" "Une implémentation *peut* autoriser le déclenchement des événements *opcode* " "par *opcode* en définissant :attr:`f_trace_opcodes` à :const:`True`. Notez " "que cela peut conduire à un comportement erratique de l'interpréteur si des " -"exceptions levées la fonction de traçage s'échappent vers la fonction en " -"train d'être tracée." +"exceptions levées par la fonction de traçage sont interceptées par la " +"fonction en train d'être tracée." #: reference/datamodel.rst:1095 msgid "" @@ -1940,7 +1959,7 @@ msgstr ":exc:`RuntimeError` est levée si le cadre est en cours d'exécution." #: reference/datamodel.rst:1175 msgid "Traceback objects" -msgstr "Objets traces" +msgstr "Objets traces d'appels" #: reference/datamodel.rst:1127 msgid "" @@ -2006,7 +2025,7 @@ msgstr "" "Le numéro de ligne et la dernière instruction dans la trace peuvent différer " "du numéro de ligne de l'objet cadre si l'exception a eu lieu dans une " "instruction :keyword:`try` sans qu'il n'y ait de clause :keyword:`!except` " -"adéquate ou sans clause *finally*." +"adéquate ou sans clause :keyword:`!finally`." #: reference/datamodel.rst:1163 msgid "" @@ -2022,16 +2041,17 @@ msgid "" "trace (towards the frame where the exception occurred), or ``None`` if there " "is no next level." msgstr "" -"Attributs spéciaux en lecture-écriture :attr:`tb_next` est le niveau suivant " -"dans la pile d'exécution (en direction du cadre où l'exception a eu lieu) ou " -"``None`` s'il n'y a pas de niveau suivant." +"Attributs spéciaux en lecture-écriture : :attr:`tb_next` est le niveau " +"suivant dans la pile d'exécution (en direction du cadre où l'exception a eu " +"lieu) ou ``None`` s'il n'y a pas de niveau suivant." +# suit un : #: reference/datamodel.rst:1173 msgid "" "Traceback objects can now be explicitly instantiated from Python code, and " "the ``tb_next`` attribute of existing instances can be updated." msgstr "" -"Les objets de traces d'appels peuvent maintenant être explicitement " +"les objets de traces d'appels peuvent maintenant être explicitement " "instanciés depuis le code Python et l'attribut ``tb_next`` des instances " "existantes peut être mis à jour." @@ -2040,14 +2060,13 @@ msgid "Slice objects" msgstr "Objets tranches" #: reference/datamodel.rst:1180 -#, fuzzy msgid "" "Slice objects are used to represent slices for :meth:`~object.__getitem__` " "methods. They are also created by the built-in :func:`slice` function." msgstr "" "Un objet tranche est utilisé pour représenter des découpes des méthodes :" -"meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" -"`slice`." +"meth:`~object.__getitem__`. Ils sont aussi créés par la fonction native :" +"func:`slice`." #: reference/datamodel.rst:1189 msgid "" @@ -2074,7 +2093,7 @@ msgid "" "a manner consistent with regular slices." msgstr "" "Cette méthode prend un argument entier *length* et calcule les informations " -"de la tranche que l'objet découpe décrit s'il est appliqué à une séquence de " +"de la tranche que l'objet *slice* décrit s'il est appliqué à une séquence de " "*length* éléments. Elle renvoie un triplet d'entiers ; respectivement, ce " "sont les indices de *début* et *fin* ainsi que le *pas* de découpe. Les " "indices manquants ou en dehors sont gérés de manière cohérente avec les " @@ -2100,7 +2119,7 @@ msgstr "" "l'utilisateur. Quand un objet méthode statique est récupéré depuis une " "classe ou une instance de classe, l'objet réellement renvoyé est un objet " "encapsulé, qui n'a pas vocation à être transformé encore une fois. Les " -"objets méthodes statiques sont également appelables. Les objets méthodes " +"objets méthodes statiques sont aussi appelables. Les objets méthodes " "statiques sont créés par le constructeur natif :func:`staticmethod`." #: reference/datamodel.rst:1219 @@ -2127,7 +2146,6 @@ msgid "Special method names" msgstr "Méthodes spéciales" #: reference/datamodel.rst:1230 -#, fuzzy msgid "" "A class can implement certain operations that are invoked by special syntax " "(such as arithmetic operations or subscripting and slicing) by defining " @@ -2146,14 +2164,13 @@ msgstr "" "l'approche utilisée par Python pour la :dfn:`surcharge d'opérateur`, " "permettant à une classe de définir son propre comportement vis-à-vis des " "opérateurs du langage. Par exemple, si une classe définit une méthode :meth:" -"`__getitem__` et que ``x`` est une instance de cette classe, alors ``x[i]`` " -"est globalement équivalent à ``type(x).__getitem__(x, i)``. Sauf lorsque " -"c'est mentionné, toute tentative d'appliquer une opération alors que la " -"méthode appropriée n'est pas définie lève une exception (typiquement :exc:" +"`~object.__getitem__` et que ``x`` est une instance de cette classe, alors " +"``x[i]`` est globalement équivalent à ``type(x).__getitem__(x, i)``. Sauf " +"lorsque c'est mentionné, toute tentative d'appliquer une opération alors que " +"la méthode appropriée n'est pas définie lève une exception (typiquement :exc:" "`AttributeError` ou :exc:`TypeError`)." #: reference/datamodel.rst:1241 -#, fuzzy msgid "" "Setting a special method to ``None`` indicates that the corresponding " "operation is not available. For example, if a class sets :meth:`~object." @@ -2163,9 +2180,9 @@ msgid "" msgstr "" "Définir une méthode spéciale à ``None`` indique que l'opération " "correspondante n'est pas disponible. Par exemple, si une classe assigne " -"``None`` à :meth:`__iter__`, vous ne pouvez pas itérer sur la classe et " -"appeler :func:`iter` sur une instance lève :exc:`TypeError` (sans se replier " -"sur :meth:`__getitem__`) [#]_." +"``None`` à :meth:`~object.__iter__`, vous ne pouvez pas itérer sur la classe " +"et appeler :func:`iter` sur une instance lève :exc:`TypeError` (sans se " +"replier sur :meth:`~object.__getitem__`) [#]_." #: reference/datamodel.rst:1247 msgid "" @@ -2331,13 +2348,14 @@ msgstr "" msgid "Documentation for the :mod:`gc` module." msgstr "Documentation du module :mod:`gc`." +# suit un : #: reference/datamodel.rst:1350 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " "warning is printed to ``sys.stderr`` instead. In particular:" msgstr "" -"En raison des conditions particulières qui règnent quand :meth:`__del__` est " +"en raison des conditions particulières qui règnent quand :meth:`__del__` est " "appelée, les exceptions levées pendant son exécution sont ignorées et, à la " "place, un avertissement est affiché sur ``sys.stderr``. En particulier :" @@ -2433,8 +2451,8 @@ msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." msgstr "" -"C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du " -"type natif :class:`object`." +"L'implémentation par défaut du type natif :class:`object` appelle :meth:" +"`object.__repr__` ." #: reference/datamodel.rst:1414 msgid "" @@ -2456,14 +2474,14 @@ msgid "" "formatting option syntax." msgstr "" "Appelée par la fonction native :func:`format` et, par extension, lors de " -"l'évaluation de :ref:`formatted string literals ` et la méthode :" -"meth:`str.format`. Elle produit une chaîne de caractères « formatée » " -"représentant un objet. L'argument ``format_spec`` est une chaîne de " -"caractères contenant la description des options de formatage voulues. " -"L'interprétation de l'argument ``format_spec`` est laissée au type " -"implémentant :meth:`__format__`. Cependant, la plupart des classes délèguent " -"le formatage aux types natifs ou utilisent une syntaxe similaire d'options " -"de formatage." +"l'évaluation de :ref:`chaînes de caractères littérales formatées ` et la méthode :meth:`str.format`. Elle produit une chaîne de " +"caractères « formatée » représentant un objet. L'argument ``format_spec`` " +"est une chaîne de caractères contenant la description des options de " +"formatage voulues. L'interprétation de l'argument ``format_spec`` est " +"laissée au type implémentant :meth:`__format__`. Cependant, la plupart des " +"classes délèguent le formatage aux types natifs ou utilisent une syntaxe " +"similaire pour les options de formatage." #: reference/datamodel.rst:1435 msgid "" @@ -2476,12 +2494,13 @@ msgstr "" msgid "The return value must be a string object." msgstr "La valeur renvoyée doit être un objet chaîne de caractères." +# suit un : #: reference/datamodel.rst:1439 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" -"La méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " +"la méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " "si vous lui passez une chaîne non vide." #: reference/datamodel.rst:1443 @@ -2552,9 +2571,9 @@ msgid "" "usable as dictionary keys." msgstr "" "Lisez le paragraphe :meth:`__hash__` pour connaître certaines notions " -"importantes relatives à la création d'objets :term:`hashable` qui acceptent " -"les opérations de comparaison personnalisées et qui sont utilisables en tant " -"que clés de dictionnaires." +"importantes relatives à la création d'objets :term:`hachables ` " +"qui acceptent les opérations de comparaison personnalisées et qui sont " +"utilisables en tant que clés de dictionnaires." #: reference/datamodel.rst:1485 msgid "" @@ -2581,7 +2600,6 @@ msgstr "" "virtuelles ne sont pas prises en compte." #: reference/datamodel.rst:1502 -#, fuzzy msgid "" "Called by built-in function :func:`hash` and for operations on members of " "hashed collections including :class:`set`, :class:`frozenset`, and :class:" @@ -2593,11 +2611,11 @@ msgid "" msgstr "" "Appelée par la fonction native :func:`hash` et par les opérations sur les " "membres de collections hachées (ce qui comprend :class:`set`, :class:" -"`frozenset` et :class:`dict`). :meth:`__hash__` doit renvoyer un entier. La " -"seule propriété requise est que les objets qui sont égaux pour la " +"`frozenset` et :class:`dict`). La méthode ``__hash__()`` doit renvoyer un " +"entier. La seule propriété requise est que les objets qui sont égaux pour la " "comparaison doivent avoir la même valeur de hachage ; il est conseillé de " "mélanger les valeurs de hachage des composants d'un objet qui jouent un rôle " -"de la comparaison des objets, en les plaçant dans un *n*-uplet dont on " +"dans la comparaison des objets, en les emballant dans un *n*-uplet dont on " "calcule l'empreinte. Par exemple ::" #: reference/datamodel.rst:1515 @@ -2636,8 +2654,8 @@ msgstr "" "définit des objets mutables et implémente la méthode :meth:`__eq__`, elle ne " "doit pas implémenter :meth:`__hash__` puisque l'implémentation des " "collections hachables requiert que les clés soient des empreintes immuables " -"(si l'empreinte d'un objet change, il ne sera plus trouvé correctement dans " -"le stockage du dictionnaire)." +"(si l'empreinte d'un objet change, il ne sera plus stocké à l'emplacement " +"prévu)." #: reference/datamodel.rst:1532 msgid "" @@ -2692,20 +2710,20 @@ msgstr "" "lève explicitement :exc:`TypeError` serait incorrectement identifiée comme " "hachable par un appel à ``isinstance(obj, collections.abc.Hashable)``." +# suit un : #: reference/datamodel.rst:1557 msgid "" -"By default, the :meth:`__hash__` values of str and bytes objects are " -"\"salted\" with an unpredictable random value. Although they remain " -"constant within an individual Python process, they are not predictable " -"between repeated invocations of Python." +"By default, the :meth:`__hash__` values of str and bytes objects are \"salted" +"\" with an unpredictable random value. Although they remain constant within " +"an individual Python process, they are not predictable between repeated " +"invocations of Python." msgstr "" -"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes et " +"par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes et " "les *bytes* sont « salées » avec une valeur aléatoire non prévisible. Bien " "qu'une empreinte reste constante tout au long d'un processus Python, sa " "valeur n'est pas prévisible entre deux invocations de Python." #: reference/datamodel.rst:1562 -#, fuzzy msgid "" "This is intended to provide protection against a denial-of-service caused by " "carefully-chosen inputs that exploit the worst case performance of a dict " @@ -2714,9 +2732,9 @@ msgid "" msgstr "" "C'est un comportement voulu pour se protéger contre un déni de service qui " "utiliserait des entrées malicieusement choisies pour effectuer des " -"insertions dans le dictionnaire dans le pire cas, avec une complexité en " -"O(n\\ :sup:`2`). Lisez http://www.ocert.org/advisories/ocert-2011-003.html " -"pour en obtenir les détails (article en anglais)." +"insertions dans le dictionnaire dans le pire cas, avec une complexité en O(n" +"\\ :sup:`2`). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour " +"en obtenir les détails (article en anglais)." #: reference/datamodel.rst:1567 msgid "" @@ -2778,7 +2796,7 @@ msgstr "" "`AttributeError` (soit :meth:`__getattribute__` lève :exc:`AttributeError` " "car *name* n'est pas un attribut de l'instance ou un attribut dans " "l'arborescence de la classe de ``self`` ; ou :meth:`__get__` de la propriété " -"*name* lève :exc:`AttributeError`). Cette méthode doit retourner soit la " +"*name* lève :exc:`AttributeError`). Cette méthode doit renvoyer soit la " "valeur (calculée) de l'attribut, soit lever une exception :exc:" "`AttributeError`." @@ -2827,13 +2845,14 @@ msgstr "" "accéder à n'importe quel attribut dont elle a besoin. Par exemple, ``object." "__getattribute__(self, name)``." +# suit un : #: reference/datamodel.rst:1633 msgid "" "This method may still be bypassed when looking up special methods as the " "result of implicit invocation via language syntax or built-in functions. " "See :ref:`special-lookup`." msgstr "" -"Cette méthode peut être shuntée lorsque la recherche porte sur les méthodes " +"cette méthode peut être shuntée lorsque la recherche porte sur les méthodes " "spéciales en tant que résultat d'une invocation implicite *via* la syntaxe " "du langage ou les fonctions natives. Lisez :ref:`special-lookup`." @@ -2975,6 +2994,7 @@ msgstr "" "``__class__`` d'un objet module à une sous-classe de :class:`types." "ModuleType`. Par exemple ::" +# suit un : #: reference/datamodel.rst:1718 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " @@ -2982,7 +3002,7 @@ msgid "" "module globals (whether by code within the module, or via a reference to the " "module's globals dictionary) is unaffected." msgstr "" -"Définir ``__getattr__`` du module et ``__class__`` pour le module affecte " +"définir ``__getattr__`` du module et ``__class__`` pour le module impacte " "uniquement les recherches qui utilisent la syntaxe d'accès aux attributs — " "accéder directement aux globales d'un module (soit par le code dans le " "module, soit *via* une référence au dictionnaire des variables globales du " @@ -3013,9 +3033,9 @@ msgid "" "The following methods only apply when an instance of the class containing " "the method (a so-called *descriptor* class) appears in an *owner* class (the " "descriptor must be in either the owner's class dictionary or in the class " -"dictionary for one of its parents). In the examples below, \"the " -"attribute\" refers to the attribute whose name is the key of the property in " -"the owner class' :attr:`~object.__dict__`." +"dictionary for one of its parents). In the examples below, \"the attribute" +"\" refers to the attribute whose name is the key of the property in the " +"owner class' :attr:`~object.__dict__`." msgstr "" "Les méthodes qui suivent s'appliquent seulement quand une instance de la " "classe (dite classe *descripteur*) contenant la méthode apparaît dans une " @@ -3110,7 +3130,6 @@ msgid "Invoking Descriptors" msgstr "Invocation des descripteurs" #: reference/datamodel.rst:1793 -#, fuzzy msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " "one whose attribute access has been overridden by methods in the descriptor " @@ -3121,9 +3140,9 @@ msgstr "" "En général, un descripteur est un attribut d'objet dont le comportement est " "« lié » (*binding dehavior* en anglais), c'est-à-dire que les accès aux " "attributs ont été surchargés par des méthodes conformes au protocole des " -"descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " -"l'une de ces méthodes est définie pour un objet, il est réputé être un " -"descripteur." +"descripteurs : :meth:`~object.__get__`, :meth:`~object.__set__` et :meth:" +"`~object.__delete__`. Si l'une de ces méthodes est définie pour un objet, il " +"est réputé être un descripteur." #: reference/datamodel.rst:1799 msgid "" @@ -3205,9 +3224,12 @@ msgid "" "for a base class ``B`` following ``A`` and then returns ``B.__dict__['x']." "__get__(a, A)``. If not a descriptor, ``x`` is returned unchanged." msgstr "" +"Une recherche avec un point telle que ``super(A, a).x`` cherche ``a." +"__class__.__mro__`` pour une classe de base ``B`` qui suit (dans l'ordre " +"MRO) ``A``, puis renvoie ``B.__dict__['x'].__get__(a, A)``. Si ce n'est pas " +"un descripteur, ``x`` est renvoyé inchangé." #: reference/datamodel.rst:1862 -#, fuzzy msgid "" "For instance bindings, the precedence of descriptor invocation depends on " "which descriptor methods are defined. A descriptor can define any " @@ -3225,22 +3247,21 @@ msgid "" msgstr "" "Pour des liaisons avec des instances, la priorité à l'invocation du " "descripteur dépend des méthodes que le descripteur a définies. Un " -"descripteur peut définir n'importe quelle combinaison de :meth:`__get__`, :" -"meth:`__set__` et :meth:`__delete__`. S'il ne définit pas :meth:`__get__`, " -"alors accéder à l'attribut renvoie l'objet descripteur lui-même sauf s'il " -"existe une valeur dans le dictionnaire de l'objet instance. Si le " -"descripteur définit :meth:`__set__` ou :meth:`__delete__`, c'est un " -"descripteur de données ; s'il ne définit aucune méthode, c'est un " -"descripteur hors-données. Normalement, les descripteurs de données " -"définissent à la fois :meth:`__get__` et :meth:`__set__`, alors que les " -"descripteurs hors-données définissent seulement la méthode :meth:`__get__`. " -"Les descripteurs de données qui définissent :meth:`__set__` et :meth:" -"`__get__` (ou :meth:`__delete__`) sont toujours prioritaires face à une " +"descripteur peut définir n'importe quelle combinaison de :meth:`~object." +"__get__`, :meth:`~object.__set__` et :meth:`~object.__delete__`. S'il ne " +"définit pas :meth:`__get__`, alors accéder à l'attribut renvoie l'objet " +"descripteur lui-même sauf s'il existe une valeur dans le dictionnaire de " +"l'objet instance. Si le descripteur définit :meth:`__set__` ou :meth:" +"`__delete__`, c'est un descripteur de données ; s'il ne définit aucune " +"méthode, c'est un descripteur hors-données. Normalement, les descripteurs de " +"données définissent à la fois :meth:`__get__` et :meth:`__set__`, alors que " +"les descripteurs hors-données définissent seulement la méthode :meth:" +"`__get__`. Les descripteurs de données qui définissent :meth:`__set__` et :" +"meth:`__get__` (ou :meth:`__delete__`) sont toujours prioritaires face à une " "redéfinition du dictionnaire de l'instance. En revanche, les descripteurs " "hors-données peuvent être shuntés par les instances." #: reference/datamodel.rst:1876 -#, fuzzy msgid "" "Python methods (including those decorated with :func:`@staticmethod " "` and :func:`@classmethod `) are implemented as " @@ -3248,11 +3269,11 @@ msgid "" "methods. This allows individual instances to acquire behaviors that differ " "from other instances of the same class." msgstr "" -"Les méthodes Python (y compris :func:`staticmethod` et :func:`classmethod`) " -"sont implémentées comme des descripteurs hors-donnée. De la même manière, " -"les instances peuvent redéfinir et surcharger les méthodes. Ceci permet à " -"chaque instance d'avoir un comportement qui diffère des autres instances de " -"la même classe." +"Les méthodes Python (y compris celles décorées par :func:`@staticmethod " +"` et :func:`@classmethod `) sont implémentées " +"comme des descripteurs hors-données. De la même manière, les instances " +"peuvent redéfinir et surcharger les méthodes. Ceci permet à chaque instance " +"d'avoir un comportement qui diffère des autres instances de la même classe." #: reference/datamodel.rst:1882 msgid "" @@ -3265,32 +3286,29 @@ msgstr "" #: reference/datamodel.rst:1889 msgid "__slots__" -msgstr "``__slots__``" +msgstr "créneaux prédéfinis (``__slots__``)" #: reference/datamodel.rst:1891 -#, fuzzy msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " "and deny the creation of :attr:`~object.__dict__` and *__weakref__* (unless " "explicitly declared in *__slots__* or available in a parent.)" msgstr "" -"Les ``__slots__`` vous permettent de déclarer des membres d'une donnée " -"(comme une propriété) et d'interdire la création de *__dict__* ou de " -"*__weakref__* (à moins qu'ils ne soient explicitement déclarés dans le " -"``__slots__`` ou présent dans le parent)." +"Les créneaux prédéfinis (``__slots__``) vous permettent de déclarer des " +"membres d'une donnée (comme une propriété) et d'interdire la création de :" +"attr:`~object.__dict__` ou de *__weakref__* (à moins qu'ils ne soient " +"explicitement déclarés dans le ``__slots__`` ou présent dans le parent)." #: reference/datamodel.rst:1895 -#, fuzzy msgid "" "The space saved over using :attr:`~object.__dict__` can be significant. " "Attribute lookup speed can be significantly improved as well." msgstr "" -"L'espace gagné par rapport à l'utilisation d'un *__dict__* peut être " -"significatif. La recherche d'attribut peut aussi s'avérer beaucoup plus " -"rapide." +"L'espace gagné par rapport à l'utilisation d'un :attr:`~object.__dict__` " +"peut être significatif. La recherche d'attribut peut aussi s'avérer beaucoup " +"plus rapide." #: reference/datamodel.rst:1900 -#, fuzzy msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " @@ -3300,25 +3318,23 @@ msgstr "" "Cette variable de classe peut être assignée avec une chaîne, un itérable ou " "une séquence de chaînes avec les noms de variables utilisés par les " "instances. *__slots__* réserve de la place pour ces variables déclarées et " -"interdit la création automatique de *__dict__* et *__weakref__* pour chaque " -"instance." +"interdit la création automatique de :attr:`~object.__dict__` et " +"*__weakref__* pour chaque instance." #: reference/datamodel.rst:1908 msgid "Notes on using *__slots__*" -msgstr "Note sur l'utilisation de *__slots__*" +msgstr "Note sur l'utilisation des créneaux prédéfinis *__slots__*" #: reference/datamodel.rst:1910 -#, fuzzy msgid "" "When inheriting from a class without *__slots__*, the :attr:`~object." "__dict__` and *__weakref__* attribute of the instances will always be " "accessible." msgstr "" -"Lorsque vous héritez d'une classe sans *__slots__*, les attributs *__dict__* " -"et *__weakref__* des instances sont toujours accessibles." +"Lorsque vous héritez d'une classe sans *__slots__*, les attributs :attr:" +"`~object.__dict__` et *__weakref__* des instances sont toujours accessibles." #: reference/datamodel.rst:1914 -#, fuzzy msgid "" "Without a :attr:`~object.__dict__` variable, instances cannot be assigned " "new variables not listed in the *__slots__* definition. Attempts to assign " @@ -3326,14 +3342,14 @@ msgid "" "assignment of new variables is desired, then add ``'__dict__'`` to the " "sequence of strings in the *__slots__* declaration." msgstr "" -"Sans variable *__dict__*, les instances ne peuvent pas assigner de nouvelles " -"variables (non listées dans la définition de *__slots__*). Les tentatives " -"d'assignation sur un nom de variable non listé lève :exc:`AttributeError`. " -"Si l'assignation dynamique de nouvelles variables est nécessaire, ajoutez " -"``'__dict__'`` à la séquence de chaînes dans la déclaration *__slots__*." +"Sans variable :attr:`~object.__dict__`, les instances ne peuvent pas " +"assigner de nouvelles variables (non listées dans la définition de " +"*__slots__*). Les tentatives d'assignation sur un nom de variable non listé " +"lève :exc:`AttributeError`. Si l'assignation dynamique de nouvelles " +"variables est nécessaire, ajoutez ``'__dict__'`` à la séquence de chaînes " +"dans la déclaration *__slots__*." #: reference/datamodel.rst:1921 -#, fuzzy msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support :mod:`weak references ` to its " @@ -3341,27 +3357,25 @@ msgid "" "to the sequence of strings in the *__slots__* declaration." msgstr "" "Sans variable *__weakref__* pour chaque instance, les classes qui " -"définissent *__slots__* ne gèrent pas les références faibles vers leurs " -"instances. Si vous avez besoin de gérer des références faibles, ajoutez " -"``'__weakref__'`` à la séquence de chaînes dans la déclaration de " -"*__slots__*." +"définissent *__slots__* ne gèrent pas les :mod:`références faibles " +"` vers leurs instances. Si vous avez besoin de gérer des références " +"faibles, ajoutez ``'__weakref__'`` à la séquence de chaînes dans la " +"déclaration de *__slots__*." #: reference/datamodel.rst:1927 -#, fuzzy msgid "" "*__slots__* are implemented at the class level by creating :ref:`descriptors " "` for each variable name. As a result, class attributes cannot " "be used to set default values for instance variables defined by *__slots__*; " "otherwise, the class attribute would overwrite the descriptor assignment." msgstr "" -"Les *__slots__* sont implémentés au niveau de la classe en créant des " -"descripteurs (:ref:`descriptors`) pour chaque nom de variable. Ainsi, les " +"Les *__slots__* sont implémentés au niveau de la classe en créant des :ref:" +"`descripteurs ` pour chaque nom de variable. Ainsi, les " "attributs de classe ne peuvent pas être utilisés pour des valeurs par défaut " "aux variables d'instances définies par *__slots__* ; sinon, l'attribut de " "classe surchargerait l'assignation par descripteur." #: reference/datamodel.rst:1933 -#, fuzzy msgid "" "The action of a *__slots__* declaration is not limited to the class where it " "is defined. *__slots__* declared in parents are available in child classes. " @@ -3371,9 +3385,10 @@ msgid "" msgstr "" "L'action de la déclaration du *__slots__* ne se limite pas à la classe où il " "est défini. Les *__slots__* déclarés par les parents sont disponibles dans " -"les classes enfants. Cependant, les sous-classes enfants ont un *__dict__* " -"et un *__weakref__* à moins qu'elles ne définissent aussi un *__slots__* " -"(qui ne doit contenir alors que les noms *supplémentaires* du *slot*)." +"les classes enfants. Cependant, les sous-classes enfants ont un :attr:" +"`~object.__dict__` et un *__weakref__* à moins qu'elles ne définissent aussi " +"un *__slots__* (qui ne doit contenir alors que les noms *supplémentaires* " +"aux créneaux déjà prédéfinis)." #: reference/datamodel.rst:1939 msgid "" @@ -3391,9 +3406,8 @@ msgstr "" #: reference/datamodel.rst:1944 msgid "" -"Nonempty *__slots__* does not work for classes derived from \"variable-" -"length\" built-in types such as :class:`int`, :class:`bytes` and :class:" -"`tuple`." +"Nonempty *__slots__* does not work for classes derived from \"variable-length" +"\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." msgstr "" "Un *__slot__* non vide ne fonctionne pas pour les classes dérivées des types " "natifs à longueur variable tels que :class:`int`, :class:`bytes` et :class:" @@ -3402,6 +3416,8 @@ msgstr "" #: reference/datamodel.rst:1947 msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgstr "" +"Tout :term:`itérable `, sauf les chaînes de caractères, peuvent " +"être affectés à *__slots__*." #: reference/datamodel.rst:1949 msgid "" @@ -3410,46 +3426,47 @@ 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 `, 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:1954 -#, fuzzy msgid "" ":attr:`~instance.__class__` assignment works only if both classes have the " "same *__slots__*." msgstr "" -"Les assignations de *__class__* ne fonctionnent que si les deux classes ont " -"le même *__slots__*." +"Les assignations de :attr:`~instance.__class__` ne fonctionnent que si les " +"deux classes ont le même *__slots__*." #: reference/datamodel.rst:1957 -#, fuzzy msgid "" ":ref:`Multiple inheritance ` with multiple slotted parent " "classes can be used, but only one parent is allowed to have attributes " "created by slots (the other bases must have empty slot layouts) - violations " "raise :exc:`TypeError`." msgstr "" -"L'héritage multiple avec plusieurs classes parentes qui ont des *__slots__* " -"est possible, mais seul un parent peut avoir des attributs créés par " -"*__slots__* (les autres classes parentes doivent avoir des *__slots__* " -"vides). La violation de cette règle lève :exc:`TypeError`." +"L':ref:`héritage multiple ` avec plusieurs classes parentes " +"qui ont des *__slots__* est possible, mais seul un parent peut avoir des " +"attributs créés par *__slots__* (les autres classes parentes doivent avoir " +"des *__slots__* vides). La violation de cette règle lève :exc:`TypeError`." #: reference/datamodel.rst:1963 -#, fuzzy msgid "" "If an :term:`iterator` is used for *__slots__* then a :term:`descriptor` is " "created for each of the iterator's values. However, the *__slots__* " "attribute will be an empty iterator." msgstr "" -"Si un itérateur est utilisé pour *__slots__*, alors un descripteur est créé " -"pour chacune des valeurs de l'itérateur. Cependant, l'attribut de " -"*__slots__* est un itérateur vide." +"Si un :term:`itérateur ` est utilisé pour *__slots__*, alors un :" +"term:`descripteur ` est créé pour chacune des valeurs de " +"l'itérateur. Cependant, l'attribut *__slots__* est un itérateur vide." #: reference/datamodel.rst:1971 msgid "Customizing class creation" msgstr "Personnalisation de la création de classes" #: reference/datamodel.rst:1973 -#, fuzzy msgid "" "Whenever a class inherits from another class, :meth:`~object." "__init_subclass__` is called on the parent class. This way, it is possible " @@ -3458,13 +3475,13 @@ msgid "" "specific class they're applied to, ``__init_subclass__`` solely applies to " "future subclasses of the class defining the method." msgstr "" -"Quand une classe hérite d'une classe parente, *__init_subclass__* de la " -"classe parente est appelée. Ainsi, il est possible d'écrire des classes qui " -"modifient le comportement des sous-classes. Ce comportement est corrélé aux " -"décorateurs de classes mais, alors que les décorateurs de classes agissent " -"seulement sur la classe qu'ils décorent, ``__init_subclass__`` agit " -"uniquement sur les futures sous-classes de la classe qui définit cette " -"méthode." +"Quand une classe hérite d'une classe parente, la méthode :meth:`~object." +"__init_subclass__` de la classe parente est appelée. Ainsi, il est possible " +"d'écrire des classes qui modifient le comportement des sous-classes. Ce " +"comportement est corrélé aux décorateurs de classes mais, alors que les " +"décorateurs de classes agissent seulement sur la classe qu'ils décorent, " +"``__init_subclass__`` agit uniquement sur les futures sous-classes de la " +"classe qui définit cette méthode." #: reference/datamodel.rst:1982 msgid "" @@ -3498,6 +3515,7 @@ msgstr "" "sans argument, mais lève une erreur si elle est appelée avec un argument ou " "plus." +# suit un : #: reference/datamodel.rst:2005 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " @@ -3505,27 +3523,27 @@ msgid "" "actual metaclass (rather than the explicit hint) can be accessed as " "``type(cls)``." msgstr "" -"L'indication de métaclasse ``metaclass`` est absorbée par le reste du " +"l'indication de métaclasse ``metaclass`` est absorbée par le reste du " "mécanisme de types et n'est jamais passée à l'implémentation de " "``__init_subclass__``. La métaclasse réelle (plutôt que l'indication " "explicite) peut être récupérée par ``type(cls)``." #: reference/datamodel.rst:2013 -#, fuzzy msgid "" "When a class is created, :meth:`type.__new__` scans the class variables and " "makes callbacks to those with a :meth:`~object.__set_name__` hook." msgstr "" "Lorsqu'une classe est créée, :meth:`type.__new__` exécute le point d'entrée :" -"meth:`__set_name__` de toute variable de la classe qui en possède un." +"meth:`~object.___set_name__` de toute variable de la classe qui en possède " +"un." #: reference/datamodel.rst:2018 msgid "" "Automatically called at the time the owning class *owner* is created. The " "object has been assigned to *name* in that class::" msgstr "" -"Appelé au moment où la classe propriétaire *owner* est créée. L'objet *self* " -"a été assigné à *name* dans *owner* ::" +"Appelée automatiquement au moment où la classe propriétaire *owner* est " +"créée. L'objet *self* a été assigné à *name* dans *owner* ::" #: reference/datamodel.rst:2024 msgid "" @@ -3582,9 +3600,10 @@ msgstr "" "Quand la définition d'une classe est exécutée, les différentes étapes " "suivies sont :" +# suit un : #: reference/datamodel.rst:2073 msgid "MRO entries are resolved;" -msgstr "Les entrées MRO sont résolues ;" +msgstr "les entrées MRO sont résolues ;" #: reference/datamodel.rst:2074 msgid "the appropriate metaclass is determined;" @@ -3600,7 +3619,7 @@ msgstr "le corps de la classe est exécuté ;" #: reference/datamodel.rst:2077 msgid "the class object is created." -msgstr "l'objet classe est crée." +msgstr "l'objet classe est créé." #: reference/datamodel.rst:2081 msgid "Resolving MRO entries" @@ -3680,7 +3699,6 @@ msgid "Preparing the class namespace" msgstr "Préparation de l'espace de nommage de la classe" #: reference/datamodel.rst:2122 -#, fuzzy msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " @@ -3696,10 +3714,10 @@ msgstr "" "il est appelé avec ``namespace = metaclass.__prepare__(name, bases, " "**kwds)`` (où les arguments nommés supplémentaires, s'il y en a, sont les " "arguments de la définition de la classe). La méthode ``__prepare__`` doit " -"être implémentée comme une méthode de classe (:func:`classmethod`). L’espace " -"de nommage renvoyé par ``__prepare__`` est passé à ``__new__``, mais quand " -"l’instance finale est créée, l’espace de nommage est copié vers un nouveau " -"``dict``." +"être implémentée comme une :func:`méthode de classe `). " +"L’espace de nommage renvoyé par ``__prepare__`` est passé à ``__new__``, " +"mais quand l’instance finale est créée, l’espace de nommage est copié vers " +"un nouveau ``dict``." #: reference/datamodel.rst:2131 msgid "" @@ -3789,6 +3807,7 @@ msgstr "" "l'appel en cours est identifiée en fonction du premier argument transmis à " "la méthode." +# suit un : #: reference/datamodel.rst:2183 msgid "" "In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " @@ -3797,7 +3816,7 @@ msgid "" "initialised correctly. Failing to do so will result in a :exc:`RuntimeError` " "in Python 3.8." msgstr "" -"Dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la " +"dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la " "métaclasse en tant qu'entrée ``__classcell__`` dans l'espace de nommage de " "la classe. Si elle est présente, elle doit être propagée à l'appel ``type." "__new__`` pour que la classe soit correctement initialisée. Ne pas le faire " @@ -3962,7 +3981,7 @@ msgstr "" "Inclut la spécification pour la personnalisation du comportement de :func:" "`isinstance` et :func:`issubclass` à travers :meth:`~class." "__instancecheck__` et :meth:`~class.__subclasscheck__`, avec comme " -"motivation pour cette fonctionnalité l'ajout les classes de base abstraites " +"motivation pour cette fonctionnalité l'ajout des classes de base abstraites " "(voir le module :mod:`abc`) au langage." #: reference/datamodel.rst:2265 @@ -3976,41 +3995,55 @@ 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`, il est " +"souvent utile de *paramètrer* un :term:`type générique ` en se " +"servant de la notation crochets de Python. Par exemple, l'annotation " +"``list[int]`` peut être utilisée pour signifier une :class:`liste ` " +"dans laquelle tous les éléments sont de type :class:`entiers `." #: reference/datamodel.rst:2275 -#, fuzzy msgid ":pep:`484` - Type Hints" -msgstr ":pep:`343` — L'instruction ``with``" +msgstr ":pep:`343` — Indications de types" #: reference/datamodel.rst:2275 msgid "Introducing Python's framework for type annotations" -msgstr "" +msgstr "Introduction à l'annotation de types en Python (document en anglais)" #: reference/datamodel.rst:2278 msgid ":ref:`Generic Alias Types`" -msgstr "" +msgstr ":ref:`Types alias génériques `" #: reference/datamodel.rst:2278 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:2281 msgid "" ":ref:`Generics`, :ref:`user-defined generics` and :" "class:`typing.Generic`" msgstr "" +":ref:`Generics`, :ref:`Types génériques définis par l'utilisateur ` et classe :class:`typing.Generic (classe de base " +"abstraite pour les types génériques) `" #: reference/datamodel.rst:2281 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:2284 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:2289 msgid "" @@ -4026,10 +4059,13 @@ msgid "" "method. As such, there is no need for it to be decorated with :func:" "`@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` lors de sa définition." #: reference/datamodel.rst:2298 msgid "The purpose of *__class_getitem__*" -msgstr "" +msgstr "Intention de *__class_getitem__*" #: reference/datamodel.rst:2300 msgid "" @@ -4037,6 +4073,10 @@ msgid "" "parameterization of standard-library generic classes in order to more easily " "apply :term:`type hints` 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 ` à ces classes." #: reference/datamodel.rst:2304 msgid "" @@ -4046,6 +4086,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:2310 msgid "" @@ -4054,10 +4099,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:2320 msgid "*__class_getitem__* versus *__getitem__*" -msgstr "" +msgstr "*__class_getitem__* contre *__getitem__*" #: reference/datamodel.rst:2322 msgid "" @@ -4068,6 +4118,13 @@ msgid "" "instead. ``__class_getitem__()`` should return a :ref:`GenericAlias` object if it is properly defined." msgstr "" +"D'habitude, l':ref:`indiçage ` 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` si elle est " +"correctement définie." #: reference/datamodel.rst:2329 msgid "" @@ -4075,6 +4132,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:2357 msgid "" @@ -4085,6 +4145,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 ` 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:2376 msgid "" @@ -4092,9 +4158,12 @@ 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:2401 -#, fuzzy msgid ":pep:`560` - Core Support for typing module and generic types" msgstr "" ":pep:`560` — Gestion de base pour les types modules et les types génériques" @@ -4105,6 +4174,9 @@ msgid "" "`subscription` 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` conduit à l'appel de " +"``__class_getitem__()`` au lieu de :meth:`~object.__getitem__`" #: reference/datamodel.rst:2408 msgid "Emulating callable objects" @@ -4125,7 +4197,6 @@ msgid "Emulating container types" msgstr "Émulation de types conteneurs" #: reference/datamodel.rst:2424 -#, fuzzy msgid "" "The following methods can be defined to implement container objects. " "Containers usually are :term:`sequences ` (such as :class:`lists " @@ -4161,39 +4232,42 @@ msgid "" "the values." msgstr "" "Les fonctions suivantes peuvent être définies pour implémenter des objets " -"conteneurs. Les conteneurs sont habituellement des séquences (telles que les " -"*n*-uplets ou les listes) ou des tableaux de correspondances (comme les " -"dictionnaires), mais ils peuvent aussi représenter d'autres conteneurs. Le " -"premier ensemble de méthodes est utilisé soit pour émuler une séquence, soit " -"pour émuler un tableau de correspondances ; la différence est que, pour une " -"séquence, les clés doivent être soit des entiers *k* tels que ``0 <= k < N`` " -"où *N* est la longueur de la séquence, soit des objets tranches qui " -"définissent un intervalle d'éléments. Il est aussi recommandé que les " -"tableaux de correspondances fournissent les méthodes :meth:`keys`, :meth:" -"`values`, :meth:`items`, :meth:`get`, :meth:`clear`, :meth:`setdefault`, :" -"meth:`pop`, :meth:`popitem`, :meth:`!copy` et :meth:`update` avec un " -"comportement similaire aux objets dictionnaires standards de Python. Le " -"module :mod:`collections.abc` fournit une classe de base abstraite :class:" -"`~collections.abc.MutableMapping` pour aider à la création de ces méthodes à " -"partir d'un ensemble de base composé de :meth:`__getitem__`, :meth:" -"`__setitem__`, :meth:`__delitem__` et :meth:`keys`. Les séquences muables " -"doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:`index`, :" -"meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:`reverse` " -"et :meth:`sort`, comme les objets listes standards de Python. Enfin, les " -"types séquences doivent implémenter l'addition (dans le sens de la " -"concaténation) et la multiplication (dans le sens de la répétition) en " -"définissant les méthodes :meth:`__add__`, :meth:`__radd__`, :meth:" -"`__iadd__`, :meth:`__mul__`, :meth:`__rmul__` et :meth:`__imul__` décrites " -"ci-dessous ; ils ne doivent pas définir d'autres opérateurs numériques. Il " -"est recommandé que les tableaux de correspondances et les séquences " -"implémentent la méthode :meth:`__contains__` pour permettre l'utilisation " -"efficace de l'opérateur ``in`` ; concernant les tableaux de correspondances, " -"``in`` doit rechercher dans les clés du tableau ; pour les séquences, il " -"doit chercher dans les valeurs. Il est de plus recommandé que les tableaux " -"de correspondances et les séquences implémentent la méthode :meth:`__iter__` " -"pour permettre une itération efficace dans le conteneur ; pour les tableaux " -"de correspondances, :meth:`__iter__` doit itérer sur les clés de l'objet ; " -"pour les séquences, elle doit itérer sur les valeurs." +"conteneurs. Les conteneurs sont habituellement des :term:`séquences " +"` (telles que les :class:`listes ` ou les :class:`n-uplets " +"`) ou des :term:`tableaux de correspondances ` (comme les :" +"class:`dictionnaires `), mais ils peuvent aussi représenter d'autres " +"conteneurs. Le premier ensemble de méthodes est utilisé soit pour émuler une " +"séquence, soit pour émuler un tableau de correspondances ; la différence est " +"que, pour une séquence, les clés doivent être soit des entiers *k* tels que " +"``0 <= k < N`` où *N* est la longueur de la séquence, soit des objets :class:" +"`tranches ` qui définissent un intervalle d'éléments. Il est aussi " +"recommandé que les tableaux de correspondances fournissent les méthodes :" +"meth:`keys`, :meth:`values`, :meth:`items`, :meth:`get`, :meth:`clear`, :" +"meth:`setdefault`, :meth:`pop`, :meth:`popitem`, :meth:`!copy` et :meth:" +"`update` avec un comportement similaire aux objets :class:`dictionnaires " +"` standards de Python. Le module :mod:`collections.abc` fournit une :" +"term:`classe de base abstraite ` :class:`~collections." +"abc.MutableMapping` pour aider à la création de ces méthodes à partir d'un " +"ensemble de base composé de :meth:`~object.__getitem__`, :meth:`~object." +"__setitem__`, :meth:`~object.__delitem__` et :meth:`keys`. Les séquences " +"muables doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:" +"`index`, :meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:" +"`reverse` et :meth:`sort`, comme les objets :class:`listes ` standards " +"de Python. Enfin, les types séquences doivent implémenter l'addition (dans " +"le sens de la concaténation) et la multiplication (dans le sens de la " +"répétition) en définissant les méthodes :meth:`~object.__add__`, :meth:" +"`~object.__radd__`, :meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:" +"`~object.__rmul__` et :meth:`~object.__imul__` décrites ci-dessous ; ils ne " +"doivent pas définir d'autres opérateurs numériques. Il est recommandé que " +"les tableaux de correspondances et les séquences implémentent la méthode :" +"meth:`~object.__contains__` pour permettre l'utilisation efficace de " +"l'opérateur ``in`` ; concernant les tableaux de correspondances, ``in`` doit " +"rechercher dans les clés du tableau ; pour les séquences, il doit chercher " +"dans les valeurs. Il est de plus recommandé que les tableaux de " +"correspondances et les séquences implémentent la méthode :meth:`~object." +"__iter__` pour permettre une itération efficace dans le conteneur ; pour les " +"tableaux de correspondances, :meth:`__iter__` doit itérer sur les clés de " +"l'objet ; pour les séquences, elle doit itérer sur les valeurs." #: reference/datamodel.rst:2464 msgid "" @@ -4207,6 +4281,7 @@ msgstr "" "définit pas de méthode :meth:`__bool__` et dont la méthode :meth:`__len__` " "renvoie zéro est considéré comme valant ``False`` dans un contexte booléen." +# suit un : #: reference/datamodel.rst:2471 msgid "" "In CPython, the length is required to be at most :attr:`sys.maxsize`. If the " @@ -4215,7 +4290,7 @@ msgid "" "OverflowError` by truth value testing, an object must define a :meth:" "`__bool__` method." msgstr "" -"En CPython, la longueur doit valoir au maximum :attr:`sys.maxsize`. Si la " +"en CPython, la longueur doit valoir au maximum :attr:`sys.maxsize`. Si la " "longueur est plus grande que :attr:`!sys.maxsize`, des propriétés (telles " "que :func:`len`) peuvent lever :exc:`OverflowError`. Afin d'éviter de lever :" "exc:`!OverflowError` lors de tests booléens, un objet doit définir la " @@ -4238,11 +4313,12 @@ msgstr "" "méthode est utilisée uniquement pour optimiser les traitements et n'est " "jamais tenue de renvoyer un résultat exact." +# suit un : #: reference/datamodel.rst:2494 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" -"Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " +"le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " "Un appel comme ::" #: reference/datamodel.rst:2498 @@ -4254,7 +4330,6 @@ msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``." #: reference/datamodel.rst:2507 -#, fuzzy msgid "" "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, " "the accepted keys should be integers and slice objects. Note that the " @@ -4266,15 +4341,16 @@ msgid "" "term:`mapping` types, if *key* is missing (not in the container), :exc:" "`KeyError` should be raised." msgstr "" -"Appelée pour implémenter l'évaluation de ``self[key]``. Pour les types " -"séquences, les clés autorisées sont les entiers et les objets tranches " -"(*slice*). Notez que l'interprétation spéciale des indices négatifs (si la " -"classe souhaite émuler un type séquence) est du ressort de la méthode :meth:" -"`__getitem__`. Si *key* n'est pas du bon type, une :exc:`TypeError` peut " -"être levée ; si la valeur est en dehors de l'ensemble des indices de la " -"séquence (après interprétation éventuelle des valeurs négatives), une :exc:" -"`IndexError` doit être levée. Pour les tableaux de correspondances, si *key* " -"n'existe pas dans le conteneur, une :exc:`KeyError` doit être levée." +"Appelée pour implémenter l'évaluation de ``self[key]``. Pour les types :term:" +"`séquences `, les clés autorisées sont les entiers et les objets " +"tranches (*slice*). Notez que l'interprétation spéciale des indices négatifs " +"(si la classe souhaite émuler un type :term:`séquence `) est du " +"ressort de la méthode :meth:`__getitem__`. Si *key* n'est pas du bon type, " +"une :exc:`TypeError` peut être levée ; si la valeur est en dehors de " +"l'ensemble des indices de la séquence (après interprétation éventuelle des " +"valeurs négatives), une :exc:`IndexError` doit être levée. Pour les :term:" +"`tableaux de correspondances `, si *key* n'existe pas dans le " +"conteneur, une :exc:`KeyError` doit être levée." #: reference/datamodel.rst:2519 msgid "" @@ -4284,12 +4360,17 @@ msgstr "" ":keyword:`for` s'attend à ce qu'une :exc:`IndexError` soit levée en cas " "d'indice illégal afin de détecter correctement la fin de la séquence." +# suit un : #: reference/datamodel.rst:2524 msgid "" "When :ref:`subscripting` a *class*, the special class method :" "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 ` 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:2532 msgid "" @@ -4332,17 +4413,16 @@ msgstr "" "pas dans le dictionnaire." #: reference/datamodel.rst:2556 -#, fuzzy msgid "" "This method is called when an :term:`iterator` is required for a container. " "This method should return a new iterator object that can iterate over all " "the objects in the container. For mappings, it should iterate over the keys " "of the container." msgstr "" -"Cette méthode est appelée quand un itérateur est requis pour un conteneur. " -"Cette méthode doit renvoyer un nouvel objet itérateur qui peut itérer sur " -"tous les objets du conteneur. Pour les tableaux de correspondances, elle " -"doit itérer sur les clés du conteneur." +"Cette méthode est appelée quand un :term:`itérateur ` est requis " +"pour un conteneur. Cette méthode doit renvoyer un nouvel objet itérateur qui " +"peut itérer sur tous les objets du conteneur. Pour les tableaux de " +"correspondances, elle doit itérer sur les clés du conteneur." #: reference/datamodel.rst:2564 msgid "" @@ -4423,25 +4503,24 @@ msgstr "" "laissées indéfinies." #: reference/datamodel.rst:2623 -#, fuzzy msgid "" -"These methods are called to implement the binary arithmetic operations " -"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" -"`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). For instance, to " -"evaluate the expression ``x + y``, where *x* is an instance of a class that " -"has an :meth:`__add__` method, ``type(x).__add__(x, y)`` is called. The :" -"meth:`__divmod__` method should be the equivalent to using :meth:" -"`__floordiv__` and :meth:`__mod__`; it should not be related to :meth:" -"`__truediv__`. Note that :meth:`__pow__` should be defined to accept an " -"optional third argument if the ternary version of the built-in :func:`pow` " -"function is to be supported." +"These methods are called to implement the binary arithmetic operations (``" +"+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " +"``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). For instance, to evaluate the " +"expression ``x + y``, where *x* is an instance of a class that has an :meth:" +"`__add__` method, ``type(x).__add__(x, y)`` is called. The :meth:" +"`__divmod__` method should be the equivalent to using :meth:`__floordiv__` " +"and :meth:`__mod__`; it should not be related to :meth:`__truediv__`. Note " +"that :meth:`__pow__` should be defined to accept an optional third argument " +"if the ternary version of the built-in :func:`pow` function is to be " +"supported." msgstr "" "Ces méthodes sont appelées pour implémenter les opérations arithmétiques " "binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" "func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). Par exemple, pour " "évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " -"possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " -"méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" +"possède une méthode :meth:`__add__`, ``type(x).__add__(x, y)`` est appelée. " +"La méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" "`__floordiv__` et :meth:`__mod__` ; elle ne doit pas être reliée à :meth:" "`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " "accepter un troisième argument optionnel si la version ternaire de la " @@ -4456,11 +4535,10 @@ msgstr "" "donnés, elle doit renvoyer ``NotImplemented``." #: reference/datamodel.rst:2657 -#, fuzzy msgid "" -"These methods are called to implement the binary arithmetic operations " -"(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" -"`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) with reflected (swapped) " +"These methods are called to implement the binary arithmetic operations (``" +"+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " +"``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) with reflected (swapped) " "operands. These functions are only called if the left operand does not " "support the corresponding operation [#]_ and the operands are of different " "types. [#]_ For instance, to evaluate the expression ``x - y``, where *y* is " @@ -4475,8 +4553,8 @@ msgstr "" "gauche n'autorise pas l'opération correspondante [#]_ et si les opérandes " "sont de types différents [#]_. Par exemple, pour évaluer l'expression ``x - " "y``, où *y* est une instance d'une classe qui possède une méthode :meth:" -"`__rsub__`, ``y.__rsub__(x)`` est appelée si ``x.__sub__(y)`` renvoie " -"*NotImplemented*." +"`__rsub__`, ``type(y).__rsub__(y, x)`` est appelée si ``type(x)__sub__(x, " +"y)`` renvoie *NotImplemented*." #: reference/datamodel.rst:2669 msgid "" @@ -4486,6 +4564,7 @@ msgstr "" "Notez que la fonction ternaire :func:`pow` n'essaie pas d'appeler :meth:" "`__rpow__` (les règles de coercition seraient trop compliquées)." +# suit un : #: reference/datamodel.rst:2674 msgid "" "If the right operand's type is a subclass of the left operand's type and " @@ -4494,7 +4573,7 @@ msgid "" "reflected method. This behavior allows subclasses to override their " "ancestors' operations." msgstr "" -"Si le type de l'opérande de droite est une sous-classe du type de l'opérande " +"si le type de l'opérande de droite est une sous-classe du type de l'opérande " "de gauche et que cette sous-classe fournit une implémentation différente de " "la méthode symétrique pour l'opération, cette méthode est appelée avant la " "méthode originelle de l'opérande gauche. Ce comportement permet à des sous-" @@ -4515,7 +4594,7 @@ msgid "" "(see :ref:`faq-augmented-assignment-tuple-error`), but this behavior is in " "fact part of the data model." msgstr "" -"Ces méthodes sont appelées pour implémenter les assignations arithmétiques " +"Ces méthodes sont appelées pour implémenter les affectations arithmétiques " "augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " "``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " "essayer d'effectuer l'opération « sur place » (c'est-à-dire de modifier " @@ -4534,8 +4613,8 @@ msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." msgstr "" -"Appelée pour implémenter les opérations arithmétiques unaires (``-``, " -"``+``, :func:`abs` et ``~``)." +"Appelées pour implémenter les opérations arithmétiques unaires (``-``, ``" +"+``, :func:`abs` et ``~``)." #: reference/datamodel.rst:2729 msgid "" @@ -4577,7 +4656,7 @@ msgid "" "return the value of the object truncated to an :class:`~numbers.Integral` " "(typically an :class:`int`)." msgstr "" -"Appelée pour implémenter la fonction native :func:`round` et les fonctions " +"Appelées pour implémenter la fonction native :func:`round` et les fonctions " "du module :mod:`math` :func:`~math.trunc`, :func:`~math.floor` et :func:" "`~math.ceil`. À moins que *ndigits* ne soit passé à :meth:`!__round__`, " "toutes ces méthodes doivent renvoyer la valeur de l'objet tronquée pour " @@ -4588,10 +4667,12 @@ 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:2763 msgid "The delegation of :func:`int` to :meth:`__trunc__` is deprecated." -msgstr "" +msgstr "la délégation de :func:`int` vers :func:`__trunc__` est obsolète." #: reference/datamodel.rst:2770 msgid "With Statement Context Managers" @@ -4753,7 +4834,6 @@ msgstr "" "explique pourquoi le code suivant lève une exception ::" #: reference/datamodel.rst:2869 -#, fuzzy msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`~object.__hash__` and :meth:`~object.__repr__` that are " @@ -4762,10 +4842,11 @@ msgid "" "invoked on the type object itself::" msgstr "" "La raison de ce comportement vient de certaines méthodes spéciales telles " -"que :meth:`__hash__` et :meth:`__repr__` qui sont implémentées par tous les " -"objets, y compris les objets types. Si la recherche effectuée par ces " -"méthodes utilisait le processus normal de recherche, elles ne " -"fonctionneraient pas si on les appelait sur l'objet type lui-même ::" +"que :meth:`~object.__hash__` et :meth:`~object.__repr__` qui sont " +"implémentées par tous les objets, y compris les objets types. Si la " +"recherche effectuée par ces méthodes utilisait le processus normal de " +"recherche, elles ne fonctionneraient pas si on les appelait sur l'objet type " +"lui-même ::" #: reference/datamodel.rst:2883 msgid "" @@ -4778,7 +4859,6 @@ msgstr "" "l'instance lors de la recherche des méthodes spéciales ::" #: reference/datamodel.rst:2892 -#, fuzzy msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" @@ -4786,10 +4866,10 @@ msgid "" msgstr "" "En plus de shunter les attributs des instances pour fonctionner " "correctement, la recherche des méthodes spéciales implicites shunte aussi la " -"méthode :meth:`__getattribute__` même dans la métaclasse de l'objet ::" +"méthode :meth:`~object.__getattribute__` même dans la métaclasse de " +"l'objet ::" #: reference/datamodel.rst:2918 -#, fuzzy msgid "" "Bypassing the :meth:`~object.__getattribute__` machinery in this fashion " "provides significant scope for speed optimisations within the interpreter, " @@ -4797,8 +4877,8 @@ msgid "" "special method *must* be set on the class object itself in order to be " "consistently invoked by the interpreter)." msgstr "" -"En shuntant le mécanisme de :meth:`__getattribute__` de cette façon, cela " -"permet d'optimiser la vitesse de l'interpréteur moyennant une certaine " +"En shuntant le mécanisme de :meth:`~object.__getattribute__` de cette façon, " +"cela permet d'optimiser la vitesse de l'interpréteur moyennant une certaine " "manœuvre dans la gestion des méthodes spéciales (la méthode spéciale *doit* " "être définie sur l'objet classe lui-même afin d'être invoquée de manière " "cohérente par l'interpréteur)." @@ -4812,27 +4892,26 @@ msgid "Awaitable Objects" msgstr "Objets *attendables* (*awaitable*)" #: reference/datamodel.rst:2935 -#, fuzzy msgid "" "An :term:`awaitable` object generally implements an :meth:`~object." "__await__` method. :term:`Coroutine objects ` returned from :" "keyword:`async def` functions are awaitable." msgstr "" "Un objet :term:`awaitable` implémente généralement une méthode :meth:" -"`__await__`. Les objets :term:`coroutine` renvoyés par les fonctions :" -"keyword:`async def` sont des *attendables* (*awaitable*)." +"`~object.__await__`. Les objets :term:`coroutine` renvoyés par les " +"fonctions :keyword:`async def` sont des *attendables* (*awaitable*)." +# suit un : #: reference/datamodel.rst:2941 -#, fuzzy msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` are also awaitable, but they do not implement :" "meth:`~object.__await__`." msgstr "" -"Les objets :term:`itérateur de générateur` renvoyés par les générateurs " -"décorés par :func:`types.coroutine` ou :func:`asyncio.coroutine` sont aussi " -"des *attendables* (*awaitable*), mais ils n'implémentent pas :meth:" -"`__await__`." +"les objets :term:`itérateur de générateur ` renvoyés par " +"les générateurs décorés par :func:`types.coroutine` sont aussi des " +"*attendables* (*awaitable*), mais ils n'implémentent pas :meth:`~object." +"__await__`." #: reference/datamodel.rst:2947 msgid "" @@ -4855,7 +4934,6 @@ msgid "Coroutine Objects" msgstr "Objets coroutines" #: reference/datamodel.rst:2961 -#, fuzzy msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " "coroutine's execution can be controlled by calling :meth:`~object.__await__` " @@ -4866,12 +4944,13 @@ msgid "" "should not directly raise unhandled :exc:`StopIteration` exceptions." msgstr "" "Les objets :term:`coroutine` sont des objets :term:`awaitable`. L'exécution " -"d'une coroutine peut être contrôlée en appelant :meth:`__await__` et en " -"itérant sur le résultat. Quand la coroutine a fini de s'exécuter et termine, " -"l'itérateur lève :exc:`StopIteration` et l'attribut :attr:`~StopIteration." -"value` de l'exception contient la valeur de retour. Si la coroutine lève une " -"exception, elle est propagée par l'itérateur. Les coroutines ne doivent pas " -"lever directement des exceptions :exc:`StopIteration` non gérées." +"d'une coroutine peut être contrôlée en appelant :meth:`~object.__await__` et " +"en itérant sur le résultat. Quand la coroutine a fini de s'exécuter et " +"termine, l'itérateur lève :exc:`StopIteration` et l'attribut :attr:" +"`~StopIteration.value` de l'exception contient la valeur de retour. Si la " +"coroutine lève une exception, elle est propagée par l'itérateur. Les " +"coroutines ne doivent pas lever directement des exceptions :exc:" +"`StopIteration` non gérées." #: reference/datamodel.rst:2969 msgid "" @@ -4884,14 +4963,14 @@ msgstr "" "contraire des générateurs, vous ne pouvez pas itérer directement sur des " "coroutines." +# suit un : #: reference/datamodel.rst:2973 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" -"Utiliser *await* plus d'une fois sur une coroutine lève une :exc:" +"utiliser *await* plus d'une fois sur une coroutine lève une :exc:" "`RuntimeError`." #: reference/datamodel.rst:2979 -#, fuzzy msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`~object." @@ -4902,15 +4981,14 @@ msgid "" "value, described above." msgstr "" "Démarre ou reprend l'exécution d'une coroutine. Si *value* est ``None``, " -"c'est équivalent à avancer l'itérateur renvoyé par :meth:`__await__`. Si " -"*value* ne vaut pas ``None``, cette méthode appelle la méthode :meth:" -"`~generator.send` de l'itérateur qui a causé la suspension de la coroutine. " -"Le résultat (valeur de retour, :exc:`StopIteration` ou une autre exception) " -"est le même que lorsque vous itérez sur la valeur de retour de :meth:" -"`__await__`, décrite ci-dessus." +"c'est équivalent à avancer l'itérateur renvoyé par :meth:`~object." +"__await__`. Si *value* ne vaut pas ``None``, cette méthode appelle la " +"méthode :meth:`~generator.send` de l'itérateur qui a causé la suspension de " +"la coroutine. Le résultat (valeur de retour, :exc:`StopIteration` ou une " +"autre exception) est le même que lorsque vous itérez sur la valeur de retour " +"de :meth:`__await__`, décrite ci-dessus." #: reference/datamodel.rst:2990 -#, fuzzy msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -4925,8 +5003,8 @@ msgstr "" "la coroutine, s'il possède une telle méthode. Sinon, l'exception est levée " "au point de suspension. Le résultat (valeur de retour, :exc:`StopIteration` " "ou une autre exception) est le même que lorsque vous itérez sur la valeur de " -"retour de :meth:`__await__`, décrite ci-dessus. Si l'exception n'est pas " -"gérée par la coroutine, elle est propagée à l'appelant." +"retour de :meth:`~object.__await__`, décrite ci-dessus. Si l'exception n'est " +"pas gérée par la coroutine, elle est propagée à l'appelant." #: reference/datamodel.rst:3001 msgid "" @@ -4990,25 +5068,24 @@ msgid "An example of an asynchronous iterable object::" msgstr "Un exemple d'objet itérateur asynchrone ::" #: reference/datamodel.rst:3048 -#, fuzzy msgid "" "Prior to Python 3.7, :meth:`~object.__aiter__` could return an *awaitable* " "that would resolve to an :term:`asynchronous iterator `." msgstr "" -"Avant Python 3.7, ``__aiter__`` pouvait renvoyer un *attendable* " +"avant Python 3.7, :meth:`~object.__aiter__` pouvait renvoyer un *attendable* " "(*awaitable*) qui se résolvait potentiellement en un :term:`itérateur " "asynchrone `." #: reference/datamodel.rst:3053 -#, fuzzy msgid "" "Starting with Python 3.7, :meth:`~object.__aiter__` must return an " "asynchronous iterator object. Returning anything else will result in a :exc:" "`TypeError` error." msgstr "" -"À partir de Python 3.7, ``__aiter__`` doit renvoyer un objet itérateur " -"asynchrone. Renvoyer autre chose entraine une erreur :exc:`TypeError`." +"À partir de Python 3.7, :meth:`~object.__aiter__` doit renvoyer un objet " +"itérateur asynchrone. Renvoyer autre chose entraine une erreur :exc:" +"`TypeError`." #: reference/datamodel.rst:3061 msgid "Asynchronous Context Managers" @@ -5067,17 +5144,16 @@ msgstr "" "correctement." #: reference/datamodel.rst:3096 -#, fuzzy msgid "" "The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object." "__reversed__`, and :meth:`~object.__contains__` methods have special " "handling for this; others will still raise a :exc:`TypeError`, but may do so " "by relying on the behavior that ``None`` is not callable." msgstr "" -"Les méthodes :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__` et :" -"meth:`__contains__` ont une gestion particulière pour cela ; les autres " -"lèvent toujours :exc:`TypeError`, mais le font en considérant que ``None`` " -"n'est pas un appelable." +"Les méthodes :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:" +"`~object.__reversed__` et :meth:`~object.__contains__` ont une gestion " +"particulière pour cela ; les autres lèvent toujours :exc:`TypeError`, mais " +"le font en considérant que ``None`` n'est pas un appelable." #: reference/datamodel.rst:3102 msgid "" @@ -5092,15 +5168,14 @@ msgstr "" "l'opérande de droite — cela aurait pour effet de *bloquer* un tel repli." #: reference/datamodel.rst:3108 -#, fuzzy msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method -- such as :meth:`~object.__add__` -- fails then the overall " "operation is not supported, which is why the reflected method is not called." msgstr "" "Pour des opérandes de même type, on considère que si la méthode originelle " -"(telle que :meth:`__add__`) échoue, alors l'opération en tant que telle " -"n'est pas autorisée et donc la méthode symétrique n'est pas appelée." +"(telle que :meth:`~object.__add__`) échoue, alors l'opération en tant que " +"telle n'est pas autorisée et donc la méthode symétrique n'est pas appelée." #, fuzzy #~ msgid "" diff --git a/reference/expressions.po b/reference/expressions.po index f186f1d2..40e592f6 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-18 15:46+0200\n" -"PO-Revision-Date: 2022-11-18 09:54+0100\n" +"PO-Revision-Date: 2022-12-04 14:55+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.2.1\n" #: reference/expressions.rst:6 msgid "Expressions" @@ -1289,7 +1289,7 @@ msgstr "" #: reference/expressions.rst:816 msgid "Subscriptions" -msgstr "Sélections" +msgstr "Indiçage (ou sélections)" #: reference/expressions.rst:831 msgid "" @@ -1298,8 +1298,8 @@ msgid "" "term:`generic class ` will generally return a :ref:" "`GenericAlias ` object." msgstr "" -"L'inscription d'une instance de :ref:`classe containeur ` " -"sélectionne généralement un élément du conteneur. L'inscription d'une :term:" +"L'indiçage d'une instance de :ref:`classe containeur ` " +"sélectionne généralement un élément du conteneur. L'indiçage d'une :term:" "`classe générique ` renvoie généralement un objet :ref:" "`GenericAlias `." @@ -1863,8 +1863,8 @@ msgid "" msgstr "" "L'opérateur unaire ``~`` (inversion) produit l'inversion bit à bit de son " "argument entier. L'inversion bit à bit de ``x`` est définie comme ``-(x" -"+1)``. Elle ne s'applique qu'aux nombres entiers et aux objets allogènes qui " -"surchargent la méthode spéciale :meth:`__invert__`." +"+1)``. Elle ne s'applique qu'aux nombres entiers et aux objets personnalisés " +"qui surchargent la méthode spéciale :meth:`__invert__`." #: reference/expressions.rst:1223 msgid "" @@ -2470,8 +2470,9 @@ msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" -"Les classes allogènes qui particularisent les opérations de comparaison " -"doivent, si possible, respecter quelques règles pour la cohérence :" +"Les classes définies par l'utilisateur qui particularisent les opérations de " +"comparaison doivent, si possible, respecter quelques règles pour la " +"cohérence :" #: reference/expressions.rst:1568 msgid "" @@ -2616,9 +2617,9 @@ msgid "" "in y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and " "``False`` otherwise." msgstr "" -"Pour les classes allogènes qui définissent la méthode :meth:`__contains__`, " -"``x in y`` renvoie ``True`` si ``y.__contains__(x)`` renvoie vrai, et " -"``False`` sinon." +"Pour les classes définies par l'utilisateur qui définissent la méthode :meth:" +"`__contains__`, ``x in y`` renvoie ``True`` si ``y.__contains__(x)`` renvoie " +"vrai, et ``False`` sinon." #: reference/expressions.rst:1636 msgid "" @@ -2628,11 +2629,12 @@ msgid "" "iterating over ``y``. If an exception is raised during the iteration, it is " "as if :keyword:`in` raised that exception." msgstr "" -"Pour les classes allogènes qui ne définissent pas :meth:`__contains__` mais " -"qui définissent :meth:`__iter__`, ``x in y`` vaut ``True`` s'il existe une " -"valeur ``z`` telle que l'expression ``x is z or x == z`` renvoie vrai lors " -"de l'itération sur ``y``. Si une exception est levée pendant l'itération, " -"c'est comme si :keyword:`in` avait levé cette exception." +"Pour les classes définies par l'utilisateur qui ne définissent pas :meth:" +"`__contains__` mais qui définissent :meth:`__iter__`, ``x in y`` vaut " +"``True`` s'il existe une valeur ``z`` telle que l'expression ``x is z or x " +"== z`` renvoie vrai lors de l'itération sur ``y``. Si une exception est " +"levée pendant l'itération, c'est comme si :keyword:`in` avait levé cette " +"exception." #: reference/expressions.rst:1642 msgid "" @@ -2693,9 +2695,9 @@ msgstr "" "suivantes sont considérées comme fausses : ``False``, ``None``, zéro quel " "que soit le type, la chaîne vide et tout conteneur vide (y compris les " "chaînes, *n*-uplets, listes, dictionnaires, ensembles, ensembles figés). " -"Toutes les autres valeurs sont considérées comme vraies. Les objets " -"allogènes peuvent personnaliser leur table de vérité en implémentant une " -"méthode :meth:`__bool__`." +"Toutes les autres valeurs sont considérées comme vraies. Les objets définis " +"par l'utilisateur peuvent personnaliser leur table de vérité en implémentant " +"une méthode :meth:`__bool__`." #: reference/expressions.rst:1701 msgid "" diff --git a/reference/import.po b/reference/import.po index 439c59b4..fa5130dc 100644 --- a/reference/import.po +++ b/reference/import.po @@ -1553,13 +1553,12 @@ msgstr "" "partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " "autres valeurs par défaut qui dépendent de l'installation et de " "l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " -"du système de fichiers, des fichiers zip et possiblement d'autres " -"\"endroits\" (lisez le module :mod:`site`) tels que des URL ou des requêtes " -"dans des bases de données où Python doit rechercher des modules. :data:`sys." -"path` ne doit contenir que des chaînes de caractères ou d'octets ; tous les " -"autres types sont ignorés. L'encodage des entrées de chaînes d'octets est " -"déterminé par chaque :term:`chercheur d'entrée dans path `." +"du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" +"\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " +"bases de données où Python doit rechercher des modules. :data:`sys.path` ne " +"doit contenir que des chaînes de caractères ou d'octets ; tous les autres " +"types sont ignorés. L'encodage des entrées de chaînes d'octets est déterminé " +"par chaque :term:`chercheur d'entrée dans path `." #: reference/import.rst:808 msgid "" @@ -1603,16 +1602,15 @@ msgstr "" "entry finder>` (:class:`~importlib.abc.PathEntryFinder`) approprié à cette " "entrée. Comme cette opération est coûteuse (elle peut faire appel à " "plusieurs ``stat()`` pour cela), le chercheur dans *path* maintient un cache " -"de correspondance entre les entrées et les \"chercheurs d'entrée dans " -"*path*\". Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de " -"son nom, ce cache stocke les objets chercheurs plutôt que les simples " -"objets :term:`importateurs `). Ainsi, la recherche coûteuse pour " -"une :term:`entrée de path ` spécifique n'a besoin d'être " -"effectuée qu'une seule fois par le :term:`chercheur d'entrée dans path `. Le code de l'utilisateur peut très bien supprimer les " -"entrées du cache :data:`sys.path_importer_cache`, forçant ainsi le chercheur " -"dans *path* à effectuer une nouvelle fois la recherche sur chaque entrée " -"[#fnpic]_." +"de correspondance entre les entrées et les \"chercheurs d'entrée dans *path*" +"\". Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son " +"nom, ce cache stocke les objets chercheurs plutôt que les simples objets :" +"term:`importateurs `). Ainsi, la recherche coûteuse pour une :term:" +"`entrée de path ` spécifique n'a besoin d'être effectuée qu'une " +"seule fois par le :term:`chercheur d'entrée dans path `. " +"Le code de l'utilisateur peut très bien supprimer les entrées du cache :data:" +"`sys.path_importer_cache`, forçant ainsi le chercheur dans *path* à " +"effectuer une nouvelle fois la recherche sur chaque entrée [#fnpic]_." #: reference/import.rst:830 msgid "" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 5ed8ce2b..ae917de1 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-22 23:13+0200\n" -"PO-Revision-Date: 2022-11-13 13:16+0100\n" +"PO-Revision-Date: 2022-11-21 22:32+0100\n" "Last-Translator: Samuel Giffard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -1165,7 +1165,7 @@ msgstr "" #: reference/lexical_analysis.rst:685 msgid "Formatted string literals" -msgstr "Chaînes de caractères formatées littérales" +msgstr "Chaînes de caractères littérales formatées" #: reference/lexical_analysis.rst:689 msgid "" @@ -1175,7 +1175,7 @@ msgid "" "While other string literals always have a constant value, formatted strings " "are really expressions evaluated at run time." msgstr "" -"Une :dfn:`chaine de caractères formatée littérale` ou :dfn:`f-string` est " +"Une :dfn:`chaine de caractères littérale formatée` ou :dfn:`f-string` est " "une chaine de caractères littérale préfixée par ``'f'`` ou ``'F'``. Ces " "chaines peuvent contenir des champs à remplacer, c'est-à-dire des " "expressions délimitées par des accolades ``{}``. Alors que les autres " diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index a7cec20a..bdd179d4 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-22 23:13+0200\n" -"PO-Revision-Date: 2022-11-11 18:17+0100\n" +"PO-Revision-Date: 2022-12-04 14:56+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.2.1\n" #: reference/simple_stmts.rst:6 msgid "Simple statements" @@ -306,8 +306,8 @@ msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" -"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " -"les arguments appropriés." +"Pour les objets définis par l'utilisateur, la méthode :meth:`__setitem__` " +"est appelée avec les arguments appropriés." #: reference/simple_stmts.rst:221 msgid "" @@ -729,9 +729,9 @@ msgid "" "returned value (if any) is used as an argument to construct :exc:" "`StopIteration` and becomes the :attr:`StopIteration.value` attribute." msgstr "" -"Dans une fonction génératrice, l'instruction :keyword:`return` indique que le " -"générateur est terminé et provoque la levée d'une :exc:`StopIteration`. La " -"valeur de retour (s'il y en a une) est utilisée comme argument pour " +"Dans une fonction génératrice, l'instruction :keyword:`return` indique que " +"le générateur est terminé et provoque la levée d'une :exc:`StopIteration`. " +"La valeur de retour (s'il y en a une) est utilisée comme argument pour " "construire l'exception :exc:`StopIteration` et devient l'attribut :attr:" "`StopIteration.value`." @@ -777,9 +777,9 @@ msgid "" msgstr "" "Les expressions et les instructions *yield* sont utilisées seulement dans la " "définition des fonctions :term:`générateurs ` et apparaissent " -"uniquement dans le corps de la fonction génératrice. L'utilisation de *yield* " -"dans la définition d'une fonction est suffisant pour que cette définition " -"crée une fonction génératrice au lieu d'une fonction normale." +"uniquement dans le corps de la fonction génératrice. L'utilisation de " +"*yield* dans la définition d'une fonction est suffisant pour que cette " +"définition crée une fonction génératrice au lieu d'une fonction normale." #: reference/simple_stmts.rst:547 msgid "" diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 2dd640a3..fac38db0 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-22 23:13+0200\n" -"PO-Revision-Date: 2022-10-18 12:27+0200\n" +"PO-Revision-Date: 2022-11-20 22:02+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 2.4.2\n" #: whatsnew/3.9.rst:3 msgid "What's New In Python 3.9" @@ -2209,11 +2209,11 @@ msgid "" "return a ``value`` itself, ``ExtSlice(slices)`` will return ``Tuple(slices, " "Load())``. (Contributed by Serhiy Storchaka in :issue:`34822`.)" msgstr "" -"Simplification de l'*AST* pour les souscriptions. Les indexations simples " -"seront représentées par leur valeur, les tranches étendues seront " -"représentées par des n-uplets. ``Index(value)`` va renvoyer ``value`` elle-" -"même, ``ExtSlice(slices)`` va renvoyer ``Tuple(slices, Load())`` " -"(contribution de *Serhiy Storchaka* dans :issue:`34822`)." +"Simplification de l'*AST* pour l'indiçage. Les indices simples sont " +"représentés par leur valeur, les tranches étendues sont représentées par des " +"*n*-uplets. ``Index(value)`` va renvoyer ``value`` elle-même, " +"``ExtSlice(slices)`` va renvoyer ``Tuple(slices, Load())`` (contribution de " +"*Serhiy Storchaka* dans :issue:`34822`)." #: whatsnew/3.9.rst:1102 msgid ""