diff --git a/reference/datamodel.po b/reference/datamodel.po index bb322662..145af33a 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-04-09 23:05+0200\n" +"PO-Revision-Date: 2018-04-14 16:10+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1852,7 +1852,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1075 msgid "Special method names" -msgstr "" +msgstr "Méthodes spéciales" #: ../Doc/reference/datamodel.rst:1081 msgid "" @@ -1867,6 +1867,17 @@ msgid "" "appropriate method is defined (typically :exc:`AttributeError` or :exc:" "`TypeError`)." msgstr "" +"Une classe peut implémenter certaines opérations que l'on invoque par une " +"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe) en " +"définissant des méthodes aux noms particuliers. C'est 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:`AttributeError` ou :exc:" +"`TypeError`)." #: ../Doc/reference/datamodel.rst:1091 msgid "" @@ -1876,6 +1887,11 @@ msgid "" "instances will raise a :exc:`TypeError` (without falling back to :meth:" "`__getitem__`). [#]_" 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__`, la classe n'est pas itérable et appeler :func:" +"`iter` sur une instance lève :exc:`TypeError` (sans se replier sur :meth:" +"`__getitem__`) [#]_." #: ../Doc/reference/datamodel.rst:1097 msgid "" @@ -1886,10 +1902,16 @@ msgid "" "sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " "the W3C's Document Object Model.)" msgstr "" +"Lorsque vous implémentez une classe qui émule un type natif, il est " +"important que cette émulation n'implémente que ce qui fait sens pour l'objet " +"qui est modélisé. Par exemple, la recherche d'éléments individuels d'une " +"séquence peut faire sens, mais pas l'extraction d'une tranche (un exemple " +"est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des " +"documents W3C)." #: ../Doc/reference/datamodel.rst:1108 msgid "Basic customization" -msgstr "" +msgstr "Personnalisation de base" #: ../Doc/reference/datamodel.rst:1114 msgid "" @@ -1900,6 +1922,13 @@ msgid "" "(the call to the class). The return value of :meth:`__new__` should be the " "new object instance (usually an instance of *cls*)." msgstr "" +"Appelée pour créer une nouvelle instance de la classe *cls*. La méthode :" +"meth:`__new__` est statique (c'est un cas particulier, vous n'avez pas " +"besoin de la déclarer comme telle) qui prend comme premier argument la " +"classe pour laquelle on veut créer une instance. Les autres arguments sont " +"ceux passés à l'expression de l'objet constructeur (l'appel à la classe). La " +"valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet " +"(classiquement une instance de *cls*)." #: ../Doc/reference/datamodel.rst:1121 msgid "" @@ -1908,6 +1937,10 @@ msgid "" "with appropriate arguments and then modifying the newly-created instance as " "necessary before returning it." msgstr "" +"Une implémentation typique crée une nouvelle instance de la classe en " +"invoquant la méthode :meth:`__new__` de la superclasse à l'aide de ``super()." +"__new__(cls[, ...])`` avec les arguments adéquats, puis modifie l'instance " +"nouvellement créée en tant que de besoin avant de la renvoyer." #: ../Doc/reference/datamodel.rst:1126 msgid "" @@ -1916,12 +1949,18 @@ msgid "" "*self* is the new instance and the remaining arguments are the same as were " "passed to :meth:`__new__`." msgstr "" +"Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:" +"`__init__` de la nouvelle instance sera invoquée avec " +"``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " +"arguments sont les mêmes que ceux passés à :meth:`__new__`." #: ../Doc/reference/datamodel.rst:1131 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" +"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" +"meth:`__init__` de la nouvelle instance ne sera pas invoquée." #: ../Doc/reference/datamodel.rst:1134 msgid "" @@ -1930,6 +1969,10 @@ msgid "" "commonly overridden in custom metaclasses in order to customize class " "creation." msgstr "" +"L'objectif de :meth:`__new__` est principalement d'autoriser les sous-" +"classes de types immuables (comme int, str ou tuple) à particulariser la " +"création des instances. Elle est aussi souvent surchargée dans les " +"métaclasses pour particulariser la création des classes." #: ../Doc/reference/datamodel.rst:1143 msgid "" @@ -1940,6 +1983,13 @@ msgid "" "ensure proper initialization of the base class part of the instance; for " "example: ``super().__init__([args...])``." msgstr "" +"Appelée après la création de l'instance (par :meth:`__new__`), mais avant le " +"retour vers l'appelant. Les arguments sont ceux passés à l'expression du " +"constructeur de classe. Si la classe de base possède une méthode :meth:" +"`__init__`, la méthode :meth:`__init__` de la classe dérivée, si elle " +"existe, doit être explicitement appelée pour assurer une initialisation " +"correcte de la partie classe de base de l'instance ; par exemple : ``super()." +"__init__([args...])``." #: ../Doc/reference/datamodel.rst:1150 msgid "" @@ -1948,6 +1998,10 @@ msgid "" "it), no non-``None`` value may be returned by :meth:`__init__`; doing so " "will cause a :exc:`TypeError` to be raised at runtime." msgstr "" +"Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer " +"des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le " +"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur``None`` ; " +"sinon une exception :exc:`TypeError` est levée à l'exécution." #: ../Doc/reference/datamodel.rst:1163 msgid "" @@ -1957,6 +2011,11 @@ msgid "" "explicitly call it to ensure proper deletion of the base class part of the " "instance." msgstr "" +"Appelée au moment où une instance est sur le point d'être détruite. On " +"l'appelle aussi finaliseur ou (improprement) destructeur. Si une classe de " +"base possède une méthode :meth:`__del__`, la méthode :meth:`__del__` de la " +"classe dérivée, si elle existe, doit explicitement l'appeler pour s'assurer " +"de l'effacement correct de la partie classe de base de l'instance." #: ../Doc/reference/datamodel.rst:1169 msgid "" @@ -1967,12 +2026,20 @@ msgid "" "about to be destroyed; the current :term:`CPython` implementation only calls " "it once." msgstr "" +"Il est possible (mais pas recommandé) que la méthode :meth:`__del__` retarde " +"la destruction de l'instance en créant une nouvelle référence vers cet " +"objet. Python appelle ceci la *résurrection* d'objet. En fonction de " +"l'implémentation, :meth:`__del__` peut être appelée une deuxième fois au " +"moment où l'objet ressuscité va être détruit ; l'implémentation actuelle de :" +"term:`CPython` ne l'appelle qu'une fois." #: ../Doc/reference/datamodel.rst:1176 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits." msgstr "" +"Il n'est pas garanti que soient appelées les méthodes :meth:`__del__` des " +"objets qui existent toujours quand l'interpréteur termine." #: ../Doc/reference/datamodel.rst:1181 msgid "" @@ -1980,10 +2047,13 @@ msgid "" "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" +"``del x`` n'appelle pas directement ``x.__del__()`` --- il décrémente le " +"compteur de références de ``x``. La méthode *del* n'est appelée que quand le " +"compteur de références de ``x`` atteint zéro." #: ../Doc/reference/datamodel.rst:1196 msgid "Documentation for the :mod:`gc` module." -msgstr "" +msgstr "Documentation du module :mod:`gc`." #: ../Doc/reference/datamodel.rst:1200 msgid "" @@ -1991,6 +2061,9 @@ msgid "" "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 " +"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 :" #: ../Doc/reference/datamodel.rst:1204 msgid "" @@ -2000,6 +2073,12 @@ msgid "" "may already be taken by the code that gets interrupted to execute :meth:" "`__del__`." msgstr "" +":meth:`__del__` peut être invoquée quand du code arbitraire est en cours " +"d'exécution, et ce dans n'importe quel thread. Si :meth:`__del__` a besoin " +"de poser un verrou ou d'accéder à tout autre ressource bloquante, elle peut " +"provoquer un blocage mutuel (*deadlock* en anglais) car la ressource peut " +"être déjà utilisée par le code qui est interrompu pour exécuter la méthode :" +"meth:`__del__`." #: ../Doc/reference/datamodel.rst:1210 msgid "" @@ -2011,6 +2090,15 @@ msgid "" "such globals exist, this may help in assuring that imported modules are " "still available at the time when the :meth:`__del__` method is called." msgstr "" +":meth:`__del__` peut être exécutée pendant que l'interpréteur se ferme. En " +"conséquence, les variables globales auxquelles elle souhaite accéder (y " +"compris les autres modules) peuvent déjà être détruites ou assignées à " +"``None``. Python garantit que les variables globales dont le nom commence " +"par un tiret bas sont supprimées de leur module avant que les autres " +"variables globales ne le soient ; si aucune autre référence vers ces " +"variables globales n'existe, cela peut aider à s'assurer que les modules " +"importés soient toujours accessibles au moment où la méthode :meth:`__del__` " +"est appelée." #: ../Doc/reference/datamodel.rst:1225 msgid "" @@ -2023,12 +2111,24 @@ msgid "" "`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " "an \"informal\" string representation of instances of that class is required." msgstr "" +"Appelée par la fonction native :func:`rep` pour calculer la représentation " +"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour cela " +"ressemble à une expression Python valide qui peut être utilisée pour recréer " +"un objet avec la même valeur (dans un environnement donné). Si ce n'est pas " +"possible, une chaîne de la forme ``<...une description utile...>`` est " +"renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si une " +"classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" +"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"chaîne de caractères est demandée pour une instance de cette classe." #: ../Doc/reference/datamodel.rst:1234 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous." msgstr "" +"Cette fonction est principalement utilisée à fins de débogage, il est donc " +"important que la représentation donne beaucoup d'informations et ne soit pas " +"ambigüe." #: ../Doc/reference/datamodel.rst:1245 msgid "" @@ -2037,6 +2137,10 @@ msgid "" "string representation of an object. The return value must be a :ref:`string " "` object." msgstr "" +"Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" +"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" +"\" ou joliment mise en forme de représentation de l'objet. La valeur " +"renvoyée doit être un objet :ref:`string `." #: ../Doc/reference/datamodel.rst:1250 msgid "" @@ -2044,18 +2148,25 @@ msgid "" "expectation that :meth:`__str__` return a valid Python expression: a more " "convenient or concise representation can be used." msgstr "" +"Cette méthode diffère de :meth:`object.__repr__` car il n'est pas attendu " +"que :meth:`__str__` renvoie une expression Python valide : une " +"représentation plus agréable à lire ou plus concise peut être utilisée." #: ../Doc/reference/datamodel.rst:1254 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`." #: ../Doc/reference/datamodel.rst:1264 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object." msgstr "" +"Appelée par :ref:`bytes ` pour calculer une représentation en " +"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." #: ../Doc/reference/datamodel.rst:1275 msgid "" @@ -2068,21 +2179,34 @@ msgid "" "classes will either delegate formatting to one of the built-in types, or use " "a similar formatting option syntax." msgstr "" +"Appelée par la fonction native :func:`format` et, par extension, lors de " +"l'évaluation de :ref:`formatted string literals ` ou de 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." #: ../Doc/reference/datamodel.rst:1285 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" +"Lisez :ref:`formatspec` pour une description de la syntaxe standard du " +"formatage." #: ../Doc/reference/datamodel.rst:1287 msgid "The return value must be a string object." -msgstr "" +msgstr "La valeur renvoyée doit être un objet chaîne de caractères." #: ../Doc/reference/datamodel.rst:1289 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` si " +"vous lui passez une chaîne non vide." #: ../Doc/reference/datamodel.rst:1305 msgid "" @@ -2092,6 +2216,11 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" +"Ce sont les méthodes dites \"de comparaisons riches\". La correspondance " +"entre les symboles opérateurs et les noms de méthodes est la suivante : " +"``xy`` appelle " +"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." #: ../Doc/reference/datamodel.rst:1311 msgid "" @@ -2103,6 +2232,14 @@ msgid "" "statement), Python will call :func:`bool` on the value to determine if the " "result is true or false." msgstr "" +"Une méthode de comparaison riche peut renvoyer le singleton " +"``NotImplemented`` si elle n'implémente pas l'opération pour une paire " +"donnée d'arguments. Par convention, ``False`` et ``True`` sont renvoyées " +"pour une comparaison qui a réussi. Cependant, ces méthodes peuvent renvoyer " +"n'importe quelle valeur donc, si l'opérateur de comparaison est utilisé dans " +"un contexte booléen (par exemple dans une condition d'une instruction " +"``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le " +"résultat est faux ou vrai." #: ../Doc/reference/datamodel.rst:1318 msgid "" @@ -2113,6 +2250,12 @@ msgid "" "ordering operations from a single root operation, see :func:`functools." "total_ordering`." msgstr "" +"Par défaut, :meth:`__ne__` délègue à :meth:`__eq__` et renvoie le résultat " +"inverse, sauf si c'est ``NotImplemented``. Il n'y a pas d'autres relations " +"implicites pour les opérateurs de comparaison. Par exemple, ``(x.__hash__``." msgstr "" +"Si une classe qui surcharge :meth:`__eq__` a besoin de conserver " +"l'implémentation de :meth:`__hash__` de la classe parente, vous devez " +"l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = " +".__hash__``." #: ../Doc/reference/datamodel.rst:1392 msgid "" @@ -2200,6 +2397,11 @@ msgid "" "`TypeError` would be incorrectly identified as hashable by an " "``isinstance(obj, collections.Hashable)`` call." msgstr "" +"Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul " +"des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de " +"la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui " +"lève une :exc:`TypeError` serait incorrectement identifiée comme hachable " +"par un appel à ``isinstance(obj, collections.Hashable)``." #: ../Doc/reference/datamodel.rst:1401 msgid "" @@ -2208,6 +2410,11 @@ msgid "" "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, " +"*bytes* et objets datetime 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." #: ../Doc/reference/datamodel.rst:1406 msgid "" @@ -2216,6 +2423,11 @@ msgid "" "insertion, O(n^2) complexity. See http://www.ocert.org/advisories/" "ocert-2011-003.html for details." 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^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " +"obtenir les détails." #: ../Doc/reference/datamodel.rst:1411 msgid "" @@ -2223,6 +2435,10 @@ msgid "" "mappings. Python has never made guarantees about this ordering (and it " "typically varies between 32-bit and 64-bit builds)." msgstr "" +"Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur " +"les dictionnaires, les ensembles et les autres tableaux de correspondances. " +"Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, l'ordre n'est " +"pas le même entre les implémentations 32 et 64 bits)." #: ../Doc/reference/datamodel.rst:1415 msgid "See also :envvar:`PYTHONHASHSEED`." @@ -2230,7 +2446,7 @@ msgstr "Voir aussi :envvar:`PYTHONHASHSEED`." #: ../Doc/reference/datamodel.rst:1417 msgid "Hash randomization is enabled by default." -msgstr "" +msgstr "la randomisation des empreintes est activée par défaut." #: ../Doc/reference/datamodel.rst:1425 msgid "" @@ -2240,6 +2456,12 @@ msgid "" "considered true if its result is nonzero. If a class defines neither :meth:" "`__len__` nor :meth:`__bool__`, all its instances are considered true." msgstr "" +"Appelée pour implémenter le test de vérité et l'opération native " +"``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode " +"n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et " +"l'objet est considéré vrai si le résultat est non nul. Si une classe ne " +"définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont " +"considérées comme vraies." #: ../Doc/reference/datamodel.rst:1436 msgid "Customizing attribute access"