Make merge (#1655)

This commit is contained in:
Julien Palard 2021-06-04 13:47:25 +02:00 committed by GitHub
parent 4d36815d90
commit a2b66f2e71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 1664 additions and 1586 deletions

View File

@ -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: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -60,26 +60,44 @@ msgid ""
"initialized, it must call :c:func:`PyObject_GC_Track`."
msgstr ""
#: c-api/gcsupport.rst:39
#: c-api/gcsupport.rst:37
msgid ""
"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least a :"
"c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from its "
"subclass or subclasses."
msgstr ""
#: c-api/gcsupport.rst:41
msgid ""
"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call "
"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the "
"interpreter will automatically populate the :c:member:`~PyTypeObject."
"tp_flags`, :c:member:`~PyTypeObject.tp_traverse` and :c:member:"
"`~PyTypeObject.tp_clear` fields if the type inherits from a class that "
"implements the garbage collector protocol and the child class does *not* "
"include the :const:`Py_TPFLAGS_HAVE_GC` flag."
msgstr ""
#: c-api/gcsupport.rst:51
msgid ""
"Analogous to :c:func:`PyObject_New` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:45
#: c-api/gcsupport.rst:57
msgid ""
"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:51
#: c-api/gcsupport.rst:63
msgid ""
"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the "
"resized object or ``NULL`` on failure. *op* must not be tracked by the "
"collector yet."
msgstr ""
#: c-api/gcsupport.rst:57
#: c-api/gcsupport.rst:69
msgid ""
"Adds the object *op* to the set of container objects tracked by the "
"collector. The collector can run at unexpected times so objects must be "
@ -88,62 +106,62 @@ msgid ""
"usually near the end of the constructor."
msgstr ""
#: c-api/gcsupport.rst:66
#: c-api/gcsupport.rst:78
msgid ""
"Returns non-zero if the object implements the garbage collector protocol, "
"otherwise returns 0."
msgstr ""
#: c-api/gcsupport.rst:69
#: c-api/gcsupport.rst:81
msgid ""
"The object cannot be tracked by the garbage collector if this function "
"returns 0."
msgstr ""
#: c-api/gcsupport.rst:74
#: c-api/gcsupport.rst:86
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* is "
"being currently tracked by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:77
#: c-api/gcsupport.rst:89
msgid "This is analogous to the Python function :func:`gc.is_tracked`."
msgstr ""
#: c-api/gcsupport.rst:84
#: c-api/gcsupport.rst:96
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* has "
"been already finalized by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:87
#: c-api/gcsupport.rst:99
msgid "This is analogous to the Python function :func:`gc.is_finalized`."
msgstr ""
#: c-api/gcsupport.rst:91
#: c-api/gcsupport.rst:103
msgid ""
"Similarly, the deallocator for the object must conform to a similar pair of "
"rules:"
msgstr ""
#: c-api/gcsupport.rst:94
#: c-api/gcsupport.rst:106
msgid ""
"Before fields which refer to other containers are invalidated, :c:func:"
"`PyObject_GC_UnTrack` must be called."
msgstr ""
#: c-api/gcsupport.rst:97
#: c-api/gcsupport.rst:109
msgid ""
"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`."
msgstr ""
#: c-api/gcsupport.rst:102
#: c-api/gcsupport.rst:114
msgid ""
"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:"
"func:`PyObject_GC_NewVar`."
msgstr ""
#: c-api/gcsupport.rst:108
#: c-api/gcsupport.rst:120
msgid ""
"Remove the object *op* from the set of container objects tracked by the "
"collector. Note that :c:func:`PyObject_GC_Track` can be called again on "
@ -153,19 +171,19 @@ msgid ""
"handler become invalid."
msgstr ""
#: c-api/gcsupport.rst:117
#: c-api/gcsupport.rst:129
msgid ""
"The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros "
"have been removed from the public C API."
msgstr ""
#: c-api/gcsupport.rst:120
#: c-api/gcsupport.rst:132
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function "
"parameter of this type:"
msgstr ""
#: c-api/gcsupport.rst:125
#: c-api/gcsupport.rst:137
msgid ""
"Type of the visitor function passed to the :c:member:`~PyTypeObject."
"tp_traverse` handler. The function should be called with an object to "
@ -175,13 +193,13 @@ msgid ""
"users will need to write their own visitor functions."
msgstr ""
#: c-api/gcsupport.rst:132
#: c-api/gcsupport.rst:144
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following "
"type:"
msgstr ""
#: c-api/gcsupport.rst:137
#: c-api/gcsupport.rst:149
msgid ""
"Traversal function for a container object. Implementations must call the "
"*visit* function for each object directly contained by *self*, with the "
@ -191,7 +209,7 @@ msgid ""
"returned immediately."
msgstr ""
#: c-api/gcsupport.rst:144
#: c-api/gcsupport.rst:156
msgid ""
"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:"
"func:`Py_VISIT` macro is provided. In order to use this macro, the :c:"
@ -199,20 +217,20 @@ msgid ""
"exactly *visit* and *arg*:"
msgstr ""
#: c-api/gcsupport.rst:151
#: c-api/gcsupport.rst:163
msgid ""
"If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and "
"*arg*. If *visit* returns a non-zero value, then return it. Using this "
"macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::"
msgstr ""
#: c-api/gcsupport.rst:164
#: c-api/gcsupport.rst:176
msgid ""
"The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:"
"`inquiry` type, or ``NULL`` if the object is immutable."
msgstr ""
#: c-api/gcsupport.rst:170
#: c-api/gcsupport.rst:182
msgid ""
"Drop references that may have created reference cycles. Immutable objects "
"do not have to define this method since they can never directly create "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -110,7 +110,17 @@ msgid ""
"and sets an exception on error."
msgstr ""
#: c-api/type.rst:102
#: c-api/type.rst:101
msgid ""
"If some of the base classes implements the GC protocol and the provided type "
"does not include the :const:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC "
"protocol will be automatically implemented from its parents. On the "
"contrary, if the type being created does include :const:`Py_TPFLAGS_HAVE_GC` "
"in its flags then it **must** implement the GC protocol itself by at least "
"implementing the :c:member:`~PyTypeObject.tp_traverse` handle."
msgstr ""
#: c-api/type.rst:111
msgid ""
"Return the function pointer stored in the given slot. If the result is "
"``NULL``, this indicates that either the slot is ``NULL``, or that the "
@ -118,28 +128,28 @@ msgid ""
"result pointer into the appropriate function type."
msgstr ""
#: c-api/type.rst:108
#: c-api/type.rst:117
msgid ""
"See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument."
msgstr ""
#: c-api/type.rst:110
#: c-api/type.rst:119
msgid "An exception is raised if *type* is not a heap type."
msgstr ""
#: c-api/type.rst:116
#: c-api/type.rst:125
msgid ""
"Return the module object associated with the given type when the type was "
"created using :c:func:`PyType_FromModuleAndSpec`."
msgstr ""
#: c-api/type.rst:137
#: c-api/type.rst:146
msgid ""
"If no module is associated with the given type, sets :py:class:`TypeError` "
"and returns ``NULL``."
msgstr ""
#: c-api/type.rst:122
#: c-api/type.rst:131
msgid ""
"This function is usually used to get the module in which a method is "
"defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may "
@ -149,49 +159,49 @@ msgid ""
"defines the method."
msgstr ""
#: c-api/type.rst:133
#: c-api/type.rst:142
msgid ""
"Return the state of the module object associated with the given type. This "
"is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:"
"func:`PyType_GetModule`."
msgstr ""
#: c-api/type.rst:140
#: c-api/type.rst:149
msgid ""
"If the *type* has an associated module but its state is ``NULL``, returns "
"``NULL`` without setting an exception."
msgstr ""
#: c-api/type.rst:147
#: c-api/type.rst:156
msgid "Creating Heap-Allocated Types"
msgstr ""
#: c-api/type.rst:149
#: c-api/type.rst:158
msgid ""
"The following functions and structs are used to create :ref:`heap types "
"<heap-types>`."
msgstr ""
#: c-api/type.rst:154
#: c-api/type.rst:163
msgid ""
"Creates and returns a heap type object from the *spec* (:const:"
"`Py_TPFLAGS_HEAPTYPE`)."
msgstr ""
#: c-api/type.rst:157
#: c-api/type.rst:166
msgid ""
"If *bases* is a tuple, the created heap type contains all types contained in "
"it as base types."
msgstr ""
#: c-api/type.rst:160
#: c-api/type.rst:169
msgid ""
"If *bases* is ``NULL``, the *Py_tp_bases* slot is used instead. If that also "
"is ``NULL``, the *Py_tp_base* slot is used instead. If that also is "
"``NULL``, the new type derives from :class:`object`."
msgstr ""
#: c-api/type.rst:164
#: c-api/type.rst:173
msgid ""
"The *module* argument can be used to record the module in which the new "
"class is defined. It must be a module object or ``NULL``. If not ``NULL``, "
@ -200,59 +210,59 @@ msgid ""
"subclasses; it must be specified for each class individually."
msgstr ""
#: c-api/type.rst:171
#: c-api/type.rst:180
msgid "This function calls :c:func:`PyType_Ready` on the new type."
msgstr ""
#: c-api/type.rst:177
#: c-api/type.rst:186
msgid "Equivalent to ``PyType_FromModuleAndSpec(NULL, spec, bases)``."
msgstr ""
#: c-api/type.rst:183
#: c-api/type.rst:192
msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``."
msgstr ""
#: c-api/type.rst:187
#: c-api/type.rst:196
msgid "Structure defining a type's behavior."
msgstr ""
#: c-api/type.rst:191
#: c-api/type.rst:200
msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`."
msgstr ""
#: c-api/type.rst:196
#: c-api/type.rst:205
msgid ""
"Size of the instance in bytes, used to set :c:member:`PyTypeObject."
"tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`."
msgstr ""
#: c-api/type.rst:202
#: c-api/type.rst:211
msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`."
msgstr ""
#: c-api/type.rst:204
#: c-api/type.rst:213
msgid ""
"If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:"
"`PyType_FromSpecWithBases` sets it automatically."
msgstr ""
#: c-api/type.rst:209
#: c-api/type.rst:218
msgid ""
"Array of :c:type:`PyType_Slot` structures. Terminated by the special slot "
"value ``{0, NULL}``."
msgstr ""
#: c-api/type.rst:214
#: c-api/type.rst:223
msgid ""
"Structure defining optional functionality of a type, containing a slot ID "
"and a value pointer."
msgstr ""
#: c-api/type.rst:219
#: c-api/type.rst:228
msgid "A slot ID."
msgstr ""
#: c-api/type.rst:221
#: c-api/type.rst:230
msgid ""
"Slot IDs are named like the field names of the structures :c:type:"
"`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:"
@ -260,97 +270,97 @@ msgid ""
"prefix. For example, use:"
msgstr ""
#: c-api/type.rst:227
#: c-api/type.rst:236
msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`"
msgstr ""
#: c-api/type.rst:228
#: c-api/type.rst:237
msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`"
msgstr ""
#: c-api/type.rst:229
#: c-api/type.rst:238
msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`"
msgstr ""
#: c-api/type.rst:231
#: c-api/type.rst:240
msgid ""
"The following fields cannot be set at all using :c:type:`PyType_Spec` and :c:"
"type:`PyType_Slot`:"
msgstr ""
#: c-api/type.rst:234
#: c-api/type.rst:243
msgid ":c:member:`~PyTypeObject.tp_dict`"
msgstr ""
#: c-api/type.rst:235
#: c-api/type.rst:244
msgid ":c:member:`~PyTypeObject.tp_mro`"
msgstr ""
#: c-api/type.rst:236
#: c-api/type.rst:245
msgid ":c:member:`~PyTypeObject.tp_cache`"
msgstr ""
#: c-api/type.rst:237
#: c-api/type.rst:246
msgid ":c:member:`~PyTypeObject.tp_subclasses`"
msgstr ""
#: c-api/type.rst:238
#: c-api/type.rst:247
msgid ":c:member:`~PyTypeObject.tp_weaklist`"
msgstr ""
#: c-api/type.rst:239
#: c-api/type.rst:248
msgid ":c:member:`~PyTypeObject.tp_vectorcall`"
msgstr ""
#: c-api/type.rst:240
#: c-api/type.rst:249
msgid ""
":c:member:`~PyTypeObject.tp_weaklistoffset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:242
#: c-api/type.rst:251
msgid ""
":c:member:`~PyTypeObject.tp_dictoffset` (see :ref:`PyMemberDef <pymemberdef-"
"offsets>`)"
msgstr ""
#: c-api/type.rst:244
#: c-api/type.rst:253
msgid ""
":c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:247
#: c-api/type.rst:256
msgid ""
"The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:"
"`PyType_Slot` under the limited API:"
msgstr ""
#: c-api/type.rst:250
#: c-api/type.rst:259
msgid ":c:member:`~PyBufferProcs.bf_getbuffer`"
msgstr ""
#: c-api/type.rst:251
#: c-api/type.rst:260
msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`"
msgstr ""
#: c-api/type.rst:253
#: c-api/type.rst:262
msgid ""
"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on "
"some platforms. To avoid issues, use the *bases* argument of :py:func:"
"`PyType_FromSpecWithBases` instead."
msgstr ""
#: c-api/type.rst:260
#: c-api/type.rst:269
msgid "Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API."
msgstr ""
#: c-api/type.rst:264
#: c-api/type.rst:273
msgid ""
"The desired value of the slot. In most cases, this is a pointer to a "
"function."
msgstr ""
#: c-api/type.rst:267
#: c-api/type.rst:276
msgid "May not be ``NULL``."
msgstr ""

View File

@ -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: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2019-09-04 11:44+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -192,10 +192,11 @@ msgid "FLTK"
msgstr "*FLTK*"
#: faq/gui.rst:93
#, fuzzy
msgid ""
"Python bindings for `the FLTK toolkit <http://www.fltk.org>`_, a simple yet "
"powerful and mature cross-platform windowing system, are available from `the "
"PyFLTK project <http://pyfltk.sourceforge.net>`_."
"PyFLTK project <https://pyfltk.sourceforge.io/>`_."
msgstr ""
"Les liaisons Python pour `the FLTK toolkit <http://www.fltk.org>`_, un "
"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont "

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-01-28 16:02+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -230,16 +230,15 @@ msgstr "Comment construire un exécutable depuis un script Python ?"
#: faq/windows.rst:143
msgid ""
"See `cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_ and `py2exe "
"<http://www.py2exe.org/>`_, both are distutils extensions that allow you to "
"create console and GUI executables from Python code."
"See :ref:`faq-create-standalone-binary` for a list of tools that can be used "
"to make executables."
msgstr ""
#: faq/windows.rst:149
#: faq/windows.rst:148
msgid "Is a ``*.pyd`` file the same as a DLL?"
msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?"
#: faq/windows.rst:151
#: faq/windows.rst:150
msgid ""
"Yes, .pyd files are dll's, but there are a few differences. If you have a "
"DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You "
@ -256,7 +255,7 @@ msgstr ""
"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas "
"Windows aura besoin de la DLL."
#: faq/windows.rst:158
#: faq/windows.rst:157
msgid ""
"Note that the search path for foo.pyd is PYTHONPATH, not the same as the "
"path that Windows uses to search for foo.dll. Also, foo.pyd need not be "
@ -275,11 +274,11 @@ msgstr ""
"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une "
"liste de fonctions disponibles."
#: faq/windows.rst:167
#: faq/windows.rst:166
msgid "How can I embed Python into a Windows application?"
msgstr "Comment puis-je intégrer Python dans une application Windows ?"
#: faq/windows.rst:169
#: faq/windows.rst:168
msgid ""
"Embedding the Python interpreter in a Windows app can be summarized as "
"follows:"
@ -287,7 +286,7 @@ msgstr ""
"L'intégration de l'interpréteur Python dans une application Windows peut se "
"résumer comme suit :"
#: faq/windows.rst:171
#: faq/windows.rst:170
msgid ""
"Do _not_ build Python into your .exe file directly. On Windows, Python must "
"be a DLL to handle importing modules that are themselves DLL's. (This is "
@ -302,7 +301,7 @@ msgstr ""
"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version "
"Python, par exemple « 33 » pour Python 3.3."
#: faq/windows.rst:177
#: faq/windows.rst:176
msgid ""
"You can link to Python in two different ways. Load-time linking means "
"linking against :file:`python{NN}.lib`, while run-time linking means linking "
@ -317,7 +316,7 @@ msgstr ""
"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des "
"liens symboliques pour l'éditeur de liens.)"
#: faq/windows.rst:183
#: faq/windows.rst:182
msgid ""
"Run-time linking greatly simplifies link options; everything happens at run "
"time. Your code must load :file:`python{NN}.dll` using the Windows "
@ -336,7 +335,7 @@ msgstr ""
"peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui "
"appelle des routines dans l'API C de Python."
#: faq/windows.rst:190
#: faq/windows.rst:189
msgid ""
"Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
"exe first."
@ -344,7 +343,7 @@ msgstr ""
"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant "
"*Coff2Omf.exe* en premier."
#: faq/windows.rst:195
#: faq/windows.rst:194
msgid ""
"If you use SWIG, it is easy to create a Python \"extension module\" that "
"will make the app's data and methods available to Python. SWIG will handle "
@ -359,7 +358,7 @@ msgstr ""
"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également "
"la liaison."
#: faq/windows.rst:201
#: faq/windows.rst:200
msgid ""
"SWIG will create an init function (a C function) whose name depends on the "
"name of the extension module. For example, if the name of the module is "
@ -374,7 +373,7 @@ msgstr ""
"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible "
"utilisée par la classe *shadow*."
#: faq/windows.rst:207
#: faq/windows.rst:206
msgid ""
"The reason you can link the C code in step 2 into your .exe file is that "
"calling the initialization function is equivalent to importing the module "
@ -384,7 +383,7 @@ msgstr ""
"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à "
"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)"
#: faq/windows.rst:211
#: faq/windows.rst:210
msgid ""
"In short, you can use the following code to initialize the Python "
"interpreter with your extension module."
@ -392,7 +391,7 @@ msgstr ""
"En bref, vous pouvez utiliser le code suivant pour initialiser "
"l'interpréteur Python avec votre module d'extension."
#: faq/windows.rst:222
#: faq/windows.rst:221
msgid ""
"There are two problems with Python's C API which will become apparent if you "
"use a compiler other than MSVC, the compiler used to build pythonNN.dll."
@ -401,7 +400,7 @@ msgstr ""
"utilisez un compilateur autre que MSVC, le compilateur utilisé pour "
"construire *pythonNN.dll*."
#: faq/windows.rst:225
#: faq/windows.rst:224
msgid ""
"Problem 1: The so-called \"Very High Level\" functions that take FILE * "
"arguments will not work in a multi-compiler environment because each "
@ -414,7 +413,7 @@ msgstr ""
"structure de FILE. Du point de vue de l'implémentation, il s'agit de "
"fonctions de très bas niveau."
#: faq/windows.rst:230
#: faq/windows.rst:229
msgid ""
"Problem 2: SWIG generates the following code when generating wrappers to "
"void functions:"
@ -422,7 +421,7 @@ msgstr ""
"Problème 2 : SWIG génère le code suivant lors de la génération "
"*d'encapsuleurs* pour annuler les fonctions :"
#: faq/windows.rst:239
#: faq/windows.rst:238
msgid ""
"Alas, Py_None is a macro that expands to a reference to a complex data "
"structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will "
@ -433,7 +432,7 @@ msgstr ""
"une fois, ce code échouera dans un environnement multi-compilateur. "
"Remplacez ce code par :"
#: faq/windows.rst:247
#: faq/windows.rst:246
msgid ""
"It may be possible to use SWIG's ``%typemap`` command to make the change "
"automatically, though I have not been able to get this to work (I'm a "
@ -443,7 +442,7 @@ msgstr ""
"le changement automatiquement, bien que je n'ai pas réussi à le faire "
"fonctionner (je suis un débutant complet avec SWIG)."
#: faq/windows.rst:251
#: faq/windows.rst:250
msgid ""
"Using a Python shell script to put up a Python interpreter window from "
"inside your Windows app is not a good idea; the resulting window will be "
@ -464,13 +463,13 @@ msgstr ""
"dont vous avez besoin est un objet Python (défini dans votre module "
"d'extension) qui contient les méthodes *read()* et *write()*."
#: faq/windows.rst:260
#: faq/windows.rst:259
msgid "How do I keep editors from inserting tabs into my Python source?"
msgstr ""
"Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers "
"Python ?"
#: faq/windows.rst:262
#: faq/windows.rst:261
msgid ""
"The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, "
"recommends 4 spaces for distributed Python code; this is also the Emacs "
@ -481,7 +480,7 @@ msgstr ""
"dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec "
"Python."
#: faq/windows.rst:266
#: faq/windows.rst:265
msgid ""
"Under any editor, mixing tabs and spaces is a bad idea. MSVC is no "
"different in this respect, and is easily configured to use spaces: Take :"
@ -495,7 +494,7 @@ msgstr ""
"Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et "
"*Indent size* à 4, puis sélectionner *Insert spaces*."
#: faq/windows.rst:271
#: faq/windows.rst:270
msgid ""
"Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and "
"spaces are causing problems in leading whitespace. You may also run the :mod:"
@ -505,13 +504,13 @@ msgstr ""
"tabulation et dindentation pose problème en début de ligne. Vous pouvez "
"aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs."
#: faq/windows.rst:278
#: faq/windows.rst:277
msgid "How do I check for a keypress without blocking?"
msgstr ""
"Comment puis-je vérifier de manière non bloquante qu'une touche a été "
"pressée ?"
#: faq/windows.rst:280
#: faq/windows.rst:279
msgid ""
"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension "
"module. It defines a function ``kbhit()`` which checks whether a keyboard "

File diff suppressed because it is too large Load Diff

View File

@ -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: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2019-06-10 15:50+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -580,8 +580,8 @@ msgstr ""
#: library/asyncio-eventloop.rst:442
msgid ""
"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind "
"the socket to locally. The *local_host* and *local_port* are looked up "
"using ``getaddrinfo()``, similarly to *host* and *port*."
"the socket locally. The *local_host* and *local_port* are looked up using "
"``getaddrinfo()``, similarly to *host* and *port*."
msgstr ""
#: library/asyncio-eventloop.rst:446 library/asyncio-eventloop.rst:799
@ -683,8 +683,8 @@ msgstr ""
#: library/asyncio-eventloop.rst:520
msgid ""
"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind "
"the socket to locally. The *local_host* and *local_port* are looked up "
"using :meth:`getaddrinfo`."
"the socket locally. The *local_host* and *local_port* are looked up using :"
"meth:`getaddrinfo`."
msgstr ""
#: library/asyncio-eventloop.rst:524

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-05-17 13:06+0200\n"
"Last-Translator: Dimitri Merejkowsky <dimitri@dmerej.info>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Dimitri Merejkowsky <dimitri@dmerej.info>\n"
"X-Generator: Poedit 2.4.3\n"
#: library/configparser.rst:2

View File

@ -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: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-05-23 14:41-0400\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -258,7 +258,7 @@ msgstr "Par exemple ::"
msgid "This code is equivalent to::"
msgstr "Ce code est équivalent à ::"
#: library/contextlib.rst:263 library/contextlib.rst:273
#: library/contextlib.rst:264 library/contextlib.rst:274
msgid "This context manager is :ref:`reentrant <reentrant-cms>`."
msgstr "Ce gestionnaire de contexte est :ref:`réentrant <reentrant-cms>`."
@ -279,16 +279,19 @@ msgstr ""
"existantes dont la sortie est envoyée vers la sortie standard."
#: library/contextlib.rst:237
#, fuzzy
msgid ""
"For example, the output of :func:`help` normally is sent to *sys.stdout*. "
"You can capture that output in a string by redirecting the output to an :"
"class:`io.StringIO` object::"
"class:`io.StringIO` object. The replacement stream is returned from the "
"``__enter__`` method and so is available as the target of the :keyword:"
"`with` statement::"
msgstr ""
"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys."
"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en "
"la redirigeant vers un objet :class:`io.StringIO` ::"
#: library/contextlib.rst:246
#: library/contextlib.rst:247
msgid ""
"To send the output of :func:`help` to a file on disk, redirect the output to "
"a regular file::"
@ -296,11 +299,11 @@ msgstr ""
"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, "
"redirigez-la sur un fichier normal ::"
#: library/contextlib.rst:253
#: library/contextlib.rst:254
msgid "To send the output of :func:`help` to *sys.stderr*::"
msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::"
#: library/contextlib.rst:258
#: library/contextlib.rst:259
msgid ""
"Note that the global side effect on :data:`sys.stdout` means that this "
"context manager is not suitable for use in library code and most threaded "
@ -314,7 +317,7 @@ msgstr ""
"Cependant, cela reste une approche utile pour beaucoup de scripts "
"utilitaires."
#: library/contextlib.rst:270
#: library/contextlib.rst:271
msgid ""
"Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys."
"stderr` to another file or file-like object."
@ -322,14 +325,14 @@ msgstr ""
"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys."
"stderr` vers un autre fichier ou objet fichier-compatible."
#: library/contextlib.rst:280
#: library/contextlib.rst:281
msgid ""
"A base class that enables a context manager to also be used as a decorator."
msgstr ""
"Une classe mère qui permet à un gestionnaire de contexte d'être aussi "
"utilisé comme décorateur."
#: library/contextlib.rst:282
#: library/contextlib.rst:283
msgid ""
"Context managers inheriting from ``ContextDecorator`` have to implement "
"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional "
@ -340,7 +343,7 @@ msgstr ""
"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en "
"décorateur."
#: library/contextlib.rst:286
#: library/contextlib.rst:287
msgid ""
"``ContextDecorator`` is used by :func:`contextmanager`, so you get this "
"functionality automatically."
@ -348,22 +351,22 @@ msgstr ""
"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous "
"bénéficiez automatiquement de cette fonctionnalité."
#: library/contextlib.rst:289
#: library/contextlib.rst:290
msgid "Example of ``ContextDecorator``::"
msgstr "Exemple de ``ContextDecorator`` ::"
#: library/contextlib.rst:318
#: library/contextlib.rst:319
msgid ""
"This change is just syntactic sugar for any construct of the following form::"
msgstr ""
"Ce changement est simplement un sucre syntaxique pour les constructions de "
"la forme suivante ::"
#: library/contextlib.rst:324
#: library/contextlib.rst:325
msgid "``ContextDecorator`` lets you instead write::"
msgstr "``ContextDecorator`` vous permet d'écrire à la place ::"
#: library/contextlib.rst:330
#: library/contextlib.rst:331
msgid ""
"It makes it clear that the ``cm`` applies to the whole function, rather than "
"just a piece of it (and saving an indentation level is nice, too)."
@ -372,7 +375,7 @@ msgstr ""
"seulement à un morceau en particulier (et gagner un niveau d'indentation est "
"toujours appréciable)."
#: library/contextlib.rst:333
#: library/contextlib.rst:334
msgid ""
"Existing context managers that already have a base class can be extended by "
"using ``ContextDecorator`` as a mixin class::"
@ -380,7 +383,7 @@ msgstr ""
"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent "
"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::"
#: library/contextlib.rst:346
#: library/contextlib.rst:347
msgid ""
"As the decorated function must be able to be called multiple times, the "
"underlying context manager must support use in multiple :keyword:`with` "
@ -393,7 +396,7 @@ msgstr ""
"construction d'origine avec de multiples instructions :keyword:`!with` au "
"sein de la fonction doit être utilisée."
#: library/contextlib.rst:356
#: library/contextlib.rst:357
msgid ""
"A context manager that is designed to make it easy to programmatically "
"combine other context managers and cleanup functions, especially those that "
@ -404,7 +407,7 @@ msgstr ""
"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des "
"données d'entrée."
#: library/contextlib.rst:360
#: library/contextlib.rst:361
msgid ""
"For example, a set of files may easily be handled in a single with statement "
"as follows::"
@ -412,7 +415,7 @@ msgstr ""
"Par exemple, un ensemble de fichiers peut facilement être géré dans une "
"unique instruction *with* comme suit ::"
#: library/contextlib.rst:369
#: library/contextlib.rst:370
msgid ""
"Each instance maintains a stack of registered callbacks that are called in "
"reverse order when the instance is closed (either explicitly or implicitly "
@ -425,7 +428,7 @@ msgstr ""
"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de "
"la pile de contextes est collectée par le ramasse-miettes."
#: library/contextlib.rst:374
#: library/contextlib.rst:375
msgid ""
"This stack model is used so that context managers that acquire their "
"resources in their ``__init__`` method (such as file objects) can be handled "
@ -435,7 +438,7 @@ msgstr ""
"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les "
"objets-fichiers) puissent être gérés correctement."
#: library/contextlib.rst:378
#: library/contextlib.rst:379
msgid ""
"Since registered callbacks are invoked in the reverse order of registration, "
"this ends up behaving as if multiple nested :keyword:`with` statements had "
@ -451,7 +454,7 @@ msgstr ""
"de rappel intérieure supprime ou remplace une exception, alors les fonctions "
"extérieures reçoivent des arguments basés sur ce nouvel état."
#: library/contextlib.rst:385
#: library/contextlib.rst:386
msgid ""
"This is a relatively low level API that takes care of the details of "
"correctly unwinding the stack of exit callbacks. It provides a suitable "
@ -463,7 +466,7 @@ msgstr ""
"pour des gestionnaires de contexte de plus haut niveau qui manipulent la "
"pile de sortie de manière spécifique à l'application."
#: library/contextlib.rst:394
#: library/contextlib.rst:395
msgid ""
"Enters a new context manager and adds its :meth:`__exit__` method to the "
"callback stack. The return value is the result of the context manager's own :"
@ -473,7 +476,7 @@ msgstr ""
"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la "
"méthode :meth:`__enter__` du gestionnaire de contexte donné."
#: library/contextlib.rst:398
#: library/contextlib.rst:399
msgid ""
"These context managers may suppress exceptions just as they normally would "
"if used directly as part of a :keyword:`with` statement."
@ -482,13 +485,13 @@ msgstr ""
"feraient normalement s'ils étaient utilisés directement derrière une "
"instruction :keyword:`with`."
#: library/contextlib.rst:403
#: library/contextlib.rst:404
msgid "Adds a context manager's :meth:`__exit__` method to the callback stack."
msgstr ""
"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile "
"d'appels."
#: library/contextlib.rst:405
#: library/contextlib.rst:406
msgid ""
"As ``__enter__`` is *not* invoked, this method can be used to cover part of "
"an :meth:`__enter__` implementation with a context manager's own :meth:"
@ -498,7 +501,7 @@ msgstr ""
"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la "
"propre méthode :meth:`__exit__` d'un gestionnaire de contexte."
#: library/contextlib.rst:409
#: library/contextlib.rst:410
msgid ""
"If passed an object that is not a context manager, this method assumes it is "
"a callback with the same signature as a context manager's :meth:`__exit__` "
@ -509,7 +512,7 @@ msgstr ""
"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à "
"la pile d'appels."
#: library/contextlib.rst:413
#: library/contextlib.rst:414
msgid ""
"By returning true values, these callbacks can suppress exceptions the same "
"way context manager :meth:`__exit__` methods can."
@ -518,7 +521,7 @@ msgstr ""
"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` "
"des gestionnaires de contexte."
#: library/contextlib.rst:416
#: library/contextlib.rst:417
msgid ""
"The passed in object is returned from the function, allowing this method to "
"be used as a function decorator."
@ -526,7 +529,7 @@ msgstr ""
"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la "
"méthode d'être utilisée comme décorateur de fonction."
#: library/contextlib.rst:421
#: library/contextlib.rst:422
msgid ""
"Accepts an arbitrary callback function and arguments and adds it to the "
"callback stack."
@ -534,7 +537,7 @@ msgstr ""
"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des "
"fonctions de rappel."
#: library/contextlib.rst:424
#: library/contextlib.rst:425
msgid ""
"Unlike the other methods, callbacks added this way cannot suppress "
"exceptions (as they are never passed the exception details)."
@ -543,7 +546,7 @@ msgstr ""
"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne "
"reçoivent jamais les détails de l'exception)."
#: library/contextlib.rst:427
#: library/contextlib.rst:428
msgid ""
"The passed in callback is returned from the function, allowing this method "
"to be used as a function decorator."
@ -551,7 +554,7 @@ msgstr ""
"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à "
"la méthode d'être utilisée comme décorateur de fonction."
#: library/contextlib.rst:432
#: library/contextlib.rst:433
msgid ""
"Transfers the callback stack to a fresh :class:`ExitStack` instance and "
"returns it. No callbacks are invoked by this operation - instead, they will "
@ -563,7 +566,7 @@ msgstr ""
"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close "
"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)."
#: library/contextlib.rst:437
#: library/contextlib.rst:438
msgid ""
"For example, a group of files can be opened as an \"all or nothing\" "
"operation as follows::"
@ -571,7 +574,7 @@ msgstr ""
"Par exemple, un groupe de fichiers peut être ouvert comme une opération "
 tout ou rien » comme suit ::"
#: library/contextlib.rst:451
#: library/contextlib.rst:452
msgid ""
"Immediately unwinds the callback stack, invoking callbacks in the reverse "
"order of registration. For any context managers and exit callbacks "
@ -582,7 +585,7 @@ msgstr ""
"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune "
"exception n'est survenue."
#: library/contextlib.rst:458
#: library/contextlib.rst:459
msgid ""
"An :ref:`asynchronous context manager <async-context-managers>`, similar to :"
"class:`ExitStack`, that supports combining both synchronous and asynchronous "
@ -593,7 +596,7 @@ msgstr ""
"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines "
"pour la logique de nettoyage."
#: library/contextlib.rst:463
#: library/contextlib.rst:464
msgid ""
"The :meth:`close` method is not implemented, :meth:`aclose` must be used "
"instead."
@ -601,14 +604,14 @@ msgstr ""
"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt "
"être utilisée."
#: library/contextlib.rst:468
#: library/contextlib.rst:469
msgid ""
"Similar to :meth:`enter_context` but expects an asynchronous context manager."
msgstr ""
"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte "
"asynchrone."
#: library/contextlib.rst:473
#: library/contextlib.rst:474
msgid ""
"Similar to :meth:`push` but expects either an asynchronous context manager "
"or a coroutine function."
@ -616,24 +619,24 @@ msgstr ""
"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte "
"asynchrone soit une fonction coroutine."
#: library/contextlib.rst:478
#: library/contextlib.rst:479
msgid "Similar to :meth:`callback` but expects a coroutine function."
msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine."
#: library/contextlib.rst:482
#: library/contextlib.rst:483
msgid "Similar to :meth:`close` but properly handles awaitables."
msgstr ""
"Similaire à :meth:`close` mais gère correctement les tâches asynchrones."
#: library/contextlib.rst:484
#: library/contextlib.rst:485
msgid "Continuing the example for :func:`asynccontextmanager`::"
msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::"
#: library/contextlib.rst:496
#: library/contextlib.rst:497
msgid "Examples and Recipes"
msgstr "Exemples et Recettes"
#: library/contextlib.rst:498
#: library/contextlib.rst:499
msgid ""
"This section describes some examples and recipes for making effective use of "
"the tools provided by :mod:`contextlib`."
@ -641,11 +644,11 @@ msgstr ""
"Cette section décrit quelques exemples et recettes pour décrire une "
"utilisation réelle des outils fournis par :mod:`contextlib`."
#: library/contextlib.rst:503
#: library/contextlib.rst:504
msgid "Supporting a variable number of context managers"
msgstr "Gérer un nombre variable de gestionnaires de contexte"
#: library/contextlib.rst:505
#: library/contextlib.rst:506
msgid ""
"The primary use case for :class:`ExitStack` is the one given in the class "
"documentation: supporting a variable number of context managers and other "
@ -662,7 +665,7 @@ msgstr ""
"collection spécifique de fichiers de l'utilisateur), ou de certains "
"gestionnaires de contexte qui peuvent être optionnels ::"
#: library/contextlib.rst:520
#: library/contextlib.rst:521
msgid ""
"As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` "
"statements to manage arbitrary resources that don't natively support the "
@ -672,11 +675,11 @@ msgstr ""
"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne "
"gèrent pas nativement le protocole des gestionnaires de contexte."
#: library/contextlib.rst:526
#: library/contextlib.rst:527
msgid "Catching exceptions from ``__enter__`` methods"
msgstr "Attraper des exceptions depuis les méthodes ``__enter__``"
#: library/contextlib.rst:528
#: library/contextlib.rst:529
msgid ""
"It is occasionally desirable to catch exceptions from an ``__enter__`` "
"method implementation, *without* inadvertently catching exceptions from the :"
@ -691,7 +694,7 @@ msgstr ""
"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent "
"être légèrement séparées pour permettre le code suivant ::"
#: library/contextlib.rst:543
#: library/contextlib.rst:544
msgid ""
"Actually needing to do this is likely to indicate that the underlying API "
"should be providing a direct resource management interface for use with :"
@ -710,11 +713,11 @@ msgstr ""
"gestion de plusieurs situations qui ne peuvent pas être traitées directement "
"dans une instruction :keyword:`with`."
#: library/contextlib.rst:553
#: library/contextlib.rst:554
msgid "Cleaning up in an ``__enter__`` implementation"
msgstr "Nettoyer dans une méthode ``__enter__``"
#: library/contextlib.rst:555
#: library/contextlib.rst:556
msgid ""
"As noted in the documentation of :meth:`ExitStack.push`, this method can be "
"useful in cleaning up an already allocated resource if later steps in the :"
@ -724,7 +727,7 @@ msgstr ""
"peut être utile pour nettoyer une ressource déjà allouée si les dernières "
"étapes de l'implémentation de :meth:`__enter__` échouent."
#: library/contextlib.rst:559
#: library/contextlib.rst:560
msgid ""
"Here's an example of doing this for a context manager that accepts resource "
"acquisition and release functions, along with an optional validation "
@ -734,11 +737,11 @@ msgstr ""
"d'acquisition de ressources et de libération, avec une méthode de validation "
"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::"
#: library/contextlib.rst:599
#: library/contextlib.rst:600
msgid "Replacing any use of ``try-finally`` and flag variables"
msgstr "Remplacer un ``try-finally`` avec une option variable"
#: library/contextlib.rst:601
#: library/contextlib.rst:602
msgid ""
"A pattern you will sometimes see is a ``try-finally`` statement with a flag "
"variable to indicate whether or not the body of the ``finally`` clause "
@ -750,7 +753,7 @@ msgstr ""
"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec "
"juste une clause ``except``), cela ressemble à ::"
#: library/contextlib.rst:615
#: library/contextlib.rst:616
msgid ""
"As with any ``try`` statement based code, this can cause problems for "
"development and review, because the setup code and the cleanup code can end "
@ -761,7 +764,7 @@ msgstr ""
"codes d'installation et de nettoyage peuvent finir par être séparés par des "
"sections de code arbitrairement longues."
#: library/contextlib.rst:619
#: library/contextlib.rst:620
msgid ""
":class:`ExitStack` makes it possible to instead register a callback for "
"execution at the end of a ``with`` statement, and then later decide to skip "
@ -771,7 +774,7 @@ msgstr ""
"rappel pour être exécutée à la fin d'une instruction ``with``, et décider "
"ensuite de passer l'exécution de cet appel ::"
#: library/contextlib.rst:631
#: library/contextlib.rst:632
msgid ""
"This allows the intended cleanup up behaviour to be made explicit up front, "
"rather than requiring a separate flag variable."
@ -779,7 +782,7 @@ msgstr ""
"Cela permet de rendre explicite dès le départ le comportement de nettoyage "
"attendu, plutôt que de nécessiter une option séparée."
#: library/contextlib.rst:634
#: library/contextlib.rst:635
msgid ""
"If a particular application uses this pattern a lot, it can be simplified "
"even further by means of a small helper class::"
@ -787,7 +790,7 @@ msgstr ""
"Si une application particulière utilise beaucoup ce modèle, cela peut-être "
"simplifié encore plus au moyen d'une petite classe d'aide ::"
#: library/contextlib.rst:652
#: library/contextlib.rst:653
msgid ""
"If the resource cleanup isn't already neatly bundled into a standalone "
"function, then it is still possible to use the decorator form of :meth:"
@ -798,7 +801,7 @@ msgstr ""
"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en "
"avance ::"
#: library/contextlib.rst:667
#: library/contextlib.rst:668
msgid ""
"Due to the way the decorator protocol works, a callback function declared "
"this way cannot take any parameters. Instead, any resources to be released "
@ -809,12 +812,12 @@ msgstr ""
"doivent être récupérées depuis l'extérieur comme des variables de fermeture "
"(*closure*)."
#: library/contextlib.rst:673
#: library/contextlib.rst:674
msgid "Using a context manager as a function decorator"
msgstr ""
"Utiliser un gestionnaire de contexte en tant que décorateur de fonction"
#: library/contextlib.rst:675
#: library/contextlib.rst:676
msgid ""
":class:`ContextDecorator` makes it possible to use a context manager in both "
"an ordinary ``with`` statement and also as a function decorator."
@ -823,7 +826,7 @@ msgstr ""
"contexte à la fois ordinairement avec une instruction ``with`` ou comme un "
"décorateur de fonction."
#: library/contextlib.rst:678
#: library/contextlib.rst:679
msgid ""
"For example, it is sometimes useful to wrap functions or groups of "
"statements with a logger that can track the time of entry and time of exit. "
@ -838,17 +841,17 @@ msgstr ""
"`ContextDecorator` fournit les deux fonctionnalités en une seule "
"définition ::"
#: library/contextlib.rst:699
#: library/contextlib.rst:700
msgid "Instances of this class can be used as both a context manager::"
msgstr ""
"Les instances de cette classe peuvent être utilisées comme gestionnaires de "
"contexte ::"
#: library/contextlib.rst:705
#: library/contextlib.rst:706
msgid "And also as a function decorator::"
msgstr "Et comme décorateurs de fonctions ::"
#: library/contextlib.rst:712
#: library/contextlib.rst:713
msgid ""
"Note that there is one additional limitation when using context managers as "
"function decorators: there's no way to access the return value of :meth:"
@ -860,11 +863,11 @@ msgstr ""
"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut "
"utiliser explicitement une instruction ``with``."
#: library/contextlib.rst:720
#: library/contextlib.rst:721
msgid ":pep:`343` - The \"with\" statement"
msgstr ":pep:`343` - The \"with\" statement"
#: library/contextlib.rst:720
#: library/contextlib.rst:721
msgid ""
"The specification, background, and examples for the Python :keyword:`with` "
"statement."
@ -872,11 +875,11 @@ msgstr ""
"La spécification, les motivations et des exemples de l'instruction :keyword:"
"`with` en Python."
#: library/contextlib.rst:726
#: library/contextlib.rst:727
msgid "Single use, reusable and reentrant context managers"
msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants"
#: library/contextlib.rst:728
#: library/contextlib.rst:729
msgid ""
"Most context managers are written in a way that means they can only be used "
"effectively in a :keyword:`with` statement once. These single use context "
@ -889,7 +892,7 @@ msgstr ""
"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois "
"lève une exception ou ne fonctionne pas correctement."
#: library/contextlib.rst:734
#: library/contextlib.rst:735
msgid ""
"This common limitation means that it is generally advisable to create "
"context managers directly in the header of the :keyword:`with` statement "
@ -900,7 +903,7 @@ msgstr ""
"`with` où ils sont utilisés (comme montré dans tous les exemples "
"d'utilisation au-dessus)."
#: library/contextlib.rst:738
#: library/contextlib.rst:739
msgid ""
"Files are an example of effectively single use context managers, since the "
"first :keyword:`with` statement will close the file, preventing any further "
@ -911,7 +914,7 @@ msgstr ""
"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie "
"d'être exécutées sur ce fichier."
#: library/contextlib.rst:742
#: library/contextlib.rst:743
msgid ""
"Context managers created using :func:`contextmanager` are also single use "
"context managers, and will complain about the underlying generator failing "
@ -921,11 +924,11 @@ msgstr ""
"usage unique, et se plaindront du fait que le générateur sous-jacent ne "
"produise plus de valeur si vous essayez de les utiliser une seconde fois ::"
#: library/contextlib.rst:770
#: library/contextlib.rst:771
msgid "Reentrant context managers"
msgstr "Gestionnaires de contexte réentrants"
#: library/contextlib.rst:772
#: library/contextlib.rst:773
msgid ""
"More sophisticated context managers may be \"reentrant\". These context "
"managers can not only be used in multiple :keyword:`with` statements, but "
@ -938,7 +941,7 @@ msgstr ""
"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même "
"gestionnaire de contexte."
#: library/contextlib.rst:777
#: library/contextlib.rst:778
msgid ""
":class:`threading.RLock` is an example of a reentrant context manager, as "
"are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple "
@ -948,7 +951,7 @@ msgstr ""
"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. "
"Voici un très simple exemple d'utilisation réentrante ::"
#: library/contextlib.rst:796
#: library/contextlib.rst:797
msgid ""
"Real world examples of reentrancy are more likely to involve multiple "
"functions calling each other and hence be far more complicated than this "
@ -958,7 +961,7 @@ msgstr ""
"fonctions s'entre-appelant, et donc être bien plus compliqués que cet "
"exemple."
#: library/contextlib.rst:800
#: library/contextlib.rst:801
msgid ""
"Note also that being reentrant is *not* the same thing as being thread "
"safe. :func:`redirect_stdout`, for example, is definitely not thread safe, "
@ -970,11 +973,11 @@ msgstr ""
"puisqu'il effectue des changements globaux sur l'état du système en "
"branchant :data:`sys.stdout` sur différents flux."
#: library/contextlib.rst:809
#: library/contextlib.rst:810
msgid "Reusable context managers"
msgstr "Gestionnaires de contexte réutilisables"
#: library/contextlib.rst:811
#: library/contextlib.rst:812
msgid ""
"Distinct from both single use and reentrant context managers are \"reusable"
"\" context managers (or, to be completely explicit, \"reusable, but not "
@ -992,7 +995,7 @@ msgstr ""
"contexte référencée a déjà été utilisée dans une instruction *with* "
"englobante."
#: library/contextlib.rst:818
#: library/contextlib.rst:819
msgid ""
":class:`threading.Lock` is an example of a reusable, but not reentrant, "
"context manager (for a reentrant lock, it is necessary to use :class:"
@ -1002,7 +1005,7 @@ msgstr ""
"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la "
"place utiliser :class:`threading.RLock`)."
#: library/contextlib.rst:822
#: library/contextlib.rst:823
msgid ""
"Another example of a reusable, but not reentrant, context manager is :class:"
"`ExitStack`, as it invokes *all* currently registered callbacks when leaving "
@ -1013,7 +1016,7 @@ msgstr ""
"actuellement enregistrées en quittant l'instruction *with*, sans regarder où "
"ces fonctions ont été ajoutées ::"
#: library/contextlib.rst:853
#: library/contextlib.rst:854
msgid ""
"As the output from the example shows, reusing a single stack object across "
"multiple with statements works correctly, but attempting to nest them will "
@ -1025,7 +1028,7 @@ msgstr ""
"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce "
"qui n'est probablement pas le comportement voulu."
#: library/contextlib.rst:858
#: library/contextlib.rst:859
msgid ""
"Using separate :class:`ExitStack` instances instead of reusing a single "
"instance avoids that problem::"

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2019-09-04 11:42+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -18,13 +18,13 @@ msgstr ""
msgid "Using :mod:`!importlib.metadata`"
msgstr ""
#: library/importlib.metadata.rst:10
#: library/importlib.metadata.rst:13
msgid ""
"This functionality is provisional and may deviate from the usual version "
"semantics of the standard library."
msgstr ""
#: library/importlib.metadata.rst:13
#: library/importlib.metadata.rst:16
msgid ""
"``importlib.metadata`` is a library that provides for access to installed "
"package metadata. Built in part on Python's import system, this library "
@ -35,7 +35,7 @@ msgid ""
"efficient ``pkg_resources`` package."
msgstr ""
#: library/importlib.metadata.rst:22
#: library/importlib.metadata.rst:25
msgid ""
"By \"installed package\" we generally mean a third-party package installed "
"into Python's ``site-packages`` directory via tools such as `pip <https://"
@ -46,52 +46,52 @@ msgid ""
"extension mechanism, the metadata can live almost anywhere."
msgstr ""
#: library/importlib.metadata.rst:33
#: library/importlib.metadata.rst:36
msgid "Overview"
msgstr "Aperçu"
#: library/importlib.metadata.rst:35
#: library/importlib.metadata.rst:38
msgid ""
"Let's say you wanted to get the version string for a package you've "
"installed using ``pip``. We start by creating a virtual environment and "
"installing something into it:"
msgstr ""
#: library/importlib.metadata.rst:45
#: library/importlib.metadata.rst:48
msgid "You can get the version string for ``wheel`` by running the following:"
msgstr ""
#: library/importlib.metadata.rst:54
#: library/importlib.metadata.rst:57
msgid ""
"You can also get the set of entry points keyed by group, such as "
"``console_scripts``, ``distutils.commands`` and others. Each group contains "
"a sequence of :ref:`EntryPoint <entry-points>` objects."
msgstr ""
#: library/importlib.metadata.rst:58
#: library/importlib.metadata.rst:61
msgid "You can get the :ref:`metadata for a distribution <metadata>`::"
msgstr ""
#: library/importlib.metadata.rst:63
#: library/importlib.metadata.rst:66
msgid ""
"You can also get a :ref:`distribution's version number <version>`, list its :"
"ref:`constituent files <files>`, and get a list of the distribution's :ref:"
"`requirements`."
msgstr ""
#: library/importlib.metadata.rst:69
#: library/importlib.metadata.rst:72
msgid "Functional API"
msgstr "API par fonction"
#: library/importlib.metadata.rst:71
#: library/importlib.metadata.rst:74
msgid "This package provides the following functionality via its public API."
msgstr ""
#: library/importlib.metadata.rst:77
#: library/importlib.metadata.rst:80
msgid "Entry points"
msgstr ""
#: library/importlib.metadata.rst:79
#: library/importlib.metadata.rst:82
msgid ""
"The ``entry_points()`` function returns a dictionary of all entry points, "
"keyed by group. Entry points are represented by ``EntryPoint`` instances; "
@ -101,7 +101,7 @@ msgid ""
"value`` attribute::"
msgstr ""
#: library/importlib.metadata.rst:103
#: library/importlib.metadata.rst:106
msgid ""
"The ``group`` and ``name`` are arbitrary values defined by the package "
"author and usually a client will wish to resolve all entry points for a "
@ -110,37 +110,37 @@ msgid ""
"for more information on entry points, their definition, and usage."
msgstr ""
#: library/importlib.metadata.rst:113
#: library/importlib.metadata.rst:116
msgid "Distribution metadata"
msgstr ""
#: library/importlib.metadata.rst:115
#: library/importlib.metadata.rst:118
msgid ""
"Every distribution includes some metadata, which you can extract using the "
"``metadata()`` function::"
msgstr ""
#: library/importlib.metadata.rst:120
#: library/importlib.metadata.rst:123
msgid ""
"The keys of the returned data structure [#f1]_ name the metadata keywords, "
"and their values are returned unparsed from the distribution metadata::"
msgstr ""
#: library/importlib.metadata.rst:130
#: library/importlib.metadata.rst:133
msgid "Distribution versions"
msgstr ""
#: library/importlib.metadata.rst:132
#: library/importlib.metadata.rst:135
msgid ""
"The ``version()`` function is the quickest way to get a distribution's "
"version number, as a string::"
msgstr ""
#: library/importlib.metadata.rst:142
#: library/importlib.metadata.rst:145
msgid "Distribution files"
msgstr ""
#: library/importlib.metadata.rst:144
#: library/importlib.metadata.rst:147
msgid ""
"You can also get the full set of files contained within a distribution. The "
"``files()`` function takes a distribution package name and returns all of "
@ -150,11 +150,11 @@ msgid ""
"For example::"
msgstr ""
#: library/importlib.metadata.rst:160
#: library/importlib.metadata.rst:163
msgid "Once you have the file, you can also read its contents::"
msgstr ""
#: library/importlib.metadata.rst:171
#: library/importlib.metadata.rst:174
msgid ""
"In the case where the metadata file listing files (RECORD or SOURCES.txt) is "
"missing, ``files()`` will return ``None``. The caller may wish to wrap calls "
@ -164,22 +164,22 @@ msgid ""
"present."
msgstr ""
#: library/importlib.metadata.rst:182
#: library/importlib.metadata.rst:185
msgid "Distribution requirements"
msgstr ""
#: library/importlib.metadata.rst:184
#: library/importlib.metadata.rst:187
msgid ""
"To get the full set of requirements for a distribution, use the "
"``requires()`` function::"
msgstr ""
#: library/importlib.metadata.rst:192
#: library/importlib.metadata.rst:195
#, fuzzy
msgid "Distributions"
msgstr "Distribution"
#: library/importlib.metadata.rst:194
#: library/importlib.metadata.rst:197
msgid ""
"While the above API is the most common and convenient usage, you can get all "
"of that information from the ``Distribution`` class. A ``Distribution`` is "
@ -187,29 +187,29 @@ msgid ""
"can get the ``Distribution`` instance::"
msgstr ""
#: library/importlib.metadata.rst:202
#: library/importlib.metadata.rst:205
msgid ""
"Thus, an alternative way to get the version number is through the "
"``Distribution`` instance::"
msgstr ""
#: library/importlib.metadata.rst:208
#: library/importlib.metadata.rst:211
msgid ""
"There are all kinds of additional metadata available on the ``Distribution`` "
"instance::"
msgstr ""
#: library/importlib.metadata.rst:216
#: library/importlib.metadata.rst:219
msgid ""
"The full set of available metadata is not described here. See :pep:`566` "
"for additional details."
msgstr ""
#: library/importlib.metadata.rst:221
#: library/importlib.metadata.rst:224
msgid "Extending the search algorithm"
msgstr ""
#: library/importlib.metadata.rst:223
#: library/importlib.metadata.rst:226
msgid ""
"Because package metadata is not available through :data:`sys.path` searches, "
"or package loaders directly, the metadata for a package is found through "
@ -218,14 +218,14 @@ msgid ""
"path finders <meta path finder>` on :data:`sys.meta_path`."
msgstr ""
#: library/importlib.metadata.rst:229
#: library/importlib.metadata.rst:232
msgid ""
"The default ``PathFinder`` for Python includes a hook that calls into "
"``importlib.metadata.MetadataPathFinder`` for finding distributions loaded "
"from typical file-system-based paths."
msgstr ""
#: library/importlib.metadata.rst:233
#: library/importlib.metadata.rst:236
msgid ""
"The abstract class :py:class:`importlib.abc.MetaPathFinder` defines the "
"interface expected of finders by Python's import system. ``importlib."
@ -235,14 +235,14 @@ msgid ""
"base class, which defines this abstract method::"
msgstr ""
#: library/importlib.metadata.rst:247
#: library/importlib.metadata.rst:250
msgid ""
"The ``DistributionFinder.Context`` object provides ``.path`` and ``.name`` "
"properties indicating the path to search and name to match and may supply "
"other relevant context."
msgstr ""
#: library/importlib.metadata.rst:251
#: library/importlib.metadata.rst:254
msgid ""
"What this means in practice is that to support finding distribution package "
"metadata in locations other than the file system, subclass ``Distribution`` "
@ -251,11 +251,11 @@ msgid ""
"method."
msgstr ""
#: library/importlib.metadata.rst:264
#: library/importlib.metadata.rst:267
msgid "Footnotes"
msgstr "Notes"
#: library/importlib.metadata.rst:265
#: library/importlib.metadata.rst:268
msgid ""
"Technically, the returned distribution metadata object is an :class:`email."
"message.EmailMessage` instance, but this is an implementation detail, and "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2018-07-04 11:26+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -654,7 +654,7 @@ msgid "The import machinery now takes care of this automatically."
msgstr ""
#: library/importlib.rst:484
msgid "*Superseded by TraversableReader*"
msgid "*Superseded by TraversableResources*"
msgstr ""
#: library/importlib.rst:486

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-17 16:05+0100\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-05-28 17:46+0200\n"
"Last-Translator: Stephan Michaud <michauds90@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Stephan Michaud <michauds90@gmail.com>\n"
"X-Generator: Poedit 2.3\n"
#: library/platform.rst:2

File diff suppressed because it is too large Load Diff

View File

@ -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: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2021-03-20 18:04+0100\n"
"Last-Translator: Loc Cosnier <loc.cosnier@pm.me>\n"
"Language-Team: French <traductions@lists.afpy.org>\n"
@ -25,12 +25,13 @@ msgid "**Source code:** :source:`Lib/timeit.py`"
msgstr "**Code source :** :source:`Lib/timeit.py`"
#: library/timeit.rst:15
#, fuzzy
msgid ""
"This module provides a simple way to time small bits of Python code. It has "
"both a :ref:`timeit-command-line-interface` as well as a :ref:`callable "
"<python-interface>` one. It avoids a number of common traps for measuring "
"execution times. See also Tim Peters' introduction to the \"Algorithms\" "
"chapter in the *Python Cookbook*, published by O'Reilly."
"chapter in the second edition of *Python Cookbook*, published by O'Reilly."
msgstr ""
"Ce module fournit une façon simple de mesurer le temps d'exécution de "
"fragments de code Python. Il expose une :ref:`timeit-command-line-interface` "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2018-09-28 10:04+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -327,7 +327,7 @@ msgstr ""
#: library/types.rst:267
msgid ""
"A record of the the module's import-system-related state. Expected to be an "
"A record of the module's import-system-related state. Expected to be an "
"instance of :class:`importlib.machinery.ModuleSpec`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-19 16:59+0100\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2019-04-22 12:07+0200\n"
"Last-Translator: Bousquié Pierre <pierre.bousquie@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -446,8 +446,9 @@ msgstr ""
"d'une manière particulière ::"
#: library/unittest.mock.rst:330
#, fuzzy
msgid ""
"Assert that the mock was called exactly once and that that call was with the "
"Assert that the mock was called exactly once and that call was with the "
"specified arguments."
msgstr ""
"Asserter que le simulacre a été appelé exactement une fois et que cet appel "

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"POT-Creation-Date: 2021-05-29 16:33+0200\n"
"PO-Revision-Date: 2020-08-06 00:39+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -2319,7 +2319,7 @@ msgid ""
"Python 3.10. (Contributed by Ken Jin in :issue:`42195`.)"
msgstr ""
#: whatsnew/3.9.rst:1543
#: whatsnew/3.9.rst:1568
msgid "urllib.parse"
msgstr "urllib.parse"
@ -2348,6 +2348,20 @@ msgid ""
"instance to ``True``. (See :issue:`43285`)"
msgstr ""
#: whatsnew/3.9.rst:1565
msgid "Notable changes in Python 3.9.5"
msgstr ""
#: whatsnew/3.9.rst:1570
msgid ""
"The presence of newline or tab characters in parts of a URL allows for some "
"forms of attacks. Following the WHATWG specification that updates :rfc:"
"`3986`, ASCII newline ``\\n``, ``\\r`` and tab ``\\t`` characters are "
"stripped from the URL by the parser in :mod:`urllib.parse` preventing such "
"attacks. The removal characters are controlled by a new module level "
"variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :issue:`43882`)"
msgstr ""
#~ msgid ""
#~ "This article explains the new features in Python 3.9, compared to 3.8."
#~ msgstr ""