diff --git a/Makefile b/Makefile index b8775833..c797d0a5 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ # from which we generated our po files. We use it here so when we # test build, we're building with the .rst files that generated our # .po files. -CPYTHON_CURRENT_COMMIT := 8fc828ec4e867c111cef137a2daeea6c3d5db2c7 +CPYTHON_CURRENT_COMMIT := b30934e9afb0af3f8e2e5f0992445be775b3c630 CPYTHON_PATH := ../cpython/ diff --git a/c-api/dict.po b/c-api/dict.po index 87411f6e..b72b4837 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-24 09:01+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2018-07-03 11:36+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -92,50 +92,51 @@ msgstr "" #: c-api/dict.rst:83 msgid "" "Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " -"if it isn't, :exc:`TypeError` is raised. Return ``0`` on success or ``-1`` " -"on failure." +"if it isn't, :exc:`TypeError` is raised. If *key* is not in the dictionary, :" +"exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure." msgstr "" -#: c-api/dict.rst:90 +#: c-api/dict.rst:91 msgid "" "Remove the entry in dictionary *p* which has a key specified by the string " -"*key*. Return ``0`` on success or ``-1`` on failure." +"*key*. If *key* is not in the dictionary, :exc:`KeyError` is raised. Return " +"``0`` on success or ``-1`` on failure." msgstr "" -#: c-api/dict.rst:96 +#: c-api/dict.rst:98 msgid "" "Return the object from dictionary *p* which has a key *key*. Return " "``NULL`` if the key *key* is not present, but *without* setting an exception." msgstr "" -#: c-api/dict.rst:99 +#: c-api/dict.rst:101 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods will get suppressed. To get error reporting use :c:func:" "`PyDict_GetItemWithError()` instead." msgstr "" -#: c-api/dict.rst:106 +#: c-api/dict.rst:108 msgid "" "Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " "Return ``NULL`` **with** an exception set if an exception occurred. Return " "``NULL`` **without** an exception set if the key wasn't present." msgstr "" -#: c-api/dict.rst:114 +#: c-api/dict.rst:116 msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" "type:`const char*`, rather than a :c:type:`PyObject*`." msgstr "" -#: c-api/dict.rst:117 +#: c-api/dict.rst:119 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods and creating a temporary string object will get suppressed. " "To get error reporting use :c:func:`PyDict_GetItemWithError()` instead." msgstr "" -#: c-api/dict.rst:125 +#: c-api/dict.rst:127 msgid "" "This is the same as the Python-level :meth:`dict.setdefault`. If present, " "it returns the value corresponding to *key* from the dictionary *p*. If the " @@ -145,29 +146,29 @@ msgid "" "the insertion." msgstr "" -#: c-api/dict.rst:135 +#: c-api/dict.rst:137 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" -#: c-api/dict.rst:140 +#: c-api/dict.rst:142 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" -#: c-api/dict.rst:145 +#: c-api/dict.rst:147 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." msgstr "" -#: c-api/dict.rst:153 +#: c-api/dict.rst:155 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." msgstr "" -#: c-api/dict.rst:159 +#: c-api/dict.rst:161 msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" "`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " @@ -181,18 +182,18 @@ msgid "" "structure is sparse, the offsets are not consecutive." msgstr "" -#: c-api/dict.rst:170 +#: c-api/dict.rst:172 msgid "For example::" msgstr "Par exemple ::" -#: c-api/dict.rst:180 +#: c-api/dict.rst:182 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " "modify the values of the keys as you iterate over the dictionary, but only " "so long as the set of keys does not change. For example::" msgstr "" -#: c-api/dict.rst:205 +#: c-api/dict.rst:207 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " "*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " @@ -202,7 +203,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: c-api/dict.rst:215 +#: c-api/dict.rst:217 msgid "" "This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." "update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " @@ -211,7 +212,7 @@ msgid "" "exception was raised." msgstr "" -#: c-api/dict.rst:224 +#: c-api/dict.rst:226 msgid "" "Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " "*seq2* must be an iterable object producing iterable objects of length 2, " diff --git a/faq/programming.po b/faq/programming.po index f73a48d6..02efb07d 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-05-30 17:14+0900\n" "Last-Translator: Samuel Giffard \n" "Language-Team: FRENCH \n" @@ -1832,8 +1832,9 @@ msgid "" msgstr "" #: faq/programming.rst:1179 -msgid "If space is not an issue, the list comprehension may be fastest." -msgstr "" +#, fuzzy +msgid "The list comprehension may be fastest." +msgstr "Utilisez une liste en compréhension ::" #: faq/programming.rst:1183 msgid "How do you make an array in Python?" diff --git a/library/mailbox.po b/library/mailbox.po index 0c0fa8fa..9ed515b3 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -5,14 +5,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-09-24 20:59+0100\n" +"Last-Translator: James Adjinwa \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" -"Last-Translator: James Adjinwa \n" "X-Generator: Poedit 2.3\n" #: library/mailbox.rst:2 diff --git a/library/math.po b/library/math.po index a99ab2bf..e546a03a 100644 --- a/library/math.po +++ b/library/math.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2019-10-09 21:42+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" @@ -221,7 +221,7 @@ msgstr "" msgid "" "Return the greatest common divisor of the specified integer arguments. If " "any of the arguments is nonzero, then the returned value is the largest " -"positive integer that is a divisor af all arguments. If all arguments are " +"positive integer that is a divisor of all arguments. If all arguments are " "zero, then the returned value is ``0``. ``gcd()`` without arguments returns " "``0``." msgstr "" diff --git a/library/pathlib.po b/library/pathlib.po index 7d3fb70d..b995127a 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-09-30 16:07+0200\n" "Last-Translator: Vincent Poulailleau \n" "Language-Team: FRENCH \n" @@ -945,12 +945,19 @@ msgstr "" "l'utilisateur en a la permission. *target* peut être soit une chaîne de " "caractères, soit un autre chemin ::" +#: library/pathlib.rst:1025 +msgid "" +"The target path may be absolute or relative. Relative paths are interpreted " +"relative to the current working directory, *not* the directory of the Path " +"object." +msgstr "" + # « nouveau dans la version … » -#: library/pathlib.rst:1021 +#: library/pathlib.rst:1029 msgid "Added return value, return the new Path instance." msgstr "ajout de la valeur de retour, renvoie une nouvelle instance *Path*." -#: library/pathlib.rst:1017 +#: library/pathlib.rst:1021 msgid "" "Rename this file or directory to the given *target*, and return a new Path " "instance pointing to *target*. If *target* points to an existing file or " @@ -960,7 +967,7 @@ msgstr "" "nouvelle instance de *Path* pointant sur *target*. Si *target* pointe sur un " "fichier ou un dossier existant, il est systématiquement remplacé." -#: library/pathlib.rst:1027 +#: library/pathlib.rst:1035 msgid "" "Make the path absolute, resolving any symlinks. A new path object is " "returned::" @@ -968,7 +975,7 @@ msgstr "" "Rend le chemin absolu, résolvant les liens symboliques. Un nouveau chemin " "est renvoyé ::" -#: library/pathlib.rst:1036 +#: library/pathlib.rst:1044 msgid "" "\"``..``\" components are also eliminated (this is the only method to do " "so)::" @@ -976,7 +983,7 @@ msgstr "" "Les composantes \"``..``\" sont aussi éliminées (c'est la seule méthode pour " "le faire) ::" -#: library/pathlib.rst:1042 +#: library/pathlib.rst:1050 msgid "" "If the path doesn't exist and *strict* is ``True``, :exc:`FileNotFoundError` " "is raised. If *strict* is ``False``, the path is resolved as far as " @@ -991,11 +998,11 @@ msgstr "" "résolution du chemin, :exc:`RuntimeError` est levée." # « nouveau dans la version … » -#: library/pathlib.rst:1048 +#: library/pathlib.rst:1056 msgid "The *strict* argument (pre-3.6 behavior is strict)." msgstr "l'argument *strict* (le comportement *pré-3.6* est strict par défaut)." -#: library/pathlib.rst:1053 +#: library/pathlib.rst:1061 msgid "" "This is like calling :func:`Path.glob` with \"``**/``\" added in front of " "the given relative *pattern*::" @@ -1003,7 +1010,7 @@ msgstr "" "C'est similaire à appeler :func:`Path.glob` avec \"``**/``\" ajouté au début " "du motif *pattern* relatif ::" -#: library/pathlib.rst:1063 +#: library/pathlib.rst:1071 msgid "" "Raises an :ref:`auditing event ` ``pathlib.Path.rglob`` with " "arguments ``self``, ``pattern``." @@ -1011,11 +1018,11 @@ msgstr "" "Lève un :ref:`évènement d’audit ` ``pathlib.Path.glob`` avec comme " "arguments ``self`` et ``pattern``." -#: library/pathlib.rst:1068 +#: library/pathlib.rst:1076 msgid "Remove this directory. The directory must be empty." msgstr "Supprime ce dossier. Le dossier doit être vide." -#: library/pathlib.rst:1073 +#: library/pathlib.rst:1081 msgid "" "Return whether this path points to the same file as *other_path*, which can " "be either a Path object, or a string. The semantics are similar to :func:" @@ -1025,7 +1032,7 @@ msgstr "" "être soit un chemin, soit une chaîne de caractères. La sémantique est " "similaire à :func:`os.path.samefile` et :func:`os.path.samestat`." -#: library/pathlib.rst:1077 +#: library/pathlib.rst:1085 msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." @@ -1033,7 +1040,7 @@ msgstr "" ":exc:`OSError` peut être levée si l'un des fichiers ne peut être accédé pour " "quelque raison." -#: library/pathlib.rst:1094 +#: library/pathlib.rst:1102 msgid "" "Make this path a symbolic link to *target*. Under Windows, " "*target_is_directory* must be true (default ``False``) if the link's target " @@ -1044,14 +1051,14 @@ msgstr "" "si la cible du lien est un dossier. Sous POSIX, la valeur de " "*target_is_directory* est ignorée." -#: library/pathlib.rst:1110 +#: library/pathlib.rst:1118 msgid "" "The order of arguments (link, target) is the reverse of :func:`os.symlink`'s." msgstr "" "L'ordre des arguments (lien, cible) est l'opposé de ceux de :func:`os." "symlink`." -#: library/pathlib.rst:1116 +#: library/pathlib.rst:1124 msgid "" "Create a file at this given path. If *mode* is given, it is combined with " "the process' ``umask`` value to determine the file mode and access flags. " @@ -1065,7 +1072,7 @@ msgstr "" "*exist_ok* est vrai (et si l'heure de modification est mise à jour avec " "l'heure courante), sinon :exc:`FileExistsError` est levée." -#: library/pathlib.rst:1125 +#: library/pathlib.rst:1133 msgid "" "Remove this file or symbolic link. If the path points to a directory, use :" "func:`Path.rmdir` instead." @@ -1073,7 +1080,7 @@ msgstr "" "Supprime ce fichier ou lien symbolique. Si le chemin pointe vers un dossier, " "utilisez :func:`Path.rmdir` à la place." -#: library/pathlib.rst:1128 +#: library/pathlib.rst:1136 msgid "" "If *missing_ok* is false (the default), :exc:`FileNotFoundError` is raised " "if the path does not exist." @@ -1081,7 +1088,7 @@ msgstr "" "Si *missing_ok* est faux (valeur par défaut), une :exc:`FileNotFoundError` " "est levée si le chemin n'existe pas." -#: library/pathlib.rst:1131 +#: library/pathlib.rst:1139 msgid "" "If *missing_ok* is true, :exc:`FileNotFoundError` exceptions will be ignored " "(same behavior as the POSIX ``rm -f`` command)." @@ -1089,15 +1096,15 @@ msgstr "" "Si *missing_ok* est vrai, les exceptions :exc:`FileNotFoundError` sont " "ignorées (même comportement que la commande POSIX ``rm -f``)." -#: library/pathlib.rst:1134 +#: library/pathlib.rst:1142 msgid "The *missing_ok* parameter was added." msgstr "Ajout du paramètre *missing_ok*." -#: library/pathlib.rst:1140 +#: library/pathlib.rst:1148 msgid "Create a hard link pointing to a path named *target*." msgstr "Crée un lien matériel pointant sur le chemin nommé *target*." -#: library/pathlib.rst:1147 +#: library/pathlib.rst:1155 msgid "" "Open the file pointed to in bytes mode, write *data* to it, and close the " "file::" @@ -1105,11 +1112,11 @@ msgstr "" "Ouvre le fichier pointé en mode binaire, écrit *data* dedans, et ferme le " "fichier ::" -#: library/pathlib.rst:1156 +#: library/pathlib.rst:1164 msgid "An existing file of the same name is overwritten." msgstr "Le fichier du même nom, s'il existe, est écrasé." -#: library/pathlib.rst:1163 +#: library/pathlib.rst:1171 msgid "" "Open the file pointed to in text mode, write *data* to it, and close the " "file::" @@ -1117,7 +1124,7 @@ msgstr "" "Ouvre le fichier pointé en mode texte, écrit *data* dedans, et ferme le " "fichier ::" -#: library/pathlib.rst:1172 +#: library/pathlib.rst:1180 msgid "" "An existing file of the same name is overwritten. The optional parameters " "have the same meaning as in :func:`open`." @@ -1125,11 +1132,11 @@ msgstr "" "Le fichier du même nom, s'il existe, est écrasé. Les paramètres optionnels " "ont la même signification que dans :func:`open`." -#: library/pathlib.rst:1178 +#: library/pathlib.rst:1186 msgid "Correspondence to tools in the :mod:`os` module" msgstr "Correspondance des outils du module :mod:`os`" -#: library/pathlib.rst:1180 +#: library/pathlib.rst:1188 msgid "" "Below is a table mapping various :mod:`os` functions to their corresponding :" "class:`PurePath`/:class:`Path` equivalent." @@ -1137,7 +1144,7 @@ msgstr "" "Ci-dessous se trouve un tableau associant diverses fonctions :mod:`os` à " "leur équivalent :class:`PurePath` / :class:`Path` correspondant." -#: library/pathlib.rst:1185 +#: library/pathlib.rst:1193 msgid "" "Although :func:`os.path.relpath` and :meth:`PurePath.relative_to` have some " "overlapping use-cases, their semantics differ enough to warrant not " @@ -1147,206 +1154,206 @@ msgstr "" "cas d'utilisation qui se chevauchent, leur sémantique diffère suffisamment " "pour ne pas les considérer comme équivalentes." -#: library/pathlib.rst:1190 +#: library/pathlib.rst:1198 msgid "os and os.path" msgstr "*os* et *os.path*" -#: library/pathlib.rst:1190 +#: library/pathlib.rst:1198 msgid "pathlib" msgstr "pathlib" -#: library/pathlib.rst:1192 +#: library/pathlib.rst:1200 msgid ":func:`os.path.abspath`" msgstr ":func:`os.path.abspath`" -#: library/pathlib.rst:1192 +#: library/pathlib.rst:1200 msgid ":meth:`Path.resolve`" msgstr ":meth:`Path.resolve`" -#: library/pathlib.rst:1193 +#: library/pathlib.rst:1201 msgid ":func:`os.chmod`" msgstr ":func:`os.chmod`" -#: library/pathlib.rst:1193 +#: library/pathlib.rst:1201 msgid ":meth:`Path.chmod`" msgstr ":meth:`Path.chmod`" -#: library/pathlib.rst:1194 +#: library/pathlib.rst:1202 msgid ":func:`os.mkdir`" msgstr ":func:`os.mkdir`" -#: library/pathlib.rst:1195 +#: library/pathlib.rst:1203 msgid ":meth:`Path.mkdir`" msgstr ":meth:`Path.mkdir`" -#: library/pathlib.rst:1195 +#: library/pathlib.rst:1203 msgid ":func:`os.makedirs`" msgstr ":func:`os.makedirs`" -#: library/pathlib.rst:1196 +#: library/pathlib.rst:1204 msgid ":func:`os.rename`" msgstr ":func:`os.rename`" -#: library/pathlib.rst:1196 +#: library/pathlib.rst:1204 msgid ":meth:`Path.rename`" msgstr ":meth:`Path.rename`" -#: library/pathlib.rst:1197 +#: library/pathlib.rst:1205 msgid ":func:`os.replace`" msgstr ":func:`os.replace`" -#: library/pathlib.rst:1197 +#: library/pathlib.rst:1205 msgid ":meth:`Path.replace`" msgstr ":meth:`Path.replace`" -#: library/pathlib.rst:1198 +#: library/pathlib.rst:1206 msgid ":func:`os.rmdir`" msgstr ":func:`os.rmdir`" -#: library/pathlib.rst:1198 +#: library/pathlib.rst:1206 msgid ":meth:`Path.rmdir`" msgstr ":meth:`Path.rmdir`" -#: library/pathlib.rst:1199 +#: library/pathlib.rst:1207 msgid ":func:`os.remove`, :func:`os.unlink`" msgstr ":func:`os.remove`, :func:`os.unlink`" -#: library/pathlib.rst:1199 +#: library/pathlib.rst:1207 msgid ":meth:`Path.unlink`" msgstr ":meth:`Path.unlink`" -#: library/pathlib.rst:1200 +#: library/pathlib.rst:1208 msgid ":func:`os.getcwd`" msgstr ":func:`os.getcwd`" -#: library/pathlib.rst:1200 +#: library/pathlib.rst:1208 msgid ":func:`Path.cwd`" msgstr ":func:`Path.cwd`" -#: library/pathlib.rst:1201 +#: library/pathlib.rst:1209 msgid ":func:`os.path.exists`" msgstr ":func:`os.path.exists`" -#: library/pathlib.rst:1201 +#: library/pathlib.rst:1209 msgid ":meth:`Path.exists`" msgstr ":meth:`Path.exists`" -#: library/pathlib.rst:1202 +#: library/pathlib.rst:1210 msgid ":func:`os.path.expanduser`" msgstr ":func:`os.path.expanduser`" -#: library/pathlib.rst:1202 +#: library/pathlib.rst:1210 msgid ":meth:`Path.expanduser` and :meth:`Path.home`" msgstr ":meth:`Path.expanduser` et :meth:`Path.home`" -#: library/pathlib.rst:1204 +#: library/pathlib.rst:1212 msgid ":func:`os.listdir`" msgstr ":func:`os.listdir`" -#: library/pathlib.rst:1204 +#: library/pathlib.rst:1212 msgid ":meth:`Path.iterdir`" msgstr ":meth:`Path.iterdir`" -#: library/pathlib.rst:1205 +#: library/pathlib.rst:1213 msgid ":func:`os.path.isdir`" msgstr ":func:`os.path.isdir`" -#: library/pathlib.rst:1205 +#: library/pathlib.rst:1213 msgid ":meth:`Path.is_dir`" msgstr ":meth:`Path.is_dir`" -#: library/pathlib.rst:1206 +#: library/pathlib.rst:1214 msgid ":func:`os.path.isfile`" msgstr ":func:`os.path.isfile`" -#: library/pathlib.rst:1206 +#: library/pathlib.rst:1214 msgid ":meth:`Path.is_file`" msgstr ":meth:`Path.is_file`" -#: library/pathlib.rst:1207 +#: library/pathlib.rst:1215 msgid ":func:`os.path.islink`" msgstr ":func:`os.path.islink`" -#: library/pathlib.rst:1207 +#: library/pathlib.rst:1215 msgid ":meth:`Path.is_symlink`" msgstr ":meth:`Path.is_symlink`" -#: library/pathlib.rst:1208 +#: library/pathlib.rst:1216 msgid ":func:`os.link`" msgstr ":func:`os.link`" -#: library/pathlib.rst:1208 +#: library/pathlib.rst:1216 msgid ":meth:`Path.link_to`" msgstr ":meth:`Path.link_to`" -#: library/pathlib.rst:1209 +#: library/pathlib.rst:1217 msgid ":func:`os.symlink`" msgstr ":func:`os.symlink`" -#: library/pathlib.rst:1209 +#: library/pathlib.rst:1217 msgid ":meth:`Path.symlink_to`" msgstr ":meth:`Path.symlink_to`" -#: library/pathlib.rst:1210 +#: library/pathlib.rst:1218 msgid ":func:`os.readlink`" msgstr ":func:`os.readlink`" -#: library/pathlib.rst:1210 +#: library/pathlib.rst:1218 msgid ":meth:`Path.readlink`" msgstr ":meth:`Path.readlink`" -#: library/pathlib.rst:1211 +#: library/pathlib.rst:1219 msgid ":func:`os.stat`" msgstr ":func:`os.stat`" -#: library/pathlib.rst:1211 +#: library/pathlib.rst:1219 msgid ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" msgstr ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" -#: library/pathlib.rst:1214 +#: library/pathlib.rst:1222 msgid ":func:`os.path.isabs`" msgstr ":func:`os.path.isabs`" -#: library/pathlib.rst:1214 +#: library/pathlib.rst:1222 msgid ":meth:`PurePath.is_absolute`" msgstr ":meth:`PurePath.is_absolute`" -#: library/pathlib.rst:1215 +#: library/pathlib.rst:1223 msgid ":func:`os.path.join`" msgstr ":func:`os.path.join`" -#: library/pathlib.rst:1215 +#: library/pathlib.rst:1223 msgid ":func:`PurePath.joinpath`" msgstr ":func:`PurePath.joinpath`" -#: library/pathlib.rst:1216 +#: library/pathlib.rst:1224 msgid ":func:`os.path.basename`" msgstr ":func:`os.path.basename`" -#: library/pathlib.rst:1216 +#: library/pathlib.rst:1224 msgid ":data:`PurePath.name`" msgstr ":data:`PurePath.name`" -#: library/pathlib.rst:1217 +#: library/pathlib.rst:1225 msgid ":func:`os.path.dirname`" msgstr ":func:`os.path.dirname`" -#: library/pathlib.rst:1217 +#: library/pathlib.rst:1225 msgid ":data:`PurePath.parent`" msgstr ":data:`PurePath.parent`" -#: library/pathlib.rst:1218 +#: library/pathlib.rst:1226 msgid ":func:`os.path.samefile`" msgstr ":func:`os.path.samefile`" -#: library/pathlib.rst:1218 +#: library/pathlib.rst:1226 msgid ":meth:`Path.samefile`" msgstr ":meth:`Path.samefile`" -#: library/pathlib.rst:1219 +#: library/pathlib.rst:1227 msgid ":func:`os.path.splitext`" msgstr ":func:`os.path.splitext`" -#: library/pathlib.rst:1219 +#: library/pathlib.rst:1227 msgid ":data:`PurePath.suffix`" msgstr ":data:`PurePath.suffix`" diff --git a/library/random.po b/library/random.po index 5857a961..a833a245 100644 --- a/library/random.po +++ b/library/random.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-24 09:01+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2019-10-31 15:32+0100\n" "Last-Translator: Khaïs COLIN \n" "Language-Team: FRENCH \n" @@ -494,11 +494,11 @@ msgid "" "sample is reproducible." msgstr "" -#: library/random.rst:257 +#: library/random.rst:259 msgid "Real-valued distributions" msgstr "Distributions pour les nombre réels" -#: library/random.rst:259 +#: library/random.rst:261 msgid "" "The following functions generate specific real-valued distributions. " "Function parameters are named after the corresponding variables in the " @@ -511,13 +511,13 @@ msgstr "" "utilisées dans la pratique mathématique courante ; la plupart de ces " "équations peuvent être trouvées dans tout document traitant de statistiques." -#: library/random.rst:267 +#: library/random.rst:269 msgid "Return the next random floating point number in the range [0.0, 1.0)." msgstr "" "Renvoie le nombre aléatoire à virgule flottante suivant dans la plage [0.0, " "1.0)." -#: library/random.rst:272 +#: library/random.rst:274 msgid "" "Return a random floating point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." @@ -525,7 +525,7 @@ msgstr "" "Renvoie un nombre aléatoire à virgule flottante *N* tel que ``a <= N <= b`` " "pour ``a <= b`` et ``b <= N <= a`` pour ``b < a``." -#: library/random.rst:275 +#: library/random.rst:277 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the equation ``a + (b-a) * random()``." @@ -533,7 +533,7 @@ msgstr "" "La valeur finale ``b`` peut ou non être incluse dans la plage selon " "l'arrondi à virgule flottante dans l'équation ``a + (b-a) * random()``." -#: library/random.rst:281 +#: library/random.rst:283 msgid "" "Return a random floating point number *N* such that ``low <= N <= high`` and " "with the specified *mode* between those bounds. The *low* and *high* bounds " @@ -545,7 +545,7 @@ msgstr "" "*high* par défaut sont zéro et un. L'argument *mode* est par défaut le " "point médian entre les bornes, ce qui donne une distribution symétrique." -#: library/random.rst:289 +#: library/random.rst:291 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." @@ -553,7 +553,7 @@ msgstr "" "Distribution bêta. Les conditions sur les paramètres sont ``alpha > 0`` et " "``beta > 0``. Les valeurs renvoyées varient entre 0 et 1." -#: library/random.rst:295 +#: library/random.rst:297 msgid "" "Exponential distribution. *lambd* is 1.0 divided by the desired mean. It " "should be nonzero. (The parameter would be called \"lambda\", but that is a " @@ -567,7 +567,7 @@ msgstr "" "plus l'infini positif si *lambd* est positif, et de moins l'infini à 0 si " "*lambd* est négatif." -#: library/random.rst:304 +#: library/random.rst:306 msgid "" "Gamma distribution. (*Not* the gamma function!) Conditions on the " "parameters are ``alpha > 0`` and ``beta > 0``." @@ -575,11 +575,11 @@ msgstr "" "Distribution gamma. (*Ce n'est pas* la fonction gamma !) Les conditions sur " "les paramètres sont ``alpha > 0`` et ``beta > 0``." -#: library/random.rst:307 +#: library/random.rst:309 msgid "The probability distribution function is::" msgstr "La fonction de distribution de probabilité est ::" -#: library/random.rst:316 +#: library/random.rst:318 msgid "" "Gaussian distribution. *mu* is the mean, and *sigma* is the standard " "deviation. This is slightly faster than the :func:`normalvariate` function " @@ -589,7 +589,7 @@ msgstr "" "C'est légèrement plus rapide que la fonction :func:`normalvariate` définie " "ci-dessous." -#: library/random.rst:323 +#: library/random.rst:325 msgid "" "Log normal distribution. If you take the natural logarithm of this " "distribution, you'll get a normal distribution with mean *mu* and standard " @@ -601,14 +601,14 @@ msgstr "" "moyen et écart-type *sigma*. *mu* peut avoir n'importe quelle valeur et " "*sigma* doit être supérieur à zéro." -#: library/random.rst:331 +#: library/random.rst:333 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" "Distribution normale. *mu* est la moyenne et *sigma* est l'écart type." -#: library/random.rst:336 +#: library/random.rst:338 msgid "" "*mu* is the mean angle, expressed in radians between 0 and 2\\*\\ *pi*, and " "*kappa* is the concentration parameter, which must be greater than or equal " @@ -620,11 +620,11 @@ msgstr "" "zéro. Si *kappa* est égal à zéro, cette distribution se réduit à un angle " "aléatoire uniforme sur la plage de 0 à 2\\*\\ *pi*." -#: library/random.rst:344 +#: library/random.rst:346 msgid "Pareto distribution. *alpha* is the shape parameter." msgstr "Distribution de Pareto. *alpha* est le paramètre de forme." -#: library/random.rst:349 +#: library/random.rst:351 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." @@ -632,11 +632,11 @@ msgstr "" "Distribution de Weibull. *alpha* est le paramètre de l'échelle et *beta* " "est le paramètre de forme." -#: library/random.rst:354 +#: library/random.rst:356 msgid "Alternative Generator" msgstr "Générateur alternatif" -#: library/random.rst:358 +#: library/random.rst:360 msgid "" "Class that implements the default pseudo-random number generator used by " "the :mod:`random` module." @@ -644,14 +644,14 @@ msgstr "" "Classe qui implémente le générateur de nombres pseudo-aléatoires par défaut " "utilisé par le module :mod:`random`." -#: library/random.rst:361 +#: library/random.rst:363 msgid "" "In the future, the *seed* must be one of the following types: :class:" "`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :" "class:`bytearray`." msgstr "" -#: library/random.rst:368 +#: library/random.rst:370 msgid "" "Class that uses the :func:`os.urandom` function for generating random " "numbers from sources provided by the operating system. Not available on all " @@ -668,11 +668,11 @@ msgstr "" "`getstate` et :meth:`setstate` lèvent :exc:`NotImplementedError` si vous les " "appelez." -#: library/random.rst:377 +#: library/random.rst:379 msgid "Notes on Reproducibility" msgstr "Remarques sur la reproductibilité" -#: library/random.rst:379 +#: library/random.rst:381 #, fuzzy msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " @@ -685,7 +685,7 @@ msgstr "" "même séquence devrait être reproductible d'une exécution à l'autre tant que " "plusieurs processus ne sont pas en cours." -#: library/random.rst:383 +#: library/random.rst:385 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" @@ -694,7 +694,7 @@ msgstr "" "module aléatoire sont susceptibles d'être modifiés d'une version à l'autre " "de Python, mais deux aspects sont garantis de ne pas changer ::" -#: library/random.rst:386 +#: library/random.rst:388 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." @@ -702,7 +702,7 @@ msgstr "" "Si une nouvelle méthode de génération de graine est ajoutée, une fonction " "rétro-compatible sera offerte." -#: library/random.rst:389 +#: library/random.rst:391 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." @@ -711,19 +711,19 @@ msgstr "" "même séquence lorsque la fonction de génération de graine compatible recevra " "la même semence." -#: library/random.rst:395 -msgid "Examples and Recipes" -msgstr "Exemples et recettes" - #: library/random.rst:397 +msgid "Examples" +msgstr "" + +#: library/random.rst:399 msgid "Basic examples::" msgstr "Exemples de base ::" -#: library/random.rst:425 +#: library/random.rst:427 msgid "Simulations::" msgstr "Simulations : ::" -#: library/random.rst:453 +#: library/random.rst:455 #, fuzzy msgid "" "Example of `statistical bootstrapping `_ to determine the statistical " @@ -748,7 +748,7 @@ msgstr "" "Valeur_p>`_ d'une différence observée entre les effets d'un médicament et " "ceux d'un placebo ::" -#: library/random.rst:493 +#: library/random.rst:495 #, fuzzy msgid "" "Simulation of arrival times and service deliveries for a multiserver queue::" @@ -756,7 +756,7 @@ msgstr "" "Simulation des heures d'arrivée et des livraisons de services dans une seule " "file d'attente de serveurs ::" -#: library/random.rst:521 +#: library/random.rst:523 msgid "" "`Statistics for Hackers `_ a " "video tutorial by `Jake Vanderplas `_ a simulation of a marketplace by `Peter Norvig `_ a tutorial by `Peter " @@ -796,3 +796,51 @@ msgstr "" "`Peter Norvig `_ couvrant les bases de la " "théorie des probabilités, comment écrire des simulations, et comment " "effectuer des analyses de données avec Python." + +#: library/random.rst:544 +msgid "Recipes" +msgstr "" + +#: library/random.rst:546 +msgid "" +"The default :func:`.random` returns multiples of 2⁻⁵³ in the range *0.0 ≤ x " +"< 1.0*. All such numbers are evenly spaced and are exactly representable as " +"Python floats. However, many other representable floats in that interval " +"are not possible selections. For example, ``0.05954861408025609`` isn't an " +"integer multiple of 2⁻⁵³." +msgstr "" + +#: library/random.rst:552 +msgid "" +"The following recipe takes a different approach. All floats in the interval " +"are possible selections. The mantissa comes from a uniform distribution of " +"integers in the range *2⁵² ≤ mantissa < 2⁵³*. The exponent comes from a " +"geometric distribution where exponents smaller than *-53* occur half as " +"often as the next larger exponent." +msgstr "" + +#: library/random.rst:574 +msgid "" +"All :ref:`real valued distributions ` in the " +"class will use the new method::" +msgstr "" + +#: library/random.rst:583 +msgid "" +"The recipe is conceptually equivalent to an algorithm that chooses from all " +"the multiples of 2⁻¹⁰⁷⁴ in the range *0.0 ≤ x < 1.0*. All such numbers are " +"evenly spaced, but most have to be rounded down to the nearest representable " +"Python float. (The value 2⁻¹⁰⁷⁴ is the smallest positive unnormalized float " +"and is equal to ``math.ulp(0.0)``.)" +msgstr "" + +#: library/random.rst:592 +msgid "" +"`Generating Pseudo-random Floating-Point Values `_ a paper by Allen B. Downey describing " +"ways to generate more fine-grained floats than normally generated by :func:`." +"random`." +msgstr "" + +#~ msgid "Examples and Recipes" +#~ msgstr "Exemples et recettes" diff --git a/library/shutil.po b/library/shutil.po index fe3fdc23..9fb9688f 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2018-11-29 18:26+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -497,7 +497,7 @@ msgstr "" #: library/shutil.rst:351 msgid "" "If *copy_function* is given, it must be a callable that takes two arguments " -"*src* and *dst*, and will be used to copy *src* to *dest* if :func:`os." +"*src* and *dst*, and will be used to copy *src* to *dst* if :func:`os." "rename` cannot be used. If the source is a directory, :func:`copytree` is " "called, passing it the :func:`copy_function`. The default *copy_function* " "is :func:`copy2`. Using :func:`~shutil.copy` as the *copy_function* allows " diff --git a/library/site.po b/library/site.po index b77846da..a848bab8 100644 --- a/library/site.po +++ b/library/site.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-24 09:01+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -249,20 +249,21 @@ msgstr "" msgid "" "Return the path of the user-specific site-packages directory, :data:" "`USER_SITE`. If it is not initialized yet, this function will also set it, " -"respecting :envvar:`PYTHONNOUSERSITE` and :data:`USER_BASE`." +"respecting :data:`USER_BASE`. To determine if the user-specific site-" +"packages was added to ``sys.path`` :data:`ENABLE_USER_SITE` should be used." msgstr "" -#: library/site.rst:242 +#: library/site.rst:244 msgid "Command Line Interface" msgstr "Interface en ligne de commande" -#: library/site.rst:246 +#: library/site.rst:248 msgid "" "The :mod:`site` module also provides a way to get the user directories from " "the command line:" msgstr "" -#: library/site.rst:254 +#: library/site.rst:256 msgid "" "If it is called without arguments, it will print the contents of :data:`sys." "path` on the standard output, followed by the value of :data:`USER_BASE` and " @@ -270,21 +271,21 @@ msgid "" "finally the value of :data:`ENABLE_USER_SITE`." msgstr "" -#: library/site.rst:261 +#: library/site.rst:263 msgid "Print the path to the user base directory." msgstr "" -#: library/site.rst:265 +#: library/site.rst:267 msgid "Print the path to the user site-packages directory." msgstr "" -#: library/site.rst:267 +#: library/site.rst:269 msgid "" "If both options are given, user base and user site will be printed (always " "in this order), separated by :data:`os.pathsep`." msgstr "" -#: library/site.rst:270 +#: library/site.rst:272 msgid "" "If any option is given, the script will exit with one of these values: ``0`` " "if the user site-packages directory is enabled, ``1`` if it was disabled by " @@ -292,6 +293,6 @@ msgid "" "administrator, and a value greater than 2 if there is an error." msgstr "" -#: library/site.rst:277 +#: library/site.rst:279 msgid ":pep:`370` -- Per user site-packages directory" msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." diff --git a/library/typing.po b/library/typing.po index 0a2d709f..816e3816 100644 --- a/library/typing.po +++ b/library/typing.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2019-11-26 17:28-0500\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -453,12 +453,13 @@ msgstr "" "une sous-classe de ``B``." #: library/typing.rst:408 +#, fuzzy msgid "" "This requirement previously also applied to abstract base classes, such as :" -"class:`Iterable`. The problem with this approach is that a class had to be " -"explicitly marked to support them, which is unpythonic and unlike what one " -"would normally do in idiomatic dynamically typed Python code. For example, " -"this conforms to the :pep:`484`::" +"class:`~collections.abc.Iterable`. The problem with this approach is that a " +"class had to be explicitly marked to support them, which is unpythonic and " +"unlike what one would normally do in idiomatic dynamically typed Python " +"code. For example, this conforms to :pep:`484`::" msgstr "" "Ce pré-requis s'appliquait auparavant aussi aux classes de base abstraites, " "telles que :class:`Iterable`. Le problème avec cette approche est qu'une " @@ -1075,11 +1076,13 @@ msgid "Mark a protocol class as a runtime protocol." msgstr "Marquez une classe de protocole comme protocole d'exécution." #: library/typing.rst:903 +#, fuzzy 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:`Iterable`. For example::" +"\" 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 " @@ -1725,10 +1728,11 @@ msgid "A generic version of :class:`contextlib.AbstractContextManager`." msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." #: library/typing.rst:1463 +#, fuzzy msgid "" -":class:`collections.contextlib.AbstractContextManager` now supports ``[]``. " -"See :pep:`585`." -msgstr "" +":class:`contextlib.AbstractContextManager` now supports ``[]``. See :pep:" +"`585`." +msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." #: library/typing.rst:1468 msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." @@ -1736,10 +1740,12 @@ msgstr "" "Une version générique de :class:`contextlib.AbstractAsyncContextManager`." #: library/typing.rst:1473 +#, fuzzy msgid "" -":class:`collections.contextlib.AbstractAsyncContextManager` now supports " -"``[]``. See :pep:`585`." +":class:`contextlib.AbstractAsyncContextManager` now supports ``[]``. See :" +"pep:`585`." msgstr "" +"Une version générique de :class:`contextlib.AbstractAsyncContextManager`." #: library/typing.rst:1477 msgid "Protocols" @@ -1964,10 +1970,11 @@ msgstr "" "Pour les objets non gérés, renvoie la paire ``None`` , ``()``. Exemples ::" #: library/typing.rst:1666 +#, fuzzy msgid "" "A class used for internal typing representation of string forward " -"references. For example, ``List[\"SomeClass\"]`` is implicitly transformed " -"into ``List[ForwardRef(\"SomeClass\")]``. This class should not be " +"references. For example, ``list[\"SomeClass\"]`` is implicitly transformed " +"into ``list[ForwardRef(\"SomeClass\")]``. This class should not be " "instantiated by a user, but may be used by introspection tools." msgstr "" "Une classe utilisée pour le typage interne de la représentation des " @@ -2007,7 +2014,7 @@ msgstr "" #: library/typing.rst:1692 msgid "" "If ``from __future__ import annotations`` is used in Python 3.7 or later, " -"annotations are not evaluated at function definition time. Instead, the are " +"annotations are not evaluated at function definition time. Instead, they are " "stored as strings in ``__annotations__``, This makes it unnecessary to use " "quotes around the annotation. (see :pep:`563`)." msgstr "" diff --git a/library/unittest.po b/library/unittest.po index e51be471..dcea6906 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-10-15 09:14+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -1217,15 +1217,15 @@ msgstr "" "les plus couramment utilisées (voir les tableaux ci-dessous pour plus de " "méthodes d'assertion) :" -#: library/unittest.rst:936 library/unittest.rst:1255 +#: library/unittest.rst:936 library/unittest.rst:1256 msgid "Method" msgstr "Méthode" -#: library/unittest.rst:936 library/unittest.rst:1128 +#: library/unittest.rst:936 library/unittest.rst:1129 msgid "Checks that" msgstr "Vérifie que" -#: library/unittest.rst:936 library/unittest.rst:1255 +#: library/unittest.rst:936 library/unittest.rst:1256 msgid "New in" msgstr "Disponible en" @@ -1270,9 +1270,9 @@ msgid "``a is b``" msgstr "``a is b``" #: library/unittest.rst:831 library/unittest.rst:837 library/unittest.rst:843 -#: library/unittest.rst:1136 library/unittest.rst:1142 -#: library/unittest.rst:1148 library/unittest.rst:1260 -#: library/unittest.rst:1266 library/unittest.rst:1272 +#: library/unittest.rst:1137 library/unittest.rst:1143 +#: library/unittest.rst:1149 library/unittest.rst:1261 +#: library/unittest.rst:1267 library/unittest.rst:1273 msgid "3.1" msgstr "3.1" @@ -1324,7 +1324,7 @@ msgstr ":meth:`assertIsInstance(a, b) `" msgid "``isinstance(a, b)``" msgstr "``isinstance(a, b)``" -#: library/unittest.rst:849 library/unittest.rst:947 library/unittest.rst:1154 +#: library/unittest.rst:849 library/unittest.rst:947 library/unittest.rst:1155 msgid "3.2" msgstr "3.2" @@ -1669,16 +1669,18 @@ msgstr "" "donné." #: library/unittest.rst:1089 +#, fuzzy msgid "" "If given, *logger* should be a :class:`logging.Logger` object or a :class:" "`str` giving the name of a logger. The default is the root logger, which " -"will catch all messages." +"will catch all messages that were not blocked by a non-propagating " +"descendent logger." msgstr "" "Si donné, *logger* doit être une classe :class:`logging.logger` objet ou une " "classe :class:`str` donnant le nom d'un journal. La valeur par défaut est le " "journal racine *root*, qui capture tous les messages." -#: library/unittest.rst:1093 +#: library/unittest.rst:1094 msgid "" "If given, *level* should be either a numeric logging level or its string " "equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " @@ -1688,7 +1690,7 @@ msgstr "" "forme de chaîne (par exemple ``\"ERROR\"`` ou :attr:`logging.ERROR`). La " "valeur par défaut est :attr:`logging.INFO`." -#: library/unittest.rst:1097 +#: library/unittest.rst:1098 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." @@ -1696,7 +1698,7 @@ msgstr "" "Le test passe si au moins un message émis à l'intérieur du bloc ``with`` " "correspond aux conditions *logger* et *level*, sinon il échoue." -#: library/unittest.rst:1100 +#: library/unittest.rst:1101 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" @@ -1705,14 +1707,14 @@ msgstr "" "l'enregistrement qui garde la trace des messages de journal correspondants. " "Il a deux attributs  ::" -#: library/unittest.rst:1106 +#: library/unittest.rst:1107 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" "Une liste d'objets :class:`logging.LogRecord` de messages de log " "correspondants." -#: library/unittest.rst:1111 +#: library/unittest.rst:1112 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." @@ -1720,86 +1722,86 @@ msgstr "" "Une liste d'objets :class:`str` avec la sortie formatée des messages " "correspondants." -#: library/unittest.rst:1114 +#: library/unittest.rst:1115 msgid "Example::" msgstr "Exemple ::" -#: library/unittest.rst:1125 +#: library/unittest.rst:1126 msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" "Il existe également d'autres méthodes utilisées pour effectuer des contrôles " "plus spécifiques, telles que  ::" -#: library/unittest.rst:1130 +#: library/unittest.rst:1131 msgid ":meth:`assertAlmostEqual(a, b) `" msgstr ":meth:`assertAlmostEqual(a, b) `" -#: library/unittest.rst:1130 +#: library/unittest.rst:1131 msgid "``round(a-b, 7) == 0``" msgstr "``round(a-b, 7) == 0``" -#: library/unittest.rst:1133 +#: library/unittest.rst:1134 msgid ":meth:`assertNotAlmostEqual(a, b) `" msgstr ":meth:`assertNotAlmostEqual(a, b) `" -#: library/unittest.rst:1133 +#: library/unittest.rst:1134 msgid "``round(a-b, 7) != 0``" msgstr "``round(a-b, 7) != 0``" -#: library/unittest.rst:1136 +#: library/unittest.rst:1137 msgid ":meth:`assertGreater(a, b) `" msgstr ":meth:`assertGreater(a, b) `" -#: library/unittest.rst:1136 +#: library/unittest.rst:1137 msgid "``a > b``" msgstr "``a > b``" -#: library/unittest.rst:1139 +#: library/unittest.rst:1140 msgid ":meth:`assertGreaterEqual(a, b) `" msgstr ":meth:`assertGreaterEqual(a, b) `" -#: library/unittest.rst:1139 +#: library/unittest.rst:1140 msgid "``a >= b``" msgstr "``a >= b``" -#: library/unittest.rst:1142 +#: library/unittest.rst:1143 msgid ":meth:`assertLess(a, b) `" msgstr ":meth:`assertLess(a, b) `" -#: library/unittest.rst:1142 +#: library/unittest.rst:1143 msgid "``a < b``" msgstr "``a < b``" -#: library/unittest.rst:1145 +#: library/unittest.rst:1146 msgid ":meth:`assertLessEqual(a, b) `" msgstr ":meth:`assertLessEqual(a, b) `" -#: library/unittest.rst:1145 +#: library/unittest.rst:1146 msgid "``a <= b``" msgstr "``a <= b``" -#: library/unittest.rst:1148 +#: library/unittest.rst:1149 msgid ":meth:`assertRegex(s, r) `" msgstr ":meth:`assertRegex(s, r) `" -#: library/unittest.rst:1148 +#: library/unittest.rst:1149 msgid "``r.search(s)``" msgstr "``r.search(s)``" -#: library/unittest.rst:1151 +#: library/unittest.rst:1152 msgid ":meth:`assertNotRegex(s, r) `" msgstr ":meth:`assertNotRegex(s, r) `" -#: library/unittest.rst:1151 +#: library/unittest.rst:1152 msgid "``not r.search(s)``" msgstr "``not r.search(s)``" -#: library/unittest.rst:1154 +#: library/unittest.rst:1155 msgid ":meth:`assertCountEqual(a, b) `" msgstr ":meth:`assertCountEqual(a, b) `" -#: library/unittest.rst:1154 +#: library/unittest.rst:1155 msgid "" "*a* and *b* have the same elements in the same number, regardless of their " "order." @@ -1807,7 +1809,7 @@ msgstr "" "*a* et *b* ont les mêmes éléments dans le même nombre, quel que soit leur " "ordre." -#: library/unittest.rst:1163 +#: library/unittest.rst:1164 msgid "" "Test that *first* and *second* are approximately (or not approximately) " "equal by computing the difference, rounding to the given number of decimal " @@ -1822,7 +1824,7 @@ msgstr "" "*décimales* (par exemple comme la fonction :func:`round`) et non aux " "*chiffres significatifs*." -#: library/unittest.rst:1169 +#: library/unittest.rst:1170 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." @@ -1830,11 +1832,11 @@ msgstr "" "Si *delta* est fourni au lieu de *places*, la différence entre *first* et " "*second* doit être inférieure ou égale (ou supérieure) à *delta*." -#: library/unittest.rst:1172 +#: library/unittest.rst:1173 msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." msgstr "Fournir à la fois *delta* et *places* lève une :exc:`TypeError`." -#: library/unittest.rst:1174 +#: library/unittest.rst:1175 msgid "" ":meth:`assertAlmostEqual` automatically considers almost equal objects that " "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " @@ -1845,7 +1847,7 @@ msgstr "" "automatiquement si les objets qui se comparent sont égaux. Ajout de " "l'argument nommé *delta*." -#: library/unittest.rst:1185 +#: library/unittest.rst:1186 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" @@ -1853,7 +1855,7 @@ msgstr "" "Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " "le nom de la méthode. Sinon, le test échouera ::" -#: library/unittest.rst:1197 +#: library/unittest.rst:1198 msgid "" "Test that a *regex* search matches (or does not match) *text*. In case of " "failure, the error message will include the pattern and the *text* (or the " @@ -1868,22 +1870,22 @@ msgstr "" "chaîne contenant une expression régulière appropriée pour être utilisée par :" "func:`re.search`." -#: library/unittest.rst:1203 +#: library/unittest.rst:1204 msgid "Added under the name ``assertRegexpMatches``." msgstr "Ajouté sous le nom ``assertRegexpMatches``." -#: library/unittest.rst:1205 +#: library/unittest.rst:1206 msgid "" "The method ``assertRegexpMatches()`` has been renamed to :meth:`." "assertRegex`." msgstr "" "La méthode ``assertRegexpMatches()`` a été renommé en :meth:`.assertRegex`." -#: library/unittest.rst:1208 +#: library/unittest.rst:1209 msgid ":meth:`.assertNotRegex`." msgstr ":meth:`.assertNotRegex`." -#: library/unittest.rst:1210 +#: library/unittest.rst:1211 msgid "" "The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." "assertNotRegex`." @@ -1891,7 +1893,7 @@ msgstr "" "Le nom ``assertNotRegexpMatches``` est un alias obsolète pour :meth:`." "assertNotRegex`." -#: library/unittest.rst:1217 +#: library/unittest.rst:1218 msgid "" "Test that sequence *first* contains the same elements as *second*, " "regardless of their order. When they don't, an error message listing the " @@ -1901,7 +1903,7 @@ msgstr "" "quel que soit leur ordre. Si ce n'est pas le cas, un message d'erreur " "indiquant les différences entre les séquences est généré." -#: library/unittest.rst:1221 +#: library/unittest.rst:1222 msgid "" "Duplicate elements are *not* ignored when comparing *first* and *second*. It " "verifies whether each element has the same count in both sequences. " @@ -1914,7 +1916,7 @@ msgstr "" "Counter(list(second)))`` mais fonctionne aussi avec des séquences d'objets " "non *hachables*." -#: library/unittest.rst:1232 +#: library/unittest.rst:1233 msgid "" "The :meth:`assertEqual` method dispatches the equality check for objects of " "the same type to different type-specific methods. These methods are already " @@ -1927,7 +1929,7 @@ msgstr "" "possible d'enregistrer de nouvelles méthodes en utilisant :meth:" "`addTypeEqualityFunc`  ::" -#: library/unittest.rst:1239 +#: library/unittest.rst:1240 msgid "" "Registers a type-specific method called by :meth:`assertEqual` to check if " "two objects of exactly the same *typeobj* (not subclasses) compare equal. " @@ -1946,7 +1948,7 @@ msgstr "" "fournissant éventuellement des informations utiles et expliquant l'inégalité " "en détail dans le message d'erreur." -#: library/unittest.rst:1250 +#: library/unittest.rst:1251 msgid "" "The list of type-specific methods automatically used by :meth:`~TestCase." "assertEqual` are summarized in the following table. Note that it's usually " @@ -1956,59 +1958,59 @@ msgstr "" "`~TestCase.assertEqual` est résumée dans le tableau suivant. Notez qu'il " "n'est généralement pas nécessaire d'invoquer ces méthodes directement." -#: library/unittest.rst:1255 +#: library/unittest.rst:1256 msgid "Used to compare" msgstr "Utilisé pour comparer" -#: library/unittest.rst:1257 +#: library/unittest.rst:1258 msgid ":meth:`assertMultiLineEqual(a, b) `" msgstr ":meth:`assertMultiLineEqual(a, b) `" -#: library/unittest.rst:1257 +#: library/unittest.rst:1258 msgid "strings" msgstr "chaînes" -#: library/unittest.rst:1260 +#: library/unittest.rst:1261 msgid ":meth:`assertSequenceEqual(a, b) `" msgstr ":meth:`assertSequenceEqual(a, b) `" -#: library/unittest.rst:1260 +#: library/unittest.rst:1261 msgid "sequences" msgstr "séquences" -#: library/unittest.rst:1263 +#: library/unittest.rst:1264 msgid ":meth:`assertListEqual(a, b) `" msgstr ":meth:`assertListEqual(a, b) `" -#: library/unittest.rst:1263 +#: library/unittest.rst:1264 msgid "lists" msgstr "listes" -#: library/unittest.rst:1266 +#: library/unittest.rst:1267 msgid ":meth:`assertTupleEqual(a, b) `" msgstr ":meth:`assertTupleEqual(a, b) `" -#: library/unittest.rst:1266 +#: library/unittest.rst:1267 msgid "tuples" msgstr "n-uplets" -#: library/unittest.rst:1269 +#: library/unittest.rst:1270 msgid ":meth:`assertSetEqual(a, b) `" msgstr ":meth:`assertSetEqual(a, b) `" -#: library/unittest.rst:1269 +#: library/unittest.rst:1270 msgid "sets or frozensets" msgstr "*sets* ou *frozensets*" -#: library/unittest.rst:1272 +#: library/unittest.rst:1273 msgid ":meth:`assertDictEqual(a, b) `" msgstr ":meth:`assertDictEqual(a, b) `" -#: library/unittest.rst:1272 +#: library/unittest.rst:1273 msgid "dicts" msgstr "dictionnaires" -#: library/unittest.rst:1280 +#: library/unittest.rst:1281 msgid "" "Test that the multiline string *first* is equal to the string *second*. When " "not equal a diff of the two strings highlighting the differences will be " @@ -2021,7 +2023,7 @@ msgstr "" "Cette méthode est utilisée par défaut pour comparer les chaînes avec :meth:" "`assertEqual`." -#: library/unittest.rst:1290 +#: library/unittest.rst:1291 msgid "" "Tests that two sequences are equal. If a *seq_type* is supplied, both " "*first* and *second* must be instances of *seq_type* or a failure will be " @@ -2033,7 +2035,7 @@ msgstr "" "est levé. Si les séquences sont différentes, un message d'erreur indiquant " "la différence entre les deux est généré." -#: library/unittest.rst:1295 +#: library/unittest.rst:1296 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." @@ -2041,7 +2043,7 @@ msgstr "" "Cette méthode n'est pas appelée directement par :meth:`assertEqual`, mais " "sert à implémenter :meth:`assertListEqual` et :meth:`assertTupleEqual`." -#: library/unittest.rst:1305 +#: library/unittest.rst:1306 msgid "" "Tests that two lists or tuples are equal. If not, an error message is " "constructed that shows only the differences between the two. An error is " @@ -2054,7 +2056,7 @@ msgstr "" "paramètres n'est pas du bon type. Ces méthodes sont utilisées par défaut " "pour comparer des listes ou des n-uplets avec :meth:`assertEqual`." -#: library/unittest.rst:1316 +#: library/unittest.rst:1317 msgid "" "Tests that two sets are equal. If not, an error message is constructed that " "lists the differences between the sets. This method is used by default when " @@ -2065,7 +2067,7 @@ msgstr "" "méthode est utilisée par défaut lors de la comparaison de *sets* ou de " "*frozensets* avec :meth:`assertEqual`." -#: library/unittest.rst:1320 +#: library/unittest.rst:1321 msgid "" "Fails if either of *first* or *second* does not have a :meth:`set." "difference` method." @@ -2073,7 +2075,7 @@ msgstr "" "Échoue si l'un des objets *first* ou *second* n'a pas de méthode :meth:`set." "difference`." -#: library/unittest.rst:1328 +#: library/unittest.rst:1329 msgid "" "Test that two dictionaries are equal. If not, an error message is " "constructed that shows the differences in the dictionaries. This method will " @@ -2084,14 +2086,14 @@ msgstr "" "généré. Cette méthode est utilisée par défaut pour comparer les " "dictionnaires dans les appels à :meth:`assertEqual`." -#: library/unittest.rst:1339 +#: library/unittest.rst:1340 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" "Enfin, la classe :class:`TestCase` fournit les méthodes et attributs " "suivants :" -#: library/unittest.rst:1344 +#: library/unittest.rst:1345 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." @@ -2099,7 +2101,7 @@ msgstr "" "Indique un échec du test sans condition, avec *msg* ou ``None`` pour le " "message d'erreur." -#: library/unittest.rst:1350 +#: library/unittest.rst:1351 msgid "" "This class attribute gives the exception raised by the test method. If a " "test framework needs to use a specialized exception, possibly to carry " @@ -2113,7 +2115,7 @@ msgstr "" "hériter de cette classe d'exception pour *bien fonctionner* avec le " "*framework*. La valeur initiale de cet attribut est :exc:`AssertionError`." -#: library/unittest.rst:1359 +#: library/unittest.rst:1360 msgid "" "This class attribute determines what happens when a custom failure message " "is passed as the msg argument to an assertXYY call that fails. ``True`` is " @@ -2128,7 +2130,7 @@ msgstr "" "Lorsqu'il est réglé sur ``False``, le message personnalisé remplace le " "message standard." -#: library/unittest.rst:1365 +#: library/unittest.rst:1366 msgid "" "The class setting can be overridden in individual test methods by assigning " "an instance attribute, self.longMessage, to ``True`` or ``False`` before " @@ -2138,11 +2140,11 @@ msgstr "" "individuelles en assignant un attribut d'instance, *self.longMessage*, à " "``True`` ou ``False`` avant d'appeler les méthodes d'assertion." -#: library/unittest.rst:1369 +#: library/unittest.rst:1370 msgid "The class setting gets reset before each test call." msgstr "Le réglage de la classe est réinitialisé avant chaque appel de test." -#: library/unittest.rst:1376 +#: library/unittest.rst:1377 msgid "" "This attribute controls the maximum length of diffs output by assert methods " "that report diffs on failure. It defaults to 80*8 characters. Assert methods " @@ -2157,7 +2159,7 @@ msgstr "" "séquences qui lui sont déléguées), :meth:`assertDictEqual` et :meth:" "`assertMultiLineEqual`." -#: library/unittest.rst:1383 +#: library/unittest.rst:1384 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." @@ -2165,7 +2167,7 @@ msgstr "" "Régler ``maxDiff`` sur ``None``` signifie qu'il n'y a pas de longueur " "maximale pour les *diffs*." -#: library/unittest.rst:1389 +#: library/unittest.rst:1390 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" @@ -2173,7 +2175,7 @@ msgstr "" "Les *frameworks* de test peuvent utiliser les méthodes suivantes pour " "recueillir des informations sur le test :" -#: library/unittest.rst:1395 +#: library/unittest.rst:1396 msgid "" "Return the number of tests represented by this test object. For :class:" "`TestCase` instances, this will always be ``1``." @@ -2181,7 +2183,7 @@ msgstr "" "Renvoie le nombre de tests représentés par cet objet test. Pour les " "instances de :class:`TestCase`, c'est toujours ``1``." -#: library/unittest.rst:1401 +#: library/unittest.rst:1402 msgid "" "Return an instance of the test result class that should be used for this " "test case class (if no other result instance is provided to the :meth:`run` " @@ -2191,7 +2193,7 @@ msgstr "" "utilisée pour cette classe de cas de test (si aucune autre instance de " "résultat n'est fournie à la méthode :meth:`run`)." -#: library/unittest.rst:1405 +#: library/unittest.rst:1406 msgid "" "For :class:`TestCase` instances, this will always be an instance of :class:" "`TestResult`; subclasses of :class:`TestCase` should override this as " @@ -2201,7 +2203,7 @@ msgstr "" "class:`TestResult` ; les sous-classes de :class:`TestCase` peuvent la " "remplacer au besoin." -#: library/unittest.rst:1412 +#: library/unittest.rst:1413 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." @@ -2210,7 +2212,7 @@ msgstr "" "généralement du nom complet de la méthode de test, y compris le nom du " "module et de la classe." -#: library/unittest.rst:1418 +#: library/unittest.rst:1419 msgid "" "Returns a description of the test, or ``None`` if no description has been " "provided. The default implementation of this method returns the first line " @@ -2220,7 +2222,7 @@ msgstr "" "fournie. L'implémentation par défaut de cette méthode renvoie la première " "ligne de la *docstring* de la méthode de test, si disponible, ou ``None``." -#: library/unittest.rst:1423 +#: library/unittest.rst:1424 msgid "" "In 3.1 this was changed to add the test name to the short description even " "in the presence of a docstring. This caused compatibility issues with " @@ -2232,7 +2234,7 @@ msgstr "" "compatibilité avec les extensions *unittest* et l'ajout du nom du test a été " "déplacé dans la classe :class:`TextTestResult` dans Python 3.2." -#: library/unittest.rst:1432 +#: library/unittest.rst:1433 msgid "" "Add a function to be called after :meth:`tearDown` to cleanup resources used " "during the test. Functions will be called in reverse order to the order they " @@ -2247,7 +2249,7 @@ msgstr "" "arguments positionnels et arguments nommés passés à :meth:`addCleanup` quand " "elles sont ajoutées." -#: library/unittest.rst:1438 +#: library/unittest.rst:1439 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." @@ -2256,7 +2258,7 @@ msgstr "" "appelé, alors que les fonctions de nettoyage ajoutées seront toujours " "appelées." -#: library/unittest.rst:1446 +#: library/unittest.rst:1447 msgid "" "This method is called unconditionally after :meth:`tearDown`, or after :meth:" "`setUp` if :meth:`setUp` raises an exception." @@ -2264,7 +2266,7 @@ msgstr "" "Cette méthode est appelée sans conditions après :meth:`tearDown`, ou après :" "meth:`setUp` si :meth:`setUp` lève une exception." -#: library/unittest.rst:1449 +#: library/unittest.rst:1450 msgid "" "It is responsible for calling all the cleanup functions added by :meth:" "`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" @@ -2275,7 +2277,7 @@ msgstr "" "nettoyage à appeler *avant* l'appel à :meth:`tearDown` alors vous pouvez " "appeler :meth:`doCleanups` vous-même." -#: library/unittest.rst:1454 +#: library/unittest.rst:1455 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." @@ -2284,7 +2286,7 @@ msgstr "" "nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " "moment." -#: library/unittest.rst:1461 +#: library/unittest.rst:1462 msgid "" "Add a function to be called after :meth:`tearDownClass` to cleanup resources " "used during the test class. Functions will be called in reverse order to the " @@ -2299,7 +2301,7 @@ msgstr "" "arguments positionnels et nommés passés à :meth:`addClassCleanup` quand " "elles sont ajoutées." -#: library/unittest.rst:1467 +#: library/unittest.rst:1468 msgid "" "If :meth:`setUpClass` fails, meaning that :meth:`tearDownClass` is not " "called, then any cleanup functions added will still be called." @@ -2307,7 +2309,7 @@ msgstr "" "Si :meth:`setUpClass` échoue, impliquant que :meth:`tearDownClass` n'est pas " "appelé, alors les fonctions de nettoyage ajoutées sont quand même appelées." -#: library/unittest.rst:1475 +#: library/unittest.rst:1476 msgid "" "This method is called unconditionally after :meth:`tearDownClass`, or after :" "meth:`setUpClass` if :meth:`setUpClass` raises an exception." @@ -2315,7 +2317,7 @@ msgstr "" "Cette méthode est appelée sans conditions après :meth:`tearDownClass`, ou " "après :meth:`setUpClass` si :meth:`setUpClass` lève une exception." -#: library/unittest.rst:1478 +#: library/unittest.rst:1479 msgid "" "It is responsible for calling all the cleanup functions added by :meth:" "`addCleanupClass`. If you need cleanup functions to be called *prior* to :" @@ -2326,7 +2328,7 @@ msgstr "" "nettoyage à appeler *avant* l'appel à :meth:`tearDownClass` alors vous " "pouvez appeler :meth:`doCleanupsClass` vous-même." -#: library/unittest.rst:1483 +#: library/unittest.rst:1484 msgid "" ":meth:`doCleanupsClass` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." @@ -2335,7 +2337,7 @@ msgstr "" "nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " "moment." -#: library/unittest.rst:1491 +#: library/unittest.rst:1492 msgid "" "This class provides an API similar to :class:`TestCase` and also accepts " "coroutines as test functions." @@ -2343,7 +2345,7 @@ msgstr "" "Cette classe fournit une API similaire à :class:`TestCase` et accepte aussi " "les coroutines en tant que fonctions de test." -#: library/unittest.rst:1498 +#: library/unittest.rst:1499 msgid "" "Method called to prepare the test fixture. This is called after :meth:" "`setUp`. This is called immediately before calling the test method; other " @@ -2358,7 +2360,7 @@ msgstr "" "erreur et non pas comme un échec du test. L'implémentation par défaut ne " "fait rien." -#: library/unittest.rst:1506 +#: library/unittest.rst:1507 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called before :meth:`tearDown`. This is called " @@ -2382,13 +2384,13 @@ msgstr "" "soit le résultat de la méthode de test. L'implémentation par défaut ne fait " "rien." -#: library/unittest.rst:1518 +#: library/unittest.rst:1519 msgid "This method accepts a coroutine that can be used as a cleanup function." msgstr "" "Cette méthode accepte une coroutine qui peut être utilisée comme fonction de " "nettoyage." -#: library/unittest.rst:1522 +#: library/unittest.rst:1523 msgid "" "Sets up a new event loop to run the test, collecting the result into the :" "class:`TestResult` object passed as *result*. If *result* is omitted or " @@ -2404,11 +2406,11 @@ msgstr "" "utilisé. L'objet résultat est renvoyé à l'appelant de :meth:`run`. À la fin " "du test, toutes les taches de la boucle d’événements sont annulées." -#: library/unittest.rst:1530 +#: library/unittest.rst:1531 msgid "An example illustrating the order::" msgstr "Exemple illustrant l'ordre ::" -#: library/unittest.rst:1566 +#: library/unittest.rst:1567 msgid "" "After running the test, ``events`` would contain ``[\"setUp\", \"asyncSetUp" "\", \"test_response\", \"asyncTearDown\", \"tearDown\", \"cleanup\"]``." @@ -2417,7 +2419,7 @@ msgstr "" "\"asyncSetUp\", \"test_response\", \"asyncTearDown\", \"tearDown\", \"cleanup" "\"]``." -#: library/unittest.rst:1571 +#: library/unittest.rst:1572 msgid "" "This class implements the portion of the :class:`TestCase` interface which " "allows the test runner to drive the test, but does not provide the methods " @@ -2432,11 +2434,11 @@ msgstr "" "code de test existant afin de faciliter l'intégration dans un *framework* de " "test basé sur :mod:`unittest`." -#: library/unittest.rst:1581 +#: library/unittest.rst:1582 msgid "Deprecated aliases" msgstr "Alias obsolètes" -#: library/unittest.rst:1583 +#: library/unittest.rst:1584 msgid "" "For historical reasons, some of the :class:`TestCase` methods had one or " "more aliases that are now deprecated. The following table lists the correct " @@ -2446,123 +2448,123 @@ msgstr "" "`TestCase` avaient un ou plusieurs alias qui sont maintenant obsolètes. Le " "tableau suivant énumère les noms corrects ainsi que leurs alias obsolètes  ::" -#: library/unittest.rst:1588 +#: library/unittest.rst:1589 msgid "Method Name" msgstr "Nom de méthode" -#: library/unittest.rst:1588 +#: library/unittest.rst:1589 msgid "Deprecated alias" msgstr "Alias obsolètes" -#: library/unittest.rst:1590 +#: library/unittest.rst:1591 msgid ":meth:`.assertEqual`" msgstr ":meth:`.assertEqual`" -#: library/unittest.rst:1590 +#: library/unittest.rst:1591 msgid "failUnlessEqual" msgstr "failUnlessEqual" -#: library/unittest.rst:1590 +#: library/unittest.rst:1591 msgid "assertEquals" msgstr "assertEquals" -#: library/unittest.rst:1591 +#: library/unittest.rst:1592 msgid ":meth:`.assertNotEqual`" msgstr ":meth:`.assertNotEqual`" -#: library/unittest.rst:1591 +#: library/unittest.rst:1592 msgid "failIfEqual" msgstr "failIfEqual" -#: library/unittest.rst:1591 +#: library/unittest.rst:1592 msgid "assertNotEquals" msgstr "assertNotEquals" -#: library/unittest.rst:1592 +#: library/unittest.rst:1593 msgid ":meth:`.assertTrue`" msgstr ":meth:`.assertTrue`" -#: library/unittest.rst:1592 +#: library/unittest.rst:1593 msgid "failUnless" msgstr "failUnless" -#: library/unittest.rst:1592 +#: library/unittest.rst:1593 msgid "assert\\_" msgstr "assert\\_" -#: library/unittest.rst:1593 +#: library/unittest.rst:1594 msgid ":meth:`.assertFalse`" msgstr ":meth:`.assertFalse`" -#: library/unittest.rst:1593 +#: library/unittest.rst:1594 msgid "failIf" msgstr "failIf" -#: library/unittest.rst:1594 +#: library/unittest.rst:1595 msgid ":meth:`.assertRaises`" msgstr ":meth:`.assertRaises`" -#: library/unittest.rst:1594 +#: library/unittest.rst:1595 msgid "failUnlessRaises" msgstr "failUnlessRaises" -#: library/unittest.rst:1595 +#: library/unittest.rst:1596 msgid ":meth:`.assertAlmostEqual`" msgstr ":meth:`.assertAlmostEqual`" -#: library/unittest.rst:1595 +#: library/unittest.rst:1596 msgid "failUnlessAlmostEqual" msgstr "failUnlessAlmostEqual" -#: library/unittest.rst:1595 +#: library/unittest.rst:1596 msgid "assertAlmostEquals" msgstr "assertAlmostEquals" -#: library/unittest.rst:1596 +#: library/unittest.rst:1597 msgid ":meth:`.assertNotAlmostEqual`" msgstr ":meth:`.assertNotAlmostEqual`" -#: library/unittest.rst:1596 +#: library/unittest.rst:1597 msgid "failIfAlmostEqual" msgstr "failIfAlmostEqual" -#: library/unittest.rst:1596 +#: library/unittest.rst:1597 msgid "assertNotAlmostEquals" msgstr "assertNotAlmostEquals" -#: library/unittest.rst:1597 +#: library/unittest.rst:1598 msgid ":meth:`.assertRegex`" msgstr ":meth:`.assertRegex`" -#: library/unittest.rst:1597 +#: library/unittest.rst:1598 msgid "assertRegexpMatches" msgstr "assertRegexpMatches" -#: library/unittest.rst:1598 +#: library/unittest.rst:1599 msgid ":meth:`.assertNotRegex`" msgstr ":meth:`.assertNotRegex`" -#: library/unittest.rst:1598 +#: library/unittest.rst:1599 msgid "assertNotRegexpMatches" msgstr "assertNotRegexpMatches" -#: library/unittest.rst:1599 +#: library/unittest.rst:1600 msgid ":meth:`.assertRaisesRegex`" msgstr ":meth:`.assertRaisesRegex`" -#: library/unittest.rst:1599 +#: library/unittest.rst:1600 msgid "assertRaisesRegexp" msgstr "assertRaisesRegexp" -#: library/unittest.rst:1602 +#: library/unittest.rst:1603 msgid "The fail* aliases listed in the second column have been deprecated." msgstr "Les alias ``fail*`` sont énumérés dans la deuxième colonne." -#: library/unittest.rst:1604 +#: library/unittest.rst:1605 msgid "The assert* aliases listed in the third column have been deprecated." msgstr "Les alias ``assert*`` sont énumérés dans la troisième colonne." -#: library/unittest.rst:1606 +#: library/unittest.rst:1607 msgid "" "``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" "meth:`.assertRegex` and :meth:`.assertRaisesRegex`." @@ -2570,7 +2572,7 @@ msgstr "" "Les expressions ``assertRegexpMatches`` et ``assertRaisesRegexp`` ont été " "renommées en :meth:`.assertRegex` et :meth:`.assertRaisesRegex`." -#: library/unittest.rst:1609 +#: library/unittest.rst:1610 msgid "" "The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." "assertNotRegex`." @@ -2578,11 +2580,11 @@ msgstr "" "Le nom ``assertNotRegexpMatches`` est obsolète en faveur de :meth:`." "assertNotRegex`." -#: library/unittest.rst:1615 +#: library/unittest.rst:1616 msgid "Grouping tests" msgstr "Regroupement des tests" -#: library/unittest.rst:1619 +#: library/unittest.rst:1620 msgid "" "This class represents an aggregation of individual test cases and test " "suites. The class presents the interface needed by the test runner to allow " @@ -2595,7 +2597,7 @@ msgstr "" "instance de :class:`TestSuite` est identique à l'itération sur la suite, en " "exécutant chaque test indépendamment." -#: library/unittest.rst:1624 +#: library/unittest.rst:1625 msgid "" "If *tests* is given, it must be an iterable of individual test cases or " "other test suites that will be used to build the suite initially. Additional " @@ -2606,7 +2608,7 @@ msgstr "" "la suite initial. Des méthodes supplémentaires sont fournies pour ajouter " "ultérieurement des cas de test et des suites à la collection." -#: library/unittest.rst:1628 +#: library/unittest.rst:1629 msgid "" ":class:`TestSuite` objects behave much like :class:`TestCase` objects, " "except they do not actually implement a test. Instead, they are used to " @@ -2620,12 +2622,12 @@ msgstr "" "doivent être exécutés ensemble. Des méthodes supplémentaires sont " "disponibles pour ajouter des tests aux instances de :class:`TestSuite` :" -#: library/unittest.rst:1636 +#: library/unittest.rst:1637 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." msgstr "" "Ajouter un objet :class:`TestCase` ou :class:`TestSuite` à la suite de tests." -#: library/unittest.rst:1641 +#: library/unittest.rst:1642 msgid "" "Add all the tests from an iterable of :class:`TestCase` and :class:" "`TestSuite` instances to this test suite." @@ -2633,7 +2635,7 @@ msgstr "" "Ajouter tous les tests d'un itérable d'instances de :class:`TestCase` et de :" "class:`TestSuite` à cette suite de tests." -#: library/unittest.rst:1644 +#: library/unittest.rst:1645 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." @@ -2641,12 +2643,12 @@ msgstr "" "C'est l'équivalent d'une itération sur *tests*, appelant :meth:`addTest` " "pour chaque élément." -#: library/unittest.rst:1647 +#: library/unittest.rst:1648 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" ":class:`TestSuite` partage les méthodes suivantes avec :class:`TestCase` :" -#: library/unittest.rst:1652 +#: library/unittest.rst:1653 msgid "" "Run the tests associated with this suite, collecting the result into the " "test result object passed as *result*. Note that unlike :meth:`TestCase." @@ -2657,7 +2659,7 @@ msgstr "" "à :meth:`TestCase.run`, :meth:`TestSuite.run` nécessite que l'objet résultat " "soit passé." -#: library/unittest.rst:1660 +#: library/unittest.rst:1661 msgid "" "Run the tests associated with this suite without collecting the result. This " "allows exceptions raised by the test to be propagated to the caller and can " @@ -2667,7 +2669,7 @@ msgstr "" "permet aux exceptions levées par le test d'être propagées à l'appelant et " "peut être utilisé pour exécuter des tests sous un débogueur." -#: library/unittest.rst:1667 +#: library/unittest.rst:1668 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." @@ -2675,7 +2677,7 @@ msgstr "" "Renvoie le nombre de tests représentés par cet objet de test, y compris tous " "les tests individuels et les sous-suites." -#: library/unittest.rst:1673 +#: library/unittest.rst:1674 msgid "" "Tests grouped by a :class:`TestSuite` are always accessed by iteration. " "Subclasses can lazily provide tests by overriding :meth:`__iter__`. Note " @@ -2697,7 +2699,7 @@ msgstr "" "n'utilisent une sous-classe qui remplace :meth:`TestSuite." "_removeTestAtIndex` pour préserver les références des tests." -#: library/unittest.rst:1683 +#: library/unittest.rst:1684 msgid "" "In earlier versions the :class:`TestSuite` accessed tests directly rather " "than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " @@ -2707,7 +2709,7 @@ msgstr "" "tests directement plutôt que par itération, donc surcharger la méthode :meth:" "`__iter__` n'était pas suffisante pour fournir les tests." -#: library/unittest.rst:1688 +#: library/unittest.rst:1689 msgid "" "In earlier versions the :class:`TestSuite` held references to each :class:" "`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " @@ -2718,7 +2720,7 @@ msgstr "" "Les sous-classes peuvent restaurer ce comportement en surchargeant :meth:" "`TestSuite._removeTestAtIndex`." -#: library/unittest.rst:1693 +#: library/unittest.rst:1694 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." @@ -2727,11 +2729,11 @@ msgstr "" "`run` est invoquée par une classe :class:`TestRunner` plutôt que par le " "système de test de l'utilisateur." -#: library/unittest.rst:1698 +#: library/unittest.rst:1699 msgid "Loading and running tests" msgstr "Chargement et exécution des tests" -#: library/unittest.rst:1702 +#: library/unittest.rst:1703 msgid "" "The :class:`TestLoader` class is used to create test suites from classes and " "modules. Normally, there is no need to create an instance of this class; " @@ -2746,12 +2748,12 @@ msgstr "" "L'utilisation d'une sous-classe ou d'une instance permet cependant de " "personnaliser certaines propriétés configurables." -#: library/unittest.rst:1708 +#: library/unittest.rst:1709 msgid ":class:`TestLoader` objects have the following attributes:" msgstr "" "Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: library/unittest.rst:1713 +#: library/unittest.rst:1714 msgid "" "A list of the non-fatal errors encountered while loading tests. Not reset by " "the loader at any point. Fatal errors are signalled by the relevant a method " @@ -2764,12 +2766,12 @@ msgstr "" "exception à l'appelant. Les erreurs non fatales sont également indiquées par " "un test synthétique qui lève l'erreur initiale lors de l'exécution." -#: library/unittest.rst:1722 +#: library/unittest.rst:1723 msgid ":class:`TestLoader` objects have the following methods:" msgstr "" "Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: library/unittest.rst:1727 +#: library/unittest.rst:1728 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" "derived :class:`testCaseClass`." @@ -2777,7 +2779,7 @@ msgstr "" "Renvoie une suite de tous les cas de test contenus dans la classe :class:" "`TestCaseClass`\\ dérivée de :class:`testCase`." -#: library/unittest.rst:1730 +#: library/unittest.rst:1731 msgid "" "A test case instance is created for each method named by :meth:" "`getTestCaseNames`. By default these are the method names beginning with " @@ -2791,7 +2793,7 @@ msgstr "" "que la méthode :meth:`runTest` est implémentée, un seul cas de test est créé " "pour cette méthode à la place." -#: library/unittest.rst:1739 +#: library/unittest.rst:1740 msgid "" "Return a suite of all test cases contained in the given module. This method " "searches *module* for classes derived from :class:`TestCase` and creates an " @@ -2802,7 +2804,7 @@ msgstr "" "`TestCase` et crée une instance de la classe pour chaque méthode de test " "définie pour cette classe." -#: library/unittest.rst:1746 +#: library/unittest.rst:1747 msgid "" "While using a hierarchy of :class:`TestCase`\\ -derived classes can be " "convenient in sharing fixtures and helper functions, defining test methods " @@ -2817,7 +2819,7 @@ msgstr "" "pas bien avec cette méthode. Cela peut toutefois s'avérer utile lorsque les " "*fixtures* sont différentes et définies dans des sous-classes." -#: library/unittest.rst:1752 +#: library/unittest.rst:1753 msgid "" "If a module provides a ``load_tests`` function it will be called to load the " "tests. This allows modules to customize test loading. This is the " @@ -2829,11 +2831,11 @@ msgstr "" "C'est le protocole `load_tests protocol`_. L'argument *pattern* est passé " "comme troisième argument à ``load_tests``." -#: library/unittest.rst:1757 +#: library/unittest.rst:1758 msgid "Support for ``load_tests`` added." msgstr "Ajout de la prise en charge de ``load_tests``." -#: library/unittest.rst:1760 +#: library/unittest.rst:1761 msgid "" "The undocumented and unofficial *use_load_tests* default argument is " "deprecated and ignored, although it is still accepted for backward " @@ -2845,13 +2847,13 @@ msgstr "" "descendante. La méthode accepte aussi maintenant un argument *pattern* qui " "est passé à ``load_tests`` comme troisième argument." -#: library/unittest.rst:1769 +#: library/unittest.rst:1770 msgid "Return a suite of all test cases given a string specifier." msgstr "" "Renvoie une suite de tous les cas de test en fonction d'un spécificateur de " "chaîne de caractères." -#: library/unittest.rst:1771 +#: library/unittest.rst:1772 msgid "" "The specifier *name* is a \"dotted name\" that may resolve either to a " "module, a test case class, a test method within a test case class, a :class:" @@ -2870,7 +2872,7 @@ msgstr "" "choisie comme \"méthode de test dans une classe de cas de test\", plutôt que " "comme \"un objet appelable\"." -#: library/unittest.rst:1779 +#: library/unittest.rst:1780 msgid "" "For example, if you have a module :mod:`SampleTests` containing a :class:" "`TestCase`\\ -derived class :class:`SampleTestCase` with three test methods " @@ -2892,11 +2894,11 @@ msgstr "" "spécificateur peut se référer à des modules et packages qui n'ont pas été " "importés. Ils seront importés par un effet de bord." -#: library/unittest.rst:1789 +#: library/unittest.rst:1790 msgid "The method optionally resolves *name* relative to the given *module*." msgstr "La méthode résout facultativement *name* relatif au *module* donné." -#: library/unittest.rst:1791 +#: library/unittest.rst:1792 msgid "" "If an :exc:`ImportError` or :exc:`AttributeError` occurs while traversing " "*name* then a synthetic test that raises that error when run will be " @@ -2907,7 +2909,7 @@ msgstr "" "de l'exécution est renvoyé. Ces erreurs sont incluses dans les erreurs " "accumulées par *self.errors*." -#: library/unittest.rst:1800 +#: library/unittest.rst:1801 msgid "" "Similar to :meth:`loadTestsFromName`, but takes a sequence of names rather " "than a single name. The return value is a test suite which supports all the " @@ -2917,7 +2919,7 @@ msgstr "" "plutôt qu'un seul nom. La valeur renvoyée est une suite de tests qui gère " "tous les tests définis pour chaque nom." -#: library/unittest.rst:1807 +#: library/unittest.rst:1808 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." @@ -2925,7 +2927,7 @@ msgstr "" "Renvoie une séquence triée de noms de méthodes trouvés dans " "*testCaseClass* ; ceci doit être une sous-classe de :class:`TestCase`." -#: library/unittest.rst:1813 +#: library/unittest.rst:1814 msgid "" "Find all the test modules by recursing into subdirectories from the " "specified start directory, and return a TestSuite object containing them. " @@ -2939,7 +2941,7 @@ msgstr "" "chargés. Seuls les noms de modules qui sont importables (c'est-à-dire qui " "sont des identifiants Python valides) sont chargés." -#: library/unittest.rst:1819 +#: library/unittest.rst:1820 msgid "" "All test modules must be importable from the top level of the project. If " "the start directory is not the top level directory then the top level " @@ -2949,7 +2951,7 @@ msgstr "" "projet. Si le répertoire de démarrage n'est pas la racine, le répertoire " "racine doit être spécifié séparément." -#: library/unittest.rst:1823 +#: library/unittest.rst:1824 msgid "" "If importing a module fails, for example due to a syntax error, then this " "will be recorded as a single error and discovery will continue. If the " @@ -2962,7 +2964,7 @@ msgstr "" "`SkipTest` est levé, il est enregistré comme un saut plutôt que comme un " "message d'erreur." -#: library/unittest.rst:1828 +#: library/unittest.rst:1829 msgid "" "If a package (a directory containing a file named :file:`__init__.py`) is " "found, the package will be checked for a ``load_tests`` function. If this " @@ -2978,7 +2980,7 @@ msgstr "" "paquet n'est vérifié qu'une seule fois au cours d'une invocation, même si la " "fonction *load_tests* appelle elle-même ``loader.discover``." -#: library/unittest.rst:1836 +#: library/unittest.rst:1837 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." @@ -2987,7 +2989,7 @@ msgstr "" "dans le paquet, ``load_tests`` a la responsabilité de charger tous les tests " "dans le paquet." -#: library/unittest.rst:1840 +#: library/unittest.rst:1841 msgid "" "The pattern is deliberately not stored as a loader attribute so that " "packages can continue discovery themselves. *top_level_dir* is stored so " @@ -2999,11 +3001,11 @@ msgstr "" "*top_level_dir* est stocké de sorte que ``load_tests`` n'a pas besoin de " "passer cet argument a ``loader. discover()``." -#: library/unittest.rst:1845 +#: library/unittest.rst:1846 msgid "*start_dir* can be a dotted module name as well as a directory." msgstr "*start_dir* peut être un nom de module ainsi qu'un répertoire." -#: library/unittest.rst:1849 +#: library/unittest.rst:1850 msgid "" "Modules that raise :exc:`SkipTest` on import are recorded as skips, not " "errors. Discovery works for :term:`namespace packages `. " @@ -3018,7 +3020,7 @@ msgstr "" "soit le même, même si l'ordre du système de fichiers sous-jacent ne dépend " "pas du nom du fichier." -#: library/unittest.rst:1857 +#: library/unittest.rst:1858 msgid "" "Found packages are now checked for ``load_tests`` regardless of whether " "their path matches *pattern*, because it is impossible for a package name to " @@ -3029,7 +3031,7 @@ msgstr "" "*pattern*, car il est impossible pour un nom de paquet de correspondre au " "motif par défaut." -#: library/unittest.rst:1863 +#: library/unittest.rst:1864 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" @@ -3037,7 +3039,7 @@ msgstr "" "Les attributs suivants d'une classe :class:`TestLoader` peuvent être " "configurés soit par héritage, soit par affectation sur une instance  ::" -#: library/unittest.rst:1869 +#: library/unittest.rst:1870 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." @@ -3045,7 +3047,7 @@ msgstr "" "Chaîne donnant le préfixe des noms de méthodes qui seront interprétés comme " "méthodes de test. La valeur par défaut est ``'test'``." -#: library/unittest.rst:1872 +#: library/unittest.rst:1873 msgid "" "This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " "methods." @@ -3053,7 +3055,7 @@ msgstr "" "Ceci affecte les méthodes :meth:`getTestCaseNames` et toutes les méthodes :" "meth:`loadTestsFrom\\*`." -#: library/unittest.rst:1878 +#: library/unittest.rst:1879 msgid "" "Function to be used to compare method names when sorting them in :meth:" "`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." @@ -3062,7 +3064,7 @@ msgstr "" "les méthodes :meth:`getTestCaseNames` et toutes les méthodes :meth:" "`loadTestsFrom\\*`." -#: library/unittest.rst:1884 +#: library/unittest.rst:1885 msgid "" "Callable object that constructs a test suite from a list of tests. No " "methods on the resulting object are needed. The default value is the :class:" @@ -3072,11 +3074,11 @@ msgstr "" "tests. Aucune méthode sur l'objet résultant n'est nécessaire. La valeur par " "défaut est la classe :class:`TestSuite`." -#: library/unittest.rst:1901 +#: library/unittest.rst:1902 msgid "This affects all the :meth:`loadTestsFrom\\*` methods." msgstr "Cela affecte toutes les méthodes :meth:`loadTestsFrom\\*`." -#: library/unittest.rst:1892 +#: library/unittest.rst:1893 msgid "" "List of Unix shell-style wildcard test name patterns that test methods have " "to match to be included in test suites (see ``-v`` option)." @@ -3085,7 +3087,7 @@ msgstr "" "méthodes de test doivent valider pour être incluses dans les suites de test " "(voir l'option ``-v``)." -#: library/unittest.rst:1895 +#: library/unittest.rst:1896 msgid "" "If this attribute is not ``None`` (the default), all test methods to be " "included in test suites must match one of the patterns in this list. Note " @@ -3100,7 +3102,7 @@ msgstr "" "à l'option ``-v``, les motifs de sous-chaînes simples doivent être convertis " "avec le joker ``*``." -#: library/unittest.rst:1908 +#: library/unittest.rst:1909 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." @@ -3108,7 +3110,7 @@ msgstr "" "Cette classe est utilisée pour compiler des informations sur les tests qui " "ont réussi et ceux qui ont échoué." -#: library/unittest.rst:1911 +#: library/unittest.rst:1912 msgid "" "A :class:`TestResult` object stores the results of a set of tests. The :" "class:`TestCase` and :class:`TestSuite` classes ensure that results are " @@ -3120,7 +3122,7 @@ msgstr "" "résultats sont correctement enregistrés. Les auteurs du test n'ont pas à se " "soucier de l'enregistrement des résultats des tests." -#: library/unittest.rst:1916 +#: library/unittest.rst:1917 msgid "" "Testing frameworks built on top of :mod:`unittest` may want access to the :" "class:`TestResult` object generated by running a set of tests for reporting " @@ -3133,7 +3135,7 @@ msgstr "" "`TestResult` est alors renvoyée par la méthode :meth:`TestRunner.run` à " "cette fin." -#: library/unittest.rst:1921 +#: library/unittest.rst:1922 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" @@ -3142,7 +3144,7 @@ msgstr "" "intéressant pour l'inspection des résultats de l'exécution d'un ensemble de " "tests  ::" -#: library/unittest.rst:1927 +#: library/unittest.rst:1928 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test which raised an " @@ -3152,7 +3154,7 @@ msgstr "" "chaînes de caractères contenant des traces de pile d'appels formatées. " "Chaque paire représente un test qui a levé une exception inattendue." -#: library/unittest.rst:1933 +#: library/unittest.rst:1934 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test where a failure " @@ -3163,7 +3165,7 @@ msgstr "" "Chaque paire représente un test où un échec a été explicitement signalé en " "utilisant les méthodes :meth:`TestCase.assert\\*`." -#: library/unittest.rst:1939 +#: library/unittest.rst:1940 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." @@ -3171,7 +3173,7 @@ msgstr "" "Une liste contenant des paires d'instances de :class:`TestCase` et de " "chaînes de caractères contenant la raison de l'omission du test." -#: library/unittest.rst:1946 +#: library/unittest.rst:1947 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents an expected failure of " @@ -3181,7 +3183,7 @@ msgstr "" "de caractères contenant des traces de pile d'appels formatées. Chaque paire " "représente un échec attendu du scénario de test." -#: library/unittest.rst:1952 +#: library/unittest.rst:1953 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." @@ -3189,18 +3191,18 @@ msgstr "" "Une liste contenant les instances :class:`TestCase` qui ont été marquées " "comme des échecs attendus, mais qui ont réussi." -#: library/unittest.rst:1957 +#: library/unittest.rst:1958 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" "A positionner sur ``True`` quand l'exécution des tests doit être arrêter " "par :meth:`stop`." -#: library/unittest.rst:1961 +#: library/unittest.rst:1962 msgid "The total number of tests run so far." msgstr "Le nombre total de tests effectués jusqu'à présent." -#: library/unittest.rst:1965 +#: library/unittest.rst:1966 msgid "" "If set to true, ``sys.stdout`` and ``sys.stderr`` will be buffered in " "between :meth:`startTest` and :meth:`stopTest` being called. Collected " @@ -3214,7 +3216,7 @@ msgstr "" "stderr`` réels uniquement en cas d'échec ou d'erreur du test. Toute sortie " "est également attachée au message d'erreur." -#: library/unittest.rst:1974 +#: library/unittest.rst:1975 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." @@ -3222,13 +3224,13 @@ msgstr "" "Si la valeur est *true* :meth:`stop` est appelée lors de la première " "défaillance ou erreur, ce qui interrompt le test en cours d'exécution." -#: library/unittest.rst:1981 +#: library/unittest.rst:1982 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" "Si la valeur est *true*, les variables locales sont affichées dans les " "traces d'appels." -#: library/unittest.rst:1987 +#: library/unittest.rst:1988 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." @@ -3236,7 +3238,7 @@ msgstr "" "Renvoie ``True`` si tous les tests effectués jusqu'à présent ont réussi, " "sinon renvoie ``False``." -#: library/unittest.rst:1990 +#: library/unittest.rst:1991 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." @@ -3244,7 +3246,7 @@ msgstr "" "Renvoie ``False`` s'il y a eu des :attr:`unexpectedSuccesses` dans les tests " "annotés avec le décorateur :func:`expectedFailure`." -#: library/unittest.rst:1996 +#: library/unittest.rst:1997 msgid "" "This method can be called to signal that the set of tests being run should " "be aborted by setting the :attr:`shouldStop` attribute to ``True``. :class:" @@ -3256,7 +3258,7 @@ msgstr "" "`shouldStop` sur ``True``. Les instances de :class:`TestRunner` doivent " "respecter ce signal et se terminer sans exécuter de tests supplémentaires." -#: library/unittest.rst:2001 +#: library/unittest.rst:2002 msgid "" "For example, this feature is used by the :class:`TextTestRunner` class to " "stop the test framework when the user signals an interrupt from the " @@ -3268,7 +3270,7 @@ msgstr "" "lance une interruption clavier. Les outils interactifs qui fournissent des " "implémentations de :class:`TestRunner` peuvent l'utiliser de la même manière." -#: library/unittest.rst:2006 +#: library/unittest.rst:2007 msgid "" "The following methods of the :class:`TestResult` class are used to maintain " "the internal data structures, and may be extended in subclasses to support " @@ -3282,27 +3284,27 @@ msgstr "" "outils qui prennent en charge la génération de rapports interactifs pendant " "l'exécution des tests." -#: library/unittest.rst:2014 +#: library/unittest.rst:2015 msgid "Called when the test case *test* is about to be run." msgstr "" "Appelé lorsque le scénario de test *test* est sur le point d'être exécuté." -#: library/unittest.rst:2018 +#: library/unittest.rst:2019 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." msgstr "" "Appelé après l'exécution du cas de test *test*, quel qu'en soit le résultat." -#: library/unittest.rst:2023 +#: library/unittest.rst:2024 msgid "Called once before any tests are executed." msgstr "Appelé une fois avant l'exécution des tests." -#: library/unittest.rst:2030 +#: library/unittest.rst:2031 msgid "Called once after all tests are executed." msgstr "Appelé une fois après l'exécution des tests." -#: library/unittest.rst:2037 +#: library/unittest.rst:2038 msgid "" "Called when the test case *test* raises an unexpected exception. *err* is a " "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " @@ -3312,7 +3314,7 @@ msgstr "" "est un n-uplet de la même forme que celle renvoyée par :func:`sys." "exc_info` : ``(type, valeur, traceback)``." -#: library/unittest.rst:2041 +#: library/unittest.rst:2042 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " @@ -3322,7 +3324,7 @@ msgstr "" "l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " "formatée à partir de *err*." -#: library/unittest.rst:2048 +#: library/unittest.rst:2049 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." @@ -3331,7 +3333,7 @@ msgstr "" "est un triplet de la même forme que celui renvoyé par :func:`sys.exc_info` : " "``(type, valeur, traceback)``." -#: library/unittest.rst:2051 +#: library/unittest.rst:2052 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " @@ -3341,15 +3343,15 @@ msgstr "" "l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " "formatée à partir de *err*." -#: library/unittest.rst:2058 +#: library/unittest.rst:2059 msgid "Called when the test case *test* succeeds." msgstr "Appelé lorsque le scénario de test *test* réussit." -#: library/unittest.rst:2060 +#: library/unittest.rst:2061 msgid "The default implementation does nothing." msgstr "L'implémentation par défaut ne fait rien." -#: library/unittest.rst:2065 +#: library/unittest.rst:2066 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." @@ -3357,7 +3359,7 @@ msgstr "" "Appelé lorsque le scénario de test *test* est ignoré. *raison* est la raison " "pour laquelle le test donné à été ignoré." -#: library/unittest.rst:2068 +#: library/unittest.rst:2069 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." @@ -3365,7 +3367,7 @@ msgstr "" "L'implémentation par défaut ajoute un n-uplet ``(test, raison)`` à " "l'attribut :attr:`skipped` de l'instance." -#: library/unittest.rst:2074 +#: library/unittest.rst:2075 msgid "" "Called when the test case *test* fails, but was marked with the :func:" "`expectedFailure` decorator." @@ -3373,7 +3375,7 @@ msgstr "" "Appelé lorsque le scénario de test *test* échoue, mais qui a été marqué avec " "le décorateur :func:`expectedFailure`." -#: library/unittest.rst:2077 +#: library/unittest.rst:2078 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " @@ -3383,7 +3385,7 @@ msgstr "" "l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " "formatée à partir de *err*." -#: library/unittest.rst:2084 +#: library/unittest.rst:2085 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." @@ -3391,7 +3393,7 @@ msgstr "" "Appelé lorsque le scénario de test *test* réussit, mais que ce scénario a " "été marqué avec le décorateur :func:`expectedFailure`." -#: library/unittest.rst:2087 +#: library/unittest.rst:2088 msgid "" "The default implementation appends the test to the instance's :attr:" "`unexpectedSuccesses` attribute." @@ -3399,7 +3401,7 @@ msgstr "" "L'implémentation par défaut ajoute le test à l'attribut :attr:" "`unexpectedSuccesses` de l'instance." -#: library/unittest.rst:2093 +#: library/unittest.rst:2094 msgid "" "Called when a subtest finishes. *test* is the test case corresponding to " "the test method. *subtest* is a custom :class:`TestCase` instance " @@ -3409,7 +3411,7 @@ msgstr "" "méthode de test. *subtest* est une instance dérivée de :class:`TestCase` " "décrivant le sous-test." -#: library/unittest.rst:2097 +#: library/unittest.rst:2098 msgid "" "If *outcome* is :const:`None`, the subtest succeeded. Otherwise, it failed " "with an exception where *outcome* is a tuple of the form returned by :func:" @@ -3419,7 +3421,7 @@ msgstr "" "avec une exception où *outcome* est un triplet du formulaire renvoyé par :" "func:`sys.exc_info` : ``(type, valeur, traceback)``." -#: library/unittest.rst:2101 +#: library/unittest.rst:2102 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." @@ -3427,7 +3429,7 @@ msgstr "" "L'implémentation par défaut ne fait rien lorsque le résultat est un succès, " "et enregistre les échecs de sous-test comme des échecs normaux." -#: library/unittest.rst:2109 +#: library/unittest.rst:2110 msgid "" "A concrete implementation of :class:`TestResult` used by the :class:" "`TextTestRunner`." @@ -3435,7 +3437,7 @@ msgstr "" "Une implémentation concrète de :class:`TestResult` utilisé par la classe :" "class:`TextTestRunner`." -#: library/unittest.rst:2112 +#: library/unittest.rst:2113 msgid "" "This class was previously named ``_TextTestResult``. The old name still " "exists as an alias but is deprecated." @@ -3443,7 +3445,7 @@ msgstr "" "Cette classe s'appelait auparavant ``_TextTestResult``. L'ancien nom existe " "toujours en tant qu'alias, mais il est obsolète." -#: library/unittest.rst:2119 +#: library/unittest.rst:2120 msgid "" "Instance of the :class:`TestLoader` class intended to be shared. If no " "customization of the :class:`TestLoader` is needed, this instance can be " @@ -3454,7 +3456,7 @@ msgstr "" "cette instance peut être utilisée au lieu de créer plusieurs fois de " "nouvelles instances." -#: library/unittest.rst:2127 +#: library/unittest.rst:2128 msgid "" "A basic test runner implementation that outputs results to a stream. If " "*stream* is ``None``, the default, :data:`sys.stderr` is used as the output " @@ -3473,7 +3475,7 @@ msgstr "" "``**kwargs`` car l'interface pour construire les lanceurs change lorsque des " "fonctionnalités sont ajoutées à *unittest*." -#: library/unittest.rst:2134 +#: library/unittest.rst:2135 msgid "" "By default this runner shows :exc:`DeprecationWarning`, :exc:" "`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` " @@ -3496,11 +3498,11 @@ msgstr "" "de Python (voir :ref:`Gestion des avertissements `) et en " "laissant *warnings* à ``None``." -#: library/unittest.rst:2145 +#: library/unittest.rst:2146 msgid "Added the ``warnings`` argument." msgstr "Ajout du paramètre ``warnings``." -#: library/unittest.rst:2148 +#: library/unittest.rst:2149 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." @@ -3508,11 +3510,11 @@ msgstr "" "Le flux par défaut est défini sur :data:`sys.stderr` au moment de " "l'instanciation plutôt qu'à l'importation." -#: library/unittest.rst:2152 +#: library/unittest.rst:2153 msgid "Added the tb_locals parameter." msgstr "Ajout du paramètre *tb_locals*." -#: library/unittest.rst:2157 +#: library/unittest.rst:2158 msgid "" "This method returns the instance of ``TestResult`` used by :meth:`run`. It " "is not intended to be called directly, but can be overridden in subclasses " @@ -3522,7 +3524,7 @@ msgstr "" "Il n'est pas destiné à être appelé directement, mais peut être surchargée " "dans des sous-classes pour fournir un ``TestResult`` personnalisé." -#: library/unittest.rst:2161 +#: library/unittest.rst:2162 msgid "" "``_makeResult()`` instantiates the class or callable passed in the " "``TextTestRunner`` constructor as the ``resultclass`` argument. It defaults " @@ -3534,7 +3536,7 @@ msgstr "" "défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " "classe de résultat est instanciée avec les arguments suivants ::" -#: library/unittest.rst:2170 +#: library/unittest.rst:2171 msgid "" "This method is the main public interface to the ``TextTestRunner``. This " "method takes a :class:`TestSuite` or :class:`TestCase` instance. A :class:" @@ -3546,7 +3548,7 @@ msgstr "" "Un :class:`TestResult` est créé en appelant :func:`_makeResult` et le ou les " "tests sont exécutés et les résultats affichés sur la sortie standard." -#: library/unittest.rst:2181 +#: library/unittest.rst:2182 msgid "" "A command-line program that loads a set of tests from *module* and runs " "them; this is primarily for making test modules conveniently executable. The " @@ -3559,7 +3561,7 @@ msgstr "" "cette fonction est d'inclure la ligne suivante à la fin d'un script de " "test ::" -#: library/unittest.rst:2189 +#: library/unittest.rst:2190 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" @@ -3567,7 +3569,7 @@ msgstr "" "Vous pouvez exécuter des tests avec des informations plus détaillées en " "utilisant l'option de verbosité ::" -#: library/unittest.rst:2195 +#: library/unittest.rst:2196 msgid "" "The *defaultTest* argument is either the name of a single test or an " "iterable of test names to run if no test names are specified via *argv*. If " @@ -3579,7 +3581,7 @@ msgstr "" "aucun nom de test n'est fourni via *argv*, tous les tests trouvés dans " "*module* sont exécutés." -#: library/unittest.rst:2200 +#: library/unittest.rst:2201 msgid "" "The *argv* argument can be a list of options passed to the program, with the " "first element being the program name. If not specified or ``None``, the " @@ -3589,7 +3591,7 @@ msgstr "" "premier élément étant le nom du programme. S'il n'est pas spécifié ou vaut " "``None``, les valeurs de :data:`sys.argv` sont utilisées." -#: library/unittest.rst:2204 +#: library/unittest.rst:2205 msgid "" "The *testRunner* argument can either be a test runner class or an already " "created instance of it. By default ``main`` calls :func:`sys.exit` with an " @@ -3600,7 +3602,7 @@ msgstr "" "exit` avec un code de sortie indiquant le succès ou l'échec des tests " "exécutés." -#: library/unittest.rst:2208 +#: library/unittest.rst:2209 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." @@ -3608,7 +3610,7 @@ msgstr "" "L'argument *testLoader* doit être une instance de :class:`TestLoader`, et " "par défaut de :data:`defaultTestLoader`." -#: library/unittest.rst:2211 +#: library/unittest.rst:2212 msgid "" "``main`` supports being used from the interactive interpreter by passing in " "the argument ``exit=False``. This displays the result on standard output " @@ -3618,7 +3620,7 @@ msgstr "" "dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " "standard sans appeler :func:`sys.exit` ::" -#: library/unittest.rst:2218 +#: library/unittest.rst:2219 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." @@ -3626,7 +3628,7 @@ msgstr "" "Les paramètres *failfast*, *catchbreak* et *buffer* ont le même effet que la " "même option en ligne de commande `command-line options`_." -#: library/unittest.rst:2221 +#: library/unittest.rst:2222 msgid "" "The *warnings* argument specifies the :ref:`warning filter ` " "that should be used while running the tests. If it's not specified, it will " @@ -3641,7 +3643,7 @@ msgstr "" "avertissements `), sinon elle sera réglée sur " "``'default'``." -#: library/unittest.rst:2227 +#: library/unittest.rst:2228 msgid "" "Calling ``main`` actually returns an instance of the ``TestProgram`` class. " "This stores the result of the tests run as the ``result`` attribute." @@ -3650,11 +3652,11 @@ msgstr "" "``TestProgram``. Le résultat des tests effectués est enregistré sous " "l'attribut ``result``." -#: library/unittest.rst:2230 +#: library/unittest.rst:2231 msgid "The *exit* parameter was added." msgstr "Ajout du paramètre *exit*." -#: library/unittest.rst:2233 +#: library/unittest.rst:2234 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." @@ -3662,7 +3664,7 @@ msgstr "" "Ajout des paramètres *verbosity*, *failfast*, *catchbreak*, *buffer* et " "*warnings*." -#: library/unittest.rst:2237 +#: library/unittest.rst:2238 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." @@ -3670,11 +3672,11 @@ msgstr "" "Le paramètre *defaultTest* a été modifié pour accepter également un itérable " "de noms de test." -#: library/unittest.rst:2243 +#: library/unittest.rst:2244 msgid "load_tests Protocol" msgstr "Protocole de chargement des tests (*load_tests Protocol*)" -#: library/unittest.rst:2247 +#: library/unittest.rst:2248 msgid "" "Modules or packages can customize how tests are loaded from them during " "normal test runs or test discovery by implementing a function called " @@ -3684,7 +3686,7 @@ msgstr "" "chargés à partir de ceux-ci pendant l'exécution des tests ou pendant la " "découverte de tests en implémentant une fonction appelée ``load_tests``." -#: library/unittest.rst:2250 +#: library/unittest.rst:2251 msgid "" "If a test module defines ``load_tests`` it will be called by :meth:" "`TestLoader.loadTestsFromModule` with the following arguments::" @@ -3692,7 +3694,7 @@ msgstr "" "Si un module de test définit ``load_tests`` il est appelé par :meth:" "`TestLoader.loadTestsFromModule` avec les arguments suivants ::" -#: library/unittest.rst:2255 +#: library/unittest.rst:2256 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." @@ -3700,11 +3702,11 @@ msgstr "" "où *pattern* est passé directement depuis ``loadTestsFromModule``. La valeur " "par défaut est ``None``." -#: library/unittest.rst:2258 +#: library/unittest.rst:2259 msgid "It should return a :class:`TestSuite`." msgstr "Elle doit renvoyer une classe :class:`TestSuite`." -#: library/unittest.rst:2260 +#: library/unittest.rst:2261 msgid "" "*loader* is the instance of :class:`TestLoader` doing the loading. " "*standard_tests* are the tests that would be loaded by default from the " @@ -3719,7 +3721,7 @@ msgstr "" "argument est utilisé lors du chargement de paquets dans le cadre de la " "découverte de tests." -#: library/unittest.rst:2266 +#: library/unittest.rst:2267 msgid "" "A typical ``load_tests`` function that loads tests from a specific set of :" "class:`TestCase` classes may look like::" @@ -3727,7 +3729,7 @@ msgstr "" "Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " "spécifique de classes :class:`TestCase` peut ressembler à ::" -#: library/unittest.rst:2278 +#: library/unittest.rst:2279 msgid "" "If discovery is started in a directory containing a package, either from the " "command line or by calling :meth:`TestLoader.discover`, then the package :" @@ -3744,7 +3746,7 @@ msgstr "" "répertoire. Sinon, la découverte des tests du paquet est effectuée par " "``load_tests`` qui est appelé avec les arguments suivants ::" -#: library/unittest.rst:2287 +#: library/unittest.rst:2288 msgid "" "This should return a :class:`TestSuite` representing all the tests from the " "package. (``standard_tests`` will only contain tests collected from :file:" @@ -3754,7 +3756,7 @@ msgstr "" "paquet. (``standard_tests`` ne contient que les tests collectés dans le " "fichier :file:`__init__.py`)." -#: library/unittest.rst:2291 +#: library/unittest.rst:2292 msgid "" "Because the pattern is passed into ``load_tests`` the package is free to " "continue (and potentially modify) test discovery. A 'do nothing' " @@ -3764,7 +3766,7 @@ msgstr "" "(et potentiellement de modifier) la découverte des tests. Une fonction « ne " "rien faire » ``load_tests`` pour un paquet de test ressemblerait à ::" -#: library/unittest.rst:2302 +#: library/unittest.rst:2303 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." @@ -3773,11 +3775,11 @@ msgstr "" "à *pattern* en raison de l'impossibilité de trouver des noms de paquets " "correspondant au motif par défaut." -#: library/unittest.rst:2309 +#: library/unittest.rst:2310 msgid "Class and Module Fixtures" msgstr "Classes et modules d'aménagements des tests" -#: library/unittest.rst:2311 +#: library/unittest.rst:2312 msgid "" "Class and module level fixtures are implemented in :class:`TestSuite`. When " "the test suite encounters a test from a new class then :meth:`tearDownClass` " @@ -3789,7 +3791,7 @@ msgstr "" "classe, alors :meth:`tearDownClass` de la classe précédente (s'il y en a " "une) est appelé, suivi de :meth:`setUpClass` de la nouvelle classe." -#: library/unittest.rst:2316 +#: library/unittest.rst:2317 msgid "" "Similarly if a test is from a different module from the previous test then " "``tearDownModule`` from the previous module is run, followed by " @@ -3799,7 +3801,7 @@ msgstr "" "``tearDownModule`` du module précédent est exécuté, suivi par " "``setUpModule`` du nouveau module." -#: library/unittest.rst:2320 +#: library/unittest.rst:2321 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." @@ -3807,7 +3809,7 @@ msgstr "" "Après que tous les tests ont été exécutés, les ``tearDownClass`` et " "``tearDownModule`` finaux sont exécutés." -#: library/unittest.rst:2323 +#: library/unittest.rst:2324 msgid "" "Note that shared fixtures do not play well with [potential] features like " "test parallelization and they break test isolation. They should be used with " @@ -3817,7 +3819,7 @@ msgstr "" "de « potentielles » fonctions comme la parallélisation de test et qu'ils " "brisent l'isolation des tests. Ils doivent être utilisés avec parcimonie." -#: library/unittest.rst:2326 +#: library/unittest.rst:2327 msgid "" "The default ordering of tests created by the unittest test loaders is to " "group all tests from the same modules and classes together. This will lead " @@ -3834,7 +3836,7 @@ msgstr "" "uns aux autres, alors ces fonctions d'aménagements partagées peuvent être " "appelées plusieurs fois dans un même test." -#: library/unittest.rst:2333 +#: library/unittest.rst:2334 msgid "" "Shared fixtures are not intended to work with suites with non-standard " "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " @@ -3845,7 +3847,7 @@ msgstr "" "toujours pour les cadriciels qui ne veulent pas gérer les aménagements de " "tests partagés." -#: library/unittest.rst:2337 +#: library/unittest.rst:2338 msgid "" "If there are any exceptions raised during one of the shared fixture " "functions the test is reported as an error. Because there is no " @@ -3862,17 +3864,17 @@ msgstr "" "détail n'a pas d'importance, mais si vous êtes un auteur de cadriciel de " "test, il peut être pertinent." -#: library/unittest.rst:2346 +#: library/unittest.rst:2347 msgid "setUpClass and tearDownClass" msgstr "" "Classes de mise en place (*setUpClass*) et de démantèlement des tests " "(*tearDownClass*)" -#: library/unittest.rst:2348 +#: library/unittest.rst:2349 msgid "These must be implemented as class methods::" msgstr "Elles doivent être implémentées en tant que méthodes de classe ::" -#: library/unittest.rst:2361 +#: library/unittest.rst:2362 msgid "" "If you want the ``setUpClass`` and ``tearDownClass`` on base classes called " "then you must call up to them yourself. The implementations in :class:" @@ -3882,7 +3884,7 @@ msgstr "" "soient appelées, vous devez les appeler vous-même. Les implémentations dans :" "class:`TestCase` sont vides." -#: library/unittest.rst:2365 +#: library/unittest.rst:2366 msgid "" "If an exception is raised during a ``setUpClass`` then the tests in the " "class are not run and the ``tearDownClass`` is not run. Skipped classes will " @@ -3897,17 +3899,17 @@ msgstr "" "`SkipTest` alors la classe est signalée comme ayant été ignorée au lieu " "d'être en échec." -#: library/unittest.rst:2373 +#: library/unittest.rst:2374 msgid "setUpModule and tearDownModule" msgstr "" "Module de mise en place (*setUpModule*) et de démantèlement des tests " "(*tearDownModule*)" -#: library/unittest.rst:2375 +#: library/unittest.rst:2376 msgid "These should be implemented as functions::" msgstr "Elles doivent être implémentées en tant que fonctions ::" -#: library/unittest.rst:2383 +#: library/unittest.rst:2384 msgid "" "If an exception is raised in a ``setUpModule`` then none of the tests in the " "module will be run and the ``tearDownModule`` will not be run. If the " @@ -3920,7 +3922,7 @@ msgstr "" "exception :exc:`SkipTest` alors le module est signalé comme ayant été ignoré " "au lieu d'être en échec." -#: library/unittest.rst:2388 +#: library/unittest.rst:2389 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" @@ -3928,7 +3930,7 @@ msgstr "" "Pour ajouter du code de nettoyage qui doit être exécuté même en cas " "d'exception, utilisez ``addModuleCleanup`` :" -#: library/unittest.rst:2394 +#: library/unittest.rst:2395 msgid "" "Add a function to be called after :func:`tearDownModule` to cleanup " "resources used during the test class. Functions will be called in reverse " @@ -3943,7 +3945,7 @@ msgstr "" "arguments et arguments nommés passés à :meth:`addModuleCleanup` quand elles " "sont ajoutées." -#: library/unittest.rst:2400 +#: library/unittest.rst:2401 msgid "" "If :meth:`setUpModule` fails, meaning that :func:`tearDownModule` is not " "called, then any cleanup functions added will still be called." @@ -3952,7 +3954,7 @@ msgstr "" "pas appelée, alors les fonctions de nettoyage ajoutées sont quand même " "toujours appelées." -#: library/unittest.rst:2408 +#: library/unittest.rst:2409 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." @@ -3960,7 +3962,7 @@ msgstr "" "Cette méthode est appelée sans conditions après :meth:`tearDownModule`, ou " "après :meth:`setUpModule` si :meth:`setUpModule` lève une exception." -#: library/unittest.rst:2411 +#: library/unittest.rst:2412 msgid "" "It is responsible for calling all the cleanup functions added by :func:" "`addCleanupModule`. If you need cleanup functions to be called *prior* to :" @@ -3971,7 +3973,7 @@ msgstr "" "nettoyage à appeler *avant* l'appel à :meth:`tearDownModule` alors vous " "pouvez appeler :meth:`doCleanupsModule` vous-même." -#: library/unittest.rst:2416 +#: library/unittest.rst:2417 msgid "" ":func:`doModuleCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." @@ -3980,11 +3982,11 @@ msgstr "" "nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " "moment." -#: library/unittest.rst:2422 +#: library/unittest.rst:2423 msgid "Signal Handling" msgstr "Traitement des signaux" -#: library/unittest.rst:2426 +#: library/unittest.rst:2427 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main()`, provide " @@ -4001,7 +4003,7 @@ msgstr "" "rapporte tous les résultats obtenus jusqu'à présent. Un deuxième contrôle-C " "lève une exception classique :exc:`KeyboardInterrupt`." -#: library/unittest.rst:2433 +#: library/unittest.rst:2434 msgid "" "The control-c handling signal handler attempts to remain compatible with " "code or tests that install their own :const:`signal.SIGINT` handler. If the " @@ -4022,7 +4024,7 @@ msgstr "" "individuels qui ont besoin que le signal *contrôle-C* \"*unittest*\" soit " "désactivée, le décorateur :func:`removeHandler` peut être utilisé." -#: library/unittest.rst:2442 +#: library/unittest.rst:2443 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." @@ -4031,7 +4033,7 @@ msgstr "" "d'activer la fonctionnalité de gestion des *contrôle-C* dans les cadriciels " "de test." -#: library/unittest.rst:2447 +#: library/unittest.rst:2448 msgid "" "Install the control-c handler. When a :const:`signal.SIGINT` is received " "(usually in response to the user pressing control-c) all registered results " @@ -4042,7 +4044,7 @@ msgstr "" "tous les résultats enregistrés vont appeler la méthode :meth:`~TestResult." "stop`." -#: library/unittest.rst:2454 +#: library/unittest.rst:2455 msgid "" "Register a :class:`TestResult` object for control-c handling. Registering a " "result stores a weak reference to it, so it doesn't prevent the result from " @@ -4053,7 +4055,7 @@ msgstr "" "sorte qu'il n'empêche pas que le résultat soit collecté par le ramasse-" "miette." -#: library/unittest.rst:2458 +#: library/unittest.rst:2459 msgid "" "Registering a :class:`TestResult` object has no side-effects if control-c " "handling is not enabled, so test frameworks can unconditionally register all " @@ -4064,7 +4066,7 @@ msgstr "" "peuvent enregistrer sans condition tous les résultats qu'ils créent " "indépendamment du fait que la gestion soit activée ou non." -#: library/unittest.rst:2465 +#: library/unittest.rst:2466 msgid "" "Remove a registered result. Once a result has been removed then :meth:" "`~TestResult.stop` will no longer be called on that result object in " @@ -4074,7 +4076,7 @@ msgstr "" "meth:`~TestResult.stop` n'est plus appelé sur cet objet résultat en réponse " "à un *contrôle-c*." -#: library/unittest.rst:2472 +#: library/unittest.rst:2473 msgid "" "When called without arguments this function removes the control-c handler if " "it has been installed. This function can also be used as a test decorator to " diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 11ab4333..275e53ee 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-24 09:01+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2018-07-04 11:02+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -213,7 +213,7 @@ msgid "" "attribute to the rank element::" msgstr "" -#: library/xml.etree.elementtree.rst:222 library/xml.etree.elementtree.rst:260 +#: library/xml.etree.elementtree.rst:222 library/xml.etree.elementtree.rst:266 msgid "Our XML now looks like this:" msgstr "" @@ -223,21 +223,29 @@ msgid "" "remove all countries with a rank higher than 50::" msgstr "" -#: library/xml.etree.elementtree.rst:282 +#: library/xml.etree.elementtree.rst:261 +msgid "" +"Note that concurrent modification while iterating can lead to problems, just " +"like when iterating and modifying Python lists or dicts. Therefore, the " +"example first collects all matching elements with ``root.findall()``, and " +"only then iterates over the list of matches." +msgstr "" + +#: library/xml.etree.elementtree.rst:288 msgid "Building XML documents" msgstr "" -#: library/xml.etree.elementtree.rst:284 +#: library/xml.etree.elementtree.rst:290 msgid "" "The :func:`SubElement` function also provides a convenient way to create new " "sub-elements for a given element::" msgstr "" -#: library/xml.etree.elementtree.rst:295 +#: library/xml.etree.elementtree.rst:301 msgid "Parsing XML with Namespaces" msgstr "" -#: library/xml.etree.elementtree.rst:297 +#: library/xml.etree.elementtree.rst:303 msgid "" "If the XML input has `namespaces `__, tags and attributes with prefixes in the form ``prefix:" @@ -247,44 +255,44 @@ msgid "" "prefixed tags." msgstr "" -#: library/xml.etree.elementtree.rst:305 +#: library/xml.etree.elementtree.rst:311 msgid "" "Here is an XML example that incorporates two namespaces, one with the prefix " "\"fictional\" and the other serving as the default namespace:" msgstr "" -#: library/xml.etree.elementtree.rst:326 +#: library/xml.etree.elementtree.rst:332 msgid "" "One way to search and explore this XML example is to manually add the URI to " "every tag or attribute in the xpath of a :meth:`~Element.find` or :meth:" "`~Element.findall`::" msgstr "" -#: library/xml.etree.elementtree.rst:337 +#: library/xml.etree.elementtree.rst:343 msgid "" "A better way to search the namespaced XML example is to create a dictionary " "with your own prefixes and use those in the search functions::" msgstr "" -#: library/xml.etree.elementtree.rst:349 +#: library/xml.etree.elementtree.rst:355 msgid "These two approaches both output::" msgstr "" -#: library/xml.etree.elementtree.rst:361 +#: library/xml.etree.elementtree.rst:367 msgid "Additional resources" msgstr "" -#: library/xml.etree.elementtree.rst:363 +#: library/xml.etree.elementtree.rst:369 msgid "" "See http://effbot.org/zone/element-index.htm for tutorials and links to " "other docs." msgstr "" -#: library/xml.etree.elementtree.rst:370 +#: library/xml.etree.elementtree.rst:376 msgid "XPath support" msgstr "" -#: library/xml.etree.elementtree.rst:372 +#: library/xml.etree.elementtree.rst:378 msgid "" "This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to support a " @@ -292,40 +300,40 @@ msgid "" "scope of the module." msgstr "" -#: library/xml.etree.elementtree.rst:378 library/xml.etree.elementtree.rst:752 +#: library/xml.etree.elementtree.rst:384 library/xml.etree.elementtree.rst:758 msgid "Example" msgstr "Exemple" -#: library/xml.etree.elementtree.rst:380 +#: library/xml.etree.elementtree.rst:386 msgid "" "Here's an example that demonstrates some of the XPath capabilities of the " "module. We'll be using the ``countrydata`` XML document from the :ref:" "`Parsing XML ` section::" msgstr "" -#: library/xml.etree.elementtree.rst:404 +#: library/xml.etree.elementtree.rst:410 msgid "" "For XML with namespaces, use the usual qualified ``{namespace}tag`` " "notation::" msgstr "" -#: library/xml.etree.elementtree.rst:411 +#: library/xml.etree.elementtree.rst:417 msgid "Supported XPath syntax" msgstr "" -#: library/xml.etree.elementtree.rst:416 +#: library/xml.etree.elementtree.rst:422 msgid "Syntax" msgstr "Syntaxe" -#: library/xml.etree.elementtree.rst:416 +#: library/xml.etree.elementtree.rst:422 msgid "Meaning" msgstr "Signification" -#: library/xml.etree.elementtree.rst:418 +#: library/xml.etree.elementtree.rst:424 msgid "``tag``" msgstr "``tag``" -#: library/xml.etree.elementtree.rst:418 +#: library/xml.etree.elementtree.rst:424 msgid "" "Selects all child elements with the given tag. For example, ``spam`` selects " "all child elements named ``spam``, and ``spam/egg`` selects all " @@ -335,103 +343,103 @@ msgid "" "not in a namespace." msgstr "" -#: library/xml.etree.elementtree.rst:427 +#: library/xml.etree.elementtree.rst:433 msgid "Support for star-wildcards was added." msgstr "" -#: library/xml.etree.elementtree.rst:430 +#: library/xml.etree.elementtree.rst:436 msgid "``*``" msgstr "``*``" -#: library/xml.etree.elementtree.rst:430 +#: library/xml.etree.elementtree.rst:436 msgid "" "Selects all child elements, including comments and processing instructions. " "For example, ``*/egg`` selects all grandchildren named ``egg``." msgstr "" -#: library/xml.etree.elementtree.rst:434 +#: library/xml.etree.elementtree.rst:440 msgid "``.``" msgstr "``.``" -#: library/xml.etree.elementtree.rst:434 +#: library/xml.etree.elementtree.rst:440 msgid "" "Selects the current node. This is mostly useful at the beginning of the " "path, to indicate that it's a relative path." msgstr "" -#: library/xml.etree.elementtree.rst:438 +#: library/xml.etree.elementtree.rst:444 msgid "``//``" msgstr "``//``" -#: library/xml.etree.elementtree.rst:438 +#: library/xml.etree.elementtree.rst:444 msgid "" "Selects all subelements, on all levels beneath the current element. For " "example, ``.//egg`` selects all ``egg`` elements in the entire tree." msgstr "" -#: library/xml.etree.elementtree.rst:442 +#: library/xml.etree.elementtree.rst:448 msgid "``..``" msgstr "``..``" -#: library/xml.etree.elementtree.rst:442 +#: library/xml.etree.elementtree.rst:448 msgid "" "Selects the parent element. Returns ``None`` if the path attempts to reach " "the ancestors of the start element (the element ``find`` was called on)." msgstr "" -#: library/xml.etree.elementtree.rst:446 +#: library/xml.etree.elementtree.rst:452 msgid "``[@attrib]``" msgstr "``[@attrib]``" -#: library/xml.etree.elementtree.rst:446 +#: library/xml.etree.elementtree.rst:452 msgid "Selects all elements that have the given attribute." msgstr "" -#: library/xml.etree.elementtree.rst:448 +#: library/xml.etree.elementtree.rst:454 msgid "``[@attrib='value']``" msgstr "``[@attrib='value']``" -#: library/xml.etree.elementtree.rst:448 +#: library/xml.etree.elementtree.rst:454 msgid "" "Selects all elements for which the given attribute has the given value. The " "value cannot contain quotes." msgstr "" -#: library/xml.etree.elementtree.rst:452 +#: library/xml.etree.elementtree.rst:458 msgid "``[tag]``" msgstr "``[tag]``" -#: library/xml.etree.elementtree.rst:452 +#: library/xml.etree.elementtree.rst:458 msgid "" "Selects all elements that have a child named ``tag``. Only immediate " "children are supported." msgstr "" -#: library/xml.etree.elementtree.rst:455 +#: library/xml.etree.elementtree.rst:461 msgid "``[.='text']``" msgstr "``[.='text']``" -#: library/xml.etree.elementtree.rst:455 +#: library/xml.etree.elementtree.rst:461 msgid "" "Selects all elements whose complete text content, including descendants, " "equals the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:460 +#: library/xml.etree.elementtree.rst:466 msgid "``[tag='text']``" msgstr "``[tag='text']``" -#: library/xml.etree.elementtree.rst:460 +#: library/xml.etree.elementtree.rst:466 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, equals the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:464 +#: library/xml.etree.elementtree.rst:470 msgid "``[position]``" msgstr "``[position]``" -#: library/xml.etree.elementtree.rst:464 +#: library/xml.etree.elementtree.rst:470 msgid "" "Selects all elements that are located at the given position. The position " "can be either an integer (1 is the first position), the expression " @@ -439,26 +447,26 @@ msgid "" "position (e.g. ``last()-1``)." msgstr "" -#: library/xml.etree.elementtree.rst:471 +#: library/xml.etree.elementtree.rst:477 msgid "" "Predicates (expressions within square brackets) must be preceded by a tag " "name, an asterisk, or another predicate. ``position`` predicates must be " "preceded by a tag name." msgstr "" -#: library/xml.etree.elementtree.rst:476 library/xml.etree.elementtree.rst:804 +#: library/xml.etree.elementtree.rst:482 library/xml.etree.elementtree.rst:810 msgid "Reference" msgstr "Référence" -#: library/xml.etree.elementtree.rst:481 library/xml.etree.elementtree.rst:809 +#: library/xml.etree.elementtree.rst:487 library/xml.etree.elementtree.rst:815 msgid "Functions" msgstr "Fonctions" -#: library/xml.etree.elementtree.rst:485 +#: library/xml.etree.elementtree.rst:491 msgid "`C14N 2.0 `_ transformation function." msgstr "" -#: library/xml.etree.elementtree.rst:487 +#: library/xml.etree.elementtree.rst:493 msgid "" "Canonicalization is a way to normalise XML output in a way that allows byte-" "by-byte comparisons and digital signatures. It reduced the freedom that XML " @@ -467,7 +475,7 @@ msgid "" "declarations, the ordering of attributes, and ignorable whitespace." msgstr "" -#: library/xml.etree.elementtree.rst:493 +#: library/xml.etree.elementtree.rst:499 msgid "" "This function takes an XML data string (*xml_data*) or a file path or file-" "like object (*from_file*) as input, converts it to the canonical form, and " @@ -476,62 +484,62 @@ msgid "" "should therefore be opened in text mode with ``utf-8`` encoding." msgstr "" -#: library/xml.etree.elementtree.rst:500 +#: library/xml.etree.elementtree.rst:506 #, fuzzy msgid "Typical uses::" msgstr "Usage typique ::" -#: library/xml.etree.elementtree.rst:511 +#: library/xml.etree.elementtree.rst:517 msgid "The configuration *options* are as follows:" msgstr "" -#: library/xml.etree.elementtree.rst:513 +#: library/xml.etree.elementtree.rst:519 msgid "*with_comments*: set to true to include comments (default: false)" msgstr "" -#: library/xml.etree.elementtree.rst:514 +#: library/xml.etree.elementtree.rst:520 msgid "" "*strip_text*: set to true to strip whitespace before and after text content" msgstr "" -#: library/xml.etree.elementtree.rst:515 library/xml.etree.elementtree.rst:517 +#: library/xml.etree.elementtree.rst:521 library/xml.etree.elementtree.rst:523 msgid "(default: false)" msgstr "" -#: library/xml.etree.elementtree.rst:516 +#: library/xml.etree.elementtree.rst:522 msgid "" "*rewrite_prefixes*: set to true to replace namespace prefixes by " "\"n{number}\"" msgstr "" -#: library/xml.etree.elementtree.rst:518 +#: library/xml.etree.elementtree.rst:524 msgid "*qname_aware_tags*: a set of qname aware tag names in which prefixes" msgstr "" -#: library/xml.etree.elementtree.rst:519 library/xml.etree.elementtree.rst:521 +#: library/xml.etree.elementtree.rst:525 library/xml.etree.elementtree.rst:527 msgid "should be replaced in text content (default: empty)" msgstr "" -#: library/xml.etree.elementtree.rst:520 +#: library/xml.etree.elementtree.rst:526 msgid "" "*qname_aware_attrs*: a set of qname aware attribute names in which prefixes" msgstr "" -#: library/xml.etree.elementtree.rst:522 +#: library/xml.etree.elementtree.rst:528 msgid "*exclude_attrs*: a set of attribute names that should not be serialised" msgstr "" -#: library/xml.etree.elementtree.rst:523 +#: library/xml.etree.elementtree.rst:529 msgid "*exclude_tags*: a set of tag names that should not be serialised" msgstr "" -#: library/xml.etree.elementtree.rst:525 +#: library/xml.etree.elementtree.rst:531 msgid "" "In the option list above, \"a set\" refers to any collection or iterable of " "strings, no ordering is expected." msgstr "" -#: library/xml.etree.elementtree.rst:533 +#: library/xml.etree.elementtree.rst:539 msgid "" "Comment element factory. This factory function creates a special element " "that will be serialized as an XML comment by the standard serializer. The " @@ -540,7 +548,7 @@ msgid "" "representing a comment." msgstr "" -#: library/xml.etree.elementtree.rst:539 +#: library/xml.etree.elementtree.rst:545 msgid "" "Note that :class:`XMLParser` skips over comments in the input instead of " "creating comment objects for them. An :class:`ElementTree` will only contain " @@ -548,29 +556,29 @@ msgid "" "class:`Element` methods." msgstr "" -#: library/xml.etree.elementtree.rst:546 +#: library/xml.etree.elementtree.rst:552 msgid "" "Writes an element tree or element structure to sys.stdout. This function " "should be used for debugging only." msgstr "" -#: library/xml.etree.elementtree.rst:549 +#: library/xml.etree.elementtree.rst:555 msgid "" "The exact output format is implementation dependent. In this version, it's " "written as an ordinary XML file." msgstr "" -#: library/xml.etree.elementtree.rst:552 +#: library/xml.etree.elementtree.rst:558 msgid "*elem* is an element tree or an individual element." msgstr "" -#: library/xml.etree.elementtree.rst:554 +#: library/xml.etree.elementtree.rst:560 msgid "" "The :func:`dump` function now preserves the attribute order specified by the " "user." msgstr "" -#: library/xml.etree.elementtree.rst:561 +#: library/xml.etree.elementtree.rst:567 msgid "" "Parses an XML section from a string constant. Same as :func:`XML`. *text* " "is a string containing XML data. *parser* is an optional parser instance. " @@ -578,7 +586,7 @@ msgid "" "class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:569 +#: library/xml.etree.elementtree.rst:575 msgid "" "Parses an XML document from a sequence of string fragments. *sequence* is a " "list or other sequence containing XML data fragments. *parser* is an " @@ -586,7 +594,7 @@ msgid "" "parser is used. Returns an :class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:579 +#: library/xml.etree.elementtree.rst:585 msgid "" "Appends whitespace to the subtree to indent the tree visually. This can be " "used to generate pretty-printed XML output. *tree* can be an Element or " @@ -596,13 +604,13 @@ msgid "" "indentation level as *level*." msgstr "" -#: library/xml.etree.elementtree.rst:591 +#: library/xml.etree.elementtree.rst:597 msgid "" "Check if an object appears to be a valid element object. *element* is an " "element instance. Return ``True`` if this is an element object." msgstr "" -#: library/xml.etree.elementtree.rst:597 +#: library/xml.etree.elementtree.rst:603 msgid "" "Parses an XML section into an element tree incrementally, and reports what's " "going on to the user. *source* is a filename or :term:`file object` " @@ -617,7 +625,7 @@ msgid "" "elem)`` pairs." msgstr "" -#: library/xml.etree.elementtree.rst:609 +#: library/xml.etree.elementtree.rst:615 msgid "" "Note that while :func:`iterparse` builds the tree incrementally, it issues " "blocking reads on *source* (or the file it names). As such, it's unsuitable " @@ -625,7 +633,7 @@ msgid "" "parsing, see :class:`XMLPullParser`." msgstr "" -#: library/xml.etree.elementtree.rst:616 +#: library/xml.etree.elementtree.rst:622 msgid "" ":func:`iterparse` only guarantees that it has seen the \">\" character of a " "starting tag when it emits a \"start\" event, so the attributes are defined, " @@ -634,19 +642,19 @@ msgid "" "present." msgstr "" -#: library/xml.etree.elementtree.rst:622 library/xml.etree.elementtree.rst:1450 +#: library/xml.etree.elementtree.rst:628 library/xml.etree.elementtree.rst:1456 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" -#: library/xml.etree.elementtree.rst:624 +#: library/xml.etree.elementtree.rst:630 msgid "The *parser* argument." msgstr "" -#: library/xml.etree.elementtree.rst:627 library/xml.etree.elementtree.rst:1454 +#: library/xml.etree.elementtree.rst:633 library/xml.etree.elementtree.rst:1460 msgid "The ``comment`` and ``pi`` events were added." msgstr "" -#: library/xml.etree.elementtree.rst:633 +#: library/xml.etree.elementtree.rst:639 msgid "" "Parses an XML section into an element tree. *source* is a filename or file " "object containing XML data. *parser* is an optional parser instance. If " @@ -654,7 +662,7 @@ msgid "" "class:`ElementTree` instance." msgstr "" -#: library/xml.etree.elementtree.rst:641 +#: library/xml.etree.elementtree.rst:647 msgid "" "PI element factory. This factory function creates a special element that " "will be serialized as an XML processing instruction. *target* is a string " @@ -662,7 +670,7 @@ msgid "" "given. Returns an element instance, representing a processing instruction." msgstr "" -#: library/xml.etree.elementtree.rst:646 +#: library/xml.etree.elementtree.rst:652 msgid "" "Note that :class:`XMLParser` skips over processing instructions in the input " "instead of creating comment objects for them. An :class:`ElementTree` will " @@ -670,7 +678,7 @@ msgid "" "the tree using one of the :class:`Element` methods." msgstr "" -#: library/xml.etree.elementtree.rst:654 +#: library/xml.etree.elementtree.rst:660 msgid "" "Registers a namespace prefix. The registry is global, and any existing " "mapping for either the given prefix or the namespace URI will be removed. " @@ -679,13 +687,13 @@ msgid "" "all possible." msgstr "" -#: library/xml.etree.elementtree.rst:665 +#: library/xml.etree.elementtree.rst:671 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" -#: library/xml.etree.elementtree.rst:668 +#: library/xml.etree.elementtree.rst:674 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *parent* is the parent element. *tag* is " @@ -694,7 +702,7 @@ msgid "" "arguments. Returns an element instance." msgstr "" -#: library/xml.etree.elementtree.rst:679 +#: library/xml.etree.elementtree.rst:685 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -706,22 +714,22 @@ msgid "" "encoded string containing the XML data." msgstr "" -#: library/xml.etree.elementtree.rst:688 library/xml.etree.elementtree.rst:715 -#: library/xml.etree.elementtree.rst:1162 +#: library/xml.etree.elementtree.rst:694 library/xml.etree.elementtree.rst:721 +#: library/xml.etree.elementtree.rst:1168 msgid "The *short_empty_elements* parameter." msgstr "Le paramètre *short_empty_elements*." -#: library/xml.etree.elementtree.rst:691 library/xml.etree.elementtree.rst:718 +#: library/xml.etree.elementtree.rst:697 library/xml.etree.elementtree.rst:724 msgid "The *xml_declaration* and *default_namespace* parameters." msgstr "" -#: library/xml.etree.elementtree.rst:694 +#: library/xml.etree.elementtree.rst:700 msgid "" "The :func:`tostring` function now preserves the attribute order specified by " "the user." msgstr "" -#: library/xml.etree.elementtree.rst:703 +#: library/xml.etree.elementtree.rst:709 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -735,13 +743,13 @@ msgid "" "tostring(element)``." msgstr "" -#: library/xml.etree.elementtree.rst:721 +#: library/xml.etree.elementtree.rst:727 msgid "" "The :func:`tostringlist` function now preserves the attribute order " "specified by the user." msgstr "" -#: library/xml.etree.elementtree.rst:728 +#: library/xml.etree.elementtree.rst:734 msgid "" "Parses an XML section from a string constant. This function can be used to " "embed \"XML literals\" in Python code. *text* is a string containing XML " @@ -749,7 +757,7 @@ msgid "" "class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:736 +#: library/xml.etree.elementtree.rst:742 msgid "" "Parses an XML section from a string constant, and also returns a dictionary " "which maps from element id:s to elements. *text* is a string containing XML " @@ -758,11 +766,11 @@ msgid "" "`Element` instance and a dictionary." msgstr "" -#: library/xml.etree.elementtree.rst:746 +#: library/xml.etree.elementtree.rst:752 msgid "XInclude support" msgstr "" -#: library/xml.etree.elementtree.rst:748 +#: library/xml.etree.elementtree.rst:754 msgid "" "This module provides limited support for `XInclude directives `_, via the :mod:`xml.etree.ElementInclude` helper " @@ -770,7 +778,7 @@ msgid "" "element trees, based on information in the tree." msgstr "" -#: library/xml.etree.elementtree.rst:754 +#: library/xml.etree.elementtree.rst:760 msgid "" "Here's an example that demonstrates use of the XInclude module. To include " "an XML document in the current document, use the ``{http://www.w3.org/2001/" @@ -778,43 +786,43 @@ msgid "" "and use the **href** attribute to specify the document to include." msgstr "" -#: library/xml.etree.elementtree.rst:763 +#: library/xml.etree.elementtree.rst:769 msgid "" "By default, the **href** attribute is treated as a file name. You can use " "custom loaders to override this behaviour. Also note that the standard " "helper does not support XPointer syntax." msgstr "" -#: library/xml.etree.elementtree.rst:765 +#: library/xml.etree.elementtree.rst:771 msgid "" "To process this file, load it as usual, and pass the root element to the :" "mod:`xml.etree.ElementTree` module:" msgstr "" -#: library/xml.etree.elementtree.rst:776 +#: library/xml.etree.elementtree.rst:782 msgid "" "The ElementInclude module replaces the ``{http://www.w3.org/2001/XInclude}" "include`` element with the root element from the **source.xml** document. " "The result might look something like this:" msgstr "" -#: library/xml.etree.elementtree.rst:784 +#: library/xml.etree.elementtree.rst:790 msgid "" "If the **parse** attribute is omitted, it defaults to \"xml\". The href " "attribute is required." msgstr "" -#: library/xml.etree.elementtree.rst:786 +#: library/xml.etree.elementtree.rst:792 msgid "" "To include a text document, use the ``{http://www.w3.org/2001/XInclude}" "include`` element, and set the **parse** attribute to \"text\":" msgstr "" -#: library/xml.etree.elementtree.rst:795 +#: library/xml.etree.elementtree.rst:801 msgid "The result might look something like:" msgstr "" -#: library/xml.etree.elementtree.rst:813 +#: library/xml.etree.elementtree.rst:819 msgid "" "Default loader. This default loader reads an included resource from disk. " "*href* is a URL. *parse* is for parse mode either \"xml\" or \"text\". " @@ -825,7 +833,7 @@ msgid "" "exception." msgstr "" -#: library/xml.etree.elementtree.rst:824 +#: library/xml.etree.elementtree.rst:830 msgid "" "This function expands XInclude directives. *elem* is the root element. " "*loader* is an optional resource loader. If omitted, it defaults to :func:" @@ -836,29 +844,29 @@ msgid "" "malicious content explosion. Pass a negative value to disable the limitation." msgstr "" -#: library/xml.etree.elementtree.rst:832 +#: library/xml.etree.elementtree.rst:838 msgid "" "Returns the expanded resource. If the parse mode is ``\"xml\"``, this is an " "ElementTree instance. If the parse mode is \"text\", this is a Unicode " "string. If the loader fails, it can return None or raise an exception." msgstr "" -#: library/xml.etree.elementtree.rst:837 +#: library/xml.etree.elementtree.rst:843 #, fuzzy msgid "The *base_url* and *max_depth* parameters." msgstr "Le paramètre *short_empty_elements*." -#: library/xml.etree.elementtree.rst:844 +#: library/xml.etree.elementtree.rst:850 msgid "Element Objects" msgstr "Objets Elements" -#: library/xml.etree.elementtree.rst:848 +#: library/xml.etree.elementtree.rst:854 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" -#: library/xml.etree.elementtree.rst:851 +#: library/xml.etree.elementtree.rst:857 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " @@ -866,13 +874,13 @@ msgid "" "additional attributes, given as keyword arguments." msgstr "" -#: library/xml.etree.elementtree.rst:859 +#: library/xml.etree.elementtree.rst:865 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" -#: library/xml.etree.elementtree.rst:866 +#: library/xml.etree.elementtree.rst:872 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -883,7 +891,7 @@ msgid "" "the XML data" msgstr "" -#: library/xml.etree.elementtree.rst:878 +#: library/xml.etree.elementtree.rst:884 msgid "" "the *a* element has ``None`` for both *text* and *tail* attributes, the *b* " "element has *text* ``\"1\"`` and *tail* ``\"4\"``, the *c* element has " @@ -891,17 +899,17 @@ msgid "" "``None`` and *tail* ``\"3\"``." msgstr "" -#: library/xml.etree.elementtree.rst:883 +#: library/xml.etree.elementtree.rst:889 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example ``" "\"\".join(element.itertext())``." msgstr "" -#: library/xml.etree.elementtree.rst:886 +#: library/xml.etree.elementtree.rst:892 msgid "Applications may store arbitrary objects in these attributes." msgstr "" -#: library/xml.etree.elementtree.rst:891 +#: library/xml.etree.elementtree.rst:897 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -910,59 +918,59 @@ msgid "" "implementations, use the dictionary methods below whenever possible." msgstr "" -#: library/xml.etree.elementtree.rst:897 +#: library/xml.etree.elementtree.rst:903 msgid "The following dictionary-like methods work on the element attributes." msgstr "" -#: library/xml.etree.elementtree.rst:902 +#: library/xml.etree.elementtree.rst:908 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." msgstr "" -#: library/xml.etree.elementtree.rst:908 +#: library/xml.etree.elementtree.rst:914 msgid "Gets the element attribute named *key*." msgstr "" -#: library/xml.etree.elementtree.rst:910 +#: library/xml.etree.elementtree.rst:916 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" -#: library/xml.etree.elementtree.rst:915 +#: library/xml.etree.elementtree.rst:921 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." msgstr "" -#: library/xml.etree.elementtree.rst:921 +#: library/xml.etree.elementtree.rst:927 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." msgstr "" -#: library/xml.etree.elementtree.rst:927 +#: library/xml.etree.elementtree.rst:933 msgid "Set the attribute *key* on the element to *value*." msgstr "" -#: library/xml.etree.elementtree.rst:929 +#: library/xml.etree.elementtree.rst:935 msgid "The following methods work on the element's children (subelements)." msgstr "" -#: library/xml.etree.elementtree.rst:934 +#: library/xml.etree.elementtree.rst:940 msgid "" "Adds the element *subelement* to the end of this element's internal list of " "subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" "`Element`." msgstr "" -#: library/xml.etree.elementtree.rst:941 +#: library/xml.etree.elementtree.rst:947 msgid "" "Appends *subelements* from a sequence object with zero or more elements. " "Raises :exc:`TypeError` if a subelement is not an :class:`Element`." msgstr "" -#: library/xml.etree.elementtree.rst:949 +#: library/xml.etree.elementtree.rst:955 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -971,7 +979,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:958 +#: library/xml.etree.elementtree.rst:964 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -980,7 +988,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:967 +#: library/xml.etree.elementtree.rst:973 msgid "" "Finds text for the first subelement matching *match*. *match* may be a tag " "name or a :ref:`path `. Returns the text content of the " @@ -991,13 +999,13 @@ msgid "" "into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:978 +#: library/xml.etree.elementtree.rst:984 msgid "" "Inserts *subelement* at the given position in this element. Raises :exc:" "`TypeError` if *subelement* is not an :class:`Element`." msgstr "" -#: library/xml.etree.elementtree.rst:984 +#: library/xml.etree.elementtree.rst:990 msgid "" "Creates a tree :term:`iterator` with the current element as the root. The " "iterator iterates over this element and all elements below it, in document " @@ -1006,7 +1014,7 @@ msgid "" "structure is modified during iteration, the result is undefined." msgstr "" -#: library/xml.etree.elementtree.rst:995 +#: library/xml.etree.elementtree.rst:1001 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -1014,40 +1022,40 @@ msgid "" "name." msgstr "" -#: library/xml.etree.elementtree.rst:1006 +#: library/xml.etree.elementtree.rst:1012 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." msgstr "" -#: library/xml.etree.elementtree.rst:1014 +#: library/xml.etree.elementtree.rst:1020 msgid "" "Creates a new element object of the same type as this element. Do not call " "this method, use the :func:`SubElement` factory function instead." msgstr "" -#: library/xml.etree.elementtree.rst:1020 +#: library/xml.etree.elementtree.rst:1026 msgid "" "Removes *subelement* from the element. Unlike the find\\* methods this " "method compares elements based on the instance identity, not on tag value or " "contents." msgstr "" -#: library/xml.etree.elementtree.rst:1024 +#: library/xml.etree.elementtree.rst:1030 msgid "" ":class:`Element` objects also support the following sequence type methods " "for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." "__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." msgstr "" -#: library/xml.etree.elementtree.rst:1029 +#: library/xml.etree.elementtree.rst:1035 msgid "" "Caution: Elements with no subelements will test as ``False``. This behavior " "will change in future versions. Use specific ``len(elem)`` or ``elem is " "None`` test instead. ::" msgstr "" -#: library/xml.etree.elementtree.rst:1041 +#: library/xml.etree.elementtree.rst:1047 msgid "" "Prior to Python 3.8, the serialisation order of the XML attributes of " "elements was artificially made predictable by sorting the attributes by " @@ -1056,7 +1064,7 @@ msgid "" "attributes were originally parsed or created by user code." msgstr "" -#: library/xml.etree.elementtree.rst:1047 +#: library/xml.etree.elementtree.rst:1053 msgid "" "In general, user code should try not to depend on a specific ordering of " "attributes, given that the `XML Information Set `_ writer. Arguments are the " "same as for the :func:`canonicalize` function. This class does not build a " @@ -1291,11 +1299,11 @@ msgid "" "using the *write* function." msgstr "" -#: library/xml.etree.elementtree.rst:1325 +#: library/xml.etree.elementtree.rst:1331 msgid "XMLParser Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1330 +#: library/xml.etree.elementtree.rst:1336 msgid "" "This class is the low-level building block of the module. It uses :mod:`xml." "parsers.expat` for efficient, event-based parsing of XML. It can be fed XML " @@ -1306,24 +1314,24 @@ msgid "" "XML file." msgstr "" -#: library/xml.etree.elementtree.rst:1338 +#: library/xml.etree.elementtree.rst:1344 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument no longer supported." msgstr "" -#: library/xml.etree.elementtree.rst:1345 +#: library/xml.etree.elementtree.rst:1351 msgid "" "Finishes feeding data to the parser. Returns the result of calling the " "``close()`` method of the *target* passed during construction; by default, " "this is the toplevel document element." msgstr "" -#: library/xml.etree.elementtree.rst:1352 +#: library/xml.etree.elementtree.rst:1358 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" -#: library/xml.etree.elementtree.rst:1354 +#: library/xml.etree.elementtree.rst:1360 msgid "" ":meth:`XMLParser.feed` calls *target*\\'s ``start(tag, attrs_dict)`` method " "for each opening tag, its ``end(tag)`` method for each closing tag, and data " @@ -1334,11 +1342,11 @@ msgid "" "of an XML file::" msgstr "" -#: library/xml.etree.elementtree.rst:1398 +#: library/xml.etree.elementtree.rst:1404 msgid "XMLPullParser Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1402 +#: library/xml.etree.elementtree.rst:1408 msgid "" "A pull parser suitable for non-blocking applications. Its input-side API is " "similar to that of :class:`XMLParser`, but instead of pushing calls to a " @@ -1350,11 +1358,11 @@ msgid "" "is omitted, only ``\"end\"`` events are reported." msgstr "" -#: library/xml.etree.elementtree.rst:1413 +#: library/xml.etree.elementtree.rst:1419 msgid "Feed the given bytes data to the parser." msgstr "" -#: library/xml.etree.elementtree.rst:1417 +#: library/xml.etree.elementtree.rst:1423 msgid "" "Signal the parser that the data stream is terminated. Unlike :meth:" "`XMLParser.close`, this method always returns :const:`None`. Any events not " @@ -1362,7 +1370,7 @@ msgid "" "`read_events`." msgstr "" -#: library/xml.etree.elementtree.rst:1424 +#: library/xml.etree.elementtree.rst:1430 msgid "" "Return an iterator over the events which have been encountered in the data " "fed to the parser. The iterator yields ``(event, elem)`` pairs, where " @@ -1371,25 +1379,25 @@ msgid "" "follows." msgstr "" -#: library/xml.etree.elementtree.rst:1430 +#: library/xml.etree.elementtree.rst:1436 msgid "``start``, ``end``: the current Element." msgstr "" -#: library/xml.etree.elementtree.rst:1431 +#: library/xml.etree.elementtree.rst:1437 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" -#: library/xml.etree.elementtree.rst:1432 +#: library/xml.etree.elementtree.rst:1438 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." msgstr "" -#: library/xml.etree.elementtree.rst:1434 +#: library/xml.etree.elementtree.rst:1440 msgid "``end-ns``: :const:`None` (this may change in a future version)" msgstr "" -#: library/xml.etree.elementtree.rst:1436 +#: library/xml.etree.elementtree.rst:1442 msgid "" "Events provided in a previous call to :meth:`read_events` will not be " "yielded again. Events are consumed from the internal queue only when they " @@ -1398,7 +1406,7 @@ msgid "" "results." msgstr "" -#: library/xml.etree.elementtree.rst:1444 +#: library/xml.etree.elementtree.rst:1450 msgid "" ":class:`XMLPullParser` only guarantees that it has seen the \">\" character " "of a starting tag when it emits a \"start\" event, so the attributes are " @@ -1407,11 +1415,11 @@ msgid "" "be present." msgstr "" -#: library/xml.etree.elementtree.rst:1459 +#: library/xml.etree.elementtree.rst:1465 msgid "Exceptions" msgstr "Exceptions" -#: library/xml.etree.elementtree.rst:1463 +#: library/xml.etree.elementtree.rst:1469 msgid "" "XML parse error, raised by the various parsing methods in this module when " "parsing fails. The string representation of an instance of this exception " @@ -1419,22 +1427,22 @@ msgid "" "following attributes available:" msgstr "" -#: library/xml.etree.elementtree.rst:1470 +#: library/xml.etree.elementtree.rst:1476 msgid "" "A numeric error code from the expat parser. See the documentation of :mod:" "`xml.parsers.expat` for the list of error codes and their meanings." msgstr "" -#: library/xml.etree.elementtree.rst:1475 +#: library/xml.etree.elementtree.rst:1481 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" -#: library/xml.etree.elementtree.rst:1478 +#: library/xml.etree.elementtree.rst:1484 msgid "Footnotes" msgstr "Notes" -#: library/xml.etree.elementtree.rst:1479 +#: library/xml.etree.elementtree.rst:1485 msgid "" "The encoding string included in XML output should conform to the appropriate " "standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See " diff --git a/reference/datamodel.po b/reference/datamodel.po index b3aedda2..f8b0c582 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-06-01 16:54+0900\n" "Last-Translator: Samuel Giffard \n" "Language-Team: FRENCH \n" @@ -4113,11 +4113,13 @@ msgstr "" "`__rpow__` (les règles de coercition seraient trop compliquées)." #: reference/datamodel.rst:2379 +#, fuzzy msgid "" "If the right operand's type is a subclass of the left operand's type and " -"that subclass provides the reflected method for the operation, this method " -"will be called before the left operand's non-reflected method. This " -"behavior allows subclasses to override their ancestors' operations." +"that subclass provides a different implementation of the reflected method " +"for the operation, this method will be called before the left operand's non-" +"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 " "de gauche et que cette sous-classe fournit la méthode symétrique pour " @@ -4125,7 +4127,7 @@ msgstr "" "l'opérande gauche. Ce comportement permet à des sous-classes de surcharger " "les opérations de leurs ancêtres." -#: reference/datamodel.rst:2399 +#: reference/datamodel.rst:2400 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -4154,14 +4156,14 @@ msgstr "" "erreurs inattendues (voir :ref:`faq-augmented-assignment-tuple-error`), mais " "ce comportement est en fait partie intégrante du modèle de données." -#: reference/datamodel.rst:2414 +#: reference/datamodel.rst:2415 msgid "" "Due to a bug in the dispatching mechanism for ``**=``, a class that defines :" "meth:`__ipow__` but returns ``NotImplemented`` would fail to fall back to " "``x.__pow__(y)`` and ``y.__rpow__(x)``. This bug is fixed in Python 3.10." msgstr "" -#: reference/datamodel.rst:2427 +#: reference/datamodel.rst:2428 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." @@ -4169,7 +4171,7 @@ msgstr "" "Appelée pour implémenter les opérations arithmétiques unaires (``-``, ``" "+``, :func:`abs` et ``~``)." -#: reference/datamodel.rst:2440 +#: reference/datamodel.rst:2441 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." @@ -4177,7 +4179,7 @@ msgstr "" "Appelées pour implémenter les fonctions natives :func:`complex`, :func:`int` " "et :func:`float`. Elles doivent renvoyer une valeur du type approprié." -#: reference/datamodel.rst:2447 +#: reference/datamodel.rst:2448 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -4191,7 +4193,7 @@ msgstr "" "`oct`). La présence de cette méthode indique que l'objet numérique est un " "type entier. Elle doit renvoyer un entier." -#: reference/datamodel.rst:2453 +#: reference/datamodel.rst:2454 msgid "" "If :meth:`__int__`, :meth:`__float__` and :meth:`__complex__` are not " "defined then corresponding built-in functions :func:`int`, :func:`float` " @@ -4201,7 +4203,7 @@ msgstr "" "définies, alors les fonctions natives :func:`int`, :func:`float` et :func:" "`complex` redirigent par défaut vers :meth:`__index__`." -#: reference/datamodel.rst:2465 +#: reference/datamodel.rst:2466 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -4215,7 +4217,7 @@ msgstr "" "toutes ces méthodes doivent renvoyer la valeur de l'objet tronquée pour " "donner un :class:`~numbers.Integral` (typiquement un :class:`int`)." -#: reference/datamodel.rst:2471 +#: reference/datamodel.rst:2472 msgid "" "If :meth:`__int__` is not defined then the built-in function :func:`int` " "falls back to :meth:`__trunc__`." @@ -4223,11 +4225,11 @@ msgstr "" "Si :meth:`__int__` n'est pas définie, alors la fonction native :func:`int` " "se replie sur :meth:`__trunc__`." -#: reference/datamodel.rst:2478 +#: reference/datamodel.rst:2479 msgid "With Statement Context Managers" msgstr "Gestionnaire de contexte With" -#: reference/datamodel.rst:2480 +#: reference/datamodel.rst:2481 msgid "" "A :dfn:`context manager` is an object that defines the runtime context to be " "established when executing a :keyword:`with` statement. The context manager " @@ -4244,7 +4246,7 @@ msgstr "" "dans la section :ref:`with`), mais ils peuvent aussi être directement " "invoqués par leurs méthodes." -#: reference/datamodel.rst:2491 +#: reference/datamodel.rst:2492 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." @@ -4253,14 +4255,14 @@ msgstr "" "et la restauration d'états divers, le verrouillage et le déverrouillage de " "ressources, la fermeture de fichiers ouverts, etc." -#: reference/datamodel.rst:2494 +#: reference/datamodel.rst:2495 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" "Pour plus d'informations sur les gestionnaires de contexte, lisez :ref:" "`typecontextmanager`." -#: reference/datamodel.rst:2499 +#: reference/datamodel.rst:2500 msgid "" "Enter the runtime context related to this object. The :keyword:`with` " "statement will bind this method's return value to the target(s) specified in " @@ -4271,7 +4273,7 @@ msgstr "" "cible spécifiée par la clause :keyword:`!as` de l'instruction, si elle est " "spécifiée." -#: reference/datamodel.rst:2506 +#: reference/datamodel.rst:2507 msgid "" "Exit the runtime context related to this object. The parameters describe the " "exception that caused the context to be exited. If the context was exited " @@ -4281,7 +4283,7 @@ msgstr "" "l'exception qui a causé la sortie du contexte. Si l'on sort du contexte sans " "exception, les trois arguments sont à :const:`None`." -#: reference/datamodel.rst:2510 +#: reference/datamodel.rst:2511 msgid "" "If an exception is supplied, and the method wishes to suppress the exception " "(i.e., prevent it from being propagated), it should return a true value. " @@ -4293,7 +4295,7 @@ msgstr "" "propagée), elle doit renvoyer ``True``. Sinon, l'exception est traitée " "normalement à la sortie de cette méthode." -#: reference/datamodel.rst:2514 +#: reference/datamodel.rst:2515 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." @@ -4301,11 +4303,11 @@ msgstr "" "Notez qu'une méthode :meth:`__exit__` ne doit pas lever à nouveau " "l'exception qu'elle reçoit ; c'est du ressort de l'appelant." -#: reference/datamodel.rst:2521 +#: reference/datamodel.rst:2522 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` — L'instruction ``with``" -#: reference/datamodel.rst:2521 +#: reference/datamodel.rst:2522 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -4313,11 +4315,11 @@ msgstr "" "La spécification, les motivations et des exemples de l'instruction :keyword:" "`with` en Python." -#: reference/datamodel.rst:2528 +#: reference/datamodel.rst:2529 msgid "Special method lookup" msgstr "Recherche des méthodes spéciales" -#: reference/datamodel.rst:2530 +#: reference/datamodel.rst:2531 msgid "" "For custom classes, implicit invocations of special methods are only " "guaranteed to work correctly if defined on an object's type, not in the " @@ -4329,7 +4331,7 @@ msgstr "" "type d'objet, pas dans le dictionnaire de l'objet instance. Ce comportement " "explique pourquoi le code suivant lève une exception ::" -#: reference/datamodel.rst:2545 +#: reference/datamodel.rst:2546 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`__hash__` and :meth:`__repr__` that are implemented by all " @@ -4343,7 +4345,7 @@ msgstr "" "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:2558 +#: reference/datamodel.rst:2559 msgid "" "Incorrectly attempting to invoke an unbound method of a class in this way is " "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " @@ -4353,7 +4355,7 @@ msgstr "" "parfois appelé « confusion de méta-classe » et se contourne en shuntant " "l'instance lors de la recherche des méthodes spéciales ::" -#: reference/datamodel.rst:2567 +#: reference/datamodel.rst:2568 msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" @@ -4363,7 +4365,7 @@ msgstr "" "correctement, la recherche des méthodes spéciales implicites shunte aussi la " "méthode :meth:`__getattribute__` même dans la méta-classe de l'objet ::" -#: reference/datamodel.rst:2593 +#: reference/datamodel.rst:2594 msgid "" "Bypassing the :meth:`__getattribute__` machinery in this fashion provides " "significant scope for speed optimisations within the interpreter, at the " @@ -4377,15 +4379,15 @@ msgstr "" "être définie sur l'objet classe lui-même afin d'être invoquée de manière " "cohérente par l'interpréteur)." -#: reference/datamodel.rst:2604 +#: reference/datamodel.rst:2605 msgid "Coroutines" msgstr "Coroutines" -#: reference/datamodel.rst:2608 +#: reference/datamodel.rst:2609 msgid "Awaitable Objects" msgstr "Objets *attendables* (*awaitable*)" -#: reference/datamodel.rst:2610 +#: reference/datamodel.rst:2611 #, fuzzy msgid "" "An :term:`awaitable` object generally implements an :meth:`__await__` " @@ -4396,7 +4398,7 @@ msgstr "" "`__await__`. Les objets :term:`Coroutine` renvoyés par les fonctions :" "keyword:`async def` sont des *attendables* (*awaitable*)." -#: reference/datamodel.rst:2616 +#: reference/datamodel.rst:2617 msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " @@ -4407,7 +4409,7 @@ msgstr "" "des *attendables* (*awaitable*), mais ils n'implémentent pas :meth:" "`__await__`." -#: reference/datamodel.rst:2622 +#: reference/datamodel.rst:2623 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " @@ -4417,17 +4419,17 @@ msgstr "" "objets :term:`awaitable`. Par exemple, :class:`asyncio.Future` implémente " "cette méthode pour être compatible avec les expressions :keyword:`await`." -#: reference/datamodel.rst:2628 +#: reference/datamodel.rst:2629 msgid ":pep:`492` for additional information about awaitable objects." msgstr "" ":pep:`492` pour les informations relatives aux objets *attendables* " "(*awaitable*)." -#: reference/datamodel.rst:2634 +#: reference/datamodel.rst:2635 msgid "Coroutine Objects" msgstr "Objets coroutines" -#: reference/datamodel.rst:2636 +#: reference/datamodel.rst:2637 #, fuzzy msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " @@ -4446,7 +4448,7 @@ msgstr "" "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:2644 +#: reference/datamodel.rst:2645 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " @@ -4457,13 +4459,13 @@ msgstr "" "contraire des générateurs, vous ne pouvez pas itérer directement sur des " "coroutines." -#: reference/datamodel.rst:2648 +#: reference/datamodel.rst:2649 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:" "`RuntimeError`." -#: reference/datamodel.rst:2654 +#: reference/datamodel.rst:2655 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`__await__`. If " @@ -4480,7 +4482,7 @@ msgstr "" "est le même que lorsque vous itérez sur la valeur de retour de :meth:" "`__await__`, décrite ci-dessus." -#: reference/datamodel.rst:2664 +#: reference/datamodel.rst:2665 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -4498,7 +4500,7 @@ msgstr "" "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." -#: reference/datamodel.rst:2675 +#: reference/datamodel.rst:2676 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -4515,7 +4517,7 @@ msgstr "" "la coroutine est marquée comme ayant terminé son exécution, même si elle n'a " "jamais démarré." -#: reference/datamodel.rst:2683 +#: reference/datamodel.rst:2684 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." @@ -4523,11 +4525,11 @@ msgstr "" "Les objets coroutines sont automatiquement fermés en utilisant le processus " "décrit au-dessus au moment où ils sont détruits." -#: reference/datamodel.rst:2689 +#: reference/datamodel.rst:2690 msgid "Asynchronous Iterators" msgstr "Itérateurs asynchrones" -#: reference/datamodel.rst:2691 +#: reference/datamodel.rst:2692 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." @@ -4535,18 +4537,18 @@ msgstr "" "Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " "``__anext__``." -#: reference/datamodel.rst:2694 +#: reference/datamodel.rst:2695 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" "Les itérateurs asynchrones peuvent être utilisés dans des instructions :" "keyword:`async for`." -#: reference/datamodel.rst:2698 +#: reference/datamodel.rst:2699 msgid "Must return an *asynchronous iterator* object." msgstr "Doit renvoyer un objet *itérateur asynchrone*." -#: reference/datamodel.rst:2702 +#: reference/datamodel.rst:2703 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." @@ -4555,11 +4557,11 @@ msgstr "" "suivante de l'itérateur. Doit lever une :exc:`StopAsyncIteration` quand " "l'itération est terminée." -#: reference/datamodel.rst:2705 +#: reference/datamodel.rst:2706 msgid "An example of an asynchronous iterable object::" msgstr "Un exemple d'objet itérateur asynchrone ::" -#: reference/datamodel.rst:2722 +#: reference/datamodel.rst:2723 msgid "" "Prior to Python 3.7, ``__aiter__`` could return an *awaitable* that would " "resolve to an :term:`asynchronous iterator `." @@ -4568,7 +4570,7 @@ msgstr "" "(*awaitable*) qui se résolvait potentiellement en un :term:`itérateur " "asynchrone `." -#: reference/datamodel.rst:2727 +#: reference/datamodel.rst:2728 msgid "" "Starting with Python 3.7, ``__aiter__`` must return an asynchronous iterator " "object. Returning anything else will result in a :exc:`TypeError` error." @@ -4576,11 +4578,11 @@ msgstr "" "À partir de Python 3.7, ``__aiter__`` doit renvoyer un objet itérateur " "asynchrone. Renvoyer autre chose entraine une erreur :exc:`TypeError`." -#: reference/datamodel.rst:2735 +#: reference/datamodel.rst:2736 msgid "Asynchronous Context Managers" msgstr "Gestionnaires de contexte asynchrones" -#: reference/datamodel.rst:2737 +#: reference/datamodel.rst:2738 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." @@ -4589,7 +4591,7 @@ msgstr "" "qui est capable de suspendre son exécution dans ses méthodes ``__aenter__`` " "et ``__aexit__``." -#: reference/datamodel.rst:2740 +#: reference/datamodel.rst:2741 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." @@ -4597,7 +4599,7 @@ msgstr "" "Les gestionnaires de contexte asynchrones peuvent être utilisés dans des " "instructions :keyword:`async with`." -#: reference/datamodel.rst:2744 +#: reference/datamodel.rst:2745 msgid "" "Semantically similar to :meth:`__enter__`, the only difference being that it " "must return an *awaitable*." @@ -4605,7 +4607,7 @@ msgstr "" "Sémantiquement équivalente à :meth:`__enter__`, à la seule différence près " "qu'elle doit renvoyer un *attendable* (*awaitable*)." -#: reference/datamodel.rst:2749 +#: reference/datamodel.rst:2750 msgid "" "Semantically similar to :meth:`__exit__`, the only difference being that it " "must return an *awaitable*." @@ -4613,15 +4615,15 @@ msgstr "" "Sémantiquement équivalente à :meth:`__exit__`, à la seule différence près " "qu'elle doit renvoyer un *attendable* (*awaitable*)." -#: reference/datamodel.rst:2752 +#: reference/datamodel.rst:2753 msgid "An example of an asynchronous context manager class::" msgstr "Un exemple de classe de gestionnaire de contexte asynchrone ::" -#: reference/datamodel.rst:2765 +#: reference/datamodel.rst:2766 msgid "Footnotes" msgstr "Notes de bas de page" -#: reference/datamodel.rst:2766 +#: reference/datamodel.rst:2767 msgid "" "It *is* possible in some cases to change an object's type, under certain " "controlled conditions. It generally isn't a good idea though, since it can " @@ -4632,7 +4634,7 @@ msgstr "" "car cela peut conduire à un comportement très étrange si ce n'est pas géré " "correctement." -#: reference/datamodel.rst:2770 +#: reference/datamodel.rst:2771 msgid "" "The :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__`, and :meth:" "`__contains__` methods have special handling for this; others will still " @@ -4644,7 +4646,7 @@ msgstr "" "lèvent toujours :exc:`TypeError`, mais le font en considérant que ``None`` " "n'est pas un appelable." -#: reference/datamodel.rst:2775 +#: reference/datamodel.rst:2776 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns ``NotImplemented``. Do not set the method to ``None`` if you " @@ -4656,11 +4658,12 @@ msgstr "" "``None`` à la méthode si vous voulez un repli vers la méthode symétrique de " "l'opérande de droite — cela aurait pour effet de *bloquer* un tel repli." -#: reference/datamodel.rst:2781 +#: reference/datamodel.rst:2782 +#, fuzzy msgid "" "For operands of the same type, it is assumed that if the non-reflected " -"method (such as :meth:`__add__`) fails the operation is not supported, which " -"is why the reflected method is not called." +"method -- such as :meth:`__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, l'opération n'est pas autorisée et donc " diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 1832de39..91c1e9d6 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-01 16:00+0200\n" +"POT-Creation-Date: 2020-10-15 22:05+0200\n" "PO-Revision-Date: 2020-08-06 00:39+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -35,56 +35,150 @@ msgstr "" msgid "|today|" msgstr "|today|" -#: whatsnew/3.9.rst:48 -msgid "This article explains the new features in Python 3.9, compared to 3.8." +#: whatsnew/3.9.rst:0 +msgid "Editor" +msgstr "" + +#: whatsnew/3.9.rst:7 +msgid "Łukasz Langa" +msgstr "" + +#: whatsnew/3.9.rst:47 +msgid "" +"This article explains the new features in Python 3.9, compared to 3.8. " +"Python 3.9 was released on October 5th, 2020." msgstr "" -"Cet article explique les nouvelles fonctionnalités de Python 3.9 par rapport " -"à la version 3.8." #: whatsnew/3.9.rst:50 msgid "For full details, see the :ref:`changelog `." msgstr "Pour plus de détails, voir le :ref:`changelog `." #: whatsnew/3.9.rst:54 -msgid "" -"Prerelease users should be aware that this document is currently in draft " -"form. It will be updated substantially as Python 3.9 moves towards release, " -"so it's worth checking back even after reading earlier versions." +msgid ":pep:`596` - Python 3.9 Release Schedule" msgstr "" -"Les utilisateurs de la prépublication doivent savoir que ce document est " -"actuellement à l'état de brouillon. Il sera mis à jour de manière " -"substantielle au fur et à mesure que Python 3.9 se rapprochera de sa version " -"finale, il est donc utile de le consulter même après avoir lu les versions " -"précédentes." -#: whatsnew/3.9.rst:60 +#: whatsnew/3.9.rst:58 msgid "Summary -- Release highlights" msgstr "Résumé – Points forts de la publication" -#: whatsnew/3.9.rst:70 +#: whatsnew/3.9.rst:63 +msgid "New syntax features:" +msgstr "" + +#: whatsnew/3.9.rst:65 +msgid ":pep:`584`, union operators added to ``dict``;" +msgstr "" + +#: whatsnew/3.9.rst:66 +msgid ":pep:`585`, type hinting generics in standard collections;" +msgstr "" + +#: whatsnew/3.9.rst:67 +msgid ":pep:`614`, relaxed grammar restrictions on decorators." +msgstr "" + +#: whatsnew/3.9.rst:69 +msgid "New built-in features:" +msgstr "" + +#: whatsnew/3.9.rst:71 +msgid ":pep:`616`, string methods to remove prefixes and suffixes." +msgstr "" + +#: whatsnew/3.9.rst:73 +msgid "New features in the standard library:" +msgstr "" + +#: whatsnew/3.9.rst:75 +msgid ":pep:`593`, flexible function and variable annotations;" +msgstr "" + +#: whatsnew/3.9.rst:76 +msgid "" +":func:`os.pidfd_open` added that allows process management without races and " +"signals." +msgstr "" + +#: whatsnew/3.9.rst:79 +msgid "Interpreter improvements:" +msgstr "" + +#: whatsnew/3.9.rst:81 +msgid "" +":pep:`573`, fast access to module state from methods of C extension types;" +msgstr "" + +#: whatsnew/3.9.rst:83 +msgid ":pep:`617`, CPython now uses a new parser based on PEG;" +msgstr "" + +#: whatsnew/3.9.rst:84 +msgid "" +"a number of Python builtins (range, tuple, set, frozenset, list, dict) are " +"now sped up using :pep:`590` vectorcall;" +msgstr "" + +#: whatsnew/3.9.rst:86 +msgid "garbage collection does not block on resurrected objects;" +msgstr "" + +#: whatsnew/3.9.rst:87 +msgid "" +"a number of Python modules (:mod:`_abc`, :mod:`audioop`, :mod:`_bz2`, :mod:" +"`_codecs`, :mod:`_contextvars`, :mod:`_crypt`, :mod:`_functools`, :mod:" +"`_json`, :mod:`_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:" +"`time`, :mod:`_weakref`) now use multiphase initialization as defined by PEP " +"489;" +msgstr "" + +#: whatsnew/3.9.rst:92 +msgid "" +"a number of standard library modules (:mod:`audioop`, :mod:`ast`, :mod:" +"`grp`, :mod:`_hashlib`, :mod:`pwd`, :mod:`_posixsubprocess`, :mod:`random`, :" +"mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) are now using the " +"stable ABI defined by PEP 384." +msgstr "" + +#: whatsnew/3.9.rst:97 +msgid "New library modules:" +msgstr "" + +#: whatsnew/3.9.rst:99 +msgid "" +":pep:`615`, the IANA Time Zone Database is now present in the standard " +"library in the :mod:`zoneinfo` module;" +msgstr "" + +#: whatsnew/3.9.rst:101 +msgid "" +"an implementation of a topological sort of a graph is now provided in the " +"new :mod:`graphlib` module." +msgstr "" + +#: whatsnew/3.9.rst:104 +msgid "Release process changes:" +msgstr "" + +#: whatsnew/3.9.rst:106 +msgid ":pep:`602`, CPython adopts an annual release cycle." +msgstr "" + +#: whatsnew/3.9.rst:110 msgid "You should check for DeprecationWarning in your code" msgstr "Vous devez vérifier la présence de DeprecationWarning dans votre code" -#: whatsnew/3.9.rst:72 +#: whatsnew/3.9.rst:112 msgid "" -"When Python 2.7 was still supported, many functions were kept for backward " -"compatibility with Python 2.7. With the end of Python 2.7 support, these " -"backward compatibility layers have been removed, or will be removed soon. " -"Most of them emitted a :exc:`DeprecationWarning` warning for several years. " -"For example, using ``collections.Mapping`` instead of ``collections.abc." -"Mapping`` emits a :exc:`DeprecationWarning` since Python 3.3, released in " -"2012." +"When Python 2.7 was still supported, a lot of functionality in Python 3 was " +"kept for backward compatibility with Python 2.7. With the end of Python 2 " +"support, these backward compatibility layers have been removed, or will be " +"removed soon. Most of them emitted a :exc:`DeprecationWarning` warning for " +"several years. For example, using ``collections.Mapping`` instead of " +"``collections.abc.Mapping`` emits a :exc:`DeprecationWarning` since Python " +"3.3, released in 2012." msgstr "" -"Lorsque Python 2.7 était encore supporté, de nombreuses fonctions ont été " -"conservées pour assurer la rétrocompatibilité avec Python 2.7. Avec la fin " -"du support de Python 2.7, ces couches de rétrocompatibilité ont été " -"supprimées, ou le seront bientôt. La plupart d'entre elles ont émis un " -"avertissement :exc:`DeprecationWarning` pendant plusieurs années. Par " -"exemple, l'utilisation de ``collections.Mapping`` au lieu de ``collections." -"abc.Mapping`` émet un :exc:`DeprecationWarning` depuis Python 3.3, sorti en " -"2012." -#: whatsnew/3.9.rst:79 +#: whatsnew/3.9.rst:120 msgid "" "Test your application with the :option:`-W` ``default`` command-line option " "to see :exc:`DeprecationWarning` and :exc:`PendingDeprecationWarning`, or " @@ -99,18 +193,14 @@ msgstr "" "filter>` peut être utilisé pour ignorer les avertissements provenant de code " "de tierces parties." -#: whatsnew/3.9.rst:84 +#: whatsnew/3.9.rst:125 msgid "" -"It has been decided to keep a few backward compatibility layers for one last " -"release, to give more time to Python projects maintainers to organize the " -"removal of the Python 2 support and add support for Python 3.9." +"Python 3.9 is the last version providing those Python 2 backward " +"compatibility layers, to give more time to Python projects maintainers to " +"organize the removal of the Python 2 support and add support for Python 3.9." msgstr "" -"Il a été décidé de conserver quelques couches de compatibilité ascendante " -"pour une dernière version, afin de donner plus de temps aux responsables des " -"projets Python pour organiser la suppression du support de Python 2 et " -"ajouter le support de Python 3.9." -#: whatsnew/3.9.rst:88 +#: whatsnew/3.9.rst:129 msgid "" "Aliases to :ref:`Abstract Base Classes ` " "in the :mod:`collections` module, like ``collections.Mapping`` alias to :" @@ -123,7 +213,7 @@ msgstr "" "dernière version au titre de la rétrocompatibilité. Ils seront supprimés de " "Python 3.10." -#: whatsnew/3.9.rst:93 +#: whatsnew/3.9.rst:134 msgid "" "More generally, try to run your tests in the :ref:`Python Development Mode " "` which helps to prepare your code to make it compatible with the " @@ -133,31 +223,42 @@ msgstr "" "Development Mode ` qui aide à préparer votre code pour le rendre " "compatible avec la prochaine version de Python." -#: whatsnew/3.9.rst:1050 +#: whatsnew/3.9.rst:138 +msgid "" +"Note: a number of pre-existing deprecatations were removed in this version " +"of Python as well. Consult the :ref:`removed-in-python-39` section." +msgstr "" + +#: whatsnew/3.9.rst:1236 msgid "New Features" msgstr "Nouvelles fonctionnalités" -#: whatsnew/3.9.rst:102 +#: whatsnew/3.9.rst:146 msgid "Dictionary Merge & Update Operators" msgstr "Opérateurs de fusion et de mise à jour de dictionnaires" -#: whatsnew/3.9.rst:104 +#: whatsnew/3.9.rst:148 msgid "" "Merge (``|``) and update (``|=``) operators have been added to the built-in :" -"class:`dict` class. See :pep:`584` for a full description. (Contributed by " -"Brandt Bucher in :issue:`36144`.)" +"class:`dict` class. Those complement the existing ``dict.update`` and " +"``{**d1, **d2}`` methods of merging dictionaries." msgstr "" -"Les opérateurs de fusion (``|``) et de mise à jour (``|=``) ont été ajoutés " -"à la classe native :class:`dict`. Voir :pep:`584` pour une description " -"complète (contribution de Brandt Bucher dans :issue:`36144`)." -#: whatsnew/3.9.rst:109 -msgid "PEP 616: New removeprefix() and removesuffix() string methods" +#: whatsnew/3.9.rst:281 +msgid "Example::" +msgstr "Exemple ::" + +#: whatsnew/3.9.rst:161 +msgid "" +"See :pep:`584` for a full description. (Contributed by Brandt Bucher in :" +"issue:`36144`.)" msgstr "" -"PEP 616 : nouvelles méthodes de chaînes de caractères `removeprefix()` et " -"`removesuffix()`" -#: whatsnew/3.9.rst:111 +#: whatsnew/3.9.rst:165 +msgid "New String Methods to Remove Prefixes and Suffixes" +msgstr "" + +#: whatsnew/3.9.rst:167 msgid "" ":meth:`str.removeprefix(prefix)` and :meth:`str." "removesuffix(suffix)` have been added to easily remove an " @@ -173,11 +274,11 @@ msgstr "" "ont également été ajoutées. Voir :pep:`616` pour une description complète " "(contribution de Dennis Sweeney dans :issue:`39939`)." -#: whatsnew/3.9.rst:119 -msgid "PEP 585: Builtin Generic Types" -msgstr "PEP 585 : Types génériques natifs" +#: whatsnew/3.9.rst:175 +msgid "Type Hinting Generics in Standard Collections" +msgstr "" -#: whatsnew/3.9.rst:121 +#: whatsnew/3.9.rst:177 msgid "" "In type annotations you can now use built-in collection types such as " "``list`` and ``dict`` as generic types instead of importing the " @@ -191,11 +292,11 @@ msgstr "" "ou ``Dict``) à partir de ``typing``. D'autres types de la bibliothèque " "standard sont maintenant génériques, par exemple ``queue.Queue``." -#: whatsnew/3.9.rst:982 +#: whatsnew/3.9.rst:1125 msgid "Example:" msgstr "Exemple :" -#: whatsnew/3.9.rst:135 +#: whatsnew/3.9.rst:191 msgid "" "See :pep:`585` for more details. (Contributed by Guido van Rossum, Ethan " "Smith, and Batuhan Taşkaya in :issue:`39481`.)" @@ -203,11 +304,11 @@ msgstr "" "Voir :pep:`585` pour plus de détails (contribution de Guido van Rossum, " "Ethan Smith et Batuhan Taşkaya dans :issue:`39481`)." -#: whatsnew/3.9.rst:139 -msgid "PEP 617: New Parser" -msgstr "PEP 617 : Nouvel analyseur syntaxique" +#: whatsnew/3.9.rst:195 +msgid "New Parser" +msgstr "" -#: whatsnew/3.9.rst:141 +#: whatsnew/3.9.rst:197 msgid "" "Python 3.9 uses a new parser, based on `PEG `_ instead of `LL(1) ` and in debug build, the " "*encoding* and *errors* arguments are now checked for string encoding and " @@ -284,14 +385,14 @@ msgid "" "`bytes.decode`." msgstr "" -#: whatsnew/3.9.rst:184 +#: whatsnew/3.9.rst:239 msgid "" "By default, for best performance, the *errors* argument is only checked at " "the first encoding/decoding error and the *encoding* argument is sometimes " "ignored for empty strings. (Contributed by Victor Stinner in :issue:`37388`.)" msgstr "" -#: whatsnew/3.9.rst:189 +#: whatsnew/3.9.rst:244 msgid "" "``\"\".replace(\"\", s, n)`` now returns ``s`` instead of an empty string " "for all non-zero ``n``. It is now consistent with ``\"\".replace(\"\", " @@ -299,14 +400,14 @@ msgid "" "objects. (Contributed by Serhiy Storchaka in :issue:`28029`.)" msgstr "" -#: whatsnew/3.9.rst:194 +#: whatsnew/3.9.rst:249 msgid "" "Any valid expression can now be used as a :term:`decorator`. Previously, " "the grammar was much more restrictive. See :pep:`614` for details. " "(Contributed by Brandt Bucher in :issue:`39702`.)" msgstr "" -#: whatsnew/3.9.rst:198 +#: whatsnew/3.9.rst:253 msgid "" "Improved help for the :mod:`typing` module. Docstrings are now shown for all " "special forms and special generic aliases (like ``Union`` and ``List``). " @@ -315,69 +416,81 @@ msgid "" "Serhiy Storchaka in :issue:`40257`.)" msgstr "" -#: whatsnew/3.9.rst:206 +#: whatsnew/3.9.rst:259 +msgid "" +"Parallel running of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:" +"`~agen.athrow` is now prohibited, and ``ag_running`` now reflects the actual " +"running status of the async generator. (Contributed by Yury Selivanov in :" +"issue:`30773`.)" +msgstr "" + +#: whatsnew/3.9.rst:264 +msgid "" +"Unexpected errors in calling the ``__iter__`` method are no longer masked by " +"``TypeError`` in the :keyword:`in` operator and functions :func:`~operator." +"contains`, :func:`~operator.indexOf` and :func:`~operator.countOf` of the :" +"mod:`operator` module. (Contributed by Serhiy Storchaka in :issue:`40824`.)" +msgstr "" + +#: whatsnew/3.9.rst:272 msgid "New Modules" msgstr "" -#: whatsnew/3.9.rst:209 +#: whatsnew/3.9.rst:275 msgid "zoneinfo" msgstr "" -#: whatsnew/3.9.rst:211 +#: whatsnew/3.9.rst:277 msgid "" "The :mod:`zoneinfo` module brings support for the IANA time zone database to " "the standard library. It adds :class:`zoneinfo.ZoneInfo`, a concrete :class:" "`datetime.tzinfo` implementation backed by the system's time zone data." msgstr "" -#: whatsnew/3.9.rst:215 -msgid "Example::" -msgstr "Exemple ::" - -#: whatsnew/3.9.rst:235 +#: whatsnew/3.9.rst:301 msgid "" "As a fall-back source of data for platforms that don't ship the IANA " "database, the |tzdata|_ module was released as a first-party package -- " "distributed via PyPI and maintained by the CPython core team." msgstr "" -#: whatsnew/3.9.rst:244 +#: whatsnew/3.9.rst:310 msgid "" ":pep:`615` -- Support for the IANA Time Zone Database in the Standard Library" msgstr "" -#: whatsnew/3.9.rst:245 +#: whatsnew/3.9.rst:311 msgid "PEP written and implemented by Paul Ganssle" msgstr "" -#: whatsnew/3.9.rst:249 +#: whatsnew/3.9.rst:315 msgid "graphlib" msgstr "" -#: whatsnew/3.9.rst:251 +#: whatsnew/3.9.rst:317 msgid "" -"Add the :mod:`graphlib` that contains the :class:`graphlib." +"A new module, :mod:`graphlib`, was added that contains the :class:`graphlib." "TopologicalSorter` class to offer functionality to perform topological " "sorting of graphs. (Contributed by Pablo Galindo, Tim Peters and Larry " "Hastings in :issue:`17005`.)" msgstr "" -#: whatsnew/3.9.rst:257 +#: whatsnew/3.9.rst:324 msgid "Improved Modules" msgstr "" -#: whatsnew/3.9.rst:260 +#: whatsnew/3.9.rst:327 msgid "ast" msgstr "ast" -#: whatsnew/3.9.rst:262 +#: whatsnew/3.9.rst:329 msgid "" "Added the *indent* option to :func:`~ast.dump` which allows it to produce a " "multiline indented output. (Contributed by Serhiy Storchaka in :issue:" "`37995`.)" msgstr "" -#: whatsnew/3.9.rst:266 +#: whatsnew/3.9.rst:333 msgid "" "Added :func:`ast.unparse` as a function in the :mod:`ast` module that can be " "used to unparse an :class:`ast.AST` object and produce a string with code " @@ -385,17 +498,17 @@ msgid "" "(Contributed by Pablo Galindo and Batuhan Taskaya in :issue:`38870`.)" msgstr "" -#: whatsnew/3.9.rst:271 +#: whatsnew/3.9.rst:338 msgid "" "Added docstrings to AST nodes that contains the ASDL signature used to " "construct that node. (Contributed by Batuhan Taskaya in :issue:`39638`.)" msgstr "" -#: whatsnew/3.9.rst:275 +#: whatsnew/3.9.rst:342 msgid "asyncio" msgstr "asyncio" -#: whatsnew/3.9.rst:277 +#: whatsnew/3.9.rst:344 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -405,7 +518,7 @@ msgid "" "`37228`.)" msgstr "" -#: whatsnew/3.9.rst:284 +#: whatsnew/3.9.rst:351 msgid "" "Added a new :term:`coroutine` :meth:`~asyncio.loop." "shutdown_default_executor` that schedules a shutdown for the default " @@ -414,13 +527,13 @@ msgid "" "new :term:`coroutine`. (Contributed by Kyle Stanley in :issue:`34037`.)" msgstr "" -#: whatsnew/3.9.rst:290 +#: whatsnew/3.9.rst:357 msgid "" "Added :class:`asyncio.PidfdChildWatcher`, a Linux-specific child watcher " "implementation that polls process file descriptors. (:issue:`38692`)" msgstr "" -#: whatsnew/3.9.rst:293 +#: whatsnew/3.9.rst:360 msgid "" "Added a new :term:`coroutine` :func:`asyncio.to_thread`. It is mainly used " "for running IO-bound functions in a separate thread to avoid blocking the " @@ -429,18 +542,33 @@ msgid "" "by Kyle Stanley and Yury Selivanov in :issue:`32309`.)" msgstr "" -#: whatsnew/3.9.rst:300 +#: whatsnew/3.9.rst:366 +msgid "" +"When cancelling the task due to a timeout, :meth:`asyncio.wait_for` will now " +"wait until the cancellation is complete also in the case when *timeout* is " +"<= 0, like it does with positive timeouts. (Contributed by Elvis " +"Pranskevichus in :issue:`32751`.)" +msgstr "" + +#: whatsnew/3.9.rst:371 +msgid "" +":mod:`asyncio` now raises :exc:`TyperError` when calling incompatible " +"methods with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael " +"in :issue:`37404`.)" +msgstr "" + +#: whatsnew/3.9.rst:376 msgid "compileall" msgstr "compileall" -#: whatsnew/3.9.rst:302 +#: whatsnew/3.9.rst:378 msgid "" "Added new possibility to use hardlinks for duplicated ``.pyc`` files: " "*hardlink_dupes* parameter and --hardlink-dupes command line option. " "(Contributed by Lumír 'Frenzy' Balhar in :issue:`40495`.)" msgstr "" -#: whatsnew/3.9.rst:305 +#: whatsnew/3.9.rst:381 msgid "" "Added new options for path manipulation in resulting ``.pyc`` files: " "*stripdir*, *prependdir*, *limit_sl_dest* parameters and -s, -p, -e command " @@ -449,11 +577,11 @@ msgid "" "issue:`38112`.)" msgstr "" -#: whatsnew/3.9.rst:310 +#: whatsnew/3.9.rst:386 msgid "concurrent.futures" msgstr "concurrent.futures" -#: whatsnew/3.9.rst:312 +#: whatsnew/3.9.rst:388 msgid "" "Added a new *cancel_futures* parameter to :meth:`concurrent.futures.Executor." "shutdown` that cancels all pending futures which have not started running, " @@ -461,7 +589,7 @@ msgid "" "(Contributed by Kyle Stanley in :issue:`39349`.)" msgstr "" -#: whatsnew/3.9.rst:318 +#: whatsnew/3.9.rst:394 msgid "" "Removed daemon threads from :class:`~concurrent.futures.ThreadPoolExecutor` " "and :class:`~concurrent.futures.ProcessPoolExecutor`. This improves " @@ -469,7 +597,7 @@ msgid "" "processes. (Contributed by Kyle Stanley in :issue:`39812`.)" msgstr "" -#: whatsnew/3.9.rst:323 +#: whatsnew/3.9.rst:399 msgid "" "Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned " "on demand, only when there are no available idle workers to reuse. This " @@ -477,22 +605,22 @@ msgid "" "workers. (Contributed by Kyle Stanley in :issue:`39207`.)" msgstr "" -#: whatsnew/3.9.rst:329 +#: whatsnew/3.9.rst:405 msgid "curses" msgstr "curses" -#: whatsnew/3.9.rst:331 +#: whatsnew/3.9.rst:407 msgid "" -"Add :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:`curses." -"get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed by " -"Anthony Sottile in :issue:`38312`.)" +"Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:" +"`curses.get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed " +"by Anthony Sottile in :issue:`38312`.)" msgstr "" -#: whatsnew/3.9.rst:336 +#: whatsnew/3.9.rst:412 msgid "datetime" msgstr "datetime" -#: whatsnew/3.9.rst:337 +#: whatsnew/3.9.rst:413 msgid "" "The :meth:`~datetime.date.isocalendar()` of :class:`datetime.date` and :meth:" "`~datetime.datetime.isocalendar()` of :class:`datetime.datetime` methods now " @@ -500,32 +628,32 @@ msgid "" "(Contributed by Dong-hee Na in :issue:`24416`.)" msgstr "" -#: whatsnew/3.9.rst:343 +#: whatsnew/3.9.rst:419 msgid "distutils" msgstr "distutils" -#: whatsnew/3.9.rst:345 +#: whatsnew/3.9.rst:421 msgid "" "The :command:`upload` command now creates SHA2-256 and Blake2b-256 hash " "digests. It skips MD5 on platforms that block MD5 digest. (Contributed by " "Christian Heimes in :issue:`40698`.)" msgstr "" -#: whatsnew/3.9.rst:350 +#: whatsnew/3.9.rst:426 msgid "fcntl" msgstr "" -#: whatsnew/3.9.rst:352 +#: whatsnew/3.9.rst:428 msgid "" "Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK` and :" "data:`~fcntl.F_OFD_SETLKW`. (Contributed by Dong-hee Na in :issue:`38602`.)" msgstr "" -#: whatsnew/3.9.rst:357 +#: whatsnew/3.9.rst:433 msgid "ftplib" msgstr "" -#: whatsnew/3.9.rst:359 +#: whatsnew/3.9.rst:435 msgid "" ":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " @@ -533,11 +661,11 @@ msgid "" "`39259`.)" msgstr "" -#: whatsnew/3.9.rst:364 +#: whatsnew/3.9.rst:440 msgid "gc" msgstr "" -#: whatsnew/3.9.rst:366 +#: whatsnew/3.9.rst:442 msgid "" "When the garbage collector makes a collection in which some objects " "resurrect (they are reachable from outside the isolated cycles after the " @@ -546,18 +674,24 @@ msgid "" "issue:`38379`.)" msgstr "" -#: whatsnew/3.9.rst:371 +#: whatsnew/3.9.rst:447 msgid "" "Added a new function :func:`gc.is_finalized` to check if an object has been " "finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:" "`39322`.)" msgstr "" -#: whatsnew/3.9.rst:376 +#: whatsnew/3.9.rst:452 msgid "hashlib" msgstr "" -#: whatsnew/3.9.rst:378 +#: whatsnew/3.9.rst:454 +msgid "" +"The :mod:`hashlib` module can now use SHA3 hashes and SHAKE XOF from OpenSSL " +"when available. (Contributed by Christian Heimes in :issue:`37630`.)" +msgstr "" + +#: whatsnew/3.9.rst:458 msgid "" "Builtin hash modules can now be disabled with ``./configure --without-" "builtin-hashlib-hashes`` or selectively enabled with e.g. ``./configure --" @@ -565,48 +699,48 @@ msgid "" "implementation. (Contributed by Christian Heimes in :issue:`40479`)" msgstr "" -#: whatsnew/3.9.rst:385 +#: whatsnew/3.9.rst:466 msgid "http" msgstr "" -#: whatsnew/3.9.rst:387 +#: whatsnew/3.9.rst:468 msgid "" "HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 " "TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Dong-hee " "Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.)" msgstr "" -#: whatsnew/3.9.rst:391 +#: whatsnew/3.9.rst:472 msgid "IDLE and idlelib" msgstr "" -#: whatsnew/3.9.rst:393 +#: whatsnew/3.9.rst:474 msgid "" -"Add option to toggle cursor blink off. (Contributed by Zackery Spytz in :" +"Added option to toggle cursor blink off. (Contributed by Zackery Spytz in :" "issue:`4603`.)" msgstr "" -#: whatsnew/3.9.rst:396 +#: whatsnew/3.9.rst:477 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" msgstr "" -#: whatsnew/3.9.rst:399 +#: whatsnew/3.9.rst:480 msgid "" -"Add keywords to module name completion list. (Contributed by Terry J. Reedy " -"in :issue:`37765`.)" +"Added keywords to module name completion list. (Contributed by Terry J. " +"Reedy in :issue:`37765`.)" msgstr "" -#: whatsnew/3.9.rst:402 +#: whatsnew/3.9.rst:483 msgid "The changes above have been backported to 3.8 maintenance releases." msgstr "" -#: whatsnew/3.9.rst:405 +#: whatsnew/3.9.rst:486 msgid "imaplib" msgstr "" -#: whatsnew/3.9.rst:407 +#: whatsnew/3.9.rst:488 msgid "" ":class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional " "*timeout* parameter for their constructors. Also, the :meth:`~imaplib.IMAP4." @@ -616,7 +750,7 @@ msgid "" "issue:`38615`.)" msgstr "" -#: whatsnew/3.9.rst:414 +#: whatsnew/3.9.rst:495 msgid "" ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " "frees server's resources associated with the selected mailbox and returns " @@ -626,11 +760,11 @@ msgid "" "Dong-hee Na in :issue:`40375`.)" msgstr "" -#: whatsnew/3.9.rst:422 +#: whatsnew/3.9.rst:503 msgid "importlib" msgstr "importlib" -#: whatsnew/3.9.rst:424 +#: whatsnew/3.9.rst:505 msgid "" "To improve consistency with import statements, :func:`importlib.util." "resolve_name` now raises :exc:`ImportError` instead of :exc:`ValueError` for " @@ -638,28 +772,47 @@ msgid "" "`37444`.)" msgstr "" -#: whatsnew/3.9.rst:430 +#: whatsnew/3.9.rst:510 +msgid "" +"Import loaders which publish immutable module objects can now publish " +"immutable packages in addition to individual modules. (Contributed by Dino " +"Viehland in :issue:`39336`.)" +msgstr "" + +#: whatsnew/3.9.rst:514 +msgid "" +"Added :func:`importlib.resources.files` function with support for " +"subdirectories in package data, matching backport in ``importlib_resources`` " +"version 1.5. (Contributed by Jason R. Coombs in :issue:`39791`.)" +msgstr "" + +#: whatsnew/3.9.rst:519 +msgid "" +"Refreshed ``importlib.metadata`` from ``importlib_metadata`` version 1.6.1." +msgstr "" + +#: whatsnew/3.9.rst:522 msgid "inspect" msgstr "" -#: whatsnew/3.9.rst:432 +#: whatsnew/3.9.rst:524 msgid "" ":attr:`inspect.BoundArguments.arguments` is changed from ``OrderedDict`` to " "regular dict. (Contributed by Inada Naoki in :issue:`36350` and :issue:" "`39775`.)" msgstr "" -#: whatsnew/3.9.rst:436 +#: whatsnew/3.9.rst:528 msgid "ipaddress" msgstr "" -#: whatsnew/3.9.rst:438 +#: whatsnew/3.9.rst:530 msgid "" ":mod:`ipaddress` now supports IPv6 Scoped Addresses (IPv6 address with " "suffix ``%``)." msgstr "" -#: whatsnew/3.9.rst:440 +#: whatsnew/3.9.rst:532 msgid "" "Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If " "present, scope zone ID is available through the :attr:`~ipaddress." @@ -667,52 +820,52 @@ msgid "" "`34788`.)" msgstr "" -#: whatsnew/3.9.rst:445 +#: whatsnew/3.9.rst:537 msgid "math" msgstr "" -#: whatsnew/3.9.rst:447 +#: whatsnew/3.9.rst:539 msgid "" "Expanded the :func:`math.gcd` function to handle multiple arguments. " "Formerly, it only supported two arguments. (Contributed by Serhiy Storchaka " "in :issue:`39648`.)" msgstr "" -#: whatsnew/3.9.rst:451 +#: whatsnew/3.9.rst:543 msgid "" -"Add :func:`math.lcm`: return the least common multiple of specified " +"Added :func:`math.lcm`: return the least common multiple of specified " "arguments. (Contributed by Mark Dickinson, Ananthakrishnan and Serhiy " "Storchaka in :issue:`39479` and :issue:`39648`.)" msgstr "" -#: whatsnew/3.9.rst:455 +#: whatsnew/3.9.rst:547 msgid "" -"Add :func:`math.nextafter`: return the next floating-point value after *x* " +"Added :func:`math.nextafter`: return the next floating-point value after *x* " "towards *y*. (Contributed by Victor Stinner in :issue:`39288`.)" msgstr "" -#: whatsnew/3.9.rst:459 +#: whatsnew/3.9.rst:551 msgid "" -"Add :func:`math.ulp`: return the value of the least significant bit of a " +"Added :func:`math.ulp`: return the value of the least significant bit of a " "float. (Contributed by Victor Stinner in :issue:`39310`.)" msgstr "" -#: whatsnew/3.9.rst:464 +#: whatsnew/3.9.rst:556 msgid "multiprocessing" msgstr "multiprocessing" -#: whatsnew/3.9.rst:466 +#: whatsnew/3.9.rst:558 msgid "" "The :class:`multiprocessing.SimpleQueue` class has a new :meth:" "`~multiprocessing.SimpleQueue.close` method to explicitly close the queue. " "(Contributed by Victor Stinner in :issue:`30966`.)" msgstr "" -#: whatsnew/3.9.rst:472 +#: whatsnew/3.9.rst:564 msgid "nntplib" msgstr "" -#: whatsnew/3.9.rst:474 +#: whatsnew/3.9.rst:566 msgid "" ":class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " @@ -720,55 +873,65 @@ msgid "" "`39259`.)" msgstr "" -#: whatsnew/3.9.rst:479 +#: whatsnew/3.9.rst:571 msgid "os" msgstr "" -#: whatsnew/3.9.rst:481 +#: whatsnew/3.9.rst:573 msgid "" "Added :data:`~os.CLD_KILLED` and :data:`~os.CLD_STOPPED` for :attr:" "`si_code`. (Contributed by Dong-hee Na in :issue:`38493`.)" msgstr "" -#: whatsnew/3.9.rst:484 +#: whatsnew/3.9.rst:576 msgid "" "Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :data:" "`os.P_PIDFD` (:issue:`38713`) for process management with file descriptors." msgstr "" -#: whatsnew/3.9.rst:488 +#: whatsnew/3.9.rst:580 msgid "" "The :func:`os.unsetenv` function is now also available on Windows. " "(Contributed by Victor Stinner in :issue:`39413`.)" msgstr "" -#: whatsnew/3.9.rst:491 +#: whatsnew/3.9.rst:583 msgid "" "The :func:`os.putenv` and :func:`os.unsetenv` functions are now always " "available. (Contributed by Victor Stinner in :issue:`39395`.)" msgstr "" -#: whatsnew/3.9.rst:495 +#: whatsnew/3.9.rst:587 msgid "" -"Add :func:`os.waitstatus_to_exitcode` function: convert a wait status to an " -"exit code. (Contributed by Victor Stinner in :issue:`40094`.)" +"Added :func:`os.waitstatus_to_exitcode` function: convert a wait status to " +"an exit code. (Contributed by Victor Stinner in :issue:`40094`.)" msgstr "" -#: whatsnew/3.9.rst:500 +#: whatsnew/3.9.rst:592 msgid "pathlib" msgstr "pathlib" -#: whatsnew/3.9.rst:502 +#: whatsnew/3.9.rst:594 msgid "" "Added :meth:`pathlib.Path.readlink()` which acts similarly to :func:`os." "readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" msgstr "" -#: whatsnew/3.9.rst:507 +#: whatsnew/3.9.rst:599 +msgid "pdb" +msgstr "" + +#: whatsnew/3.9.rst:601 +msgid "" +"On Windows now :class:`~pdb.Pdb` supports ``~/.pdbrc``. (Contributed by Tim " +"Hopper and Dan Lidral-Porter in :issue:`20523`.)" +msgstr "" + +#: whatsnew/3.9.rst:605 msgid "poplib" msgstr "" -#: whatsnew/3.9.rst:509 +#: whatsnew/3.9.rst:607 msgid "" ":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " @@ -776,53 +939,53 @@ msgid "" "`39259`.)" msgstr "" -#: whatsnew/3.9.rst:514 +#: whatsnew/3.9.rst:612 msgid "pprint" msgstr "" -#: whatsnew/3.9.rst:516 +#: whatsnew/3.9.rst:614 msgid "" ":mod:`pprint` can now pretty-print :class:`types.SimpleNamespace`. " "(Contributed by Carl Bordum Hansen in :issue:`37376`.)" msgstr "" -#: whatsnew/3.9.rst:520 +#: whatsnew/3.9.rst:618 msgid "pydoc" msgstr "" -#: whatsnew/3.9.rst:522 +#: whatsnew/3.9.rst:620 msgid "" "The documentation string is now shown not only for class, function, method " "etc, but for any object that has its own ``__doc__`` attribute. (Contributed " "by Serhiy Storchaka in :issue:`40257`.)" msgstr "" -#: whatsnew/3.9.rst:527 +#: whatsnew/3.9.rst:625 msgid "random" msgstr "" -#: whatsnew/3.9.rst:529 +#: whatsnew/3.9.rst:627 msgid "" -"Add a new :attr:`random.Random.randbytes` method: generate random bytes. " +"Added a new :attr:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" msgstr "" -#: whatsnew/3.9.rst:533 +#: whatsnew/3.9.rst:631 msgid "signal" msgstr "" -#: whatsnew/3.9.rst:535 +#: whatsnew/3.9.rst:633 msgid "" "Exposed the Linux-specific :func:`signal.pidfd_send_signal` for sending to " "signals to a process using a file descriptor instead of a pid. (:issue:" "`38712`)" msgstr "" -#: whatsnew/3.9.rst:539 +#: whatsnew/3.9.rst:637 msgid "smtplib" msgstr "" -#: whatsnew/3.9.rst:541 +#: whatsnew/3.9.rst:639 msgid "" ":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " @@ -830,34 +993,41 @@ msgid "" "`39259`.)" msgstr "" -#: whatsnew/3.9.rst:545 +#: whatsnew/3.9.rst:643 msgid "" ":class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter. " "(Contributed by Dong-hee Na in :issue:`39329`.)" msgstr "" -#: whatsnew/3.9.rst:549 +#: whatsnew/3.9.rst:647 msgid "socket" msgstr "" -#: whatsnew/3.9.rst:551 +#: whatsnew/3.9.rst:649 msgid "" "The :mod:`socket` module now exports the :data:`~socket." "CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. (Contributed by " "Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" msgstr "" -#: whatsnew/3.9.rst:555 +#: whatsnew/3.9.rst:653 msgid "" "The socket module now supports the :data:`~socket.CAN_J1939` protocol on " "platforms that support it. (Contributed by Karl Ding in :issue:`40291`.)" msgstr "" -#: whatsnew/3.9.rst:559 +#: whatsnew/3.9.rst:656 +msgid "" +"The socket module now has the :func:`socket.send_fds` and :func:`socket.recv." +"fds` methods. (Contributed by Joannah Nanjekye, Shinya Okano and Victor " +"Stinner in :issue:`28724`.)" +msgstr "" + +#: whatsnew/3.9.rst:662 msgid "time" msgstr "time" -#: whatsnew/3.9.rst:561 +#: whatsnew/3.9.rst:664 msgid "" "On AIX, :func:`~time.thread_time` is now implemented with " "``thread_cputime()`` which has nanosecond resolution, rather than " @@ -865,13 +1035,13 @@ msgid "" "(Contributed by Batuhan Taskaya in :issue:`40192`)" msgstr "" -#: whatsnew/3.9.rst:567 +#: whatsnew/3.9.rst:670 msgid "sys" msgstr "sys" -#: whatsnew/3.9.rst:569 +#: whatsnew/3.9.rst:672 msgid "" -"Add a new :attr:`sys.platlibdir` attribute: name of the platform-specific " +"Added a new :attr:`sys.platlibdir` attribute: name of the platform-specific " "library directory. It is used to build the path of standard library and the " "paths of installed extension modules. It is equal to ``\"lib\"`` on most " "platforms. On Fedora and SuSE, it is equal to ``\"lib64\"`` on 64-bit " @@ -879,29 +1049,29 @@ msgid "" "and Victor Stinner in :issue:`1294959`.)" msgstr "" -#: whatsnew/3.9.rst:575 +#: whatsnew/3.9.rst:678 msgid "" "Previously, :attr:`sys.stderr` was block-buffered when non-interactive. Now " "``stderr`` defaults to always being line-buffered. (Contributed by Jendrik " "Seipp in :issue:`13601`.)" msgstr "" -#: whatsnew/3.9.rst:580 +#: whatsnew/3.9.rst:683 msgid "tracemalloc" msgstr "" -#: whatsnew/3.9.rst:582 +#: whatsnew/3.9.rst:685 msgid "" "Added :func:`tracemalloc.reset_peak` to set the peak size of traced memory " "blocks to the current size, to measure the peak of specific pieces of code. " "(Contributed by Huon Wilson in :issue:`40630`.)" msgstr "" -#: whatsnew/3.9.rst:587 +#: whatsnew/3.9.rst:690 msgid "typing" msgstr "" -#: whatsnew/3.9.rst:589 +#: whatsnew/3.9.rst:692 msgid "" ":pep:`593` introduced an :data:`typing.Annotated` type to decorate existing " "types with context-specific metadata and new ``include_extras`` parameter " @@ -909,20 +1079,20 @@ msgid "" "(Contributed by Till Varoquaux and Konstantin Kashin.)" msgstr "" -#: whatsnew/3.9.rst:595 +#: whatsnew/3.9.rst:698 msgid "unicodedata" msgstr "unicodedata" -#: whatsnew/3.9.rst:597 +#: whatsnew/3.9.rst:700 msgid "" "The Unicode database has been updated to version 13.0.0. (:issue:`39926`)." msgstr "" -#: whatsnew/3.9.rst:600 +#: whatsnew/3.9.rst:703 msgid "venv" msgstr "venv" -#: whatsnew/3.9.rst:602 +#: whatsnew/3.9.rst:705 msgid "" "The activation scripts provided by :mod:`venv` now all specify their prompt " "customization consistently by always using the value specified by " @@ -932,11 +1102,11 @@ msgid "" "Cannon in :issue:`37663`.)" msgstr "" -#: whatsnew/3.9.rst:610 +#: whatsnew/3.9.rst:713 msgid "xml" msgstr "" -#: whatsnew/3.9.rst:612 +#: whatsnew/3.9.rst:715 msgid "" "White space characters within attributes are now preserved when serializing :" "mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer normalized to " @@ -944,61 +1114,104 @@ msgid "" "2.11 of XML spec. (Contributed by Mefistotelis in :issue:`39011`.)" msgstr "" -#: whatsnew/3.9.rst:620 +#: whatsnew/3.9.rst:723 msgid "Optimizations" msgstr "" -#: whatsnew/3.9.rst:622 +#: whatsnew/3.9.rst:725 msgid "" "Optimized the idiom for assignment a temporary variable in comprehensions. " "Now ``for y in [expr]`` in comprehensions is as fast as a simple assignment " "``y = expr``. For example:" msgstr "" -#: whatsnew/3.9.rst:626 +#: whatsnew/3.9.rst:729 msgid "sums = [s for s in [0] for x in data for s in [s + x]]" msgstr "" -#: whatsnew/3.9.rst:628 +#: whatsnew/3.9.rst:731 msgid "" "Unlike the ``:=`` operator this idiom does not leak a variable to the outer " "scope." msgstr "" -#: whatsnew/3.9.rst:631 +#: whatsnew/3.9.rst:734 msgid "(Contributed by Serhiy Storchaka in :issue:`32856`.)" msgstr "" -#: whatsnew/3.9.rst:633 +#: whatsnew/3.9.rst:736 msgid "" -"Optimize signal handling in multithreaded applications. If a thread " +"Optimized signal handling in multithreaded applications. If a thread " "different than the main thread gets a signal, the bytecode evaluation loop " "is no longer interrupted at each bytecode instruction to check for pending " "signals which cannot be handled. Only the main thread of the main " "interpreter can handle signals." msgstr "" -#: whatsnew/3.9.rst:639 +#: whatsnew/3.9.rst:742 msgid "" "Previously, the bytecode evaluation loop was interrupted at each instruction " "until the main thread handles signals. (Contributed by Victor Stinner in :" "issue:`40010`.)" msgstr "" -#: whatsnew/3.9.rst:643 +#: whatsnew/3.9.rst:746 msgid "" -"Optimize the :mod:`subprocess` module on FreeBSD using ``closefrom()``. " +"Optimized the :mod:`subprocess` module on FreeBSD using ``closefrom()``. " "(Contributed by Ed Maste, Conrad Meyer, Kyle Evans, Kubilay Kocak and Victor " "Stinner in :issue:`38061`.)" msgstr "" -#: whatsnew/3.9.rst:647 +#: whatsnew/3.9.rst:750 +msgid "" +":c:func:`PyLong_FromDouble` is now up to 1.87x faster for values that fit " +"into :c:type:`long`. (Contributed by Sergey Fedoseev in :issue:`37986`.)" +msgstr "" + +#: whatsnew/3.9.rst:754 +msgid "" +"A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" +"class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" +"pep:`590` vectorcall protocol. (Contributed by Dong-hee Na, Mark Shannon, " +"Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" +msgstr "" + +#: whatsnew/3.9.rst:759 +msgid "" +"Optimized :func:`~set.difference_update` for the case when the other set is " +"much larger than the base set. (Suggested by Evgeny Kapun with code " +"contributed by Michele Orrù in :issue:`8425`.)" +msgstr "" + +#: whatsnew/3.9.rst:763 +msgid "" +"Python's small object allocator (``obmalloc.c``) now allows (no more than) " +"one empty arena to remain available for immediate reuse, without returning " +"it to the OS. This prevents thrashing in simple loops where an arena could " +"be created and destroyed anew on each iteration. (Contributed by Tim Peters " +"in :issue:`37257`.)" +msgstr "" + +#: whatsnew/3.9.rst:769 +msgid "" +":term:`floor division` of float operation now has a better performance. Also " +"the message of :exc:`ZeroDivisionError` for this operation is updated. " +"(Contributed by Dong-hee Na in :issue:`39434`.)" +msgstr "" + +#: whatsnew/3.9.rst:773 +msgid "" +"Decoding short ASCII strings with UTF-8 and ascii codecs is now about 15% " +"faster. (Contributed by Inada Naoki in :issue:`37348`.)" +msgstr "" + +#: whatsnew/3.9.rst:776 msgid "" "Here's a summary of performance improvements from Python 3.4 through Python " "3.9:" msgstr "" -#: whatsnew/3.9.rst:694 +#: whatsnew/3.9.rst:823 msgid "" "These results were generated from the variable access benchmark script at: " "``Tools/scripts/var_access_benchmark.py``. The benchmark script displays " @@ -1009,26 +1222,18 @@ msgid "" "python.org/downloads/mac-osx/>`_." msgstr "" -#: whatsnew/3.9.rst:702 -msgid "" -"A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" -"class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" -"pep:`590` vectorcall protocol. (Contributed by Dong-hee Na, Mark Shannon, " -"Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" -msgstr "" - -#: whatsnew/3.9.rst:708 +#: whatsnew/3.9.rst:833 msgid "Deprecated" msgstr "" -#: whatsnew/3.9.rst:710 +#: whatsnew/3.9.rst:835 msgid "" "The distutils ``bdist_msi`` command is now deprecated, use ``bdist_wheel`` " "(wheel packages) instead. (Contributed by Hugo van Kemenade in :issue:" "`39586`.)" msgstr "" -#: whatsnew/3.9.rst:714 +#: whatsnew/3.9.rst:839 msgid "" "Currently :func:`math.factorial` accepts :class:`float` instances with non-" "negative integer values (like ``5.0``). It raises a :exc:`ValueError` for " @@ -1037,7 +1242,7 @@ msgid "" "Serhiy Storchaka in :issue:`37315`.)" msgstr "" -#: whatsnew/3.9.rst:720 +#: whatsnew/3.9.rst:845 msgid "" "The :mod:`parser` and :mod:`symbol` modules are deprecated and will be " "removed in future versions of Python. For the majority of use cases, users " @@ -1045,7 +1250,7 @@ msgid "" "stage, using the :mod:`ast` module." msgstr "" -#: whatsnew/3.9.rst:725 +#: whatsnew/3.9.rst:850 msgid "" "The Public C API functions :c:func:`PyParser_SimpleParseStringFlags`, :c:" "func:`PyParser_SimpleParseStringFlagsFilename`, :c:func:" @@ -1053,7 +1258,7 @@ msgid "" "and will be removed in Python 3.10 together with the old parser." msgstr "" -#: whatsnew/3.9.rst:730 +#: whatsnew/3.9.rst:855 msgid "" "Using :data:`NotImplemented` in a boolean context has been deprecated, as it " "is almost exclusively the result of incorrect rich comparator " @@ -1061,7 +1266,7 @@ msgid "" "Python. (Contributed by Josh Rosenberg in :issue:`35712`.)" msgstr "" -#: whatsnew/3.9.rst:736 +#: whatsnew/3.9.rst:861 msgid "" "The :mod:`random` module currently accepts any hashable type as a possible " "seed value. Unfortunately, some of those types are not guaranteed to have a " @@ -1070,7 +1275,7 @@ msgid "" "`bytes`, and :class:`bytearray`." msgstr "" -#: whatsnew/3.9.rst:742 +#: whatsnew/3.9.rst:867 msgid "" "Opening the :class:`~gzip.GzipFile` file for writing without specifying the " "*mode* argument is deprecated. In future Python versions it will always be " @@ -1079,39 +1284,39 @@ msgid "" "issue:`28286`.)" msgstr "" -#: whatsnew/3.9.rst:748 +#: whatsnew/3.9.rst:873 msgid "" "Deprecated the ``split()`` method of :class:`_tkinter.TkappType` in favour " "of the ``splitlist()`` method which has more consistent and predicable " "behavior. (Contributed by Serhiy Storchaka in :issue:`38371`.)" msgstr "" -#: whatsnew/3.9.rst:753 +#: whatsnew/3.9.rst:878 msgid "" "The explicit passing of coroutine objects to :func:`asyncio.wait` has been " "deprecated and will be removed in version 3.11. (Contributed by Yury " "Selivanov and Kyle Stanley in :issue:`34790`.)" msgstr "" -#: whatsnew/3.9.rst:757 +#: whatsnew/3.9.rst:882 msgid "" "binhex4 and hexbin4 standards are now deprecated. The :mod:`binhex` module " "and the following :mod:`binascii` functions are now deprecated:" msgstr "" -#: whatsnew/3.9.rst:760 +#: whatsnew/3.9.rst:885 msgid ":func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`" msgstr "" -#: whatsnew/3.9.rst:761 +#: whatsnew/3.9.rst:886 msgid ":func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`" msgstr "" -#: whatsnew/3.9.rst:763 +#: whatsnew/3.9.rst:888 msgid "(Contributed by Victor Stinner in :issue:`39353`.)" msgstr "" -#: whatsnew/3.9.rst:765 +#: whatsnew/3.9.rst:890 msgid "" ":mod:`ast` classes ``slice``, ``Index`` and ``ExtSlice`` are considered " "deprecated and will be removed in future Python versions. ``value`` itself " @@ -1120,7 +1325,7 @@ msgid "" "Storchaka in :issue:`32892`.)" msgstr "" -#: whatsnew/3.9.rst:771 +#: whatsnew/3.9.rst:896 msgid "" ":mod:`ast` classes ``Suite``, ``Param``, ``AugLoad`` and ``AugStore`` are " "considered deprecated and will be removed in future Python versions. They " @@ -1129,7 +1334,7 @@ msgid "" "`39969` and Serhiy Storchaka in :issue:`39988`.)" msgstr "" -#: whatsnew/3.9.rst:778 +#: whatsnew/3.9.rst:903 msgid "" "The :c:func:`PyEval_InitThreads` and :c:func:`PyEval_ThreadsInitialized` " "functions are now deprecated and will be removed in Python 3.11. Calling :c:" @@ -1138,13 +1343,20 @@ msgid "" "Stinner in :issue:`39877`.)" msgstr "" -#: whatsnew/3.9.rst:784 +#: whatsnew/3.9.rst:909 msgid "" "Passing ``None`` as the first argument to the :func:`shlex.split` function " "has been deprecated. (Contributed by Zackery Spytz in :issue:`33262`.)" msgstr "" -#: whatsnew/3.9.rst:787 +#: whatsnew/3.9.rst:912 +msgid "" +":func:`smtpd.MailmanProxy` is now deprecated as it is unusable without an " +"external module, ``mailman``. (Contributed by Samuel Colvin in :issue:" +"`35800`.)" +msgstr "" + +#: whatsnew/3.9.rst:915 msgid "" "The :mod:`lib2to3` module now emits a :exc:`PendingDeprecationWarning`. " "Python 3.9 switched to a PEG parser (see :pep:`617`), and Python 3.10 may " @@ -1154,22 +1366,22 @@ msgid "" "`parso`_. (Contributed by Carl Meyer in :issue:`40360`.)" msgstr "" -#: whatsnew/3.9.rst:795 +#: whatsnew/3.9.rst:923 msgid "" "The *random* parameter of :func:`random.shuffle` has been deprecated. " "(Contributed by Raymond Hettinger in :issue:`40465`)" msgstr "" -#: whatsnew/3.9.rst:1148 +#: whatsnew/3.9.rst:1372 msgid "Removed" msgstr "" -#: whatsnew/3.9.rst:804 +#: whatsnew/3.9.rst:934 msgid "" "The erroneous version at :data:`unittest.mock.__version__` has been removed." msgstr "" -#: whatsnew/3.9.rst:806 +#: whatsnew/3.9.rst:936 msgid "" ":class:`nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been " "removed. These methods are deprecated since Python 3.3. Generally, these " @@ -1179,14 +1391,14 @@ msgid "" "`39366`.)" msgstr "" -#: whatsnew/3.9.rst:813 +#: whatsnew/3.9.rst:943 msgid "" ":class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been " "removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated " "since Python 3.2. (Contributed by Victor Stinner in :issue:`38916`.)" msgstr "" -#: whatsnew/3.9.rst:818 +#: whatsnew/3.9.rst:948 msgid "" "The undocumented ``sys.callstats()`` function has been removed. Since Python " "3.7, it was deprecated and always returned :const:`None`. It required a " @@ -1194,7 +1406,7 @@ msgid "" "3.7. (Contributed by Victor Stinner in :issue:`37414`.)" msgstr "" -#: whatsnew/3.9.rst:823 +#: whatsnew/3.9.rst:953 msgid "" "The ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions have " "been removed. They were deprecated since Python 3.2. Use :func:`sys." @@ -1202,21 +1414,21 @@ msgid "" "by Victor Stinner in :issue:`37392`.)" msgstr "" -#: whatsnew/3.9.rst:828 +#: whatsnew/3.9.rst:958 msgid "" "The C function ``PyImport_Cleanup()`` has been removed. It was documented " "as: \"Empty the module table. For internal use only.\" (Contributed by " "Victor Stinner in :issue:`36710`.)" msgstr "" -#: whatsnew/3.9.rst:832 +#: whatsnew/3.9.rst:962 msgid "" "``_dummy_thread`` and ``dummy_threading`` modules have been removed. These " "modules were deprecated since Python 3.7 which requires threading support. " "(Contributed by Victor Stinner in :issue:`37312`.)" msgstr "" -#: whatsnew/3.9.rst:836 +#: whatsnew/3.9.rst:966 msgid "" "``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to " "``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open()` have " @@ -1224,14 +1436,14 @@ msgid "" "Stinner in :issue:`37320`.)" msgstr "" -#: whatsnew/3.9.rst:841 +#: whatsnew/3.9.rst:971 msgid "" "The :meth:`~threading.Thread.isAlive()` method of :class:`threading.Thread` " "has been removed. It was deprecated since Python 3.8. Use :meth:`~threading." "Thread.is_alive()` instead. (Contributed by Dong-hee Na in :issue:`37804`.)" msgstr "" -#: whatsnew/3.9.rst:846 +#: whatsnew/3.9.rst:976 msgid "" "Methods ``getchildren()`` and ``getiterator()`` of classes :class:`~xml." "etree.ElementTree.ElementTree` and :class:`~xml.etree.ElementTree.Element` " @@ -1241,7 +1453,7 @@ msgid "" "getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" msgstr "" -#: whatsnew/3.9.rst:854 +#: whatsnew/3.9.rst:984 msgid "" "The old :mod:`plistlib` API has been removed, it was deprecated since Python " "3.4. Use the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" @@ -1250,7 +1462,7 @@ msgid "" "are always used instead. (Contributed by Jon Janzen in :issue:`36409`.)" msgstr "" -#: whatsnew/3.9.rst:860 +#: whatsnew/3.9.rst:990 msgid "" "The C function ``PyGen_NeedsFinalizing`` has been removed. It was not " "documented, tested, or used anywhere within CPython after the implementation " @@ -1258,7 +1470,7 @@ msgid "" "in :issue:`15088`)" msgstr "" -#: whatsnew/3.9.rst:865 +#: whatsnew/3.9.rst:995 msgid "" "``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated " "since Python 3.1, have been removed: use :func:`base64.encodebytes` and :" @@ -1266,14 +1478,14 @@ msgid "" "`39351`.)" msgstr "" -#: whatsnew/3.9.rst:870 +#: whatsnew/3.9.rst:1000 msgid "" "``fractions.gcd()`` function has been removed, it was deprecated since " "Python 3.5 (:issue:`22486`): use :func:`math.gcd` instead. (Contributed by " "Victor Stinner in :issue:`39350`.)" msgstr "" -#: whatsnew/3.9.rst:874 +#: whatsnew/3.9.rst:1004 msgid "" "The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since " "Python 3.0, it was ignored and using it emitted a :exc:`DeprecationWarning`. " @@ -1281,7 +1493,7 @@ msgid "" "Victor Stinner in :issue:`39357`.)" msgstr "" -#: whatsnew/3.9.rst:879 +#: whatsnew/3.9.rst:1009 msgid "" "The *encoding* parameter of :func:`json.loads` has been removed. As of " "Python 3.1, it was deprecated and ignored; using it has emitted a :exc:" @@ -1289,7 +1501,7 @@ msgid "" "`39377`)" msgstr "" -#: whatsnew/3.9.rst:884 +#: whatsnew/3.9.rst:1014 msgid "" "``with (await asyncio.lock):`` and ``with (yield from asyncio.lock):`` " "statements are not longer supported, use ``async with lock`` instead. The " @@ -1297,7 +1509,7 @@ msgid "" "(Contributed by Andrew Svetlov in :issue:`34793`.)" msgstr "" -#: whatsnew/3.9.rst:889 +#: whatsnew/3.9.rst:1019 msgid "" "The :func:`sys.getcounts` function, the ``-X showalloccount`` command line " "option and the ``show_alloc_count`` field of the C structure :c:type:" @@ -1306,7 +1518,7 @@ msgid "" "`39489`.)" msgstr "" -#: whatsnew/3.9.rst:895 +#: whatsnew/3.9.rst:1025 msgid "" "The ``_field_types`` attribute of the :class:`typing.NamedTuple` class has " "been removed. It was deprecated since Python 3.8. Use the " @@ -1314,14 +1526,14 @@ msgid "" "issue:`40182`.)" msgstr "" -#: whatsnew/3.9.rst:900 +#: whatsnew/3.9.rst:1030 msgid "" "The :meth:`symtable.SymbolTable.has_exec` method has been removed. It was " "deprecated since 2006, and only returning ``False`` when it's called. " "(Contributed by Batuhan Taskaya in :issue:`40208`)" msgstr "" -#: whatsnew/3.9.rst:904 +#: whatsnew/3.9.rst:1034 msgid "" "The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " "have been removed. They were deprecated since Python 3.7 and you can use :" @@ -1329,7 +1541,7 @@ msgid "" "(Contributed by Rémi Lapeyre in :issue:`40967`)" msgstr "" -#: whatsnew/3.9.rst:909 +#: whatsnew/3.9.rst:1039 msgid "" "The ``unescape()`` method in the :class:`html.parser.HTMLParser` class has " "been removed (it was deprecated since Python 3.4). :func:`html.unescape` " @@ -1337,21 +1549,21 @@ msgid "" "unicode characters." msgstr "" -#: whatsnew/3.9.rst:1104 +#: whatsnew/3.9.rst:1294 msgid "Porting to Python 3.9" msgstr "" -#: whatsnew/3.9.rst:918 +#: whatsnew/3.9.rst:1048 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.9.rst:923 +#: whatsnew/3.9.rst:1053 msgid "Changes in the Python API" msgstr "" -#: whatsnew/3.9.rst:925 +#: whatsnew/3.9.rst:1055 msgid "" ":func:`__import__` and :func:`importlib.util.resolve_name` now raise :exc:" "`ImportError` where it previously raised :exc:`ValueError`. Callers catching " @@ -1359,26 +1571,26 @@ msgid "" "versions will need to catch both using ``except (ImportError, ValueError):``." msgstr "" -#: whatsnew/3.9.rst:930 +#: whatsnew/3.9.rst:1060 msgid "" "The :mod:`venv` activation scripts no longer special-case when " "``__VENV_PROMPT__`` is set to ``\"\"``." msgstr "" -#: whatsnew/3.9.rst:933 +#: whatsnew/3.9.rst:1063 msgid "" "The :meth:`select.epoll.unregister` method no longer ignores the :data:" "`~errno.EBADF` error. (Contributed by Victor Stinner in :issue:`39239`.)" msgstr "" -#: whatsnew/3.9.rst:937 +#: whatsnew/3.9.rst:1067 msgid "" "The *compresslevel* parameter of :class:`bz2.BZ2File` became keyword-only, " "since the *buffering* parameter has been removed. (Contributed by Victor " "Stinner in :issue:`39357`.)" msgstr "" -#: whatsnew/3.9.rst:941 +#: whatsnew/3.9.rst:1071 msgid "" "Simplified AST for subscription. Simple indices will be represented by their " "value, extended slices will be represented as tuples. ``Index(value)`` will " @@ -1386,21 +1598,21 @@ msgid "" "Load())``. (Contributed by Serhiy Storchaka in :issue:`34822`.)" msgstr "" -#: whatsnew/3.9.rst:947 +#: whatsnew/3.9.rst:1077 msgid "" "The :mod:`importlib` module now ignores the :envvar:`PYTHONCASEOK` " "environment variable when the :option:`-E` or :option:`-I` command line " "options are being used." msgstr "" -#: whatsnew/3.9.rst:951 +#: whatsnew/3.9.rst:1081 msgid "" "The *encoding* parameter has been added to the classes :class:`ftplib.FTP` " "and :class:`ftplib.FTP_TLS` as a keyword-only parameter, and the default " "encoding is changed from Latin-1 to UTF-8 to follow :rfc:`2640`." msgstr "" -#: whatsnew/3.9.rst:955 +#: whatsnew/3.9.rst:1085 msgid "" ":meth:`asyncio.loop.shutdown_default_executor` has been added to :class:" "`~asyncio.AbstractEventLoop`, meaning alternative event loops that inherit " @@ -1408,7 +1620,7 @@ msgid "" "issue:`34037`.)" msgstr "" -#: whatsnew/3.9.rst:960 +#: whatsnew/3.9.rst:1090 msgid "" "The constant values of future flags in the :mod:`__future__` module is " "updated in order to prevent collision with compiler flags. Previously " @@ -1416,7 +1628,7 @@ msgid "" "(Contributed by Batuhan Taskaya in :issue:`39562`)" msgstr "" -#: whatsnew/3.9.rst:965 +#: whatsnew/3.9.rst:1095 msgid "" "``array('u')`` now uses ``wchar_t`` as C type instead of ``Py_UNICODE``. " "This change doesn't affect to its behavior because ``Py_UNICODE`` is alias " @@ -1424,11 +1636,30 @@ msgid "" "`34538`.)" msgstr "" -#: whatsnew/3.9.rst:972 +#: whatsnew/3.9.rst:1100 +msgid "" +"The :func:`logging.getLogger` API now returns the root logger when passed " +"the name ``'root'``, whereas previously it returned a non-root logger named " +"``'root'``. This could affect cases where user code explicitly wants a non-" +"root logger named ``'root'``, or instantiates a logger using ``logging." +"getLogger(__name__)`` in some top-level module called ``'root.py'``. " +"(Contributed by Vinay Sajip in :issue:`37742`.)" +msgstr "" + +#: whatsnew/3.9.rst:1107 +msgid "" +"Division handling of :class:`~pathlib.PurePath` now returns " +"``NotImplemented`` instead of raising a :exc:`TypeError` when passed " +"something other than an instance of ``str`` or :class:`~pathlib.PurePath`. " +"This allows creating compatible classes that don't inherit from those " +"mentioned types. (Contributed by Roger Aiudi in :issue:`34775`)." +msgstr "" + +#: whatsnew/3.9.rst:1115 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.9.rst:974 +#: whatsnew/3.9.rst:1117 msgid "" "Instances of heap-allocated types (such as those created with :c:func:" "`PyType_FromSpec` and similar APIs) hold a reference to their type object " @@ -1439,30 +1670,38 @@ msgid "" "visit the object's type." msgstr "" -#: whatsnew/3.9.rst:995 +#: whatsnew/3.9.rst:1138 msgid "" "If your traverse function delegates to ``tp_traverse`` of its base class (or " "another type), ensure that ``Py_TYPE(self)`` is visited only once. Note that " "only heap types are expected to visit the type in ``tp_traverse``." msgstr "" -#: whatsnew/3.9.rst:999 +#: whatsnew/3.9.rst:1142 msgid "For example, if your ``tp_traverse`` function includes:" msgstr "" -#: whatsnew/3.9.rst:1005 +#: whatsnew/3.9.rst:1148 msgid "then add:" msgstr "" -#: whatsnew/3.9.rst:1018 +#: whatsnew/3.9.rst:1161 msgid "(See :issue:`35810` and :issue:`40217` for more information.)" msgstr "" -#: whatsnew/3.9.rst:1021 +#: whatsnew/3.9.rst:1163 +msgid "" +"The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, " +"``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. " +"Use :c:func:`PyObject_Call` and its variants instead. (See more details in :" +"issue:`29548`.)" +msgstr "" + +#: whatsnew/3.9.rst:1169 msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.9.rst:1023 +#: whatsnew/3.9.rst:1171 msgid "" "The :opcode:`LOAD_ASSERTION_ERROR` opcode was added for handling the :" "keyword:`assert` statement. Previously, the assert statement would not work " @@ -1470,81 +1709,146 @@ msgid "" "(Contributed by Zackery Spytz in :issue:`34880`.)" msgstr "" -#: whatsnew/3.9.rst:1030 +#: whatsnew/3.9.rst:1176 +msgid "" +"The :opcode:`COMPARE_OP` opcode was split into four distinct instructions:" +msgstr "" + +#: whatsnew/3.9.rst:1178 +msgid "``COMPARE_OP`` for rich comparisons" +msgstr "" + +#: whatsnew/3.9.rst:1179 +msgid "``IS_OP`` for 'is' and 'is not' tests" +msgstr "" + +#: whatsnew/3.9.rst:1180 +msgid "``CONTAINS_OP`` for 'in' and 'is not' tests" +msgstr "" + +#: whatsnew/3.9.rst:1181 +msgid "" +"``JUMP_IF_NOT_EXC_MATCH`` for checking exceptions in 'try-except' statements." +msgstr "" + +#: whatsnew/3.9.rst:1184 +msgid "(Contributed by Mark Shannon in :issue:`39156`.)" +msgstr "" + +#: whatsnew/3.9.rst:1188 msgid "Build Changes" msgstr "" -#: whatsnew/3.9.rst:1032 +#: whatsnew/3.9.rst:1190 msgid "" -"Add ``--with-platlibdir`` option to the ``configure`` script: name of the " +"Added ``--with-platlibdir`` option to the ``configure`` script: name of the " "platform-specific library directory, stored in the new :attr:`sys." "platlibdir` attribute. See :attr:`sys.platlibdir` attribute for more " "information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " "and Victor Stinner in :issue:`1294959`.)" msgstr "" -#: whatsnew/3.9.rst:1038 +#: whatsnew/3.9.rst:1196 msgid "" "The ``COUNT_ALLOCS`` special build macro has been removed. (Contributed by " "Victor Stinner in :issue:`39489`.)" msgstr "" -#: whatsnew/3.9.rst:1041 +#: whatsnew/3.9.rst:1199 msgid "" "On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` " "functions are now required to build Python. (Contributed by Victor Stinner " "in :issue:`39395`.)" msgstr "" -#: whatsnew/3.9.rst:1047 +#: whatsnew/3.9.rst:1203 +msgid "" +"On non-Windows platforms, creating ``bdist_wininst`` installers is now " +"officially unsupported. (See :issue:`10945` for more details.)" +msgstr "" + +#: whatsnew/3.9.rst:1206 +msgid "" +"When building Python on macOS from source, ``_tkinter`` now links with non-" +"system Tcl and Tk frameworks if they are installed in ``/Library/" +"Frameworks``, as had been the case on older releases of macOS. If a macOS " +"SDK is explicitly configured, by using ``--enable-universalsdk=`` or ``-" +"isysroot``, only the SDK itself is searched. The default behavior can still " +"be overridden with ``--with-tcltk-includes`` and ``--with-tcltk-libs``. " +"(Contributed by Ned Deily in :issue:`34956`.)" +msgstr "" + +#: whatsnew/3.9.rst:1215 +msgid "" +"Python can now be built for Windows 10 ARM64. (Contributed by Steve Dower " +"in :issue:`33125`.)" +msgstr "" + +#: whatsnew/3.9.rst:1218 +msgid "" +"Some individual tests are now skipped when ``--pgo`` is used. The tests in " +"question increased the PGO task time significantly and likely didn't help " +"improve optimization of the final executable. This speeds up the task by a " +"factor of about 15x. Running the full unit test suite is slow. This change " +"may result in a slightly less optimized build since not as many code " +"branches will be executed. If you are willing to wait for the much slower " +"build, the old behavior can be restored using ``./configure [..] " +"PROFILE_TASK=\"-m test --pgo-extended\"``. We make no guarantees as to " +"which PGO task set produces a faster build. Users who care should run their " +"own relevant benchmarks as results can depend on the environment, workload, " +"and compiler tool chain. (See :issue:`36044` and :issue:`37707` for more " +"details.)" +msgstr "" + +#: whatsnew/3.9.rst:1233 msgid "C API Changes" msgstr "" -#: whatsnew/3.9.rst:1052 +#: whatsnew/3.9.rst:1238 msgid "" -":pep:`573`: Add :c:func:`PyType_FromModuleAndSpec` to associate a module " +":pep:`573`: Added :c:func:`PyType_FromModuleAndSpec` to associate a module " "with a class; :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` " "to retrieve the module and its state; and :c:data:`PyCMethod` and :c:data:" "`METH_METHOD` to allow a method to access the class it was defined in. " "(Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" msgstr "" -#: whatsnew/3.9.rst:1059 +#: whatsnew/3.9.rst:1245 msgid "" -"Add :c:func:`PyFrame_GetCode` function: get a frame code. Add :c:func:" +"Added :c:func:`PyFrame_GetCode` function: get a frame code. Added :c:func:" "`PyFrame_GetBack` function: get the frame next outer frame. (Contributed by " "Victor Stinner in :issue:`40421`.)" msgstr "" -#: whatsnew/3.9.rst:1063 +#: whatsnew/3.9.rst:1249 msgid "" -"Add :c:func:`PyFrame_GetLineNumber` to the limited C API. (Contributed by " +"Added :c:func:`PyFrame_GetLineNumber` to the limited C API. (Contributed by " "Victor Stinner in :issue:`40421`.)" msgstr "" -#: whatsnew/3.9.rst:1066 +#: whatsnew/3.9.rst:1252 msgid "" -"Add :c:func:`PyThreadState_GetInterpreter` and :c:func:" -"`PyInterpreterState_Get` functions to get the interpreter. Add :c:func:" +"Added :c:func:`PyThreadState_GetInterpreter` and :c:func:" +"`PyInterpreterState_Get` functions to get the interpreter. Added :c:func:" "`PyThreadState_GetFrame` function to get the current frame of a Python " -"thread state. Add :c:func:`PyThreadState_GetID` function: get the unique " +"thread state. Added :c:func:`PyThreadState_GetID` function: get the unique " "identifier of a Python thread state. (Contributed by Victor Stinner in :" "issue:`39947`.)" msgstr "" -#: whatsnew/3.9.rst:1074 +#: whatsnew/3.9.rst:1260 msgid "" -"Add a new public :c:func:`PyObject_CallNoArgs` function to the C API, which " -"calls a callable Python object without any arguments. It is the most " +"Added a new public :c:func:`PyObject_CallNoArgs` function to the C API, " +"which calls a callable Python object without any arguments. It is the most " "efficient way to call a callable Python object without any argument. " "(Contributed by Victor Stinner in :issue:`37194`.)" msgstr "" -#: whatsnew/3.9.rst:1159 +#: whatsnew/3.9.rst:1383 msgid "Changes in the limited C API (if ``Py_LIMITED_API`` macro is defined):" msgstr "" -#: whatsnew/3.9.rst:1081 +#: whatsnew/3.9.rst:1267 msgid "" "Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` " "as regular functions for the limited API. Previously, there were defined as " @@ -1553,39 +1857,46 @@ msgid "" "the limited C API)." msgstr "" -#: whatsnew/3.9.rst:1087 +#: whatsnew/3.9.rst:1273 msgid "" "``PyObject_INIT()`` and ``PyObject_INIT_VAR()`` become regular \"opaque\" " "function to hide implementation details." msgstr "" -#: whatsnew/3.9.rst:1186 +#: whatsnew/3.9.rst:1410 msgid "(Contributed by Victor Stinner in :issue:`38644` and :issue:`39542`.)" msgstr "" -#: whatsnew/3.9.rst:1092 +#: whatsnew/3.9.rst:1278 msgid "" "The :c:func:`PyModule_AddType` function is added to help adding a type to a " "module. (Contributed by Dong-hee Na in :issue:`40024`.)" msgstr "" -#: whatsnew/3.9.rst:1096 +#: whatsnew/3.9.rst:1282 msgid "" -"Add the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" +"Added the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" "`PyObject_GC_IsFinalized` to the public API to allow to query if Python " "objects are being currently tracked or have been already finalized by the " -"garbage collector respectively. (Contributed by Pablo Galindo in :issue:" -"`40241`.)" +"garbage collector respectively. (Contributed by Pablo Galindo Salgado in :" +"issue:`40241`.)" msgstr "" -#: whatsnew/3.9.rst:1106 +#: whatsnew/3.9.rst:1288 +msgid "" +"Added :c:func:`_PyObject_FunctionStr` to get a user-friendly string " +"representation of a function-like object. (Patch by Jeroen Demeyer in :issue:" +"`37645`.)" +msgstr "" + +#: whatsnew/3.9.rst:1296 msgid "" "``PyInterpreterState.eval_frame`` (:pep:`523`) now requires a new mandatory " "*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner in :" "issue:`38500`.)" msgstr "" -#: whatsnew/3.9.rst:1110 +#: whatsnew/3.9.rst:1300 msgid "" "Extension modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:" "`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions of :c:" @@ -1597,12 +1908,12 @@ msgid "" "`PyModule_GetState`) is ``NULL``." msgstr "" -#: whatsnew/3.9.rst:1119 +#: whatsnew/3.9.rst:1309 msgid "" "Extension modules without module state (``m_size <= 0``) are not affected." msgstr "" -#: whatsnew/3.9.rst:1121 +#: whatsnew/3.9.rst:1311 msgid "" "If :c:func:`Py_AddPendingCall` is called in a subinterpreter, the function " "is now scheduled to be called from the subinterpreter, rather than being " @@ -1610,7 +1921,7 @@ msgid "" "of scheduled calls. (Contributed by Victor Stinner in :issue:`39984`.)" msgstr "" -#: whatsnew/3.9.rst:1127 +#: whatsnew/3.9.rst:1317 msgid "" "The Windows registry is no longer used to initialize :data:`sys.path` when " "the ``-E`` option is used (if :c:member:`PyConfig.use_environment` is set to " @@ -1618,21 +1929,21 @@ msgid "" "by Zackery Spytz in :issue:`8901`.)" msgstr "" -#: whatsnew/3.9.rst:1132 +#: whatsnew/3.9.rst:1322 msgid "" "The global variable :c:data:`PyStructSequence_UnnamedField` is now a " "constant and refers to a constant string. (Contributed by Serhiy Storchaka " "in :issue:`38650`.)" msgstr "" -#: whatsnew/3.9.rst:1136 +#: whatsnew/3.9.rst:1326 msgid "" "The :c:type:`PyGC_Head` structure is now opaque. It is only defined in the " "internal C API (``pycore_gc.h``). (Contributed by Victor Stinner in :issue:" "`40241`.)" msgstr "" -#: whatsnew/3.9.rst:1140 +#: whatsnew/3.9.rst:1330 msgid "" "The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:" "func:`PyUnicode_FromUnicode`, :c:func:`PyUnicode_AsUnicode`, " @@ -1641,14 +1952,76 @@ msgid "" "Python 3.3. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" -#: whatsnew/3.9.rst:1150 +#: whatsnew/3.9.rst:1337 msgid "" -"Exclude ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " +"The :c:func:`Py_FatalError` function is replaced with a macro which logs " +"automatically the name of the current function, unless the " +"``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner in :" +"issue:`39882`.)" +msgstr "" + +#: whatsnew/3.9.rst:1342 +msgid "" +"The vectorcall protocol now requires that the caller passes only strings as " +"keyword names. (See :issue:`37540` for more information.)" +msgstr "" + +#: whatsnew/3.9.rst:1345 +msgid "" +"Implementation details of a number of macros and functions are now hidden:" +msgstr "" + +#: whatsnew/3.9.rst:1347 +msgid ":c:func:`PyObject_IS_GC` macro was converted to a function." +msgstr "" + +#: whatsnew/3.9.rst:1349 +msgid "" +"The :c:func:`PyObject_NEW` macro becomes an alias to the :c:func:" +"`PyObject_New` macro, and the :c:func:`PyObject_NEW_VAR` macro becomes an " +"alias to the :c:func:`PyObject_NewVar` macro. They no longer access directly " +"the :c:member:`PyTypeObject.tp_basicsize` member." +msgstr "" + +#: whatsnew/3.9.rst:1354 +msgid "" +":c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags`. " +"Previously, it accessed directly the :c:member:`PyTypeObject.tp_flags` " +"member when the limited C API was not used." +msgstr "" + +#: whatsnew/3.9.rst:1358 +msgid "" +":c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function: " +"the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset` " +"member." +msgstr "" + +#: whatsnew/3.9.rst:1362 +msgid "" +":c:func:`PyObject_CheckBuffer` macro was converted to a function: the macro " +"accessed directly the :c:member:`PyTypeObject.tp_as_buffer` member." +msgstr "" + +#: whatsnew/3.9.rst:1365 +msgid "" +":c:func:`PyIndex_Check` is now always declared as an opaque function to hide " +"implementation details: removed the ``PyIndex_Check()`` macro. The macro " +"accessed directly the :c:member:`PyTypeObject.tp_as_number` member." +msgstr "" + +#: whatsnew/3.9.rst:1369 +msgid "(See :issue:`40170` for more details.)" +msgstr "" + +#: whatsnew/3.9.rst:1374 +msgid "" +"Excluded ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " "``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner in :issue:" "`38835`.)" msgstr "" -#: whatsnew/3.9.rst:1154 +#: whatsnew/3.9.rst:1378 msgid "" "The ``tp_print`` slot of :ref:`PyTypeObject ` has been " "removed. It was used for printing objects to files in Python 2.7 and before. " @@ -1656,157 +2029,236 @@ msgid "" "Demeyer in :issue:`36974`.)" msgstr "" -#: whatsnew/3.9.rst:1161 -msgid "Exclude the following functions from the limited C API:" +#: whatsnew/3.9.rst:1385 +msgid "Excluded the following functions from the limited C API:" msgstr "" -#: whatsnew/3.9.rst:1163 +#: whatsnew/3.9.rst:1387 msgid "" "``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye in :issue:" "`37878`.)" msgstr "" -#: whatsnew/3.9.rst:1165 +#: whatsnew/3.9.rst:1389 msgid "``_Py_CheckRecursionLimit``" msgstr "" -#: whatsnew/3.9.rst:1166 +#: whatsnew/3.9.rst:1390 msgid "``_Py_NewReference()``" msgstr "" -#: whatsnew/3.9.rst:1167 +#: whatsnew/3.9.rst:1391 msgid "``_Py_ForgetReference()``" msgstr "" -#: whatsnew/3.9.rst:1168 +#: whatsnew/3.9.rst:1392 msgid "``_PyTraceMalloc_NewReference()``" msgstr "" -#: whatsnew/3.9.rst:1169 +#: whatsnew/3.9.rst:1393 msgid "``_Py_GetRefTotal()``" msgstr "" -#: whatsnew/3.9.rst:1170 +#: whatsnew/3.9.rst:1394 msgid "The trashcan mechanism which never worked in the limited C API." msgstr "" -#: whatsnew/3.9.rst:1171 +#: whatsnew/3.9.rst:1395 msgid "``PyTrash_UNWIND_LEVEL``" msgstr "" -#: whatsnew/3.9.rst:1172 +#: whatsnew/3.9.rst:1396 msgid "``Py_TRASHCAN_BEGIN_CONDITION``" msgstr "" -#: whatsnew/3.9.rst:1173 +#: whatsnew/3.9.rst:1397 msgid "``Py_TRASHCAN_BEGIN``" msgstr "" -#: whatsnew/3.9.rst:1174 +#: whatsnew/3.9.rst:1398 msgid "``Py_TRASHCAN_END``" msgstr "" -#: whatsnew/3.9.rst:1175 +#: whatsnew/3.9.rst:1399 msgid "``Py_TRASHCAN_SAFE_BEGIN``" msgstr "" -#: whatsnew/3.9.rst:1176 +#: whatsnew/3.9.rst:1400 msgid "``Py_TRASHCAN_SAFE_END``" msgstr "" -#: whatsnew/3.9.rst:1178 -msgid "Move following functions and definitions to the internal C API:" +#: whatsnew/3.9.rst:1402 +msgid "Moved following functions and definitions to the internal C API:" msgstr "" -#: whatsnew/3.9.rst:1180 +#: whatsnew/3.9.rst:1404 msgid "``_PyDebug_PrintTotalRefs()``" msgstr "" -#: whatsnew/3.9.rst:1181 +#: whatsnew/3.9.rst:1405 msgid "``_Py_PrintReferences()``" msgstr "" -#: whatsnew/3.9.rst:1182 +#: whatsnew/3.9.rst:1406 msgid "``_Py_PrintReferenceAddresses()``" msgstr "" -#: whatsnew/3.9.rst:1183 +#: whatsnew/3.9.rst:1407 msgid "``_Py_tracemalloc_config``" msgstr "" -#: whatsnew/3.9.rst:1184 +#: whatsnew/3.9.rst:1408 msgid "``_Py_AddToAllObjects()`` (specific to ``Py_TRACE_REFS`` build)" msgstr "" -#: whatsnew/3.9.rst:1188 +#: whatsnew/3.9.rst:1412 msgid "" -"Remove ``_PyRuntime.getframe`` hook and remove ``_PyThreadState_GetFrame`` " +"Removed ``_PyRuntime.getframe`` hook and removed ``_PyThreadState_GetFrame`` " "macro which was an alias to ``_PyRuntime.getframe``. They were only exposed " -"by the internal C API. Remove also ``PyThreadFrameGetter`` type. " +"by the internal C API. Removed also ``PyThreadFrameGetter`` type. " "(Contributed by Victor Stinner in :issue:`39946`.)" msgstr "" -#: whatsnew/3.9.rst:1193 +#: whatsnew/3.9.rst:1417 msgid "" -"Remove the following functions from the C API. Call :c:func:`PyGC_Collect` " +"Removed the following functions from the C API. Call :c:func:`PyGC_Collect` " "explicitly to clear all free lists. (Contributed by Inada Naoki and Victor " "Stinner in :issue:`37340`, :issue:`38896` and :issue:`40428`.)" msgstr "" -#: whatsnew/3.9.rst:1198 +#: whatsnew/3.9.rst:1422 msgid "``PyAsyncGen_ClearFreeLists()``" msgstr "" -#: whatsnew/3.9.rst:1199 +#: whatsnew/3.9.rst:1423 msgid "``PyContext_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1200 +#: whatsnew/3.9.rst:1424 msgid "``PyDict_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1201 +#: whatsnew/3.9.rst:1425 msgid "``PyFloat_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1202 +#: whatsnew/3.9.rst:1426 msgid "``PyFrame_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1203 +#: whatsnew/3.9.rst:1427 msgid "``PyList_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1204 +#: whatsnew/3.9.rst:1428 msgid "" "``PyMethod_ClearFreeList()`` and ``PyCFunction_ClearFreeList()``: the free " "lists of bound method objects have been removed." msgstr "" -#: whatsnew/3.9.rst:1206 +#: whatsnew/3.9.rst:1430 msgid "" "``PySet_ClearFreeList()``: the set free list has been removed in Python 3.4." msgstr "" -#: whatsnew/3.9.rst:1208 +#: whatsnew/3.9.rst:1432 msgid "``PyTuple_ClearFreeList()``" msgstr "" -#: whatsnew/3.9.rst:1209 +#: whatsnew/3.9.rst:1433 msgid "" "``PyUnicode_ClearFreeList()``: the Unicode free list has been removed in " "Python 3.3." msgstr "" -#: whatsnew/3.9.rst:1212 +#: whatsnew/3.9.rst:1436 msgid "" -"Remove ``_PyUnicode_ClearStaticStrings()`` function. (Contributed by Victor " +"Removed ``_PyUnicode_ClearStaticStrings()`` function. (Contributed by Victor " "Stinner in :issue:`39465`.)" msgstr "" -#: whatsnew/3.9.rst:1215 +#: whatsnew/3.9.rst:1439 msgid "" -"Remove ``Py_UNICODE_MATCH``. It has been deprecated by :pep:`393`, and " +"Removed ``Py_UNICODE_MATCH``. It has been deprecated by :pep:`393`, and " "broken since Python 3.3. The :c:func:`PyUnicode_Tailmatch` function can be " "used instead. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" + +#: whatsnew/3.9.rst:1444 +msgid "" +"Cleaned header files of interfaces defined but with no implementation. The " +"public API symbols being removed are: " +"``_PyBytes_InsertThousandsGroupingLocale``, " +"``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``, " +"``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``, " +"``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``, " +"``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``, " +"``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado in :issue:" +"`39372`.)" +msgstr "" + +#~ msgid "" +#~ "This article explains the new features in Python 3.9, compared to 3.8." +#~ msgstr "" +#~ "Cet article explique les nouvelles fonctionnalités de Python 3.9 par " +#~ "rapport à la version 3.8." + +#~ msgid "" +#~ "Prerelease users should be aware that this document is currently in draft " +#~ "form. It will be updated substantially as Python 3.9 moves towards " +#~ "release, so it's worth checking back even after reading earlier versions." +#~ msgstr "" +#~ "Les utilisateurs de la prépublication doivent savoir que ce document est " +#~ "actuellement à l'état de brouillon. Il sera mis à jour de manière " +#~ "substantielle au fur et à mesure que Python 3.9 se rapprochera de sa " +#~ "version finale, il est donc utile de le consulter même après avoir lu les " +#~ "versions précédentes." + +#~ msgid "" +#~ "When Python 2.7 was still supported, many functions were kept for " +#~ "backward compatibility with Python 2.7. With the end of Python 2.7 " +#~ "support, these backward compatibility layers have been removed, or will " +#~ "be removed soon. Most of them emitted a :exc:`DeprecationWarning` warning " +#~ "for several years. For example, using ``collections.Mapping`` instead of " +#~ "``collections.abc.Mapping`` emits a :exc:`DeprecationWarning` since " +#~ "Python 3.3, released in 2012." +#~ msgstr "" +#~ "Lorsque Python 2.7 était encore supporté, de nombreuses fonctions ont été " +#~ "conservées pour assurer la rétrocompatibilité avec Python 2.7. Avec la " +#~ "fin du support de Python 2.7, ces couches de rétrocompatibilité ont été " +#~ "supprimées, ou le seront bientôt. La plupart d'entre elles ont émis un " +#~ "avertissement :exc:`DeprecationWarning` pendant plusieurs années. Par " +#~ "exemple, l'utilisation de ``collections.Mapping`` au lieu de " +#~ "``collections.abc.Mapping`` émet un :exc:`DeprecationWarning` depuis " +#~ "Python 3.3, sorti en 2012." + +#~ msgid "" +#~ "It has been decided to keep a few backward compatibility layers for one " +#~ "last release, to give more time to Python projects maintainers to " +#~ "organize the removal of the Python 2 support and add support for Python " +#~ "3.9." +#~ msgstr "" +#~ "Il a été décidé de conserver quelques couches de compatibilité ascendante " +#~ "pour une dernière version, afin de donner plus de temps aux responsables " +#~ "des projets Python pour organiser la suppression du support de Python 2 " +#~ "et ajouter le support de Python 3.9." + +#~ msgid "" +#~ "Merge (``|``) and update (``|=``) operators have been added to the built-" +#~ "in :class:`dict` class. See :pep:`584` for a full description. " +#~ "(Contributed by Brandt Bucher in :issue:`36144`.)" +#~ msgstr "" +#~ "Les opérateurs de fusion (``|``) et de mise à jour (``|=``) ont été " +#~ "ajoutés à la classe native :class:`dict`. Voir :pep:`584` pour une " +#~ "description complète (contribution de Brandt Bucher dans :issue:`36144`)." + +#~ msgid "PEP 616: New removeprefix() and removesuffix() string methods" +#~ msgstr "" +#~ "PEP 616 : nouvelles méthodes de chaînes de caractères `removeprefix()` et " +#~ "`removesuffix()`" + +#~ msgid "PEP 585: Builtin Generic Types" +#~ msgstr "PEP 585 : Types génériques natifs" + +#~ msgid "PEP 617: New Parser" +#~ msgstr "PEP 617 : Nouvel analyseur syntaxique"