Skip to content

Commit 8d0da04

Browse files
Christophe NanteuilchristopheNan
authored andcommitted
Revue de dataclasses (#17)
Co-authored-by: Christophe Nanteuil <[email protected]> Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/17 Co-authored-by: Christophe Nanteuil <[email protected]> Co-committed-by: Christophe Nanteuil <[email protected]>
1 parent c8b1212 commit 8d0da04

File tree

1 file changed

+77
-65
lines changed

1 file changed

+77
-65
lines changed

library/dataclasses.po

+77-65
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ msgstr ""
66
"Project-Id-Version: Python 3\n"
77
"Report-Msgid-Bugs-To: \n"
88
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
9-
"PO-Revision-Date: 2021-10-28 11:44+0200\n"
9+
"PO-Revision-Date: 2023-01-03 14:50+0100\n"
1010
"Last-Translator: David GIRAUD <[email protected]>\n"
1111
"Language-Team: FRENCH <[email protected]>\n"
1212
"Language: fr\n"
1313
"MIME-Version: 1.0\n"
1414
"Content-Type: text/plain; charset=UTF-8\n"
1515
"Content-Transfer-Encoding: 8bit\n"
16-
"X-Generator: Poedit 3.0\n"
16+
"X-Generator: Poedit 3.2.1\n"
1717

1818
#: library/dataclasses.rst:2
1919
msgid ":mod:`dataclasses` --- Data Classes"
20-
msgstr ":mod:`dataclasses` — Classes de Données"
20+
msgstr ":mod:`dataclasses` — Classes de données"
2121

2222
#: library/dataclasses.rst:10
2323
msgid "**Source code:** :source:`Lib/dataclasses.py`"
@@ -306,14 +306,13 @@ msgid ""
306306
"If false, or if ``__match_args__`` is already defined in the class, then "
307307
"``__match_args__`` will not be generated."
308308
msgstr ""
309-
"*match_args* : si vrai (``True`` est la valeur par défaut), le *n*-uplet "
309+
"*match_args* : si vrai (``True`` est la valeur par défaut), le *n*-uplet "
310310
"``__match_args__`` est créé automatiquement depuis la liste des paramètres "
311311
"de la méthode :meth:`__init__` générée (même si :meth:`__init__` n'est pas "
312312
"générée, voir ci-dessus). Si faux ou si ``__match_args__`` est déjà défini "
313313
"dans la classe alors ``__match_args__`` n'est pas créé."
314314

315315
#: library/dataclasses.rst:173
316-
#, fuzzy
317316
msgid ""
318317
"``kw_only``: If true (the default value is ``False``), then all fields will "
319318
"be marked as keyword-only. If a field is marked as keyword-only, then the "
@@ -323,7 +322,7 @@ msgid ""
323322
"term:`parameter` glossary entry for details. Also see the :const:`KW_ONLY` "
324323
"section."
325324
msgstr ""
326-
"*kw_only* : si vrai (``False`` est la valeur par défaut) alors tous les "
325+
"*kw_only* : si vrai (``False`` est la valeur par défaut) alors tous les "
327326
"champs sont marqués comme exclusivement nommés. Si un champ est marqué comme "
328327
"exclusivement nommé, le seul impact est que le champ de la méthode :meth:"
329328
"`__init__` générée devra être explicitement nommé lors de l'appel de la "
@@ -339,7 +338,7 @@ msgid ""
339338
"one. If :attr:`__slots__` is already defined in the class, then :exc:"
340339
"`TypeError` is raised."
341340
msgstr ""
342-
"*slot* : si vrai (``False`` est la valeur par défaut), l'attribut :attr:"
341+
"*slot* : si vrai (``False`` est la valeur par défaut), l'attribut :attr:"
343342
"`__slots__` est généré et une nouvelle classe est renvoyée à la place de "
344343
"celle d'origine. Si :attr:`__slots__` est déjà défini dans la classe alors "
345344
"une :exc:`TypeError` est levée."
@@ -353,6 +352,13 @@ msgid ""
353352
"a dataclass. Use :func:`fields` instead. To be able to determine inherited "
354353
"slots, base class ``__slots__`` may be any iterable, but *not* an iterator."
355354
msgstr ""
355+
"Si un nom de champ est déjà inclus dans le ``__slots__`` d'une classe mère, "
356+
"il n'est pas inclus dans les ``__slots__`` générés pour éviter de les "
357+
"remplacer <https://docs.python.org/3/ reference/datamodel.html#notes-on-"
358+
"using-slots>`_. Par conséquent, n'utilisez pas ``__slots__`` pour récupérer "
359+
"les noms de champ d'une classe de données. Utilisez :func:`fields` à la "
360+
"place. Pour pouvoir déterminer les *slots* hérités, ``__slots__`` de la "
361+
"classe mère peut être n'importe quel itérable, mais *pas* un itérateur."
356362

357363
#: library/dataclasses.rst:201
358364
msgid ""
@@ -361,6 +367,10 @@ msgid ""
361367
"an error to specify ``weakref_slot=True`` without also specifying "
362368
"``slots=True``."
363369
msgstr ""
370+
"``weakref_slot`` : s'il est vrai (la valeur par défaut est ``False``), "
371+
"ajoute un *slot* nommé \"__weakref__\", ce qui est nécessaire pour pouvoir "
372+
"référencer faiblement une instance. C'est une erreur de spécifier "
373+
"``weakref_slot=True`` sans spécifier également ``slots=True``."
364374

365375
#: library/dataclasses.rst:208
366376
msgid ""
@@ -518,9 +528,9 @@ msgid ""
518528
"``kw_only``: If true, this field will be marked as keyword-only. This is "
519529
"used when the generated :meth:`__init__` method's parameters are computed."
520530
msgstr ""
521-
"``kw_only`` : Si vrai ce champ est marqué comme exclusivement nommé. Cela "
522-
"est utilisé lors du traitement des paramètres de la méthode :meth:`__init__` "
523-
"générée."
531+
"``kw_only`` : s'il est vrai, ce champ est marqué comme exclusivement nommé. "
532+
"Cela est utilisé lors du traitement des paramètres de la méthode :meth:"
533+
"`__init__` générée."
524534

525535
#: library/dataclasses.rst:294
526536
msgid ""
@@ -564,21 +574,21 @@ msgstr ""
564574

565575
#: library/dataclasses.rst:321
566576
msgid "``name``: The name of the field."
567-
msgstr "*name* : le nom du champ ;"
577+
msgstr "*name* : le nom du champ ;"
568578

569579
#: library/dataclasses.rst:323
570580
msgid "``type``: The type of the field."
571-
msgstr "*type* : le type associé au champ par l'annotation ;"
581+
msgstr "*type* : le type associé au champ par l'annotation ;"
572582

573583
#: library/dataclasses.rst:325
574584
msgid ""
575585
"``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, "
576586
"``metadata``, and ``kw_only`` have the identical meaning and values as they "
577587
"do in the :func:`field` function."
578588
msgstr ""
579-
"*default*, *default_factory*, *init*, *repr*, *hash*, *compare*, *metadata* "
580-
"et *kw_only* qui correspondent aux paramètres de :func:`field` et en "
581-
"prennent les valeurs."
589+
"``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, "
590+
"``metadata`` et ``kw_only`` qui correspondent aux paramètres de :func:"
591+
"`field` et en prennent les valeurs."
582592

583593
#: library/dataclasses.rst:329
584594
msgid ""
@@ -602,65 +612,64 @@ msgstr ""
602612
"levée."
603613

604614
#: library/dataclasses.rst:341
605-
#, fuzzy
606615
msgid ""
607616
"Converts the dataclass ``obj`` to a dict (by using the factory function "
608617
"``dict_factory``). Each dataclass is converted to a dict of its fields, as "
609618
"``name: value`` pairs. dataclasses, dicts, lists, and tuples are recursed "
610619
"into. Other objects are copied with :func:`copy.deepcopy`."
611620
msgstr ""
612-
"Convertit *instance*, une instance d'une classe de données, en un "
613-
"dictionnaire. Le résultat est construit par la fonction *dict_factory*. Les "
614-
"clés et valeurs proviennent directement des champs. Les dictionnaires, "
615-
"listes, *n*-uplets et instances de classes de données sont traversés pour "
616-
"convertir récursivement toutes les instances de classes de données qu'ils "
617-
"contiennent. Voici un exemple :"
621+
"Convertit la classe de données ``obj`` en un dictionnaire (en utilisant la "
622+
"fonction ``dict_factory``). Les clés et valeurs proviennent directement des "
623+
"champs. Les dictionnaires, listes, *n*-uplets et instances de classes de "
624+
"données sont parcourus récursivement. Les autres objets sont copiés avec :"
625+
"func:`copy.deepcopy`."
618626

619627
#: library/dataclasses.rst:347
620628
msgid "Example of using :func:`asdict` on nested dataclasses::"
621629
msgstr ""
630+
"Exemple d'utilisation de :func:`asdict` sur des classes de données "
631+
"imbriquées ::"
622632

623633
#: library/dataclasses.rst:384
624634
msgid "To create a shallow copy, the following workaround may be used::"
625635
msgstr ""
636+
"Pour créer une copie superficielle, la solution de contournement suivante "
637+
"peut être utilisée ::"
626638

627639
#: library/dataclasses.rst:368
628-
#, fuzzy
629640
msgid ""
630641
":func:`asdict` raises :exc:`TypeError` if ``obj`` is not a dataclass "
631642
"instance."
632643
msgstr ""
633-
"Lève :exc:`TypeError` si *instance* n'est pas une instance d'une classe de "
634-
"données."
644+
":func:`asdict` lève :exc:`TypeError` si ``obj`` n'est pas une instance d'une "
645+
"classe de données."
635646

636647
#: library/dataclasses.rst:373
637-
#, fuzzy
638648
msgid ""
639649
"Converts the dataclass ``obj`` to a tuple (by using the factory function "
640650
"``tuple_factory``). Each dataclass is converted to a tuple of its field "
641651
"values. dataclasses, dicts, lists, and tuples are recursed into. Other "
642652
"objects are copied with :func:`copy.deepcopy`."
643653
msgstr ""
644-
"Convertit l'instance d'une classe de données *instance* en un *n*-uplet des "
645-
"valeurs de ses champs. Le résultat est construit par la fonction "
646-
"*tuple_factory*. Cette fonction agit récursivement sur les dictionnaires, "
647-
"listes, *n*-uplets et instances de classes de données."
654+
"Convertit l'instance d'une classe de données ``obj`` en un *n*-uplet (en "
655+
"utilisant la fonction ``tuple_factory``). Chaque classe de données est "
656+
"convertie vers un *n*-uplet des valeurs de ses champs. Cette fonction agit "
657+
"récursivement sur les dictionnaires, listes et *n*-uplets. Les autres objets "
658+
"sont copiés avec :func:`copy.deepcopy`."
648659

649660
#: library/dataclasses.rst:379
650661
msgid "Continuing from the previous example::"
651662
msgstr "Pour continuer l'exemple précédent :"
652663

653664
#: library/dataclasses.rst:388
654-
#, fuzzy
655665
msgid ""
656666
":func:`astuple` raises :exc:`TypeError` if ``obj`` is not a dataclass "
657667
"instance."
658668
msgstr ""
659-
"Lève :exc:`TypeError` si *instance* n'est pas une instance d'une classe de "
660-
"données."
669+
":func:`astuple` lève :exc:`TypeError` si ``obj`` n'est pas une instance "
670+
"d'une classe de données."
661671

662672
#: library/dataclasses.rst:393
663-
#, fuzzy
664673
msgid ""
665674
"Creates a new dataclass with name ``cls_name``, fields as defined in "
666675
"``fields``, base classes as given in ``bases``, and initialized with a "
@@ -671,15 +680,15 @@ msgid ""
671680
"``unsafe_hash``, ``frozen``, ``match_args``, ``kw_only``, ``slots``, and "
672681
"``weakref_slot`` have the same meaning as they do in :func:`dataclass`."
673682
msgstr ""
674-
"Crée une nouvelle classe de données avec le nom *cls_name*. Les champs "
675-
"proviennent de l'objet itérable *fields*. Les classes mères sont lues dans "
676-
"*bases*. L'espace de nommage de la classe est initialisé par *namespace*. La "
677-
"forme la plus générale d'un élément de *fields* est un triplet ``(nom, type, "
678-
"objet_Field)``. Le troisième élément peut être omis. On peut aussi passer un "
679-
"simple nom, auquel cas le type sera ``typing.Any``. Les paramètres restants, "
680-
"à savoir *init*, *repr*, *eq*, *order*, *unsafe_hash*, *frozen*, "
681-
"*march_args*, *kw_only* et *slots*, sont les mêmes que dans :func:"
682-
"`dataclass`."
683+
"Crée une nouvelle classe de données avec le nom ``cls_name``. Les champs "
684+
"proviennent de ``fields``. Les classes mères sont lues dans ``bases``. "
685+
"L'espace de nommage de la classe est initialisé par ``namespace``. "
686+
"``fields`` est un itérable dont les éléments sont individuellement de la "
687+
"forme ``name``, ``(name:type)`` ou ``(name, type, Field)``. Si seul ``name`` "
688+
"est fourni, ``typing.Any`` est utilisé pour ``type``. Les valeurs de "
689+
"``init``, ``repr``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, "
690+
"``match_args``, ``kw_only``, ``slots`` et ``weakref_slot`` ont la même "
691+
"signification que dans :func:`dataclass`."
683692

684693
#: library/dataclasses.rst:403
685694
msgid ""
@@ -698,18 +707,16 @@ msgid "Is equivalent to::"
698707
msgstr "est équivalent à ::"
699708

700709
#: library/dataclasses.rst:428
701-
#, fuzzy
702710
msgid ""
703711
"Creates a new object of the same type as ``obj``, replacing fields with "
704712
"values from ``changes``. If ``obj`` is not a Data Class, raises :exc:"
705713
"`TypeError`. If values in ``changes`` do not specify fields, raises :exc:"
706714
"`TypeError`."
707715
msgstr ""
708-
"Crée un nouvel objet du même type que *instance* en effectuant les "
709-
"remplacements donnés par *changes* dans ses champs. L'argument *instance* "
710-
"doit être une instance d'une classe de données, sans quoi :exc:`TypeError` "
711-
"est levée. De même, si une clé dans *changes* ne correspond à aucun champ de "
712-
"l'instance, :exc:`TypeError` est levée."
716+
"Crée un nouvel objet du même type que ``obj`` en affectant aux champs les "
717+
"valeurs données par ``changes``. Si ``obj`` n'est pas une classe de "
718+
"données, :exc:`TypeError` est levée. Si une clé dans ``changes`` ne "
719+
"correspond à aucun champ de l'instance, :exc:`TypeError` est levée."
713720

714721
#: library/dataclasses.rst:433
715722
msgid ""
@@ -773,7 +780,7 @@ msgid ""
773780
msgstr ""
774781
"Pour vérifier qu'un objet *obj* est une instance d'une classe de données, et "
775782
"non pas lui-même une classe de données, ajoutez le test ``not "
776-
"isinstance(obj, type)`` ::"
783+
"isinstance(obj, type)`` ::"
777784

778785
#: library/dataclasses.rst:468
779786
msgid "A sentinel value signifying a missing default or default_factory."
@@ -805,7 +812,7 @@ msgid ""
805812
"In this example, the fields ``y`` and ``z`` will be marked as keyword-only "
806813
"fields::"
807814
msgstr ""
808-
"Dans cette exemple ``y`` et ``z`` sont marqués comme exclusivement nommés ::"
815+
"Dans cet exemple ``y`` et ``z`` sont marqués comme exclusivement nommés ::"
809816

810817
#: library/dataclasses.rst:492
811818
msgid ""
@@ -1023,10 +1030,10 @@ msgid ""
10231030
"parameters. This is a requirement of how keyword-only parameters are "
10241031
"implemented in Python: they must come after non-keyword-only parameters."
10251032
msgstr ""
1026-
"Lorsque les paramètres requis pour :meth:`__init__` sont préparés, tout ceux "
1027-
"marqués comme exclusivement nommé sont déplacés pour être positionnés après "
1033+
"Lorsque les paramètres requis pour :meth:`__init__` sont préparés, tous ceux "
1034+
"marqués comme exclusivement nommés sont déplacés pour être positionnés après "
10281035
"tous ceux non exclusivement nommés. Ceci est un prérequis de la façon dont "
1029-
"les paramètres exclusivement nommés sont implémentés en Python : ils sont "
1036+
"les paramètres exclusivement nommés sont implémentés en Python : ils sont "
10301037
"après les paramètres non exclusivement nommés."
10311038

10321039
#: library/dataclasses.rst:645
@@ -1036,11 +1043,11 @@ msgid ""
10361043
msgstr ""
10371044
"Dans cet exemple, ``Base.y``, ``Base.w``, et ``D.t`` sont des champs "
10381045
"exclusivement nommés alors que ``Base.x`` et ``D.z`` sont des champs "
1039-
"normaux ::"
1046+
"normaux ::"
10401047

10411048
#: library/dataclasses.rst:660
10421049
msgid "The generated :meth:`__init__` method for ``D`` will look like::"
1043-
msgstr "La méthode :meth:`__init__` générée pour ``D`` ressemble à ::"
1050+
msgstr "La méthode :meth:`__init__` générée pour ``D`` ressemble à ::"
10441051

10451052
#: library/dataclasses.rst:664
10461053
msgid ""
@@ -1049,7 +1056,7 @@ msgid ""
10491056
"parameters derived from keyword-only fields."
10501057
msgstr ""
10511058
"Les paramètres ont été réarrangés par rapport à leur ordre d'apparition dans "
1052-
"la liste des champs : les paramètres provenant des attributs normaux sont "
1059+
"la liste des champs : les paramètres provenant des attributs normaux sont "
10531060
"suivis par les paramètres qui proviennent des attributs exclusivement nommés."
10541061

10551062
#: library/dataclasses.rst:668
@@ -1115,7 +1122,6 @@ msgid "it would generate code similar to::"
11151122
msgstr "il générerait un code équivalent à :"
11161123

11171124
#: library/dataclasses.rst:727
1118-
#, fuzzy
11191125
msgid ""
11201126
"This has the same issue as the original example using class ``C``. That is, "
11211127
"two instances of class ``D`` that do not specify a value for ``x`` when "
@@ -1128,13 +1134,14 @@ msgid ""
11281134
"solution, but it does protect against many common errors."
11291135
msgstr ""
11301136
"On se retrouve avec le même problème qu'au premier exemple avec la classe "
1131-
"``C``. Les classes de données étant créées comme toutes les autres classes "
1132-
"Python, leur comportement est identique. Ainsi, deux instances distinctes de "
1133-
"``D`` où l'attribut ``x`` a été laissé à sa valeur par défaut partagent la "
1134-
"même copie de l'objet ``x``. Il n'y a aucun moyen commun de détecter cette "
1135-
"situation. C'est pourquoi le décorateur :func:`dataclass` lève :exc:"
1136-
"`TypeError` si une valeur par défaut est de type ``list``, ``dict`` ou "
1137-
"``set`` est détectée. Cette solution n'est pas parfaite, mais permet "
1137+
"``C``. C'est-à-dire que deux instances de la classe ``D`` qui ne spécifient "
1138+
"pas de valeur pour ``x`` lors de leur création partageront la même copie de "
1139+
"``x``. Les classes de données étant créées comme toutes les autres classes "
1140+
"Python, leur comportement est identique. Il n'y a aucun moyen générique pour "
1141+
"les classes de données de détecter cette situation. C'est pourquoi le "
1142+
"décorateur :func:`dataclass` lève :exc:`TypeError` s'il détecte un paramètre "
1143+
"par défaut non hachable. L'hypothèse est que si une valeur ne peut pas être "
1144+
"hachée, elle est modifiable. Cette solution n'est pas parfaite, mais permet "
11381145
"d'éviter la majorité des erreurs."
11391146

11401147
#: library/dataclasses.rst:738
@@ -1145,12 +1152,17 @@ msgstr ""
11451152
"Pour qu'un champ d'un type muable soit par défaut initialisé à un nouvel "
11461153
"objet pour chaque instance, utilisez une fonction de fabrique :"
11471154

1155+
# suit un ':'
11481156
#: library/dataclasses.rst:747
11491157
msgid ""
11501158
"Instead of looking for and disallowing objects of type ``list``, ``dict``, "
11511159
"or ``set``, unhashable objects are now not allowed as default values. "
11521160
"Unhashability is used to approximate mutability."
11531161
msgstr ""
1162+
"au lieu de rechercher et d'interdire les objets de type ``list``, ``dict`` "
1163+
"ou ``set``, les objets non hachables ne sont plus autorisés comme valeurs "
1164+
"par défaut. Le caractère non-hachable est utilisé pour approximer la "
1165+
"muabilité."
11541166

11551167
#~ msgid "Module-level decorators, classes, and functions"
11561168
#~ msgstr "Décorateurs, classes et fonctions du module"

0 commit comments

Comments
 (0)