Make merge

This commit is contained in:
Julien Palard 2023-01-15 22:35:19 +01:00
parent 423ff1c51d
commit 529a85c902
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
281 changed files with 36271 additions and 29299 deletions

View File

@ -20,7 +20,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 := 748c83d96da735f8210167d676469860d4e11b80
CPYTHON_CURRENT_COMMIT := 855b1a935eebc134a4ccf5f2c9d8f7dda21deb70
LANGUAGE := fr
BRANCH := 3.11

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-07-08 17:54+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -52,8 +52,9 @@ msgstr ""
"et rédacteur de la plupart de son contenu ;"
#: about.rst:24
#, fuzzy
msgid ""
"the `Docutils <http://docutils.sourceforge.net/>`_ project for creating "
"the `Docutils <https://docutils.sourceforge.io/>`_ project for creating "
"reStructuredText and the Docutils suite;"
msgstr ""
"le projet `Docutils <http://docutils.sourceforge.net/>`_ pour avoir créé "

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-20 21:16+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -20,8 +20,9 @@ msgid "Allocating Objects on the Heap"
msgstr "Allouer des objets dans le tas"
#: c-api/allocation.rst:17
#, fuzzy
msgid ""
"Initialize a newly-allocated object *op* with its type and initial "
"Initialize a newly allocated object *op* with its type and initial "
"reference. Returns the initialized object. If *type* indicates that the "
"object participates in the cyclic garbage detector, it is added to the "
"detector's set of observed objects. Other fields of the object are not "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -183,17 +183,21 @@ msgid ""
msgstr "Ainsi ``3.4.1a2`` est une hexane-version ``0x030401a2``."
#: c-api/apiabiversion.rst:61
msgid "Use this for numeric comparisons, e.g. ``#if PY_VERSION_HEX >= ...``."
msgstr ""
#: c-api/apiabiversion.rst:63
msgid "This version is also available via the symbol :data:`Py_Version`."
msgstr ""
#: c-api/apiabiversion.rst:65
#: c-api/apiabiversion.rst:67
msgid ""
"The Python runtime version number encoded in a single constant integer, with "
"the same format as the :c:macro:`PY_VERSION_HEX` macro. This contains the "
"Python version used at run time."
msgstr ""
#: c-api/apiabiversion.rst:71
#: c-api/apiabiversion.rst:73
msgid "All the given macros are defined in :source:`Include/patchlevel.h`."
msgstr ""
"Toutes les macros données sont définies dans :source:`Include/patchlevel.h`."

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2020-07-20 15:07+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -209,12 +209,7 @@ msgid ""
"future extensions."
msgstr ""
#: c-api/call.rst:161 c-api/call.rst:259 c-api/call.rst:360 c-api/call.rst:391
#: c-api/call.rst:413
msgid "This function is not part of the :ref:`limited API <stable>`."
msgstr ""
#: c-api/call.rst:153
#: c-api/call.rst:151
msgid ""
"If *op* does not support the vectorcall protocol (either because the type "
"does not or because the specific instance does not), return *NULL*. "
@ -222,19 +217,19 @@ msgid ""
"function never raises an exception."
msgstr ""
#: c-api/call.rst:158
#: c-api/call.rst:156
msgid ""
"This is mostly useful to check whether or not *op* supports vectorcall, "
"which can be done by checking ``PyVectorcall_Function(op) != NULL``."
msgstr ""
#: c-api/call.rst:167
#: c-api/call.rst:163
msgid ""
"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword "
"arguments given in a tuple and dict, respectively."
msgstr ""
#: c-api/call.rst:170
#: c-api/call.rst:166
msgid ""
"This is a specialized function, intended to be put in the :c:member:"
"`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. "
@ -242,11 +237,11 @@ msgid ""
"not fall back to ``tp_call``."
msgstr ""
#: c-api/call.rst:183
#: c-api/call.rst:177
msgid "Object Calling API"
msgstr ""
#: c-api/call.rst:185
#: c-api/call.rst:179
msgid ""
"Various functions are available for calling a Python object. Each converts "
"its arguments to a convention supported by the called object either "
@ -254,130 +249,130 @@ msgid ""
"pick one that best fits the format of data you have available."
msgstr ""
#: c-api/call.rst:191
#: c-api/call.rst:185
msgid ""
"The following table summarizes the available functions; please see "
"individual documentation for details."
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "Function"
msgstr "Fonction"
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "callable"
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "args"
msgstr ""
#: c-api/call.rst:195
#: c-api/call.rst:189
msgid "kwargs"
msgstr ""
#: c-api/call.rst:197
#: c-api/call.rst:191
msgid ":c:func:`PyObject_Call`"
msgstr ""
#: c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:209 c-api/call.rst:219
#: c-api/call.rst:193 c-api/call.rst:197 c-api/call.rst:203 c-api/call.rst:213
msgid "``PyObject *``"
msgstr ""
#: c-api/call.rst:197
#: c-api/call.rst:191
msgid "tuple"
msgstr ""
#: c-api/call.rst:219
#: c-api/call.rst:213
msgid "dict/``NULL``"
msgstr ""
#: c-api/call.rst:199
#: c-api/call.rst:193
msgid ":c:func:`PyObject_CallNoArgs`"
msgstr ""
#: c-api/call.rst:201 c-api/call.rst:205 c-api/call.rst:209 c-api/call.rst:213
#: c-api/call.rst:215
#: c-api/call.rst:195 c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:207
#: c-api/call.rst:209
msgid "---"
msgstr ""
#: c-api/call.rst:201
#: c-api/call.rst:195
msgid ":c:func:`PyObject_CallOneArg`"
msgstr ""
#: c-api/call.rst:215
#: c-api/call.rst:209
msgid "1 object"
msgstr ""
#: c-api/call.rst:203
#: c-api/call.rst:197
msgid ":c:func:`PyObject_CallObject`"
msgstr ""
#: c-api/call.rst:203
#: c-api/call.rst:197
msgid "tuple/``NULL``"
msgstr ""
#: c-api/call.rst:205
#: c-api/call.rst:199
msgid ":c:func:`PyObject_CallFunction`"
msgstr ""
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid "format"
msgstr "format"
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid ":c:func:`PyObject_CallMethod`"
msgstr ""
#: c-api/call.rst:207
#: c-api/call.rst:201
msgid "obj + ``char*``"
msgstr ""
#: c-api/call.rst:209
#: c-api/call.rst:203
msgid ":c:func:`PyObject_CallFunctionObjArgs`"
msgstr ""
#: c-api/call.rst:211
#: c-api/call.rst:205
msgid "variadic"
msgstr ""
#: c-api/call.rst:211
#: c-api/call.rst:205
msgid ":c:func:`PyObject_CallMethodObjArgs`"
msgstr ""
#: c-api/call.rst:213 c-api/call.rst:215
#: c-api/call.rst:207 c-api/call.rst:209
msgid "obj + name"
msgstr ""
#: c-api/call.rst:213
#: c-api/call.rst:207
msgid ":c:func:`PyObject_CallMethodNoArgs`"
msgstr ""
#: c-api/call.rst:215
#: c-api/call.rst:209
msgid ":c:func:`PyObject_CallMethodOneArg`"
msgstr ""
#: c-api/call.rst:217
#: c-api/call.rst:211
msgid ":c:func:`PyObject_Vectorcall`"
msgstr ""
#: c-api/call.rst:219 c-api/call.rst:221
#: c-api/call.rst:213 c-api/call.rst:215
msgid "vectorcall"
msgstr ""
#: c-api/call.rst:219
#: c-api/call.rst:213
msgid ":c:func:`PyObject_VectorcallDict`"
msgstr ""
#: c-api/call.rst:221
#: c-api/call.rst:215
msgid ":c:func:`PyObject_VectorcallMethod`"
msgstr ""
#: c-api/call.rst:221
#: c-api/call.rst:215
msgid "arg + name"
msgstr ""
#: c-api/call.rst:227
#: c-api/call.rst:221
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*, and named arguments given by the dictionary *kwargs*."
@ -386,49 +381,49 @@ msgstr ""
"le *n*-uplet *args*, et des arguments nommés donnés par le dictionnaire "
"*kwargs*."
#: c-api/call.rst:230
#: c-api/call.rst:224
msgid ""
"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If "
"no named arguments are needed, *kwargs* can be *NULL*."
msgstr ""
#: c-api/call.rst:245 c-api/call.rst:269 c-api/call.rst:301 c-api/call.rst:334
#: c-api/call.rst:357 c-api/call.rst:410
#: c-api/call.rst:239 c-api/call.rst:261 c-api/call.rst:293 c-api/call.rst:326
#: c-api/call.rst:347 c-api/call.rst:394
msgid ""
"Return the result of the call on success, or raise an exception and return "
"*NULL* on failure."
msgstr ""
#: c-api/call.rst:236
#: c-api/call.rst:230
msgid ""
"This is the equivalent of the Python expression: ``callable(*args, "
"**kwargs)``."
msgstr ""
"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``."
#: c-api/call.rst:242
#: c-api/call.rst:236
msgid ""
"Call a callable Python object *callable* without any arguments. It is the "
"most efficient way to call a callable Python object without any argument."
msgstr ""
#: c-api/call.rst:253
#: c-api/call.rst:247
msgid ""
"Call a callable Python object *callable* with exactly 1 positional argument "
"*arg* and no keyword arguments."
msgstr ""
#: c-api/call.rst:266
#: c-api/call.rst:258
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*. If no arguments are needed, then *args* can be *NULL*."
msgstr ""
#: c-api/call.rst:284
#: c-api/call.rst:276
msgid "This is the equivalent of the Python expression: ``callable(*args)``."
msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
#: c-api/call.rst:277
#: c-api/call.rst:269
msgid ""
"Call a callable Python object *callable*, with a variable number of C "
"arguments. The C arguments are described using a :c:func:`Py_BuildValue` "
@ -436,92 +431,92 @@ msgid ""
"are provided."
msgstr ""
#: c-api/call.rst:286
#: c-api/call.rst:278
msgid ""
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:289
#: c-api/call.rst:281
msgid "The type of *format* was changed from ``char *``."
msgstr ""
#: c-api/call.rst:295
#: c-api/call.rst:287
msgid ""
"Call the method named *name* of object *obj* with a variable number of C "
"arguments. The C arguments are described by a :c:func:`Py_BuildValue` "
"format string that should produce a tuple."
msgstr ""
#: c-api/call.rst:299
#: c-api/call.rst:291
msgid "The format can be *NULL*, indicating that no arguments are provided."
msgstr ""
#: c-api/call.rst:304
#: c-api/call.rst:296
msgid ""
"This is the equivalent of the Python expression: ``obj.name(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:307
#: c-api/call.rst:299
msgid ""
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:310
#: c-api/call.rst:302
msgid "The types of *name* and *format* were changed from ``char *``."
msgstr ""
#: c-api/call.rst:316
#: c-api/call.rst:308
msgid ""
"Call a callable Python object *callable*, with a variable number of :c:type:"
"Call a callable Python object *callable*, with a variable number of :c:expr:"
"`PyObject *` arguments. The arguments are provided as a variable number of "
"parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:323
#: c-api/call.rst:315
msgid ""
"This is the equivalent of the Python expression: ``callable(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:329
#: c-api/call.rst:321
msgid ""
"Call a method of the Python object *obj*, where the name of the method is "
"given as a Python string object in *name*. It is called with a variable "
"number of :c:type:`PyObject *` arguments. The arguments are provided as a "
"number of :c:expr:`PyObject *` arguments. The arguments are provided as a "
"variable number of parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:340
#: c-api/call.rst:332
msgid ""
"Call a method of the Python object *obj* without arguments, where the name "
"of the method is given as a Python string object in *name*."
msgstr ""
#: c-api/call.rst:353
#: c-api/call.rst:343
msgid ""
"Call a method of the Python object *obj* with a single positional argument "
"*arg*, where the name of the method is given as a Python string object in "
"*name*."
msgstr ""
#: c-api/call.rst:367
#: c-api/call.rst:355
msgid ""
"Call a callable Python object *callable*. The arguments are the same as for :"
"c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly "
"calls the vectorcall function stored in *callable*."
msgstr ""
#: c-api/call.rst:381
#: c-api/call.rst:367
msgid ""
"Call *callable* with positional arguments passed exactly as in the "
"vectorcall_ protocol, but with keyword arguments passed as a dictionary "
"*kwdict*. The *args* array contains only the positional arguments."
msgstr ""
#: c-api/call.rst:385
#: c-api/call.rst:371
msgid ""
"Regardless of which protocol is used internally, a conversion of arguments "
"needs to be done. Therefore, this function should only be used if the caller "
@ -529,7 +524,7 @@ msgid ""
"tuple for the positional arguments."
msgstr ""
#: c-api/call.rst:397
#: c-api/call.rst:381
msgid ""
"Call a method using the vectorcall calling convention. The name of the "
"method is given as a Python string *name*. The object whose method is called "
@ -541,17 +536,17 @@ msgid ""
"`PyObject_Vectorcall`."
msgstr ""
#: c-api/call.rst:406
#: c-api/call.rst:390
msgid ""
"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"will call the unbound method object with the full *args* vector as arguments."
msgstr ""
#: c-api/call.rst:419
#: c-api/call.rst:401
msgid "Call Support API"
msgstr ""
#: c-api/call.rst:423
#: c-api/call.rst:405
msgid ""
"Determine if the object *o* is callable. Return ``1`` if the object is "
"callable and ``0`` otherwise. This function always succeeds."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -28,7 +28,7 @@ msgstr ""
#: c-api/capsule.rst:17
msgid ""
"This subtype of :c:type:`PyObject` represents an opaque value, useful for C "
"extension modules who need to pass an opaque value (as a :c:type:`void*` "
"extension modules who need to pass an opaque value (as a :c:expr:`void*` "
"pointer) through Python code to other C code. It is often used to make a C "
"function pointer defined in one module available to other modules, so the "
"regular import mechanism can be used to access C APIs defined in dynamically "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-02-15 00:30+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -131,3 +131,25 @@ msgid ""
"not necessarily represent the bytecode actually executed by CPython. The "
"primary use case for this function is debuggers and profilers."
msgstr ""
#: c-api/code.rst:95
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the local "
"variables. On error, ``NULL`` is returned and an exception is raised."
msgstr ""
#: c-api/code.rst:104
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the local "
"variables that are referenced by nested functions. On error, ``NULL`` is "
"returned and an exception is raised."
msgstr ""
#: c-api/code.rst:113
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new "
"reference to a :c:type:`PyTupleObject` containing the names of the free "
"variables. On error, ``NULL`` is returned and an exception is raised."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-06-22 09:58+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-01-14 20:31+0100\n"
"Last-Translator: ANTOINE FOURES <afoures@student.42.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -174,13 +174,15 @@ msgstr ""
"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*."
#: c-api/complex.rst:118
msgid "Return the real part of *op* as a C :c:type:`double`."
#, fuzzy
msgid "Return the real part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:"
"`double` en C."
#: c-api/complex.rst:123
msgid "Return the imaginary part of *op* as a C :c:type:`double`."
#, fuzzy
msgid "Return the imaginary part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:"
"type:`double` en C."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -51,58 +51,60 @@ msgid ""
"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. "
"They never write more than *size* bytes (including the trailing ``'\\0'``) "
"into str. Both functions require that ``str != NULL``, ``size > 0``, "
"``format != NULL`` and ``size < INT_MAX``."
"``format != NULL`` and ``size < INT_MAX``. Note that this means there is no "
"equivalent to the C99 ``n = snprintf(NULL, 0, ...)`` which would determine "
"the necessary buffer size."
msgstr ""
#: c-api/conversion.rst:33
#: c-api/conversion.rst:34
msgid ""
"The return value (*rv*) for these functions should be interpreted as follows:"
msgstr ""
#: c-api/conversion.rst:35
#: c-api/conversion.rst:36
msgid ""
"When ``0 <= rv < size``, the output conversion was successful and *rv* "
"characters were written to *str* (excluding the trailing ``'\\0'`` byte at "
"``str[rv]``)."
msgstr ""
#: c-api/conversion.rst:39
#: c-api/conversion.rst:40
msgid ""
"When ``rv >= size``, the output conversion was truncated and a buffer with "
"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is "
"``'\\0'`` in this case."
msgstr ""
#: c-api/conversion.rst:43
#: c-api/conversion.rst:44
msgid ""
"When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in "
"this case too, but the rest of *str* is undefined. The exact cause of the "
"error depends on the underlying platform."
msgstr ""
#: c-api/conversion.rst:48
#: c-api/conversion.rst:49
msgid ""
"The following functions provide locale-independent string to number "
"conversions."
msgstr ""
#: c-api/conversion.rst:52
#: c-api/conversion.rst:53
msgid ""
"Convert a string ``s`` to a :c:type:`double`, raising a Python exception on "
"Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on "
"failure. The set of accepted strings corresponds to the set of strings "
"accepted by Python's :func:`float` constructor, except that ``s`` must not "
"have leading or trailing whitespace. The conversion is independent of the "
"current locale."
msgstr ""
#: c-api/conversion.rst:58
#: c-api/conversion.rst:59
msgid ""
"If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:"
"`ValueError` and return ``-1.0`` if the string is not a valid representation "
"of a floating-point number."
msgstr ""
#: c-api/conversion.rst:62
#: c-api/conversion.rst:63
msgid ""
"If endptr is not ``NULL``, convert as much of the string as possible and set "
"``*endptr`` to point to the first unconverted character. If no initial "
@ -111,7 +113,7 @@ msgid ""
"ValueError, and return ``-1.0``."
msgstr ""
#: c-api/conversion.rst:69
#: c-api/conversion.rst:70
msgid ""
"If ``s`` represents a value that is too large to store in a float (for "
"example, ``\"1e500\"`` is such a string on many platforms) then if "
@ -122,50 +124,50 @@ msgid ""
"the first character after the converted value."
msgstr ""
#: c-api/conversion.rst:77
#: c-api/conversion.rst:78
msgid ""
"If any other error occurs during the conversion (for example an out-of-"
"memory error), set the appropriate Python exception and return ``-1.0``."
msgstr ""
#: c-api/conversion.rst:86
#: c-api/conversion.rst:87
msgid ""
"Convert a :c:type:`double` *val* to a string using supplied *format_code*, "
"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, "
"*precision*, and *flags*."
msgstr ""
#: c-api/conversion.rst:89
#: c-api/conversion.rst:90
msgid ""
"*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, "
"``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is "
"ignored. The ``'r'`` format code specifies the standard :func:`repr` format."
msgstr ""
#: c-api/conversion.rst:94
#: c-api/conversion.rst:95
msgid ""
"*flags* can be zero or more of the values ``Py_DTSF_SIGN``, "
"``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:"
msgstr ""
#: c-api/conversion.rst:97
#: c-api/conversion.rst:98
msgid ""
"``Py_DTSF_SIGN`` means to always precede the returned string with a sign "
"character, even if *val* is non-negative."
msgstr ""
#: c-api/conversion.rst:100
#: c-api/conversion.rst:101
msgid ""
"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look "
"like an integer."
msgstr ""
#: c-api/conversion.rst:103
#: c-api/conversion.rst:104
msgid ""
"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the "
"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details."
msgstr ""
#: c-api/conversion.rst:107
#: c-api/conversion.rst:108
msgid ""
"If *ptype* is non-``NULL``, then the value it points to will be set to one "
"of ``Py_DTST_FINITE``, ``Py_DTST_INFINITE``, or ``Py_DTST_NAN``, signifying "
@ -173,20 +175,20 @@ msgid ""
"respectively."
msgstr ""
#: c-api/conversion.rst:111
#: c-api/conversion.rst:112
msgid ""
"The return value is a pointer to *buffer* with the converted string or "
"``NULL`` if the conversion failed. The caller is responsible for freeing the "
"returned string by calling :c:func:`PyMem_Free`."
msgstr ""
#: c-api/conversion.rst:120
#: c-api/conversion.rst:121
msgid ""
"Case insensitive comparison of strings. The function works almost "
"identically to :c:func:`strcmp` except that it ignores the case."
msgstr ""
#: c-api/conversion.rst:126
#: c-api/conversion.rst:127
msgid ""
"Case insensitive comparison of strings. The function works almost "
"identically to :c:func:`strncmp` except that it ignores the case."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 11:57+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -207,7 +207,7 @@ msgstr ""
"normalisé pour que le nombre de microsecondes et de secondes tombe dans la "
"plage documentée pour les objets :class:`datetime.timedelta`."
#: c-api/datetime.rst:137
#: c-api/datetime.rst:138
msgid ""
"Return a :class:`datetime.timezone` object with an unnamed fixed offset "
"represented by the *offset* argument."
@ -215,7 +215,7 @@ msgstr ""
"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe "
"représenté par l'argument *offset*."
#: c-api/datetime.rst:144
#: c-api/datetime.rst:146
msgid ""
"Return a :class:`datetime.timezone` object with a fixed offset represented "
"by the *offset* argument and with tzname *name*."
@ -223,7 +223,7 @@ msgstr ""
"Renvoie un objet :class:`datetime.timezone` avec un décalage fixe représenté "
"par l'argument *offset* et avec le nom de fuseau horaire *name*."
#: c-api/datetime.rst:150
#: c-api/datetime.rst:152
#, fuzzy
msgid ""
"Macros to extract fields from date objects. The argument must be an "
@ -236,19 +236,19 @@ msgstr ""
"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est "
"pas vérifié :"
#: c-api/datetime.rst:157
#: c-api/datetime.rst:159
msgid "Return the year, as a positive int."
msgstr "Renvoie l'année, sous forme d'entier positif."
#: c-api/datetime.rst:162
#: c-api/datetime.rst:164
msgid "Return the month, as an int from 1 through 12."
msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12."
#: c-api/datetime.rst:167
#: c-api/datetime.rst:169
msgid "Return the day, as an int from 1 through 31."
msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31."
#: c-api/datetime.rst:170
#: c-api/datetime.rst:172
#, fuzzy
msgid ""
"Macros to extract fields from datetime objects. The argument must be an "
@ -259,27 +259,32 @@ msgstr ""
"une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-"
"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:205
#: c-api/datetime.rst:216
msgid "Return the hour, as an int from 0 through 23."
msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23."
#: c-api/datetime.rst:210
#: c-api/datetime.rst:221
msgid "Return the minute, as an int from 0 through 59."
msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59."
#: c-api/datetime.rst:215
#: c-api/datetime.rst:226
msgid "Return the second, as an int from 0 through 59."
msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59."
#: c-api/datetime.rst:220
#: c-api/datetime.rst:231
msgid "Return the microsecond, as an int from 0 through 999999."
msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999."
#: c-api/datetime.rst:224
#: c-api/datetime.rst:236
#, fuzzy
msgid "Return the fold, as an int from 0 through 1."
msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31."
#: c-api/datetime.rst:243
msgid "Return the tzinfo (which may be ``None``)."
msgstr ""
#: c-api/datetime.rst:199
#: c-api/datetime.rst:210
#, fuzzy
msgid ""
"Macros to extract fields from time objects. The argument must be an "
@ -290,7 +295,7 @@ msgstr ""
"instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. "
"L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:229
#: c-api/datetime.rst:248
#, fuzzy
msgid ""
"Macros to extract fields from time delta objects. The argument must be an "
@ -301,26 +306,26 @@ msgstr ""
"être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-"
"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :"
#: c-api/datetime.rst:235
#: c-api/datetime.rst:254
msgid "Return the number of days, as an int from -999999999 to 999999999."
msgstr ""
"Renvoie le nombre de jours, sous forme d'entier allant de ``-999999999`` à "
"``999999999``."
#: c-api/datetime.rst:242
#: c-api/datetime.rst:261
msgid "Return the number of seconds, as an int from 0 through 86399."
msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399."
#: c-api/datetime.rst:249
#: c-api/datetime.rst:268
msgid "Return the number of microseconds, as an int from 0 through 999999."
msgstr ""
"Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999."
#: c-api/datetime.rst:254
#: c-api/datetime.rst:273
msgid "Macros for the convenience of modules implementing the DB API:"
msgstr "Macros de confort pour les modules implémentant l'API DB :"
#: c-api/datetime.rst:258
#: c-api/datetime.rst:277
msgid ""
"Create and return a new :class:`datetime.datetime` object given an argument "
"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`."
@ -328,7 +333,7 @@ msgstr ""
"Crée et renvoie un nouvel objet :class:`datetime.datetime` à partir d'un n-"
"uplet qui peut être passé à :meth:`datetime.datetime.fromtimestamp()`."
#: c-api/datetime.rst:264
#: c-api/datetime.rst:283
msgid ""
"Create and return a new :class:`datetime.date` object given an argument "
"tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-07-03 11:36+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -84,7 +84,7 @@ msgstr ""
#: c-api/dict.rst:75
msgid ""
"Insert *val* into the dictionary *p* using *key* as a key. *key* should be "
"a :c:type:`const char*`. The key object is created using "
"a :c:expr:`const char*`. The key object is created using "
"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on "
"failure. This function *does not* steal a reference to *val*."
msgstr ""
@ -132,7 +132,7 @@ msgstr ""
#: c-api/dict.rst:120
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*`."
"expr:`const char*`, rather than a :c:expr:`PyObject*`."
msgstr ""
#: c-api/dict.rst:123
@ -180,7 +180,7 @@ msgid ""
"`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the "
"first call to this function to start the iteration; the function returns "
"true for each pair in the dictionary, and false once all pairs have been "
"reported. The parameters *pkey* and *pvalue* should either point to :c:type:"
"reported. The parameters *pkey* and *pvalue* should either point to :c:expr:"
"`PyObject*` variables that will be filled in with each key and value, "
"respectively, or may be ``NULL``. Any references returned through them are "
"borrowed. *ppos* should not be altered during iteration. Its value "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-04 12:24+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -28,8 +28,8 @@ msgid ""
"occurred. Most C API functions don't clear this on success, but will set it "
"to indicate the cause of the error on failure. Most C API functions also "
"return an error indicator, usually ``NULL`` if they are supposed to return a "
"pointer, or ``-1`` if they return an integer (exception: the :c:func:"
"`PyArg_\\*` functions return ``1`` for success and ``0`` for failure)."
"pointer, or ``-1`` if they return an integer (exception: the ``PyArg_*`` "
"functions return ``1`` for success and ``0`` for failure)."
msgstr ""
#: c-api/exceptions.rst:20
@ -219,12 +219,12 @@ msgstr ""
#: c-api/exceptions.rst:191
msgid ""
"This is a convenience function to raise :exc:`WindowsError`. If called with "
"*ierr* of :c:data:`0`, the error code returned by a call to :c:func:"
"`GetLastError` is used instead. It calls the Win32 function :c:func:"
"`FormatMessage` to retrieve the Windows description of error code given by "
"*ierr* or :c:func:`GetLastError`, then it constructs a tuple object whose "
"first item is the *ierr* value and whose second item is the corresponding "
"error message (gotten from :c:func:`FormatMessage`), and then calls "
"*ierr* of ``0``, the error code returned by a call to :c:func:`GetLastError` "
"is used instead. It calls the Win32 function :c:func:`FormatMessage` to "
"retrieve the Windows description of error code given by *ierr* or :c:func:"
"`GetLastError`, then it constructs a tuple object whose first item is the "
"*ierr* value and whose second item is the corresponding error message "
"(gotten from :c:func:`FormatMessage`), and then calls "
"``PyErr_SetObject(PyExc_WindowsError, object)``. This function always "
"returns ``NULL``."
msgstr ""
@ -387,10 +387,10 @@ msgstr ""
#: c-api/exceptions.rst:372
msgid ""
"Test whether the error indicator is set. If set, return the exception "
"*type* (the first argument to the last call to one of the :c:func:"
"`PyErr_Set\\*` functions or to :c:func:`PyErr_Restore`). If not set, return "
"``NULL``. You do not own a reference to the return value, so you do not "
"need to :c:func:`Py_DECREF` it."
"*type* (the first argument to the last call to one of the ``PyErr_Set*`` "
"functions or to :c:func:`PyErr_Restore`). If not set, return ``NULL``. You "
"do not own a reference to the return value, so you do not need to :c:func:"
"`Py_DECREF` it."
msgstr ""
#: c-api/exceptions.rst:378
@ -890,7 +890,7 @@ msgstr "Exceptions standards"
msgid ""
"All standard Python exceptions are available as global variables whose names "
"are ``PyExc_`` followed by the Python exception name. These have the type :"
"c:type:`PyObject*`; they are all class objects. For completeness, here are "
"c:expr:`PyObject*`; they are all class objects. For completeness, here are "
"all the variables:"
msgstr ""
@ -1401,7 +1401,7 @@ msgstr ""
msgid ""
"All standard Python warning categories are available as global variables "
"whose names are ``PyExc_`` followed by the Python exception name. These have "
"the type :c:type:`PyObject*`; they are all class objects. For completeness, "
"the type :c:expr:`PyObject*`; they are all class objects. For completeness, "
"here are all the variables:"
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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 12:00+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -23,7 +23,7 @@ msgstr "Objets fichiers"
#, fuzzy
msgid ""
"These APIs are a minimal emulation of the Python 2 C API for built-in file "
"objects, which used to rely on the buffered I/O (:c:type:`FILE*`) support "
"objects, which used to rely on the buffered I/O (:c:expr:`FILE*`) support "
"from the C standard library. In Python 3, files and streams use the new :"
"mod:`io` module, which defines several layers over the low-level unbuffered "
"I/O of the operating system. The functions described below are convenience "
@ -76,8 +76,9 @@ msgid "Ignore *name* attribute."
msgstr "ignore l'attribut *name*"
#: c-api/file.rst:41
#, fuzzy
msgid ""
"Return the file descriptor associated with *p* as an :c:type:`int`. If the "
"Return the file descriptor associated with *p* as an :c:expr:`int`. If the "
"object is an integer, its value is returned. If not, the object's :meth:"
"`~io.IOBase.fileno` method is called if it exists; the method must return an "
"integer, which is returned as the file descriptor value. Sets an exception "
@ -120,7 +121,7 @@ msgstr ""
#: c-api/file.rst:68
msgid ""
"The handler is a function of type :c:type:`PyObject *(\\*)(PyObject *path, "
"The handler is a function of type :c:expr:`PyObject *(\\*)(PyObject *path, "
"void *userData)`, where *path* is guaranteed to be :c:type:`PyUnicodeObject`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-01-14 15:30+0100\n"
"Last-Translator: ANTOINE FOURES <afoures@student.42.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -72,7 +72,7 @@ msgstr ""
#: c-api/float.rst:47
#, fuzzy
msgid ""
"Return a C :c:type:`double` representation of the contents of *pyfloat*. If "
"Return a C :c:expr:`double` representation of the contents of *pyfloat*. If "
"*pyfloat* is not a Python floating point object but has a :meth:`__float__` "
"method, this method will first be called to convert *pyfloat* into a float. "
"If ``__float__()`` is not defined then it falls back to :meth:`__index__`. "
@ -91,8 +91,9 @@ msgid "Use :meth:`__index__` if available."
msgstr ""
#: c-api/float.rst:60
#, fuzzy
msgid ""
"Return a C :c:type:`double` representation of the contents of *pyfloat*, but "
"Return a C :c:expr:`double` representation of the contents of *pyfloat*, but "
"without error checking."
msgstr ""
"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:"
@ -109,16 +110,18 @@ msgstr ""
"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`."
#: c-api/float.rst:73
#, fuzzy
msgid ""
"Return the maximum representable finite float *DBL_MAX* as C :c:type:"
"Return the maximum representable finite float *DBL_MAX* as C :c:expr:"
"`double`."
msgstr ""
"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme "
"d'un :c:type:`double` en C."
#: c-api/float.rst:78
#, fuzzy
msgid ""
"Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`."
"Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`."
msgstr ""
"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la "
"forme :c:type:`double` en C."
@ -131,8 +134,8 @@ msgstr ""
msgid ""
"The pack and unpack functions provide an efficient platform-independent way "
"to store floating-point values as byte strings. The Pack routines produce a "
"bytes string from a C :c:type:`double`, and the Unpack routines produce a C :"
"c:type:`double` from such a bytes string. The suffix (2, 4 or 8) specifies "
"bytes string from a C :c:expr:`double`, and the Unpack routines produce a C :"
"c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) specifies "
"the number of bytes in the bytes string."
msgstr ""
@ -162,7 +165,7 @@ msgstr ""
#: c-api/float.rst:109
msgid ""
"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:type:"
"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:"
"`int` argument, non-zero if you want the bytes string in little-endian "
"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero if you "
"want big-endian format (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` "
@ -207,7 +210,7 @@ msgstr ""
#: c-api/float.rst:140
msgid ""
"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:"
"type:`int` argument, non-zero if the bytes string is in little-endian format "
"expr:`int` argument, non-zero if the bytes string is in little-endian format "
"(exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-"
"endian (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` constant can be "
"used to use the native endian: it is equal to ``1`` on big endian processor, "

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3.11\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-23 00:48+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -45,62 +45,83 @@ msgstr ""
msgid "See also :ref:`Reflection <reflection>`."
msgstr ""
#: c-api/frame.rst:25
#: c-api/frame.rst:24
msgid ""
"The type of frame objects. It is the same object as :py:class:`types."
"FrameType` in the Python layer."
msgstr ""
#: c-api/frame.rst:29
msgid ""
"Previously, this type was only available after including ``<frameobject.h>``."
msgstr ""
#: c-api/frame.rst:34
msgid "Return non-zero if *obj* is a frame object."
msgstr ""
#: c-api/frame.rst:38
msgid ""
"Previously, this function was only available after including ``<frameobject."
"h>``."
msgstr ""
#: c-api/frame.rst:43
msgid "Get the *frame* next outer frame."
msgstr ""
#: c-api/frame.rst:27
#: c-api/frame.rst:45
msgid ""
"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame."
msgstr ""
#: c-api/frame.rst:35
#: c-api/frame.rst:53
msgid "Get the *frame*'s ``f_builtins`` attribute."
msgstr ""
#: c-api/frame.rst:68
#: c-api/frame.rst:86
msgid "Return a :term:`strong reference`. The result cannot be ``NULL``."
msgstr ""
#: c-api/frame.rst:44
#: c-api/frame.rst:62
msgid "Get the *frame* code."
msgstr ""
#: c-api/frame.rst:86
#: c-api/frame.rst:104
msgid "Return a :term:`strong reference`."
msgstr ""
#: c-api/frame.rst:48
#: c-api/frame.rst:66
msgid "The result (frame code) cannot be ``NULL``."
msgstr ""
#: c-api/frame.rst:55
#: c-api/frame.rst:73
msgid ""
"Get the generator, coroutine, or async generator that owns this frame, or "
"``NULL`` if this frame is not owned by a generator. Does not raise an "
"exception, even if the return value is ``NULL``."
msgstr ""
#: c-api/frame.rst:59
#: c-api/frame.rst:77
msgid "Return a :term:`strong reference`, or ``NULL``."
msgstr ""
#: c-api/frame.rst:66
#: c-api/frame.rst:84
msgid "Get the *frame*'s ``f_globals`` attribute."
msgstr ""
#: c-api/frame.rst:75
#: c-api/frame.rst:93
msgid "Get the *frame*'s ``f_lasti`` attribute."
msgstr ""
#: c-api/frame.rst:77
#: c-api/frame.rst:95
msgid "Returns -1 if ``frame.f_lasti`` is ``None``."
msgstr ""
#: c-api/frame.rst:84
#: c-api/frame.rst:102
msgid "Get the *frame*'s ``f_locals`` attribute (:class:`dict`)."
msgstr ""
#: c-api/frame.rst:93
#: c-api/frame.rst:111
msgid "Return the line number that *frame* is currently executing."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -277,8 +277,9 @@ msgid ""
msgstr ""
#: c-api/import.rst:268
#, fuzzy
msgid ""
"This pointer is initialized to point to an array of :c:type:`struct _frozen` "
"This pointer is initialized to point to an array of :c:struct:`_frozen` "
"records, terminated by one whose members are all ``NULL`` or zero. When a "
"frozen module is imported, it is searched in this table. Third-party code "
"could play tricks with this to provide a dynamically created collection of "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-11-29 18:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -556,7 +556,7 @@ msgstr ""
#: c-api/init.rst:529 c-api/init.rst:680 c-api/init.rst:706
msgid ""
"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:"
"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:"
"`wchar_*` string."
msgstr ""
@ -984,11 +984,11 @@ msgstr ""
#: c-api/init.rst:850
msgid ""
"Note that the :c:func:`PyGILState_\\*` functions assume there is only one "
"global interpreter (created automatically by :c:func:`Py_Initialize`). "
"Python supports the creation of additional interpreters (using :c:func:"
"`Py_NewInterpreter`), but mixing multiple interpreters and the :c:func:"
"`PyGILState_\\*` API is unsupported."
"Note that the ``PyGILState_*`` functions assume there is only one global "
"interpreter (created automatically by :c:func:`Py_Initialize`). Python "
"supports the creation of additional interpreters (using :c:func:"
"`Py_NewInterpreter`), but mixing multiple interpreters and the "
"``PyGILState_*`` API is unsupported."
msgstr ""
#: c-api/init.rst:860
@ -1064,7 +1064,7 @@ msgstr ""
#: c-api/init.rst:916
msgid ""
"This data structure represents the state of a single thread. The only "
"public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which "
"public data member is :attr:`interp` (:c:expr:`PyInterpreterState *`), which "
"points to this thread's interpreter state."
msgstr ""
@ -1459,7 +1459,7 @@ msgstr ""
#: c-api/init.rst:1293
msgid ""
"The type of the *id* parameter changed from :c:type:`long` to :c:type:"
"The type of the *id* parameter changed from :c:expr:`long` to :c:expr:"
"`unsigned long`."
msgstr ""
@ -1653,10 +1653,10 @@ msgstr ""
#: c-api/init.rst:1481
msgid ""
"Also note that combining this functionality with :c:func:`PyGILState_\\*` "
"APIs is delicate, because these APIs assume a bijection between Python "
"thread states and OS-level threads, an assumption broken by the presence of "
"sub-interpreters. It is highly recommended that you don't switch sub-"
"Also note that combining this functionality with ``PyGILState_*`` APIs is "
"delicate, because these APIs assume a bijection between Python thread states "
"and OS-level threads, an assumption broken by the presence of sub-"
"interpreters. It is highly recommended that you don't switch sub-"
"interpreters between a pair of matching :c:func:`PyGILState_Ensure` and :c:"
"func:`PyGILState_Release` calls. Furthermore, extensions (such as :mod:"
"`ctypes`) using these APIs to allow calling of Python code from non-Python "
@ -1968,7 +1968,7 @@ msgid ""
"(TLS) which wraps the underlying native TLS implementation to support the "
"Python-level thread local storage API (:class:`threading.local`). The "
"CPython C level APIs are similar to those offered by pthreads and Windows: "
"use a thread key and functions to associate a :c:type:`void*` value per "
"use a thread key and functions to associate a :c:expr:`void*` value per "
"thread."
msgstr ""
@ -1987,8 +1987,8 @@ msgstr ""
#: c-api/init.rst:1743
msgid ""
"None of these API functions handle memory management on behalf of the :c:"
"type:`void*` values. You need to allocate and deallocate them yourself. If "
"the :c:type:`void*` values happen to be :c:type:`PyObject*`, these functions "
"expr:`void*` values. You need to allocate and deallocate them yourself. If "
"the :c:expr:`void*` values happen to be :c:expr:`PyObject*`, these functions "
"don't do refcount operations on them either."
msgstr ""
@ -2000,7 +2000,7 @@ msgstr ""
msgid ""
"TSS API is introduced to supersede the use of the existing TLS API within "
"the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` "
"instead of :c:type:`int` to represent thread keys."
"instead of :c:expr:`int` to represent thread keys."
msgstr ""
#: c-api/init.rst:1759
@ -2048,12 +2048,12 @@ msgstr ""
msgid ""
"Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first "
"calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals "
"have been unassigned. This is a no-op if the *key* argument is `NULL`."
"have been unassigned. This is a no-op if the *key* argument is ``NULL``."
msgstr ""
#: c-api/init.rst:1802
msgid ""
"A freed key becomes a dangling pointer. You should reset the key to `NULL`."
"A freed key becomes a dangling pointer. You should reset the key to ``NULL``."
msgstr ""
#: c-api/init.rst:1807
@ -2094,14 +2094,14 @@ msgstr ""
#: c-api/init.rst:1841
msgid ""
"Return a zero value to indicate successfully associating a :c:type:`void*` "
"Return a zero value to indicate successfully associating a :c:expr:`void*` "
"value with a TSS key in the current thread. Each thread has a distinct "
"mapping of the key to a :c:type:`void*` value."
"mapping of the key to a :c:expr:`void*` value."
msgstr ""
#: c-api/init.rst:1848
msgid ""
"Return the :c:type:`void*` value associated with a TSS key in the current "
"Return the :c:expr:`void*` value associated with a TSS key in the current "
"thread. This returns ``NULL`` if no value is associated with the key in the "
"current thread."
msgstr ""

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -313,13 +313,13 @@ msgstr ""
#: c-api/intro.rst:266
msgid ""
"Most Python/C API functions have one or more arguments as well as a return "
"value of type :c:type:`PyObject*`. This type is a pointer to an opaque data "
"value of type :c:expr:`PyObject*`. This type is a pointer to an opaque data "
"type representing an arbitrary Python object. Since all Python object types "
"are treated the same way by the Python language in most situations (e.g., "
"assignments, scope rules, and argument passing), it is only fitting that "
"they should be represented by a single C type. Almost all Python objects "
"live on the heap: you never declare an automatic or static variable of type :"
"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject*` can "
"c:type:`PyObject`, only pointer variables of type :c:expr:`PyObject*` can "
"be declared. The sole exception are the type objects; since these must "
"never be deallocated, they are typically static :c:type:`PyTypeObject` "
"objects."
@ -532,8 +532,8 @@ msgstr ""
#: c-api/intro.rst:532
msgid ""
"There are few other data types that play a significant role in the Python/C "
"API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:"
"`double` and :c:type:`char*`. A few structure types are used to describe "
"API; most are simple C types such as :c:expr:`int`, :c:expr:`long`, :c:expr:"
"`double` and :c:expr:`char*`. A few structure types are used to describe "
"static tables used to list the functions exported by a module or the data "
"attributes of a new object type, and another is used to describe the value "
"of a complex number. These will be discussed together with the functions "
@ -746,7 +746,7 @@ msgid ""
"`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are "
"available that support tracing of reference counts, debugging the memory "
"allocator, or low-level profiling of the main interpreter loop. Only the "
"most frequently-used builds will be described in the remainder of this "
"most frequently used builds will be described in the remainder of this "
"section."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -78,7 +78,7 @@ msgstr ""
#: c-api/long.rst:50
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, "
"or ``NULL`` on failure."
msgstr ""
@ -96,13 +96,13 @@ msgstr ""
#: c-api/long.rst:68
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or "
"``NULL`` on failure."
msgstr ""
#: c-api/long.rst:74
msgid ""
"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long "
"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long "
"long`, or ``NULL`` on failure."
msgstr ""
@ -139,7 +139,7 @@ msgstr ""
#: c-api/long.rst:136
msgid ""
"Return a C :c:type:`long` representation of *obj*. If *obj* is not an "
"Return a C :c:expr:`long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
@ -147,7 +147,7 @@ msgstr ""
#: c-api/long.rst:122
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"type:`long`."
"expr:`long`."
msgstr ""
#: c-api/long.rst:145 c-api/long.rst:186 c-api/long.rst:209
@ -172,7 +172,7 @@ msgstr ""
#: c-api/long.rst:177
msgid ""
"Return a C :c:type:`long long` representation of *obj*. If *obj* is not an "
"Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
@ -180,7 +180,7 @@ msgstr ""
#: c-api/long.rst:163
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"type:`long long`."
"expr:`long long`."
msgstr ""
#: c-api/long.rst:181
@ -205,14 +205,14 @@ msgstr ""
#: c-api/long.rst:218
msgid ""
"Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* "
"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* "
"must be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:221
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`unsigned long`."
"expr:`unsigned long`."
msgstr ""
#: c-api/long.rst:224
@ -241,14 +241,14 @@ msgstr ""
#: c-api/long.rst:249
msgid ""
"Return a C :c:type:`unsigned long long` representation of *pylong*. "
"Return a C :c:expr:`unsigned long long` representation of *pylong*. "
"*pylong* must be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:252
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :"
"c:type:`unsigned long long`."
"c:expr:`unsigned long long`."
msgstr ""
#: c-api/long.rst:255
@ -264,14 +264,14 @@ msgstr ""
#: c-api/long.rst:264
msgid ""
"Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not "
"Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not "
"an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` "
"method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:268
msgid ""
"If the value of *obj* is out of range for an :c:type:`unsigned long`, return "
"If the value of *obj* is out of range for an :c:expr:`unsigned long`, return "
"the reduction of that value modulo ``ULONG_MAX + 1``."
msgstr ""
@ -283,14 +283,14 @@ msgstr ""
#: c-api/long.rst:283
msgid ""
"Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* "
"Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* "
"is not an instance of :c:type:`PyLongObject`, first call its :meth:"
"`__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:288
msgid ""
"If the value of *obj* is out of range for an :c:type:`unsigned long long`, "
"If the value of *obj* is out of range for an :c:expr:`unsigned long long`, "
"return the reduction of that value modulo ``ULLONG_MAX + 1``."
msgstr ""
@ -302,14 +302,14 @@ msgstr ""
#: c-api/long.rst:303
msgid ""
"Return a C :c:type:`double` representation of *pylong*. *pylong* must be an "
"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:306
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`double`."
"expr:`double`."
msgstr ""
#: c-api/long.rst:309
@ -319,9 +319,9 @@ msgstr ""
#: c-api/long.rst:314
msgid ""
"Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* "
"Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* "
"cannot be converted, an :exc:`OverflowError` will be raised. This is only "
"assured to produce a usable :c:type:`void` pointer for values created with :"
"assured to produce a usable :c:expr:`void` pointer for values created with :"
"c:func:`PyLong_FromVoidPtr`."
msgstr ""

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: 2023-01-15 22:33+0100\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"
@ -41,9 +41,9 @@ msgstr ""
#: c-api/marshal.rst:24
msgid ""
"Marshal a :c:type:`long` integer, *value*, to *file*. This will only write "
"Marshal a :c:expr:`long` integer, *value*, to *file*. This will only write "
"the least-significant 32 bits of *value*; regardless of the size of the "
"native :c:type:`long` type. *version* indicates the file format."
"native :c:expr:`long` type. *version* indicates the file format."
msgstr ""
#: c-api/marshal.rst:31
@ -64,9 +64,9 @@ msgstr ""
#: c-api/marshal.rst:46
msgid ""
"Return a C :c:type:`long` from the data stream in a :c:type:`FILE*` opened "
"Return a C :c:expr:`long` from the data stream in a :c:expr:`FILE*` opened "
"for reading. Only a 32-bit value can be read in using this function, "
"regardless of the native size of :c:type:`long`."
"regardless of the native size of :c:expr:`long`."
msgstr ""
#: c-api/marshal.rst:60
@ -77,14 +77,14 @@ msgstr ""
#: c-api/marshal.rst:56
msgid ""
"Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened "
"Return a C :c:expr:`short` from the data stream in a :c:expr:`FILE*` opened "
"for reading. Only a 16-bit value can be read in using this function, "
"regardless of the native size of :c:type:`short`."
"regardless of the native size of :c:expr:`short`."
msgstr ""
#: c-api/marshal.rst:66
msgid ""
"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading."
msgstr ""
@ -96,7 +96,7 @@ msgstr ""
#: c-api/marshal.rst:75
msgid ""
"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function "
"assumes that no further objects will be read from the file, allowing it to "
"aggressively load file data into memory so that the de-serialization can "

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-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -65,9 +65,9 @@ msgstr ""
#: c-api/module.rst:67
msgid ""
"It is recommended extensions use other :c:func:`PyModule_\\*` and :c:func:"
"`PyObject_\\*` functions rather than directly manipulate a module's :attr:"
"`~object.__dict__`."
"It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` "
"functions rather than directly manipulate a module's :attr:`~object."
"__dict__`."
msgstr ""
#: c-api/module.rst:78

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-08-16 22:56+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -185,7 +185,20 @@ msgstr ""
"Une implémentation générique de l'accesseur d'un descripteur d'un "
"``__dict__``. Crée le dictionnaire si nécessaire."
#: c-api/object.rst:134
#: c-api/object.rst:129
msgid ""
"This function may also be called to get the :py:attr:`~object.__dict__` of "
"the object *o*. Pass ``NULL`` for *context* when calling it. Since this "
"function may need to allocate memory for the dictionary, it may be more "
"efficient to call :c:func:`PyObject_GetAttr` when accessing an attribute on "
"the object."
msgstr ""
#: c-api/object.rst:135
msgid "On failure, returns ``NULL`` with an exception set."
msgstr ""
#: c-api/object.rst:142
msgid ""
"A generic implementation for the setter of a ``__dict__`` descriptor. This "
"implementation does not allow the dictionary to be deleted."
@ -193,7 +206,20 @@ msgstr ""
"Une implémentation générique du mutateur d'un descripteur de ``__dict__``. "
"Cette implémentation n'autorise pas la suppression du dictionnaire."
#: c-api/object.rst:142
#: c-api/object.rst:150
msgid ""
"Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. If "
"there is no ``__dict__``, return ``NULL`` without setting an exception."
msgstr ""
#: c-api/object.rst:153
msgid ""
"This function may need to allocate memory for the dictionary, so it may be "
"more efficient to call :c:func:`PyObject_GetAttr` when accessing an "
"attribute on the object."
msgstr ""
#: c-api/object.rst:160
#, fuzzy
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
@ -212,7 +238,7 @@ msgstr ""
"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en "
"cas d'échec."
#: c-api/object.rst:152
#: c-api/object.rst:170
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:"
@ -230,7 +256,7 @@ msgstr ""
"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur "
"correspondant à *opid*."
#: c-api/object.rst:161
#: c-api/object.rst:179
msgid ""
"If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` "
"will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`."
@ -238,7 +264,7 @@ msgstr ""
"Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` "
"renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`."
#: c-api/object.rst:168
#: c-api/object.rst:186
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -251,7 +277,7 @@ msgstr ""
"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé "
"par la fonction native :func:`repr`."
#: c-api/object.rst:196
#: c-api/object.rst:214
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -259,7 +285,7 @@ msgstr ""
"Cette fonction inclut maintenant une assertion de débogage afin d'assurer "
"qu'elle ne passe pas sous silence une exception active."
#: c-api/object.rst:180
#: c-api/object.rst:198
msgid ""
"As :c:func:`PyObject_Repr`, compute a string representation of object *o*, "
"but escape the non-ASCII characters in the string returned by :c:func:"
@ -274,7 +300,7 @@ msgstr ""
"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction "
"native :func:`ascii`."
#: c-api/object.rst:191
#: c-api/object.rst:209
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -288,7 +314,7 @@ msgstr ""
"par la fonction native :func:`str`, et, par conséquent, par la fonction :"
"func:`print`."
#: c-api/object.rst:205
#: c-api/object.rst:223
#, fuzzy
msgid ""
"Compute a bytes representation of object *o*. ``NULL`` is returned on "
@ -303,7 +329,7 @@ msgstr ""
"entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée "
"lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros."
#: c-api/object.rst:214
#: c-api/object.rst:232
msgid ""
"Return ``1`` if the class *derived* is identical to or derived from the "
"class *cls*, otherwise return ``0``. In case of an error, return ``-1``."
@ -311,7 +337,7 @@ msgstr ""
"Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe "
"*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``."
#: c-api/object.rst:236
#: c-api/object.rst:254
msgid ""
"If *cls* is a tuple, the check will be done against every entry in *cls*. "
"The result will be ``1`` when at least one of the checks returns ``1``, "
@ -321,7 +347,7 @@ msgstr ""
"*cls*. Le résultat sera ``1`` quand au moins une des vérifications renvoie "
"``1``, sinon ce sera ``0``."
#: c-api/object.rst:221
#: c-api/object.rst:239
msgid ""
"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -333,7 +359,7 @@ msgstr ""
"Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe "
"directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``."
#: c-api/object.rst:226
#: c-api/object.rst:244
msgid ""
"Normally only class objects, i.e. instances of :class:`type` or a derived "
"class, are considered classes. However, objects can override this by having "
@ -344,7 +370,7 @@ msgstr ""
"les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` "
"(qui doit être un *n*-uplet de classes de bases)."
#: c-api/object.rst:233
#: c-api/object.rst:251
msgid ""
"Return ``1`` if *inst* is an instance of the class *cls* or a subclass of "
"*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception."
@ -353,7 +379,7 @@ msgstr ""
"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et "
"initialise une exception."
#: c-api/object.rst:240
#: c-api/object.rst:258
msgid ""
"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -364,7 +390,7 @@ msgstr ""
"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de "
"*cls*."
#: c-api/object.rst:244
#: c-api/object.rst:262
msgid ""
"An instance *inst* can override what is considered its class by having a :"
"attr:`__class__` attribute."
@ -372,7 +398,7 @@ msgstr ""
"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en "
"ayant un attribut :attr:`__class__`."
#: c-api/object.rst:247
#: c-api/object.rst:265
msgid ""
"An object *cls* can override if it is considered a class, and what its base "
"classes are, by having a :attr:`__bases__` attribute (which must be a tuple "
@ -382,19 +408,19 @@ msgstr ""
"que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui "
"doit être un *n*-uplet des classes de base)."
#: c-api/object.rst:256
#: c-api/object.rst:274
msgid ""
"Compute and return the hash value of an object *o*. On failure, return "
"``-1``. This is the equivalent of the Python expression ``hash(o)``."
msgstr ""
#: c-api/object.rst:259
#: c-api/object.rst:277
msgid ""
"The return type is now Py_hash_t. This is a signed integer the same size "
"as :c:type:`Py_ssize_t`."
msgstr ""
#: c-api/object.rst:266
#: c-api/object.rst:284
msgid ""
"Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and "
"return ``-1``. This function receives special treatment when stored in a "
@ -402,38 +428,38 @@ msgid ""
"that it is not hashable."
msgstr ""
#: c-api/object.rst:274
#: c-api/object.rst:292
msgid ""
"Returns ``1`` if the object *o* is considered to be true, and ``0`` "
"otherwise. This is equivalent to the Python expression ``not not o``. On "
"failure, return ``-1``."
msgstr ""
#: c-api/object.rst:281
#: c-api/object.rst:299
msgid ""
"Returns ``0`` if the object *o* is considered to be true, and ``1`` "
"otherwise. This is equivalent to the Python expression ``not o``. On "
"failure, return ``-1``."
msgstr ""
#: c-api/object.rst:290
#: c-api/object.rst:308
msgid ""
"When *o* is non-``NULL``, returns a type object corresponding to the object "
"type of object *o*. On failure, raises :exc:`SystemError` and returns "
"``NULL``. This is equivalent to the Python expression ``type(o)``. This "
"function increments the reference count of the return value. There's really "
"no reason to use this function instead of the :c:func:`Py_TYPE()` function, "
"which returns a pointer of type :c:type:`PyTypeObject*`, except when the "
"which returns a pointer of type :c:expr:`PyTypeObject*`, except when the "
"incremented reference count is needed."
msgstr ""
#: c-api/object.rst:301
#: c-api/object.rst:319
msgid ""
"Return non-zero if the object *o* is of type *type* or a subtype of *type*, "
"and ``0`` otherwise. Both parameters must be non-``NULL``."
msgstr ""
#: c-api/object.rst:310
#: c-api/object.rst:328
msgid ""
"Return the length of object *o*. If the object *o* provides either the "
"sequence and mapping protocols, the sequence length is returned. On error, "
@ -441,7 +467,7 @@ msgid ""
"``len(o)``."
msgstr ""
#: c-api/object.rst:317
#: c-api/object.rst:335
msgid ""
"Return an estimated length for the object *o*. First try to return its "
"actual length, then an estimate using :meth:`~object.__length_hint__`, and "
@ -450,7 +476,7 @@ msgid ""
"defaultvalue)``."
msgstr ""
#: c-api/object.rst:327
#: c-api/object.rst:345
#, fuzzy
msgid ""
"Return element of *o* corresponding to the object *key* or ``NULL`` on "
@ -460,7 +486,7 @@ msgstr ""
"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à "
"l'expression Python ``o.attr_name``."
#: c-api/object.rst:333
#: c-api/object.rst:351
#, fuzzy
msgid ""
"Map the object *key* to the value *v*. Raise an exception and return ``-1`` "
@ -472,7 +498,7 @@ msgstr ""
"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o."
"attr_name = v``."
#: c-api/object.rst:341
#: c-api/object.rst:359
#, fuzzy
msgid ""
"Remove the mapping for the object *key* from the object *o*. Return ``-1`` "
@ -482,7 +508,7 @@ msgstr ""
"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python "
"``del o[key]``."
#: c-api/object.rst:347
#: c-api/object.rst:365
msgid ""
"This is equivalent to the Python expression ``dir(o)``, returning a "
"(possibly empty) list of strings appropriate for the object argument, or "
@ -492,7 +518,7 @@ msgid ""
"`PyErr_Occurred` will return false."
msgstr ""
#: c-api/object.rst:356
#: c-api/object.rst:374
msgid ""
"This is equivalent to the Python expression ``iter(o)``. It returns a new "
"iterator for the object argument, or the object itself if the object is "
@ -500,7 +526,7 @@ msgid ""
"object cannot be iterated."
msgstr ""
#: c-api/object.rst:364
#: c-api/object.rst:382
msgid ""
"This is the equivalent to the Python expression ``aiter(o)``. Takes an :"
"class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -45,7 +45,7 @@ msgid ""
"In a normal \"release\" build, it contains only the object's reference count "
"and a pointer to the corresponding type object. Nothing is actually declared "
"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast "
"to a :c:type:`PyObject*`. Access to the members must be done by using the "
"to a :c:expr:`PyObject*`. Access to the members must be done by using the "
"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`."
msgstr ""
@ -117,7 +117,7 @@ msgstr ""
#: c-api/structures.rst:104
msgid ""
":c:func:`Py_TYPE()` is changed to an inline static function. The parameter "
"type is no longer :c:type:`const PyObject*`."
"type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: c-api/structures.rst:111
@ -140,7 +140,7 @@ msgid ""
msgstr ""
#: c-api/structures.rst:130
msgid "The parameter type is no longer :c:type:`const PyObject*`."
msgid "The parameter type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: c-api/structures.rst:133
@ -162,7 +162,7 @@ msgstr ""
#: c-api/structures.rst:150
msgid ""
":c:func:`Py_SIZE()` is changed to an inline static function. The parameter "
"type is no longer :c:type:`const PyVarObject*`."
"type is no longer :c:expr:`const PyVarObject*`."
msgstr ""
#: c-api/structures.rst:157
@ -189,7 +189,7 @@ msgstr ""
#: c-api/structures.rst:186
msgid ""
"Type of the functions used to implement most Python callables in C. "
"Functions of this type take two :c:type:`PyObject*` parameters and return "
"Functions of this type take two :c:expr:`PyObject*` parameters and return "
"one such value. If the return value is ``NULL``, an exception shall have "
"been set. If not ``NULL``, the return value is interpreted as the return "
"value of the function as exposed in Python. The function must return a new "
@ -231,95 +231,54 @@ msgid ""
"has four fields:"
msgstr ""
#: c-api/structures.rst:412 c-api/structures.rst:508
msgid "Field"
msgstr "Champ"
#: c-api/structures.rst:412 c-api/structures.rst:508
msgid "C Type"
msgstr "Type C"
#: c-api/structures.rst:412 c-api/structures.rst:508
msgid "Meaning"
msgstr "Signification"
#: c-api/structures.rst:253
msgid ":attr:`ml_name`"
msgstr ":attr:`ml_name`"
#: c-api/structures.rst:261 c-api/structures.rst:427 c-api/structures.rst:510
#: c-api/structures.rst:518
msgid "const char \\*"
msgstr ""
#: c-api/structures.rst:253
#: c-api/structures.rst:252
msgid "name of the method"
msgstr ""
#: c-api/structures.rst:255
msgid ":attr:`ml_meth`"
msgstr ":attr:`ml_meth`"
#: c-api/structures.rst:255
msgid "PyCFunction"
msgstr "PyCFunction"
#: c-api/structures.rst:255
#: c-api/structures.rst:256
msgid "pointer to the C implementation"
msgstr ""
#: c-api/structures.rst:258
msgid ":attr:`ml_flags`"
msgstr ":attr:`ml_flags`"
#: c-api/structures.rst:416 c-api/structures.rst:439
msgid "int"
msgstr "*int*"
#: c-api/structures.rst:258
msgid "flag bits indicating how the call should be constructed"
#: c-api/structures.rst:260
msgid "flags bits indicating how the call should be constructed"
msgstr ""
#: c-api/structures.rst:261
msgid ":attr:`ml_doc`"
msgstr ":attr:`ml_doc`"
#: c-api/structures.rst:427
#: c-api/structures.rst:426
msgid "points to the contents of the docstring"
msgstr ""
#: c-api/structures.rst:265
#: c-api/structures.rst:266
msgid ""
"The :attr:`ml_meth` is a C function pointer. The functions may be of "
"different types, but they always return :c:type:`PyObject*`. If the "
"The :c:member:`ml_meth` is a C function pointer. The functions may be of "
"different types, but they always return :c:expr:`PyObject*`. If the "
"function is not of the :c:type:`PyCFunction`, the compiler will require a "
"cast in the method table. Even though :c:type:`PyCFunction` defines the "
"first parameter as :c:type:`PyObject*`, it is common that the method "
"first parameter as :c:expr:`PyObject*`, it is common that the method "
"implementation uses the specific C type of the *self* object."
msgstr ""
#: c-api/structures.rst:272
#: c-api/structures.rst:273
msgid ""
"The :attr:`ml_flags` field is a bitfield which can include the following "
"The :c:member:`ml_flags` field is a bitfield which can include the following "
"flags. The individual flags indicate either a calling convention or a "
"binding convention."
msgstr ""
#: c-api/structures.rst:276
#: c-api/structures.rst:277
msgid "There are these calling conventions:"
msgstr ""
#: c-api/structures.rst:280
#: c-api/structures.rst:281
msgid ""
"This is the typical calling convention, where the methods have the type :c:"
"type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The "
"type:`PyCFunction`. The function expects two :c:expr:`PyObject*` values. The "
"first one is the *self* object for methods; for module functions, it is the "
"module object. The second parameter (often called *args*) is a tuple object "
"representing all arguments. This parameter is typically processed using :c:"
"func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`."
msgstr ""
#: c-api/structures.rst:290
#: c-api/structures.rst:291
msgid ""
"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. "
"The function expects three parameters: *self*, *args*, *kwargs* where "
@ -328,50 +287,46 @@ msgid ""
"using :c:func:`PyArg_ParseTupleAndKeywords`."
msgstr ""
#: c-api/structures.rst:299
#: c-api/structures.rst:300
msgid ""
"Fast calling convention supporting only positional arguments. The methods "
"have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the "
"second parameter is a C array of :c:type:`PyObject*` values indicating the "
"second parameter is a C array of :c:expr:`PyObject*` values indicating the "
"arguments and the third parameter is the number of arguments (the length of "
"the array)."
msgstr ""
#: c-api/structures.rst:309
#: c-api/structures.rst:310
msgid "``METH_FASTCALL`` is now part of the stable ABI."
msgstr ""
#: c-api/structures.rst:314
#: c-api/structures.rst:315
msgid ""
"Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with "
"methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments "
"are passed the same way as in the :ref:`vectorcall protocol <vectorcall>`: "
"there is an additional fourth :c:type:`PyObject*` parameter which is a tuple "
"there is an additional fourth :c:expr:`PyObject*` parameter which is a tuple "
"representing the names of the keyword arguments (which are guaranteed to be "
"strings) or possibly ``NULL`` if there are no keywords. The values of the "
"keyword arguments are stored in the *args* array, after the positional "
"arguments."
msgstr ""
#: c-api/structures.rst:324
msgid "This is not part of the :ref:`limited API <stable>`."
msgstr ""
#: c-api/structures.rst:331
#: c-api/structures.rst:330
msgid ""
"Extension of :const:`METH_FASTCALL | METH_KEYWORDS` supporting the *defining "
"class*, that is, the class that contains the method in question. The "
"defining class might be a superclass of ``Py_TYPE(self)``."
msgstr ""
#: c-api/structures.rst:335
#: c-api/structures.rst:334
msgid ""
"The method needs to be of type :c:type:`PyCMethod`, the same as for "
"``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added "
"after ``self``."
msgstr ""
#: c-api/structures.rst:344
#: c-api/structures.rst:343
msgid ""
"Methods without parameters don't need to check whether arguments are given "
"if they are listed with the :const:`METH_NOARGS` flag. They need to be of "
@ -380,22 +335,22 @@ msgid ""
"the second parameter will be ``NULL``."
msgstr ""
#: c-api/structures.rst:350
#: c-api/structures.rst:349
msgid ""
"The function must have 2 parameters. Since the second parameter is unused, :"
"c:macro:`Py_UNUSED` can be used to prevent a compiler warning."
msgstr ""
#: c-api/structures.rst:356
#: c-api/structures.rst:355
msgid ""
"Methods with a single object argument can be listed with the :const:`METH_O` "
"flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` "
"argument. They have the type :c:type:`PyCFunction`, with the *self* "
"parameter, and a :c:type:`PyObject*` parameter representing the single "
"parameter, and a :c:expr:`PyObject*` parameter representing the single "
"argument."
msgstr ""
#: c-api/structures.rst:362
#: c-api/structures.rst:361
msgid ""
"These two constants are not used to indicate the calling convention but the "
"binding when use with methods of classes. These may not be used for "
@ -403,27 +358,27 @@ msgid ""
"any given method."
msgstr ""
#: c-api/structures.rst:372
#: c-api/structures.rst:371
msgid ""
"The method will be passed the type object as the first parameter rather than "
"an instance of the type. This is used to create *class methods*, similar to "
"what is created when using the :func:`classmethod` built-in function."
msgstr ""
#: c-api/structures.rst:382
#: c-api/structures.rst:381
msgid ""
"The method will be passed ``NULL`` as the first parameter rather than an "
"instance of the type. This is used to create *static methods*, similar to "
"what is created when using the :func:`staticmethod` built-in function."
msgstr ""
#: c-api/structures.rst:386
#: c-api/structures.rst:385
msgid ""
"One other constant controls whether a method is loaded in place of another "
"definition with the same method name."
msgstr ""
#: c-api/structures.rst:392
#: c-api/structures.rst:391
msgid ""
"The method will be loaded in place of existing definitions. Without "
"*METH_COEXIST*, the default is to skip repeated definitions. Since slot "
@ -436,193 +391,213 @@ msgid ""
"calls."
msgstr ""
#: c-api/structures.rst:404
#: c-api/structures.rst:403
msgid "Accessing attributes of extension types"
msgstr ""
#: c-api/structures.rst:408
#: c-api/structures.rst:407
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member. Its fields are:"
msgstr ""
#: c-api/structures.rst:414
#: c-api/structures.rst:507
msgid "Field"
msgstr "Champ"
#: c-api/structures.rst:507
msgid "C Type"
msgstr "Type C"
#: c-api/structures.rst:507
msgid "Meaning"
msgstr "Signification"
#: c-api/structures.rst:413
msgid ":attr:`name`"
msgstr ":attr:`name`"
#: c-api/structures.rst:414
#: c-api/structures.rst:426 c-api/structures.rst:509 c-api/structures.rst:517
msgid "const char \\*"
msgstr ""
#: c-api/structures.rst:413
msgid "name of the member"
msgstr ""
#: c-api/structures.rst:416
#: c-api/structures.rst:415
msgid ":attr:`!type`"
msgstr ":attr:`!type`"
#: c-api/structures.rst:416
#: c-api/structures.rst:422 c-api/structures.rst:438
msgid "int"
msgstr "*int*"
#: c-api/structures.rst:415
msgid "the type of the member in the C struct"
msgstr ""
#: c-api/structures.rst:419
#: c-api/structures.rst:418
msgid ":attr:`offset`"
msgstr ":attr:`offset`"
#: c-api/structures.rst:455
#: c-api/structures.rst:454
msgid "Py_ssize_t"
msgstr ""
#: c-api/structures.rst:419
#: c-api/structures.rst:418
msgid ""
"the offset in bytes that the member is located on the type's object struct"
msgstr ""
#: c-api/structures.rst:423
#: c-api/structures.rst:422
msgid ":attr:`flags`"
msgstr ":attr:`flags`"
#: c-api/structures.rst:423
#: c-api/structures.rst:422
msgid "flag bits indicating if the field should be read-only or writable"
msgstr ""
#: c-api/structures.rst:427
#: c-api/structures.rst:426
msgid ":attr:`doc`"
msgstr ":attr:`doc`"
#: c-api/structures.rst:431
#: c-api/structures.rst:430
msgid ""
":attr:`!type` can be one of many ``T_`` macros corresponding to various C "
"types. When the member is accessed in Python, it will be converted to the "
"equivalent Python type."
msgstr ""
#: c-api/structures.rst:436
#: c-api/structures.rst:435
msgid "Macro name"
msgstr ""
#: c-api/structures.rst:436
#: c-api/structures.rst:435
msgid "C type"
msgstr "Type C"
#: c-api/structures.rst:438
#: c-api/structures.rst:437
msgid "T_SHORT"
msgstr ""
#: c-api/structures.rst:438
#: c-api/structures.rst:437
msgid "short"
msgstr ""
#: c-api/structures.rst:439
#: c-api/structures.rst:438
msgid "T_INT"
msgstr ""
#: c-api/structures.rst:440
#: c-api/structures.rst:439
msgid "T_LONG"
msgstr ""
#: c-api/structures.rst:440
#: c-api/structures.rst:439
msgid "long"
msgstr ""
#: c-api/structures.rst:441
#: c-api/structures.rst:440
msgid "T_FLOAT"
msgstr ""
#: c-api/structures.rst:441
#: c-api/structures.rst:440
msgid "float"
msgstr "*float*"
#: c-api/structures.rst:442
#: c-api/structures.rst:441
msgid "T_DOUBLE"
msgstr ""
#: c-api/structures.rst:442
#: c-api/structures.rst:441
msgid "double"
msgstr "double"
#: c-api/structures.rst:443
#: c-api/structures.rst:442
msgid "T_STRING"
msgstr ""
#: c-api/structures.rst:444
#: c-api/structures.rst:443
msgid "T_OBJECT"
msgstr ""
#: c-api/structures.rst:445
#: c-api/structures.rst:444
msgid "PyObject \\*"
msgstr "PyObject \\*"
#: c-api/structures.rst:445
#: c-api/structures.rst:444
msgid "T_OBJECT_EX"
msgstr ""
#: c-api/structures.rst:446
#: c-api/structures.rst:445
msgid "T_CHAR"
msgstr ""
#: c-api/structures.rst:447 c-api/structures.rst:452
#: c-api/structures.rst:446 c-api/structures.rst:451
msgid "char"
msgstr "char"
#: c-api/structures.rst:447
#: c-api/structures.rst:446
msgid "T_BYTE"
msgstr ""
#: c-api/structures.rst:448
#: c-api/structures.rst:447
msgid "T_UBYTE"
msgstr ""
#: c-api/structures.rst:448
#: c-api/structures.rst:447
msgid "unsigned char"
msgstr "``unsigned char``"
#: c-api/structures.rst:449
#: c-api/structures.rst:448
msgid "T_UINT"
msgstr ""
#: c-api/structures.rst:449
#: c-api/structures.rst:448
msgid "unsigned int"
msgstr "``unsigned int``"
#: c-api/structures.rst:450
#: c-api/structures.rst:449
msgid "T_USHORT"
msgstr ""
#: c-api/structures.rst:450
#: c-api/structures.rst:449
msgid "unsigned short"
msgstr "``unsigned short``"
#: c-api/structures.rst:451
#: c-api/structures.rst:450
msgid "T_ULONG"
msgstr ""
#: c-api/structures.rst:451
#: c-api/structures.rst:450
msgid "unsigned long"
msgstr "``unsigned long``"
#: c-api/structures.rst:452
#: c-api/structures.rst:451
msgid "T_BOOL"
msgstr ""
#: c-api/structures.rst:453
#: c-api/structures.rst:452
msgid "T_LONGLONG"
msgstr ""
#: c-api/structures.rst:453
#: c-api/structures.rst:452
msgid "long long"
msgstr ""
#: c-api/structures.rst:454
#: c-api/structures.rst:453
msgid "T_ULONGLONG"
msgstr ""
#: c-api/structures.rst:454
#: c-api/structures.rst:453
msgid "unsigned long long"
msgstr "``unsigned long long``"
#: c-api/structures.rst:455
#: c-api/structures.rst:454
msgid "T_PYSSIZET"
msgstr ""
#: c-api/structures.rst:458
#: c-api/structures.rst:457
msgid ""
":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:"
"`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:"
@ -632,7 +607,7 @@ msgid ""
"than :c:macro:`T_OBJECT`."
msgstr ""
#: c-api/structures.rst:465
#: c-api/structures.rst:464
msgid ""
":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` "
"for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:"
@ -641,7 +616,7 @@ msgid ""
"are set to ``NULL``)."
msgstr ""
#: c-api/structures.rst:473
#: c-api/structures.rst:472
msgid ""
"Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), "
"``PyMemberDef`` may contain definitions for the special members "
@ -652,100 +627,115 @@ msgid ""
"``T_PYSSIZET`` and ``READONLY``, for example::"
msgstr ""
#: c-api/structures.rst:490
#: c-api/structures.rst:489
msgid ""
"Get an attribute belonging to the object at address *obj_addr*. The "
"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error."
msgstr ""
#: c-api/structures.rst:497
#: c-api/structures.rst:496
msgid ""
"Set an attribute belonging to the object at address *obj_addr* to object "
"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns "
"``0`` if successful and a negative value on failure."
msgstr ""
#: c-api/structures.rst:504
#: c-api/structures.rst:503
msgid ""
"Structure to define property-like access for a type. See also description of "
"the :c:member:`PyTypeObject.tp_getset` slot."
msgstr ""
#: c-api/structures.rst:510
#: c-api/structures.rst:509
msgid "name"
msgstr ""
#: c-api/structures.rst:510
#: c-api/structures.rst:509
msgid "attribute name"
msgstr ""
#: c-api/structures.rst:512
#: c-api/structures.rst:511
msgid "get"
msgstr ""
#: c-api/structures.rst:512
#: c-api/structures.rst:511
msgid "getter"
msgstr ""
#: c-api/structures.rst:512
#: c-api/structures.rst:511
msgid "C function to get the attribute"
msgstr ""
#: c-api/structures.rst:514
#: c-api/structures.rst:513
msgid "set"
msgstr ""
#: c-api/structures.rst:514
#: c-api/structures.rst:513
msgid "setter"
msgstr ""
#: c-api/structures.rst:514
#: c-api/structures.rst:513
msgid ""
"optional C function to set or delete the attribute, if omitted the attribute "
"is readonly"
msgstr ""
#: c-api/structures.rst:518
#: c-api/structures.rst:517
msgid "doc"
msgstr ""
#: c-api/structures.rst:518
#: c-api/structures.rst:517
msgid "optional docstring"
msgstr ""
#: c-api/structures.rst:520
#: c-api/structures.rst:519
msgid "closure"
msgstr ""
#: c-api/structures.rst:520
#: c-api/structures.rst:519
msgid "void \\*"
msgstr ""
#: c-api/structures.rst:520
#: c-api/structures.rst:519
msgid ""
"optional function pointer, providing additional data for getter and setter"
msgstr ""
#: c-api/structures.rst:525
#: c-api/structures.rst:524
msgid ""
"The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) "
"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) "
"and a function pointer (the associated ``closure``)::"
msgstr ""
#: c-api/structures.rst:530
#: c-api/structures.rst:529
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""
#: c-api/structures.rst:533
#: c-api/structures.rst:532
msgid ""
"``set`` functions take two :c:type:`PyObject*` parameters (the instance and "
"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and "
"the value to be set) and a function pointer (the associated ``closure``)::"
msgstr ""
#: c-api/structures.rst:538
#: c-api/structures.rst:537
msgid ""
"In case the attribute should be deleted the second parameter is ``NULL``. "
"Should return ``0`` on success or ``-1`` with a set exception on failure."
msgstr ""
#~ msgid ":attr:`ml_name`"
#~ msgstr ":attr:`ml_name`"
#~ msgid ":attr:`ml_meth`"
#~ msgstr ":attr:`ml_meth`"
#~ msgid "PyCFunction"
#~ msgstr "PyCFunction"
#~ msgid ":attr:`ml_flags`"
#~ msgstr ":attr:`ml_flags`"
#~ msgid ":attr:`ml_doc`"
#~ msgstr ":attr:`ml_doc`"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -118,7 +118,7 @@ msgid ""
"Return the current signal handler for signal *i*. This is a thin wrapper "
"around either :c:func:`sigaction` or :c:func:`signal`. Do not call those "
"functions directly! :c:type:`PyOS_sighandler_t` is a typedef alias for :c:"
"type:`void (\\*)(int)`."
"expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:114
@ -126,7 +126,7 @@ msgid ""
"Set the signal handler for signal *i* to be *h*; return the old signal "
"handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:"
"`signal`. Do not call those functions directly! :c:type:"
"`PyOS_sighandler_t` is a typedef alias for :c:type:`void (\\*)(int)`."
"`PyOS_sighandler_t` is a typedef alias for :c:expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:122
@ -434,7 +434,7 @@ msgstr ""
#: c-api/sys.rst:380
msgid ""
"The hook function is of type :c:type:`int (*)(const char *event, PyObject "
"The hook function is of type :c:expr:`int (*)(const char *event, PyObject "
"*args, void *userData)`, where *args* is guaranteed to be a :c:type:"
"`PyTupleObject`. The hook function is always called with the GIL held by the "
"Python interpreter that raised the event."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -218,7 +218,7 @@ msgstr ""
#: c-api/tuple.rst:163
msgid ""
"Describes a field of a struct sequence. As a struct sequence is modeled as a "
"tuple, all fields are typed as :c:type:`PyObject*`. The index in the :attr:"
"tuple, all fields are typed as :c:expr:`PyObject*`. The index in the :attr:"
"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field "
"of the struct sequence is described."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -49,7 +49,7 @@ msgstr ""
#: c-api/type.rst:42
msgid ""
"Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This "
"function is primarily meant for use with `Py_LIMITED_API`; the individual "
"function is primarily meant for use with ``Py_LIMITED_API``; the individual "
"flag bits are guaranteed to be stable across Python releases, but access to :"
"c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -30,8 +30,8 @@ msgid ""
"Create a :ref:`GenericAlias <types-genericalias>` object. Equivalent to "
"calling the Python class :class:`types.GenericAlias`. The *origin* and "
"*args* arguments set the ``GenericAlias``\\ 's ``__origin__`` and "
"``__args__`` attributes respectively. *origin* should be a :c:type:"
"`PyTypeObject*`, and *args* can be a :c:type:`PyTupleObject*` or any "
"``__args__`` attributes respectively. *origin* should be a :c:expr:"
"`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or any "
"``PyObject*``. If *args* passed is not a tuple, a 1-tuple is automatically "
"constructed and ``__args__`` is set to ``(args,)``. Minimal checking is done "
"for the arguments, so the function will succeed even if *origin* is not a "

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-04 12:27+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -34,8 +34,8 @@ msgstr ""
#: c-api/unicode.rst:20
msgid ""
":c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and "
"cached in the Unicode object. The :c:type:`Py_UNICODE*` representation is "
":c:expr:`Py_UNICODE*` and UTF-8 representations are created on demand and "
"cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is "
"deprecated and inefficient."
msgstr ""
@ -55,7 +55,7 @@ msgstr ""
#: c-api/unicode.rst:31
msgid ""
"\"legacy\" Unicode objects have been created through one of the deprecated "
"APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:type:"
"APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:expr:"
"`Py_UNICODE*` representation; you will have to call :c:func:"
"`PyUnicode_READY` on them before calling any other API."
msgstr ""
@ -86,7 +86,7 @@ msgstr ""
#: c-api/unicode.rst:61
msgid ""
"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit "
"This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit "
"type depending on the platform."
msgstr ""
@ -235,7 +235,7 @@ msgid ""
"The returned buffer is always terminated with an extra null code point. It "
"may also contain embedded null code points, which would cause the string to "
"be truncated when used in most C functions. The ``AS_DATA`` form casts the "
"pointer to :c:type:`const char *`. The *o* argument has to be a Unicode "
"pointer to :c:expr:`const char *`. The *o* argument has to be a Unicode "
"object (not checked)."
msgstr ""
@ -895,7 +895,7 @@ msgstr ""
#: c-api/unicode.rst:715
msgid ""
"Return a read-only pointer to the Unicode object's internal :c:type:"
"`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:type:"
"`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:expr:"
"`Py_UNICODE*` representation of the object if it is not yet available. The "
"buffer is always terminated with an extra null code point. Note that the "
"resulting :c:type:`Py_UNICODE` string may also contain embedded null code "
@ -914,7 +914,7 @@ msgstr ""
msgid ""
"Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE` "
"array length (excluding the extra null terminator) in *size*. Note that the "
"resulting :c:type:`Py_UNICODE*` string may contain embedded null code "
"resulting :c:expr:`Py_UNICODE*` string may contain embedded null code "
"points, which would cause the string to be truncated when used in most C "
"functions."
msgstr ""
@ -1031,7 +1031,7 @@ msgid ""
"ParseTuple converter: encode :class:`str` objects -- obtained directly or "
"through the :class:`os.PathLike` interface -- to :class:`bytes` using :c:"
"func:`PyUnicode_EncodeFSDefault`; :class:`bytes` objects are output as-is. "
"*result* must be a :c:type:`PyBytesObject*` which must be released when it "
"*result* must be a :c:expr:`PyBytesObject*` which must be released when it "
"is no longer used."
msgstr ""
@ -1051,7 +1051,7 @@ msgid ""
"ParseTuple converter: decode :class:`bytes` objects -- obtained either "
"directly or indirectly through the :class:`os.PathLike` interface -- to :"
"class:`str` using :c:func:`PyUnicode_DecodeFSDefaultAndSize`; :class:`str` "
"objects are output as-is. *result* must be a :c:type:`PyUnicodeObject*` "
"objects are output as-is. *result* must be a :c:expr:`PyUnicodeObject*` "
"which must be released when it is no longer used."
msgstr ""
@ -1108,26 +1108,26 @@ msgid "wchar_t Support"
msgstr ""
#: c-api/unicode.rst:938
msgid ":c:type:`wchar_t` support for platforms which support it:"
msgid ":c:expr:`wchar_t` support for platforms which support it:"
msgstr ""
#: c-api/unicode.rst:942
msgid ""
"Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given "
"Create a Unicode object from the :c:expr:`wchar_t` buffer *w* of the given "
"*size*. Passing ``-1`` as the *size* indicates that the function must itself "
"compute the length, using wcslen. Return ``NULL`` on failure."
msgstr ""
#: c-api/unicode.rst:950
msgid ""
"Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At "
"most *size* :c:type:`wchar_t` characters are copied (excluding a possibly "
"trailing null termination character). Return the number of :c:type:"
"Copy the Unicode object contents into the :c:expr:`wchar_t` buffer *w*. At "
"most *size* :c:expr:`wchar_t` characters are copied (excluding a possibly "
"trailing null termination character). Return the number of :c:expr:"
"`wchar_t` characters copied or ``-1`` in case of an error. Note that the "
"resulting :c:type:`wchar_t*` string may or may not be null-terminated. It "
"is the responsibility of the caller to make sure that the :c:type:`wchar_t*` "
"resulting :c:expr:`wchar_t*` string may or may not be null-terminated. It "
"is the responsibility of the caller to make sure that the :c:expr:`wchar_t*` "
"string is null-terminated in case this is required by the application. Also, "
"note that the :c:type:`wchar_t*` string might contain null characters, which "
"note that the :c:expr:`wchar_t*` string might contain null characters, which "
"would cause the string to be truncated when used with most C functions."
msgstr ""
@ -1136,9 +1136,9 @@ msgid ""
"Convert the Unicode object to a wide character string. The output string "
"always ends with a null character. If *size* is not ``NULL``, write the "
"number of wide characters (excluding the trailing null termination "
"character) into *\\*size*. Note that the resulting :c:type:`wchar_t` string "
"character) into *\\*size*. Note that the resulting :c:expr:`wchar_t` string "
"might contain null characters, which would cause the string to be truncated "
"when used with most C functions. If *size* is ``NULL`` and the :c:type:"
"when used with most C functions. If *size* is ``NULL`` and the :c:expr:"
"`wchar_t*` string contains null characters a :exc:`ValueError` is raised."
msgstr ""
@ -1152,7 +1152,7 @@ msgstr ""
#: c-api/unicode.rst:978
msgid ""
"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:type:`wchar_t*` "
"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` "
"string contains null characters."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -35,12 +35,12 @@ msgstr ""
#: c-api/veryhigh.rst:19
msgid ""
"Note also that several of these functions take :c:type:`FILE*` parameters. "
"One particular issue which needs to be handled carefully is that the :c:type:"
"Note also that several of these functions take :c:expr:`FILE*` parameters. "
"One particular issue which needs to be handled carefully is that the :c:expr:"
"`FILE` structure for different C libraries can be different and "
"incompatible. Under Windows (at least), it is possible for dynamically "
"linked extensions to actually use different libraries, so care should be "
"taken that :c:type:`FILE*` parameters are only passed to these functions if "
"taken that :c:expr:`FILE*` parameters are only passed to these functions if "
"it is certain that they were created by the same library that the Python "
"runtime is using."
msgstr ""
@ -101,7 +101,7 @@ msgstr ""
#: c-api/veryhigh.rst:84
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, "
"leaving the :c:type:`PyCompilerFlags`\\* argument set to ``NULL``."
"leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``."
msgstr ""
#: c-api/veryhigh.rst:90

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-16 17:25+0100\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -58,7 +58,7 @@ msgid ""
"a callable object that receives notification when *ob* is garbage collected; "
"it should accept a single parameter, which will be the weak reference object "
"itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a "
"weakly-referencable object, or if *callback* is not callable, ``None``, or "
"weakly referencable object, or if *callback* is not callable, ``None``, or "
"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie "
@ -81,7 +81,7 @@ msgid ""
"can be a callable object that receives notification when *ob* is garbage "
"collected; it should accept a single parameter, which will be the weak "
"reference object itself. *callback* may also be ``None`` or ``NULL``. If "
"*ob* is not a weakly-referencable object, or if *callback* is not callable, "
"*ob* is not a weakly referencable object, or if *callback* is not callable, "
"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-04-07 14:48-0400\n"
"Last-Translator: Jean-Michel Laprise <jmichel.dev@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -24,7 +24,8 @@ msgid "Python and this documentation is:"
msgstr "Python et cette documentation sont :"
#: copyright.rst:7
msgid "Copyright © 2001-2022 Python Software Foundation. All rights reserved."
#, fuzzy
msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved."
msgstr ""
"Copyright © 2001-2022 Python Software Foundation. Tous droits réservés."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-04 22:18+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -2253,8 +2253,9 @@ msgstr ""
"environ``."
#: distutils/apiref.rst:1201
#, fuzzy
msgid ""
"Note that this is not a fully-fledged string interpolation function. A valid "
"Note that this is not a full-fledged string interpolation function. A valid "
"``$variable`` can consist only of upper and lower case letters, numbers and "
"an underscore. No { } or ( ) style quoting is available."
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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 12:46+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -44,8 +44,9 @@ msgid "The initialization function has the signature:"
msgstr "La fonction d'initialisation doit avoir le prototype :"
#: extending/building.rst:20
#, fuzzy
msgid ""
"It returns either a fully-initialized module, or a :c:type:`PyModuleDef` "
"It returns either a fully initialized module, or a :c:type:`PyModuleDef` "
"instance. See :ref:`initializing-modules` for details."
msgstr ""
"Elle doit donner soit un module entièrement initialisé, soit une instance "

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-12-25 17:24+0100\n"
"Last-Translator: Antoine <antoine.venier@hotmail.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -421,9 +421,10 @@ msgstr ""
"compiler :"
#: extending/embedding.rst:304
#, fuzzy
msgid ""
"``pythonX.Y-config --ldflags`` will give you the recommended flags when "
"linking:"
"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags "
"when linking:"
msgstr ""
"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de "
"l'édition de lien :"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 12:50+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -311,14 +311,13 @@ msgstr ""
msgid ""
"When a function *f* that calls another function *g* detects that the latter "
"fails, *f* should itself return an error value (usually ``NULL`` or "
"``-1``). It should *not* call one of the :c:func:`PyErr_\\*` functions --- "
"one has already been called by *g*. *f*'s caller is then supposed to also "
"return an error indication to *its* caller, again *without* calling :c:func:"
"`PyErr_\\*`, and so on --- the most detailed cause of the error was already "
"reported by the function that first detected it. Once the error reaches the "
"Python interpreter's main loop, this aborts the currently executing Python "
"code and tries to find an exception handler specified by the Python "
"programmer."
"``-1``). It should *not* call one of the ``PyErr_*`` functions --- one has "
"already been called by *g*. *f*'s caller is then supposed to also return an "
"error indication to *its* caller, again *without* calling ``PyErr_*``, and "
"so on --- the most detailed cause of the error was already reported by the "
"function that first detected it. Once the error reaches the Python "
"interpreter's main loop, this aborts the currently executing Python code and "
"tries to find an exception handler specified by the Python programmer."
msgstr ""
"Lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que "
"cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour "
@ -333,12 +332,13 @@ msgstr ""
"d'exception spécifié par le développeur Python."
#: extending/extending.rst:168
#, fuzzy
msgid ""
"(There are situations where a module can actually give a more detailed error "
"message by calling another :c:func:`PyErr_\\*` function, and in such cases "
"it is fine to do so. As a general rule, however, this is not necessary, and "
"can cause information about the cause of the error to be lost: most "
"operations can fail for a variety of reasons.)"
"message by calling another ``PyErr_*`` function, and in such cases it is "
"fine to do so. As a general rule, however, this is not necessary, and can "
"cause information about the cause of the error to be lost: most operations "
"can fail for a variety of reasons.)"
msgstr ""
"(Il y a des situations où un module peut effectivement donner un message "
"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, "
@ -543,9 +543,10 @@ msgstr ""
"objets dans le tas en Python !)"
#: extending/extending.rst:300
#, fuzzy
msgid ""
"If you have a C function that returns no useful argument (a function "
"returning :c:type:`void`), the corresponding Python function must return "
"returning :c:expr:`void`), the corresponding Python function must return "
"``None``. You need this idiom to do so (which is implemented by the :c:"
"macro:`Py_RETURN_NONE` macro)::"
msgstr ""
@ -1615,7 +1616,7 @@ msgstr ""
msgid ""
"Python provides a special mechanism to pass C-level information (pointers) "
"from one extension module to another one: Capsules. A Capsule is a Python "
"data type which stores a pointer (:c:type:`void \\*`). Capsules can only be "
"data type which stores a pointer (:c:expr:`void \\*`). Capsules can only be "
"created and accessed via their C API, but they can be passed around like any "
"other Python object. In particular, they can be assigned to a name in an "
"extension module's namespace. Other extension modules can then import this "
@ -1644,7 +1645,7 @@ msgstr ""
#, fuzzy
msgid ""
"Whichever method you choose, it's important to name your Capsules properly. "
"The function :c:func:`PyCapsule_New` takes a name parameter (:c:type:`const "
"The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const "
"char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly "
"encourage you to specify a name. Properly named Capsules provide a degree "
"of runtime type-safety; there is no feasible way to tell one unnamed Capsule "
@ -1679,11 +1680,12 @@ msgstr ""
"chargent contient l'API C correcte."
#: extending/extending.rst:1203
#, fuzzy
msgid ""
"The following example demonstrates an approach that puts most of the burden "
"on the writer of the exporting module, which is appropriate for commonly "
"used library modules. It stores all C API pointers (just one in the "
"example!) in an array of :c:type:`void` pointers which becomes the value of "
"example!) in an array of :c:expr:`void` pointers which becomes the value of "
"a Capsule. The header file corresponding to the module provides a macro that "
"takes care of importing the module and retrieving its C API pointers; client "
"modules only have to call this macro before accessing the C API."

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-07-04 11:38+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -67,10 +67,11 @@ msgid "Recommended third party tools"
msgstr "Les outils tiers recommandés"
#: extending/index.rst:28
#, fuzzy
msgid ""
"This guide only covers the basic tools for creating extensions provided as "
"part of this version of CPython. Third party tools like `Cython <http://"
"cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, `SWIG <http://www."
"part of this version of CPython. Third party tools like `Cython <https://"
"cython.org/>`_, `cffi <https://cffi.readthedocs.io>`_, `SWIG <https://www."
"swig.org>`_ and `Numba <https://numba.pydata.org/>`_ offer both simpler and "
"more sophisticated approaches to creating C and C++ extensions for Python."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-04 18:14+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-02-07 20:03+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -161,7 +161,7 @@ msgstr ""
msgid ""
"If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the "
"interpreter will supply a representation that uses the type's :c:member:"
"`~PyTypeObject.tp_name` and a uniquely-identifying value for the object."
"`~PyTypeObject.tp_name` and a uniquely identifying value for the object."
msgstr ""
#: extending/newtypes.rst:181
@ -197,16 +197,16 @@ msgstr ""
msgid ""
"Python supports two pairs of attribute handlers; a type that supports "
"attributes only needs to implement the functions for one pair. The "
"difference is that one pair takes the name of the attribute as a :c:type:"
"`char\\*`, while the other accepts a :c:type:`PyObject\\*`. Each type can "
"use whichever pair makes more sense for the implementation's convenience. ::"
"difference is that one pair takes the name of the attribute as a :c:expr:"
"`char\\*`, while the other accepts a :c:expr:`PyObject*`. Each type can use "
"whichever pair makes more sense for the implementation's convenience. ::"
msgstr ""
#: extending/newtypes.rst:220
msgid ""
"If accessing attributes of an object is always a simple operation (this will "
"be explained shortly), there are generic implementations which can be used "
"to provide the :c:type:`PyObject\\*` version of the attribute management "
"to provide the :c:expr:`PyObject*` version of the attribute management "
"functions. The actual need for type-specific attribute handlers almost "
"completely disappeared starting with Python 2.2, though there are many "
"examples which have not been updated to use some of the new generic "
@ -364,9 +364,9 @@ msgstr "Gestion des attributs de type spécifiques"
#: extending/newtypes.rst:342
msgid ""
"For simplicity, only the :c:type:`char\\*` version will be demonstrated "
"For simplicity, only the :c:expr:`char\\*` version will be demonstrated "
"here; the type of the name parameter is the only difference between the :c:"
"type:`char\\*` and :c:type:`PyObject\\*` flavors of the interface. This "
"expr:`char\\*` and :c:expr:`PyObject*` flavors of the interface. This "
"example effectively does the same thing as the generic example above, but "
"does not use the generic support added in Python 2.2. It explains how the "
"handler functions are called, so that if you do need to extend their "
@ -593,8 +593,9 @@ msgstr ""
"faire deux choses :"
#: extending/newtypes.rst:575
#, fuzzy
msgid ""
"Include a :c:type:`PyObject\\*` field in the C object structure dedicated to "
"Include a :c:expr:`PyObject*` field in the C object structure dedicated to "
"the weak reference mechanism. The object's constructor should leave it "
"``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject."
"tp_alloc`)."
@ -624,7 +625,8 @@ msgstr ""
"par le champ requis ::"
#: extending/newtypes.rst:592
msgid "And the corresponding member in the statically-declared type object::"
#, fuzzy
msgid "And the corresponding member in the statically declared type object::"
msgstr ""
"Et le membre correspondant dans l'objet de type déclaré statiquement ::"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 12:22+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -37,9 +37,10 @@ msgid "The Basics"
msgstr "Les bases"
#: extending/newtypes_tutorial.rst:26
#, fuzzy
msgid ""
"The :term:`CPython` runtime sees all Python objects as variables of type :c:"
"type:`PyObject\\*`, which serves as a \"base type\" for all Python objects. "
"expr:`PyObject*`, which serves as a \"base type\" for all Python objects. "
"The :c:type:`PyObject` structure itself only contains the object's :term:"
"`reference count` and a pointer to the object's \"type object\". This is "
"where the action is; the type object determines which (C) functions get "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-11-20 22:13+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -594,10 +594,11 @@ msgstr ""
"définir une fonction."
#: faq/design.rst:314
#, fuzzy
msgid ""
"Functions are already first class objects in Python, and can be declared in "
"a local scope. Therefore the only advantage of using a lambda instead of a "
"locally-defined function is that you don't need to invent a name for the "
"locally defined function is that you don't need to invent a name for the "
"function -- but that's just a local variable to which the function object "
"(which is exactly the same type of object that a lambda expression yields) "
"is assigned!"
@ -615,12 +616,12 @@ msgstr ""
"Python peut-il être compilé en code machine, en C ou dans un autre langage ?"
#: faq/design.rst:324
#, fuzzy
msgid ""
"`Cython <http://cython.org/>`_ compiles a modified version of Python with "
"optional annotations into C extensions. `Nuitka <http://www.nuitka.net/>`_ "
"`Cython <https://cython.org/>`_ compiles a modified version of Python with "
"optional annotations into C extensions. `Nuitka <https://www.nuitka.net/>`_ "
"is an up-and-coming compiler of Python into C++ code, aiming to support the "
"full Python language. For compiling to Java you can consider `VOC <https://"
"voc.readthedocs.io>`_."
"full Python language."
msgstr ""
"`Cython <http://cython.org/>`_ compile une version modifiée de Python avec "
"des annotations optionnelles en extensions C. `Nuitka <http://www.nuitka.net/"
@ -628,11 +629,11 @@ msgstr ""
"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC "
"<https://voc.readthedocs.io>`_."
#: faq/design.rst:332
#: faq/design.rst:331
msgid "How does Python manage memory?"
msgstr "Comment Python gère la mémoire ?"
#: faq/design.rst:334
#: faq/design.rst:333
msgid ""
"The details of Python memory management depend on the implementation. The "
"standard implementation of Python, :term:`CPython`, uses reference counting "
@ -651,11 +652,12 @@ msgstr ""
"module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, "
"d'obtenir des statistiques de débogage et ajuster ses paramètres."
#: faq/design.rst:342
#: faq/design.rst:341
#, fuzzy
msgid ""
"Other implementations (such as `Jython <http://www.jython.org>`_ or `PyPy "
"<http://www.pypy.org>`_), however, can rely on a different mechanism such as "
"a full-blown garbage collector. This difference can cause some subtle "
"Other implementations (such as `Jython <https://www.jython.org>`_ or `PyPy "
"<https://www.pypy.org>`_), however, can rely on a different mechanism such "
"as a full-blown garbage collector. This difference can cause some subtle "
"porting problems if your Python code depends on the behavior of the "
"reference counting implementation."
msgstr ""
@ -665,7 +667,7 @@ msgstr ""
"de subtils problèmes de portabilité si votre code Python dépend du "
"comportement de l'implémentation du compteur de références."
#: faq/design.rst:348
#: faq/design.rst:347
msgid ""
"In some Python implementations, the following code (which is fine in "
"CPython) will probably run out of file descriptors::"
@ -674,7 +676,7 @@ msgstr ""
"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de "
"fichiers ::"
#: faq/design.rst:355
#: faq/design.rst:354
msgid ""
"Indeed, using CPython's reference counting and destructor scheme, each new "
"assignment to *f* closes the previous file. With a traditional GC, however, "
@ -686,7 +688,7 @@ msgstr ""
"Cependant, avec un ramasse-miettes classique, ces objets sont collectés (et "
"fermés) à intervalles irréguliers, et potentiellement longs."
#: faq/design.rst:360
#: faq/design.rst:359
msgid ""
"If you want to write code that will work with any Python implementation, you "
"should explicitly close the file or use the :keyword:`with` statement; this "
@ -697,13 +699,13 @@ msgstr ""
"utiliser l'instruction :keyword:`with` ; ceci fonctionne indépendamment du "
"système de gestion de la mémoire ::"
#: faq/design.rst:370
#: faq/design.rst:369
msgid "Why doesn't CPython use a more traditional garbage collection scheme?"
msgstr ""
"Pourquoi CPython n'utilise-t-il pas un modèle de ramasse-miettes plus "
"traditionnel ?"
#: faq/design.rst:372
#: faq/design.rst:371
msgid ""
"For one thing, this is not a C standard feature and hence it's not portable. "
"(Yes, we know about the Boehm GC library. It has bits of assembler code for "
@ -718,7 +720,7 @@ msgstr ""
"transparente, elle ne l'est pas complètement ; des correctifs sont "
"nécessaires afin que Python fonctionne correctement avec.)"
#: faq/design.rst:378
#: faq/design.rst:377
msgid ""
"Traditional GC also becomes a problem when Python is embedded into other "
"applications. While in a standalone Python it's fine to replace the "
@ -736,12 +738,12 @@ msgstr ""
"de Python. À l'heure actuelle, CPython fonctionne avec n'importe quelle "
"implémentation correcte de ``malloc()`` et ``free()``."
#: faq/design.rst:387
#: faq/design.rst:386
msgid "Why isn't all memory freed when CPython exits?"
msgstr ""
"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?"
#: faq/design.rst:389
#: faq/design.rst:388
msgid ""
"Objects referenced from the global namespaces of Python modules are not "
"always deallocated when Python exits. This may happen if there are circular "
@ -758,7 +760,7 @@ msgstr ""
"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à "
"détruire chaque objet."
#: faq/design.rst:396
#: faq/design.rst:395
msgid ""
"If you want to force Python to delete certain things on deallocation use "
"the :mod:`atexit` module to run a function that will force those deletions."
@ -767,12 +769,12 @@ msgstr ""
"utilisez le module :mod:`atexit` pour exécuter une fonction qui va forcer "
"ces destructions."
#: faq/design.rst:401
#: faq/design.rst:400
msgid "Why are there separate tuple and list data types?"
msgstr ""
"Pourquoi les *n*-uplets et les *list* sont deux types de données séparés ?"
#: faq/design.rst:403
#: faq/design.rst:402
msgid ""
"Lists and tuples, while similar in many respects, are generally used in "
"fundamentally different ways. Tuples can be thought of as being similar to "
@ -789,7 +791,7 @@ msgstr ""
"des coordonnées cartésiennes sont correctement représentées par un *n*-uplet "
"de deux ou trois nombres."
#: faq/design.rst:410
#: faq/design.rst:409
msgid ""
"Lists, on the other hand, are more like arrays in other languages. They "
"tend to hold a varying number of objects all of which have the same type and "
@ -806,7 +808,7 @@ msgstr ""
"problème que vous ajoutiez un ou deux fichiers supplémentaires dans le "
"dossier."
#: faq/design.rst:417
#: faq/design.rst:416
msgid ""
"Tuples are immutable, meaning that once a tuple has been created, you can't "
"replace any of its elements with a new value. Lists are mutable, meaning "
@ -821,11 +823,11 @@ msgstr ""
"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul "
"des *n*-uplets peuvent être utilisés comme clés."
#: faq/design.rst:424
#: faq/design.rst:423
msgid "How are lists implemented in CPython?"
msgstr "Comment les listes sont-elles implémentées dans CPython ?"
#: faq/design.rst:426
#: faq/design.rst:425
msgid ""
"CPython's lists are really variable-length arrays, not Lisp-style linked "
"lists. The implementation uses a contiguous array of references to other "
@ -838,7 +840,7 @@ msgstr ""
"Elle conserve également un pointeur vers ce tableau et la longueur du "
"tableau dans une structure de tête de liste."
#: faq/design.rst:430
#: faq/design.rst:429
msgid ""
"This makes indexing a list ``a[i]`` an operation whose cost is independent "
"of the size of the list or the value of the index."
@ -846,7 +848,7 @@ msgstr ""
"Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est "
"indépendant de la taille de la liste ou de la valeur de l'indice."
#: faq/design.rst:433
#: faq/design.rst:432
msgid ""
"When items are appended or inserted, the array of references is resized. "
"Some cleverness is applied to improve the performance of appending items "
@ -859,11 +861,11 @@ msgstr ""
"être étendu, un certain espace supplémentaire est alloué de sorte que pour "
"la prochaine fois, ceci ne nécessite plus un redimensionnement effectif."
#: faq/design.rst:440
#: faq/design.rst:439
msgid "How are dictionaries implemented in CPython?"
msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?"
#: faq/design.rst:442
#: faq/design.rst:441
msgid ""
"CPython's dictionaries are implemented as resizable hash tables. Compared "
"to B-trees, this gives better performance for lookup (the most common "
@ -875,7 +877,7 @@ msgstr ""
"performances pour la recherche (l'opération la plus courante de loin) dans "
"la plupart des circonstances, et leur implémentation est plus simple."
#: faq/design.rst:446
#: faq/design.rst:445
msgid ""
"Dictionaries work by computing a hash code for each key stored in the "
"dictionary using the :func:`hash` built-in function. The hash code varies "
@ -891,19 +893,19 @@ msgstr ""
"stockée dans le dictionnaire à l'aide de la fonction :func:`hash`. La valeur "
"du condensat varie grandement en fonction de la clé et de la graine utilisée "
"par le processus ; par exemple, la chaîne de caractère \"Python\" pourrait "
"avoir comme condensat la valeur  539 294 296 tandis que la chaîne \"python"
"\",qui diffère de la première par un seul bit, pourrait avoir comme "
"avoir comme condensat la valeur  539 294 296 tandis que la chaîne "
"\"python\",qui diffère de la première par un seul bit, pourrait avoir comme "
"condensat la valeur 1 142 331 976. Le condensat est ensuite utilisé pour "
"déterminer un emplacement dans le tableau interne où la valeur est stockée. "
"Dans l'hypothèse où vous stockez les clés qui ont toutes des condensats "
"différents, cela signifie que le temps pour récupérer une clé est constant — "
"O(1), en notation grand O de Landau."
#: faq/design.rst:457
#: faq/design.rst:456
msgid "Why must dictionary keys be immutable?"
msgstr "Pourquoi les clés du dictionnaire sont immuables ?"
#: faq/design.rst:459
#: faq/design.rst:458
msgid ""
"The hash table implementation of dictionaries uses a hash value calculated "
"from the key value to find the key. If the key were a mutable object, its "
@ -926,7 +928,7 @@ msgstr ""
"chercher l'ancienne valeur, elle serait également introuvable car la valeur "
"de l'objet trouvé dans cet emplacement de hachage serait différente."
#: faq/design.rst:468
#: faq/design.rst:467
msgid ""
"If you want a dictionary indexed with a list, simply convert the list to a "
"tuple first; the function ``tuple(L)`` creates a tuple with the same entries "
@ -938,11 +940,11 @@ msgstr ""
"uplet avec les mêmes entrées que la liste ``L``. Les *n*-uplets sont "
"immuables et peuvent donc être utilisés comme clés du dictionnaire."
#: faq/design.rst:472
#: faq/design.rst:471
msgid "Some unacceptable solutions that have been proposed:"
msgstr "Certaines solutions insatisfaisantes ont été proposées :"
#: faq/design.rst:474
#: faq/design.rst:473
msgid ""
"Hash lists by their address (object ID). This doesn't work because if you "
"construct a new list with the same value it won't be found; e.g.::"
@ -951,7 +953,7 @@ msgstr ""
"parce que si vous créez une nouvelle liste avec la même valeur, elle ne sera "
"pas retrouvée ; par exemple ::"
#: faq/design.rst:480
#: faq/design.rst:479
msgid ""
"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` "
"used in the second line differs from that in the first line. In other "
@ -963,7 +965,7 @@ msgstr ""
"les clés de dictionnaire doivent être comparées à l'aide du comparateur "
"``==`` et non à l'aide du mot clé :keyword:`is`."
#: faq/design.rst:484
#: faq/design.rst:483
msgid ""
"Make a copy when using a list as a key. This doesn't work because the list, "
"being a mutable object, could contain a reference to itself, and then the "
@ -974,7 +976,7 @@ msgstr ""
"une référence à elle-même ou avoir une boucle infinie au niveau du code "
"copié."
#: faq/design.rst:488
#: faq/design.rst:487
msgid ""
"Allow lists as keys but tell the user not to modify them. This would allow "
"a class of hard-to-track bugs in programs when you forgot or modified a list "
@ -987,7 +989,7 @@ msgstr ""
"accident. Cela casse également un impératif important des dictionnaires : "
"chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire."
#: faq/design.rst:493
#: faq/design.rst:492
msgid ""
"Mark lists as read-only once they are used as a dictionary key. The problem "
"is that it's not just the top-level object that could change its value; you "
@ -1005,7 +1007,7 @@ msgstr ""
"encore une fois, les objets se faisant référence pourraient provoquer une "
"boucle infinie."
#: faq/design.rst:499
#: faq/design.rst:498
msgid ""
"There is a trick to get around this if you need to, but use it at your own "
"risk: You can wrap a mutable structure inside a class instance which has "
@ -1022,7 +1024,7 @@ msgstr ""
"(ou une autre structure basée sur le hachage), restent fixes pendant que "
"l'objet est dans le dictionnaire (ou une autre structure). ::"
#: faq/design.rst:523
#: faq/design.rst:522
msgid ""
"Note that the hash computation is complicated by the possibility that some "
"members of the list may be unhashable and also by the possibility of "
@ -1032,7 +1034,7 @@ msgstr ""
"certains membres de la liste soient impossibles à hacher et aussi par la "
"possibilité de débordement arithmétique."
#: faq/design.rst:527
#: faq/design.rst:526
msgid ""
"Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1."
"__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == "
@ -1046,7 +1048,7 @@ msgstr ""
"ne remplissez pas ces conditions, les dictionnaires et autres structures "
"basées sur le hachage se comporteront mal."
#: faq/design.rst:532
#: faq/design.rst:531
msgid ""
"In the case of ListWrapper, whenever the wrapper object is in a dictionary "
"the wrapped list must not change to avoid anomalies. Don't do this unless "
@ -1059,11 +1061,11 @@ msgstr ""
"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été "
"prévenus."
#: faq/design.rst:539
#: faq/design.rst:538
msgid "Why doesn't list.sort() return the sorted list?"
msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?"
#: faq/design.rst:541
#: faq/design.rst:540
msgid ""
"In situations where performance matters, making a copy of the list just to "
"sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in "
@ -1079,7 +1081,7 @@ msgstr ""
"écrasant accidentellement une liste lorsque vous avez besoin dune copie "
"triée tout en gardant sous la main la version non triée."
#: faq/design.rst:547
#: faq/design.rst:546
msgid ""
"If you want to return a new list, use the built-in :func:`sorted` function "
"instead. This function creates a new list from a provided iterable, sorts "
@ -1091,13 +1093,13 @@ msgstr ""
"partir dun itérable fourni, la classe et la renvoie. Par exemple, voici "
"comment itérer dans lordre sur les clés dun dictionnaire ::"
#: faq/design.rst:557
#: faq/design.rst:556
msgid "How do you specify and enforce an interface spec in Python?"
msgstr ""
"Comment spécifier une interface et appliquer une spécification dinterface "
"en Python ?"
#: faq/design.rst:559
#: faq/design.rst:558
msgid ""
"An interface specification for a module as provided by languages such as C++ "
"and Java describes the prototypes for the methods and functions of the "
@ -1109,7 +1111,7 @@ msgstr ""
"module. Beaucoup estiment que la vérification au moment de la compilation "
"des spécifications d'interface facilite la construction de grands programmes."
#: faq/design.rst:564
#: faq/design.rst:563
msgid ""
"Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base "
"Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` "
@ -1126,7 +1128,7 @@ msgstr ""
"class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` et :"
"class:`collections.abc.MutableMapping`."
#: faq/design.rst:571
#: faq/design.rst:570
msgid ""
"For Python, many of the advantages of interface specifications can be "
"obtained by an appropriate test discipline for components."
@ -1134,7 +1136,7 @@ msgstr ""
"Pour Python, la plupart des avantages des spécifications d'interface peuvent "
"être obtenus par une discipline de test appropriée pour les composants."
#: faq/design.rst:574
#: faq/design.rst:573
msgid ""
"A good test suite for a module can both provide a regression test and serve "
"as a module interface specification and a set of examples. Many Python "
@ -1155,7 +1157,7 @@ msgstr ""
"test tiers peuvent être utilisés pour construire des suites de tests "
"exhaustives qui éprouvent chaque ligne de code dans un module."
#: faq/design.rst:582
#: faq/design.rst:581
msgid ""
"An appropriate testing discipline can help build large complex applications "
"in Python as well as having interface specifications would. In fact, it can "
@ -1175,7 +1177,7 @@ msgstr ""
"réellement le faire correctement, mais il est trivial de vérifier cette "
"propriété dans une suite de tests."
#: faq/design.rst:590
#: faq/design.rst:589
msgid ""
"Writing test suites is very helpful, and you might want to design your code "
"to make it easily tested. One increasingly popular technique, test-driven "
@ -1190,11 +1192,11 @@ msgstr ""
"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas "
"écrire de test du tout."
#: faq/design.rst:598
#: faq/design.rst:597
msgid "Why is there no goto?"
msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?"
#: faq/design.rst:600
#: faq/design.rst:599
msgid ""
"In the 1970s people realized that unrestricted goto could lead to messy "
"\"spaghetti\" code that was hard to understand and revise. In a high-level "
@ -1211,7 +1213,7 @@ msgstr ""
"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir "
"des ``continue`` et ``break``)."
#: faq/design.rst:607
#: faq/design.rst:606
msgid ""
"One can also use exceptions to provide a \"structured goto\" that works even "
"across function calls. Many feel that exceptions can conveniently emulate "
@ -1224,7 +1226,7 @@ msgstr ""
"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran "
"ou d'autres langages de programmation. Par exemple ::"
#: faq/design.rst:623
#: faq/design.rst:622
msgid ""
"This doesn't allow you to jump into the middle of a loop, but that's usually "
"considered an abuse of goto anyway. Use sparingly."
@ -1233,13 +1235,13 @@ msgstr ""
"toute façon généralement considéré comme un abus de ``goto``. À Utiliser "
"avec parcimonie."
#: faq/design.rst:628
#: faq/design.rst:627
msgid "Why can't raw strings (r-strings) end with a backslash?"
msgstr ""
"Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas "
"se terminer par un *backslash* ?"
#: faq/design.rst:630
#: faq/design.rst:629
msgid ""
"More precisely, they can't end with an odd number of backslashes: the "
"unpaired backslash at the end escapes the closing quote character, leaving "
@ -1249,7 +1251,7 @@ msgstr ""
"*backslashes* : le *backslash* non appairé à la fin échappe le caractère de "
"guillemet final, laissant la chaîne non terminée."
#: faq/design.rst:634
#: faq/design.rst:633
msgid ""
"Raw strings were designed to ease creating input for processors (chiefly "
"regular expression engines) that want to do their own backslash escape "
@ -1267,7 +1269,7 @@ msgstr ""
"chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien "
"lorsque les chaînes brutes sont utilisées pour leur but premier."
#: faq/design.rst:641
#: faq/design.rst:640
msgid ""
"If you're trying to build Windows pathnames, note that all Windows system "
"calls accept forward slashes too::"
@ -1276,20 +1278,20 @@ msgstr ""
"les appels système Windows acceptent également les *slashes* "
 classiques » ::"
#: faq/design.rst:646
#: faq/design.rst:645
msgid ""
"If you're trying to build a pathname for a DOS command, try e.g. one of ::"
msgstr ""
"Si vous essayez de construire un chemin d'accès pour une commande DOS, "
"essayez par exemple l'un de ceux-ci ::"
#: faq/design.rst:654
#: faq/design.rst:653
msgid "Why doesn't Python have a \"with\" statement for attribute assignments?"
msgstr ""
"Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe "
"pas en Python ?"
#: faq/design.rst:656
#: faq/design.rst:655
msgid ""
"Python has a 'with' statement that wraps the execution of a block, calling "
"code on the entrance and exit from the block. Some languages have a "
@ -1299,11 +1301,11 @@ msgstr ""
"appelant du code à l'entrée et la sortie du bloc. Certains langages "
"possèdent une construction qui ressemble à ceci ::"
#: faq/design.rst:664
#: faq/design.rst:663
msgid "In Python, such a construct would be ambiguous."
msgstr "En Python, une telle construction serait ambiguë."
#: faq/design.rst:666
#: faq/design.rst:665
msgid ""
"Other languages, such as Object Pascal, Delphi, and C++, use static types, "
"so it's possible to know, in an unambiguous way, what member is being "
@ -1316,7 +1318,7 @@ msgstr ""
"le compilateur connaît *toujours* la portée de toutes les variables au "
"moment de la compilation."
#: faq/design.rst:671
#: faq/design.rst:670
msgid ""
"Python uses dynamic types. It is impossible to know in advance which "
"attribute will be referenced at runtime. Member attributes may be added or "
@ -1330,11 +1332,11 @@ msgstr ""
"impossible de savoir, d'une simple lecture, quel attribut est référencé : "
"s'il est local, global ou un attribut membre ?"
#: faq/design.rst:677
#: faq/design.rst:676
msgid "For instance, take the following incomplete snippet::"
msgstr "Prenons par exemple l'extrait incomplet suivant ::"
#: faq/design.rst:683
#: faq/design.rst:682
msgid ""
"The snippet assumes that \"a\" must have a member attribute called \"x\". "
"However, there is nothing in Python that tells the interpreter this. What "
@ -1348,7 +1350,7 @@ msgstr ""
 x » existe, est-elle utilisée dans le bloc ``with`` ? Comme vous voyez, "
"la nature dynamique du Python rend ces choix beaucoup plus difficiles."
#: faq/design.rst:689
#: faq/design.rst:688
msgid ""
"The primary benefit of \"with\" and similar language features (reduction of "
"code volume) can, however, easily be achieved in Python by assignment. "
@ -1358,11 +1360,11 @@ msgstr ""
"similaires (réduction du volume de code) peut, cependant, être facilement "
"réalisé en Python par assignation. Au lieu de ::"
#: faq/design.rst:696
#: faq/design.rst:695
msgid "write this::"
msgstr "écrivez ceci ::"
#: faq/design.rst:703
#: faq/design.rst:702
msgid ""
"This also has the side-effect of increasing execution speed because name "
"bindings are resolved at run-time in Python, and the second version only "
@ -1372,12 +1374,12 @@ msgstr ""
"car les liaisons de noms sont résolues au moment de l'exécution en Python, "
"et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois."
#: faq/design.rst:709
#: faq/design.rst:708
msgid "Why don't generators support the with statement?"
msgstr ""
"Pourquoi l'instruction ``with`` ne prend-elle pas en charge les générateurs ?"
#: faq/design.rst:711
#: faq/design.rst:710
msgid ""
"For technical reasons, a generator used directly as a context manager would "
"not work correctly. When, as is most common, a generator is used as an "
@ -1390,13 +1392,13 @@ msgstr ""
"besoin de le fermer. Sinon, on peut toujours mettre ``contextlib."
"closing(générateur)`` dans la ligne du ``with``."
#: faq/design.rst:718
#: faq/design.rst:717
msgid "Why are colons required for the if/while/def/class statements?"
msgstr ""
"Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/"
"while/def/class`` ?"
#: faq/design.rst:720
#: faq/design.rst:719
msgid ""
"The colon is required primarily to enhance readability (one of the results "
"of the experimental ABC language). Consider this::"
@ -1404,11 +1406,11 @@ msgstr ""
"Le deux-points est principalement nécessaire pour améliorer la lisibilité "
"(l'un des résultats du langage expérimental ABC). Considérez ceci ::"
#: faq/design.rst:726
#: faq/design.rst:725
msgid "versus ::"
msgstr "et cela ::"
#: faq/design.rst:731
#: faq/design.rst:730
msgid ""
"Notice how the second one is slightly easier to read. Notice further how a "
"colon sets off the example in this FAQ answer; it's a standard usage in "
@ -1418,7 +1420,7 @@ msgstr ""
"aussi comment un deux-points introduit l'exemple dans cette réponse à la "
"FAQ ; c'est un usage standard en français (et en anglais)."
#: faq/design.rst:734
#: faq/design.rst:733
msgid ""
"Another minor reason is that the colon makes it easier for editors with "
"syntax highlighting; they can look for colons to decide when indentation "
@ -1430,13 +1432,13 @@ msgstr ""
"pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire "
"une analyse plus élaborée du texte du programme."
#: faq/design.rst:740
#: faq/design.rst:739
msgid "Why does Python allow commas at the end of lists and tuples?"
msgstr ""
"Pourquoi Python permet-il les virgules à la fin des listes et des *n*-"
"uplets ?"
#: faq/design.rst:742
#: faq/design.rst:741
msgid ""
"Python lets you add a trailing comma at the end of lists, tuples, and "
"dictionaries::"
@ -1444,11 +1446,11 @@ msgstr ""
"Python vous permet d'ajouter une virgule à la fin des listes, des *n*-uplets "
"et des dictionnaires ::"
#: faq/design.rst:753
#: faq/design.rst:752
msgid "There are several reasons to allow this."
msgstr "Il y a plusieurs raisons d'accepter cela."
#: faq/design.rst:755
#: faq/design.rst:754
msgid ""
"When you have a literal value for a list, tuple, or dictionary spread across "
"multiple lines, it's easier to add more elements because you don't have to "
@ -1461,7 +1463,7 @@ msgstr ""
"virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées "
"sans créer une erreur de syntaxe."
#: faq/design.rst:760
#: faq/design.rst:759
msgid ""
"Accidentally omitting the comma can lead to errors that are hard to "
"diagnose. For example::"
@ -1469,7 +1471,7 @@ msgstr ""
"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles "
"à diagnostiquer, par exemple ::"
#: faq/design.rst:770
#: faq/design.rst:769
msgid ""
"This list looks like it has four elements, but it actually contains three: "
"\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source "
@ -1479,7 +1481,7 @@ msgstr ""
"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule "
"permet d'éviter cette source d'erreur."
#: faq/design.rst:773
#: faq/design.rst:772
msgid ""
"Allowing the trailing comma may also make programmatic code generation "
"easier."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-10-17 18:37+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -73,8 +73,9 @@ msgstr ""
"d'écrire vos propres extensions C, selon ce que vous essayez de faire."
#: faq/extending.rst:44
#, fuzzy
msgid ""
"`Cython <http://cython.org>`_ and its relative `Pyrex <https://www.cosc."
"`Cython <https://cython.org>`_ and its relative `Pyrex <https://www.cosc."
"canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers that accept a "
"slightly modified form of Python and generate the corresponding C code. "
"Cython and Pyrex make it possible to write an extension without having to "
@ -87,12 +88,13 @@ msgstr ""
"à connaître l'API C de Python."
#: faq/extending.rst:50
#, fuzzy
msgid ""
"If you need to interface to some C or C++ library for which no Python "
"extension currently exists, you can try wrapping the library's data types "
"and functions with a tool such as `SWIG <http://www.swig.org>`_. `SIP "
"<https://riverbankcomputing.com/software/sip/intro>`__, `CXX <http://cxx."
"sourceforge.net/>`_ `Boost <http://www.boost.org/libs/python/doc/index."
"and functions with a tool such as `SWIG <https://www.swig.org>`_. `SIP "
"<https://riverbankcomputing.com/software/sip/intro>`__, `CXX <https://cxx."
"sourceforge.net/>`_ `Boost <https://www.boost.org/libs/python/doc/index."
"html>`_, or `Weave <https://github.com/scipy/weave>`_ are also alternatives "
"for wrapping C++ libraries."
msgstr ""
@ -492,8 +494,9 @@ msgstr ""
"class:`list`, :class:`dict`, etc."
#: faq/extending.rst:289
#, fuzzy
msgid ""
"The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index."
"The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index."
"html) provides a way of doing this from C++ (i.e. you can inherit from an "
"extension class written in C++ using the BPL)."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-16 02:40+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -255,16 +255,17 @@ msgstr ""
"utilisé pour pallier à différents problèmes."
#: faq/general.rst:114
#, fuzzy
msgid ""
"The language comes with a large standard library that covers areas such as "
"string processing (regular expressions, Unicode, calculating differences "
"between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI "
"programming), software engineering (unit testing, logging, profiling, "
"parsing Python code), and operating system interfaces (system calls, "
"filesystems, TCP/IP sockets). Look at the table of contents for :ref:"
"`library-index` to get an idea of what's available. A wide variety of third-"
"party extensions are also available. Consult `the Python Package Index "
"<https://pypi.org>`_ to find packages of interest to you."
"between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), "
"software engineering (unit testing, logging, profiling, parsing Python "
"code), and operating system interfaces (system calls, filesystems, TCP/IP "
"sockets). Look at the table of contents for :ref:`library-index` to get an "
"idea of what's available. A wide variety of third-party extensions are also "
"available. Consult `the Python Package Index <https://pypi.org>`_ to find "
"packages of interest to you."
msgstr ""
"Le langage vient avec une bibliothèque standard importante qui couvre des "
"domaines tels que le traitement des chaînes de caractères (expressions "
@ -283,21 +284,32 @@ msgid "How does the Python version numbering scheme work?"
msgstr "Comment fonctionne le numérotage des versions de Python ?"
#: faq/general.rst:128
msgid ""
"Python versions are numbered A.B.C or A.B. A is the major version number -- "
"it is only incremented for really major changes in the language. B is the "
"minor version number, incremented for less earth-shattering changes. C is "
"the micro-level -- it is incremented for each bugfix release. See :pep:`6` "
"for more information about bugfix releases."
msgid "Python versions are numbered \"A.B.C\" or \"A.B\":"
msgstr ""
#: faq/general.rst:130
msgid ""
"*A* is the major version number -- it is only incremented for really major "
"changes in the language."
msgstr ""
#: faq/general.rst:132
msgid ""
"*B* is the minor version number -- it is incremented for less earth-"
"shattering changes."
msgstr ""
"Les versions de Python sont numérotées A.B.C ou A.B. A est une version "
"majeure -- elle est augmentée seulement lorsqu'il y a des changements "
"conséquents dans le langage. B est une version mineure, elle est augmentée "
"lors de changements de moindre importance. C est un micro-niveau -- elle est "
"augmentée à chaque sortie de correctifs de bogue."
#: faq/general.rst:134
msgid ""
"*C* is the micro version number -- it is incremented for each bugfix release."
msgstr ""
#: faq/general.rst:136
msgid "See :pep:`6` for more information about bugfix releases."
msgstr ""
#: faq/general.rst:138
msgid ""
"Not all releases are bugfix releases. In the run-up to a new major release, "
"a series of development releases are made, denoted as alpha, beta, or "
"release candidate. Alphas are early releases in which interfaces aren't yet "
@ -316,24 +328,31 @@ msgstr ""
"modules, les *release candidate* sont figées, elles ne font aucun changement "
"à l'exception de ceux nécessaires pour corriger des bogues critiques."
#: faq/general.rst:142
msgid ""
"Alpha, beta and release candidate versions have an additional suffix. The "
"suffix for an alpha version is \"aN\" for some small number N, the suffix "
"for a beta version is \"bN\" for some small number N, and the suffix for a "
"release candidate version is \"rcN\" for some small number N. In other "
"words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which "
"precede versions labeled 2.0rcN, and *those* precede 2.0."
#: faq/general.rst:146
msgid "Alpha, beta and release candidate versions have an additional suffix:"
msgstr ""
#: faq/general.rst:148
msgid "The suffix for an alpha version is \"aN\" for some small number *N*."
msgstr ""
"Les versions *alpha*, *beta* et *release candidate* ont un suffixe "
"supplémentaire. Le suffixe pour une version alpha est « aN » où N est un "
"petit nombre, le suffixe pour une version *beta* est *bN* où N est un petit "
"nombre, et le suffixe pour une *release candidate* est *rcN* où N est un "
"petit nombre. En d'autres mots, toutes les versions nommées *2.0.aN* "
"précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0rcN, et "
"*celles-ci* précèdent la version 2.0."
#: faq/general.rst:149
msgid "The suffix for a beta version is \"bN\" for some small number *N*."
msgstr ""
#: faq/general.rst:150
msgid ""
"The suffix for a release candidate version is \"rcN\" for some small number "
"*N*."
msgstr ""
#: faq/general.rst:152
msgid ""
"In other words, all versions labeled *2.0aN* precede the versions labeled "
"*2.0bN*, which precede versions labeled *2.0rcN*, and *those* precede 2.0."
msgstr ""
#: faq/general.rst:155
msgid ""
"You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These "
"are unreleased versions, built directly from the CPython development "
@ -347,7 +366,7 @@ msgstr ""
"finale d'une version mineure, la version est augmentée à la prochaine "
"version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*."
#: faq/general.rst:154
#: faq/general.rst:160
msgid ""
"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, "
"and :data:`sys.version_info`."
@ -355,11 +374,11 @@ msgstr ""
"Voir aussi la documentation pour for :data:`sys.version`, :data:`sys."
"hexversion`, et :data:`sys.version_info`."
#: faq/general.rst:159
#: faq/general.rst:165
msgid "How do I obtain a copy of the Python source?"
msgstr "Comment obtenir une copie du code source de Python ?"
#: faq/general.rst:161
#: faq/general.rst:167
msgid ""
"The latest Python source distribution is always available from python.org, "
"at https://www.python.org/downloads/. The latest development sources can be "
@ -370,7 +389,7 @@ msgstr ""
"dernière version en développement peut être obtenue à https://github.com/"
"python/cpython/."
#: faq/general.rst:165
#: faq/general.rst:171
msgid ""
"The source distribution is a gzipped tar file containing the complete C "
"source, Sphinx-formatted documentation, Python library modules, example "
@ -383,7 +402,7 @@ msgstr ""
"utiles distribuables librement. Le code source sera compilé et prêt à "
"fonctionner immédiatement sur la plupart des plateformes UNIX."
#: faq/general.rst:170
#: faq/general.rst:176
msgid ""
"Consult the `Getting Started section of the Python Developer's Guide "
"<https://devguide.python.org/setup/>`__ for more information on getting the "
@ -393,11 +412,11 @@ msgstr ""
"devguide.python.org/setup/>`__ pour plus d'informations sur comment obtenir "
"le code source et le compiler."
#: faq/general.rst:176
#: faq/general.rst:182
msgid "How do I get documentation on Python?"
msgstr "Comment obtenir la documentation de Python ?"
#: faq/general.rst:180
#: faq/general.rst:186
msgid ""
"The standard documentation for the current stable version of Python is "
"available at https://docs.python.org/3/. PDF, plain text, and downloadable "
@ -407,22 +426,24 @@ msgstr ""
"https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML "
"sont aussi disponibles à https://docs.python.org/3/download.html."
#: faq/general.rst:184
#: faq/general.rst:190
#, fuzzy
msgid ""
"The documentation is written in reStructuredText and processed by `the "
"Sphinx documentation tool <http://sphinx-doc.org/>`__. The reStructuredText "
"source for the documentation is part of the Python source distribution."
"Sphinx documentation tool <https://www.sphinx-doc.org/>`__. The "
"reStructuredText source for the documentation is part of the Python source "
"distribution."
msgstr ""
"La documentation est écrite au format *reStructuredText* et traitée par "
"l'outil de documentation `Sphinx <http://sphinx-doc.org/>`__. La source du "
"*reStructuredText* pour la documentation constitue une partie des sources de "
"Python."
#: faq/general.rst:190
#: faq/general.rst:196
msgid "I've never programmed before. Is there a Python tutorial?"
msgstr "Je n'ai jamais programmé avant. Existe-t-il un tutoriel Python ?"
#: faq/general.rst:192
#: faq/general.rst:198
msgid ""
"There are numerous tutorials and books available. The standard "
"documentation includes :ref:`tutorial-index`."
@ -430,7 +451,7 @@ msgstr ""
"Il y a de nombreux tutoriels et livres disponibles. La documentation "
"standard inclut :ref:`tutorial-index`."
#: faq/general.rst:195
#: faq/general.rst:201
msgid ""
"Consult `the Beginner's Guide <https://wiki.python.org/moin/"
"BeginnersGuide>`_ to find information for beginning Python programmers, "
@ -440,11 +461,11 @@ msgstr ""
"BeginnersGuide>`_ afin de trouver des informations pour les développeurs "
"Python débutants, incluant une liste de tutoriels."
#: faq/general.rst:200
#: faq/general.rst:206
msgid "Is there a newsgroup or mailing list devoted to Python?"
msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?"
#: faq/general.rst:202
#: faq/general.rst:208
msgid ""
"There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, "
"`python-list <https://mail.python.org/mailman/listinfo/python-list>`_. The "
@ -461,7 +482,7 @@ msgstr ""
"des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont "
"souvent plus capables de faire face à ce volume."
#: faq/general.rst:209
#: faq/general.rst:215
msgid ""
"Announcements of new software releases and events can be found in comp.lang."
"python.announce, a low-traffic moderated list that receives about five "
@ -474,7 +495,7 @@ msgstr ""
"des annonces Python <https://mail.python.org/mailman/listinfo/python-"
"announce-list>`_."
#: faq/general.rst:214
#: faq/general.rst:220
msgid ""
"More info about other mailing lists and newsgroups can be found at https://"
"www.python.org/community/lists/."
@ -482,11 +503,11 @@ msgstr ""
"Plus d'informations à propos des autres listes de diffusion et forums "
"peuvent être trouvées à https://www.python.org/community/lists/."
#: faq/general.rst:219
#: faq/general.rst:225
msgid "How do I get a beta test version of Python?"
msgstr "Comment obtenir une version bêta test de Python ?"
#: faq/general.rst:221
#: faq/general.rst:227
msgid ""
"Alpha and beta releases are available from https://www.python.org/"
"downloads/. All releases are announced on the comp.lang.python and comp."
@ -499,7 +520,7 @@ msgstr ""
"de Python à https://www.python.org/; un flux RSS d'actualités y est aussi "
"disponible."
#: faq/general.rst:226
#: faq/general.rst:232
msgid ""
"You can also access the development version of Python through Git. See `The "
"Python Developer's Guide <https://devguide.python.org/>`_ for details."
@ -508,11 +529,11 @@ msgstr ""
"`Le Guide du Développeur Python <https://devguide.python.org/>`_ pour plus "
"de détails."
#: faq/general.rst:231
#: faq/general.rst:237
msgid "How do I submit bug reports and patches for Python?"
msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?"
#: faq/general.rst:233
#: faq/general.rst:239
#, fuzzy
msgid ""
"To report a bug or submit a patch, use the issue tracker at https://github."
@ -521,7 +542,7 @@ msgstr ""
"Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://"
"bugs.python.org/."
#: faq/general.rst:236
#: faq/general.rst:242
msgid ""
"For more information on how Python is developed, consult `the Python "
"Developer's Guide <https://devguide.python.org/>`_."
@ -529,19 +550,19 @@ msgstr ""
"Pour davantage d'informations sur comment Python est développé, consultez "
"`le Guide du Développeur Python <https://devguide.python.org/>`_."
#: faq/general.rst:241
#: faq/general.rst:247
msgid "Are there any published articles about Python that I can reference?"
msgstr ""
"Existe-t-il des articles publiés au sujet de Python auxquels je peux me "
"référer ?"
#: faq/general.rst:243
#: faq/general.rst:249
msgid "It's probably best to cite your favorite book about Python."
msgstr ""
"C'est probablement mieux de vous référer à votre livre favori à propos de "
"Python."
#: faq/general.rst:245
#: faq/general.rst:251
msgid ""
"The very first article about Python was written in 1991 and is now quite "
"outdated."
@ -549,7 +570,7 @@ msgstr ""
"Le tout premier article à propos de Python a été écrit en 1991 et est "
"maintenant obsolète."
#: faq/general.rst:248
#: faq/general.rst:254
msgid ""
"Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers "
"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 "
@ -559,11 +580,11 @@ msgstr ""
"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 "
"(December 1991), Amsterdam, pp 283--303."
#: faq/general.rst:254
#: faq/general.rst:260
msgid "Are there any books on Python?"
msgstr "Y a-t-il des livres au sujet de Python ?"
#: faq/general.rst:256
#: faq/general.rst:262
msgid ""
"Yes, there are many, and more are being published. See the python.org wiki "
"at https://wiki.python.org/moin/PythonBooks for a list."
@ -571,7 +592,7 @@ msgstr ""
"Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le "
"wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste."
#: faq/general.rst:259
#: faq/general.rst:265
msgid ""
"You can also search online bookstores for \"Python\" and filter out the "
"Monty Python references; or perhaps search for \"Python\" and \"language\"."
@ -580,25 +601,26 @@ msgstr ""
"terme « Python » et éliminer les références concernant les Monty Python, ou "
"peut-être faire une recherche avec les termes « langage » et « Python »."
#: faq/general.rst:264
#: faq/general.rst:270
msgid "Where in the world is www.python.org located?"
msgstr "Où www.python.org est-il localisé dans le monde ?"
#: faq/general.rst:266
#: faq/general.rst:272
#, fuzzy
msgid ""
"The Python project's infrastructure is located all over the world and is "
"managed by the Python Infrastructure Team. Details `here <http://infra.psf."
"managed by the Python Infrastructure Team. Details `here <https://infra.psf."
"io>`__."
msgstr ""
"L'infrastructure du projet Python est située dans le monde entier et est "
"gérée par l'équipe de l'infrastructure Python. Plus de détails `ici <http://"
"infra.psf.io>`__."
#: faq/general.rst:271
#: faq/general.rst:277
msgid "Why is it called Python?"
msgstr "Pourquoi le nom Python ?"
#: faq/general.rst:273
#: faq/general.rst:279
msgid ""
"When he began implementing Python, Guido van Rossum was also reading the "
"published scripts from `\"Monty Python's Flying Circus\" <https://en."
@ -612,23 +634,23 @@ msgstr ""
"BBC. Van Rossum a pensé qu'il avait besoin d'un nom court, unique, et un peu "
"mystérieux, donc il a décidé de l'appeler le langage Python."
#: faq/general.rst:281
#: faq/general.rst:287
msgid "Do I have to like \"Monty Python's Flying Circus\"?"
msgstr "Dois-je aimer \"Monty Python's Flying Circus\" ?"
#: faq/general.rst:283
#: faq/general.rst:289
msgid "No, but it helps. :)"
msgstr "Non, mais ça peut aider. :)"
#: faq/general.rst:287
#: faq/general.rst:293
msgid "Python in the real world"
msgstr "Python c'est le monde réel"
#: faq/general.rst:290
#: faq/general.rst:296
msgid "How stable is Python?"
msgstr "Quel est le niveau de stabilité de Python ?"
#: faq/general.rst:292
#: faq/general.rst:298
msgid ""
"Very stable. New, stable releases have been coming out roughly every 6 to "
"18 months since 1991, and this seems likely to continue. As of version 3.9, "
@ -638,7 +660,7 @@ msgstr ""
"depuis 1991, et il semble probable que ça continue. À partir de la version "
"3.9, Python aura une nouvelle version majeure tous les 12 mois (:pep:`602`)."
#: faq/general.rst:296
#: faq/general.rst:302
msgid ""
"The developers issue \"bugfix\" releases of older versions, so the stability "
"of existing releases gradually improves. Bugfix releases, indicated by a "
@ -655,7 +677,7 @@ msgstr ""
"garanti que les interfaces resteront les mêmes tout au long de la série de "
"versions correctives."
#: faq/general.rst:303
#: faq/general.rst:309
#, fuzzy
msgid ""
"The latest stable releases can always be found on the `Python download page "
@ -671,11 +693,11 @@ msgstr ""
"largement utilisées. Bien que Python 2 soit encore utilisé, `il n'est "
"désormais plus maintenu <https://www.python.org/dev/peps/pep-0373/>`_."
#: faq/general.rst:310
#: faq/general.rst:316
msgid "How many people are using Python?"
msgstr "Combien de personnes utilisent Python ?"
#: faq/general.rst:312
#: faq/general.rst:318
msgid ""
"There are probably millions of users, though it's difficult to obtain an "
"exact count."
@ -683,7 +705,7 @@ msgstr ""
"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile "
"d'en déterminer le nombre exact."
#: faq/general.rst:315
#: faq/general.rst:321
msgid ""
"Python is available for free download, so there are no sales figures, and "
"it's available from many different sites and packaged with many Linux "
@ -694,7 +716,7 @@ msgstr ""
"il est inclus avec de beaucoup de distributions Linux, donc les statistiques "
"de téléchargement ne donnent pas la totalité non plus."
#: faq/general.rst:319
#: faq/general.rst:325
msgid ""
"The comp.lang.python newsgroup is very active, but not all Python users post "
"to the group or even read it."
@ -702,11 +724,11 @@ msgstr ""
"Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de "
"Python ne laissent pas de messages dessus ou même ne le lisent pas."
#: faq/general.rst:324
#: faq/general.rst:330
msgid "Have any significant projects been done in Python?"
msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?"
#: faq/general.rst:326
#: faq/general.rst:332
msgid ""
"See https://www.python.org/about/success for a list of projects that use "
"Python. Consulting the proceedings for `past Python conferences <https://www."
@ -719,11 +741,12 @@ msgstr ""
"s'avère que les contributions proviennent de nombreux organismes et "
"entreprises divers."
#: faq/general.rst:331
#: faq/general.rst:337
#, fuzzy
msgid ""
"High-profile Python projects include `the Mailman mailing list manager "
"<http://www.list.org>`_ and `the Zope application server <http://www.zope."
"org>`_. Several Linux distributions, most notably `Red Hat <https://www."
"<https://www.list.org>`_ and `the Zope application server <https://www.zope."
"dev>`_. Several Linux distributions, most notably `Red Hat <https://www."
"redhat.com>`_, have written part or all of their installer and system "
"administration software in Python. Companies that use Python internally "
"include Google, Yahoo, and Lucasfilm Ltd."
@ -735,11 +758,11 @@ msgstr ""
"logiciel d'administration système en Python. Les entreprises qui utilisent "
"Python en interne comprennent Google, Yahoo, et Lucasfilm Ltd."
#: faq/general.rst:340
#: faq/general.rst:346
msgid "What new developments are expected for Python in the future?"
msgstr "Quelles sont les nouveautés en développement attendues pour Python ?"
#: faq/general.rst:342
#: faq/general.rst:348
#, fuzzy
msgid ""
"See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). "
@ -755,7 +778,7 @@ msgstr ""
"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X."
"Y est la version qui n'a pas encore été publiée."
#: faq/general.rst:348
#: faq/general.rst:354
msgid ""
"New development is discussed on `the python-dev mailing list <https://mail."
"python.org/mailman/listinfo/python-dev/>`_."
@ -763,12 +786,12 @@ msgstr ""
"Le nouveau développement est discuté sur `la liste de diffusion python-dev "
"<https://mail.python.org/mailman/listinfo/python-dev/>`_."
#: faq/general.rst:353
#: faq/general.rst:359
msgid "Is it reasonable to propose incompatible changes to Python?"
msgstr ""
"Est-il raisonnable de proposer des changements incompatibles dans Python ?"
#: faq/general.rst:355
#: faq/general.rst:361
msgid ""
"In general, no. There are already millions of lines of Python code around "
"the world, so any change in the language that invalidates more than a very "
@ -785,7 +808,7 @@ msgstr ""
"documentations, beaucoup de livres ont été écrits au sujet de Python, et "
"nous ne voulons pas les rendre invalides soudainement."
#: faq/general.rst:362
#: faq/general.rst:368
msgid ""
"Providing a gradual upgrade path is necessary if a feature has to be "
"changed. :pep:`5` describes the procedure followed for introducing backward-"
@ -794,17 +817,17 @@ msgstr ""
"En fournissant un rythme de mise à jour progressif qui est obligatoire si "
"une fonctionnalité doit être changée."
#: faq/general.rst:368
#: faq/general.rst:374
msgid "Is Python a good language for beginning programmers?"
msgstr ""
"Existe-t-il un meilleur langage de programmation pour les programmeurs "
"débutants ?"
#: faq/general.rst:370
#: faq/general.rst:376
msgid "Yes."
msgstr "Oui."
#: faq/general.rst:372
#: faq/general.rst:378
msgid ""
"It is still common to start students with a procedural and statically typed "
"language such as Pascal, C, or a subset of C++ or Java. Students may be "
@ -828,7 +851,7 @@ msgstr ""
"peuvent même probablement travailler avec des objets définis dans leurs "
"premiers cours."
#: faq/general.rst:382
#: faq/general.rst:388
msgid ""
"For a student who has never programmed before, using a statically typed "
"language seems unnatural. It presents additional complexity that the "
@ -848,7 +871,7 @@ msgstr ""
"terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux "
"étudiants durant leur tout premier cours."
#: faq/general.rst:390
#: faq/general.rst:396
msgid ""
"Many other aspects of Python make it a good first language. Like Java, "
"Python has a large standard library so that students can be assigned "
@ -871,7 +894,7 @@ msgstr ""
"réutilisation de code. Les modules tiers tels que PyGame sont aussi très "
"utiles pour étendre les compétences des étudiants."
#: faq/general.rst:399
#: faq/general.rst:405
msgid ""
"Python's interactive interpreter enables students to test language features "
"while they're programming. They can keep a window with the interpreter "
@ -885,7 +908,7 @@ msgstr ""
"souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme "
"ça ::"
#: faq/general.rst:428
#: faq/general.rst:434
msgid ""
"With the interpreter, documentation is never far from the student as they "
"are programming."
@ -893,15 +916,16 @@ msgstr ""
"Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand "
"ils travaillent."
#: faq/general.rst:431
#: faq/general.rst:437
#, fuzzy
msgid ""
"There are also good IDEs for Python. IDLE is a cross-platform IDE for "
"Python that is written in Python using Tkinter. PythonWin is a Windows-"
"specific IDE. Emacs users will be happy to know that there is a very good "
"Python mode for Emacs. All of these programming environments provide syntax "
"highlighting, auto-indenting, and access to the interactive interpreter "
"while coding. Consult `the Python wiki <https://wiki.python.org/moin/"
"PythonEditors>`_ for a full list of Python editing environments."
"Python that is written in Python using Tkinter. Emacs users will be happy to "
"know that there is a very good Python mode for Emacs. All of these "
"programming environments provide syntax highlighting, auto-indenting, and "
"access to the interactive interpreter while coding. Consult `the Python "
"wiki <https://wiki.python.org/moin/PythonEditors>`_ for a full list of "
"Python editing environments."
msgstr ""
"Il y a aussi de bons environnements de développement intégrés (EDIs) pour "
"Python. IDLE est un EDI multiplateformes pour Python qui est écrit en Python "
@ -913,7 +937,7 @@ msgstr ""
"<https://wiki.python.org/moin/PythonEditors>`_ pour une liste complète des "
"environnements de développement intégrés."
#: faq/general.rst:439
#: faq/general.rst:445
msgid ""
"If you want to discuss Python's use in education, you may be interested in "
"joining `the edu-sig mailing list <https://www.python.org/community/sigs/"
@ -923,6 +947,36 @@ msgstr ""
"intéressé pour rejoindre `la liste de diffusion pour l'enseignement <https://"
"www.python.org/community/sigs/current/edu-sig>`_."
#~ msgid ""
#~ "Python versions are numbered A.B.C or A.B. A is the major version number "
#~ "-- it is only incremented for really major changes in the language. B is "
#~ "the minor version number, incremented for less earth-shattering changes. "
#~ "C is the micro-level -- it is incremented for each bugfix release. See :"
#~ "pep:`6` for more information about bugfix releases."
#~ msgstr ""
#~ "Les versions de Python sont numérotées A.B.C ou A.B. A est une version "
#~ "majeure -- elle est augmentée seulement lorsqu'il y a des changements "
#~ "conséquents dans le langage. B est une version mineure, elle est "
#~ "augmentée lors de changements de moindre importance. C est un micro-"
#~ "niveau -- elle est augmentée à chaque sortie de correctifs de bogue."
#~ msgid ""
#~ "Alpha, beta and release candidate versions have an additional suffix. "
#~ "The suffix for an alpha version is \"aN\" for some small number N, the "
#~ "suffix for a beta version is \"bN\" for some small number N, and the "
#~ "suffix for a release candidate version is \"rcN\" for some small number "
#~ "N. In other words, all versions labeled 2.0aN precede the versions "
#~ "labeled 2.0bN, which precede versions labeled 2.0rcN, and *those* precede "
#~ "2.0."
#~ msgstr ""
#~ "Les versions *alpha*, *beta* et *release candidate* ont un suffixe "
#~ "supplémentaire. Le suffixe pour une version alpha est « aN » où N est un "
#~ "petit nombre, le suffixe pour une version *beta* est *bN* où N est un "
#~ "petit nombre, et le suffixe pour une *release candidate* est *rcN* où N "
#~ "est un petit nombre. En d'autres mots, toutes les versions nommées *2.0."
#~ "aN* précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0rcN, et "
#~ "*celles-ci* précèdent la version 2.0."
#~ msgid ""
#~ "You must have a Roundup account to report bugs; this makes it possible "
#~ "for us to contact you if we have follow-up questions. It will also "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-16 02:34+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -93,10 +93,11 @@ msgstr ""
"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`."
#: faq/gui.rst:49
#, fuzzy
msgid ""
"To get truly stand-alone applications, the Tcl scripts that form the library "
"have to be integrated into the application as well. One tool supporting that "
"is SAM (stand-alone modules), which is part of the Tix distribution (http://"
"is SAM (stand-alone modules), which is part of the Tix distribution (https://"
"tix.sourceforge.net/)."
msgstr ""
"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-06 20:15+0100\n"
"Last-Translator: Fipaddict <fipaddict@protonmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -337,11 +337,12 @@ msgid "How do I create documentation from doc strings?"
msgstr "Comment générer la documentation à partir des *docstrings* ?"
#: faq/library.rst:181
#, fuzzy
msgid ""
"The :mod:`pydoc` module can create HTML from the doc strings in your Python "
"source code. An alternative for creating API documentation purely from "
"docstrings is `epydoc <http://epydoc.sourceforge.net/>`_. `Sphinx <http://"
"sphinx-doc.org>`_ can also include docstring content."
"docstrings is `epydoc <https://epydoc.sourceforge.net/>`_. `Sphinx <https://"
"www.sphinx-doc.org>`_ can also include docstring content."
msgstr ""
"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du "
"code source Python. Il est aussi possible de documenter une API uniquement à "
@ -723,18 +724,20 @@ msgstr "Comment copier un fichier ?"
#: faq/library.rst:486
msgid ""
"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note "
"that on MacOS 9 it doesn't copy the resource fork and Finder info."
"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note "
"that on Windows NTFS volumes, it does not copy `alternate data streams "
"<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>`_ nor "
"`resource forks <https://en.wikipedia.org/wiki/Resource_fork>`__ on macOS "
"HFS+ volumes, though both are now rarely used. It also doesn't copy file "
"permissions and metadata, though using :func:`shutil.copy2` instead will "
"preserve most (though not all) of it."
msgstr ""
"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous "
"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations "
"du chercheur."
#: faq/library.rst:491
#: faq/library.rst:497
msgid "How do I read (or write) binary data?"
msgstr "Comment lire (ou écrire) des données binaires ?"
#: faq/library.rst:493
#: faq/library.rst:499
msgid ""
"To read or write complex binary data formats, it's best to use the :mod:"
"`struct` module. It allows you to take a string containing binary data "
@ -745,7 +748,7 @@ msgstr ""
"une chaîne de caractères qui contient des données binaires, souvent des "
"nombres, en objets Python, et vice-versa."
#: faq/library.rst:497
#: faq/library.rst:503
msgid ""
"For example, the following code reads two 2-byte integers and one 4-byte "
"integer in big-endian format from a file::"
@ -753,7 +756,7 @@ msgstr ""
"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur "
"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::"
#: faq/library.rst:506
#: faq/library.rst:512
msgid ""
"The '>' in the format string forces big-endian data; the letter 'h' reads "
"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 "
@ -763,7 +766,7 @@ msgstr ""
"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la "
"lettre « l » indique un entier long (4 octets)."
#: faq/library.rst:510
#: faq/library.rst:516
msgid ""
"For data that is more regular (e.g. a homogeneous list of ints or floats), "
"you can also use the :mod:`array` module."
@ -772,7 +775,7 @@ msgstr ""
"nombres à virgule flottante), il est possible d'utiliser le module :mod:"
"`array`."
#: faq/library.rst:515
#: faq/library.rst:521
msgid ""
"To read and write binary data, it is mandatory to open the file in binary "
"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` "
@ -785,13 +788,13 @@ msgstr ""
"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu "
"d'objets :class:`bytes`."
#: faq/library.rst:523
#: faq/library.rst:529
msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?"
msgstr ""
"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os."
"popen()`` ; pourquoi ?"
#: faq/library.rst:525
#: faq/library.rst:531
msgid ""
":func:`os.read` is a low-level function which takes a file descriptor, a "
"small integer representing the opened file. :func:`os.popen` creates a high-"
@ -806,34 +809,34 @@ msgstr ""
"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p."
"read(n)``."
#: faq/library.rst:612
#: faq/library.rst:618
msgid "How do I access the serial (RS232) port?"
msgstr "Comment accéder au port de transmission en série (RS-232) ?"
#: faq/library.rst:614
#: faq/library.rst:620
msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:"
msgstr "Pour Win32, OSX, Linux, BSD, Jython et IronPython :"
#: faq/library.rst:616
#: faq/library.rst:622
msgid "https://pypi.org/project/pyserial/"
msgstr "https://pypi.org/project/pyserial/"
#: faq/library.rst:618
#: faq/library.rst:624
msgid "For Unix, see a Usenet post by Mitch Chapman:"
msgstr ""
"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :"
#: faq/library.rst:620
#: faq/library.rst:626
msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
#: faq/library.rst:624
#: faq/library.rst:630
msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?"
msgstr ""
"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas "
"réellement ?"
#: faq/library.rst:626
#: faq/library.rst:632
msgid ""
"Python :term:`file objects <file object>` are a high-level layer of "
"abstraction on low-level C file descriptors."
@ -841,7 +844,7 @@ msgstr ""
"Les :term:`objets fichiers <file object>` en Python sont des abstractions de "
"haut niveau sur les descripteurs de fichier C de bas niveau."
#: faq/library.rst:629
#: faq/library.rst:635
msgid ""
"For most file objects you create in Python via the built-in :func:`open` "
"function, ``f.close()`` marks the Python file object as being closed from "
@ -855,7 +858,7 @@ msgstr ""
"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est "
"recyclé."
#: faq/library.rst:635
#: faq/library.rst:641
msgid ""
"But stdin, stdout and stderr are treated specially by Python, because of the "
"special status also given to them by C. Running ``sys.stdout.close()`` "
@ -867,7 +870,7 @@ msgstr ""
"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais "
"le descripteur de fichier C associé n'est *pas* fermé."
#: faq/library.rst:640
#: faq/library.rst:646
msgid ""
"To close the underlying C file descriptor for one of these three, you should "
"first be sure that's what you really want to do (e.g., you may confuse "
@ -878,21 +881,21 @@ msgstr ""
"exemple, perturber le bon fonctionnement de modules qui font des opérations "
"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::"
#: faq/library.rst:648
#: faq/library.rst:654
msgid "Or you can use the numeric constants 0, 1 and 2, respectively."
msgstr ""
"Il est aussi possible de fermer respectivement les constantes numériques 0, "
"1 ou 2."
#: faq/library.rst:652
#: faq/library.rst:658
msgid "Network/Internet Programming"
msgstr "Programmation réseau et Internet"
#: faq/library.rst:655
#: faq/library.rst:661
msgid "What WWW tools are there for Python?"
msgstr "Quels sont les outils Python dédiés à la Toile ?"
#: faq/library.rst:657
#: faq/library.rst:663
msgid ""
"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library "
"Reference Manual. Python has many modules that will help you build server-"
@ -902,7 +905,7 @@ msgstr ""
"le manuel de référence de la bibliothèque. Python a de nombreux modules pour "
"construire des applications de Toile côté client comme côté serveur."
#: faq/library.rst:663
#: faq/library.rst:669
msgid ""
"A summary of available frameworks is maintained by Paul Boddie at https://"
"wiki.python.org/moin/WebProgramming\\ ."
@ -910,20 +913,22 @@ msgstr ""
"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à "
"l'adresse https://wiki.python.org/moin/WebProgramming\\ ."
#: faq/library.rst:666
#: faq/library.rst:672
#, fuzzy
msgid ""
"Cameron Laird maintains a useful set of pages about Python web technologies "
"at http://phaseit.net/claird/comp.lang.python/web_python."
"at https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp."
"lang.python/web_python."
msgstr ""
"Cameron Laird maintient un ensemble intéressant d'articles sur les "
"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/"
"comp.lang.python/web_python."
#: faq/library.rst:671
#: faq/library.rst:677
msgid "How can I mimic CGI form submission (METHOD=POST)?"
msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?"
#: faq/library.rst:673
#: faq/library.rst:679
msgid ""
"I would like to retrieve web pages that are the result of POSTing a form. Is "
"there existing code that would let me do this easily?"
@ -931,11 +936,11 @@ msgstr ""
"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la "
"Toile. Existe-t-il déjà du code qui pourrait m'aider à le faire facilement ?"
#: faq/library.rst:676
#: faq/library.rst:682
msgid "Yes. Here's a simple example that uses :mod:`urllib.request`::"
msgstr "Oui. Voici un exemple simple d'utilisation de :mod:`urllib.request` ::"
#: faq/library.rst:691
#: faq/library.rst:697
msgid ""
"Note that in general for percent-encoded POST operations, query strings must "
"be quoted using :func:`urllib.parse.urlencode`. For example, to send "
@ -946,15 +951,15 @@ msgstr ""
"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr."
"`` ::"
#: faq/library.rst:699
#: faq/library.rst:705
msgid ":ref:`urllib-howto` for extensive examples."
msgstr ":ref:`urllib-howto` pour des exemples complets."
#: faq/library.rst:703
#: faq/library.rst:709
msgid "What module should I use to help with generating HTML?"
msgstr "Quel module utiliser pour générer du HTML ?"
#: faq/library.rst:707
#: faq/library.rst:713
msgid ""
"You can find a collection of useful links on the `Web Programming wiki page "
"<https://wiki.python.org/moin/WebProgramming>`_."
@ -962,15 +967,15 @@ msgstr ""
"La `page wiki de la programmation Toile <https://wiki.python.org/moin/"
"WebProgramming>`_ (en anglais) répertorie un ensemble de liens pertinents."
#: faq/library.rst:712
#: faq/library.rst:718
msgid "How do I send mail from a Python script?"
msgstr "Comment envoyer un courriel avec un script Python ?"
#: faq/library.rst:714
#: faq/library.rst:720
msgid "Use the standard library module :mod:`smtplib`."
msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard."
#: faq/library.rst:716
#: faq/library.rst:722
msgid ""
"Here's a very simple interactive mail sender that uses it. This method will "
"work on any host that supports an SMTP listener. ::"
@ -978,7 +983,7 @@ msgstr ""
"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette "
"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::"
#: faq/library.rst:736
#: faq/library.rst:742
msgid ""
"A Unix-only alternative uses sendmail. The location of the sendmail program "
"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/"
@ -990,13 +995,13 @@ msgstr ""
"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut "
"vous aider. Par exemple ::"
#: faq/library.rst:756
#: faq/library.rst:762
msgid "How do I avoid blocking in the connect() method of a socket?"
msgstr ""
"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur "
"réseau ?"
#: faq/library.rst:758
#: faq/library.rst:764
msgid ""
"The :mod:`select` module is commonly used to help with asynchronous I/O on "
"sockets."
@ -1004,7 +1009,7 @@ msgstr ""
"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-"
"sorties asynchrones sur des connecteurs réseaux."
#: faq/library.rst:761
#: faq/library.rst:767
msgid ""
"To prevent the TCP connect from blocking, you can set the socket to non-"
"blocking mode. Then when you do the :meth:`socket.connect`, you will either "
@ -1021,7 +1026,7 @@ msgstr ""
"n'a pas encore aboutie. La valeur dépend du système d'exploitation, donc "
"renseignez-vous sur la valeur utilisée par votre système."
#: faq/library.rst:768
#: faq/library.rst:774
msgid ""
"You can use the :meth:`socket.connect_ex` method to avoid creating an "
"exception. It will just return the errno value. To poll, you can call :"
@ -1036,7 +1041,7 @@ msgstr ""
"argument de :meth:`select.select` pour vérifier si le connecteur est prêt à "
"recevoir des entrées."
#: faq/library.rst:774
#: faq/library.rst:780
msgid ""
"The :mod:`asyncio` module provides a general purpose single-threaded and "
"concurrent asynchronous library, which can be used for writing non-blocking "
@ -1048,20 +1053,20 @@ msgstr ""
"`Twisted <https://twistedmatrix.com/trac/>`_ en est une alternative "
"plébiscitée, avec un grand nombre de fonctionnalités."
#: faq/library.rst:782
#: faq/library.rst:788
msgid "Databases"
msgstr "Bases de données"
#: faq/library.rst:785
#: faq/library.rst:791
msgid "Are there any interfaces to database packages in Python?"
msgstr ""
"Existe-t-il des modules Python pour s'interfacer avec des bases de données ?"
#: faq/library.rst:787
#: faq/library.rst:793
msgid "Yes."
msgstr "Oui."
#: faq/library.rst:789
#: faq/library.rst:795
msgid ""
"Interfaces to disk-based hashes such as :mod:`DBM <dbm.ndbm>` and :mod:`GDBM "
"<dbm.gnu>` are also included with standard Python. There is also the :mod:"
@ -1073,7 +1078,7 @@ msgstr ""
"aussi le module :mod:`sqlite3` qui implémente une base de données "
"relationnelle légère sur disque."
#: faq/library.rst:794
#: faq/library.rst:800
msgid ""
"Support for most relational databases is available. See the "
"`DatabaseProgramming wiki page <https://wiki.python.org/moin/"
@ -1083,11 +1088,11 @@ msgstr ""
"Voir la page wiki `DatabaseProgramming <https://wiki.python.org/moin/"
"DatabaseProgramming>`_ pour plus de détails."
#: faq/library.rst:800
#: faq/library.rst:806
msgid "How do you implement persistent objects in Python?"
msgstr "Comment implémenter la persistance d'objets en Python ?"
#: faq/library.rst:802
#: faq/library.rst:808
msgid ""
"The :mod:`pickle` library module solves this in a very general way (though "
"you still can't store things like open files, sockets or windows), and the :"
@ -1099,15 +1104,15 @@ msgstr ""
"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise "
"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python."
#: faq/library.rst:809
#: faq/library.rst:815
msgid "Mathematics and Numerics"
msgstr "Mathématiques et calcul numérique"
#: faq/library.rst:812
#: faq/library.rst:818
msgid "How do I generate random numbers in Python?"
msgstr "Comment générer des nombres aléatoires en Python ?"
#: faq/library.rst:814
#: faq/library.rst:820
msgid ""
"The standard module :mod:`random` implements a random number generator. "
"Usage is simple::"
@ -1115,48 +1120,48 @@ msgstr ""
"Le module :mod:`random` de la bibliothèque standard comprend un générateur "
"de nombres aléatoires. Son utilisation est simple ::"
#: faq/library.rst:820
#: faq/library.rst:826
msgid "This returns a random floating point number in the range [0, 1)."
msgstr ""
"Le code précédent renvoie un nombre à virgule flottante aléatoire dans "
"l'intervalle [0, 1[."
#: faq/library.rst:822
#: faq/library.rst:828
msgid ""
"There are also many other specialized generators in this module, such as:"
msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :"
#: faq/library.rst:824
#: faq/library.rst:830
msgid "``randrange(a, b)`` chooses an integer in the range [a, b)."
msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[."
#: faq/library.rst:825
#: faq/library.rst:831
msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)."
msgstr ""
"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans "
"l'intervalle [a, b[."
#: faq/library.rst:826
#: faq/library.rst:832
msgid ""
"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution."
msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)."
#: faq/library.rst:828
#: faq/library.rst:834
msgid "Some higher-level functions operate on sequences directly, such as:"
msgstr ""
"Des fonctions de haut niveau opèrent directement sur des séquences comme :"
#: faq/library.rst:830
#: faq/library.rst:836
msgid "``choice(S)`` chooses a random element from a given sequence."
msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée."
#: faq/library.rst:831
#: faq/library.rst:837
msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly."
msgstr ""
"``shuffle(L)`` mélange une liste en-place, c.-à-d. lui applique une "
"permutation aléatoire."
#: faq/library.rst:833
#: faq/library.rst:839
msgid ""
"There's also a ``Random`` class you can instantiate to create independent "
"multiple random number generators."
@ -1164,6 +1169,14 @@ msgstr ""
"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour "
"créer des générateurs aléatoires indépendants."
#~ msgid ""
#~ "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. "
#~ "Note that on MacOS 9 it doesn't copy the resource fork and Finder info."
#~ msgstr ""
#~ "Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. "
#~ "Sous MacOS 9, celle-ci ne copie pas le clonage de ressources ni les "
#~ "informations du chercheur."
#~ msgid ""
#~ "For Windows: use `the consolelib module <http://effbot.org/zone/console-"
#~ "index.htm>`_."

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-27 12:17+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -289,12 +289,13 @@ msgstr ""
"résumer comme suit :"
#: faq/windows.rst:170
#, fuzzy
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 "
"the first key undocumented fact.) Instead, link to :file:`python{NN}.dll`; "
"it is typically installed in ``C:\\Windows\\System``. *NN* is the Python "
"version, a number such as \"33\" for Python 3.3."
"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 the first key undocumented fact.) Instead, link to :file:`python{NN}."
"dll`; it is typically installed in ``C:\\Windows\\System``. *NN* is the "
"Python version, a number such as \"33\" for Python 3.3."
msgstr ""
"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous "
"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont "
@ -338,12 +339,13 @@ msgstr ""
"appelle des routines dans l'API C de Python."
#: faq/windows.rst:191
#, fuzzy
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 "
"just about all the grungy details for you. The result is C code that you "
"link *into* your .exe file (!) You do _not_ have to create a DLL file, and "
"this also simplifies linking."
"link *into* your .exe file (!) You do **not** have to create a DLL file, "
"and this also simplifies linking."
msgstr ""
"Si vous utilisez SWIG, il est facile de créer un « module d'extension » "
"Python qui rendra les données et les méthodes de l'application disponibles "
@ -395,11 +397,12 @@ msgstr ""
"construire *pythonNN.dll*."
#: faq/windows.rst:221
#, fuzzy
msgid ""
"Problem 1: The so-called \"Very High Level\" functions that take FILE * "
"Problem 1: The so-called \"Very High Level\" functions that take ``FILE *`` "
"arguments will not work in a multi-compiler environment because each "
"compiler's notion of a struct FILE will be different. From an "
"implementation standpoint these are very _low_ level functions."
"compiler's notion of a ``struct FILE`` will be different. From an "
"implementation standpoint these are very low level functions."
msgstr ""
"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les "
"arguments FILE * ne fonctionneront pas dans un environnement multi-"
@ -515,6 +518,19 @@ msgstr ""
"touche s'est produite, et ``getch()`` qui récupère le caractère sans "
"l'afficher."
#: faq/windows.rst:281
msgid "How do I solve the missing api-ms-win-crt-runtime-l1-1-0.dll error?"
msgstr ""
#: faq/windows.rst:283
msgid ""
"This can occur on Python 3.5 and later when using Windows 8.1 or earlier "
"without all updates having been installed. First ensure your operating "
"system is supported and is up to date, and if that does not resolve the "
"issue, visit the `Microsoft support page <https://support.microsoft.com/en-"
"us/help/3118401/>`_ for guidance on manually installing the C Runtime update."
msgstr ""
#~ msgid ""
#~ "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
#~ "exe first."

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-12-31 11:33+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-12 09:43+0200\n"
"Last-Translator: ZepmanBC <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -125,12 +125,20 @@ msgstr ""
"`getattr` avec trois arguments, par exemple ``getattr(o, '__annotations__', "
"None)``."
#: howto/annotations.rst:62
#: howto/annotations.rst:60
msgid ""
"Before Python 3.10, accessing ``__annotations__`` on a class that defines no "
"annotations but that has a parent class with annotations would return the "
"parent's ``__annotations__``. In Python 3.10 and newer, the child class's "
"annotations will be an empty dict instead."
msgstr ""
#: howto/annotations.rst:68
msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older"
msgstr ""
"Accès au dictionnaire des annotations d'un objet en Python 3.9 et antérieur"
#: howto/annotations.rst:64
#: howto/annotations.rst:70
msgid ""
"In Python 3.9 and older, accessing the annotations dict of an object is much "
"more complicated than in newer versions. The problem is a design flaw in "
@ -141,7 +149,7 @@ msgstr ""
"problème est dû à un défaut de conception de ces anciennes versions de "
"Python, notamment en ce qui concerne les annotations de classe."
#: howto/annotations.rst:69
#: howto/annotations.rst:75
msgid ""
"Best practice for accessing the annotations dict of other objects--"
"functions, other callables, and modules--is the same as best practice for "
@ -155,7 +163,7 @@ msgstr ""
"vous devez utiliser la forme à trois arguments de :func:`getattr` pour "
"accéder à l'attribut ``__annotations__`` de l'objet."
#: howto/annotations.rst:76
#: howto/annotations.rst:82
msgid ""
"Unfortunately, this isn't best practice for classes. The problem is that, "
"since ``__annotations__`` is optional on classes, and because classes can "
@ -170,12 +178,12 @@ msgstr ""
"renvoyer le dictionnaire d'annotations d'une *classe de base.* Par "
"exemple : ::"
#: howto/annotations.rst:92
#: howto/annotations.rst:98
msgid "This will print the annotations dict from ``Base``, not ``Derived``."
msgstr ""
"Ceci affiche le dictionnaire d'annotations de ``Base``, pas de ``Derived``."
#: howto/annotations.rst:95
#: howto/annotations.rst:101
msgid ""
"Your code will have to have a separate code path if the object you're "
"examining is a class (``isinstance(o, type)``). In that case, best practice "
@ -192,7 +200,7 @@ msgstr ""
"annotations définies, la bonne pratique est d'appeler la méthode ``get`` sur "
"le dictionnaire de la classe."
#: howto/annotations.rst:103
#: howto/annotations.rst:109
msgid ""
"To put it all together, here is some sample code that safely accesses the "
"``__annotations__`` attribute on an arbitrary object in Python 3.9 and "
@ -202,7 +210,7 @@ msgstr ""
"l'attribut ``__annotations__`` d'un objet quelconque en Python 3.9 et "
"antérieur : ::"
#: howto/annotations.rst:112
#: howto/annotations.rst:118
msgid ""
"After running this code, ``ann`` should be either a dictionary or ``None``. "
"You're encouraged to double-check the type of ``ann`` using :func:"
@ -212,7 +220,7 @@ msgstr ""
"``None``. Nous vous conseillons de vérifier le type de ``ann`` en "
"utilisant :func:`isinstance` avant de poursuivre l'analyse."
#: howto/annotations.rst:117
#: howto/annotations.rst:123
msgid ""
"Note that some exotic or malformed type objects may not have a ``__dict__`` "
"attribute, so for extra safety you may also wish to use :func:`getattr` to "
@ -222,12 +230,12 @@ msgstr ""
"d'attribut ``__dict__`` donc, pour plus de sécurité, vous pouvez également "
"utiliser :func:`getattr` pour accéder à ``__dict__``."
#: howto/annotations.rst:123
#: howto/annotations.rst:129
msgid "Manually Un-Stringizing Stringized Annotations"
msgstr ""
"Conversion manuelle des annotations contenues dans une chaîne de caractères"
#: howto/annotations.rst:125
#: howto/annotations.rst:131
msgid ""
"In situations where some annotations may be \"stringized\", and you wish to "
"evaluate those strings to produce the Python values they represent, it "
@ -240,7 +248,7 @@ msgstr ""
"préférable d'appeler :func:`inspect.get_annotations` pour faire ce travail à "
"votre place."
#: howto/annotations.rst:131
#: howto/annotations.rst:137
msgid ""
"If you're using Python 3.9 or older, or if for some reason you can't use :"
"func:`inspect.get_annotations`, you'll need to duplicate its logic. You're "
@ -253,7 +261,7 @@ msgstr ""
"l'implémentation de :func:`inspect.get_annotations` dans la version actuelle "
"de Python et à suivre une approche similaire."
#: howto/annotations.rst:137
#: howto/annotations.rst:143
msgid ""
"In a nutshell, if you wish to evaluate a stringized annotation on an "
"arbitrary object ``o``:"
@ -261,7 +269,7 @@ msgstr ""
"En bref, si vous souhaitez évaluer une annotation empaquetée en chaîne de "
"caractères sur un objet arbitraire ``o`` :"
#: howto/annotations.rst:140
#: howto/annotations.rst:146
msgid ""
"If ``o`` is a module, use ``o.__dict__`` as the ``globals`` when calling :"
"func:`eval`."
@ -269,7 +277,7 @@ msgstr ""
"Si ``o`` est un module, utilisez ``o.__dict__`` pour accéder aux noms "
"``globals`` lors de l'appel à :func:`eval`."
#: howto/annotations.rst:142
#: howto/annotations.rst:148
msgid ""
"If ``o`` is a class, use ``sys.modules[o.__module__].__dict__`` as the "
"``globals``, and ``dict(vars(o))`` as the ``locals``, when calling :func:"
@ -279,7 +287,7 @@ msgstr ""
"pour désigner les noms ``globals``, et ``dict(vars(o))`` pour désigner les "
"``locals``, lorsque vous appelez :func:`eval`."
#: howto/annotations.rst:145
#: howto/annotations.rst:151
msgid ""
"If ``o`` is a wrapped callable using :func:`functools.update_wrapper`, :func:"
"`functools.wraps`, or :func:`functools.partial`, iteratively unwrap it by "
@ -291,7 +299,7 @@ msgstr ""
"encapsulez-le itérativement en accédant à ``o.__wrapped__`` ou ``o.func`` "
"selon le cas, jusqu'à ce que vous ayez trouvé la fonction racine."
#: howto/annotations.rst:149
#: howto/annotations.rst:155
msgid ""
"If ``o`` is a callable (but not a class), use ``o.__globals__`` as the "
"globals when calling :func:`eval`."
@ -299,7 +307,7 @@ msgstr ""
"Si ``o`` est un objet appelable (mais pas une classe), utilisez ``o."
"__globals__`` pour désigner les globales lors de l'appel de :func:`eval`."
#: howto/annotations.rst:152
#: howto/annotations.rst:158
msgid ""
"However, not all string values used as annotations can be successfully "
"turned into Python values by :func:`eval`. String values could theoretically "
@ -314,7 +322,7 @@ msgstr ""
"indications de type qui nécessitent d'annoter avec des valeurs de chaîne qui "
"*ne peuvent pas* être évaluées. Par exemple :"
#: howto/annotations.rst:159
#: howto/annotations.rst:165
msgid ""
":pep:`604` union types using ``|``, before support for this was added to "
"Python 3.10."
@ -322,7 +330,7 @@ msgstr ""
"Les types d'union de style :pep:`604` avec ``|``, avant que cette prise en "
"charge ne soit ajoutée à Python 3.10."
#: howto/annotations.rst:161
#: howto/annotations.rst:167
msgid ""
"Definitions that aren't needed at runtime, only imported when :const:`typing."
"TYPE_CHECKING` is true."
@ -330,7 +338,7 @@ msgstr ""
"Les définitions qui ne sont pas nécessaires à l'exécution, importées "
"uniquement lorsque :const:`typing.TYPE_CHECKING` est vrai."
#: howto/annotations.rst:164
#: howto/annotations.rst:170
msgid ""
"If :func:`eval` attempts to evaluate such values, it will fail and raise an "
"exception. So, when designing a library API that works with annotations, "
@ -342,12 +350,12 @@ msgstr ""
"fonctionnant avec des annotations, il est recommandé de ne tenter d'évaluer "
"des valeurs de type chaîne que si l'appelant le demande explicitement."
#: howto/annotations.rst:172
#: howto/annotations.rst:178
msgid "Best Practices For ``__annotations__`` In Any Python Version"
msgstr ""
"Bonnes pratiques pour ``__annotations__`` dans toutes les versions de Python"
#: howto/annotations.rst:174
#: howto/annotations.rst:180
msgid ""
"You should avoid assigning to the ``__annotations__`` member of objects "
"directly. Let Python manage setting ``__annotations__``."
@ -355,7 +363,7 @@ msgstr ""
"Évitez d'assigner directement des objets à l'élément ``__annotations__``. "
"Laissez Python gérer le paramétrage de ``__annotations__``."
#: howto/annotations.rst:177
#: howto/annotations.rst:183
msgid ""
"If you do assign directly to the ``__annotations__`` member of an object, "
"you should always set it to a ``dict`` object."
@ -363,7 +371,7 @@ msgstr ""
"Si vous assignez directement à l'élément ``__annotations__`` d'un objet, "
"vous devez toujours le définir comme un ``dict``."
#: howto/annotations.rst:180
#: howto/annotations.rst:186
msgid ""
"If you directly access the ``__annotations__`` member of an object, you "
"should ensure that it's a dictionary before attempting to examine its "
@ -373,20 +381,20 @@ msgstr ""
"devez vous assurer qu'il s'agit d'un dictionnaire avant de tenter d'examiner "
"son contenu."
#: howto/annotations.rst:184
#: howto/annotations.rst:190
msgid "You should avoid modifying ``__annotations__`` dicts."
msgstr "Évitez de modifier les dictionnaires ``__annotations__``."
#: howto/annotations.rst:186
#: howto/annotations.rst:192
msgid ""
"You should avoid deleting the ``__annotations__`` attribute of an object."
msgstr "Évitez de supprimer l'attribut ``__annotations__`` d'un objet."
#: howto/annotations.rst:191
#: howto/annotations.rst:197
msgid "``__annotations__`` Quirks"
msgstr "Les curiosités concernant ``__annotations__``"
#: howto/annotations.rst:193
#: howto/annotations.rst:199
msgid ""
"In all versions of Python 3, function objects lazy-create an annotations "
"dict if no annotations are defined on that object. You can delete the "
@ -408,7 +416,7 @@ msgstr ""
"``AttributeError`` ; si vous utilisez ``del fn.__annotations__`` deux fois "
"de suite, vous êtes sûr de toujours obtenir ``AttributeError``."
#: howto/annotations.rst:203
#: howto/annotations.rst:209
msgid ""
"Everything in the above paragraph also applies to class and module objects "
"in Python 3.10 and newer."
@ -416,7 +424,7 @@ msgstr ""
"Tout ce qui est dit dans le paragraphe précédent s'applique également aux "
"objets de type classe et module en Python 3.10 et suivants."
#: howto/annotations.rst:206
#: howto/annotations.rst:212
msgid ""
"In all versions of Python 3, you can set ``__annotations__`` on a function "
"object to ``None``. However, subsequently accessing the annotations on that "
@ -435,7 +443,7 @@ msgstr ""
"objets permettent de définir ``__annotations__`` à n'importe quelle valeur "
"Python, et conserveront la valeur définie."
#: howto/annotations.rst:214
#: howto/annotations.rst:220
msgid ""
"If Python stringizes your annotations for you (using ``from __future__ "
"import annotations``), and you specify a string as an annotation, the string "
@ -447,7 +455,7 @@ msgstr ""
"caractères comme annotation, la chaîne sera elle-même entre guillemets. En "
"fait, l'annotation est mise entre guillemets *deux fois*. Par exemple : ::"
#: howto/annotations.rst:225
#: howto/annotations.rst:231
msgid ""
"This prints ``{'a': \"'str'\"}``. This shouldn't really be considered a "
"\"quirk\"; it's mentioned here simply because it might be surprising."

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-16 14:42+0100\n"
"Last-Translator: Khaïs COLIN <kh.col@orange.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -1041,8 +1041,9 @@ msgstr ""
"comment soumettre des améliorations à Python."
#: howto/curses.rst:539
#, fuzzy
msgid ""
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
"`Writing Programs with NCURSES <https://invisible-island.net/ncurses/ncurses-"
"intro.html>`_: a lengthy tutorial for C programmers."
msgstr ""
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
@ -1054,8 +1055,9 @@ msgid "`The ncurses man page <https://linux.die.net/man/3/ncurses>`_"
msgstr "`La page de manuel ncurses <https://linux.die.net/man/3/ncurses>`_"
#: howto/curses.rst:542
#, fuzzy
msgid ""
"`The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_"
"`The ncurses FAQ <https://invisible-island.net/ncurses/ncurses.faq.html>`_"
msgstr ""
"`La FAQ ncurses <http://invisible-island.net/ncurses/ncurses.faq.html>`_ "
"(ressource en anglais)"
@ -1071,10 +1073,11 @@ msgstr ""
"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)."
#: howto/curses.rst:545
#, fuzzy
msgid ""
"`\"Console Applications with Urwid\" <http://www.pyvideo.org/video/1568/"
"console-applications-with-urwid>`_: video of a PyCon CA 2012 talk "
"demonstrating some applications written using Urwid."
"`\"Console Applications with Urwid\" <https://pyvideo.org/video/1568/console-"
"applications-with-urwid>`_: video of a PyCon CA 2012 talk demonstrating some "
"applications written using Urwid."
msgstr ""
"`\"Console Applications with Urwid\" <http://www.pyvideo.org/video/1568/"
"console-applications-with-urwid>`_ : vidéo d'une conférence lors de PyCon CA "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2023-01-14 19:47+0100\n"
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -703,7 +703,7 @@ msgstr ""
"La logique d'une recherche « après un point » se trouve dans :meth:`object."
"__getattribute__`. Voici un équivalent en Python pur :"
#: howto/descriptor.rst:699
#: howto/descriptor.rst:719
msgid ""
"Note, there is no :meth:`__getattr__` hook in the :meth:`__getattribute__` "
"code. That is why calling :meth:`__getattribute__` directly or with "
@ -714,7 +714,7 @@ msgstr ""
"directement ou avec ``super().__getattribute__`` contourne entièrement :meth:"
"`__getattr__`."
#: howto/descriptor.rst:703
#: howto/descriptor.rst:723
msgid ""
"Instead, it is the dot operator and the :func:`getattr` function that are "
"responsible for invoking :meth:`__getattr__` whenever :meth:"
@ -726,11 +726,11 @@ msgstr ""
"`__getattribute__` déclenche une :exc:`AttributeError`. Cette logique est "
"présentée encapsulée dans une fonction utilitaire :"
#: howto/descriptor.rst:753
#: howto/descriptor.rst:773
msgid "Invocation from a class"
msgstr "Appel depuis une classe"
#: howto/descriptor.rst:755
#: howto/descriptor.rst:775
msgid ""
"The logic for a dotted lookup such as ``A.x`` is in :meth:`type."
"__getattribute__`. The steps are similar to those for :meth:`object."
@ -743,12 +743,12 @@ msgstr ""
"d'instance est remplacée par une recherche suivant l':term:`ordre de "
"résolution des méthodes <method resolution order>` de la classe."
#: howto/descriptor.rst:760
#: howto/descriptor.rst:780
msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``."
msgstr ""
"Si un descripteur est trouvé, il est appelé par ``desc.__get__(None, A)``."
#: howto/descriptor.rst:762
#: howto/descriptor.rst:782
msgid ""
"The full C implementation can be found in :c:func:`type_getattro()` and :c:"
"func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`."
@ -756,11 +756,11 @@ msgstr ""
"L'implémentation C complète peut être trouvée dans :c:func:`type_getattro()` "
"et :c:func:`_PyType_Lookup()` dans :source:`Objects/typeobject.c`."
#: howto/descriptor.rst:767
#: howto/descriptor.rst:787
msgid "Invocation from super"
msgstr "Appel depuis super"
#: howto/descriptor.rst:769
#: howto/descriptor.rst:789
msgid ""
"The logic for super's dotted lookup is in the :meth:`__getattribute__` "
"method for object returned by :class:`super()`."
@ -768,7 +768,7 @@ msgstr ""
"La logique de la recherche « après un point » de super se trouve dans la "
"méthode :meth:`__getattribute__` de l'objet renvoyé par :class:`super()`."
#: howto/descriptor.rst:772
#: howto/descriptor.rst:792
msgid ""
"A dotted lookup such as ``super(A, obj).m`` searches ``obj.__class__."
"__mro__`` for the base class ``B`` immediately following ``A`` and then "
@ -780,7 +780,7 @@ msgstr ""
"__dict__['m'].__get__(obj, A)``. Si ce n'est pas un descripteur, ``m`` est "
"renvoyé inchangé."
#: howto/descriptor.rst:777
#: howto/descriptor.rst:797
msgid ""
"The full C implementation can be found in :c:func:`super_getattro()` in :"
"source:`Objects/typeobject.c`. A pure Python equivalent can be found in "
@ -792,11 +792,11 @@ msgstr ""
"`Guido's Tutorial <https://www.python.org/download/releases/2.2.3/descrintro/"
"#cooperation>`_ (page en anglais)."
#: howto/descriptor.rst:784
#: howto/descriptor.rst:804
msgid "Summary of invocation logic"
msgstr "Résumé de la logique d'appel"
#: howto/descriptor.rst:786
#: howto/descriptor.rst:806
msgid ""
"The mechanism for descriptors is embedded in the :meth:`__getattribute__()` "
"methods for :class:`object`, :class:`type`, and :func:`super`."
@ -804,16 +804,16 @@ msgstr ""
"Le fonctionnement des descripteurs se trouve dans les méthodes :meth:"
"`__getattribute__()` de :class:`object`, :class:`type` et :func:`super`."
#: howto/descriptor.rst:789
#: howto/descriptor.rst:809
msgid "The important points to remember are:"
msgstr "Les points importants à retenir sont :"
#: howto/descriptor.rst:791
#: howto/descriptor.rst:811
msgid "Descriptors are invoked by the :meth:`__getattribute__` method."
msgstr ""
"les descripteurs sont appelés par la méthode :meth:`__getattribute__` ;"
#: howto/descriptor.rst:793
#: howto/descriptor.rst:813
msgid ""
"Classes inherit this machinery from :class:`object`, :class:`type`, or :func:"
"`super`."
@ -821,7 +821,7 @@ msgstr ""
"les classes héritent ce mécanisme de :class:`object`, :class:`type` ou :func:"
"`super` ;"
#: howto/descriptor.rst:796
#: howto/descriptor.rst:816
msgid ""
"Overriding :meth:`__getattribute__` prevents automatic descriptor calls "
"because all the descriptor logic is in that method."
@ -829,7 +829,7 @@ msgstr ""
"redéfinir :meth:`__getattribute____` empêche les appels automatiques de "
"descripteur car toute la logique des descripteurs est dans cette méthode ;"
#: howto/descriptor.rst:799
#: howto/descriptor.rst:819
msgid ""
":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make "
"different calls to :meth:`__get__`. The first includes the instance and may "
@ -841,23 +841,23 @@ msgstr ""
"inclure la classe. La seconde met ``None`` pour l'instance et inclut "
"toujours la classe ;"
#: howto/descriptor.rst:804
#: howto/descriptor.rst:824
msgid "Data descriptors always override instance dictionaries."
msgstr ""
"les descripteurs de données sont toujours prioritaires sur les dictionnaires "
"d'instances."
#: howto/descriptor.rst:806
#: howto/descriptor.rst:826
msgid "Non-data descriptors may be overridden by instance dictionaries."
msgstr ""
"les descripteurs hors-données peuvent céder la priorité aux dictionnaires "
"d'instance."
#: howto/descriptor.rst:810
#: howto/descriptor.rst:830
msgid "Automatic name notification"
msgstr "Notification automatique des noms"
#: howto/descriptor.rst:812
#: howto/descriptor.rst:832
msgid ""
"Sometimes it is desirable for a descriptor to know what class variable name "
"it was assigned to. When a new class is created, the :class:`type` "
@ -874,7 +874,7 @@ msgstr ""
"(propriétaire) est la classe où le descripteur est utilisé, et *name* est la "
"variable de classe à laquelle le descripteur a été assigné."
#: howto/descriptor.rst:819
#: howto/descriptor.rst:839
msgid ""
"The implementation details are in :c:func:`type_new()` and :c:func:"
"`set_names()` in :source:`Objects/typeobject.c`."
@ -882,7 +882,7 @@ msgstr ""
"Les détails d'implémentation sont dans :c:func:`type_new()` et :c:func:"
"`set_names()` dans :source:`Objects/typeobject.c`."
#: howto/descriptor.rst:822
#: howto/descriptor.rst:842
msgid ""
"Since the update logic is in :meth:`type.__new__`, notifications only take "
"place at the time of class creation. If descriptors are added to the class "
@ -893,22 +893,23 @@ msgstr ""
"descripteurs sont ajoutés à la classe par la suite, :meth:`__set_name__` "
"doit être appelée manuellement."
#: howto/descriptor.rst:828
#: howto/descriptor.rst:848
msgid "ORM example"
msgstr "Exemple d'ORM"
#: howto/descriptor.rst:830
#: howto/descriptor.rst:850
#, fuzzy
msgid ""
"The following code is simplified skeleton showing how data descriptors could "
"be used to implement an `object relational mapping <https://en.wikipedia.org/"
"wiki/Object%E2%80%93relational_mapping>`_."
"The following code is a simplified skeleton showing how data descriptors "
"could be used to implement an `object relational mapping <https://en."
"wikipedia.org/wiki/Object%E2%80%93relational_mapping>`_."
msgstr ""
"Le code suivant est une ossature simplifiée montrant comment les "
"descripteurs de données peuvent être utilisés pour implémenter une "
"`correspondance objet-relationnel <https://fr.wikipedia.org/wiki/"
"Mapping_objet-relationnel>`_."
#: howto/descriptor.rst:834
#: howto/descriptor.rst:854
msgid ""
"The essential idea is that the data is stored in an external database. The "
"Python instances only hold keys to the database's tables. Descriptors take "
@ -919,7 +920,7 @@ msgstr ""
"de la base de données. Les descripteurs s'occupent des recherches et des "
"mises à jour :"
#: howto/descriptor.rst:853
#: howto/descriptor.rst:873
msgid ""
"We can use the :class:`Field` class to define `models <https://en.wikipedia."
"org/wiki/Database_model>`_ that describe the schema for each table in a "
@ -929,12 +930,12 @@ msgstr ""
"<https://en.wikipedia.org/wiki/Database_model>`_ qui décrivent le schéma de "
"chaque table d'une base de données :"
#: howto/descriptor.rst:878
#: howto/descriptor.rst:898
msgid "To use the models, first connect to the database::"
msgstr ""
"Pour utiliser les modèles, connectons-nous d'abord à la base de données ::"
#: howto/descriptor.rst:883
#: howto/descriptor.rst:903
msgid ""
"An interactive session shows how data is retrieved from the database and how "
"it can be updated:"
@ -942,16 +943,16 @@ msgstr ""
"Une session interactive montre comment les données sont extraites de la base "
"de données et comment elles peuvent être mises à jour :"
#: howto/descriptor.rst:928
#: howto/descriptor.rst:948
msgid "Pure Python Equivalents"
msgstr "Équivalents en Python pur"
#: howto/descriptor.rst:930
#: howto/descriptor.rst:950
msgid ""
"The descriptor protocol is simple and offers exciting possibilities. "
"Several use cases are so common that they have been prepackaged into built-"
"in tools. Properties, bound methods, static methods, class methods, and \\_"
"\\_slots\\_\\_ are all based on the descriptor protocol."
"in tools. Properties, bound methods, static methods, class methods, and "
"\\_\\_slots\\_\\_ are all based on the descriptor protocol."
msgstr ""
"Le protocole descripteur est simple et offre des possibilités très "
"intéressantes. Plusieurs cas d'utilisation sont si courants qu'ils ont été "
@ -959,11 +960,11 @@ msgstr ""
"méthodes statiques et les méthodes de classe sont toutes basées sur le "
"protocole descripteur."
#: howto/descriptor.rst:937
#: howto/descriptor.rst:957
msgid "Properties"
msgstr "Propriétés"
#: howto/descriptor.rst:939
#: howto/descriptor.rst:959
msgid ""
"Calling :func:`property` is a succinct way of building a data descriptor "
"that triggers a function call upon access to an attribute. Its signature "
@ -973,14 +974,14 @@ msgstr ""
"données qui déclenche un appel de fonction lors de l'accès à un attribut. Sa "
"signature est ::"
#: howto/descriptor.rst:944
#: howto/descriptor.rst:964
msgid ""
"The documentation shows a typical use to define a managed attribute ``x``:"
msgstr ""
"La documentation montre une utilisation caractéristique pour définir un "
"attribut géré ``x`` ::"
#: howto/descriptor.rst:968
#: howto/descriptor.rst:988
msgid ""
"To see how :func:`property` is implemented in terms of the descriptor "
"protocol, here is a pure Python equivalent:"
@ -988,7 +989,7 @@ msgstr ""
"Pour voir comment :func:`property` est implémentée dans le protocole du "
"descripteur, voici un équivalent en Python pur ::"
#: howto/descriptor.rst:1071
#: howto/descriptor.rst:1091
msgid ""
"The :func:`property` builtin helps whenever a user interface has granted "
"attribute access and then subsequent changes require the intervention of a "
@ -998,7 +999,7 @@ msgstr ""
"utilisateur a accordé l'accès à un attribut et que des modifications "
"ultérieures nécessitent l'intervention d'une méthode."
#: howto/descriptor.rst:1075
#: howto/descriptor.rst:1095
msgid ""
"For instance, a spreadsheet class may grant access to a cell value through "
"``Cell('b10').value``. Subsequent improvements to the program require the "
@ -1014,7 +1015,7 @@ msgstr ""
"directement à l'attribut. La solution consiste à envelopper l'accès à "
"l'attribut *value* dans un descripteur de données ::"
#: howto/descriptor.rst:1092
#: howto/descriptor.rst:1112
msgid ""
"Either the built-in :func:`property` or our :func:`Property` equivalent "
"would work in this example."
@ -1022,11 +1023,11 @@ msgstr ""
"Soit la :func:`property` native, soit notre équivalent :func:`Property` "
"fonctionnent dans cet exemple."
#: howto/descriptor.rst:1097
#: howto/descriptor.rst:1117
msgid "Functions and methods"
msgstr "Fonctions et méthodes"
#: howto/descriptor.rst:1099
#: howto/descriptor.rst:1119
msgid ""
"Python's object oriented features are built upon a function based "
"environment. Using non-data descriptors, the two are merged seamlessly."
@ -1035,7 +1036,7 @@ msgstr ""
"environnement basé sur des fonctions. À l'aide de descripteurs hors-données, "
"les deux sont fusionnés de façon transparente."
#: howto/descriptor.rst:1102
#: howto/descriptor.rst:1122
msgid ""
"Functions stored in class dictionaries get turned into methods when invoked. "
"Methods only differ from regular functions in that the object instance is "
@ -1049,7 +1050,7 @@ msgstr ""
"*self*, bien qu'il soit possible de l'appeler *this* ou tout autre nom de "
"variable."
#: howto/descriptor.rst:1107
#: howto/descriptor.rst:1127
msgid ""
"Methods can be created manually with :class:`types.MethodType` which is "
"roughly equivalent to:"
@ -1057,7 +1058,7 @@ msgstr ""
"Les méthodes peuvent être créées manuellement avec :class:`types."
"MethodType`, qui équivaut à peu près à :"
#: howto/descriptor.rst:1124
#: howto/descriptor.rst:1144
msgid ""
"To support automatic creation of methods, functions include the :meth:"
"`__get__` method for binding methods during attribute access. This means "
@ -1070,7 +1071,7 @@ msgstr ""
"hors-données qui renvoient des méthodes liées au cours d'une recherche "
"d'attribut d'une instance. Cela fonctionne ainsi ::"
#: howto/descriptor.rst:1140
#: howto/descriptor.rst:1160
msgid ""
"Running the following class in the interpreter shows how the function "
"descriptor works in practice:"
@ -1078,14 +1079,14 @@ msgstr ""
"L'exécution de la classe suivante dans l'interpréteur montre comment le "
"descripteur de fonction se comporte en pratique ::"
#: howto/descriptor.rst:1149
#: howto/descriptor.rst:1169
msgid ""
"The function has a :term:`qualified name` attribute to support introspection:"
msgstr ""
"La fonction possède un attribut `__qualname__` (:term:`nom "
"qualifié<qualified name>`) pour prendre en charge l'introspection :"
#: howto/descriptor.rst:1156
#: howto/descriptor.rst:1176
msgid ""
"Accessing the function through the class dictionary does not invoke :meth:"
"`__get__`. Instead, it just returns the underlying function object::"
@ -1094,7 +1095,7 @@ msgstr ""
"`__get__`. À la place, il renvoie simplement l'objet de fonction sous-"
"jacent ::"
#: howto/descriptor.rst:1162
#: howto/descriptor.rst:1182
msgid ""
"Dotted access from a class calls :meth:`__get__` which just returns the "
"underlying function unchanged::"
@ -1102,7 +1103,7 @@ msgstr ""
"La recherche d'attribut depuis une classe appelle :meth:`__get__`, qui "
"renvoie simplement la fonction sous-jacente inchangée ::"
#: howto/descriptor.rst:1168
#: howto/descriptor.rst:1188
msgid ""
"The interesting behavior occurs during dotted access from an instance. The "
"dotted lookup calls :meth:`__get__` which returns a bound method object::"
@ -1111,7 +1112,7 @@ msgstr ""
"partir d'une instance. La recherche d'attribut appelle :meth:`__get__` qui "
"renvoie un objet « méthode liée » ::"
#: howto/descriptor.rst:1175
#: howto/descriptor.rst:1195
msgid ""
"Internally, the bound method stores the underlying function and the bound "
"instance::"
@ -1119,7 +1120,7 @@ msgstr ""
"En interne, la méthode liée stocke la fonction sous-jacente et l'instance "
"liée ::"
#: howto/descriptor.rst:1184
#: howto/descriptor.rst:1204
msgid ""
"If you have ever wondered where *self* comes from in regular methods or "
"where *cls* comes from in class methods, this is it!"
@ -1127,11 +1128,11 @@ msgstr ""
"Si vous vous êtes déjà demandé d'où vient *self* dans les méthodes "
"ordinaires ou d'où vient *cls* dans les méthodes de classe, c'est ça !"
#: howto/descriptor.rst:1189
#: howto/descriptor.rst:1209
msgid "Kinds of methods"
msgstr "Types de méthodes"
#: howto/descriptor.rst:1191
#: howto/descriptor.rst:1211
msgid ""
"Non-data descriptors provide a simple mechanism for variations on the usual "
"patterns of binding functions into methods."
@ -1139,7 +1140,7 @@ msgstr ""
"Les descripteurs hors-données constituent un moyen simple pour modifier le "
"modèle usuel de transformation des fonctions en méthodes."
#: howto/descriptor.rst:1194
#: howto/descriptor.rst:1214
msgid ""
"To recap, functions have a :meth:`__get__` method so that they can be "
"converted to a method when accessed as attributes. The non-data descriptor "
@ -1151,57 +1152,57 @@ msgstr ""
"descripteur hors-données transforme un appel ``obj.f(*args)`` en ``f(obj, "
"*args)``. L'appel ``cls.f(*args)`` devient ``f(*args)``."
#: howto/descriptor.rst:1199
#: howto/descriptor.rst:1219
msgid "This chart summarizes the binding and its two most useful variants:"
msgstr ""
"Ce tableau résume le lien classique (*binding*) et ses deux variantes les "
"plus utiles ::"
#: howto/descriptor.rst:1202
#: howto/descriptor.rst:1222
msgid "Transformation"
msgstr "Transformation"
#: howto/descriptor.rst:1202
#: howto/descriptor.rst:1222
msgid "Called from an object"
msgstr "Appelée depuis un objet"
#: howto/descriptor.rst:1202
#: howto/descriptor.rst:1222
msgid "Called from a class"
msgstr "Appelée depuis une classe"
#: howto/descriptor.rst:1205
#: howto/descriptor.rst:1225
msgid "function"
msgstr "fonction"
#: howto/descriptor.rst:1205
#: howto/descriptor.rst:1225
msgid "f(obj, \\*args)"
msgstr "f(obj, \\*args)"
#: howto/descriptor.rst:1207
#: howto/descriptor.rst:1227
msgid "f(\\*args)"
msgstr "f(\\*args)"
#: howto/descriptor.rst:1207
#: howto/descriptor.rst:1227
msgid "staticmethod"
msgstr "méthode statique"
#: howto/descriptor.rst:1209
#: howto/descriptor.rst:1229
msgid "classmethod"
msgstr "méthode de classe"
#: howto/descriptor.rst:1209
#: howto/descriptor.rst:1229
msgid "f(type(obj), \\*args)"
msgstr "f(type(obj), \\*args)"
#: howto/descriptor.rst:1209
#: howto/descriptor.rst:1229
msgid "f(cls, \\*args)"
msgstr "f(cls, \\*args)"
#: howto/descriptor.rst:1214
#: howto/descriptor.rst:1234
msgid "Static methods"
msgstr "Méthodes statiques"
#: howto/descriptor.rst:1216
#: howto/descriptor.rst:1236
msgid ""
"Static methods return the underlying function without changes. Calling "
"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object."
@ -1211,11 +1212,11 @@ msgid ""
msgstr ""
"Les méthodes statiques renvoient la fonction sous-jacente sans modification. "
"Appeler ``c.f`` ou ``C.f`` est l'équivalent d'une recherche directe dans "
"``objet.__getattribute__(c, \"f\")`` ou ``objet.__getattribute__(C, \"f"
"\")``. Par conséquent, l'accès à la fonction devient identique que ce soit à "
"partir d'un objet ou d'une classe."
"``objet.__getattribute__(c, \"f\")`` ou ``objet.__getattribute__(C, "
"\"f\")``. Par conséquent, l'accès à la fonction devient identique que ce "
"soit à partir d'un objet ou d'une classe."
#: howto/descriptor.rst:1222
#: howto/descriptor.rst:1242
msgid ""
"Good candidates for static methods are methods that do not reference the "
"``self`` variable."
@ -1223,7 +1224,7 @@ msgstr ""
"Les bonnes candidates pour être méthode statique sont des méthodes qui ne "
"font pas référence à la variable ``self``."
#: howto/descriptor.rst:1225
#: howto/descriptor.rst:1245
msgid ""
"For instance, a statistics package may include a container class for "
"experimental data. The class provides normal methods for computing the "
@ -1245,7 +1246,7 @@ msgstr ""
"partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332`` ou ``Sample."
"erf(1.5) --> .9332``."
#: howto/descriptor.rst:1234
#: howto/descriptor.rst:1254
msgid ""
"Since static methods return the underlying function with no changes, the "
"example calls are unexciting:"
@ -1253,7 +1254,7 @@ msgstr ""
"Puisque les méthodes statiques renvoient la fonction sous-jacente sans "
"changement, les exemples dappels sont d'une grande banalité ::"
#: howto/descriptor.rst:1251
#: howto/descriptor.rst:1271
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
"`staticmethod` would look like this:"
@ -1261,11 +1262,11 @@ msgstr ""
"En utilisant le protocole de descripteur hors-données, une version Python "
"pure de :func:`staticmethod` ressemblerait à ceci ::"
#: howto/descriptor.rst:1290
#: howto/descriptor.rst:1310
msgid "Class methods"
msgstr "Méthodes de classe"
#: howto/descriptor.rst:1292
#: howto/descriptor.rst:1312
msgid ""
"Unlike static methods, class methods prepend the class reference to the "
"argument list before calling the function. This format is the same for "
@ -1275,7 +1276,7 @@ msgstr ""
"référence de classe en tête de la liste d'arguments, avant d'appeler la "
"fonction. C'est le même format que l'appelant soit un objet ou une classe ::"
#: howto/descriptor.rst:1310
#: howto/descriptor.rst:1330
msgid ""
"This behavior is useful whenever the method only needs to have a class "
"reference and does not rely on data stored in a specific instance. One use "
@ -1290,13 +1291,13 @@ msgstr ""
"func:`dict.fromkeys` crée un nouveau dictionnaire à partir d'une liste de "
"clés. L'équivalent Python pur est ::"
#: howto/descriptor.rst:1327
#: howto/descriptor.rst:1347
msgid "Now a new dictionary of unique keys can be constructed like this:"
msgstr ""
"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme "
"ceci :"
#: howto/descriptor.rst:1337
#: howto/descriptor.rst:1357
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
"`classmethod` would look like this:"
@ -1304,7 +1305,7 @@ msgstr ""
"En utilisant le protocole de descripteur hors-données, une version Python "
"pure de :func:`classmethod` ressemblerait à ceci :"
#: howto/descriptor.rst:1388
#: howto/descriptor.rst:1408
msgid ""
"The code path for ``hasattr(type(self.f), '__get__')`` was added in Python "
"3.9 and makes it possible for :func:`classmethod` to support chained "
@ -1317,11 +1318,11 @@ msgstr ""
"être chaîné à un décorateur « propriété ». Dans Python 3.11, cette "
"fonctionnalité est devenue obsolète."
#: howto/descriptor.rst:1408
#: howto/descriptor.rst:1428
msgid "Member objects and __slots__"
msgstr "Objets membres et *__slots__*"
#: howto/descriptor.rst:1410
#: howto/descriptor.rst:1430
msgid ""
"When a class defines ``__slots__``, it replaces instance dictionaries with a "
"fixed-length array of slot values. From a user point of view that has "
@ -1331,7 +1332,7 @@ msgstr ""
"d'instance par un tableau de longueur fixe de créneaux prédéfinis. D'un "
"point de vue utilisateur, cela :"
#: howto/descriptor.rst:1414
#: howto/descriptor.rst:1434
msgid ""
"1. Provides immediate detection of bugs due to misspelled attribute "
"assignments. Only attribute names specified in ``__slots__`` are allowed:"
@ -1340,7 +1341,7 @@ msgstr ""
"d'attributs mal orthographiés. Seuls les noms d'attribut spécifiés dans "
"``__slots__`` sont autorisés :"
#: howto/descriptor.rst:1430
#: howto/descriptor.rst:1450
msgid ""
"2. Helps create immutable objects where descriptors manage access to private "
"attributes stored in ``__slots__``:"
@ -1348,7 +1349,7 @@ msgstr ""
"2/ aide à créer des objets immuables où les descripteurs gèrent l'accès aux "
"attributs privés stockés dans ``__slots__`` :"
#: howto/descriptor.rst:1465
#: howto/descriptor.rst:1485
msgid ""
"3. Saves memory. On a 64-bit Linux build, an instance with two attributes "
"takes 48 bytes with ``__slots__`` and 152 bytes without. This `flyweight "
@ -1361,7 +1362,7 @@ msgstr ""
"mouche_(patron_de_conception)>`_ n'a probablement d'importance que si un "
"grand nombre d'instances doivent être créées ;"
#: howto/descriptor.rst:1470
#: howto/descriptor.rst:1490
msgid ""
"4. Improves speed. Reading instance variables is 35% faster with "
"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)."
@ -1370,7 +1371,7 @@ msgstr ""
"rapide avec ``__slots__`` (mesure effectuée avec Python 3.10 sur un "
"processeur Apple M1) ;"
#: howto/descriptor.rst:1473
#: howto/descriptor.rst:1493
msgid ""
"5. Blocks tools like :func:`functools.cached_property` which require an "
"instance dictionary to function correctly:"
@ -1378,7 +1379,7 @@ msgstr ""
"5/ bloque les outils comme :func:`functools.cached_property` qui nécessitent "
"un dictionnaire d'instance pour fonctionner correctement :"
#: howto/descriptor.rst:1495
#: howto/descriptor.rst:1515
msgid ""
"It is not possible to create an exact drop-in pure Python version of "
"``__slots__`` because it requires direct access to C structures and control "
@ -1395,7 +1396,7 @@ msgstr ""
"écritures dans cette structure privée sont gérées par des descripteurs de "
"membres :"
#: howto/descriptor.rst:1538
#: howto/descriptor.rst:1560
msgid ""
"The :meth:`type.__new__` method takes care of adding member objects to class "
"variables:"
@ -1403,7 +1404,7 @@ msgstr ""
"La méthode :meth:`type.__new__` s'occupe d'ajouter des objets membres aux "
"variables de classe :"
#: howto/descriptor.rst:1554
#: howto/descriptor.rst:1576
msgid ""
"The :meth:`object.__new__` method takes care of creating instances that have "
"slots instead of an instance dictionary. Here is a rough simulation in pure "
@ -1413,7 +1414,7 @@ msgstr ""
"des *slots* au lieu d'un dictionnaire d'instances. Voici une simulation "
"approximative en Python pur :"
#: howto/descriptor.rst:1589
#: howto/descriptor.rst:1611
msgid ""
"To use the simulation in a real class, just inherit from :class:`Object` and "
"set the :term:`metaclass` to :class:`Type`:"
@ -1422,13 +1423,13 @@ msgstr ""
"class:`Object` et définissez la :term:`métaclasse <metaclass>` à :class:"
"`Type` :"
#: howto/descriptor.rst:1603
#: howto/descriptor.rst:1625
msgid ""
"At this point, the metaclass has loaded member objects for *x* and *y*::"
msgstr ""
"À ce stade, la métaclasse a chargé des objets membres pour *x* et *y* ::"
#: howto/descriptor.rst:1624
#: howto/descriptor.rst:1646
msgid ""
"When instances are created, they have a ``slot_values`` list where the "
"attributes are stored:"
@ -1436,7 +1437,7 @@ msgstr ""
"Lorsque les instances sont créées, elles ont une liste ``slot_values`` où "
"les attributs sont stockés :"
#: howto/descriptor.rst:1636
#: howto/descriptor.rst:1658
msgid "Misspelled or unassigned attributes will raise an exception:"
msgstr ""
"Les attributs mal orthographiés ou non attribués lèvent une exception :"

File diff suppressed because it is too large Load Diff

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: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-11-06 19:31+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -141,9 +141,10 @@ msgstr ""
"métadonnées ::"
#: howto/instrumentation.rst:125
#, fuzzy
msgid ""
"The above metadata contains information for SystemTap describing how it can "
"patch strategically-placed machine code instructions to enable the tracing "
"patch strategically placed machine code instructions to enable the tracing "
"hooks used by a SystemTap script."
msgstr ""
"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* "
@ -421,9 +422,10 @@ msgstr ""
"statiques ::"
#: howto/instrumentation.rst:412
#, fuzzy
msgid ""
"The following script uses the tapset above to provide a top-like view of all "
"running CPython code, showing the top 20 most frequently-entered bytecode "
"running CPython code, showing the top 20 most frequently entered bytecode "
"frames, each second, across the whole system:"
msgstr ""
"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de "

View File

@ -0,0 +1,632 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2023, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.11\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: howto/isolating-extensions.rst:5
msgid "Isolating Extension Modules"
msgstr ""
#: howto/isolating-extensions.rst:None
msgid "Abstract"
msgstr ""
#: howto/isolating-extensions.rst:9
msgid ""
"Traditionally, state belonging to Python extension modules was kept in C "
"``static`` variables, which have process-wide scope. This document describes "
"problems of such per-process state and shows a safer way: per-module state."
msgstr ""
#: howto/isolating-extensions.rst:14
msgid ""
"The document also describes how to switch to per-module state where "
"possible. This transition involves allocating space for that state, "
"potentially switching from static types to heap types, and—perhaps most "
"importantly—accessing per-module state from code."
msgstr ""
#: howto/isolating-extensions.rst:21
msgid "Who should read this"
msgstr ""
#: howto/isolating-extensions.rst:23
msgid ""
"This guide is written for maintainers of :ref:`C-API <c-api-index>` "
"extensions who would like to make that extension safer to use in "
"applications where Python itself is used as a library."
msgstr ""
#: howto/isolating-extensions.rst:29
msgid "Background"
msgstr ""
#: howto/isolating-extensions.rst:31
msgid ""
"An *interpreter* is the context in which Python code runs. It contains "
"configuration (e.g. the import path) and runtime state (e.g. the set of "
"imported modules)."
msgstr ""
#: howto/isolating-extensions.rst:35
msgid ""
"Python supports running multiple interpreters in one process. There are two "
"cases to think about—users may run interpreters:"
msgstr ""
#: howto/isolating-extensions.rst:38
msgid ""
"in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` "
"cycles, and"
msgstr ""
#: howto/isolating-extensions.rst:40
msgid ""
"in parallel, managing \"sub-interpreters\" using :c:func:"
"`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`."
msgstr ""
#: howto/isolating-extensions.rst:43
msgid ""
"Both cases (and combinations of them) would be most useful when embedding "
"Python within a library. Libraries generally shouldn't make assumptions "
"about the application that uses them, which include assuming a process-wide "
"\"main Python interpreter\"."
msgstr ""
#: howto/isolating-extensions.rst:48
msgid ""
"Historically, Python extension modules don't handle this use case well. Many "
"extension modules (and even some stdlib modules) use *per-process* global "
"state, because C ``static`` variables are extremely easy to use. Thus, data "
"that should be specific to an interpreter ends up being shared between "
"interpreters. Unless the extension developer is careful, it is very easy to "
"introduce edge cases that lead to crashes when a module is loaded in more "
"than one interpreter in the same process."
msgstr ""
#: howto/isolating-extensions.rst:56
msgid ""
"Unfortunately, *per-interpreter* state is not easy to achieve. Extension "
"authors tend to not keep multiple interpreters in mind when developing, and "
"it is currently cumbersome to test the behavior."
msgstr ""
#: howto/isolating-extensions.rst:61
msgid "Enter Per-Module State"
msgstr ""
#: howto/isolating-extensions.rst:63
msgid ""
"Instead of focusing on per-interpreter state, Python's C API is evolving to "
"better support the more granular *per-module* state. This means that C-level "
"data is be attached to a *module object*. Each interpreter creates its own "
"module object, keeping the data separate. For testing the isolation, "
"multiple module objects corresponding to a single extension can even be "
"loaded in a single interpreter."
msgstr ""
#: howto/isolating-extensions.rst:70
msgid ""
"Per-module state provides an easy way to think about lifetime and resource "
"ownership: the extension module will initialize when a module object is "
"created, and clean up when it's freed. In this regard, a module is just like "
"any other :c:expr:`PyObject *`; there are no \"on interpreter shutdown\" "
"hooks to think—or forget—about."
msgstr ""
#: howto/isolating-extensions.rst:76
msgid ""
"Note that there are use cases for different kinds of \"globals\": per-"
"process, per-interpreter, per-thread or per-task state. With per-module "
"state as the default, these are still possible, but you should treat them as "
"exceptional cases: if you need them, you should give them additional care "
"and testing. (Note that this guide does not cover them.)"
msgstr ""
#: howto/isolating-extensions.rst:85
msgid "Isolated Module Objects"
msgstr ""
#: howto/isolating-extensions.rst:87
msgid ""
"The key point to keep in mind when developing an extension module is that "
"several module objects can be created from a single shared library. For "
"example:"
msgstr ""
#: howto/isolating-extensions.rst:101
msgid ""
"As a rule of thumb, the two modules should be completely independent. All "
"objects and state specific to the module should be encapsulated within the "
"module object, not shared with other module objects, and cleaned up when the "
"module object is deallocated. Since this just is a rule of thumb, exceptions "
"are possible (see `Managing Global State`_), but they will need more thought "
"and attention to edge cases."
msgstr ""
#: howto/isolating-extensions.rst:109
msgid ""
"While some modules could do with less stringent restrictions, isolated "
"modules make it easier to set clear expectations and guidelines that work "
"across a variety of use cases."
msgstr ""
#: howto/isolating-extensions.rst:115
msgid "Surprising Edge Cases"
msgstr ""
#: howto/isolating-extensions.rst:117
msgid ""
"Note that isolated modules do create some surprising edge cases. Most "
"notably, each module object will typically not share its classes and "
"exceptions with other similar modules. Continuing from the `example above "
"<Isolated Module Objects_>`__, note that ``old_binascii.Error`` and "
"``binascii.Error`` are separate objects. In the following code, the "
"exception is *not* caught:"
msgstr ""
#: howto/isolating-extensions.rst:137
msgid ""
"This is expected. Notice that pure-Python modules behave the same way: it is "
"a part of how Python works."
msgstr ""
#: howto/isolating-extensions.rst:140
msgid ""
"The goal is to make extension modules safe at the C level, not to make hacks "
"behave intuitively. Mutating ``sys.modules`` \"manually\" counts as a hack."
msgstr ""
#: howto/isolating-extensions.rst:146
msgid "Making Modules Safe with Multiple Interpreters"
msgstr ""
#: howto/isolating-extensions.rst:150
msgid "Managing Global State"
msgstr ""
#: howto/isolating-extensions.rst:152
msgid ""
"Sometimes, the state associated with a Python module is not specific to that "
"module, but to the entire process (or something else \"more global\" than a "
"module). For example:"
msgstr ""
#: howto/isolating-extensions.rst:156
msgid "The ``readline`` module manages *the* terminal."
msgstr ""
#: howto/isolating-extensions.rst:157
msgid ""
"A module running on a circuit board wants to control *the* on-board LED."
msgstr ""
#: howto/isolating-extensions.rst:160
msgid ""
"In these cases, the Python module should provide *access* to the global "
"state, rather than *own* it. If possible, write the module so that multiple "
"copies of it can access the state independently (along with other libraries, "
"whether for Python or other languages). If that is not possible, consider "
"explicit locking."
msgstr ""
#: howto/isolating-extensions.rst:166
msgid ""
"If it is necessary to use process-global state, the simplest way to avoid "
"issues with multiple interpreters is to explicitly prevent a module from "
"being loaded more than once per process—see `Opt-Out: Limiting to One Module "
"Object per Process`_."
msgstr ""
#: howto/isolating-extensions.rst:173
msgid "Managing Per-Module State"
msgstr ""
#: howto/isolating-extensions.rst:175
msgid ""
"To use per-module state, use :ref:`multi-phase extension module "
"initialization <multi-phase-initialization>`. This signals that your module "
"supports multiple interpreters correctly."
msgstr ""
#: howto/isolating-extensions.rst:179
msgid ""
"Set ``PyModuleDef.m_size`` to a positive number to request that many bytes "
"of storage local to the module. Usually, this will be set to the size of "
"some module-specific ``struct``, which can store all of the module's C-level "
"state. In particular, it is where you should put pointers to classes "
"(including exceptions, but excluding static types) and settings (e.g. "
"``csv``'s :py:data:`~csv.field_size_limit`) which the C code needs to "
"function."
msgstr ""
#: howto/isolating-extensions.rst:188
msgid ""
"Another option is to store state in the module's ``__dict__``, but you must "
"avoid crashing when users modify ``__dict__`` from Python code. This usually "
"means error- and type-checking at the C level, which is easy to get wrong "
"and hard to test sufficiently."
msgstr ""
#: howto/isolating-extensions.rst:193
msgid ""
"However, if module state is not needed in C code, storing it in ``__dict__`` "
"only is a good idea."
msgstr ""
#: howto/isolating-extensions.rst:196
msgid ""
"If the module state includes ``PyObject`` pointers, the module object must "
"hold references to those objects and implement the module-level hooks "
"``m_traverse``, ``m_clear`` and ``m_free``. These work like ``tp_traverse``, "
"``tp_clear`` and ``tp_free`` of a class. Adding them will require some work "
"and make the code longer; this is the price for modules which can be "
"unloaded cleanly."
msgstr ""
#: howto/isolating-extensions.rst:203
msgid ""
"An example of a module with per-module state is currently available as "
"`xxlimited <https://github.com/python/cpython/blob/master/Modules/xxlimited."
"c>`__; example module initialization shown at the bottom of the file."
msgstr ""
#: howto/isolating-extensions.rst:209
msgid "Opt-Out: Limiting to One Module Object per Process"
msgstr ""
#: howto/isolating-extensions.rst:211
msgid ""
"A non-negative ``PyModuleDef.m_size`` signals that a module supports "
"multiple interpreters correctly. If this is not yet the case for your "
"module, you can explicitly make your module loadable only once per process. "
"For example::"
msgstr ""
#: howto/isolating-extensions.rst:232
msgid "Module State Access from Functions"
msgstr ""
#: howto/isolating-extensions.rst:234
msgid ""
"Accessing the state from module-level functions is straightforward. "
"Functions get the module object as their first argument; for extracting the "
"state, you can use ``PyModule_GetState``::"
msgstr ""
#: howto/isolating-extensions.rst:249
msgid ""
"``PyModule_GetState`` may return ``NULL`` without setting an exception if "
"there is no module state, i.e. ``PyModuleDef.m_size`` was zero. In your own "
"module, you're in control of ``m_size``, so this is easy to prevent."
msgstr ""
#: howto/isolating-extensions.rst:256
msgid "Heap Types"
msgstr ""
#: howto/isolating-extensions.rst:258
msgid ""
"Traditionally, types defined in C code are *static*; that is, ``static "
"PyTypeObject`` structures defined directly in code and initialized using "
"``PyType_Ready()``."
msgstr ""
#: howto/isolating-extensions.rst:262
msgid ""
"Such types are necessarily shared across the process. Sharing them between "
"module objects requires paying attention to any state they own or access. To "
"limit the possible issues, static types are immutable at the Python level: "
"for example, you can't set ``str.myattribute = 123``."
msgstr ""
#: howto/isolating-extensions.rst:268
msgid ""
"Sharing truly immutable objects between interpreters is fine, as long as "
"they don't provide access to mutable objects. However, in CPython, every "
"Python object has a mutable implementation detail: the reference count. "
"Changes to the refcount are guarded by the GIL. Thus, code that shares any "
"Python objects across interpreters implicitly depends on CPython's current, "
"process-wide GIL."
msgstr ""
#: howto/isolating-extensions.rst:275
msgid ""
"Because they are immutable and process-global, static types cannot access "
"\"their\" module state. If any method of such a type requires access to "
"module state, the type must be converted to a *heap-allocated type*, or "
"*heap type* for short. These correspond more closely to classes created by "
"Python's ``class`` statement."
msgstr ""
#: howto/isolating-extensions.rst:282
msgid "For new modules, using heap types by default is a good rule of thumb."
msgstr ""
#: howto/isolating-extensions.rst:286
msgid "Changing Static Types to Heap Types"
msgstr ""
#: howto/isolating-extensions.rst:288
msgid ""
"Static types can be converted to heap types, but note that the heap type API "
"was not designed for \"lossless\" conversion from static types—that is, "
"creating a type that works exactly like a given static type. So, when "
"rewriting the class definition in a new API, you are likely to "
"unintentionally change a few details (e.g. pickleability or inherited "
"slots). Always test the details that are important to you."
msgstr ""
#: howto/isolating-extensions.rst:297
msgid ""
"Watch out for the following two points in particular (but note that this is "
"not a comprehensive list):"
msgstr ""
#: howto/isolating-extensions.rst:300
msgid ""
"Unlike static types, heap type objects are mutable by default. Use the :c:"
"data:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability."
msgstr ""
#: howto/isolating-extensions.rst:302
msgid ""
"Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, so it may "
"become possible to instantiate them from Python code. You can prevent this "
"with the :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag."
msgstr ""
#: howto/isolating-extensions.rst:308
msgid "Defining Heap Types"
msgstr ""
#: howto/isolating-extensions.rst:310
msgid ""
"Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a "
"description or \"blueprint\" of a class, and calling :c:func:"
"`PyType_FromModuleAndSpec` to construct a new class object."
msgstr ""
#: howto/isolating-extensions.rst:315
msgid ""
"Other functions, like :c:func:`PyType_FromSpec`, can also create heap types, "
"but :c:func:`PyType_FromModuleAndSpec` associates the module with the class, "
"allowing access to the module state from methods."
msgstr ""
#: howto/isolating-extensions.rst:319
msgid ""
"The class should generally be stored in *both* the module state (for safe "
"access from C) and the module's ``__dict__`` (for access from Python code)."
msgstr ""
#: howto/isolating-extensions.rst:325
msgid "Garbage-Collection Protocol"
msgstr ""
#: howto/isolating-extensions.rst:327
msgid ""
"Instances of heap types hold a reference to their type. This ensures that "
"the type isn't destroyed before all its instances are, but may result in "
"reference cycles that need to be broken by the garbage collector."
msgstr ""
#: howto/isolating-extensions.rst:332
msgid ""
"To avoid memory leaks, instances of heap types must implement the garbage "
"collection protocol. That is, heap types should:"
msgstr ""
#: howto/isolating-extensions.rst:336
msgid "Have the :c:data:`Py_TPFLAGS_HAVE_GC` flag."
msgstr ""
#: howto/isolating-extensions.rst:337
msgid ""
"Define a traverse function using ``Py_tp_traverse``, which visits the type "
"(e.g. using :c:expr:`Py_VISIT(Py_TYPE(self))`)."
msgstr ""
#: howto/isolating-extensions.rst:340
msgid ""
"Please refer to the :ref:`the documentation <type-structs>` of :c:data:"
"`Py_TPFLAGS_HAVE_GC` and :c:member:`~PyTypeObject.tp_traverse` for "
"additional considerations."
msgstr ""
#: howto/isolating-extensions.rst:344
msgid ""
"If your traverse function delegates to the ``tp_traverse`` of its base class "
"(or another type), ensure that ``Py_TYPE(self)`` is visited only once. Note "
"that only heap type are expected to visit the type in ``tp_traverse``."
msgstr ""
#: howto/isolating-extensions.rst:348
msgid "For example, if your traverse function includes::"
msgstr ""
#: howto/isolating-extensions.rst:352
msgid "...and ``base`` may be a static type, then it should also include::"
msgstr ""
#: howto/isolating-extensions.rst:360
msgid ""
"It is not necessary to handle the type's reference count in ``tp_new`` and "
"``tp_clear``."
msgstr ""
#: howto/isolating-extensions.rst:365
msgid "Module State Access from Classes"
msgstr ""
#: howto/isolating-extensions.rst:367
msgid ""
"If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, "
"you can call :c:func:`PyType_GetModule` to get the associated module, and "
"then :c:func:`PyModule_GetState` to get the module's state."
msgstr ""
#: howto/isolating-extensions.rst:371
msgid ""
"To save a some tedious error-handling boilerplate code, you can combine "
"these two steps with :c:func:`PyType_GetModuleState`, resulting in::"
msgstr ""
#: howto/isolating-extensions.rst:381
msgid "Module State Access from Regular Methods"
msgstr ""
#: howto/isolating-extensions.rst:383
msgid ""
"Accessing the module-level state from methods of a class is somewhat more "
"complicated, but is possible thanks to API introduced in Python 3.9. To get "
"the state, you need to first get the *defining class*, and then get the "
"module state from it."
msgstr ""
#: howto/isolating-extensions.rst:388
msgid ""
"The largest roadblock is getting *the class a method was defined in*, or "
"that method's \"defining class\" for short. The defining class can have a "
"reference to the module it is part of."
msgstr ""
#: howto/isolating-extensions.rst:392
msgid ""
"Do not confuse the defining class with :c:expr:`Py_TYPE(self)`. If the "
"method is called on a *subclass* of your type, ``Py_TYPE(self)`` will refer "
"to that subclass, which may be defined in different module than yours."
msgstr ""
#: howto/isolating-extensions.rst:397
msgid ""
"The following Python code can illustrate the concept. ``Base."
"get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:"
msgstr ""
#: howto/isolating-extensions.rst:413
msgid ""
"For a method to get its \"defining class\", it must use the :data:"
"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS` :c:type:`calling convention "
"<PyMethodDef>` and the corresponding :c:type:`PyCMethod` signature::"
msgstr ""
#: howto/isolating-extensions.rst:425
msgid ""
"Once you have the defining class, call :c:func:`PyType_GetModuleState` to "
"get the state of its associated module."
msgstr ""
#: howto/isolating-extensions.rst:428
msgid "For example::"
msgstr ""
#: howto/isolating-extensions.rst:456
msgid "Module State Access from Slot Methods, Getters and Setters"
msgstr ""
#: howto/isolating-extensions.rst:460
msgid "This is new in Python 3.11."
msgstr ""
#: howto/isolating-extensions.rst:468
msgid ""
"Slot methods—the fast C equivalents for special methods, such as :c:member:"
"`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or :c:member:"
"`~PyType.tp_new` for initialization—have a very simple API that doesn't "
"allow passing in the defining class, unlike with :c:type:`PyCMethod`. The "
"same goes for getters and setters defined with :c:type:`PyGetSetDef`."
msgstr ""
#: howto/isolating-extensions.rst:475
msgid ""
"To access the module state in these cases, use the :c:func:"
"`PyType_GetModuleByDef` function, and pass in the module definition. Once "
"you have the module, call :c:func:`PyModule_GetState` to get the state::"
msgstr ""
#: howto/isolating-extensions.rst:486
msgid ""
"``PyType_GetModuleByDef`` works by searching the :term:`method resolution "
"order` (i.e. all superclasses) for the first superclass that has a "
"corresponding module."
msgstr ""
#: howto/isolating-extensions.rst:492
msgid ""
"In very exotic cases (inheritance chains spanning multiple modules created "
"from the same definition), ``PyType_GetModuleByDef`` might not return the "
"module of the true defining class. However, it will always return a module "
"with the same definition, ensuring a compatible C memory layout."
msgstr ""
#: howto/isolating-extensions.rst:500
msgid "Lifetime of the Module State"
msgstr ""
#: howto/isolating-extensions.rst:502
msgid ""
"When a module object is garbage-collected, its module state is freed. For "
"each pointer to (a part of) the module state, you must hold a reference to "
"the module object."
msgstr ""
#: howto/isolating-extensions.rst:506
msgid ""
"Usually this is not an issue, because types created with :c:func:"
"`PyType_FromModuleAndSpec`, and their instances, hold a reference to the "
"module. However, you must be careful in reference counting when you "
"reference module state from other places, such as callbacks for external "
"libraries."
msgstr ""
#: howto/isolating-extensions.rst:515
msgid "Open Issues"
msgstr ""
#: howto/isolating-extensions.rst:517
msgid "Several issues around per-module state and heap types are still open."
msgstr ""
#: howto/isolating-extensions.rst:519
msgid ""
"Discussions about improving the situation are best held on the `capi-sig "
"mailing list <https://mail.python.org/mailman3/lists/capi-sig.python.org/"
">`__."
msgstr ""
#: howto/isolating-extensions.rst:524
msgid "Per-Class Scope"
msgstr ""
#: howto/isolating-extensions.rst:526
msgid ""
"It is currently (as of Python 3.11) not possible to attach state to "
"individual *types* without relying on CPython implementation details (which "
"may change in the future—perhaps, ironically, to allow a proper solution for "
"per-class scope)."
msgstr ""
#: howto/isolating-extensions.rst:533
msgid "Lossless Conversion to Heap Types"
msgstr ""
#: howto/isolating-extensions.rst:535
msgid ""
"The heap type API was not designed for \"lossless\" conversion from static "
"types; that is, creating a type that works exactly like a given static type."
msgstr ""

File diff suppressed because it is too large Load Diff

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-16 21:12+0100\n"
"Last-Translator: Nabil Bendafi <nabil@bendafi.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -271,9 +271,9 @@ msgstr ""
"équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une "
"chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés "
"comme lettre dans la base de données Unicode fournie par le module :mod:"
"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``"
"\\w`` dans un motif exprimé en chaîne de caractères en spécifiant l'option :"
"const:`re.ASCII` lors de la compilation de l'expression régulière."
"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de "
"``\\w`` dans un motif exprimé en chaîne de caractères en spécifiant "
"l'option :const:`re.ASCII` lors de la compilation de l'expression régulière."
#: howto/regex.rst:123
msgid ""
@ -318,8 +318,8 @@ msgstr "``\\s``"
#: howto/regex.rst:137
msgid ""
"Matches any whitespace character; this is equivalent to the class ``[ \\t\\n"
"\\r\\f\\v]``."
"Matches any whitespace character; this is equivalent to the class "
"``[ \\t\\n\\r\\f\\v]``."
msgstr ""
"Correspond à n'importe quel caractère « blanc » ; équivalent à la classe "
"``[ \\t\\n\\r\\f\\v]``."
@ -1193,8 +1193,8 @@ msgid ""
"Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only "
"on ASCII characters with the respective property."
msgstr ""
"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et ``"
"\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII "
"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et "
"``\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII "
"ayant la propriété demandée."
#: howto/regex.rst:543
@ -1246,6 +1246,7 @@ msgstr ""
"et compréhensible."
#: howto/regex.rst:562
#, fuzzy
msgid ""
"Perform case-insensitive matching; character class and literal strings will "
"match letters by ignoring case. For example, ``[A-Z]`` will match lowercase "
@ -1254,8 +1255,8 @@ msgid ""
"z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, "
"they will match the 52 ASCII letters and 4 additional non-ASCII letters: "
"'İ' (U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin "
"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U"
"+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, "
"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and "
"'' (U+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, "
"``'spAM'``, or ``'ſpam'`` (the latter is matched only in Unicode mode). This "
"lowercasing doesn't take the current locale into account; it will if you "
"also set the :const:`LOCALE` flag."
@ -1315,13 +1316,13 @@ msgstr ""
"certaines fonctions C diront à votre programme que l'octet codant ``é`` doit "
"être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la "
"compilation d'une expression régulière fait que l'objet compilé résultant "
"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à ``"
"\\w+`` de correspondre avec les mots français tel qu'attendu. L'utilisation "
"de cette option est déconseillée en Python 3 car le mécanisme de locale est "
"très peu fiable, il ne gère qu'une seule « culture » à la fois et il ne "
"fonctionne qu'avec des locales 8 bits. La correspondance Unicode est déjà "
"activée par défaut dans Python 3 pour les motifs Unicode (type *str*) et "
"elle est capable de gérer différentes configurations de régions."
"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à "
"``\\w+`` de correspondre avec les mots français tel qu'attendu. "
"L'utilisation de cette option est déconseillée en Python 3 car le mécanisme "
"de locale est très peu fiable, il ne gère qu'une seule « culture » à la fois "
"et il ne fonctionne qu'avec des locales 8 bits. La correspondance Unicode "
"est déjà activée par défaut dans Python 3 pour les motifs Unicode (type "
"*str*) et elle est capable de gérer différentes configurations de régions."
#: howto/regex.rst:605
msgid ""
@ -1594,8 +1595,8 @@ msgstr ""
msgid ""
"There are two subtleties you should remember when using this special "
"sequence. First, this is the worst collision between Python's string "
"literals and regular expression sequences. In Python's string literals, ``"
"\\b`` is the backspace character, ASCII value 8. If you're not using raw "
"literals and regular expression sequences. In Python's string literals, "
"``\\b`` is the backspace character, ASCII value 8. If you're not using raw "
"strings, then Python will convert the ``\\b`` to a backspace, and your RE "
"won't match as you expect it to. The following example looks the same as our "
"previous RE, but omits the ``'r'`` in front of the RE string. ::"
@ -1612,8 +1613,8 @@ msgstr ""
#: howto/regex.rst:774
msgid ""
"Second, inside a character class, where there's no use for this assertion, ``"
"\\b`` represents the backspace character, for compatibility with Python's "
"Second, inside a character class, where there's no use for this assertion, "
"``\\b`` represents the backspace character, for compatibility with Python's "
"string literals."
msgstr ""
"Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu "
@ -1789,8 +1790,8 @@ msgstr ""
msgid ""
"Perl 5 is well known for its powerful additions to standard regular "
"expressions. For these new features the Perl developers couldn't choose new "
"single-keystroke metacharacters or new special sequences beginning with ``"
"\\`` without making Perl's regular expressions confusingly different from "
"single-keystroke metacharacters or new special sequences beginning with "
"``\\`` without making Perl's regular expressions confusingly different from "
"standard REs. If they chose ``&`` as a new metacharacter, for example, old "
"expressions would be assuming that ``&`` was a regular character and "
"wouldn't have escaped it by writing ``\\&`` or ``[&]``."
@ -1917,8 +1918,9 @@ msgstr ""
"meth:`~re.Match.groupdict` ::"
#: howto/regex.rst:952
#, fuzzy
msgid ""
"Named groups are handy because they let you use easily-remembered names, "
"Named groups are handy because they let you use easily remembered names, "
"instead of having to remember numbers. Here's an example RE from the :mod:"
"`imaplib` module::"
msgstr ""
@ -1940,8 +1942,8 @@ msgid ""
"name instead of the number. This is another Python extension: ``(?P=name)`` "
"indicates that the contents of the group called *name* should again be "
"matched at the current point. The regular expression for finding doubled "
"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P<word>\\w+)\\s"
"+(?P=word)\\b``::"
"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?"
"P<word>\\w+)\\s+(?P=word)\\b``::"
msgstr ""
"La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait "
"référence au numéro du groupe. Il y a naturellement une variante qui utilise "
@ -2110,11 +2112,11 @@ msgstr "Une assertion prédictive négative supprime toute cette confusion :"
#: howto/regex.rst:1042
msgid ""
"``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression "
"``bat`` doesn't match at this point, try the rest of the pattern; if ``bat"
"$`` does match, the whole pattern will fail. The trailing ``$`` is required "
"to ensure that something like ``sample.batch``, where the extension only "
"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the "
"pattern works when there are multiple dots in the filename."
"``bat`` doesn't match at this point, try the rest of the pattern; if "
"``bat$`` does match, the whole pattern will fail. The trailing ``$`` is "
"required to ensure that something like ``sample.batch``, where the extension "
"only starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that "
"the pattern works when there are multiple dots in the filename."
msgstr ""
"``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si "
"l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du "
@ -2320,9 +2322,9 @@ msgstr ""
msgid ""
"If *replacement* is a string, any backslash escapes in it are processed. "
"That is, ``\\n`` is converted to a single newline character, ``\\r`` is "
"converted to a carriage return, and so forth. Unknown escapes such as ``"
"\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with the "
"substring matched by the corresponding group in the RE. This lets you "
"converted to a carriage return, and so forth. Unknown escapes such as "
"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with "
"the substring matched by the corresponding group in the RE. This lets you "
"incorporate portions of the original text in the resulting replacement "
"string."
msgstr ""
@ -2357,9 +2359,9 @@ msgstr ""
"par la syntaxe ``(?P<nom>....)``. ``\\g<nom>`` utilise la sous-chaîne "
"correspondante au groupe nommé ``nom`` et ``\\g<numéro>`` utilise le numéro "
"de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais "
"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` (``"
"\\20`` serait interprété comme une référence au groupe 20 et non comme une "
"référence au groupe 2 suivie du caractère littéral ``'0'``). Les "
"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` "
"(``\\20`` serait interprété comme une référence au groupe 20 et non comme "
"une référence au groupe 2 suivie du caractère littéral ``'0'``). Les "
"substitutions suivantes sont toutes équivalentes mais utilisent les trois "
"variantes de la chaîne de remplacement. ::"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 12:27+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -472,13 +472,22 @@ msgstr "Données binaires"
msgid ""
"It is perfectly possible to send binary data over a socket. The major "
"problem is that not all machines use the same formats for binary data. For "
"example, a Motorola chip will represent a 16 bit integer with the value 1 as "
"the two hex bytes 00 01. Intel and DEC, however, are byte-reversed - that "
"same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit "
"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and "
"\"h\" means *host*, \"s\" means *short* and \"l\" means *long*. Where "
"network order is host order, these do nothing, but where the machine is byte-"
"reversed, these swap the bytes around appropriately."
"example, `network byte order <https://en.wikipedia.org/wiki/"
"Endianness#Networking>`_ is big-endian, with the most significant byte "
"first, so a 16 bit integer with the value ``1`` would be the two hex bytes "
"``00 01``. However, most common processors (x86/AMD64, ARM, RISC-V), are "
"little-endian, with the least significant byte first - that same ``1`` would "
"be ``01 00``."
msgstr ""
#: howto/sockets.rst:262
#, fuzzy
msgid ""
"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, "
"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, "
"\"s\" means *short* and \"l\" means *long*. Where network order is host "
"order, these do nothing, but where the machine is byte-reversed, these swap "
"the bytes around appropriately."
msgstr ""
"Il est parfaitement possible denvoyer des données binaires sur un "
"connecteur. Le gros problème est que toutes les machines nutilisent pas les "
@ -493,13 +502,15 @@ msgstr ""
"utilise lordre doctets inverse, ceux-ci échangent les octets de manière "
"appropriée."
#: howto/sockets.rst:264
#: howto/sockets.rst:268
#, fuzzy
msgid ""
"In these days of 32 bit machines, the ascii representation of binary data is "
"In these days of 64-bit machines, the ASCII representation of binary data is "
"frequently smaller than the binary representation. That's because a "
"surprising amount of the time, all those longs have the value 0, or maybe 1. "
"The string \"0\" would be two bytes, while binary is four. Of course, this "
"doesn't fit well with fixed-length messages. Decisions, decisions."
"surprising amount of the time, most integers have the value 0, or maybe 1. "
"The string ``\"0\"`` would be two bytes, while a full 64-bit integer would "
"be 8. Of course, this doesn't fit well with fixed-length messages. "
"Decisions, decisions."
msgstr ""
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des "
"données binaires est souvent plus compacte que la représentation binaire. "
@ -509,11 +520,11 @@ msgstr ""
"très bien avec les messages de longueur fixe. Ah, les décisions, les "
"décisions…"
#: howto/sockets.rst:272
#: howto/sockets.rst:277
msgid "Disconnecting"
msgstr "Déconnexion"
#: howto/sockets.rst:274
#: howto/sockets.rst:279
msgid ""
"Strictly speaking, you're supposed to use ``shutdown`` on a socket before "
"you ``close`` it. The ``shutdown`` is an advisory to the socket at the "
@ -534,7 +545,7 @@ msgstr ""
"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la "
"plupart des situations, un ``shutdown`` explicite nest pas nécessaire."
#: howto/sockets.rst:282
#: howto/sockets.rst:287
msgid ""
"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The "
"client sends a request and then does a ``shutdown(1)``. This tells the "
@ -551,7 +562,7 @@ msgstr ""
"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en "
"effet, le client était encore en train de recevoir."
#: howto/sockets.rst:289
#: howto/sockets.rst:294
msgid ""
"Python takes the automatic shutdown a step further, and says that when a "
"socket is garbage collected, it will automatically do a ``close`` if it's "
@ -568,11 +579,11 @@ msgstr ""
"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos "
"connecteurs quand vous avez terminé *sil vous plaît*."
#: howto/sockets.rst:297
#: howto/sockets.rst:302
msgid "When Sockets Die"
msgstr "Quand les connecteurs meurent"
#: howto/sockets.rst:299
#: howto/sockets.rst:304
msgid ""
"Probably the worst thing about using blocking sockets is what happens when "
"the other side comes down hard (without doing a ``close``). Your socket is "
@ -600,11 +611,11 @@ msgstr ""
"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre "
"processus risque d'être foutu."
#: howto/sockets.rst:313
#: howto/sockets.rst:318
msgid "Non-blocking Sockets"
msgstr "Connecteurs non bloquants"
#: howto/sockets.rst:315
#: howto/sockets.rst:320
msgid ""
"If you've understood the preceding, you already know most of what you need "
"to know about the mechanics of using sockets. You'll still use the same "
@ -616,7 +627,7 @@ msgstr ""
"toujours les mêmes appels, de la même façon. Il ny que ça. Si vous le "
"faites bien, cest presque dans la poche."
#: howto/sockets.rst:320
#: howto/sockets.rst:325
msgid ""
"In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In "
"C, it's more complex, (for one thing, you'll need to choose between the BSD "
@ -633,7 +644,7 @@ msgstr ""
"avoir créé le connecteur mais avant de lutiliser (en fait, si vous êtes "
"fou, vous pouvez alterner)."
#: howto/sockets.rst:327
#: howto/sockets.rst:332
msgid ""
"The major mechanical difference is that ``send``, ``recv``, ``connect`` and "
"``accept`` can return without having done anything. You have (of course) a "
@ -650,11 +661,11 @@ msgstr ""
"vampiriser le processeur. Alors, évitons les solutions vouées à léchec dès "
"le départ et faisons les choses correctement."
#: howto/sockets.rst:334
#: howto/sockets.rst:339
msgid "Use ``select``."
msgstr "Utilisation de ``select``."
#: howto/sockets.rst:336
#: howto/sockets.rst:341
msgid ""
"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, "
"but it's close enough to the C version that if you understand ``select`` in "
@ -664,7 +675,7 @@ msgstr ""
"mais c'est assez proche de la version C ; aussi, si vous comprenez "
"``select`` en Python, vous aurez peu de problèmes en C ::"
#: howto/sockets.rst:347
#: howto/sockets.rst:352
msgid ""
"You pass ``select`` three lists: the first contains all sockets that you "
"might want to try reading; the second all the sockets you might want to try "
@ -684,7 +695,7 @@ msgstr ""
"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de "
"ne pas le faire."
#: howto/sockets.rst:355
#: howto/sockets.rst:360
msgid ""
"In return, you will get three lists. They contain the sockets that are "
"actually readable, writable and in error. Each of these lists is a subset "
@ -695,7 +706,7 @@ msgstr ""
"est un sous-ensemble (éventuellement vide) de la liste correspondante que "
"vous avez transmise."
#: howto/sockets.rst:359
#: howto/sockets.rst:364
msgid ""
"If a socket is in the output readable list, you can be as-close-to-certain-"
"as-we-ever-get-in-this-business that a ``recv`` on that socket will return "
@ -713,7 +724,7 @@ msgstr ""
"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon "
"réseau sortant est disponible)."
#: howto/sockets.rst:366
#: howto/sockets.rst:371
msgid ""
"If you have a \"server\" socket, put it in the potential_readers list. If it "
"comes out in the readable list, your ``accept`` will (almost certainly) "
@ -730,7 +741,7 @@ msgstr ""
"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous "
"avez une bonne chance qu'il se soit connecté."
#: howto/sockets.rst:372
#: howto/sockets.rst:377
msgid ""
"Actually, ``select`` can be handy even with blocking sockets. It's one way "
"of determining whether you will block - the socket returns as readable when "
@ -744,7 +755,7 @@ msgstr ""
"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a "
"terminé, ou si elle est simplement occupée par autre chose."
#: howto/sockets.rst:377
#: howto/sockets.rst:382
msgid ""
"**Portability alert**: On Unix, ``select`` works both with the sockets and "
"files. Don't try this on Windows. On Windows, ``select`` works with sockets "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-12-11 19:25+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -231,7 +231,8 @@ msgstr ""
"avantage de l'ordre existant dans un jeu de données."
#: howto/sorting.rst:190
msgid "The Old Way Using Decorate-Sort-Undecorate"
#, fuzzy
msgid "Decorate-Sort-Undecorate"
msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate"
#: howto/sorting.rst:192
@ -323,88 +324,57 @@ msgstr ""
"Maintenant que le tri Python fournit des fonctions-clef, cette technique "
"n'est plus souvent utilisée."
#: howto/sorting.rst:231
msgid "The Old Way Using the *cmp* Parameter"
msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*"
#: howto/sorting.rst:230
#, fuzzy
msgid "Comparison Functions"
msgstr "Fonctions du module *operator*"
#: howto/sorting.rst:233
#: howto/sorting.rst:232
msgid ""
"Many constructs given in this HOWTO assume Python 2.4 or later. Before that, "
"there was no :func:`sorted` builtin and :meth:`list.sort` took no keyword "
"arguments. Instead, all of the Py2.x versions supported a *cmp* parameter to "
"handle user specified comparison functions."
"Unlike key functions that return an absolute value for sorting, a comparison "
"function computes the relative ordering for two inputs."
msgstr ""
"Plusieurs construction données dans ce guide se basent sur Python 2.4 ou "
"plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la méthode :"
"meth:`list.sort` ne prenait pas d'arguments nommés. À la place, toutes les "
"versions Python 2.x utilisaient un paramètre *cmp* pour prendre en charge "
"les fonctions de comparaisons définies par les utilisateurs."
#: howto/sorting.rst:238
#: howto/sorting.rst:235
msgid ""
"In Py3.0, the *cmp* parameter was removed entirely (as part of a larger "
"effort to simplify and unify the language, eliminating the conflict between "
"rich comparisons and the :meth:`__cmp__` magic method)."
"For example, a `balance scale <https://upload.wikimedia.org/wikipedia/"
"commons/1/17/Balance_à_tabac_1850.JPG>`_ compares two samples giving a "
"relative ordering: lighter, equal, or heavier. Likewise, a comparison "
"function such as ``cmp(a, b)`` will return a negative value for less-than, "
"zero if the inputs are equal, or a positive value for greater-than."
msgstr ""
"En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre d'un "
"effort plus général pour simplifier et unifier le langage, en éliminant le "
"conflit entre les comparaisons riches et la méthode magique :meth:`__cmp__`)."
#: howto/sorting.rst:242
msgid ""
"In Py2.x, sort allowed an optional function which can be called for doing "
"the comparisons. That function should take two arguments to be compared and "
"then return a negative value for less-than, return zero if they are equal, "
"or return a positive value for greater-than. For example, we can do:"
"It is common to encounter comparison functions when translating algorithms "
"from other languages. Also, some libraries provide comparison functions as "
"part of their API. For example, :func:`locale.strcoll` is a comparison "
"function."
msgstr ""
"En Python 2.x, le tri permettait en paramètre une fonction optionnelle qui "
"peut être appelée pour faire des comparaisons. Cette fonction devrait "
"prendre deux arguments à comparer pour renvoyer une valeur négative pour "
"inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur "
"positive pour supérieur-à. Par exemple, nous pouvons faire :"
#: howto/sorting.rst:254
msgid "Or you can reverse the order of comparison with:"
msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :"
#: howto/sorting.rst:263
#: howto/sorting.rst:246
msgid ""
"When porting code from Python 2.x to 3.x, the situation can arise when you "
"have the user supplying a comparison function and you need to convert that "
"to a key function. The following wrapper makes that easy to do:"
"To accommodate those situations, Python provides :class:`functools."
"cmp_to_key` to wrap the comparison function to make it usable as a key "
"function::"
msgstr ""
"En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent "
"survenir quand des utilisateurs fournissent une fonction de comparaison et "
"qu'il faut convertir cette fonction en une fonction-clef. La fonction "
"d'encapsulation suivante rend cela plus facile à faire ::"
#: howto/sorting.rst:294
msgid "To convert to a key function, just wrap the old comparison function:"
msgstr ""
"Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne "
"fonction de comparaison :"
#: howto/sorting.rst:305
msgid ""
"In Python 3.2, the :func:`functools.cmp_to_key` function was added to the :"
"mod:`functools` module in the standard library."
msgstr ""
"En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au "
"module :mod:`functools` dans la librairie standard."
#: howto/sorting.rst:309
#: howto/sorting.rst:253
msgid "Odds and Ends"
msgstr "Et n'oublions pas"
#: howto/sorting.rst:311
#: howto/sorting.rst:255
#, fuzzy
msgid ""
"For locale aware sorting, use :func:`locale.strxfrm` for a key function or :"
"func:`locale.strcoll` for a comparison function."
"func:`locale.strcoll` for a comparison function. This is necessary because "
"\"alphabetical\" sort orderings can vary across cultures even if the "
"underlying alphabet is the same."
msgstr ""
"Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que "
"fonction clef ou :func:`locale.strcoll` comme fonction de comparaison."
#: howto/sorting.rst:314
#: howto/sorting.rst:260
msgid ""
"The *reverse* parameter still maintains sort stability (so that records with "
"equal keys retain the original order). Interestingly, that effect can be "
@ -416,7 +386,7 @@ msgstr ""
"cet effet peut être simulé sans le paramètre en utilisant la fonction "
"native :func:`reversed` deux fois :"
#: howto/sorting.rst:328
#: howto/sorting.rst:274
msgid ""
"The sort routines use ``<`` when making comparisons between two objects. So, "
"it is easy to add a standard sort order to a class by defining an :meth:"
@ -426,7 +396,7 @@ msgstr ""
"utilisent l'opérateur ``<``. Il est donc facile d'ajouter un ordre de tri "
"standard à une classe en définissant sa méthode :meth:`__lt__` ::"
#: howto/sorting.rst:338
#: howto/sorting.rst:284
msgid ""
"However, note that ``<`` can fall back to using :meth:`__gt__` if :meth:"
"`__lt__` is not implemented (see :func:`object.__lt__`)."
@ -435,7 +405,7 @@ msgstr ""
"`__gt__` si :meth:`__lt__` n'est pas implémentée ; voir :func:`object."
"__lt__`."
#: howto/sorting.rst:341
#: howto/sorting.rst:287
msgid ""
"Key functions need not depend directly on the objects being sorted. A key "
"function can also access external resources. For instance, if the student "
@ -447,3 +417,67 @@ msgstr ""
"l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, "
"ils peuvent être utilisés pour trier une liste différentes de noms "
"d'étudiants :"
#~ msgid "The Old Way Using the *cmp* Parameter"
#~ msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*"
#~ msgid ""
#~ "Many constructs given in this HOWTO assume Python 2.4 or later. Before "
#~ "that, there was no :func:`sorted` builtin and :meth:`list.sort` took no "
#~ "keyword arguments. Instead, all of the Py2.x versions supported a *cmp* "
#~ "parameter to handle user specified comparison functions."
#~ msgstr ""
#~ "Plusieurs construction données dans ce guide se basent sur Python 2.4 ou "
#~ "plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la "
#~ "méthode :meth:`list.sort` ne prenait pas d'arguments nommés. À la place, "
#~ "toutes les versions Python 2.x utilisaient un paramètre *cmp* pour "
#~ "prendre en charge les fonctions de comparaisons définies par les "
#~ "utilisateurs."
#~ msgid ""
#~ "In Py3.0, the *cmp* parameter was removed entirely (as part of a larger "
#~ "effort to simplify and unify the language, eliminating the conflict "
#~ "between rich comparisons and the :meth:`__cmp__` magic method)."
#~ msgstr ""
#~ "En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre "
#~ "d'un effort plus général pour simplifier et unifier le langage, en "
#~ "éliminant le conflit entre les comparaisons riches et la méthode magique :"
#~ "meth:`__cmp__`)."
#~ msgid ""
#~ "In Py2.x, sort allowed an optional function which can be called for doing "
#~ "the comparisons. That function should take two arguments to be compared "
#~ "and then return a negative value for less-than, return zero if they are "
#~ "equal, or return a positive value for greater-than. For example, we can "
#~ "do:"
#~ msgstr ""
#~ "En Python 2.x, le tri permettait en paramètre une fonction optionnelle "
#~ "qui peut être appelée pour faire des comparaisons. Cette fonction devrait "
#~ "prendre deux arguments à comparer pour renvoyer une valeur négative pour "
#~ "inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur "
#~ "positive pour supérieur-à. Par exemple, nous pouvons faire :"
#~ msgid "Or you can reverse the order of comparison with:"
#~ msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :"
#~ msgid ""
#~ "When porting code from Python 2.x to 3.x, the situation can arise when "
#~ "you have the user supplying a comparison function and you need to convert "
#~ "that to a key function. The following wrapper makes that easy to do:"
#~ msgstr ""
#~ "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent "
#~ "survenir quand des utilisateurs fournissent une fonction de comparaison "
#~ "et qu'il faut convertir cette fonction en une fonction-clef. La fonction "
#~ "d'encapsulation suivante rend cela plus facile à faire ::"
#~ msgid "To convert to a key function, just wrap the old comparison function:"
#~ msgstr ""
#~ "Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne "
#~ "fonction de comparaison :"
#~ msgid ""
#~ "In Python 3.2, the :func:`functools.cmp_to_key` function was added to "
#~ "the :mod:`functools` module in the standard library."
#~ msgstr ""
#~ "En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au "
#~ "module :mod:`functools` dans la librairie standard."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-12-11 17:16+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -357,9 +357,10 @@ msgstr ""
"v=MijmeoH9LT4>`_ (9 minutes et 36 secondes)."
#: howto/unicode.rst:169
#, fuzzy
msgid ""
"To help understand the standard, Jukka Korpela has written `an introductory "
"guide <http://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode "
"guide <https://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode "
"character tables."
msgstr ""
"Pour aider à comprendre le standard, Jukka Korpela a écrit `un guide "
@ -835,8 +836,9 @@ msgstr ""
"sont :"
#: howto/unicode.rst:520
#, fuzzy
msgid ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
"`Processing Text Files in Python 3 <https://python-notes.curiousefficiency."
"org/en/latest/python3/text_file_processing.html>`_, by Nick Coghlan."
msgstr ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
@ -1238,8 +1240,9 @@ msgstr ""
"données et les réécrire."
#: howto/unicode.rst:737
#, fuzzy
msgid ""
"One section of `Mastering Python 3 Input/Output <http://pyvideo.org/"
"One section of `Mastering Python 3 Input/Output <https://pyvideo.org/"
"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
"Beazley, discusses text processing and binary data handling."
msgstr ""
@ -1264,8 +1267,9 @@ msgstr ""
"diapositives ne couvrent que Python 2.x."
#: howto/unicode.rst:747
#, fuzzy
msgid ""
"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
"`The Guts of Unicode in Python <https://pyvideo.org/video/1768/the-guts-of-"
"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
"discusses the internal Unicode representation in Python 3.3."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -24,14 +24,15 @@ msgid "Author"
msgstr "Auteur"
#: howto/urllib2.rst:7
msgid "`Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_"
msgid "`Michael Foord <https://agileabstractions.com/>`_"
msgstr ""
#: howto/urllib2.rst:11
msgid ""
"There is a French translation of an earlier revision of this HOWTO, "
"available at `urllib2 - Le Manuel manquant <http://www.voidspace.org.uk/"
"python/articles/urllib2_francais.shtml>`_."
"available at `urllib2 - Le Manuel manquant <https://web.archive.org/"
"web/20200910051922/http://www.voidspace.org.uk/python/articles/"
"urllib2_francais.shtml>`_."
msgstr ""
#: howto/urllib2.rst:18
@ -46,8 +47,8 @@ msgstr ""
#: howto/urllib2.rst:25
msgid ""
"`Basic Authentication <http://www.voidspace.org.uk/python/articles/"
"authentication.shtml>`_"
"`Basic Authentication <https://web.archive.org/web/20201215133350/http://www."
"voidspace.org.uk/python/articles/authentication.shtml>`_"
msgstr ""
#: howto/urllib2.rst:27
@ -355,7 +356,7 @@ msgstr ""
#: howto/urllib2.rst:413
msgid ""
"Typical headers include 'Content-length', 'Content-type', and so on. See the "
"`Quick Reference to HTTP Headers <http://jkorpela.fi/http.html>`_ for a "
"`Quick Reference to HTTP Headers <https://jkorpela.fi/http.html>`_ for a "
"useful listing of HTTP headers with brief explanations of their meaning and "
"use."
msgstr ""
@ -367,7 +368,7 @@ msgstr ""
#: howto/urllib2.rst:422
msgid ""
"When you fetch a URL you use an opener (an instance of the perhaps "
"confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have "
"confusingly named :class:`urllib.request.OpenerDirector`). Normally we have "
"been using the default opener - via ``urlopen`` - but you can create custom "
"openers. Openers use handlers. All the \"heavy lifting\" is done by the "
"handlers. Each handler knows how to open URLs for a particular URL scheme "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 15:59+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -126,13 +126,14 @@ msgid "Distutils based source distributions"
msgstr "Distributions basées sur *distutils*"
#: install/index.rst:64
#, fuzzy
msgid ""
"If you download a module source distribution, you can tell pretty quickly if "
"it was packaged and distributed in the standard way, i.e. using the "
"Distutils. First, the distribution's name and version number will be "
"featured prominently in the name of the downloaded archive, e.g. :file:"
"`foo-1.0.tar.gz` or :file:`widget-0.9.7.zip`. Next, the archive will unpack "
"into a similarly-named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. "
"into a similarly named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. "
"Additionally, the distribution will contain a setup script :file:`setup.py`, "
"and a file named :file:`README.txt` or possibly just :file:`README`, which "
"should explain that building and installing the module distribution is a "
@ -1335,7 +1336,7 @@ msgstr "\\(5)"
#: install/index.rst:763
msgid ""
"On all platforms, the \"personal\" file can be temporarily disabled by "
"passing the `--no-user-cfg` option."
"passing the ``--no-user-cfg`` option."
msgstr ""
#: install/index.rst:769
@ -1721,8 +1722,8 @@ msgstr ""
#: install/index.rst:1065
msgid ""
"`Building Python modules on MS Windows platform with MinGW <http://old.zope."
"org/Members/als/tips/win32_mingw_modules>`_"
"`Building Python modules on MS Windows platform with MinGW <https://old.zope."
"dev/Members/als/tips/win32_mingw_modules>`_"
msgstr ""
#: install/index.rst:1066

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-21 15:04+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-02-23 18:50+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -407,10 +407,11 @@ msgstr ""
"est ::"
#: installing/index.rst:216
#, fuzzy
msgid ""
"There are also additional resources for `installing pip. <https://packaging."
"python.org/tutorials/installing-packages/#install-pip-setuptools-and-"
"wheel>`__"
"python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-"
"and-wheel-are-up-to-date>`__"
msgstr ""
"Voir aussi `installing pip. <https://packaging.python.org/tutorials/"
"installing-packages/#install-pip-setuptools-and-wheel>`__"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 15:44+0200\n"
"Last-Translator: Dimitri Merejkowsky <dimitri@dmerej.info>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -16,7 +16,8 @@ msgstr ""
"X-Generator: Poedit 2.4.1\n"
#: library/2to3.rst:4
msgid "2to3 - Automated Python 2 to 3 code translation"
#, fuzzy
msgid "2to3 --- Automated Python 2 to 3 code translation"
msgstr "*2to3* — Traduction automatique de code en Python 2 vers Python 3"
#: library/2to3.rst:8
@ -775,7 +776,8 @@ msgstr ""
"désactivé lorsque ``from future_builtins import zip`` apparaît."
#: library/2to3.rst:460
msgid ":mod:`lib2to3` - 2to3's library"
#, fuzzy
msgid ":mod:`lib2to3` --- 2to3's library"
msgstr ":mod:`lib2to3` — la bibliothèque de *2to3*"
#: library/2to3.rst:469

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-11-06 20:06+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -228,14 +228,18 @@ msgstr ""
"en l'absence de renseignements plus spécifiques, l'approche suggérée est "
"l'utilisation de multiples de 4 096 octets pour la taille de la pile)."
#: library/_thread.rst:143
msgid ""
":ref:`Availability <availability>`: Windows, systems with POSIX threads."
#: library/_thread.rst:None
#, fuzzy
msgid ":ref:`Availability <availability>`: Windows, pthreads."
msgstr ""
":ref:`Disponibilité <availability>` : Windows et systèmes gérant les fils "
"d'exécution POSIX."
#: library/_thread.rst:148
#: library/_thread.rst:145
msgid "Unix platforms with POSIX threads support."
msgstr ""
#: library/_thread.rst:150
msgid ""
"The maximum value allowed for the *timeout* parameter of :meth:`Lock."
"acquire`. Specifying a timeout greater than this value will raise an :exc:"
@ -245,11 +249,11 @@ msgstr ""
"meth:`Lock.acquire`. Préciser un délai d'attente supérieur à cette valeur "
"lève une exception :exc:`OverflowError`."
#: library/_thread.rst:155
#: library/_thread.rst:157
msgid "Lock objects have the following methods:"
msgstr "Les verrous ont les méthodes suivantes :"
#: library/_thread.rst:160
#: library/_thread.rst:162
msgid ""
"Without any optional argument, this method acquires the lock "
"unconditionally, if necessary waiting until it is released by another thread "
@ -261,31 +265,33 @@ msgstr ""
"par un autre fil d'exécution (un seul fil d'exécution à la fois peut "
"acquérir le verrou — c'est leur raison d'être)."
#: library/_thread.rst:164
#: library/_thread.rst:166
#, fuzzy
msgid ""
"If the integer *waitflag* argument is present, the action depends on its "
"value: if it is zero, the lock is only acquired if it can be acquired "
"immediately without waiting, while if it is nonzero, the lock is acquired "
"unconditionally as above."
"If the *blocking* argument is present, the action depends on its value: if "
"it is False, the lock is only acquired if it can be acquired immediately "
"without waiting, while if it is True, the lock is acquired unconditionally "
"as above."
msgstr ""
"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa "
"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être "
"acquis immédiatement, sans attendre, sinon le verrou est acquis "
"inconditionnellement comme ci-dessus."
#: library/_thread.rst:169
#: library/_thread.rst:171
#, fuzzy
msgid ""
"If the floating-point *timeout* argument is present and positive, it "
"specifies the maximum wait time in seconds before returning. A negative "
"*timeout* argument specifies an unbounded wait. You cannot specify a "
"*timeout* if *waitflag* is zero."
"*timeout* if *blocking* is False."
msgstr ""
"Si l'argument *timeout*, en virgule flottante, est présent et positif, il "
"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un "
"argument *timeout* négatif spécifie une attente illimitée. Vous ne pouvez "
"pas spécifier un *timeout* si *waitflag* est à zéro."
#: library/_thread.rst:174
#: library/_thread.rst:176
msgid ""
"The return value is ``True`` if the lock is acquired successfully, ``False`` "
"if not."
@ -293,16 +299,16 @@ msgstr ""
"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon "
"``False``."
#: library/_thread.rst:177
#: library/_thread.rst:179
msgid "The *timeout* parameter is new."
msgstr "Le paramètre *timeout* est nouveau."
#: library/_thread.rst:180
#: library/_thread.rst:182
msgid "Lock acquires can now be interrupted by signals on POSIX."
msgstr ""
"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX."
#: library/_thread.rst:186
#: library/_thread.rst:188
msgid ""
"Releases the lock. The lock must have been acquired earlier, but not "
"necessarily by the same thread."
@ -310,7 +316,7 @@ msgstr ""
"Relâche le verrou. Le verrou doit avoir été acquis plus tôt, mais pas "
"nécessairement par le même fil d'exécution."
#: library/_thread.rst:192
#: library/_thread.rst:194
msgid ""
"Return the status of the lock: ``True`` if it has been acquired by some "
"thread, ``False`` if not."
@ -318,7 +324,7 @@ msgstr ""
"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils "
"d'exécution, sinon ``False``."
#: library/_thread.rst:195
#: library/_thread.rst:197
msgid ""
"In addition to these methods, lock objects can also be used via the :keyword:"
"`with` statement, e.g.::"
@ -326,11 +332,11 @@ msgstr ""
"En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via "
"l'instruction :keyword:`with`, e.g. ::"
#: library/_thread.rst:205
#: library/_thread.rst:207
msgid "**Caveats:**"
msgstr "**Avertissements :**"
#: library/_thread.rst:209
#: library/_thread.rst:211
msgid ""
"Threads interact strangely with interrupts: the :exc:`KeyboardInterrupt` "
"exception will be received by an arbitrary thread. (When the :mod:`signal` "
@ -341,7 +347,7 @@ msgstr ""
"arbitraire. (Quand le module :mod:`signal` est disponible, les interruptions "
"vont toujours au fil d'exécution principal)."
#: library/_thread.rst:213
#: library/_thread.rst:215
msgid ""
"Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is "
"equivalent to calling :func:`_thread.exit`."
@ -349,7 +355,7 @@ msgstr ""
"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` "
"est équivalent à appeler la fonction :func:`_thread.exit`."
#: library/_thread.rst:216
#: library/_thread.rst:218
msgid ""
"It is not possible to interrupt the :meth:`acquire` method on a lock --- "
"the :exc:`KeyboardInterrupt` exception will happen after the lock has been "
@ -359,7 +365,7 @@ msgstr ""
"— l'exception :exc:`KeyboardInterrupt` surviendra après que le verrou a été "
"acquis."
#: library/_thread.rst:219
#: library/_thread.rst:221
msgid ""
"When the main thread exits, it is system defined whether the other threads "
"survive. On most systems, they are killed without executing :keyword:"
@ -370,7 +376,7 @@ msgstr ""
"tués sans l'exécution des clauses :keyword:`try`… :keyword:`finally` ou "
"l'exécution des destructeurs d'objets."
#: library/_thread.rst:224
#: library/_thread.rst:226
msgid ""
"When the main thread exits, it does not do any of its usual cleanup (except "
"that :keyword:`try` ... :keyword:`finally` clauses are honored), and the "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-11-20 22:28+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -106,9 +106,9 @@ msgstr ""
"Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter "
"d'une ABC directement, cette classe mère abstraite fonctionne alors comme "
"une classe *mixin*. Vous pouvez également enregistrer une classe concrète "
"sans lien (même une classe native) et des ABC comme \"sous-classes virtuelles"
"\" -- celles-ci et leur descendantes seront considérées comme des sous-"
"classes de la classe mère abstraite par la fonction native :func:"
"sans lien (même une classe native) et des ABC comme \"sous-classes "
"virtuelles\" -- celles-ci et leur descendantes seront considérées comme des "
"sous-classes de la classe mère abstraite par la fonction native :func:"
"`issubclass`, mais les ABC enregistrées n'apparaitront pas dans leur ordre "
"de résolution des méthodes (*MRO* pour *Method Resolution Order* en "
"anglais). Les implémentations de méthodes définies par l'ABC ne seront pas "

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-09-23 16:16+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-10-31 12:47+0100\n"
"Last-Translator: Cléo Buck <cleo.buck@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -200,7 +200,7 @@ msgstr ""
#: library/array.rst:53
msgid ""
"``array('u')`` now uses ``wchar_t`` as C type instead of deprecated "
"``Py_UNICODE``. This change doesn't affect to its behavior because "
"``Py_UNICODE``. This change doesn't affect its behavior because "
"``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-09-15 23:54+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -65,10 +65,11 @@ msgid "Node classes"
msgstr "Classes de nœuds"
#: library/ast.rst:46
#, fuzzy
msgid ""
"This is the base of all AST node classes. The actual node classes are "
"derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:"
"`below <abstract-grammar>`. They are defined in the :mod:`_ast` C module "
"`above <abstract-grammar>`. They are defined in the :mod:`_ast` C module "
"and re-exported in :mod:`ast`."
msgstr ""
"C'est la classe de base de toute classe de nœuds des d'arbres syntaxiques "
@ -1306,7 +1307,7 @@ msgid ""
"compilation step does."
msgstr ""
#: library/ast.rst:2004
#: library/ast.rst:1965
msgid ""
"It is possible to crash the Python interpreter with a sufficiently large/"
"complex string due to stack depth limitations in Python's AST compiler."
@ -1349,8 +1350,8 @@ msgstr ""
#: library/ast.rst:1993
#, fuzzy
msgid ""
"Safely evaluate an expression node or a string containing a Python literal "
"or container display. The string or node provided may only consist of the "
"Evaluate an expression node or a string containing only a Python literal or "
"container display. The string or node provided may only consist of the "
"following Python literal structures: strings, bytes, numbers, tuples, lists, "
"dicts, sets, booleans, ``None`` and ``Ellipsis``."
msgstr ""
@ -1361,11 +1362,11 @@ msgstr ""
"nombres, *n*-uplets, listes, dictionnaires, ensembles, booléens, et ``None``."
#: library/ast.rst:1998
#, fuzzy
msgid ""
"This can be used for safely evaluating strings containing Python values from "
"untrusted sources without the need to parse the values oneself. It is not "
"capable of evaluating arbitrarily complex expressions, for example involving "
"operators or indexing."
"This can be used for evaluating strings containing Python values without the "
"need to parse the values oneself. It is not capable of evaluating "
"arbitrarily complex expressions, for example involving operators or indexing."
msgstr ""
"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères "
"contenant des valeurs Python de source non fiable sans avoir besoin "
@ -1373,25 +1374,47 @@ msgstr ""
"d'évaluer des expressions arbitrairement complexes, par exemple impliquant "
"des opérateurs ou de l'indiçage."
#: library/ast.rst:2008
#: library/ast.rst:2003
msgid ""
"This function had been documented as \"safe\" in the past without defining "
"what that meant. That was misleading. This is specifically designed not to "
"execute Python code, unlike the more general :func:`eval`. There is no "
"namespace, no name lookups, or ability to call out. But it is not free from "
"attack: A relatively small input can lead to memory exhaustion or to C stack "
"exhaustion, crashing the process. There is also the possibility for "
"excessive CPU consumption denial of service on some inputs. Calling it on "
"untrusted data is thus not recommended."
msgstr ""
#: library/ast.rst:2013
#, fuzzy
msgid ""
"It is possible to crash the Python interpreter due to stack depth "
"limitations in Python's AST compiler."
msgstr ""
"Il est possible de faire planter l'interpréteur Python avec des chaînes "
"suffisamment grandes ou complexes lors de la compilation d'un arbre "
"syntaxique en raison de la limitation de la profondeur de la pile d'appels."
#: library/ast.rst:2016
msgid ""
"It can raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:"
"`MemoryError` and :exc:`RecursionError` depending on the malformed input."
msgstr ""
#: library/ast.rst:2012
#: library/ast.rst:2020
msgid "Now allows bytes and set literals."
msgstr "accepte maintenant les octets et ensembles littéraux."
#: library/ast.rst:2015
#: library/ast.rst:2023
msgid "Now supports creating empty sets with ``'set()'``."
msgstr "accepte ``set()`` pour les ensembles vides."
#: library/ast.rst:2018
#: library/ast.rst:2026
msgid "For string inputs, leading spaces and tabs are now stripped."
msgstr ""
#: library/ast.rst:2024
#: library/ast.rst:2032
msgid ""
"Return the docstring of the given *node* (which must be a :class:"
"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:"
@ -1403,11 +1426,11 @@ msgstr ""
"n'a pas de *docstring*. Si *clean* est vrai, cette fonction nettoie "
"l'indentation de la *docstring* avec :func:`inspect.cleandoc`."
#: library/ast.rst:2030
#: library/ast.rst:2038
msgid ":class:`AsyncFunctionDef` is now supported."
msgstr ":class:`AsyncFunctionDef` est maintenant gérée."
#: library/ast.rst:2036
#: library/ast.rst:2044
msgid ""
"Get source code segment of the *source* that generated *node*. If some "
"location information (:attr:`lineno`, :attr:`end_lineno`, :attr:"
@ -1418,13 +1441,13 @@ msgstr ""
"`end_lineno`, :attr:`col_offset` et :attr:`end_col_offset`) n'est pas "
"rempli, cette fonction renvoie ``None``."
#: library/ast.rst:2040
#: library/ast.rst:2048
msgid ""
"If *padded* is ``True``, the first line of a multi-line statement will be "
"padded with spaces to match its original position."
msgstr ""
#: library/ast.rst:2048
#: library/ast.rst:2056
msgid ""
"When you compile a node tree with :func:`compile`, the compiler expects :"
"attr:`lineno` and :attr:`col_offset` attributes for every node that supports "
@ -1440,7 +1463,7 @@ msgstr ""
"comme les valeurs du nœud parent. Elle fonctionne récursivement en démarrant "
"de *node*."
#: library/ast.rst:2057
#: library/ast.rst:2065
msgid ""
"Increment the line number and end line number of each node in the tree "
"starting at *node* by *n*. This is useful to \"move code\" to a different "
@ -1450,7 +1473,7 @@ msgstr ""
"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour "
 déplacer du code » à un endroit différent dans un fichier."
#: library/ast.rst:2064
#: library/ast.rst:2072
msgid ""
"Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:"
"`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if "
@ -1461,7 +1484,7 @@ msgstr ""
"*old_node* vers le nouveau nœud *new_node*, si possible, et renvoie "
"*new_node*."
#: library/ast.rst:2071
#: library/ast.rst:2079
msgid ""
"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` "
"that is present on *node*."
@ -1469,7 +1492,7 @@ msgstr ""
"Produit un *n*-uplet de couples ``(nom_du_champ, valeur)`` pour chaque champ "
"de ``node._fields`` qui est présent dans *node*."
#: library/ast.rst:2077
#: library/ast.rst:2085
msgid ""
"Yield all direct child nodes of *node*, that is, all fields that are nodes "
"and all items of fields that are lists of nodes."
@ -1478,7 +1501,7 @@ msgstr ""
"champs qui sont des nœuds et tous les éléments des champs qui sont des "
"listes de nœuds."
#: library/ast.rst:2083
#: library/ast.rst:2091
msgid ""
"Recursively yield all descendant nodes in the tree starting at *node* "
"(including *node* itself), in no specified order. This is useful if you "
@ -1489,7 +1512,7 @@ msgstr ""
"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au "
"contexte."
#: library/ast.rst:2090
#: library/ast.rst:2098
msgid ""
"A node visitor base class that walks the abstract syntax tree and calls a "
"visitor function for every node found. This function may return a value "
@ -1500,7 +1523,7 @@ msgstr ""
"Cette fonction peut renvoyer une valeur, qui est transmise par la méthode :"
"meth:`visit`."
#: library/ast.rst:2094
#: library/ast.rst:2102
msgid ""
"This class is meant to be subclassed, with the subclass adding visitor "
"methods."
@ -1508,7 +1531,7 @@ msgstr ""
"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite "
"à la sous-classe."
#: library/ast.rst:2099
#: library/ast.rst:2107
msgid ""
"Visit a node. The default implementation calls the method called :samp:"
"`self.visit_{classname}` where *classname* is the name of the node class, "
@ -1518,12 +1541,12 @@ msgstr ""
"visit_{classe}` où *classe* représente le nom de la classe du nœud, ou :meth:"
"`generic_visit` si cette méthode n'existe pas."
#: library/ast.rst:2105
#: library/ast.rst:2113
msgid "This visitor calls :meth:`visit` on all children of the node."
msgstr ""
"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud."
#: library/ast.rst:2107
#: library/ast.rst:2115
msgid ""
"Note that child nodes of nodes that have a custom visitor method won't be "
"visited unless the visitor calls :meth:`generic_visit` or visits them itself."
@ -1532,7 +1555,7 @@ msgstr ""
"sont pas visités à moins que le visiteur n'appelle la méthode :meth:"
"`generic_visit` ou ne les visite lui-même."
#: library/ast.rst:2111
#: library/ast.rst:2119
msgid ""
"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes "
"during traversal. For this a special visitor exists (:class:"
@ -1542,7 +1565,7 @@ msgstr ""
"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial "
"existe (:class:`NodeTransformer`) qui permet les modifications."
#: library/ast.rst:2117
#: library/ast.rst:2125
msgid ""
"Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:"
"`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will "
@ -1555,7 +1578,7 @@ msgstr ""
"une méthode :meth:`visit_Constant` pour traiter tous les nœuds qui "
"représentent des valeurs constantes."
#: library/ast.rst:2125
#: library/ast.rst:2133
msgid ""
"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and "
"allows modification of nodes."
@ -1563,7 +1586,7 @@ msgstr ""
"Une sous-classe de :class:`NodeVisitor` qui traverse l'arbre syntaxique "
"abstrait et permet de modifier les nœuds."
#: library/ast.rst:2128
#: library/ast.rst:2136
msgid ""
"The :class:`NodeTransformer` will walk the AST and use the return value of "
"the visitor methods to replace or remove the old node. If the return value "
@ -1577,7 +1600,7 @@ msgstr ""
"est supprimé de sa position, sinon il est remplacé par cette valeur. Elle "
"peut être le nœud original, auquel cas il n'y a pas de remplacement."
#: library/ast.rst:2134
#: library/ast.rst:2142
msgid ""
"Here is an example transformer that rewrites all occurrences of name lookups "
"(``foo``) to ``data['foo']``::"
@ -1585,7 +1608,7 @@ msgstr ""
"Voici un exemple de transformation qui réécrit tous les accès à la valeur "
"d'une variable ``toto`` en ``data['toto']`` ::"
#: library/ast.rst:2146
#: library/ast.rst:2154
msgid ""
"Keep in mind that if the node you're operating on has child nodes you must "
"either transform the child nodes yourself or call the :meth:`generic_visit` "
@ -1595,7 +1618,7 @@ msgstr ""
"enfants, vous devez transformer également ces nœuds enfants vous-même ou "
"appeler d'abord la méthode :meth:`generic_visit` sur le nœud."
#: library/ast.rst:2150
#: library/ast.rst:2158
msgid ""
"For nodes that were part of a collection of statements (that applies to all "
"statement nodes), the visitor may also return a list of nodes rather than "
@ -1605,7 +1628,7 @@ msgstr ""
"instructions), le visiteur peut aussi renvoyer une liste des nœuds plutôt "
"qu'un seul nœud."
#: library/ast.rst:2154
#: library/ast.rst:2162
msgid ""
"If :class:`NodeTransformer` introduces new nodes (that weren't part of "
"original tree) without giving them location information (such as :attr:"
@ -1617,11 +1640,11 @@ msgstr ""
"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) "
"à :func:`fix_missing_locations` pour calculer les positions manquantes :"
#: library/ast.rst:2162
#: library/ast.rst:2170
msgid "Usually you use the transformer like this::"
msgstr "Utilisation typique des transformations ::"
#: library/ast.rst:2169
#: library/ast.rst:2177
msgid ""
"Return a formatted dump of the tree in *node*. This is mainly useful for "
"debugging purposes. If *annotate_fields* is true (by default), the returned "
@ -1641,7 +1664,7 @@ msgstr ""
"masqués par défaut, mais on peut les inclure en mettant *include_attributes* "
"à ``True``."
#: library/ast.rst:2177
#: library/ast.rst:2185
msgid ""
"If *indent* is a non-negative integer or string, then the tree will be "
"pretty-printed with that indent level. An indent level of 0, negative, or "
@ -1658,15 +1681,15 @@ msgstr ""
"0 ou la chaîne vide, c'est-à-dire des retours à la ligne sans indentation. "
"Avec la valeur par défaut de ``None``, la sortie tient sur une seule ligne."
#: library/ast.rst:2184
#: library/ast.rst:2192
msgid "Added the *indent* option."
msgstr "ajout du paramètre *indent*."
#: library/ast.rst:2191
#: library/ast.rst:2199
msgid "Compiler Flags"
msgstr "Options du compilateur"
#: library/ast.rst:2193
#: library/ast.rst:2201
msgid ""
"The following flags may be passed to :func:`compile` in order to change "
"effects on the compilation of a program:"
@ -1674,7 +1697,7 @@ msgstr ""
"Les options suivantes sont prises en charge par la fonction :func:`compile`. "
"Elles permettent de modifier le comportement de la compilation."
#: library/ast.rst:2198
#: library/ast.rst:2206
msgid ""
"Enables support for top-level ``await``, ``async for``, ``async with`` and "
"async comprehensions."
@ -1682,14 +1705,14 @@ msgstr ""
"Active la reconnaissance de ``await``, ``async for``, ``async with`` et des "
"compréhensions asynchrones au niveau le plus haut."
#: library/ast.rst:2205
#: library/ast.rst:2213
msgid ""
"Generates and returns an abstract syntax tree instead of returning a "
"compiled code object."
msgstr ""
"Génère et renvoie un arbre syntaxique au lieu d'un objet de code compilé."
#: library/ast.rst:2210
#: library/ast.rst:2218
msgid ""
"Enables support for :pep:`484` and :pep:`526` style type comments (``# type: "
"<type>``, ``# type: ignore <stuff>``)."
@ -1697,11 +1720,11 @@ msgstr ""
"Ajoute la prise en charge des commentaires de types tels que définis dans "
"la :pep:`484` et la :pep:`526` (``# type: un_type`` et ``# type: ignore``)."
#: library/ast.rst:2219
#: library/ast.rst:2227
msgid "Command-Line Usage"
msgstr "Utilisation en ligne de commande"
#: library/ast.rst:2223
#: library/ast.rst:2231
msgid ""
"The :mod:`ast` module can be executed as a script from the command line. It "
"is as simple as:"
@ -1709,15 +1732,15 @@ msgstr ""
"Le module :mod:`ast` peut être exécuté en tant que script en ligne de "
"commande. C'est aussi simple que ceci :"
#: library/ast.rst:2230
#: library/ast.rst:2238
msgid "The following options are accepted:"
msgstr "Les options suivantes sont acceptées :"
#: library/ast.rst:2236
#: library/ast.rst:2244
msgid "Show the help message and exit."
msgstr "Affiche un message d'aide et quitte."
#: library/ast.rst:2241
#: library/ast.rst:2249
msgid ""
"Specify what kind of code must be compiled, like the *mode* argument in :"
"func:`parse`."
@ -1725,21 +1748,21 @@ msgstr ""
"Précise le type de code à compiler, comme l'argument *mode* de la fonction :"
"func:`parse`."
#: library/ast.rst:2246
#: library/ast.rst:2254
msgid "Don't parse type comments."
msgstr "Désactive la reconnaissance des commentaires de type."
#: library/ast.rst:2250
#: library/ast.rst:2258
msgid "Include attributes such as line numbers and column offsets."
msgstr ""
"Affiche les attributs comme les numéros de lignes et les décalages par "
"rapport aux débuts des lignes."
#: library/ast.rst:2255
#: library/ast.rst:2263
msgid "Indentation of nodes in AST (number of spaces)."
msgstr "Nombre d'espaces pour chaque niveau d'indentation dans la sortie."
#: library/ast.rst:2257
#: library/ast.rst:2265
msgid ""
"If :file:`infile` is specified its contents are parsed to AST and dumped to "
"stdout. Otherwise, the content is read from stdin."
@ -1748,7 +1771,7 @@ msgstr ""
"standard sinon. Le code source est transformé en un arbre syntaxique, qui "
"est affiché sur la sortie standard."
#: library/ast.rst:2263
#: library/ast.rst:2271
msgid ""
"`Green Tree Snakes <https://greentreesnakes.readthedocs.io/>`_, an external "
"documentation resource, has good details on working with Python ASTs."
@ -1757,7 +1780,7 @@ msgstr ""
"ressource documentaire externe, qui possède plus de détails pour travailler "
"avec des arbres syntaxiques Python."
#: library/ast.rst:2266
#: library/ast.rst:2274
msgid ""
"`ASTTokens <https://asttokens.readthedocs.io/en/latest/user-guide.html>`_ "
"annotates Python ASTs with the positions of tokens and text in the source "
@ -1769,9 +1792,10 @@ msgstr ""
"extraits de code source à partir desquels ils sont produits. Ceci est utile "
"pour les outils qui transforment du code source."
#: library/ast.rst:2271
#: library/ast.rst:2279
#, fuzzy
msgid ""
"`leoAst.py <http://leoeditor.com/appendices.html#leoast-py>`_ unifies the "
"`leoAst.py <https://leoeditor.com/appendices.html#leoast-py>`_ unifies the "
"token-based and parse-tree-based views of python programs by inserting two-"
"way links between tokens and ast nodes."
msgstr ""
@ -1779,7 +1803,7 @@ msgstr ""
"visions des lexèmes et des arbres syntaxiques en insérant des liens "
"bidirectionnels entre les deux."
#: library/ast.rst:2275
#: library/ast.rst:2283
msgid ""
"`LibCST <https://libcst.readthedocs.io/>`_ parses code as a Concrete Syntax "
"Tree that looks like an ast tree and keeps all formatting details. It's "
@ -1790,7 +1814,7 @@ msgstr ""
"abstraits et conservent tous les détails du formatage. Cette bibliothèque "
"est utile aux outils de réusinage et d'analyse de code."
#: library/ast.rst:2280
#: library/ast.rst:2288
msgid ""
"`Parso <https://parso.readthedocs.io>`_ is a Python parser that supports "
"error recovery and round-trip parsing for different Python versions (in "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-06 17:04+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -66,7 +66,18 @@ msgstr ""
"d'objets :class:`asynchat.async_chat` à la réception de requêtes de "
"connexion."
#: library/asynchat.rst:40
#: includes/wasm-notavail.rst:None
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/asynchat.rst:41
msgid ""
"This class is an abstract subclass of :class:`asyncore.dispatcher`. To make "
"practical use of the code you must subclass :class:`async_chat`, providing "
@ -81,7 +92,7 @@ msgstr ""
"de :class:`asyncore.dispatcher` peuvent être utilisées, même si toutes "
"n'ont pas de sens dans un contexte de messages/réponse."
#: library/asynchat.rst:47
#: library/asynchat.rst:48
msgid ""
"Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of "
"events that are generated by an analysis of socket conditions after a :c:"
@ -96,7 +107,7 @@ msgstr ""
"objets :class:`async_chat` sont appelées par le *framework* de traitement "
"dévénements sans que le programmeur n'ait à le spécifier."
#: library/asynchat.rst:53
#: library/asynchat.rst:54
msgid ""
"Two class attributes can be modified, to improve performance, or possibly "
"even to conserve memory."
@ -104,15 +115,15 @@ msgstr ""
"Deux attributs de classe peuvent être modifiés, pour améliorer la "
"performance, ou potentiellement pour économiser de la mémoire."
#: library/asynchat.rst:59
#: library/asynchat.rst:60
msgid "The asynchronous input buffer size (default ``4096``)."
msgstr "La taille du tampon d'entrées asynchrones (``4096`` par défaut)."
#: library/asynchat.rst:64
#: library/asynchat.rst:65
msgid "The asynchronous output buffer size (default ``4096``)."
msgstr "La taille du tampon de sorties asynchrones (``4096`` par défaut)."
#: library/asynchat.rst:66
#: library/asynchat.rst:67
msgid ""
"Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to "
"define a :abbr:`FIFO (first-in, first-out)` queue of *producers*. A producer "
@ -139,7 +150,7 @@ msgstr ""
"d'un point d'arrêt, dans in transmission entrante depuis le point daccès "
"distant."
#: library/asynchat.rst:79
#: library/asynchat.rst:80
msgid ""
"To build a functioning :class:`async_chat` subclass your input methods :"
"meth:`collect_incoming_data` and :meth:`found_terminator` must handle the "
@ -151,7 +162,7 @@ msgstr ""
"`found_terminator` doivent gérer la donnée que le canal reçoit de manière "
"asynchrone. Ces méthodes sont décrites ci-dessous."
#: library/asynchat.rst:87
#: library/asynchat.rst:88
msgid ""
"Pushes a ``None`` on to the producer queue. When this producer is popped off "
"the queue it causes the channel to be closed."
@ -159,7 +170,7 @@ msgstr ""
"Pousse un ``None`` sur la pile de producteurs. Quand ce producteur est "
"récupéré dans la queue, le canal est fermé."
#: library/asynchat.rst:93
#: library/asynchat.rst:94
msgid ""
"Called with *data* holding an arbitrary amount of received data. The "
"default method, which must be overridden, raises a :exc:"
@ -168,7 +179,7 @@ msgstr ""
"Appelé avec *data* contenant une quantité arbitraire de données. La méthode "
"par défaut, qui doit être écrasée, lève une :exc:`NotImplementedError`."
#: library/asynchat.rst:100
#: library/asynchat.rst:101
msgid ""
"In emergencies this method will discard any data held in the input and/or "
"output buffers and the producer queue."
@ -176,7 +187,7 @@ msgstr ""
"En cas d'urgence, cette méthode va supprimer tout donnée présente dans les "
"tampons d'entrée et/ou de sortie dans la queue de producteurs."
#: library/asynchat.rst:106
#: library/asynchat.rst:107
msgid ""
"Called when the incoming data stream matches the termination condition set "
"by :meth:`set_terminator`. The default method, which must be overridden, "
@ -188,11 +199,11 @@ msgstr ""
"lève une :exc:`NotImplementedError`. Les données entrantes mise en tampon "
"devraient être disponible via un attribut de l'instance."
#: library/asynchat.rst:114
#: library/asynchat.rst:115
msgid "Returns the current terminator for the channel."
msgstr "Renvoie le terminateur courant pour le canal."
#: library/asynchat.rst:119
#: library/asynchat.rst:120
msgid ""
"Pushes data on to the channel's queue to ensure its transmission. This is "
"all you need to do to have the channel write the data out to the network, "
@ -205,10 +216,11 @@ msgstr ""
"schémas plus complexes qui implémentent de la cryptographie et du *chunking* "
"par exemple."
#: library/asynchat.rst:127
#: library/asynchat.rst:128
#, fuzzy
msgid ""
"Takes a producer object and adds it to the producer queue associated with "
"the channel. When all currently-pushed producers have been exhausted the "
"the channel. When all currently pushed producers have been exhausted the "
"channel will consume this producer's data by calling its :meth:`more` method "
"and send the data to the remote endpoint."
msgstr ""
@ -217,7 +229,7 @@ msgstr ""
"canal consomme les données de ce producteur en appelant sa méthode :meth:"
"`more` et envoie les données au point daccès distant."
#: library/asynchat.rst:135
#: library/asynchat.rst:136
msgid ""
"Sets the terminating condition to be recognized on the channel. ``term`` "
"may be any of three types of value, corresponding to three different ways to "
@ -227,19 +239,19 @@ msgstr ""
"n'importe lequel des trois types de valeurs, correspondant aux trois "
"différentes manières de gérer les données entrantes."
#: library/asynchat.rst:140
#: library/asynchat.rst:141
msgid "term"
msgstr "*term*"
#: library/asynchat.rst:140
#: library/asynchat.rst:141
msgid "Description"
msgstr "Description"
#: library/asynchat.rst:142
#: library/asynchat.rst:143
msgid "*string*"
msgstr "*string*"
#: library/asynchat.rst:142
#: library/asynchat.rst:143
msgid ""
"Will call :meth:`found_terminator` when the string is found in the input "
"stream"
@ -247,11 +259,11 @@ msgstr ""
"Appellera :meth:`found_terminator` quand la chaîne est trouvée dans le flux "
"d'entré"
#: library/asynchat.rst:145
#: library/asynchat.rst:146
msgid "*integer*"
msgstr "*integer*"
#: library/asynchat.rst:145
#: library/asynchat.rst:146
msgid ""
"Will call :meth:`found_terminator` when the indicated number of characters "
"have been received"
@ -259,15 +271,15 @@ msgstr ""
"Appellera :meth:`found_terminator` quand le nombre de caractère indiqué à "
"été reçu"
#: library/asynchat.rst:149
#: library/asynchat.rst:150
msgid "``None``"
msgstr "``None``"
#: library/asynchat.rst:149
#: library/asynchat.rst:150
msgid "The channel continues to collect data forever"
msgstr "Le canal continue de collecter des informations indéfiniment"
#: library/asynchat.rst:153
#: library/asynchat.rst:154
msgid ""
"Note that any data following the terminator will be available for reading by "
"the channel after :meth:`found_terminator` is called."
@ -275,11 +287,11 @@ msgstr ""
"Notez que toute donnée située après le marqueur de fin sera accessible en "
"lecture par le canal après que :meth:`found_terminator` ai été appelé."
#: library/asynchat.rst:160
#: library/asynchat.rst:161
msgid "asynchat Example"
msgstr "Exemple *asynchat*"
#: library/asynchat.rst:162
#: library/asynchat.rst:163
msgid ""
"The following partial example shows how HTTP requests can be read with :"
"class:`async_chat`. A web server might create an :class:"
@ -295,7 +307,7 @@ msgstr ""
"lignes vides à la fin des entêtes HTTP, et une option indique que les "
"entêtes sont en train d'être lues."
#: library/asynchat.rst:169
#: library/asynchat.rst:170
msgid ""
"Once the headers have been read, if the request is of type POST (indicating "
"that further data are present in the input stream) then the ``Content-Length:"
@ -307,7 +319,7 @@ msgstr ""
"alors l'entête ``Content-Length:`` est utilisé pour définir un marqueur de "
"fin numérique pour lire la bonne quantité de donné depuis le canal."
#: library/asynchat.rst:174
#: library/asynchat.rst:175
msgid ""
"The :meth:`handle_request` method is called once all relevant input has been "
"marshalled, after setting the channel terminator to ``None`` to ensure that "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -42,370 +42,399 @@ msgid "Create event loop, run a coroutine, close the loop."
msgstr ""
#: library/asyncio-api-index.rst:24
msgid ":func:`create_task`"
msgstr ":func:`create_task`"
#, fuzzy
msgid ":class:`Runner`"
msgstr ":class:`Queue`"
#: library/asyncio-api-index.rst:25
msgid "Start an asyncio Task."
msgid "A context manager that simplifies multiple async function calls."
msgstr ""
#: library/asyncio-api-index.rst:27
msgid "``await`` :func:`sleep`"
msgstr ""
#: library/asyncio-api-index.rst:28
msgid "Sleep for a number of seconds."
msgstr ""
#: library/asyncio-api-index.rst:30
msgid "``await`` :func:`gather`"
msgstr ""
#: library/asyncio-api-index.rst:31
msgid "Schedule and wait for things concurrently."
msgstr ""
#: library/asyncio-api-index.rst:33
msgid "``await`` :func:`wait_for`"
msgstr ""
#: library/asyncio-api-index.rst:34
msgid "Run with a timeout."
msgstr ""
#: library/asyncio-api-index.rst:36
msgid "``await`` :func:`shield`"
msgstr ""
#: library/asyncio-api-index.rst:37
msgid "Shield from cancellation."
msgstr ""
#: library/asyncio-api-index.rst:39
msgid "``await`` :func:`wait`"
msgstr ""
#: library/asyncio-api-index.rst:40
msgid "Monitor for completion."
msgstr ""
#: library/asyncio-api-index.rst:42
msgid ":func:`current_task`"
msgstr ":func:`current_task`"
#: library/asyncio-api-index.rst:43
msgid "Return the current Task."
msgstr ""
#: library/asyncio-api-index.rst:45
msgid ":func:`all_tasks`"
msgstr ":func:`all_tasks`"
#: library/asyncio-api-index.rst:46
msgid "Return all tasks for an event loop."
msgstr ""
#: library/asyncio-api-index.rst:48
msgid ":class:`Task`"
msgstr ":class:`Task`"
#: library/asyncio-api-index.rst:49
#: library/asyncio-api-index.rst:28
msgid "Task object."
msgstr ""
#: library/asyncio-api-index.rst:30
#, fuzzy
msgid ":class:`TaskGroup`"
msgstr ":class:`Task`"
#: library/asyncio-api-index.rst:31
msgid ""
"A context manager that holds a group of tasks. Provides a convenient and "
"reliable way to wait for all tasks in the group to finish."
msgstr ""
#: library/asyncio-api-index.rst:35
msgid ":func:`create_task`"
msgstr ":func:`create_task`"
#: library/asyncio-api-index.rst:36
msgid "Start an asyncio Task, then returns it."
msgstr ""
#: library/asyncio-api-index.rst:38
msgid ":func:`current_task`"
msgstr ":func:`current_task`"
#: library/asyncio-api-index.rst:39
msgid "Return the current Task."
msgstr ""
#: library/asyncio-api-index.rst:41
msgid ":func:`all_tasks`"
msgstr ":func:`all_tasks`"
#: library/asyncio-api-index.rst:42
msgid "Return all tasks that are not yet finished for an event loop."
msgstr ""
#: library/asyncio-api-index.rst:44
msgid "``await`` :func:`sleep`"
msgstr ""
#: library/asyncio-api-index.rst:45
msgid "Sleep for a number of seconds."
msgstr ""
#: library/asyncio-api-index.rst:47
msgid "``await`` :func:`gather`"
msgstr ""
#: library/asyncio-api-index.rst:48
msgid "Schedule and wait for things concurrently."
msgstr ""
#: library/asyncio-api-index.rst:50
msgid "``await`` :func:`wait_for`"
msgstr ""
#: library/asyncio-api-index.rst:51
msgid "Run with a timeout."
msgstr ""
#: library/asyncio-api-index.rst:53
msgid "``await`` :func:`shield`"
msgstr ""
#: library/asyncio-api-index.rst:54
msgid "Shield from cancellation."
msgstr ""
#: library/asyncio-api-index.rst:56
msgid "``await`` :func:`wait`"
msgstr ""
#: library/asyncio-api-index.rst:57
msgid "Monitor for completion."
msgstr ""
#: library/asyncio-api-index.rst:59
#, fuzzy
msgid ":func:`timeout`"
msgstr ":func:`round`"
#: library/asyncio-api-index.rst:60
msgid "Run with a timeout. Useful in cases when ``wait_for`` is not suitable."
msgstr ""
#: library/asyncio-api-index.rst:62
#, fuzzy
msgid ":func:`to_thread`"
msgstr ":func:`round`"
#: library/asyncio-api-index.rst:52
#: library/asyncio-api-index.rst:63
msgid "Asynchronously run a function in a separate OS thread."
msgstr ""
#: library/asyncio-api-index.rst:54
#: library/asyncio-api-index.rst:65
msgid ":func:`run_coroutine_threadsafe`"
msgstr ":func:`run_coroutine_threadsafe`"
#: library/asyncio-api-index.rst:55
#: library/asyncio-api-index.rst:66
msgid "Schedule a coroutine from another OS thread."
msgstr ""
#: library/asyncio-api-index.rst:57
#: library/asyncio-api-index.rst:68
msgid "``for in`` :func:`as_completed`"
msgstr ""
#: library/asyncio-api-index.rst:58
#: library/asyncio-api-index.rst:69
msgid "Monitor for completion with a ``for`` loop."
msgstr ""
#: library/asyncio-api-index.rst:62 library/asyncio-api-index.rst:98
#: library/asyncio-api-index.rst:122 library/asyncio-api-index.rst:158
#: library/asyncio-api-index.rst:194 library/asyncio-api-index.rst:219
#: library/asyncio-api-index.rst:73 library/asyncio-api-index.rst:109
#: library/asyncio-api-index.rst:133 library/asyncio-api-index.rst:169
#: library/asyncio-api-index.rst:205 library/asyncio-api-index.rst:230
msgid "Examples"
msgstr "Exemples"
#: library/asyncio-api-index.rst:63
#: library/asyncio-api-index.rst:74
msgid ""
":ref:`Using asyncio.gather() to run things in parallel "
"<asyncio_example_gather>`."
msgstr ""
#: library/asyncio-api-index.rst:66
#: library/asyncio-api-index.rst:77
msgid ""
":ref:`Using asyncio.wait_for() to enforce a timeout "
"<asyncio_example_waitfor>`."
msgstr ""
#: library/asyncio-api-index.rst:69
#: library/asyncio-api-index.rst:80
msgid ":ref:`Cancellation <asyncio_example_task_cancel>`."
msgstr ""
#: library/asyncio-api-index.rst:71
#: library/asyncio-api-index.rst:82
msgid ":ref:`Using asyncio.sleep() <asyncio_example_sleep>`."
msgstr ""
#: library/asyncio-api-index.rst:73
#: library/asyncio-api-index.rst:84
msgid "See also the main :ref:`Tasks documentation page <coroutine>`."
msgstr ""
#: library/asyncio-api-index.rst:77
#: library/asyncio-api-index.rst:88
msgid "Queues"
msgstr ""
#: library/asyncio-api-index.rst:79
#: library/asyncio-api-index.rst:90
msgid ""
"Queues should be used to distribute work amongst multiple asyncio Tasks, "
"implement connection pools, and pub/sub patterns."
msgstr ""
#: library/asyncio-api-index.rst:87
#: library/asyncio-api-index.rst:98
msgid ":class:`Queue`"
msgstr ":class:`Queue`"
#: library/asyncio-api-index.rst:88
#: library/asyncio-api-index.rst:99
msgid "A FIFO queue."
msgstr ""
#: library/asyncio-api-index.rst:90
#: library/asyncio-api-index.rst:101
msgid ":class:`PriorityQueue`"
msgstr ":class:`PriorityQueue`"
#: library/asyncio-api-index.rst:91
#: library/asyncio-api-index.rst:102
msgid "A priority queue."
msgstr ""
#: library/asyncio-api-index.rst:93
#: library/asyncio-api-index.rst:104
msgid ":class:`LifoQueue`"
msgstr ":class:`LifoQueue`"
#: library/asyncio-api-index.rst:94
#: library/asyncio-api-index.rst:105
msgid "A LIFO queue."
msgstr ""
#: library/asyncio-api-index.rst:99
#: library/asyncio-api-index.rst:110
msgid ""
":ref:`Using asyncio.Queue to distribute workload between several Tasks "
"<asyncio_example_queue_dist>`."
msgstr ""
#: library/asyncio-api-index.rst:102
#: library/asyncio-api-index.rst:113
msgid "See also the :ref:`Queues documentation page <asyncio-queues>`."
msgstr ""
#: library/asyncio-api-index.rst:106
#: library/asyncio-api-index.rst:117
msgid "Subprocesses"
msgstr "Sous-processus"
#: library/asyncio-api-index.rst:108
#: library/asyncio-api-index.rst:119
msgid "Utilities to spawn subprocesses and run shell commands."
msgstr ""
#: library/asyncio-api-index.rst:114
#: library/asyncio-api-index.rst:125
msgid "``await`` :func:`create_subprocess_exec`"
msgstr ""
#: library/asyncio-api-index.rst:115
#: library/asyncio-api-index.rst:126
msgid "Create a subprocess."
msgstr ""
#: library/asyncio-api-index.rst:117
#: library/asyncio-api-index.rst:128
msgid "``await`` :func:`create_subprocess_shell`"
msgstr ""
#: library/asyncio-api-index.rst:118
#: library/asyncio-api-index.rst:129
msgid "Run a shell command."
msgstr ""
#: library/asyncio-api-index.rst:123
#: library/asyncio-api-index.rst:134
msgid ":ref:`Executing a shell command <asyncio_example_subprocess_shell>`."
msgstr ""
#: library/asyncio-api-index.rst:125
#: library/asyncio-api-index.rst:136
msgid "See also the :ref:`subprocess APIs <asyncio-subprocess>` documentation."
msgstr ""
#: library/asyncio-api-index.rst:130
#: library/asyncio-api-index.rst:141
msgid "Streams"
msgstr "Streams"
#: library/asyncio-api-index.rst:132
#: library/asyncio-api-index.rst:143
msgid "High-level APIs to work with network IO."
msgstr ""
#: library/asyncio-api-index.rst:138
#: library/asyncio-api-index.rst:149
msgid "``await`` :func:`open_connection`"
msgstr ""
#: library/asyncio-api-index.rst:139
#: library/asyncio-api-index.rst:150
msgid "Establish a TCP connection."
msgstr ""
#: library/asyncio-api-index.rst:141
#: library/asyncio-api-index.rst:152
msgid "``await`` :func:`open_unix_connection`"
msgstr ""
#: library/asyncio-api-index.rst:142
#: library/asyncio-api-index.rst:153
msgid "Establish a Unix socket connection."
msgstr ""
#: library/asyncio-api-index.rst:144
#: library/asyncio-api-index.rst:155
msgid "``await`` :func:`start_server`"
msgstr ""
#: library/asyncio-api-index.rst:145
#: library/asyncio-api-index.rst:156
msgid "Start a TCP server."
msgstr ""
#: library/asyncio-api-index.rst:147
#: library/asyncio-api-index.rst:158
msgid "``await`` :func:`start_unix_server`"
msgstr ""
#: library/asyncio-api-index.rst:148
#: library/asyncio-api-index.rst:159
msgid "Start a Unix socket server."
msgstr ""
#: library/asyncio-api-index.rst:150
#: library/asyncio-api-index.rst:161
msgid ":class:`StreamReader`"
msgstr ":class:`StreamReader`"
#: library/asyncio-api-index.rst:151
#: library/asyncio-api-index.rst:162
msgid "High-level async/await object to receive network data."
msgstr ""
#: library/asyncio-api-index.rst:153
#: library/asyncio-api-index.rst:164
msgid ":class:`StreamWriter`"
msgstr ":class:`StreamWriter`"
#: library/asyncio-api-index.rst:154
#: library/asyncio-api-index.rst:165
msgid "High-level async/await object to send network data."
msgstr ""
#: library/asyncio-api-index.rst:159
#: library/asyncio-api-index.rst:170
msgid ":ref:`Example TCP client <asyncio_example_stream>`."
msgstr ""
#: library/asyncio-api-index.rst:161
#: library/asyncio-api-index.rst:172
msgid "See also the :ref:`streams APIs <asyncio-streams>` documentation."
msgstr ""
#: library/asyncio-api-index.rst:166
#: library/asyncio-api-index.rst:177
msgid "Synchronization"
msgstr ""
#: library/asyncio-api-index.rst:168
#: library/asyncio-api-index.rst:179
msgid "Threading-like synchronization primitives that can be used in Tasks."
msgstr ""
#: library/asyncio-api-index.rst:174
#: library/asyncio-api-index.rst:185
msgid ":class:`Lock`"
msgstr ":class:`Lock`"
#: library/asyncio-api-index.rst:175
#: library/asyncio-api-index.rst:186
msgid "A mutex lock."
msgstr ""
#: library/asyncio-api-index.rst:177
#: library/asyncio-api-index.rst:188
msgid ":class:`Event`"
msgstr ":class:`Event`"
#: library/asyncio-api-index.rst:178
#: library/asyncio-api-index.rst:189
msgid "An event object."
msgstr ""
#: library/asyncio-api-index.rst:180
#: library/asyncio-api-index.rst:191
msgid ":class:`Condition`"
msgstr ":class:`Condition`"
#: library/asyncio-api-index.rst:181
#: library/asyncio-api-index.rst:192
msgid "A condition object."
msgstr ""
#: library/asyncio-api-index.rst:183
#: library/asyncio-api-index.rst:194
msgid ":class:`Semaphore`"
msgstr ":class:`Semaphore`"
#: library/asyncio-api-index.rst:184
#: library/asyncio-api-index.rst:195
msgid "A semaphore."
msgstr ""
#: library/asyncio-api-index.rst:186
#: library/asyncio-api-index.rst:197
msgid ":class:`BoundedSemaphore`"
msgstr ":class:`BoundedSemaphore`"
#: library/asyncio-api-index.rst:187
#: library/asyncio-api-index.rst:198
msgid "A bounded semaphore."
msgstr ""
#: library/asyncio-api-index.rst:189
#: library/asyncio-api-index.rst:200
#, fuzzy
msgid ":class:`Barrier`"
msgstr ":class:`Semaphore`"
#: library/asyncio-api-index.rst:190
#: library/asyncio-api-index.rst:201
msgid "A barrier object."
msgstr ""
#: library/asyncio-api-index.rst:195
#: library/asyncio-api-index.rst:206
msgid ":ref:`Using asyncio.Event <asyncio_example_sync_event>`."
msgstr ""
#: library/asyncio-api-index.rst:197
#: library/asyncio-api-index.rst:208
msgid ":ref:`Using asyncio.Barrier <asyncio_example_barrier>`."
msgstr ""
#: library/asyncio-api-index.rst:199
#: library/asyncio-api-index.rst:210
msgid ""
"See also the documentation of asyncio :ref:`synchronization primitives "
"<asyncio-sync>`."
msgstr ""
#: library/asyncio-api-index.rst:204
#: library/asyncio-api-index.rst:215
msgid "Exceptions"
msgstr "Exceptions"
#: library/asyncio-api-index.rst:211
#: library/asyncio-api-index.rst:222
msgid ":exc:`asyncio.CancelledError`"
msgstr ":exc:`asyncio.CancelledError`"
#: library/asyncio-api-index.rst:212
#: library/asyncio-api-index.rst:223
msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`."
msgstr ""
#: library/asyncio-api-index.rst:214
#: library/asyncio-api-index.rst:225
msgid ":exc:`asyncio.BrokenBarrierError`"
msgstr ""
#: library/asyncio-api-index.rst:215
#: library/asyncio-api-index.rst:226
msgid "Raised when a Barrier is broken. See also :meth:`Barrier.wait`."
msgstr ""
#: library/asyncio-api-index.rst:220
#: library/asyncio-api-index.rst:231
msgid ""
":ref:`Handling CancelledError to run code on cancellation request "
"<asyncio_example_task_cancel>`."
msgstr ""
#: library/asyncio-api-index.rst:223
#: library/asyncio-api-index.rst:234
msgid ""
"See also the full list of :ref:`asyncio-specific exceptions <asyncio-"
"exceptions>`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-06-06 21:29-0400\n"
"Last-Translator: Nicolas Haller <nicolas@haller.im>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -213,15 +213,16 @@ msgstr ""
"d'évènements se trouve."
#: library/asyncio-dev.rst:110
#, fuzzy
msgid ""
"There is currently no way to schedule coroutines or callbacks directly from "
"a different process (such as one started with :mod:`multiprocessing`). The :"
"ref:`Event Loop Methods <asyncio-event-loop>` section lists APIs that can "
"read from pipes and watch file descriptors without blocking the event loop. "
"In addition, asyncio's :ref:`Subprocess <asyncio-subprocess>` APIs provide a "
"way to start a process and communicate with it from the event loop. Lastly, "
"the aforementioned :meth:`loop.run_in_executor` method can also be used with "
"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
"ref:`asyncio-event-loop-methods` section lists APIs that can read from pipes "
"and watch file descriptors without blocking the event loop. In addition, "
"asyncio's :ref:`Subprocess <asyncio-subprocess>` APIs provide a way to start "
"a process and communicate with it from the event loop. Lastly, the "
"aforementioned :meth:`loop.run_in_executor` method can also be used with a :"
"class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
"different process."
msgstr ""
"Il n'y a actuellement aucune façon de planifier des coroutines ou des "
@ -283,11 +284,18 @@ msgstr ""
"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut "
"être ajusté facilement ::"
#: library/asyncio-dev.rst:154
#: library/asyncio-dev.rst:151
msgid ""
"Network logging can block the event loop. It is recommended to use a "
"separate thread for handling logs or use non-blocking IO. For example, see :"
"ref:`blocking-handlers`."
msgstr ""
#: library/asyncio-dev.rst:159
msgid "Detect never-awaited coroutines"
msgstr "Détection des coroutines jamais attendues"
#: library/asyncio-dev.rst:156
#: library/asyncio-dev.rst:161
msgid ""
"When a coroutine function is called, but not awaited (e.g. ``coro()`` "
"instead of ``await coro()``) or the coroutine is not scheduled with :meth:"
@ -298,15 +306,15 @@ msgstr ""
"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:"
"`RuntimeWarning` ::"
#: library/asyncio-dev.rst:216
#: library/asyncio-dev.rst:221
msgid "Output::"
msgstr "Sortie ::"
#: library/asyncio-dev.rst:232
#: library/asyncio-dev.rst:237
msgid "Output in debug mode::"
msgstr "Affichage en mode débogage ::"
#: library/asyncio-dev.rst:189
#: library/asyncio-dev.rst:194
msgid ""
"The usual fix is to either await the coroutine or call the :meth:`asyncio."
"create_task` function::"
@ -314,11 +322,11 @@ msgstr ""
"La façon habituelle de régler ce problème est d'attendre (*await*) la "
"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::"
#: library/asyncio-dev.rst:197
#: library/asyncio-dev.rst:202
msgid "Detect never-retrieved exceptions"
msgstr "Détection des exceptions jamais récupérées"
#: library/asyncio-dev.rst:199
#: library/asyncio-dev.rst:204
msgid ""
"If a :meth:`Future.set_exception` is called but the Future object is never "
"awaited on, the exception would never be propagated to the user code. In "
@ -330,11 +338,11 @@ msgstr ""
"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque "
"l'objet *Future* est récupéré par le ramasse-miette."
#: library/asyncio-dev.rst:204
#: library/asyncio-dev.rst:209
msgid "Example of an unhandled exception::"
msgstr "Exemple d'une exception non-gérée ::"
#: library/asyncio-dev.rst:227
#: library/asyncio-dev.rst:232
msgid ""
":ref:`Enable the debug mode <asyncio-debug-mode>` to get the traceback where "
"the task was created::"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3.11\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-23 00:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -106,54 +106,48 @@ msgstr ""
msgid "*context* argument is added."
msgstr ""
#: library/asyncio-extending.rst:68
msgid ""
"Return ``True`` if *future* is attached to the same loop as the task, "
"``False`` otherwise."
msgstr ""
#: library/asyncio-extending.rst:75
#: library/asyncio-extending.rst:69
msgid "Task lifetime support"
msgstr ""
#: library/asyncio-extending.rst:77
#: library/asyncio-extending.rst:71
msgid ""
"A third party task implementation should call the following functions to "
"keep a task visible by :func:`asyncio.get_tasks` and :func:`asyncio."
"current_task`:"
msgstr ""
#: library/asyncio-extending.rst:82
#: library/asyncio-extending.rst:76
msgid "Register a new *task* as managed by *asyncio*."
msgstr ""
#: library/asyncio-extending.rst:84
#: library/asyncio-extending.rst:78
msgid "Call the function from a task constructor."
msgstr ""
#: library/asyncio-extending.rst:88
#: library/asyncio-extending.rst:82
msgid "Unregister a *task* from *asyncio* internal structures."
msgstr ""
#: library/asyncio-extending.rst:90
#: library/asyncio-extending.rst:84
msgid "The function should be called when a task is about to finish."
msgstr ""
#: library/asyncio-extending.rst:94
#: library/asyncio-extending.rst:88
msgid "Switch the current task to the *task* argument."
msgstr ""
#: library/asyncio-extending.rst:96
#: library/asyncio-extending.rst:90
msgid ""
"Call the function just before executing a portion of embedded *coroutine* (:"
"meth:`coroutine.send` or :meth:`coroutine.throw`)."
msgstr ""
#: library/asyncio-extending.rst:101
#: library/asyncio-extending.rst:95
msgid "Switch the current task back from *task* to ``None``."
msgstr ""
#: library/asyncio-extending.rst:103
#: library/asyncio-extending.rst:97
msgid ""
"Call the function just after :meth:`coroutine.send` or :meth:`coroutine."
"throw` execution."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-08-22 22:57-0400\n"
"Last-Translator: Nicolas Haller <nicolas@haller.im>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -67,9 +67,8 @@ msgid ""
"*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a "
"Future-like object (:func:`isfuture` is used for the test.)"
msgstr ""
"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:"
"`Task` ou se comportant comme un *Future*. :func:`isfuture` est utilisée "
"pour le test ;"
"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou "
"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;"
#: library/asyncio-future.rst:42
msgid ""
@ -77,18 +76,17 @@ msgid ""
"`iscoroutine` is used for the test); in this case the coroutine will be "
"scheduled by ``ensure_future()``."
msgstr ""
"un objet :class:`Task` encapsulant *obj* si ce dernier est une "
"coroutine (:func:`iscoroutine` est utilisée pour le test). Dans ce cas, "
"lexécution de la coroutine sera planifiée par ``ensure_future()`` ;"
"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine (:"
"func:`iscoroutine` est utilisée pour le test). Dans ce cas, lexécution de "
"la coroutine sera planifiée par ``ensure_future()`` ;"
#: library/asyncio-future.rst:47
msgid ""
"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:"
"func:`inspect.isawaitable` is used for the test.)"
msgstr ""
"un objet :class:`Task` qui attendra (*await*) *obj* si ce "
"dernier peut être attendu (*awaitable*). :func:`iscoroutine` est utilisée "
"pour le test."
"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être "
"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test."
#: library/asyncio-future.rst:50
msgid "If *obj* is neither of the above a :exc:`TypeError` is raised."
@ -105,9 +103,10 @@ msgstr ""
"pour créer des nouvelles tâches."
#: library/asyncio-future.rst:57
#, fuzzy
msgid ""
"Save a reference to the result of this function, to avoid a task "
"disappearing mid execution."
"disappearing mid-execution."
msgstr ""
"Gardez une référence au résultat de cette fonction pour éviter de voir une "
"tâche disparaitre au milieu de son exécution."
@ -155,16 +154,17 @@ msgstr ""
"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution."
#: library/asyncio-future.rst:86
#, fuzzy
msgid ""
"Future is an :term:`awaitable` object. Coroutines can await on Future "
"objects until they either have a result or an exception set, or until they "
"are cancelled."
"are cancelled. A Future can be awaited multiple times and the result is same."
msgstr ""
"*Future* est un objet qui peut être attendu (:term:`awaitable`). Les "
"coroutines peuvent attendre les objets *Future* jusqu'à ce qu'ils renvoient "
"un résultat, ils lèvent une exception ou qu'ils soient annulés."
#: library/asyncio-future.rst:90
#: library/asyncio-future.rst:91
msgid ""
"Typically Futures are used to enable low-level callback-based code (e.g. in "
"protocols implemented using asyncio :ref:`transports <asyncio-transports-"
@ -175,7 +175,7 @@ msgstr ""
"utilisant *asyncio* :ref:`transports <asyncio-transports-protocols>`) "
"d'interagir avec du code haut niveau utilisant *async* et *await*."
#: library/asyncio-future.rst:95
#: library/asyncio-future.rst:96
msgid ""
"The rule of thumb is to never expose Future objects in user-facing APIs, and "
"the recommended way to create a Future object is to call :meth:`loop."
@ -188,11 +188,11 @@ msgstr ""
"permet aux implémentations alternatives de la boucle d'évènements d'utiliser "
"leur propre implémentation de l'objet *Future*."
#: library/asyncio-future.rst:101
#: library/asyncio-future.rst:102
msgid "Added support for the :mod:`contextvars` module."
msgstr "Ajout du support du module :mod:`contextvars`."
#: library/asyncio-future.rst:104
#: library/asyncio-future.rst:105
msgid ""
"Deprecation warning is emitted if *loop* is not specified and there is no "
"running event loop."
@ -200,11 +200,11 @@ msgstr ""
"Un ``DeprecationWarning`` est levé si *loop* n'est pas spécifié et s'il n'y "
"a pas de boucle d'évènements en cours d'exécution."
#: library/asyncio-future.rst:110
#: library/asyncio-future.rst:111
msgid "Return the result of the Future."
msgstr "Renvoie le résultat du *Future*."
#: library/asyncio-future.rst:112
#: library/asyncio-future.rst:113
msgid ""
"If the Future is *done* and has a result set by the :meth:`set_result` "
"method, the result value is returned."
@ -212,7 +212,7 @@ msgstr ""
"Si le *Future* est « terminé » et a un résultat défini par la méthode :meth:"
"`set_result`, ce résultat est renvoyé."
#: library/asyncio-future.rst:115
#: library/asyncio-future.rst:116
msgid ""
"If the Future is *done* and has an exception set by the :meth:"
"`set_exception` method, this method raises the exception."
@ -220,7 +220,7 @@ msgstr ""
"Si le *Future* est « terminé » et a une exception définie par la méthode :"
"meth:`set_exception`, cette méthode lève l'exception."
#: library/asyncio-future.rst:211
#: library/asyncio-future.rst:207
msgid ""
"If the Future has been *cancelled*, this method raises a :exc:"
"`CancelledError` exception."
@ -228,7 +228,7 @@ msgstr ""
"Si le *Future* a été *annulé*, cette méthode lève une exception :exc:"
"`CancelledError`."
#: library/asyncio-future.rst:121
#: library/asyncio-future.rst:122
msgid ""
"If the Future's result isn't yet available, this method raises a :exc:"
"`InvalidStateError` exception."
@ -236,25 +236,25 @@ msgstr ""
"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève "
"une exception :exc:`InvalidStateError`."
#: library/asyncio-future.rst:126
#: library/asyncio-future.rst:127
msgid "Mark the Future as *done* and set its result."
msgstr "Marque le *Future* comme « terminé » et définit son résultat."
#: library/asyncio-future.rst:135
#: library/asyncio-future.rst:136
msgid ""
"Raises a :exc:`InvalidStateError` error if the Future is already *done*."
msgstr ""
"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »."
#: library/asyncio-future.rst:133
#: library/asyncio-future.rst:134
msgid "Mark the Future as *done* and set an exception."
msgstr "Marque le *Future* comme « terminé » et définit une exception."
#: library/asyncio-future.rst:140
#: library/asyncio-future.rst:141
msgid "Return ``True`` if the Future is *done*."
msgstr "Renvoie ``True`` si le *Future* est « terminé »."
#: library/asyncio-future.rst:142
#: library/asyncio-future.rst:143
msgid ""
"A Future is *done* if it was *cancelled* or if it has a result or an "
"exception set with :meth:`set_result` or :meth:`set_exception` calls."
@ -263,11 +263,11 @@ msgstr ""
"exception a été définie par les méthodes :meth:`set_result` ou :meth:"
"`set_exception`."
#: library/asyncio-future.rst:148
#: library/asyncio-future.rst:149
msgid "Return ``True`` if the Future was *cancelled*."
msgstr "Renvoie ``True`` si le *Future* a été « annulé »."
#: library/asyncio-future.rst:150
#: library/asyncio-future.rst:151
msgid ""
"The method is usually used to check if a Future is not *cancelled* before "
"setting a result or an exception for it::"
@ -275,17 +275,17 @@ msgstr ""
"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est "
"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::"
#: library/asyncio-future.rst:158
#: library/asyncio-future.rst:159
msgid "Add a callback to be run when the Future is *done*."
msgstr ""
"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »."
#: library/asyncio-future.rst:160
#: library/asyncio-future.rst:161
msgid "The *callback* is called with the Future object as its only argument."
msgstr ""
"L'argument *callback* est appelé avec l'objet *Future* comme seul argument."
#: library/asyncio-future.rst:163
#: library/asyncio-future.rst:164
msgid ""
"If the Future is already *done* when this method is called, the callback is "
"scheduled with :meth:`loop.call_soon`."
@ -294,7 +294,7 @@ msgstr ""
"l'exécution de la fonction de rappel est planifiée avec :meth:`loop."
"call_soon`."
#: library/asyncio-future.rst:166
#: library/asyncio-future.rst:167
msgid ""
"An optional keyword-only *context* argument allows specifying a custom :"
"class:`contextvars.Context` for the *callback* to run in. The current "
@ -304,7 +304,7 @@ msgstr ""
"`contextvars.Context` personnalisée dans laquelle la fonction de rappel "
"sexécutera. Le contexte actuel est utilisé si *context* n'est pas fourni."
#: library/asyncio-future.rst:170
#: library/asyncio-future.rst:171
msgid ""
":func:`functools.partial` can be used to pass parameters to the callback, e."
"g.::"
@ -312,18 +312,18 @@ msgstr ""
":func:`functools.partial` peut être utilisée pour passer des paramètres à la "
"fonction de rappel ::"
#: library/asyncio-future.rst:177
#: library/asyncio-future.rst:178
msgid ""
"The *context* keyword-only parameter was added. See :pep:`567` for more "
"details."
msgstr ""
"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails."
#: library/asyncio-future.rst:183
#: library/asyncio-future.rst:184
msgid "Remove *callback* from the callbacks list."
msgstr "Retire *callback* de la liste de fonctions de rappel."
#: library/asyncio-future.rst:185
#: library/asyncio-future.rst:186
msgid ""
"Returns the number of callbacks removed, which is typically 1, unless a "
"callback was added more than once."
@ -331,11 +331,11 @@ msgstr ""
"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie "
"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois."
#: library/asyncio-future.rst:190
#: library/asyncio-future.rst:191
msgid "Cancel the Future and schedule callbacks."
msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel."
#: library/asyncio-future.rst:192
#: library/asyncio-future.rst:193
msgid ""
"If the Future is already *done* or *cancelled*, return ``False``. Otherwise, "
"change the Future's state to *cancelled*, schedule the callbacks, and return "
@ -345,21 +345,15 @@ msgstr ""
"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des "
"fonctions de rappel et renvoie ``True``."
#: library/asyncio-future.rst:196
#: library/asyncio-future.rst:197
msgid "Added the *msg* parameter."
msgstr "Ajout du paramètre *msg*."
#: library/asyncio-future.rst:288
msgid ""
"*msg* parameter is ambiguous when multiple :meth:`cancel` are called with "
"different cancellation messages. The argument will be removed."
msgstr ""
#: library/asyncio-future.rst:206
#: library/asyncio-future.rst:202
msgid "Return the exception that was set on this Future."
msgstr "Renvoie l'exception définie pour ce *Future*."
#: library/asyncio-future.rst:208
#: library/asyncio-future.rst:204
msgid ""
"The exception (or ``None`` if no exception was set) is returned only if the "
"Future is *done*."
@ -367,7 +361,7 @@ msgstr ""
"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé "
"seulement si le *Future* est « terminé »."
#: library/asyncio-future.rst:214
#: library/asyncio-future.rst:210
msgid ""
"If the Future isn't *done* yet, this method raises an :exc:"
"`InvalidStateError` exception."
@ -375,11 +369,11 @@ msgstr ""
"Si le *Future* n'est pas encore « terminé », cette méthode lève une "
"exception :exc:`InvalidStateError`."
#: library/asyncio-future.rst:219
#: library/asyncio-future.rst:215
msgid "Return the event loop the Future object is bound to."
msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché."
#: library/asyncio-future.rst:226
#: library/asyncio-future.rst:222
msgid ""
"This example creates a Future object, creates and schedules an asynchronous "
"Task to set result for the Future, and waits until the Future has a result::"
@ -388,7 +382,7 @@ msgstr ""
"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce "
"que le *Future* ait un résultat ::"
#: library/asyncio-future.rst:261
#: library/asyncio-future.rst:257
msgid ""
"The Future object was designed to mimic :class:`concurrent.futures.Future`. "
"Key differences include:"
@ -396,7 +390,7 @@ msgstr ""
"L'objet *Future* est conçu pour imiter la classe :class:`concurrent.futures."
"Future`. Les principales différences sont :"
#: library/asyncio-future.rst:264
#: library/asyncio-future.rst:260
msgid ""
"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot "
"be awaited."
@ -404,7 +398,7 @@ msgstr ""
"contrairement au *Future asyncio*, les instances de :class:`concurrent."
"futures.Future` ne peuvent pas être attendues ;"
#: library/asyncio-future.rst:267
#: library/asyncio-future.rst:263
msgid ""
":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not "
"accept the *timeout* argument."
@ -412,7 +406,7 @@ msgstr ""
":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` "
"n'acceptent pas d'argument *timeout* ;"
#: library/asyncio-future.rst:270
#: library/asyncio-future.rst:266
msgid ""
":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :"
"exc:`InvalidStateError` exception when the Future is not *done*."
@ -421,7 +415,7 @@ msgstr ""
"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas "
 terminé » ;"
#: library/asyncio-future.rst:274
#: library/asyncio-future.rst:270
msgid ""
"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not "
"called immediately. They are scheduled with :meth:`loop.call_soon` instead."
@ -430,7 +424,7 @@ msgstr ""
"add_done_callback` ne sont pas exécutées immédiatement mais planifiées avec :"
"meth:`loop.call_soon` ;"
#: library/asyncio-future.rst:278
#: library/asyncio-future.rst:274
msgid ""
"asyncio Future is not compatible with the :func:`concurrent.futures.wait` "
"and :func:`concurrent.futures.as_completed` functions."
@ -438,7 +432,7 @@ msgstr ""
"les *Future asyncio* ne sont pas compatibles avec les fonctions :func:"
"`concurrent.futures.wait` et :func:`concurrent.futures.as_completed` ;"
#: library/asyncio-future.rst:282
#: library/asyncio-future.rst:278
msgid ""
":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :"
"func:`concurrent.futures.cancel` does not."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -39,7 +39,7 @@ msgid ":func:`asyncio.get_event_loop`"
msgstr ":func:`asyncio.get_event_loop`"
#: library/asyncio-llapi-index.rst:22
msgid "Get an event loop instance (current or via the policy)."
msgid "Get an event loop instance (running or current via the current policy)."
msgstr ""
#: library/asyncio-llapi-index.rst:24
@ -72,8 +72,8 @@ msgstr "Méthodes de la boucle d'évènements"
#: library/asyncio-llapi-index.rst:39
msgid ""
"See also the main documentation section about the :ref:`event loop methods "
"<asyncio-event-loop>`."
"See also the main documentation section about the :ref:`asyncio-event-loop-"
"methods`."
msgstr ""
#: library/asyncio-llapi-index.rst:42
@ -546,7 +546,7 @@ msgstr ""
#: library/asyncio-llapi-index.rst:270
msgid ""
":ref:`Using asyncio.get_event_loop() and loop.run_forever() "
":ref:`Using asyncio.new_event_loop() and loop.run_forever() "
"<asyncio_example_lowlevel_helloworld>`."
msgstr ""
@ -710,7 +710,7 @@ msgstr ""
msgid ":meth:`transport.abort() <WriteTransport.abort>`"
msgstr ""
#: library/asyncio-llapi-index.rst:357 library/asyncio-llapi-index.rst:379
#: library/asyncio-llapi-index.rst:357 library/asyncio-llapi-index.rst:383
msgid "Close the transport immediately."
msgstr ""
@ -721,226 +721,237 @@ msgid ""
msgstr ""
#: library/asyncio-llapi-index.rst:361
#, fuzzy
msgid "Return the current size of the output buffer."
msgstr "Renvoie le protocole courant."
#: library/asyncio-llapi-index.rst:363
msgid ""
":meth:`transport.get_write_buffer_limits() <WriteTransport."
"get_write_buffer_limits>`"
msgstr ""
#: library/asyncio-llapi-index.rst:365
msgid "Return high and low water marks for write flow control."
msgstr ""
#: library/asyncio-llapi-index.rst:363
#: library/asyncio-llapi-index.rst:367
msgid ""
":meth:`transport.set_write_buffer_limits() <WriteTransport."
"set_write_buffer_limits>`"
msgstr ""
#: library/asyncio-llapi-index.rst:365
#: library/asyncio-llapi-index.rst:369
msgid "Set new high and low water marks for write flow control."
msgstr ""
#: library/asyncio-llapi-index.rst:368
#: library/asyncio-llapi-index.rst:372
msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:"
msgstr ""
#: library/asyncio-llapi-index.rst:370
#: library/asyncio-llapi-index.rst:374
msgid "Datagram Transports"
msgstr "Transports de datagrammes"
#: library/asyncio-llapi-index.rst:375
#: library/asyncio-llapi-index.rst:379
msgid ":meth:`transport.sendto() <DatagramTransport.sendto>`"
msgstr ""
#: library/asyncio-llapi-index.rst:376
#: library/asyncio-llapi-index.rst:380
msgid "Send data to the remote peer."
msgstr ""
#: library/asyncio-llapi-index.rst:378
#: library/asyncio-llapi-index.rst:382
msgid ":meth:`transport.abort() <DatagramTransport.abort>`"
msgstr ""
#: library/asyncio-llapi-index.rst:382
#: library/asyncio-llapi-index.rst:386
msgid ""
"Low-level transport abstraction over subprocesses. Returned by :meth:`loop."
"subprocess_exec` and :meth:`loop.subprocess_shell`:"
msgstr ""
#: library/asyncio-llapi-index.rst:386
#: library/asyncio-llapi-index.rst:390
msgid "Subprocess Transports"
msgstr "Transports vers des sous-processus"
#: library/asyncio-llapi-index.rst:391
#: library/asyncio-llapi-index.rst:395
msgid ":meth:`transport.get_pid() <SubprocessTransport.get_pid>`"
msgstr ""
#: library/asyncio-llapi-index.rst:392
#: library/asyncio-llapi-index.rst:396
msgid "Return the subprocess process id."
msgstr ""
#: library/asyncio-llapi-index.rst:394
#: library/asyncio-llapi-index.rst:398
msgid ""
":meth:`transport.get_pipe_transport() <SubprocessTransport."
"get_pipe_transport>`"
msgstr ""
#: library/asyncio-llapi-index.rst:396
#: library/asyncio-llapi-index.rst:400
msgid ""
"Return the transport for the requested communication pipe (*stdin*, "
"*stdout*, or *stderr*)."
msgstr ""
#: library/asyncio-llapi-index.rst:399
#: library/asyncio-llapi-index.rst:403
msgid ":meth:`transport.get_returncode() <SubprocessTransport.get_returncode>`"
msgstr ""
#: library/asyncio-llapi-index.rst:400
#: library/asyncio-llapi-index.rst:404
msgid "Return the subprocess return code."
msgstr ""
#: library/asyncio-llapi-index.rst:402
#: library/asyncio-llapi-index.rst:406
msgid ":meth:`transport.kill() <SubprocessTransport.kill>`"
msgstr ""
#: library/asyncio-llapi-index.rst:403
#: library/asyncio-llapi-index.rst:407
msgid "Kill the subprocess."
msgstr "Tue le sous-processus."
#: library/asyncio-llapi-index.rst:405
#: library/asyncio-llapi-index.rst:409
msgid ":meth:`transport.send_signal() <SubprocessTransport.send_signal>`"
msgstr ""
#: library/asyncio-llapi-index.rst:406
#: library/asyncio-llapi-index.rst:410
msgid "Send a signal to the subprocess."
msgstr ""
#: library/asyncio-llapi-index.rst:408
#: library/asyncio-llapi-index.rst:412
msgid ":meth:`transport.terminate() <SubprocessTransport.terminate>`"
msgstr ""
#: library/asyncio-llapi-index.rst:409
#: library/asyncio-llapi-index.rst:413
msgid "Stop the subprocess."
msgstr "Termine le sous-processus."
#: library/asyncio-llapi-index.rst:411
#: library/asyncio-llapi-index.rst:415
msgid ":meth:`transport.close() <SubprocessTransport.close>`"
msgstr ""
#: library/asyncio-llapi-index.rst:412
#: library/asyncio-llapi-index.rst:416
msgid "Kill the subprocess and close all pipes."
msgstr ""
#: library/asyncio-llapi-index.rst:416
#: library/asyncio-llapi-index.rst:420
msgid "Protocols"
msgstr ""
#: library/asyncio-llapi-index.rst:418
#: library/asyncio-llapi-index.rst:422
msgid "Protocol classes can implement the following **callback methods**:"
msgstr ""
#: library/asyncio-llapi-index.rst:424
#: library/asyncio-llapi-index.rst:428
msgid "``callback`` :meth:`connection_made() <BaseProtocol.connection_made>`"
msgstr ""
#: library/asyncio-llapi-index.rst:425
#: library/asyncio-llapi-index.rst:429
msgid "Called when a connection is made."
msgstr "Appelé lorsqu'une connexion est établie."
#: library/asyncio-llapi-index.rst:427
#: library/asyncio-llapi-index.rst:431
msgid "``callback`` :meth:`connection_lost() <BaseProtocol.connection_lost>`"
msgstr ""
#: library/asyncio-llapi-index.rst:428
#: library/asyncio-llapi-index.rst:432
msgid "Called when the connection is lost or closed."
msgstr "Appelé lorsqu'une connexion est perdue ou fermée."
#: library/asyncio-llapi-index.rst:430
#: library/asyncio-llapi-index.rst:434
msgid "``callback`` :meth:`pause_writing() <BaseProtocol.pause_writing>`"
msgstr ""
#: library/asyncio-llapi-index.rst:431
#: library/asyncio-llapi-index.rst:435
msgid "Called when the transport's buffer goes over the high water mark."
msgstr ""
#: library/asyncio-llapi-index.rst:433
#: library/asyncio-llapi-index.rst:437
msgid "``callback`` :meth:`resume_writing() <BaseProtocol.resume_writing>`"
msgstr ""
#: library/asyncio-llapi-index.rst:434
#: library/asyncio-llapi-index.rst:438
msgid "Called when the transport's buffer drains below the low water mark."
msgstr ""
#: library/asyncio-llapi-index.rst:437
#: library/asyncio-llapi-index.rst:441
msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)"
msgstr ""
#: library/asyncio-llapi-index.rst:442
#: library/asyncio-llapi-index.rst:446
msgid "``callback`` :meth:`data_received() <Protocol.data_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:443
#: library/asyncio-llapi-index.rst:447
msgid "Called when some data is received."
msgstr ""
#: library/asyncio-llapi-index.rst:445
#: library/asyncio-llapi-index.rst:449
msgid "``callback`` :meth:`eof_received() <Protocol.eof_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:446 library/asyncio-llapi-index.rst:461
#: library/asyncio-llapi-index.rst:450 library/asyncio-llapi-index.rst:465
msgid "Called when an EOF is received."
msgstr ""
#: library/asyncio-llapi-index.rst:449
#: library/asyncio-llapi-index.rst:453
msgid "Buffered Streaming Protocols"
msgstr ""
#: library/asyncio-llapi-index.rst:454
#: library/asyncio-llapi-index.rst:458
msgid "``callback`` :meth:`get_buffer() <BufferedProtocol.get_buffer>`"
msgstr ""
#: library/asyncio-llapi-index.rst:455
#: library/asyncio-llapi-index.rst:459
msgid "Called to allocate a new receive buffer."
msgstr ""
#: library/asyncio-llapi-index.rst:457
#: library/asyncio-llapi-index.rst:461
msgid "``callback`` :meth:`buffer_updated() <BufferedProtocol.buffer_updated>`"
msgstr ""
#: library/asyncio-llapi-index.rst:458
#: library/asyncio-llapi-index.rst:462
msgid "Called when the buffer was updated with the received data."
msgstr ""
#: library/asyncio-llapi-index.rst:460
#: library/asyncio-llapi-index.rst:464
msgid "``callback`` :meth:`eof_received() <BufferedProtocol.eof_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:464
#: library/asyncio-llapi-index.rst:468
msgid "Datagram Protocols"
msgstr "Protocoles non-connectés"
#: library/asyncio-llapi-index.rst:469
#: library/asyncio-llapi-index.rst:473
msgid ""
"``callback`` :meth:`datagram_received() <DatagramProtocol.datagram_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:471
#: library/asyncio-llapi-index.rst:475
msgid "Called when a datagram is received."
msgstr ""
#: library/asyncio-llapi-index.rst:473
#: library/asyncio-llapi-index.rst:477
msgid "``callback`` :meth:`error_received() <DatagramProtocol.error_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:474
#: library/asyncio-llapi-index.rst:478
msgid ""
"Called when a previous send or receive operation raises an :class:`OSError`."
msgstr ""
#: library/asyncio-llapi-index.rst:478
#: library/asyncio-llapi-index.rst:482
msgid "Subprocess Protocols"
msgstr "Protocoles liés aux sous-processus"
#: library/asyncio-llapi-index.rst:483
#: library/asyncio-llapi-index.rst:487
msgid ""
"``callback`` :meth:`pipe_data_received() <SubprocessProtocol."
"pipe_data_received>`"
msgstr ""
#: library/asyncio-llapi-index.rst:485
#: library/asyncio-llapi-index.rst:489
#, fuzzy
msgid ""
"Called when the child process writes data into its *stdout* or *stderr* pipe."
@ -948,63 +959,63 @@ msgstr ""
"Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie "
"standard."
#: library/asyncio-llapi-index.rst:488
#: library/asyncio-llapi-index.rst:492
msgid ""
"``callback`` :meth:`pipe_connection_lost() <SubprocessProtocol."
"pipe_connection_lost>`"
msgstr ""
#: library/asyncio-llapi-index.rst:490
#: library/asyncio-llapi-index.rst:494
msgid ""
"Called when one of the pipes communicating with the child process is closed."
msgstr ""
"Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est "
"fermée."
#: library/asyncio-llapi-index.rst:493
#: library/asyncio-llapi-index.rst:497
msgid ""
"``callback`` :meth:`process_exited() <SubprocessProtocol.process_exited>`"
msgstr ""
#: library/asyncio-llapi-index.rst:495
#: library/asyncio-llapi-index.rst:499
msgid "Called when the child process has exited."
msgstr "Appelé lorsqu'un processus enfant se termine."
#: library/asyncio-llapi-index.rst:499
#: library/asyncio-llapi-index.rst:503
msgid "Event Loop Policies"
msgstr ""
#: library/asyncio-llapi-index.rst:501
#: library/asyncio-llapi-index.rst:505
msgid ""
"Policies is a low-level mechanism to alter the behavior of functions like :"
"func:`asyncio.get_event_loop`. See also the main :ref:`policies section "
"<asyncio-policies>` for more details."
msgstr ""
#: library/asyncio-llapi-index.rst:507
#: library/asyncio-llapi-index.rst:511
msgid "Accessing Policies"
msgstr ""
#: library/asyncio-llapi-index.rst:512
#: library/asyncio-llapi-index.rst:516
msgid ":meth:`asyncio.get_event_loop_policy`"
msgstr ":meth:`asyncio.get_event_loop_policy`"
#: library/asyncio-llapi-index.rst:513
#: library/asyncio-llapi-index.rst:517
msgid "Return the current process-wide policy."
msgstr "Renvoie la stratégie actuelle à l'échelle du processus."
#: library/asyncio-llapi-index.rst:515
#: library/asyncio-llapi-index.rst:519
msgid ":meth:`asyncio.set_event_loop_policy`"
msgstr ":meth:`asyncio.set_event_loop_policy`"
#: library/asyncio-llapi-index.rst:516
#: library/asyncio-llapi-index.rst:520
msgid "Set a new process-wide policy."
msgstr ""
#: library/asyncio-llapi-index.rst:518
#: library/asyncio-llapi-index.rst:522
msgid ":class:`AbstractEventLoopPolicy`"
msgstr ":class:`AbstractEventLoopPolicy`"
#: library/asyncio-llapi-index.rst:519
#: library/asyncio-llapi-index.rst:523
msgid "Base class for policy objects."
msgstr ""

View File

@ -5,7 +5,7 @@ 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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-11-17 01:26+0100\n"
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -21,35 +21,36 @@ msgstr "Stratégies"
#: library/asyncio-policy.rst:10
msgid ""
"An event loop policy is a global per-process object that controls the "
"management of the event loop. Each event loop has a default policy, which "
"can be changed and customized using the policy API."
"An event loop policy is a global object used to get and set the current :ref:"
"`event loop <asyncio-event-loop>`, as well as create new event loops. The "
"default policy can be :ref:`replaced <asyncio-policy-get-set>` with :ref:"
"`built-in alternatives <asyncio-policy-builtin>` to use different event loop "
"implementations, or substituted by a :ref:`custom policy <asyncio-custom-"
"policies>` that can override these behaviors."
msgstr ""
"Une stratégie de boucle d'événements est un objet global, pour chaque "
"processus, qui contrôle la gestion de la boucle d'événement. Chaque boucle "
"d'événement a une stratégie par défaut, qui peut être modifiée et "
"personnalisée à l'aide de l'API de la stratégie."
#: library/asyncio-policy.rst:14
#: library/asyncio-policy.rst:19
#, fuzzy
msgid ""
"A policy defines the notion of *context* and manages a separate event loop "
"per context. The default policy defines *context* to be the current thread."
"The :ref:`policy object <asyncio-policy-objects>` gets and sets a separate "
"event loop per *context*. This is per-thread by default, though custom "
"policies could define *context* differently."
msgstr ""
"Une stratégie définit la notion de *contexte* et gère une boucle d'événement "
"distincte par contexte. La stratégie par défaut définit le *contexte* comme "
"étant le fil d'exécution actuel."
#: library/asyncio-policy.rst:18
#: library/asyncio-policy.rst:24
#, fuzzy
msgid ""
"By using a custom event loop policy, the behavior of :func:"
"`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` "
"functions can be customized."
"Custom event loop policies can control the behavior of :func:"
"`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop`."
msgstr ""
"En utilisant une stratégie de boucle d'événement personnalisée, le "
"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` "
"et :func:`new_event_loop` peut être personnalisé."
#: library/asyncio-policy.rst:22
#: library/asyncio-policy.rst:27
msgid ""
"Policy objects should implement the APIs defined in the :class:"
"`AbstractEventLoopPolicy` abstract base class."
@ -57,11 +58,11 @@ msgstr ""
"Les objets de stratégie doivent implémenter les API définies dans la classe "
"de base abstraite :class:`AbstractEventLoopPolicy`."
#: library/asyncio-policy.rst:27
#: library/asyncio-policy.rst:34
msgid "Getting and Setting the Policy"
msgstr "Obtenir et définir la stratégie"
#: library/asyncio-policy.rst:29
#: library/asyncio-policy.rst:36
msgid ""
"The following functions can be used to get and set the policy for the "
"current process:"
@ -69,39 +70,39 @@ msgstr ""
"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la "
"stratégie du processus en cours :"
#: library/asyncio-policy.rst:34
#: library/asyncio-policy.rst:41
msgid "Return the current process-wide policy."
msgstr "Renvoie la stratégie actuelle à l'échelle du processus."
#: library/asyncio-policy.rst:38
#: library/asyncio-policy.rst:45
msgid "Set the current process-wide policy to *policy*."
msgstr ""
"Définit la stratégie actuelle sur l'ensemble du processus sur *policy*."
#: library/asyncio-policy.rst:40
#: library/asyncio-policy.rst:47
msgid "If *policy* is set to ``None``, the default policy is restored."
msgstr ""
"Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée."
#: library/asyncio-policy.rst:44
#: library/asyncio-policy.rst:53
msgid "Policy Objects"
msgstr "Sujets de stratégie"
#: library/asyncio-policy.rst:46
#: library/asyncio-policy.rst:55
msgid "The abstract event loop policy base class is defined as follows:"
msgstr ""
"La classe de base abstraite de la stratégie de boucle d'événements est "
"définie comme suit:"
#: library/asyncio-policy.rst:50
#: library/asyncio-policy.rst:59
msgid "An abstract base class for asyncio policies."
msgstr "Une classe de base abstraite pour les stratégies *asyncio*."
#: library/asyncio-policy.rst:54
#: library/asyncio-policy.rst:63
msgid "Get the event loop for the current context."
msgstr "Récupère la boucle d'évènements pour le contexte actuel."
#: library/asyncio-policy.rst:56
#: library/asyncio-policy.rst:65
msgid ""
"Return an event loop object implementing the :class:`AbstractEventLoop` "
"interface."
@ -109,23 +110,23 @@ msgstr ""
"Renvoie un objet de boucle d'événements en implémentant l'interface :class:"
"`AbstractEventLoop`."
#: library/asyncio-policy.rst:71
#: library/asyncio-policy.rst:80
msgid "This method should never return ``None``."
msgstr "Cette méthode ne devrait jamais renvoyer ``None``."
#: library/asyncio-policy.rst:65
#: library/asyncio-policy.rst:74
msgid "Set the event loop for the current context to *loop*."
msgstr "Définit la boucle d'événements du contexte actuel sur *loop*."
#: library/asyncio-policy.rst:69
#: library/asyncio-policy.rst:78
msgid "Create and return a new event loop object."
msgstr "Crée et renvoie un nouvel objet de boucle d'événements."
#: library/asyncio-policy.rst:75
#: library/asyncio-policy.rst:84
msgid "Get a child process watcher object."
msgstr "Récupère un objet observateur du processus enfant."
#: library/asyncio-policy.rst:77
#: library/asyncio-policy.rst:86
msgid ""
"Return a watcher object implementing the :class:`AbstractChildWatcher` "
"interface."
@ -133,19 +134,19 @@ msgstr ""
"Renvoie un objet observateur implémentant l'interface :class:"
"`AbstractChildWatcher`."
#: library/asyncio-policy.rst:86
#: library/asyncio-policy.rst:95
msgid "This function is Unix specific."
msgstr "Cette fonction est spécifique à Unix."
#: library/asyncio-policy.rst:84
#: library/asyncio-policy.rst:93
msgid "Set the current child process watcher to *watcher*."
msgstr "Définit l'observateur du processus enfant actuel à *watcher*."
#: library/asyncio-policy.rst:89
#: library/asyncio-policy.rst:100
msgid "asyncio ships with the following built-in policies:"
msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :"
#: library/asyncio-policy.rst:94
#: library/asyncio-policy.rst:105
msgid ""
"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :"
"class:`ProactorEventLoop` on Windows."
@ -153,7 +154,7 @@ msgstr ""
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"les plates-formes Unix et :class:`ProactorEventLoop` sur Windows."
#: library/asyncio-policy.rst:97
#: library/asyncio-policy.rst:108
msgid ""
"There is no need to install the default policy manually. asyncio is "
"configured to use the default policy automatically."
@ -162,11 +163,19 @@ msgstr ""
"*asyncio* est configuré pour utiliser automatiquement la stratégie par "
"défaut."
#: library/asyncio-policy.rst:102
#: library/asyncio-policy.rst:113
msgid "On Windows, :class:`ProactorEventLoop` is now used by default."
msgstr ""
#: library/asyncio-policy.rst:107
#: library/asyncio-policy.rst:116
msgid ""
"In Python versions 3.10.9, 3.11.1 and 3.12 the :meth:`get_event_loop` method "
"of the default asyncio policy emits a :exc:`DeprecationWarning` if there is "
"no running event loop and no current loop is set. In some future Python "
"release this will become an error."
msgstr ""
#: library/asyncio-policy.rst:124
msgid ""
"An alternative event loop policy that uses the :class:`SelectorEventLoop` "
"event loop implementation."
@ -174,11 +183,11 @@ msgstr ""
"Stratégie de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:118
#: library/asyncio-policy.rst:135
msgid ":ref:`Availability <availability>`: Windows."
msgstr ":ref:`Disponibilité <availability>` : Windows."
#: library/asyncio-policy.rst:115
#: library/asyncio-policy.rst:132
#, fuzzy
msgid ""
"An alternative event loop policy that uses the :class:`ProactorEventLoop` "
@ -187,11 +196,11 @@ msgstr ""
"Stratégie de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:123
#: library/asyncio-policy.rst:141
msgid "Process Watchers"
msgstr "Observateurs de processus"
#: library/asyncio-policy.rst:125
#: library/asyncio-policy.rst:143
msgid ""
"A process watcher allows customization of how an event loop monitors child "
"processes on Unix. Specifically, the event loop needs to know when a child "
@ -202,7 +211,7 @@ msgstr ""
"précisément, la boucle d'événements a besoin de savoir quand un processus "
"enfant s'est terminé."
#: library/asyncio-policy.rst:129
#: library/asyncio-policy.rst:147
msgid ""
"In asyncio, child processes are created with :func:`create_subprocess_exec` "
"and :meth:`loop.subprocess_exec` functions."
@ -210,7 +219,7 @@ msgstr ""
"Dans *asyncio*, les processus enfants sont créés avec les fonctions :func:"
"`create_subprocess_exec` et :meth:`loop.subprocess_exec`."
#: library/asyncio-policy.rst:133
#: library/asyncio-policy.rst:151
#, fuzzy
msgid ""
"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which "
@ -224,7 +233,7 @@ msgstr ""
"implémentations différentes : :class:`SafeChildWatcher` (configurée pour "
"être utilisé par défaut) et :class:`FastChildWatcher`."
#: library/asyncio-policy.rst:139
#: library/asyncio-policy.rst:157
msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
@ -232,7 +241,7 @@ msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <asyncio-"
"subprocess-threads>`."
#: library/asyncio-policy.rst:142
#: library/asyncio-policy.rst:160
msgid ""
"The following two functions can be used to customize the child process "
"watcher implementation used by the asyncio event loop:"
@ -241,11 +250,11 @@ msgstr ""
"l'implémentation de l'observateur de processus enfant utilisé par la boucle "
"d'événements *asyncio* :"
#: library/asyncio-policy.rst:147
#: library/asyncio-policy.rst:165
msgid "Return the current child watcher for the current policy."
msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle."
#: library/asyncio-policy.rst:151
#: library/asyncio-policy.rst:169
msgid ""
"Set the current child watcher to *watcher* for the current policy. "
"*watcher* must implement methods defined in the :class:"
@ -255,7 +264,7 @@ msgstr ""
"*watcher* doit implémenter les méthodes définies dans la classe de base :"
"class:`AbstractChildWatcher`."
#: library/asyncio-policy.rst:156
#: library/asyncio-policy.rst:174
msgid ""
"Third-party event loops implementations might not support custom child "
"watchers. For such event loops, using :func:`set_child_watcher` might be "
@ -266,11 +275,11 @@ msgstr ""
"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou "
"n'avoir aucun effet."
#: library/asyncio-policy.rst:164
#: library/asyncio-policy.rst:182
msgid "Register a new child handler."
msgstr "Enregistre un nouveau gestionnaire."
#: library/asyncio-policy.rst:166
#: library/asyncio-policy.rst:184
msgid ""
"Arrange for ``callback(pid, returncode, *args)`` to be called when a process "
"with PID equal to *pid* terminates. Specifying another callback for the "
@ -280,17 +289,17 @@ msgstr ""
"processus dont le PID est égal à *pid* se termine. La spécification d'un "
"autre rappel pour le même processus remplace le gestionnaire précédent."
#: library/asyncio-policy.rst:171
#: library/asyncio-policy.rst:189
msgid "The *callback* callable must be thread-safe."
msgstr ""
"L'appelable *callback* doit être compatible avec les programmes à fils "
"d'exécution multiples."
#: library/asyncio-policy.rst:175
#: library/asyncio-policy.rst:193
msgid "Removes the handler for process with PID equal to *pid*."
msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*."
#: library/asyncio-policy.rst:177
#: library/asyncio-policy.rst:195
msgid ""
"The function returns ``True`` if the handler was successfully removed, "
"``False`` if there was nothing to remove."
@ -298,11 +307,11 @@ msgstr ""
"La fonction renvoie ``True`` si le gestionnaire a été supprimé avec succès, "
"``False`` s'il n'y a rien à supprimer."
#: library/asyncio-policy.rst:182
#: library/asyncio-policy.rst:200
msgid "Attach the watcher to an event loop."
msgstr "Attache l'observateur à une boucle d'événement."
#: library/asyncio-policy.rst:184
#: library/asyncio-policy.rst:202
msgid ""
"If the watcher was previously attached to an event loop, then it is first "
"detached before attaching to the new loop."
@ -310,25 +319,25 @@ msgstr ""
"Si l'observateur était précédemment attaché à une boucle d'événements, il "
"est d'abord détaché avant d'être rattaché à la nouvelle boucle."
#: library/asyncio-policy.rst:187
#: library/asyncio-policy.rst:205
msgid "Note: loop may be ``None``."
msgstr "Remarque : la boucle peut être ``None``."
#: library/asyncio-policy.rst:191
#: library/asyncio-policy.rst:209
msgid "Return ``True`` if the watcher is ready to use."
msgstr ""
#: library/asyncio-policy.rst:193
#: library/asyncio-policy.rst:211
msgid ""
"Spawning a subprocess with *inactive* current child watcher raises :exc:"
"`RuntimeError`."
msgstr ""
#: library/asyncio-policy.rst:200
#: library/asyncio-policy.rst:218
msgid "Close the watcher."
msgstr "Ferme l'observateur."
#: library/asyncio-policy.rst:202
#: library/asyncio-policy.rst:220
msgid ""
"This method has to be called to ensure that underlying resources are cleaned-"
"up."
@ -336,7 +345,7 @@ msgstr ""
"Cette méthode doit être appelée pour s'assurer que les ressources sous-"
"jacentes sont nettoyées."
#: library/asyncio-policy.rst:207
#: library/asyncio-policy.rst:225
#, fuzzy
msgid ""
"This implementation starts a new waiting thread for every subprocess spawn."
@ -345,7 +354,7 @@ msgstr ""
"générer des processus en interrogeant chaque processus explicitement par un "
"signal :py:data:`SIGCHLD`."
#: library/asyncio-policy.rst:209
#: library/asyncio-policy.rst:227
#, fuzzy
msgid ""
"It works reliably even when the asyncio event loop is run in a non-main OS "
@ -355,7 +364,7 @@ msgstr ""
"de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que "
"un :py:data:`SIGCHLD` est reçu)."
#: library/asyncio-policy.rst:211
#: library/asyncio-policy.rst:229
#, fuzzy
msgid ""
"There is no noticeable overhead when handling a big number of children "
@ -365,50 +374,50 @@ msgstr ""
"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre "
"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)."
#: library/asyncio-policy.rst:214
#: library/asyncio-policy.rst:232
msgid "This watcher is used by default."
msgstr ""
#: library/asyncio-policy.rst:220
#: library/asyncio-policy.rst:238
msgid ""
"This implementation registers a :py:data:`SIGCHLD` signal handler on "
"instantiation. That can break third-party code that installs a custom "
"handler for :py:data:`SIGCHLD` signal."
msgstr ""
#: library/asyncio-policy.rst:242
#: library/asyncio-policy.rst:260
msgid ""
"The watcher avoids disrupting other code spawning processes by polling every "
"process explicitly on a :py:data:`SIGCHLD` signal."
msgstr ""
#: library/asyncio-policy.rst:227
#: library/asyncio-policy.rst:245
msgid ""
"There is no limitation for running subprocesses from different threads once "
"the watcher is installed."
msgstr ""
#: library/asyncio-policy.rst:230
#: library/asyncio-policy.rst:248
msgid ""
"The solution is safe but it has a significant overhead when handling a big "
"number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)."
msgstr ""
#: library/asyncio-policy.rst:238
#: library/asyncio-policy.rst:256
msgid ""
"This implementation uses active event loop from the main thread to handle :"
"py:data:`SIGCHLD` signal. If the main thread has no running event loop "
"another thread cannot spawn a subprocess (:exc:`RuntimeError` is raised)."
msgstr ""
#: library/asyncio-policy.rst:245
#: library/asyncio-policy.rst:263
msgid ""
"This solution is as safe as :class:`MultiLoopChildWatcher` and has the same "
"*O(N)* complexity but requires a running event loop in the main thread to "
"work."
msgstr ""
#: library/asyncio-policy.rst:250
#: library/asyncio-policy.rst:268
msgid ""
"This implementation reaps every terminated processes by calling ``os."
"waitpid(-1)`` directly, possibly breaking other code spawning processes and "
@ -418,7 +427,7 @@ msgstr ""
"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui "
"génère des processus et attend leur fin."
#: library/asyncio-policy.rst:254
#: library/asyncio-policy.rst:272
msgid ""
"There is no noticeable overhead when handling a big number of children "
"(*O(1)* each time a child terminates)."
@ -426,13 +435,13 @@ msgstr ""
"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre "
"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)."
#: library/asyncio-policy.rst:257
#: library/asyncio-policy.rst:275
msgid ""
"This solution requires a running event loop in the main thread to work, as :"
"class:`SafeChildWatcher`."
msgstr ""
#: library/asyncio-policy.rst:262
#: library/asyncio-policy.rst:280
msgid ""
"This implementation polls process file descriptors (pidfds) to await child "
"process termination. In some respects, :class:`PidfdChildWatcher` is a "
@ -443,11 +452,11 @@ msgid ""
"only work on recent (5.3+) kernels."
msgstr ""
#: library/asyncio-policy.rst:274
#: library/asyncio-policy.rst:294
msgid "Custom Policies"
msgstr "Stratégies personnalisées"
#: library/asyncio-policy.rst:276
#: library/asyncio-policy.rst:296
msgid ""
"To implement a new event loop policy, it is recommended to subclass :class:"
"`DefaultEventLoopPolicy` and override the methods for which custom behavior "
@ -457,3 +466,13 @@ msgstr ""
"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de "
"réimplémenter les méthodes pour lesquelles un comportement personnalisé est "
"souhaité, par exemple ::"
#~ msgid ""
#~ "An event loop policy is a global per-process object that controls the "
#~ "management of the event loop. Each event loop has a default policy, which "
#~ "can be changed and customized using the policy API."
#~ msgstr ""
#~ "Une stratégie de boucle d'événements est un objet global, pour chaque "
#~ "processus, qui contrôle la gestion de la boucle d'événement. Chaque "
#~ "boucle d'événement a une stratégie par défaut, qui peut être modifiée et "
#~ "personnalisée à l'aide de l'API de la stratégie."

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-06-18 22:29+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -228,161 +228,161 @@ msgid ""
"flushed asynchronously. No more data will be received. After all buffered "
"data is flushed, the protocol's :meth:`protocol.connection_lost() "
"<BaseProtocol.connection_lost>` method will be called with :const:`None` as "
"its argument."
"its argument. The transport should not be used once it is closed."
msgstr ""
#: library/asyncio-protocol.rst:163
#: library/asyncio-protocol.rst:164
msgid "Return ``True`` if the transport is closing or is closed."
msgstr ""
#: library/asyncio-protocol.rst:167
#: library/asyncio-protocol.rst:168
msgid "Return information about the transport or underlying resources it uses."
msgstr ""
#: library/asyncio-protocol.rst:170
#: library/asyncio-protocol.rst:171
msgid ""
"*name* is a string representing the piece of transport-specific information "
"to get."
msgstr ""
#: library/asyncio-protocol.rst:173
#: library/asyncio-protocol.rst:174
msgid ""
"*default* is the value to return if the information is not available, or if "
"the transport does not support querying it with the given third-party event "
"loop implementation or on the current platform."
msgstr ""
#: library/asyncio-protocol.rst:178
#: library/asyncio-protocol.rst:179
msgid ""
"For example, the following code attempts to get the underlying socket object "
"of the transport::"
msgstr ""
#: library/asyncio-protocol.rst:185
#: library/asyncio-protocol.rst:186
msgid "Categories of information that can be queried on some transports:"
msgstr ""
#: library/asyncio-protocol.rst:187
#: library/asyncio-protocol.rst:188
msgid "socket:"
msgstr ""
#: library/asyncio-protocol.rst:189
#: library/asyncio-protocol.rst:190
msgid ""
"``'peername'``: the remote address to which the socket is connected, result "
"of :meth:`socket.socket.getpeername` (``None`` on error)"
msgstr ""
#: library/asyncio-protocol.rst:193
#: library/asyncio-protocol.rst:194
msgid "``'socket'``: :class:`socket.socket` instance"
msgstr "``'socket'`` : Instance de :class:`socket.socket`"
#: library/asyncio-protocol.rst:195
#: library/asyncio-protocol.rst:196
msgid ""
"``'sockname'``: the socket's own address, result of :meth:`socket.socket."
"getsockname`"
msgstr ""
#: library/asyncio-protocol.rst:198
#: library/asyncio-protocol.rst:199
msgid "SSL socket:"
msgstr "Connecteur (*socket* en anglais) SSL :"
#: library/asyncio-protocol.rst:200
#: library/asyncio-protocol.rst:201
msgid ""
"``'compression'``: the compression algorithm being used as a string, or "
"``None`` if the connection isn't compressed; result of :meth:`ssl.SSLSocket."
"compression`"
msgstr ""
#: library/asyncio-protocol.rst:204
#: library/asyncio-protocol.rst:205
msgid ""
"``'cipher'``: a three-value tuple containing the name of the cipher being "
"used, the version of the SSL protocol that defines its use, and the number "
"of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`"
msgstr ""
#: library/asyncio-protocol.rst:209
#: library/asyncio-protocol.rst:210
msgid ""
"``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`"
msgstr ""
#: library/asyncio-protocol.rst:212
#: library/asyncio-protocol.rst:213
msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance"
msgstr "``sslcontext'`` : Instance de :class:`ssl.SSLContext`"
#: library/asyncio-protocol.rst:214
#: library/asyncio-protocol.rst:215
msgid ""
"``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance"
msgstr ""
#: library/asyncio-protocol.rst:217
#: library/asyncio-protocol.rst:218
msgid "pipe:"
msgstr ""
#: library/asyncio-protocol.rst:219
#: library/asyncio-protocol.rst:220
msgid "``'pipe'``: pipe object"
msgstr "``'pipe'`` : objet *pipe*"
#: library/asyncio-protocol.rst:221
#: library/asyncio-protocol.rst:222
msgid "subprocess:"
msgstr "sous-processus :"
#: library/asyncio-protocol.rst:223
#: library/asyncio-protocol.rst:224
msgid "``'subprocess'``: :class:`subprocess.Popen` instance"
msgstr ""
#: library/asyncio-protocol.rst:227
#: library/asyncio-protocol.rst:228
msgid "Set a new protocol."
msgstr "Change le protocole."
#: library/asyncio-protocol.rst:229
#: library/asyncio-protocol.rst:230
msgid ""
"Switching protocol should only be done when both protocols are documented to "
"support the switch."
msgstr ""
#: library/asyncio-protocol.rst:234
#: library/asyncio-protocol.rst:235
msgid "Return the current protocol."
msgstr "Renvoie le protocole courant."
#: library/asyncio-protocol.rst:238
#: library/asyncio-protocol.rst:239
msgid "Read-only Transports"
msgstr "Transports en lecture seule"
#: library/asyncio-protocol.rst:242
#: library/asyncio-protocol.rst:243
msgid "Return ``True`` if the transport is receiving new data."
msgstr ""
#: library/asyncio-protocol.rst:248
#: library/asyncio-protocol.rst:249
msgid ""
"Pause the receiving end of the transport. No data will be passed to the "
"protocol's :meth:`protocol.data_received() <Protocol.data_received>` method "
"until :meth:`resume_reading` is called."
msgstr ""
#: library/asyncio-protocol.rst:252
#: library/asyncio-protocol.rst:253
msgid ""
"The method is idempotent, i.e. it can be called when the transport is "
"already paused or closed."
msgstr ""
#: library/asyncio-protocol.rst:258
#: library/asyncio-protocol.rst:259
msgid ""
"Resume the receiving end. The protocol's :meth:`protocol.data_received() "
"<Protocol.data_received>` method will be called once again if some data is "
"available for reading."
msgstr ""
#: library/asyncio-protocol.rst:262
#: library/asyncio-protocol.rst:263
msgid ""
"The method is idempotent, i.e. it can be called when the transport is "
"already reading."
msgstr ""
#: library/asyncio-protocol.rst:268
#: library/asyncio-protocol.rst:269
msgid "Write-only Transports"
msgstr "Transports en lecture/écriture"
#: library/asyncio-protocol.rst:272
#: library/asyncio-protocol.rst:273
msgid ""
"Close the transport immediately, without waiting for pending operations to "
"complete. Buffered data will be lost. No more data will be received. The "
@ -390,31 +390,31 @@ msgid ""
"method will eventually be called with :const:`None` as its argument."
msgstr ""
#: library/asyncio-protocol.rst:280
#: library/asyncio-protocol.rst:281
msgid ""
"Return :const:`True` if the transport supports :meth:`~WriteTransport."
"write_eof`, :const:`False` if not."
msgstr ""
#: library/asyncio-protocol.rst:285
#: library/asyncio-protocol.rst:286
msgid "Return the current size of the output buffer used by the transport."
msgstr ""
#: library/asyncio-protocol.rst:289
#: library/asyncio-protocol.rst:290
msgid ""
"Get the *high* and *low* watermarks for write flow control. Return a tuple "
"``(low, high)`` where *low* and *high* are positive number of bytes."
msgstr ""
#: library/asyncio-protocol.rst:293
#: library/asyncio-protocol.rst:294
msgid "Use :meth:`set_write_buffer_limits` to set the limits."
msgstr ""
#: library/asyncio-protocol.rst:299
#: library/asyncio-protocol.rst:300
msgid "Set the *high* and *low* watermarks for write flow control."
msgstr ""
#: library/asyncio-protocol.rst:301
#: library/asyncio-protocol.rst:302
msgid ""
"These two values (measured in number of bytes) control when the protocol's :"
"meth:`protocol.pause_writing() <BaseProtocol.pause_writing>` and :meth:"
@ -423,7 +423,7 @@ msgid ""
"high watermark. Neither *high* nor *low* can be negative."
msgstr ""
#: library/asyncio-protocol.rst:309
#: library/asyncio-protocol.rst:310
msgid ""
":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes "
"greater than or equal to the *high* value. If writing has been paused, :meth:"
@ -431,7 +431,7 @@ msgid ""
"than or equal to the *low* value."
msgstr ""
#: library/asyncio-protocol.rst:314
#: library/asyncio-protocol.rst:315
msgid ""
"The defaults are implementation-specific. If only the high watermark is "
"given, the low watermark defaults to an implementation-specific value less "
@ -443,51 +443,51 @@ msgid ""
"opportunities for doing I/O and computation concurrently."
msgstr ""
#: library/asyncio-protocol.rst:325
#: library/asyncio-protocol.rst:326
msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits."
msgstr ""
#: library/asyncio-protocol.rst:330
#: library/asyncio-protocol.rst:331
msgid "Write some *data* bytes to the transport."
msgstr "Écrit des octets de *data* sur le transport."
#: library/asyncio-protocol.rst:332 library/asyncio-protocol.rst:361
#: library/asyncio-protocol.rst:333 library/asyncio-protocol.rst:362
msgid ""
"This method does not block; it buffers the data and arranges for it to be "
"sent out asynchronously."
msgstr ""
#: library/asyncio-protocol.rst:337
#: library/asyncio-protocol.rst:338
msgid ""
"Write a list (or any iterable) of data bytes to the transport. This is "
"functionally equivalent to calling :meth:`write` on each element yielded by "
"the iterable, but may be implemented more efficiently."
msgstr ""
#: library/asyncio-protocol.rst:344
#: library/asyncio-protocol.rst:345
msgid ""
"Close the write end of the transport after flushing all buffered data. Data "
"may still be received."
msgstr ""
#: library/asyncio-protocol.rst:347
#: library/asyncio-protocol.rst:348
msgid ""
"This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) "
"doesn't support half-closed connections."
msgstr ""
#: library/asyncio-protocol.rst:352
#: library/asyncio-protocol.rst:353
msgid "Datagram Transports"
msgstr "Transports de datagrammes"
#: library/asyncio-protocol.rst:356
#: library/asyncio-protocol.rst:357
msgid ""
"Send the *data* bytes to the remote peer given by *addr* (a transport-"
"dependent target address). If *addr* is :const:`None`, the data is sent to "
"the target address given on transport creation."
msgstr ""
#: library/asyncio-protocol.rst:366
#: library/asyncio-protocol.rst:367
msgid ""
"Close the transport immediately, without waiting for pending operations to "
"complete. Buffered data will be lost. No more data will be received. The "
@ -495,110 +495,110 @@ msgid ""
"method will eventually be called with :const:`None` as its argument."
msgstr ""
#: library/asyncio-protocol.rst:376
#: library/asyncio-protocol.rst:377
msgid "Subprocess Transports"
msgstr "Transports vers des sous-processus"
#: library/asyncio-protocol.rst:380
#: library/asyncio-protocol.rst:381
msgid "Return the subprocess process id as an integer."
msgstr ""
"Donne l'identifiant du sous processus sous la forme d'un nombre entier."
#: library/asyncio-protocol.rst:384
#: library/asyncio-protocol.rst:385
msgid ""
"Return the transport for the communication pipe corresponding to the integer "
"file descriptor *fd*:"
msgstr ""
#: library/asyncio-protocol.rst:387
#: library/asyncio-protocol.rst:388
msgid ""
"``0``: readable streaming transport of the standard input (*stdin*), or :"
"const:`None` if the subprocess was not created with ``stdin=PIPE``"
msgstr ""
#: library/asyncio-protocol.rst:389
#: library/asyncio-protocol.rst:390
msgid ""
"``1``: writable streaming transport of the standard output (*stdout*), or :"
"const:`None` if the subprocess was not created with ``stdout=PIPE``"
msgstr ""
#: library/asyncio-protocol.rst:391
#: library/asyncio-protocol.rst:392
msgid ""
"``2``: writable streaming transport of the standard error (*stderr*), or :"
"const:`None` if the subprocess was not created with ``stderr=PIPE``"
msgstr ""
#: library/asyncio-protocol.rst:393
#: library/asyncio-protocol.rst:394
msgid "other *fd*: :const:`None`"
msgstr "autre *fd* : :const:`None`"
#: library/asyncio-protocol.rst:397
#: library/asyncio-protocol.rst:398
msgid ""
"Return the subprocess return code as an integer or :const:`None` if it "
"hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` "
"attribute."
msgstr ""
#: library/asyncio-protocol.rst:403
#: library/asyncio-protocol.rst:404
msgid "Kill the subprocess."
msgstr "Tue le sous-processus."
#: library/asyncio-protocol.rst:405
#: library/asyncio-protocol.rst:406
msgid ""
"On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, "
"this method is an alias for :meth:`terminate`."
msgstr ""
#: library/asyncio-protocol.rst:408
#: library/asyncio-protocol.rst:409
msgid "See also :meth:`subprocess.Popen.kill`."
msgstr ""
#: library/asyncio-protocol.rst:412
#: library/asyncio-protocol.rst:413
msgid ""
"Send the *signal* number to the subprocess, as in :meth:`subprocess.Popen."
"send_signal`."
msgstr ""
#: library/asyncio-protocol.rst:417
#: library/asyncio-protocol.rst:418
msgid "Stop the subprocess."
msgstr "Termine le sous-processus."
#: library/asyncio-protocol.rst:419
#: library/asyncio-protocol.rst:420
msgid ""
"On POSIX systems, this method sends SIGTERM to the subprocess. On Windows, "
"the Windows API function TerminateProcess() is called to stop the subprocess."
msgstr ""
#: library/asyncio-protocol.rst:423
#: library/asyncio-protocol.rst:424
msgid "See also :meth:`subprocess.Popen.terminate`."
msgstr ""
#: library/asyncio-protocol.rst:427
#: library/asyncio-protocol.rst:428
msgid "Kill the subprocess by calling the :meth:`kill` method."
msgstr ""
#: library/asyncio-protocol.rst:429
#: library/asyncio-protocol.rst:430
msgid ""
"If the subprocess hasn't returned yet, and close transports of *stdin*, "
"*stdout*, and *stderr* pipes."
msgstr ""
#: library/asyncio-protocol.rst:436
#: library/asyncio-protocol.rst:437
msgid "Protocols"
msgstr ""
#: library/asyncio-protocol.rst:438
#: library/asyncio-protocol.rst:439
msgid "**Source code:** :source:`Lib/asyncio/protocols.py`"
msgstr ""
#: library/asyncio-protocol.rst:442
#: library/asyncio-protocol.rst:443
msgid ""
"asyncio provides a set of abstract base classes that should be used to "
"implement network protocols. Those classes are meant to be used together "
"with :ref:`transports <asyncio-transport>`."
msgstr ""
#: library/asyncio-protocol.rst:446
#: library/asyncio-protocol.rst:447
msgid ""
"Subclasses of abstract base protocol classes may implement some or all "
"methods. All these methods are callbacks: they are called by transports on "
@ -606,118 +606,118 @@ msgid ""
"method should be called by the corresponding transport."
msgstr ""
#: library/asyncio-protocol.rst:453
#: library/asyncio-protocol.rst:454
msgid "Base Protocols"
msgstr "Protocoles de base"
#: library/asyncio-protocol.rst:457
#: library/asyncio-protocol.rst:458
msgid "Base protocol with methods that all protocols share."
msgstr ""
#: library/asyncio-protocol.rst:461
#: library/asyncio-protocol.rst:462
msgid ""
"The base class for implementing streaming protocols (TCP, Unix sockets, etc)."
msgstr ""
#: library/asyncio-protocol.rst:466
#: library/asyncio-protocol.rst:467
msgid ""
"A base class for implementing streaming protocols with manual control of the "
"receive buffer."
msgstr ""
#: library/asyncio-protocol.rst:471
#: library/asyncio-protocol.rst:472
msgid "The base class for implementing datagram (UDP) protocols."
msgstr ""
#: library/asyncio-protocol.rst:475
#: library/asyncio-protocol.rst:476
msgid ""
"The base class for implementing protocols communicating with child processes "
"(unidirectional pipes)."
msgstr ""
#: library/asyncio-protocol.rst:480
#: library/asyncio-protocol.rst:481
#, fuzzy
msgid "Base Protocol"
msgstr "Protocoles de base"
#: library/asyncio-protocol.rst:482
#: library/asyncio-protocol.rst:483
msgid "All asyncio protocols can implement Base Protocol callbacks."
msgstr ""
#: library/asyncio-protocol.rst:485
#: library/asyncio-protocol.rst:486
msgid "Connection Callbacks"
msgstr ""
#: library/asyncio-protocol.rst:486
#: library/asyncio-protocol.rst:487
msgid ""
"Connection callbacks are called on all protocols, exactly once per a "
"successful connection. All other protocol callbacks can only be called "
"between those two methods."
msgstr ""
#: library/asyncio-protocol.rst:492
#: library/asyncio-protocol.rst:493
msgid "Called when a connection is made."
msgstr "Appelé lorsqu'une connexion est établie."
#: library/asyncio-protocol.rst:494
#: library/asyncio-protocol.rst:495
msgid ""
"The *transport* argument is the transport representing the connection. The "
"protocol is responsible for storing the reference to its transport."
msgstr ""
#: library/asyncio-protocol.rst:500
#: library/asyncio-protocol.rst:501
msgid "Called when the connection is lost or closed."
msgstr "Appelé lorsqu'une connexion est perdue ou fermée."
#: library/asyncio-protocol.rst:502
#: library/asyncio-protocol.rst:503
msgid ""
"The argument is either an exception object or :const:`None`. The latter "
"means a regular EOF is received, or the connection was aborted or closed by "
"this side of the connection."
msgstr ""
#: library/asyncio-protocol.rst:508
#: library/asyncio-protocol.rst:509
msgid "Flow Control Callbacks"
msgstr ""
#: library/asyncio-protocol.rst:509
#: library/asyncio-protocol.rst:510
msgid ""
"Flow control callbacks can be called by transports to pause or resume "
"writing performed by the protocol."
msgstr ""
#: library/asyncio-protocol.rst:512
#: library/asyncio-protocol.rst:513
msgid ""
"See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` "
"method for more details."
msgstr ""
#: library/asyncio-protocol.rst:517
#: library/asyncio-protocol.rst:518
msgid "Called when the transport's buffer goes over the high watermark."
msgstr ""
#: library/asyncio-protocol.rst:521
#: library/asyncio-protocol.rst:522
msgid "Called when the transport's buffer drains below the low watermark."
msgstr ""
#: library/asyncio-protocol.rst:523
#: library/asyncio-protocol.rst:524
msgid ""
"If the buffer size equals the high watermark, :meth:`~BaseProtocol."
"pause_writing` is not called: the buffer size must go strictly over."
msgstr ""
#: library/asyncio-protocol.rst:527
#: library/asyncio-protocol.rst:528
msgid ""
"Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer "
"size is equal or lower than the low watermark. These end conditions are "
"important to ensure that things go as expected when either mark is zero."
msgstr ""
#: library/asyncio-protocol.rst:534
#: library/asyncio-protocol.rst:535
msgid "Streaming Protocols"
msgstr "Protocoles connectés"
#: library/asyncio-protocol.rst:536
#: library/asyncio-protocol.rst:537
msgid ""
"Event methods, such as :meth:`loop.create_server`, :meth:`loop."
"create_unix_server`, :meth:`loop.create_connection`, :meth:`loop."
@ -726,13 +726,13 @@ msgid ""
"that return streaming protocols."
msgstr ""
#: library/asyncio-protocol.rst:544
#: library/asyncio-protocol.rst:545
msgid ""
"Called when some data is received. *data* is a non-empty bytes object "
"containing the incoming data."
msgstr ""
#: library/asyncio-protocol.rst:547
#: library/asyncio-protocol.rst:548
msgid ""
"Whether the data is buffered, chunked or reassembled depends on the "
"transport. In general, you shouldn't rely on specific semantics and instead "
@ -740,27 +740,27 @@ msgid ""
"the correct order."
msgstr ""
#: library/asyncio-protocol.rst:552
#: library/asyncio-protocol.rst:553
msgid ""
"The method can be called an arbitrary number of times while a connection is "
"open."
msgstr ""
#: library/asyncio-protocol.rst:555
#: library/asyncio-protocol.rst:556
msgid ""
"However, :meth:`protocol.eof_received() <Protocol.eof_received>` is called "
"at most once. Once `eof_received()` is called, ``data_received()`` is not "
"at most once. Once ``eof_received()`` is called, ``data_received()`` is not "
"called anymore."
msgstr ""
#: library/asyncio-protocol.rst:561
#: library/asyncio-protocol.rst:562
msgid ""
"Called when the other end signals it won't send any more data (for example "
"by calling :meth:`transport.write_eof() <WriteTransport.write_eof>`, if the "
"other end also uses asyncio)."
msgstr ""
#: library/asyncio-protocol.rst:566
#: library/asyncio-protocol.rst:567
msgid ""
"This method may return a false value (including ``None``), in which case the "
"transport will close itself. Conversely, if this method returns a true "
@ -769,28 +769,28 @@ msgid ""
"connection."
msgstr ""
#: library/asyncio-protocol.rst:572
#: library/asyncio-protocol.rst:573
msgid ""
"Some transports, including SSL, don't support half-closed connections, in "
"which case returning true from this method will result in the connection "
"being closed."
msgstr ""
#: library/asyncio-protocol.rst:577 library/asyncio-protocol.rst:635
#: library/asyncio-protocol.rst:578 library/asyncio-protocol.rst:636
msgid "State machine:"
msgstr "Machine à états :"
#: library/asyncio-protocol.rst:588
#: library/asyncio-protocol.rst:589
msgid "Buffered Streaming Protocols"
msgstr ""
#: library/asyncio-protocol.rst:592
#: library/asyncio-protocol.rst:593
msgid ""
"Buffered Protocols can be used with any event loop method that supports "
"`Streaming Protocols`_."
msgstr ""
#: library/asyncio-protocol.rst:595
#: library/asyncio-protocol.rst:596
msgid ""
"``BufferedProtocol`` implementations allow explicit manual allocation and "
"control of the receive buffer. Event loops can then use the buffer provided "
@ -800,16 +800,16 @@ msgid ""
"number of buffer allocations."
msgstr ""
#: library/asyncio-protocol.rst:602
#: library/asyncio-protocol.rst:603
msgid ""
"The following callbacks are called on :class:`BufferedProtocol` instances:"
msgstr ""
#: library/asyncio-protocol.rst:607
#: library/asyncio-protocol.rst:608
msgid "Called to allocate a new receive buffer."
msgstr ""
#: library/asyncio-protocol.rst:609
#: library/asyncio-protocol.rst:610
msgid ""
"*sizehint* is the recommended minimum size for the returned buffer. It is "
"acceptable to return smaller or larger buffers than what *sizehint* "
@ -817,27 +817,27 @@ msgid ""
"to return a buffer with a zero size."
msgstr ""
#: library/asyncio-protocol.rst:614
#: library/asyncio-protocol.rst:615
msgid ""
"``get_buffer()`` must return an object implementing the :ref:`buffer "
"protocol <bufferobjects>`."
msgstr ""
#: library/asyncio-protocol.rst:619
#: library/asyncio-protocol.rst:620
msgid "Called when the buffer was updated with the received data."
msgstr ""
#: library/asyncio-protocol.rst:621
#: library/asyncio-protocol.rst:622
msgid "*nbytes* is the total number of bytes that were written to the buffer."
msgstr ""
#: library/asyncio-protocol.rst:625
#: library/asyncio-protocol.rst:626
msgid ""
"See the documentation of the :meth:`protocol.eof_received() <Protocol."
"eof_received>` method."
msgstr ""
#: library/asyncio-protocol.rst:629
#: library/asyncio-protocol.rst:630
msgid ""
":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of "
"times during a connection. However, :meth:`protocol.eof_received() "
@ -846,44 +846,44 @@ msgid ""
"won't be called after it."
msgstr ""
#: library/asyncio-protocol.rst:648
#: library/asyncio-protocol.rst:649
msgid "Datagram Protocols"
msgstr "Protocoles non-connectés"
#: library/asyncio-protocol.rst:650
#: library/asyncio-protocol.rst:651
msgid ""
"Datagram Protocol instances should be constructed by protocol factories "
"passed to the :meth:`loop.create_datagram_endpoint` method."
msgstr ""
#: library/asyncio-protocol.rst:655
#: library/asyncio-protocol.rst:656
msgid ""
"Called when a datagram is received. *data* is a bytes object containing the "
"incoming data. *addr* is the address of the peer sending the data; the "
"exact format depends on the transport."
msgstr ""
#: library/asyncio-protocol.rst:661
#: library/asyncio-protocol.rst:662
msgid ""
"Called when a previous send or receive operation raises an :class:"
"`OSError`. *exc* is the :class:`OSError` instance."
msgstr ""
#: library/asyncio-protocol.rst:664
#: library/asyncio-protocol.rst:665
msgid ""
"This method is called in rare conditions, when the transport (e.g. UDP) "
"detects that a datagram could not be delivered to its recipient. In many "
"conditions though, undeliverable datagrams will be silently dropped."
msgstr ""
#: library/asyncio-protocol.rst:671
#: library/asyncio-protocol.rst:672
msgid ""
"On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for "
"datagram protocols, because there is no reliable way to detect send failures "
"caused by writing too many packets."
msgstr ""
#: library/asyncio-protocol.rst:675
#: library/asyncio-protocol.rst:676
msgid ""
"The socket always appears 'ready' and excess packets are dropped. An :class:"
"`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may not be "
@ -891,142 +891,142 @@ msgid ""
"error_received` but otherwise ignored."
msgstr ""
#: library/asyncio-protocol.rst:684
#: library/asyncio-protocol.rst:685
msgid "Subprocess Protocols"
msgstr "Protocoles liés aux sous-processus"
#: library/asyncio-protocol.rst:686
#: library/asyncio-protocol.rst:687
msgid ""
"Subprocess Protocol instances should be constructed by protocol factories "
"passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` "
"methods."
msgstr ""
#: library/asyncio-protocol.rst:692
#: library/asyncio-protocol.rst:693
msgid ""
"Called when the child process writes data into its stdout or stderr pipe."
msgstr ""
"Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie "
"standard."
#: library/asyncio-protocol.rst:695
#: library/asyncio-protocol.rst:696
msgid "*fd* is the integer file descriptor of the pipe."
msgstr ""
#: library/asyncio-protocol.rst:697
#: library/asyncio-protocol.rst:698
msgid "*data* is a non-empty bytes object containing the received data."
msgstr ""
#: library/asyncio-protocol.rst:701
#: library/asyncio-protocol.rst:702
msgid ""
"Called when one of the pipes communicating with the child process is closed."
msgstr ""
"Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est "
"fermée."
#: library/asyncio-protocol.rst:704
#: library/asyncio-protocol.rst:705
msgid "*fd* is the integer file descriptor that was closed."
msgstr ""
#: library/asyncio-protocol.rst:708
#: library/asyncio-protocol.rst:709
msgid "Called when the child process has exited."
msgstr "Appelé lorsqu'un processus enfant se termine."
#: library/asyncio-protocol.rst:712
#: library/asyncio-protocol.rst:713
msgid "Examples"
msgstr "Exemples"
#: library/asyncio-protocol.rst:717
#: library/asyncio-protocol.rst:718
msgid "TCP Echo Server"
msgstr "Serveur de *ping* en TCP"
#: library/asyncio-protocol.rst:719
#: library/asyncio-protocol.rst:720
msgid ""
"Create a TCP echo server using the :meth:`loop.create_server` method, send "
"back received data, and close the connection::"
msgstr ""
#: library/asyncio-protocol.rst:760
#: library/asyncio-protocol.rst:761
msgid ""
"The :ref:`TCP echo server using streams <asyncio-tcp-echo-server-streams>` "
"example uses the high-level :func:`asyncio.start_server` function."
msgstr ""
#: library/asyncio-protocol.rst:766
#: library/asyncio-protocol.rst:767
msgid "TCP Echo Client"
msgstr "Client de *ping* en TCP"
#: library/asyncio-protocol.rst:768
#: library/asyncio-protocol.rst:769
msgid ""
"A TCP echo client using the :meth:`loop.create_connection` method, sends "
"data, and waits until the connection is closed::"
msgstr ""
#: library/asyncio-protocol.rst:816
#: library/asyncio-protocol.rst:817
msgid ""
"The :ref:`TCP echo client using streams <asyncio-tcp-echo-client-streams>` "
"example uses the high-level :func:`asyncio.open_connection` function."
msgstr ""
#: library/asyncio-protocol.rst:823
#: library/asyncio-protocol.rst:824
msgid "UDP Echo Server"
msgstr "Serveur de *ping* en UDP"
#: library/asyncio-protocol.rst:825
#: library/asyncio-protocol.rst:826
msgid ""
"A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, "
"sends back received data::"
msgstr ""
#: library/asyncio-protocol.rst:867
#: library/asyncio-protocol.rst:868
msgid "UDP Echo Client"
msgstr "Client de *ping* en UDP"
#: library/asyncio-protocol.rst:869
#: library/asyncio-protocol.rst:870
msgid ""
"A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, "
"sends data and closes the transport when it receives the answer::"
msgstr ""
#: library/asyncio-protocol.rst:924
#: library/asyncio-protocol.rst:925
msgid "Connecting Existing Sockets"
msgstr ""
#: library/asyncio-protocol.rst:926
#: library/asyncio-protocol.rst:927
msgid ""
"Wait until a socket receives data using the :meth:`loop.create_connection` "
"method with a protocol::"
msgstr ""
#: library/asyncio-protocol.rst:980
#: library/asyncio-protocol.rst:981
msgid ""
"The :ref:`watch a file descriptor for read events "
"<asyncio_example_watch_fd>` example uses the low-level :meth:`loop."
"add_reader` method to register an FD."
msgstr ""
#: library/asyncio-protocol.rst:984
#: library/asyncio-protocol.rst:985
msgid ""
"The :ref:`register an open socket to wait for data using streams "
"<asyncio_example_create_connection-streams>` example uses high-level streams "
"created by the :func:`open_connection` function in a coroutine."
msgstr ""
#: library/asyncio-protocol.rst:991
#: library/asyncio-protocol.rst:992
msgid "loop.subprocess_exec() and SubprocessProtocol"
msgstr ""
#: library/asyncio-protocol.rst:993
#: library/asyncio-protocol.rst:994
msgid ""
"An example of a subprocess protocol used to get the output of a subprocess "
"and to wait for the subprocess exit."
msgstr ""
#: library/asyncio-protocol.rst:996
#: library/asyncio-protocol.rst:997
msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::"
msgstr ""
#: library/asyncio-protocol.rst:1042
#: library/asyncio-protocol.rst:1043
msgid ""
"See also the :ref:`same example <asyncio_example_create_subprocess_exec>` "
"written using high-level APIs."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3.11\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-05-23 00:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -49,7 +49,7 @@ msgid ""
"event loop, *finalizing asynchronous generators*, and closing the threadpool."
msgstr ""
#: library/asyncio-runner.rst:101
#: library/asyncio-runner.rst:103
msgid ""
"This function cannot be called when another asyncio event loop is running in "
"the same thread."
@ -100,62 +100,64 @@ msgstr ""
#: library/asyncio-runner.rst:77
msgid ""
"*loop_factory* could be used for overriding the loop creation. :func:"
"`asyncio.new_event_loop` is used if ``None``."
"*loop_factory* could be used for overriding the loop creation. It is the "
"responsibility of the *loop_factory* to set the created loop as the current "
"one. By default :func:`asyncio.new_event_loop` is used and set as current "
"event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``."
msgstr ""
#: library/asyncio-runner.rst:80
#: library/asyncio-runner.rst:82
msgid ""
"Basically, :func:`asyncio.run()` example can be rewritten with the runner "
"usage::"
msgstr ""
#: library/asyncio-runner.rst:93
#: library/asyncio-runner.rst:95
msgid "Run a :term:`coroutine <coroutine>` *coro* in the embedded loop."
msgstr ""
#: library/asyncio-runner.rst:95
#: library/asyncio-runner.rst:97
msgid "Return the coroutine's result or raise its exception."
msgstr ""
#: library/asyncio-runner.rst:97
#: library/asyncio-runner.rst:99
msgid ""
"An optional keyword-only *context* argument allows specifying a custom :"
"class:`contextvars.Context` for the *coro* to run in. The runner's default "
"context is used if ``None``."
msgstr ""
#: library/asyncio-runner.rst:106
#: library/asyncio-runner.rst:108
msgid "Close the runner."
msgstr ""
#: library/asyncio-runner.rst:108
#: library/asyncio-runner.rst:110
msgid ""
"Finalize asynchronous generators, shutdown default executor, close the event "
"loop and release embedded :class:`contextvars.Context`."
msgstr ""
#: library/asyncio-runner.rst:113
#: library/asyncio-runner.rst:115
msgid "Return the event loop associated with the runner instance."
msgstr ""
#: library/asyncio-runner.rst:117
#: library/asyncio-runner.rst:119
msgid ""
":class:`Runner` uses the lazy initialization strategy, its constructor "
"doesn't initialize underlying low-level structures."
msgstr ""
#: library/asyncio-runner.rst:120
#: library/asyncio-runner.rst:122
msgid ""
"Embedded *loop* and *context* are created at the :keyword:`with` body "
"entering or the first call of :meth:`run` or :meth:`get_loop`."
msgstr ""
#: library/asyncio-runner.rst:125
#: library/asyncio-runner.rst:127
msgid "Handling Keyboard Interruption"
msgstr ""
#: library/asyncio-runner.rst:129
#: library/asyncio-runner.rst:131
msgid ""
"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, :exc:"
"`KeyboardInterrupt` exception is raised in the main thread by default. "
@ -163,26 +165,26 @@ msgid ""
"asyncio internals and can hang the program from exiting."
msgstr ""
#: library/asyncio-runner.rst:134
#: library/asyncio-runner.rst:136
msgid ""
"To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as "
"follows:"
msgstr ""
#: library/asyncio-runner.rst:136
#: library/asyncio-runner.rst:138
msgid ""
":meth:`asyncio.Runner.run` installs a custom :const:`signal.SIGINT` handler "
"before any user code is executed and removes it when exiting from the "
"function."
msgstr ""
#: library/asyncio-runner.rst:138
#: library/asyncio-runner.rst:140
msgid ""
"The :class:`~asyncio.Runner` creates the main task for the passed coroutine "
"for its execution."
msgstr ""
#: library/asyncio-runner.rst:140
#: library/asyncio-runner.rst:142
msgid ""
"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, the custom signal "
"handler cancels the main task by calling :meth:`asyncio.Task.cancel` which "
@ -192,7 +194,7 @@ msgid ""
"Runner.run` raises :exc:`KeyboardInterrupt`."
msgstr ""
#: library/asyncio-runner.rst:146
#: library/asyncio-runner.rst:148
msgid ""
"A user could write a tight loop which cannot be interrupted by :meth:"
"`asyncio.Task.cancel`, in which case the second following :kbd:`Ctrl-C` "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2019-09-06 13:48+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -48,47 +48,58 @@ msgid ""
"with streams:"
msgstr ""
#: library/asyncio-stream.rst:57
#: library/asyncio-stream.rst:58
msgid ""
"Establish a network connection and return a pair of ``(reader, writer)`` "
"objects."
msgstr ""
#: library/asyncio-stream.rst:60
#: library/asyncio-stream.rst:61
msgid ""
"The returned *reader* and *writer* objects are instances of :class:"
"`StreamReader` and :class:`StreamWriter` classes."
msgstr ""
#: library/asyncio-stream.rst:99
#: library/asyncio-stream.rst:109
msgid ""
"*limit* determines the buffer size limit used by the returned :class:"
"`StreamReader` instance. By default the *limit* is set to 64 KiB."
msgstr ""
#: library/asyncio-stream.rst:67
#: library/asyncio-stream.rst:68
msgid ""
"The rest of the arguments are passed directly to :meth:`loop."
"create_connection`."
msgstr ""
#: library/asyncio-stream.rst:70
#: library/asyncio-stream.rst:147
msgid ""
"The *sock* argument transfers ownership of the socket to the :class:"
"`StreamWriter` created. To close the socket, call its :meth:`~asyncio."
"StreamWriter.close` method."
msgstr ""
#: library/asyncio-stream.rst:77
msgid "Added the *ssl_handshake_timeout* parameter."
msgstr ""
#: library/asyncio-stream.rst:73
#: library/asyncio-stream.rst:80
msgid "Added *happy_eyeballs_delay* and *interleave* parameters."
msgstr ""
#: library/asyncio-stream.rst:109 library/asyncio-stream.rst:152
#: library/asyncio-stream.rst:125 library/asyncio-stream.rst:187
msgid "Removed the *loop* parameter."
msgstr ""
#: library/asyncio-stream.rst:88
#: library/asyncio-stream.rst:128 library/asyncio-stream.rst:190
msgid "Added the *ssl_shutdown_timeout* parameter."
msgstr ""
#: library/asyncio-stream.rst:98
msgid "Start a socket server."
msgstr ""
#: library/asyncio-stream.rst:90
#: library/asyncio-stream.rst:100
msgid ""
"The *client_connected_cb* callback is called whenever a new client "
"connection is established. It receives a ``(reader, writer)`` pair as two "
@ -96,141 +107,148 @@ msgid ""
"classes."
msgstr ""
#: library/asyncio-stream.rst:95
#: library/asyncio-stream.rst:105
msgid ""
"*client_connected_cb* can be a plain callable or a :ref:`coroutine function "
"<coroutine>`; if it is a coroutine function, it will be automatically "
"scheduled as a :class:`Task`."
msgstr ""
#: library/asyncio-stream.rst:103
#: library/asyncio-stream.rst:113
msgid ""
"The rest of the arguments are passed directly to :meth:`loop.create_server`."
msgstr ""
#: library/asyncio-stream.rst:106
#: library/asyncio-stream.rst:177
msgid ""
"The *sock* argument transfers ownership of the socket to the server created. "
"To close the socket, call the server's :meth:`~asyncio.Server.close` method."
msgstr ""
#: library/asyncio-stream.rst:122
msgid "Added the *ssl_handshake_timeout* and *start_serving* parameters."
msgstr ""
#: library/asyncio-stream.rst:114
#: library/asyncio-stream.rst:133
msgid "Unix Sockets"
msgstr ""
#: library/asyncio-stream.rst:119
#: library/asyncio-stream.rst:138
msgid ""
"Establish a Unix socket connection and return a pair of ``(reader, writer)``."
msgstr ""
#: library/asyncio-stream.rst:122
#: library/asyncio-stream.rst:141
msgid "Similar to :func:`open_connection` but operates on Unix sockets."
msgstr ""
#: library/asyncio-stream.rst:124
#: library/asyncio-stream.rst:143
msgid "See also the documentation of :meth:`loop.create_unix_connection`."
msgstr ""
#: library/asyncio-stream.rst:147
msgid ":ref:`Availability <availability>`: Unix."
msgstr ":ref:`Disponibilité <availability>` : Unix."
#: library/asyncio-stream.rst:128
#: library/asyncio-stream.rst:153
msgid ""
"Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be "
"a :term:`path-like object`"
msgstr ""
#: library/asyncio-stream.rst:140
#: library/asyncio-stream.rst:169
msgid "Start a Unix socket server."
msgstr ""
#: library/asyncio-stream.rst:142
#: library/asyncio-stream.rst:171
msgid "Similar to :func:`start_server` but works with Unix sockets."
msgstr ""
#: library/asyncio-stream.rst:144
#: library/asyncio-stream.rst:173
msgid "See also the documentation of :meth:`loop.create_unix_server`."
msgstr ""
#: library/asyncio-stream.rst:148
#: library/asyncio-stream.rst:182
msgid ":ref:`Availability <availability>`: Unix."
msgstr ":ref:`Disponibilité <availability>` : Unix."
#: library/asyncio-stream.rst:183
msgid ""
"Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* "
"parameter can now be a :term:`path-like object`."
msgstr ""
#: library/asyncio-stream.rst:157
#: library/asyncio-stream.rst:195
msgid "StreamReader"
msgstr "StreamReader"
#: library/asyncio-stream.rst:161
#: library/asyncio-stream.rst:199
msgid ""
"Represents a reader object that provides APIs to read data from the IO "
"stream."
"stream. As an :term:`asynchronous iterable`, the object supports the :"
"keyword:`async for` statement."
msgstr ""
#: library/asyncio-stream.rst:164
#: library/asyncio-stream.rst:203
msgid ""
"It is not recommended to instantiate *StreamReader* objects directly; use :"
"func:`open_connection` and :func:`start_server` instead."
msgstr ""
#: library/asyncio-stream.rst:170
#: library/asyncio-stream.rst:209
msgid ""
"Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read until "
"EOF and return all read bytes."
msgstr ""
#: library/asyncio-stream.rst:173
#: library/asyncio-stream.rst:212
msgid ""
"If EOF was received and the internal buffer is empty, return an empty "
"``bytes`` object."
msgstr ""
#: library/asyncio-stream.rst:178
#: library/asyncio-stream.rst:217
msgid ""
"Read one line, where \"line\" is a sequence of bytes ending with ``\\n``."
msgstr ""
#: library/asyncio-stream.rst:181
#: library/asyncio-stream.rst:220
msgid ""
"If EOF is received and ``\\n`` was not found, the method returns partially "
"read data."
msgstr ""
#: library/asyncio-stream.rst:184
#: library/asyncio-stream.rst:223
msgid ""
"If EOF is received and the internal buffer is empty, return an empty "
"``bytes`` object."
msgstr ""
#: library/asyncio-stream.rst:189
#: library/asyncio-stream.rst:228
msgid "Read exactly *n* bytes."
msgstr ""
#: library/asyncio-stream.rst:191
#: library/asyncio-stream.rst:230
msgid ""
"Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be "
"read. Use the :attr:`IncompleteReadError.partial` attribute to get the "
"partially read data."
msgstr ""
#: library/asyncio-stream.rst:197
#: library/asyncio-stream.rst:236
msgid "Read data from the stream until *separator* is found."
msgstr ""
#: library/asyncio-stream.rst:199
#: library/asyncio-stream.rst:238
msgid ""
"On success, the data and separator will be removed from the internal buffer "
"(consumed). Returned data will include the separator at the end."
msgstr ""
#: library/asyncio-stream.rst:203
#: library/asyncio-stream.rst:242
msgid ""
"If the amount of data read exceeds the configured stream limit, a :exc:"
"`LimitOverrunError` exception is raised, and the data is left in the "
"internal buffer and can be read again."
msgstr ""
#: library/asyncio-stream.rst:207
#: library/asyncio-stream.rst:246
msgid ""
"If EOF is reached before the complete separator is found, an :exc:"
"`IncompleteReadError` exception is raised, and the internal buffer is "
@ -238,77 +256,77 @@ msgid ""
"portion of the separator."
msgstr ""
#: library/asyncio-stream.rst:216
#: library/asyncio-stream.rst:255
msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called."
msgstr ""
#: library/asyncio-stream.rst:221
#: library/asyncio-stream.rst:260
msgid "StreamWriter"
msgstr "StreamWriter"
#: library/asyncio-stream.rst:225
#: library/asyncio-stream.rst:264
msgid ""
"Represents a writer object that provides APIs to write data to the IO stream."
msgstr ""
#: library/asyncio-stream.rst:228
#: library/asyncio-stream.rst:267
msgid ""
"It is not recommended to instantiate *StreamWriter* objects directly; use :"
"func:`open_connection` and :func:`start_server` instead."
msgstr ""
#: library/asyncio-stream.rst:234
#: library/asyncio-stream.rst:273
msgid ""
"The method attempts to write the *data* to the underlying socket "
"immediately. If that fails, the data is queued in an internal write buffer "
"until it can be sent."
msgstr ""
#: library/asyncio-stream.rst:250
#: library/asyncio-stream.rst:289
msgid "The method should be used along with the ``drain()`` method::"
msgstr ""
#: library/asyncio-stream.rst:245
#: library/asyncio-stream.rst:284
msgid ""
"The method writes a list (or any iterable) of bytes to the underlying socket "
"immediately. If that fails, the data is queued in an internal write buffer "
"until it can be sent."
msgstr ""
#: library/asyncio-stream.rst:257
#: library/asyncio-stream.rst:296
msgid "The method closes the stream and the underlying socket."
msgstr ""
#: library/asyncio-stream.rst:259
#: library/asyncio-stream.rst:298
msgid "The method should be used along with the ``wait_closed()`` method::"
msgstr ""
#: library/asyncio-stream.rst:266
#: library/asyncio-stream.rst:305
msgid ""
"Return ``True`` if the underlying transport supports the :meth:`write_eof` "
"method, ``False`` otherwise."
msgstr ""
#: library/asyncio-stream.rst:271
#: library/asyncio-stream.rst:310
msgid ""
"Close the write end of the stream after the buffered write data is flushed."
msgstr ""
#: library/asyncio-stream.rst:276
#: library/asyncio-stream.rst:315
msgid "Return the underlying asyncio transport."
msgstr ""
#: library/asyncio-stream.rst:280
#: library/asyncio-stream.rst:319
msgid ""
"Access optional transport information; see :meth:`BaseTransport."
"get_extra_info` for details."
msgstr ""
#: library/asyncio-stream.rst:285
#: library/asyncio-stream.rst:324
msgid "Wait until it is appropriate to resume writing to the stream. Example::"
msgstr ""
#: library/asyncio-stream.rst:291
#: library/asyncio-stream.rst:330
msgid ""
"This is a flow control method that interacts with the underlying IO write "
"buffer. When the size of the buffer reaches the high watermark, *drain()* "
@ -317,115 +335,115 @@ msgid ""
"`drain` returns immediately."
msgstr ""
#: library/asyncio-stream.rst:301
#: library/asyncio-stream.rst:340
msgid "Upgrade an existing stream-based connection to TLS."
msgstr ""
#: library/asyncio-stream.rst:303
#: library/asyncio-stream.rst:342
msgid "Parameters:"
msgstr ""
#: library/asyncio-stream.rst:305
#: library/asyncio-stream.rst:344
msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`."
msgstr ""
#: library/asyncio-stream.rst:307
#: library/asyncio-stream.rst:346
msgid ""
"*server_hostname*: sets or overrides the host name that the target server's "
"certificate will be matched against."
msgstr ""
#: library/asyncio-stream.rst:310
#: library/asyncio-stream.rst:349
msgid ""
"*ssl_handshake_timeout* is the time in seconds to wait for the TLS handshake "
"to complete before aborting the connection. ``60.0`` seconds if ``None`` "
"(default)."
msgstr ""
#: library/asyncio-stream.rst:318
#: library/asyncio-stream.rst:357
msgid ""
"Return ``True`` if the stream is closed or in the process of being closed."
msgstr ""
#: library/asyncio-stream.rst:325
#: library/asyncio-stream.rst:364
msgid "Wait until the stream is closed."
msgstr ""
#: library/asyncio-stream.rst:327
#: library/asyncio-stream.rst:366
msgid ""
"Should be called after :meth:`close` to wait until the underlying connection "
"is closed."
msgstr ""
#: library/asyncio-stream.rst:334
#: library/asyncio-stream.rst:373
msgid "Examples"
msgstr "Exemples"
#: library/asyncio-stream.rst:339
#: library/asyncio-stream.rst:378
msgid "TCP echo client using streams"
msgstr ""
#: library/asyncio-stream.rst:341
#: library/asyncio-stream.rst:380
msgid "TCP echo client using the :func:`asyncio.open_connection` function::"
msgstr ""
#: library/asyncio-stream.rst:364
#: library/asyncio-stream.rst:403
msgid ""
"The :ref:`TCP echo client protocol "
"<asyncio_example_tcp_echo_client_protocol>` example uses the low-level :meth:"
"`loop.create_connection` method."
msgstr ""
#: library/asyncio-stream.rst:371
#: library/asyncio-stream.rst:410
msgid "TCP echo server using streams"
msgstr ""
#: library/asyncio-stream.rst:373
#: library/asyncio-stream.rst:412
msgid "TCP echo server using the :func:`asyncio.start_server` function::"
msgstr ""
#: library/asyncio-stream.rst:406
#: library/asyncio-stream.rst:445
msgid ""
"The :ref:`TCP echo server protocol "
"<asyncio_example_tcp_echo_server_protocol>` example uses the :meth:`loop."
"create_server` method."
msgstr ""
#: library/asyncio-stream.rst:411
#: library/asyncio-stream.rst:450
msgid "Get HTTP headers"
msgstr "Récupère les en-têtes HTTP"
#: library/asyncio-stream.rst:413
#: library/asyncio-stream.rst:452
msgid ""
"Simple example querying HTTP headers of the URL passed on the command line::"
msgstr ""
#: library/asyncio-stream.rst:451
#: library/asyncio-stream.rst:490
msgid "Usage::"
msgstr "Utilisation ::"
#: library/asyncio-stream.rst:455
#: library/asyncio-stream.rst:494
msgid "or with HTTPS::"
msgstr "ou avec HTTPS ::"
#: library/asyncio-stream.rst:463
#: library/asyncio-stream.rst:502
msgid "Register an open socket to wait for data using streams"
msgstr ""
#: library/asyncio-stream.rst:465
#: library/asyncio-stream.rst:504
msgid ""
"Coroutine waiting until a socket receives data using the :func:"
"`open_connection` function::"
msgstr ""
#: library/asyncio-stream.rst:499
#: library/asyncio-stream.rst:538
msgid ""
"The :ref:`register an open socket to wait for data using a protocol "
"<asyncio_example_create_connection>` example uses a low-level protocol and "
"the :meth:`loop.create_connection` method."
msgstr ""
#: library/asyncio-stream.rst:503
#: library/asyncio-stream.rst:542
msgid ""
"The :ref:`watch a file descriptor for read events "
"<asyncio_example_watch_fd>` example uses the low-level :meth:`loop."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-15 00:37+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -187,7 +187,7 @@ msgstr ""
msgid ""
"the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio."
"subprocess.Process.wait` methods don't have a *timeout* parameter: use the :"
"func:`wait_for` function;"
"func:`~asyncio.wait_for` function;"
msgstr ""
#: library/asyncio-subprocess.rst:180

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-10-15 00:46+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -443,7 +443,7 @@ msgstr ""
msgid ""
"Put the barrier into a broken state. This causes any active or future calls "
"to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for "
"example if one of the taks needs to abort, to avoid infinite waiting tasks."
"example if one of the tasks needs to abort, to avoid infinite waiting tasks."
msgstr ""
#: library/asyncio-sync.rst:437

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-05-24 21:49-0400\n"
"Last-Translator: Antoine Wecxsteen\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -15,15 +15,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.3\n"
#: library/asyncio.rst:65
#: library/asyncio.rst:66
msgid "High-level APIs"
msgstr "Bibliothèques de haut-niveau"
#: library/asyncio.rst:77
#: library/asyncio.rst:78
msgid "Low-level APIs"
msgstr "Bibliothèques de bas-niveau"
#: library/asyncio.rst:88
#: library/asyncio.rst:89
msgid "Guides and Tutorials"
msgstr "Guides et tutoriels"
@ -131,11 +131,22 @@ msgstr ""
":ref:`lier <asyncio-futures>` des bibliothèques basées sur les fonctions de "
"rappel et développer avec la syntaxe *async*/*await*."
#: library/asyncio.rst:64
#: includes/wasm-notavail.rst:None
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/asyncio.rst:65
msgid "Reference"
msgstr "Sommaire"
#: library/asyncio.rst:97
#: library/asyncio.rst:98
msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`."
msgstr ""
"Le code source d'``asyncio`` est disponible dans :source:`Lib/asyncio/`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2018-07-27 23:21+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -42,7 +42,19 @@ msgid ""
"socket service clients and servers."
msgstr ""
#: library/asyncore.rst:31
#: includes/wasm-notavail.rst:None
#, fuzzy
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ":ref:`Disponibilité <availability>` : Unix."
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/asyncore.rst:33
msgid ""
"There are only two ways to have a program on a single processor do \"more "
"than one thing at a time.\" Multi-threaded programming is the simplest and "
@ -54,7 +66,7 @@ msgid ""
"servers are rarely processor bound, however."
msgstr ""
#: library/asyncore.rst:40
#: library/asyncore.rst:42
msgid ""
"If your operating system supports the :c:func:`select` system call in its I/"
"O library (and nearly all do), then you can use it to juggle multiple "
@ -68,7 +80,7 @@ msgid ""
"module is invaluable."
msgstr ""
#: library/asyncore.rst:51
#: library/asyncore.rst:53
msgid ""
"The basic idea behind both modules is to create one or more network "
"*channels*, instances of class :class:`asyncore.dispatcher` and :class:"
@ -77,7 +89,7 @@ msgid ""
"*map*."
msgstr ""
#: library/asyncore.rst:57
#: library/asyncore.rst:59
msgid ""
"Once the initial channel(s) is(are) created, calling the :func:`loop` "
"function activates channel service, which continues until the last channel "
@ -85,7 +97,7 @@ msgid ""
"is closed."
msgstr ""
#: library/asyncore.rst:64
#: library/asyncore.rst:66
msgid ""
"Enter a polling loop that terminates after count passes or all open channels "
"have been closed. All arguments are optional. The *count* parameter "
@ -97,7 +109,7 @@ msgid ""
"preference to :func:`~select.select` (the default is ``False``)."
msgstr ""
#: library/asyncore.rst:73
#: library/asyncore.rst:75
msgid ""
"The *map* parameter is a dictionary whose items are the channels to watch. "
"As channels are closed they are deleted from their map. If *map* is "
@ -106,7 +118,7 @@ msgid ""
"be mixed in the map."
msgstr ""
#: library/asyncore.rst:82
#: library/asyncore.rst:84
msgid ""
"The :class:`dispatcher` class is a thin wrapper around a low-level socket "
"object. To make it more useful, it has a few methods for event-handling "
@ -114,7 +126,7 @@ msgid ""
"as a normal non-blocking socket object."
msgstr ""
#: library/asyncore.rst:87
#: library/asyncore.rst:89
msgid ""
"The firing of low-level events at certain times or in certain connection "
"states tells the asynchronous loop that certain higher-level events have "
@ -125,39 +137,39 @@ msgid ""
"events are:"
msgstr ""
#: library/asyncore.rst:96
#: library/asyncore.rst:98
msgid "Event"
msgstr ""
#: library/asyncore.rst:96
#: library/asyncore.rst:98
msgid "Description"
msgstr "Description"
#: library/asyncore.rst:98
#: library/asyncore.rst:100
msgid "``handle_connect()``"
msgstr "``handle_connect()``"
#: library/asyncore.rst:98
#: library/asyncore.rst:100
msgid "Implied by the first read or write event"
msgstr ""
#: library/asyncore.rst:101
#: library/asyncore.rst:103
msgid "``handle_close()``"
msgstr "``handle_close()``"
#: library/asyncore.rst:101
#: library/asyncore.rst:103
msgid "Implied by a read event with no data available"
msgstr ""
#: library/asyncore.rst:104
#: library/asyncore.rst:106
msgid "``handle_accepted()``"
msgstr "``handle_accepted()``"
#: library/asyncore.rst:104
#: library/asyncore.rst:106
msgid "Implied by a read event on a listening socket"
msgstr ""
#: library/asyncore.rst:108
#: library/asyncore.rst:110
msgid ""
"During asynchronous processing, each mapped channel's :meth:`readable` and :"
"meth:`writable` methods are used to determine whether the channel's socket "
@ -165,49 +177,49 @@ msgid ""
"`poll`\\ ed for read and write events."
msgstr ""
#: library/asyncore.rst:113
#: library/asyncore.rst:115
msgid ""
"Thus, the set of channel events is larger than the basic socket events. The "
"full set of methods that can be overridden in your subclass follows:"
msgstr ""
#: library/asyncore.rst:119
#: library/asyncore.rst:121
msgid ""
"Called when the asynchronous loop detects that a :meth:`read` call on the "
"channel's socket will succeed."
msgstr ""
#: library/asyncore.rst:125
#: library/asyncore.rst:127
msgid ""
"Called when the asynchronous loop detects that a writable socket can be "
"written. Often this method will implement the necessary buffering for "
"performance. For example::"
msgstr ""
#: library/asyncore.rst:136
#: library/asyncore.rst:138
msgid ""
"Called when there is out of band (OOB) data for a socket connection. This "
"will almost never happen, as OOB is tenuously supported and rarely used."
msgstr ""
#: library/asyncore.rst:142
#: library/asyncore.rst:144
msgid ""
"Called when the active opener's socket actually makes a connection. Might "
"send a \"welcome\" banner, or initiate a protocol negotiation with the "
"remote endpoint, for example."
msgstr ""
#: library/asyncore.rst:149
#: library/asyncore.rst:151
msgid "Called when the socket is closed."
msgstr "Appelé lorsque la socket est fermée."
#: library/asyncore.rst:154
#: library/asyncore.rst:156
msgid ""
"Called when an exception is raised and not otherwise handled. The default "
"version prints a condensed traceback."
msgstr ""
#: library/asyncore.rst:160
#: library/asyncore.rst:162
msgid ""
"Called on listening channels (passive openers) when a connection can be "
"established with a new remote endpoint that has issued a :meth:`connect` "
@ -215,7 +227,7 @@ msgid ""
"`handle_accepted` instead."
msgstr ""
#: library/asyncore.rst:170
#: library/asyncore.rst:172
msgid ""
"Called on listening channels (passive openers) when a connection has been "
"established with a new remote endpoint that has issued a :meth:`connect` "
@ -224,7 +236,7 @@ msgid ""
"socket on the other end of the connection."
msgstr ""
#: library/asyncore.rst:181
#: library/asyncore.rst:183
msgid ""
"Called each time around the asynchronous loop to determine whether a "
"channel's socket should be added to the list on which read events can "
@ -232,7 +244,7 @@ msgid ""
"default, all channels will be interested in read events."
msgstr ""
#: library/asyncore.rst:189
#: library/asyncore.rst:191
msgid ""
"Called each time around the asynchronous loop to determine whether a "
"channel's socket should be added to the list on which write events can "
@ -240,55 +252,55 @@ msgid ""
"default, all channels will be interested in write events."
msgstr ""
#: library/asyncore.rst:195
#: library/asyncore.rst:197
msgid ""
"In addition, each channel delegates or extends many of the socket methods. "
"Most of these are nearly identical to their socket partners."
msgstr ""
#: library/asyncore.rst:201
#: library/asyncore.rst:203
msgid ""
"This is identical to the creation of a normal socket, and will use the same "
"options for creation. Refer to the :mod:`socket` documentation for "
"information on creating sockets."
msgstr ""
#: library/asyncore.rst:205
#: library/asyncore.rst:207
msgid "*family* and *type* arguments can be omitted."
msgstr "Les arguments *family* et *type* sont optionnels."
#: library/asyncore.rst:211
#: library/asyncore.rst:213
msgid ""
"As with the normal socket object, *address* is a tuple with the first "
"element the host to connect to, and the second the port number."
msgstr ""
#: library/asyncore.rst:217
#: library/asyncore.rst:219
msgid "Send *data* to the remote end-point of the socket."
msgstr "Envoie *data* à l'autre bout de la socket."
#: library/asyncore.rst:222
#: library/asyncore.rst:224
msgid ""
"Read at most *buffer_size* bytes from the socket's remote end-point. An "
"empty bytes object implies that the channel has been closed from the other "
"end."
msgstr ""
#: library/asyncore.rst:226
#: library/asyncore.rst:228
msgid ""
"Note that :meth:`recv` may raise :exc:`BlockingIOError` , even though :func:"
"`select.select` or :func:`select.poll` has reported the socket ready for "
"reading."
msgstr ""
#: library/asyncore.rst:233
#: library/asyncore.rst:235
msgid ""
"Listen for connections made to the socket. The *backlog* argument specifies "
"the maximum number of queued connections and should be at least 1; the "
"maximum value is system-dependent (usually 5)."
msgstr ""
#: library/asyncore.rst:240
#: library/asyncore.rst:242
msgid ""
"Bind the socket to *address*. The socket must not already be bound. (The "
"format of *address* depends on the address family --- refer to the :mod:"
@ -297,7 +309,7 @@ msgid ""
"`dispatcher` object's :meth:`set_reuse_addr` method."
msgstr ""
#: library/asyncore.rst:249
#: library/asyncore.rst:251
msgid ""
"Accept a connection. The socket must be bound to an address and listening "
"for connections. The return value can be either ``None`` or a pair ``(conn, "
@ -308,21 +320,21 @@ msgid ""
"this event and keep listening for further incoming connections."
msgstr ""
#: library/asyncore.rst:261
#: library/asyncore.rst:263
msgid ""
"Close the socket. All future operations on the socket object will fail. The "
"remote end-point will receive no more data (after queued data is flushed). "
"Sockets are automatically closed when they are garbage-collected."
msgstr ""
#: library/asyncore.rst:269
#: library/asyncore.rst:271
msgid ""
"A :class:`dispatcher` subclass which adds simple buffered output capability, "
"useful for simple clients. For more sophisticated usage use :class:`asynchat."
"async_chat`."
msgstr ""
#: library/asyncore.rst:275
#: library/asyncore.rst:277
msgid ""
"A file_dispatcher takes a file descriptor or :term:`file object` along with "
"an optional map argument and wraps it for use with the :c:func:`poll` or :c:"
@ -331,11 +343,11 @@ msgid ""
"`file_wrapper` constructor."
msgstr ""
#: library/asyncore.rst:290
#: library/asyncore.rst:292
msgid ":ref:`Availability <availability>`: Unix."
msgstr ":ref:`Disponibilité <availability>` : Unix."
#: library/asyncore.rst:285
#: library/asyncore.rst:287
msgid ""
"A file_wrapper takes an integer file descriptor and calls :func:`os.dup` to "
"duplicate the handle so that the original handle may be closed independently "
@ -343,21 +355,21 @@ msgid ""
"socket for use by the :class:`file_dispatcher` class."
msgstr ""
#: library/asyncore.rst:296
#: library/asyncore.rst:298
msgid "asyncore Example basic HTTP client"
msgstr "Exemple de client HTTP basique avec :mod:`asyncore`"
#: library/asyncore.rst:298
#: library/asyncore.rst:300
msgid ""
"Here is a very basic HTTP client that uses the :class:`dispatcher` class to "
"implement its socket handling::"
msgstr ""
#: library/asyncore.rst:335
#: library/asyncore.rst:337
msgid "asyncore Example basic echo server"
msgstr "Serveur *echo* basique avec :mod:`asyncore`"
#: library/asyncore.rst:337
#: library/asyncore.rst:339
msgid ""
"Here is a basic echo server that uses the :class:`dispatcher` class to "
"accept connections and dispatches the incoming connections to a handler::"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 15:43+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -117,12 +117,13 @@ msgstr ""
"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés."
#: library/base64.rst:56
#, fuzzy
msgid ""
"Optional *altchars* must be a :term:`bytes-like object` of at least length 2 "
"(additional characters are ignored) which specifies an alternative alphabet "
"for the ``+`` and ``/`` characters. This allows an application to e.g. "
"generate URL or filesystem safe Base64 strings. The default is ``None``, "
"for which the standard Base64 alphabet is used."
"Optional *altchars* must be a :term:`bytes-like object` of length 2 which "
"specifies an alternative alphabet for the ``+`` and ``/`` characters. This "
"allows an application to e.g. generate URL or filesystem safe Base64 "
"strings. The default is ``None``, for which the standard Base64 alphabet is "
"used."
msgstr ""
"L'option *altchars* doit être un :term:`bytes-like object` de longueur au "
"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet "
@ -131,7 +132,14 @@ msgstr ""
"système de fichiers. La valeur par défaut est ``None``, auquel cas "
"l'alphabet standard base64 est utilisé."
#: library/base64.rst:65
#: library/base64.rst:61
msgid ""
"May assert or raise a a :exc:`ValueError` if the length of *altchars* is not "
"2. Raises a :exc:`TypeError` if *altchars* is not a :term:`bytes-like "
"object`."
msgstr ""
#: library/base64.rst:67
msgid ""
"Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and "
"return the decoded :class:`bytes`."
@ -140,24 +148,25 @@ msgstr ""
"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` "
"décodés."
#: library/base64.rst:68
#: library/base64.rst:70
#, fuzzy
msgid ""
"Optional *altchars* must be a :term:`bytes-like object` or ASCII string of "
"at least length 2 (additional characters are ignored) which specifies the "
"alternative alphabet used instead of the ``+`` and ``/`` characters."
"length 2 which specifies the alternative alphabet used instead of the ``+`` "
"and ``/`` characters."
msgstr ""
"L'option *altchars* doit être un :term:`bytes-like object` de longueur au "
"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un "
"alphabet alternatif pour les délimiteurs ``+`` et ``/``."
#: library/base64.rst:72
#: library/base64.rst:74
msgid ""
"A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded."
msgstr ""
"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une "
"longueur attendue."
#: library/base64.rst:75
#: library/base64.rst:77
msgid ""
"If *validate* is ``False`` (the default), characters that are neither in the "
"normal base-64 alphabet nor the alternative alphabet are discarded prior to "
@ -170,13 +179,18 @@ msgstr ""
"les caractères hors de l'alphabet de l'entrée produisent une :exc:`binascii."
"Error`."
#: library/base64.rst:81
#: library/base64.rst:83
msgid ""
"For more information about the strict base64 check, see :func:`binascii."
"a2b_base64`"
msgstr ""
#: library/base64.rst:86
#: library/base64.rst:85
msgid ""
"May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2."
msgstr ""
#: library/base64.rst:89
msgid ""
"Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and "
"return the encoded :class:`bytes`."
@ -184,7 +198,7 @@ msgstr ""
"Encode un :term:`objet octet-compatible <bytes-like object>` *s* en "
"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés."
#: library/base64.rst:92
#: library/base64.rst:95
msgid ""
"Decode :term:`bytes-like object` or ASCII string *s* using the standard "
"Base64 alphabet and return the decoded :class:`bytes`."
@ -193,7 +207,7 @@ msgstr ""
"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie les :"
"class:`bytes` décodés."
#: library/base64.rst:98
#: library/base64.rst:101
msgid ""
"Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe "
"alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/"
@ -205,7 +219,7 @@ msgstr ""
"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie les :class:"
"`bytes` encodés."
#: library/base64.rst:107
#: library/base64.rst:110
msgid ""
"Decode :term:`bytes-like object` or ASCII string *s* using the URL- and "
"filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` "
@ -217,7 +231,7 @@ msgstr ""
"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet "
"standard base64 et renvoie les :class:`bytes` décodés."
#: library/base64.rst:116
#: library/base64.rst:119
msgid ""
"Encode the :term:`bytes-like object` *s* using Base32 and return the "
"encoded :class:`bytes`."
@ -225,7 +239,7 @@ msgstr ""
"Encode un :term:`objet byte-compatible <bytes-like object>` *s* en utilisant "
"l'algorithme base32 et renvoie les :class:`bytes` encodés."
#: library/base64.rst:122
#: library/base64.rst:125
msgid ""
"Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and "
"return the decoded :class:`bytes`."
@ -234,7 +248,7 @@ msgstr ""
"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` "
"décodés."
#: library/base64.rst:173
#: library/base64.rst:176
msgid ""
"Optional *casefold* is a flag specifying whether a lowercase alphabet is "
"acceptable as input. For security purposes, the default is ``False``."
@ -243,7 +257,7 @@ msgstr ""
"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, "
"cette option est à ``False`` par défaut."
#: library/base64.rst:129
#: library/base64.rst:132
#, fuzzy
msgid ""
":rfc:`4648` allows for optional mapping of the digit 0 (zero) to the letter "
@ -262,7 +276,7 @@ msgstr ""
"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle "
"sorte que 0 et 1 ne sont pas autorisés dans l'entrée."
#: library/base64.rst:177
#: library/base64.rst:180
msgid ""
"A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there "
"are non-alphabet characters present in the input."
@ -270,19 +284,19 @@ msgstr ""
"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une "
"longueur attendue ou si elle contient des caractères hors de l'alphabet."
#: library/base64.rst:143
#: library/base64.rst:146
msgid ""
"Similar to :func:`b32encode` but uses the Extended Hex Alphabet, as defined "
"in :rfc:`4648`."
msgstr ""
#: library/base64.rst:151
#: library/base64.rst:154
msgid ""
"Similar to :func:`b32decode` but uses the Extended Hex Alphabet, as defined "
"in :rfc:`4648`."
msgstr ""
#: library/base64.rst:154
#: library/base64.rst:157
msgid ""
"This version does not allow the digit 0 (zero) to the letter O (oh) and "
"digit 1 (one) to either the letter I (eye) or letter L (el) mappings, all "
@ -290,7 +304,7 @@ msgid ""
"interchangeable."
msgstr ""
#: library/base64.rst:164
#: library/base64.rst:167
msgid ""
"Encode the :term:`bytes-like object` *s* using Base16 and return the "
"encoded :class:`bytes`."
@ -298,7 +312,7 @@ msgstr ""
"Encode un :term:`objet byte-compatible <bytes-like object>` *s* en utilisant "
"l'algorithme base16 et renvoie les :class:`bytes` encodés."
#: library/base64.rst:170
#: library/base64.rst:173
msgid ""
"Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and "
"return the decoded :class:`bytes`."
@ -307,7 +321,7 @@ msgstr ""
"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` "
"décodés."
#: library/base64.rst:184
#: library/base64.rst:187
msgid ""
"Encode the :term:`bytes-like object` *b* using Ascii85 and return the "
"encoded :class:`bytes`."
@ -315,7 +329,7 @@ msgstr ""
"Encode un :term:`objet byte-compatible <bytes-like object>` *s* en utilisant "
"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés."
#: library/base64.rst:187
#: library/base64.rst:190
msgid ""
"*foldspaces* is an optional flag that uses the special short sequence 'y' "
"instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This "
@ -326,7 +340,7 @@ msgstr ""
"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » "
"Ascii85."
#: library/base64.rst:191
#: library/base64.rst:194
msgid ""
"*wrapcol* controls whether the output should have newline (``b'\\n'``) "
"characters added to it. If this is non-zero, each output line will be at "
@ -336,7 +350,7 @@ msgstr ""
"sortie. Chaque ligne de sortie contient au maximum *wrapcol* caractères si "
"cette option diffère de zéro."
#: library/base64.rst:195
#: library/base64.rst:198
msgid ""
"*pad* controls whether the input is padded to a multiple of 4 before "
"encoding. Note that the ``btoa`` implementation always pads."
@ -345,7 +359,7 @@ msgstr ""
"l'entrée jusqu'à ce que sa longueur soit un multiple de 4 avant encodage. "
"Notez que l'implémentation ``btoa`` effectue systématiquement ce remplissage."
#: library/base64.rst:198
#: library/base64.rst:201
msgid ""
"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and "
"``~>``, which is used by the Adobe implementation."
@ -353,7 +367,7 @@ msgstr ""
"*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée par "
"``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe."
#: library/base64.rst:206
#: library/base64.rst:209
msgid ""
"Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and "
"return the decoded :class:`bytes`."
@ -362,7 +376,7 @@ msgstr ""
"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` "
"décodés."
#: library/base64.rst:209
#: library/base64.rst:212
msgid ""
"*foldspaces* is a flag that specifies whether the 'y' short sequence should "
"be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature "
@ -373,7 +387,7 @@ msgstr ""
"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » "
"Ascii85."
#: library/base64.rst:213
#: library/base64.rst:216
msgid ""
"*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. "
"is framed with <~ and ~>)."
@ -381,7 +395,7 @@ msgstr ""
"*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 "
"(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)."
#: library/base64.rst:216
#: library/base64.rst:219
msgid ""
"*ignorechars* should be a :term:`bytes-like object` or ASCII string "
"containing characters to ignore from the input. This should only contain "
@ -393,7 +407,7 @@ msgstr ""
"des caractères d'espacement et contient par défaut l'ensemble des caractères "
"d'espacement de l'alphabet ASCII."
#: library/base64.rst:226
#: library/base64.rst:229
msgid ""
"Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-"
"style binary diffs) and return the encoded :class:`bytes`."
@ -402,7 +416,7 @@ msgstr ""
"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* "
"sur des données binaires) et renvoie les :class:`bytes` encodés."
#: library/base64.rst:229
#: library/base64.rst:232
msgid ""
"If *pad* is true, the input is padded with ``b'\\0'`` so its length is a "
"multiple of 4 bytes before encoding."
@ -411,7 +425,7 @@ msgstr ""
"anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un multiple "
"de 4 octets avant encodage."
#: library/base64.rst:237
#: library/base64.rst:240
msgid ""
"Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and "
"return the decoded :class:`bytes`. Padding is implicitly removed, if "
@ -422,11 +436,11 @@ msgstr ""
"décodés. Les caractères de remplissage sont implicitement retirés si "
"nécessaire."
#: library/base64.rst:244
#: library/base64.rst:247
msgid "The legacy interface:"
msgstr "L'interface historique :"
#: library/base64.rst:248
#: library/base64.rst:251
msgid ""
"Decode the contents of the binary *input* file and write the resulting "
"binary data to the *output* file. *input* and *output* must be :term:`file "
@ -438,7 +452,7 @@ msgstr ""
"term:`objets fichiers <file object>`. *input* est lu jusqu'à ce que ``input."
"readline()`` renvoie un objet *bytes* vide."
#: library/base64.rst:256
#: library/base64.rst:259
msgid ""
"Decode the :term:`bytes-like object` *s*, which must contain one or more "
"lines of base64 encoded data, and return the decoded :class:`bytes`."
@ -447,7 +461,7 @@ msgstr ""
"contenir une ou plusieurs lignes de données encodées en base64 et renvoie "
"les :class:`bytes` décodés."
#: library/base64.rst:264
#: library/base64.rst:267
msgid ""
"Encode the contents of the binary *input* file and write the resulting "
"base64 encoded data to the *output* file. *input* and *output* must be :term:"
@ -464,7 +478,7 @@ msgstr ""
"sortie et assure que celle-ci se termine par une nouvelle ligne, comme "
"spécifié par la :rfc:`2045` (MIME)."
#: library/base64.rst:274
#: library/base64.rst:277
msgid ""
"Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary "
"data, and return :class:`bytes` containing the base64-encoded data, with "
@ -477,33 +491,33 @@ msgstr ""
"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine "
"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)."
#: library/base64.rst:282
#: library/base64.rst:285
msgid "An example usage of the module:"
msgstr "Un exemple d'utilisation du module :"
#: library/base64.rst:295
#: library/base64.rst:298
msgid "Security Considerations"
msgstr ""
#: library/base64.rst:297
#: library/base64.rst:300
msgid ""
"A new security considerations section was added to :rfc:`4648` (section 12); "
"it's recommended to review the security section for any code deployed to "
"production."
msgstr ""
#: library/base64.rst:303
#: library/base64.rst:306
msgid "Module :mod:`binascii`"
msgstr "Module :mod:`binascii`"
#: library/base64.rst:303
#: library/base64.rst:306
msgid ""
"Support module containing ASCII-to-binary and binary-to-ASCII conversions."
msgstr ""
"Module secondaire contenant les conversions ASCII vers binaire et binaire "
"vers ASCII."
#: library/base64.rst:306
#: library/base64.rst:309
msgid ""
":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: "
"Mechanisms for Specifying and Describing the Format of Internet Message "
@ -513,7 +527,7 @@ msgstr ""
"Mechanisms for Specifying and Describing the Format of Internet Message "
"Bodies*"
#: library/base64.rst:306
#: library/base64.rst:309
msgid ""
"Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition "
"of the base64 encoding."

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: 2023-01-15 22:33+0100\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"
@ -56,79 +56,130 @@ msgstr ""
#: library/bdb.rst:33
msgid ""
"When creating a breakpoint, its associated filename should be in canonical "
"form. If a *funcname* is defined, a breakpoint hit will be counted when the "
"first line of that function is executed. A conditional breakpoint always "
"counts a hit."
"When creating a breakpoint, its associated :attr:`file name <file>` should "
"be in canonical form. If a :attr:`funcname` is defined, a breakpoint :attr:"
"`hit <hits>` will be counted when the first line of that function is "
"executed. A :attr:`conditional <cond>` breakpoint always counts a :attr:"
"`hit <hits>`."
msgstr ""
#: library/bdb.rst:38
#: library/bdb.rst:39
msgid ":class:`Breakpoint` instances have the following methods:"
msgstr ""
#: library/bdb.rst:42
#: library/bdb.rst:43
msgid ""
"Delete the breakpoint from the list associated to a file/line. If it is the "
"last breakpoint in that position, it also deletes the entry for the file/"
"line."
msgstr ""
#: library/bdb.rst:49
#: library/bdb.rst:50
msgid "Mark the breakpoint as enabled."
msgstr "Active le point d'arrêt."
#: library/bdb.rst:54
#: library/bdb.rst:55
msgid "Mark the breakpoint as disabled."
msgstr "Désactive le point d'arrêt."
#: library/bdb.rst:59
#: library/bdb.rst:60
msgid ""
"Return a string with all the information about the breakpoint, nicely "
"formatted:"
msgstr ""
#: library/bdb.rst:62
msgid "The breakpoint number."
#: library/bdb.rst:63
#, fuzzy
msgid "Breakpoint number."
msgstr "Le numéro du point d'arrêt."
#: library/bdb.rst:63
msgid "If it is temporary or not."
msgstr "S'il est temporaire ou non."
#: library/bdb.rst:64
msgid "Its file,line position."
msgid "Temporary status (del or keep)."
msgstr ""
#: library/bdb.rst:65
msgid "The condition that causes a break."
msgid "File/line position."
msgstr ""
#: library/bdb.rst:66
msgid "If it must be ignored the next N times."
msgid "Break condition."
msgstr ""
#: library/bdb.rst:67
msgid "The breakpoint hit count."
msgid "Number of times to ignore."
msgstr ""
#: library/bdb.rst:73
#: library/bdb.rst:68
msgid "Number of times hit."
msgstr ""
#: library/bdb.rst:74
msgid ""
"Print the output of :meth:`bpformat` to the file *out*, or if it is "
"``None``, to standard output."
msgstr ""
#: library/bdb.rst:79
msgid "The :class:`Bdb` class acts as a generic Python debugger base class."
#: library/bdb.rst:77
msgid ":class:`Breakpoint` instances have the following attributes:"
msgstr ""
#: library/bdb.rst:81
msgid "File name of the :class:`Breakpoint`."
msgstr ""
#: library/bdb.rst:85
msgid "Line number of the :class:`Breakpoint` within :attr:`file`."
msgstr ""
#: library/bdb.rst:89
msgid "True if a :class:`Breakpoint` at (file, line) is temporary."
msgstr ""
#: library/bdb.rst:93
msgid "Condition for evaluating a :class:`Breakpoint` at (file, line)."
msgstr ""
#: library/bdb.rst:97
msgid ""
"Function name that defines whether a :class:`Breakpoint` is hit upon "
"entering the function."
msgstr ""
#: library/bdb.rst:102
#, fuzzy
msgid "True if :class:`Breakpoint` is enabled."
msgstr "Active le point d'arrêt."
#: library/bdb.rst:106
msgid "Numeric index for a single instance of a :class:`Breakpoint`."
msgstr ""
#: library/bdb.rst:110
msgid ""
"Dictionary of :class:`Breakpoint` instances indexed by (:attr:`file`, :attr:"
"`line`) tuples."
msgstr ""
#: library/bdb.rst:115
msgid "Number of times to ignore a :class:`Breakpoint`."
msgstr ""
#: library/bdb.rst:119
msgid "Count of the number of times a :class:`Breakpoint` has been hit."
msgstr ""
#: library/bdb.rst:123
msgid "The :class:`Bdb` class acts as a generic Python debugger base class."
msgstr ""
#: library/bdb.rst:125
msgid ""
"This class takes care of the details of the trace facility; a derived class "
"should implement user interaction. The standard debugger class (:class:`pdb."
"Pdb`) is an example."
msgstr ""
#: library/bdb.rst:85
#: library/bdb.rst:129
msgid ""
"The *skip* argument, if given, must be an iterable of glob-style module name "
"patterns. The debugger will not step into frames that originate in a module "
@ -137,89 +188,94 @@ msgid ""
"globals."
msgstr ""
#: library/bdb.rst:91
#: library/bdb.rst:135
msgid "The *skip* argument."
msgstr "L'argument *skip*."
#: library/bdb.rst:94
#: library/bdb.rst:138
msgid ""
"The following methods of :class:`Bdb` normally don't need to be overridden."
msgstr ""
#: library/bdb.rst:98
msgid ""
"Auxiliary method for getting a filename in a canonical form, that is, as a "
"case-normalized (on case-insensitive filesystems) absolute path, stripped of "
"surrounding angle brackets."
#: library/bdb.rst:142
msgid "Return canonical form of *filename*."
msgstr ""
#: library/bdb.rst:104
#: library/bdb.rst:144
msgid ""
"For real file names, the canonical form is an operating-system-dependent, :"
"func:`case-normalized <os.path.normcase>` :func:`absolute path <os.path."
"abspath>`. A *filename* with angle brackets, such as ``\"<stdin>\"`` "
"generated in interactive mode, is returned unchanged."
msgstr ""
#: library/bdb.rst:151
msgid ""
"Set the :attr:`botframe`, :attr:`stopframe`, :attr:`returnframe` and :attr:"
"`quitting` attributes with values ready to start debugging."
msgstr ""
#: library/bdb.rst:109
#: library/bdb.rst:156
msgid ""
"This function is installed as the trace function of debugged frames. Its "
"return value is the new trace function (in most cases, that is, itself)."
msgstr ""
#: library/bdb.rst:112
#: library/bdb.rst:159
msgid ""
"The default implementation decides how to dispatch a frame, depending on the "
"type of event (passed as a string) that is about to be executed. *event* can "
"be one of the following:"
msgstr ""
#: library/bdb.rst:116
#: library/bdb.rst:163
msgid "``\"line\"``: A new line of code is going to be executed."
msgstr ""
#: library/bdb.rst:117
#: library/bdb.rst:164
msgid ""
"``\"call\"``: A function is about to be called, or another code block "
"entered."
msgstr ""
#: library/bdb.rst:119
#: library/bdb.rst:166
msgid "``\"return\"``: A function or other code block is about to return."
msgstr ""
#: library/bdb.rst:120
#: library/bdb.rst:167
msgid "``\"exception\"``: An exception has occurred."
msgstr "``\"exception\"`` : Une exception est survenue."
#: library/bdb.rst:121
#: library/bdb.rst:168
msgid "``\"c_call\"``: A C function is about to be called."
msgstr "``\"c_call\"`` : Une fonction C est sur le point d'être appelée."
#: library/bdb.rst:122
#: library/bdb.rst:169
msgid "``\"c_return\"``: A C function has returned."
msgstr "``\"c_return\"`` : Une fonction C s'est terminée."
#: library/bdb.rst:123
#: library/bdb.rst:170
msgid "``\"c_exception\"``: A C function has raised an exception."
msgstr ""
#: library/bdb.rst:125
#: library/bdb.rst:172
msgid ""
"For the Python events, specialized functions (see below) are called. For "
"the C events, no action is taken."
msgstr ""
#: library/bdb.rst:128
#: library/bdb.rst:175
msgid "The *arg* parameter depends on the previous event."
msgstr "Le paramètre *arg* dépend de l'événement précédent."
#: library/bdb.rst:130
#: library/bdb.rst:177
msgid ""
"See the documentation for :func:`sys.settrace` for more information on the "
"trace function. For more information on code and frame objects, refer to :"
"ref:`types`."
msgstr ""
#: library/bdb.rst:136
#: library/bdb.rst:183
msgid ""
"If the debugger should stop on the current line, invoke the :meth:"
"`user_line` method (which should be overridden in subclasses). Raise a :exc:"
@ -228,7 +284,7 @@ msgid ""
"`trace_dispatch` method for further tracing in that scope."
msgstr ""
#: library/bdb.rst:144
#: library/bdb.rst:191
msgid ""
"If the debugger should stop on this function call, invoke the :meth:"
"`user_call` method (which should be overridden in subclasses). Raise a :exc:"
@ -237,7 +293,7 @@ msgid ""
"`trace_dispatch` method for further tracing in that scope."
msgstr ""
#: library/bdb.rst:152
#: library/bdb.rst:199
msgid ""
"If the debugger should stop on this function return, invoke the :meth:"
"`user_return` method (which should be overridden in subclasses). Raise a :"
@ -246,7 +302,7 @@ msgid ""
"`trace_dispatch` method for further tracing in that scope."
msgstr ""
#: library/bdb.rst:160
#: library/bdb.rst:207
msgid ""
"If the debugger should stop at this exception, invokes the :meth:"
"`user_exception` method (which should be overridden in subclasses). Raise a :"
@ -255,150 +311,152 @@ msgid ""
"`trace_dispatch` method for further tracing in that scope."
msgstr ""
#: library/bdb.rst:166
#: library/bdb.rst:213
msgid ""
"Normally derived classes don't override the following methods, but they may "
"if they want to redefine the definition of stopping and breakpoints."
msgstr ""
#: library/bdb.rst:171
msgid ""
"This method checks if the *frame* is somewhere below :attr:`botframe` in the "
"call stack. :attr:`botframe` is the frame in which debugging started."
#: library/bdb.rst:218
msgid "Return True if *module_name* matches any skip pattern."
msgstr ""
#: library/bdb.rst:176
msgid ""
"This method checks if there is a breakpoint in the filename and line "
"belonging to *frame* or, at least, in the current function. If the "
"breakpoint is a temporary one, this method deletes it."
#: library/bdb.rst:222
msgid "Return True if *frame* is below the starting frame in the stack."
msgstr ""
#: library/bdb.rst:182
msgid ""
"This method checks if there is a breakpoint in the filename of the current "
"frame."
#: library/bdb.rst:226
msgid "Return True if there is an effective breakpoint for this line."
msgstr ""
#: library/bdb.rst:185
#: library/bdb.rst:228
msgid ""
"Check whether a line or function breakpoint exists and is in effect. Delete "
"temporary breakpoints based on information from :func:`effective`."
msgstr ""
#: library/bdb.rst:233
msgid "Return True if any breakpoint exists for *frame*'s filename."
msgstr ""
#: library/bdb.rst:235
msgid ""
"Derived classes should override these methods to gain control over debugger "
"operation."
msgstr ""
#: library/bdb.rst:190
#: library/bdb.rst:240
msgid ""
"This method is called from :meth:`dispatch_call` when there is the "
"possibility that a break might be necessary anywhere inside the called "
"Called from :meth:`dispatch_call` if a break might stop inside the called "
"function."
msgstr ""
#: library/bdb.rst:196
#: library/bdb.rst:245
msgid ""
"This method is called from :meth:`dispatch_line` when either :meth:"
"`stop_here` or :meth:`break_here` yields ``True``."
"Called from :meth:`dispatch_line` when either :meth:`stop_here` or :meth:"
"`break_here` returns ``True``."
msgstr ""
#: library/bdb.rst:201
#: library/bdb.rst:250
msgid ""
"This method is called from :meth:`dispatch_return` when :meth:`stop_here` "
"yields ``True``."
"Called from :meth:`dispatch_return` when :meth:`stop_here` returns ``True``."
msgstr ""
#: library/bdb.rst:206
#: library/bdb.rst:254
msgid ""
"This method is called from :meth:`dispatch_exception` when :meth:`stop_here` "
"yields ``True``."
"Called from :meth:`dispatch_exception` when :meth:`stop_here` returns "
"``True``."
msgstr ""
#: library/bdb.rst:211
#: library/bdb.rst:259
msgid "Handle how a breakpoint must be removed when it is a temporary one."
msgstr ""
#: library/bdb.rst:213
#: library/bdb.rst:261
msgid "This method must be implemented by derived classes."
msgstr ""
#: library/bdb.rst:216
#: library/bdb.rst:264
msgid ""
"Derived classes and clients can call the following methods to affect the "
"stepping state."
msgstr ""
#: library/bdb.rst:221
#: library/bdb.rst:269
msgid "Stop after one line of code."
msgstr "Arrête après une ligne de code."
#: library/bdb.rst:225
#: library/bdb.rst:273
msgid "Stop on the next line in or below the given frame."
msgstr ""
#: library/bdb.rst:229
#: library/bdb.rst:277
msgid "Stop when returning from the given frame."
msgstr ""
#: library/bdb.rst:233
#: library/bdb.rst:281
msgid ""
"Stop when the line with the line no greater than the current one is reached "
"Stop when the line with the *lineno* greater than the current one is reached "
"or when returning from current frame."
msgstr ""
#: library/bdb.rst:238
#: library/bdb.rst:286
msgid ""
"Start debugging from *frame*. If *frame* is not specified, debugging starts "
"from caller's frame."
msgstr ""
#: library/bdb.rst:243
#: library/bdb.rst:291
msgid ""
"Stop only at breakpoints or when finished. If there are no breakpoints, set "
"the system trace function to ``None``."
msgstr ""
#: library/bdb.rst:248
#: library/bdb.rst:296
msgid ""
"Set the :attr:`quitting` attribute to ``True``. This raises :exc:`BdbQuit` "
"in the next call to one of the :meth:`dispatch_\\*` methods."
msgstr ""
#: library/bdb.rst:252
#: library/bdb.rst:300
msgid ""
"Derived classes and clients can call the following methods to manipulate "
"breakpoints. These methods return a string containing an error message if "
"something went wrong, or ``None`` if all is well."
msgstr ""
#: library/bdb.rst:258
#: library/bdb.rst:306
msgid ""
"Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* "
"passed as argument, return an error message. The *filename* should be in "
"canonical form, as described in the :meth:`canonic` method."
msgstr ""
#: library/bdb.rst:264
#: library/bdb.rst:312
msgid ""
"Delete the breakpoints in *filename* and *lineno*. If none were set, an "
"error message is returned."
"Delete the breakpoints in *filename* and *lineno*. If none were set, return "
"an error message."
msgstr ""
#: library/bdb.rst:269
#: library/bdb.rst:317
msgid ""
"Delete the breakpoint which has the index *arg* in the :attr:`Breakpoint."
"bpbynumber`. If *arg* is not numeric or out of range, return an error "
"message."
msgstr ""
#: library/bdb.rst:275
#: library/bdb.rst:323
msgid ""
"Delete all breakpoints in *filename*. If none were set, an error message is "
"returned."
"Delete all breakpoints in *filename*. If none were set, return an error "
"message."
msgstr ""
#: library/bdb.rst:280
msgid "Delete all existing breakpoints."
msgstr "Supprime tous les points d'arrêt définis."
#: library/bdb.rst:328
msgid ""
"Delete all existing breakpoints. If none were set, return an error message."
msgstr ""
#: library/bdb.rst:284
#: library/bdb.rst:333
msgid ""
"Return a breakpoint specified by the given number. If *arg* is a string, it "
"will be converted to a number. If *arg* is a non-numeric string, if the "
@ -406,114 +464,141 @@ msgid ""
"raised."
msgstr ""
#: library/bdb.rst:293
msgid "Check if there is a breakpoint for *lineno* of *filename*."
#: library/bdb.rst:342
msgid "Return True if there is a breakpoint for *lineno* in *filename*."
msgstr ""
#: library/bdb.rst:297
#: library/bdb.rst:346
msgid ""
"Return all breakpoints for *lineno* in *filename*, or an empty list if none "
"are set."
msgstr ""
#: library/bdb.rst:302
#: library/bdb.rst:351
msgid "Return all breakpoints in *filename*, or an empty list if none are set."
msgstr ""
#: library/bdb.rst:306
#: library/bdb.rst:355
msgid "Return all breakpoints that are set."
msgstr "Donne tous les points d'arrêt définis."
#: library/bdb.rst:309
#: library/bdb.rst:358
msgid ""
"Derived classes and clients can call the following methods to get a data "
"structure representing a stack trace."
msgstr ""
#: library/bdb.rst:314
#: library/bdb.rst:363
msgid "Return a list of (frame, lineno) tuples in a stack trace, and a size."
msgstr ""
#: library/bdb.rst:365
msgid ""
"Get a list of records for a frame and all higher (calling) and lower frames, "
"and the size of the higher part."
"The most recently called frame is last in the list. The size is the number "
"of frames below the frame where the debugger was invoked."
msgstr ""
#: library/bdb.rst:319
#: library/bdb.rst:370
msgid ""
"Return a string with information about a stack entry, identified by a "
"``(frame, lineno)`` tuple:"
"Return a string with information about a stack entry, which is a ``(frame, "
"lineno)`` tuple. The return string contains:"
msgstr ""
#: library/bdb.rst:322
msgid "The canonical form of the filename which contains the frame."
#: library/bdb.rst:373
msgid "The canonical filename which contains the frame."
msgstr ""
#: library/bdb.rst:323
msgid "The function name, or ``\"<lambda>\"``."
#: library/bdb.rst:374
#, fuzzy
msgid "The function name or ``\"<lambda>\"``."
msgstr "Le nom de la fonction, ou ``\"<lambda>\"``."
#: library/bdb.rst:324
#: library/bdb.rst:375
msgid "The input arguments."
msgstr "Les arguments donnés."
#: library/bdb.rst:325
#: library/bdb.rst:376
msgid "The return value."
msgstr "Le résultat."
#: library/bdb.rst:326
#: library/bdb.rst:377
msgid "The line of code (if it exists)."
msgstr "La ligne de code (si elle existe)."
#: library/bdb.rst:329
#: library/bdb.rst:380
msgid ""
"The following two methods can be called by clients to use a debugger to "
"debug a :term:`statement`, given as a string."
msgstr ""
#: library/bdb.rst:334
#: library/bdb.rst:385
msgid ""
"Debug a statement executed via the :func:`exec` function. *globals* "
"defaults to :attr:`__main__.__dict__`, *locals* defaults to *globals*."
msgstr ""
#: library/bdb.rst:339
#: library/bdb.rst:390
msgid ""
"Debug an expression executed via the :func:`eval` function. *globals* and "
"*locals* have the same meaning as in :meth:`run`."
msgstr ""
#: library/bdb.rst:344
#: library/bdb.rst:395
msgid "For backwards compatibility. Calls the :meth:`run` method."
msgstr ""
#: library/bdb.rst:348
#: library/bdb.rst:399
msgid "Debug a single function call, and return its result."
msgstr ""
#: library/bdb.rst:351
#: library/bdb.rst:402
msgid "Finally, the module defines the following functions:"
msgstr ""
#: library/bdb.rst:355
#: library/bdb.rst:406
msgid ""
"Check whether we should break here, depending on the way the breakpoint *b* "
"was set."
"Return True if we should break here, depending on the way the :class:"
"`Breakpoint` *b* was set."
msgstr ""
#: library/bdb.rst:358
#: library/bdb.rst:409
msgid ""
"If it was set via line number, it checks if ``b.line`` is the same as the "
"one in the frame also passed as argument. If the breakpoint was set via "
"function name, we have to check we are in the right frame (the right "
"function) and if we are in its first executable line."
"If it was set via line number, it checks if :attr:`b.line <bdb.Breakpoint."
"line>` is the same as the one in *frame*. If the breakpoint was set via :"
"attr:`function name <bdb.Breakpoint.funcname>`, we have to check we are in "
"the right *frame* (the right function) and if we are on its first executable "
"line."
msgstr ""
#: library/bdb.rst:365
#: library/bdb.rst:418
msgid ""
"Determine if there is an effective (active) breakpoint at this line of code. "
"Return a tuple of the breakpoint and a boolean that indicates if it is ok to "
"delete a temporary breakpoint. Return ``(None, None)`` if there is no "
"matching breakpoint."
"Return ``(active breakpoint, delete temporary flag)`` or ``(None, None)`` as "
"the breakpoint to act upon."
msgstr ""
#: library/bdb.rst:372
#: library/bdb.rst:421
msgid ""
"The *active breakpoint* is the first entry in :attr:`bplist <bdb.Breakpoint."
"bplist>` for the (:attr:`file <bdb.Breakpoint.file>`, :attr:`line <bdb."
"Breakpoint.line>`) (which must exist) that is :attr:`enabled <bdb.Breakpoint."
"enabled>`, for which :func:`checkfuncname` is True, and that has neither a "
"False :attr:`condition <bdb.Breakpoint.cond>` nor positive :attr:`ignore "
"<bdb.Breakpoint.ignore>` count. The *flag*, meaning that a temporary "
"breakpoint should be deleted, is False only when the :attr:`cond <bdb."
"Breakpoint.cond>` cannot be evaluated (in which case, :attr:`ignore <bdb."
"Breakpoint.ignore>` count is ignored)."
msgstr ""
#: library/bdb.rst:432
msgid "If no such entry exists, then (None, None) is returned."
msgstr ""
#: library/bdb.rst:437
msgid "Start debugging with a :class:`Bdb` instance from caller's frame."
msgstr ""
#~ msgid "If it is temporary or not."
#~ msgstr "S'il est temporaire ou non."
#~ msgid "Delete all existing breakpoints."
#~ msgstr "Supprime tous les points d'arrêt définis."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-10-17 12:13+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -205,10 +205,11 @@ msgstr ""
"les exemples plus bas)."
#: library/bisect.rst:129
#, fuzzy
msgid ""
"`Sorted Collections <http://www.grantjenks.com/docs/sortedcollections/>`_ is "
"a high performance module that uses *bisect* to managed sorted collections "
"of data."
"`Sorted Collections <https://grantjenks.com/docs/sortedcollections/>`_ is a "
"high performance module that uses *bisect* to managed sorted collections of "
"data."
msgstr ""
"`Sorted Collections <http://www.grantjenks.com/docs/sortedcollections/>`_ "
"est un module de haute performance qui fait appel à *bisect* pour maintenir "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 15:44+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -392,10 +392,11 @@ msgstr ""
"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``."
#: library/bz2.rst:208
#, fuzzy
msgid ""
"Attempting to decompress data after the end of stream is reached raises an "
"`EOFError`. Any data found after the end of the stream is ignored and saved "
"in the :attr:`~.unused_data` attribute."
"Attempting to decompress data after the end of stream is reached raises an :"
"exc:`EOFError`. Any data found after the end of the stream is ignored and "
"saved in the :attr:`~.unused_data` attribute."
msgstr ""
"Essayer de décompresser des données après que la fin du flux soit atteinte "
"lève une erreur ``EOFError``. Toute donnée trouvée après la fin du flux est "
@ -490,9 +491,10 @@ msgstr ""
"incrémentielle :"
#: library/bz2.rst:305
#, fuzzy
msgid ""
"The example above uses a very \"nonrandom\" stream of data (a stream of "
"`b\"z\"` chunks). Random data tends to compress poorly, while ordered, "
"``b\"z\"`` chunks). Random data tends to compress poorly, while ordered, "
"repetitive data usually yields a high compression ratio."
msgstr ""
"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -22,23 +22,32 @@ msgstr ""
msgid "**Source code:** :source:`Lib/cgi.py`"
msgstr "**Code source :** :source:`Lib/cgi.py`"
#: library/cgi.rst:21
#: library/cgi.rst:27
msgid ""
"The :mod:`cgi` module is deprecated (see :pep:`PEP 594 <594#cgi>` for "
"details and alternatives)."
msgstr ""
#: library/cgi.rst:24
#: library/cgi.rst:22
msgid ""
"The :class:`FieldStorage` class can typically be replaced with :func:`urllib."
"parse.parse_qsl` for ``GET`` and ``HEAD`` requests, and the :mod:`email."
"message` module or `multipart <https://pypi.org/project/multipart/>`_ for "
"``POST`` and ``PUT``. Most :ref:`utility functions <functions-in-cgi-"
"module>` have replacements."
msgstr ""
#: library/cgi.rst:30
msgid "Support module for Common Gateway Interface (CGI) scripts."
msgstr ""
#: library/cgi.rst:26
#: library/cgi.rst:32
msgid ""
"This module defines a number of utilities for use by CGI scripts written in "
"Python."
msgstr ""
#: library/cgi.rst:29
#: library/cgi.rst:35
msgid ""
"The global variable ``maxlen`` can be set to an integer indicating the "
"maximum size of a POST request. POST requests larger than this size will "
@ -46,17 +55,28 @@ msgid ""
"of this variable is ``0``, meaning the request size is unlimited."
msgstr ""
#: library/cgi.rst:36
#: includes/wasm-notavail.rst:None
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/cgi.rst:43
msgid "Introduction"
msgstr "Introduction"
#: library/cgi.rst:40
#: library/cgi.rst:47
msgid ""
"A CGI script is invoked by an HTTP server, usually to process user input "
"submitted through an HTML ``<FORM>`` or ``<ISINDEX>`` element."
msgstr ""
#: library/cgi.rst:43
#: library/cgi.rst:50
msgid ""
"Most often, CGI scripts live in the server's special :file:`cgi-bin` "
"directory. The HTTP server places all sorts of information about the request "
@ -65,7 +85,7 @@ msgid ""
"script, and sends the script's output back to the client."
msgstr ""
#: library/cgi.rst:49
#: library/cgi.rst:56
msgid ""
"The script's input is connected to the client too, and sometimes the form "
"data is read this way; at other times the form data is passed via the "
@ -76,7 +96,7 @@ msgid ""
"supports it)."
msgstr ""
#: library/cgi.rst:56
#: library/cgi.rst:63
msgid ""
"The output of a CGI script should consist of two sections, separated by a "
"blank line. The first section contains a number of headers, telling the "
@ -84,26 +104,26 @@ msgid ""
"header section looks like this::"
msgstr ""
#: library/cgi.rst:64
#: library/cgi.rst:71
msgid ""
"The second section is usually HTML, which allows the client software to "
"display nicely formatted text with header, in-line images, etc. Here's "
"Python code that prints a simple piece of HTML::"
msgstr ""
#: library/cgi.rst:76
#: library/cgi.rst:83
msgid "Using the cgi module"
msgstr ""
#: library/cgi.rst:78
#: library/cgi.rst:85
msgid "Begin by writing ``import cgi``."
msgstr ""
#: library/cgi.rst:80
#: library/cgi.rst:87
msgid "When you write a new script, consider adding these lines::"
msgstr ""
#: library/cgi.rst:85
#: library/cgi.rst:92
msgid ""
"This activates a special exception handler that will display detailed "
"reports in the web browser if any errors occur. If you'd rather not show "
@ -111,7 +131,7 @@ msgid ""
"saved to files instead, with code like this::"
msgstr ""
#: library/cgi.rst:93
#: library/cgi.rst:100
msgid ""
"It's very helpful to use this feature during script development. The reports "
"produced by :mod:`cgitb` provide information that can save you a lot of time "
@ -119,7 +139,7 @@ msgid ""
"you have tested your script and are confident that it works correctly."
msgstr ""
#: library/cgi.rst:98
#: library/cgi.rst:105
msgid ""
"To get at submitted form data, use the :class:`FieldStorage` class. If the "
"form contains non-ASCII characters, use the *encoding* keyword parameter set "
@ -131,7 +151,7 @@ msgid ""
"consume standard input, it should be instantiated only once."
msgstr ""
#: library/cgi.rst:107
#: library/cgi.rst:114
msgid ""
"The :class:`FieldStorage` instance can be indexed like a Python dictionary. "
"It allows membership testing with the :keyword:`in` operator, and also "
@ -142,14 +162,14 @@ msgid ""
"class:`FieldStorage` instance."
msgstr ""
#: library/cgi.rst:115
#: library/cgi.rst:122
msgid ""
"For instance, the following code (which assumes that the :mailheader:"
"`Content-Type` header and blank line have already been printed) checks that "
"the fields ``name`` and ``addr`` are both set to a non-empty string::"
msgstr ""
#: library/cgi.rst:129
#: library/cgi.rst:136
msgid ""
"Here the fields, accessed through ``form[key]``, are themselves instances "
"of :class:`FieldStorage` (or :class:`MiniFieldStorage`, depending on the "
@ -159,7 +179,7 @@ msgid ""
"second argument as a default to return if the requested key is not present."
msgstr ""
#: library/cgi.rst:136
#: library/cgi.rst:143
msgid ""
"If the submitted form data contains more than one field with the same name, "
"the object retrieved by ``form[key]`` is not a :class:`FieldStorage` or :"
@ -172,7 +192,7 @@ msgid ""
"username fields, separated by commas::"
msgstr ""
#: library/cgi.rst:149
#: library/cgi.rst:156
msgid ""
"If a field represents an uploaded file, accessing the value via the :attr:"
"`~FieldStorage.value` attribute or the :meth:`~FieldStorage.getvalue` method "
@ -185,13 +205,13 @@ msgid ""
"IOBase.readline` methods will return bytes)::"
msgstr ""
#: library/cgi.rst:169
#: library/cgi.rst:176
msgid ""
":class:`FieldStorage` objects also support being used in a :keyword:`with` "
"statement, which will automatically close them when done."
msgstr ""
#: library/cgi.rst:172
#: library/cgi.rst:179
msgid ""
"If an error is encountered when obtaining the contents of an uploaded file "
"(for example, when the user interrupts the form submission by clicking on a "
@ -199,7 +219,7 @@ msgid ""
"object for the field will be set to the value -1."
msgstr ""
#: library/cgi.rst:177
#: library/cgi.rst:184
msgid ""
"The file upload draft standard entertains the possibility of uploading "
"multiple files from one field (using a recursive :mimetype:`multipart/\\*` "
@ -210,7 +230,7 @@ msgid ""
"be iterated over recursively just like the top-level form object."
msgstr ""
#: library/cgi.rst:185
#: library/cgi.rst:192
msgid ""
"When a form is submitted in the \"old\" format (as the query string or as a "
"single data part of type :mimetype:`application/x-www-form-urlencoded`), the "
@ -219,29 +239,29 @@ msgid ""
"are always ``None``."
msgstr ""
#: library/cgi.rst:190
#: library/cgi.rst:197
msgid ""
"A form submitted via POST that also has a query string will contain both :"
"class:`FieldStorage` and :class:`MiniFieldStorage` items."
msgstr ""
#: library/cgi.rst:193
#: library/cgi.rst:200
msgid ""
"The :attr:`~FieldStorage.file` attribute is automatically closed upon the "
"garbage collection of the creating :class:`FieldStorage` instance."
msgstr ""
#: library/cgi.rst:197
#: library/cgi.rst:204
msgid ""
"Added support for the context management protocol to the :class:"
"`FieldStorage` class."
msgstr ""
#: library/cgi.rst:203
#: library/cgi.rst:210
msgid "Higher Level Interface"
msgstr ""
#: library/cgi.rst:205
#: library/cgi.rst:212
msgid ""
"The previous section explains how to read CGI form data using the :class:"
"`FieldStorage` class. This section describes a higher level interface which "
@ -251,33 +271,33 @@ msgid ""
"efficiently, for example."
msgstr ""
#: library/cgi.rst:214
#: library/cgi.rst:221
msgid ""
"The interface consists of two simple methods. Using the methods you can "
"process form data in a generic way, without the need to worry whether only "
"one or more values were posted under one name."
msgstr ""
#: library/cgi.rst:218
#: library/cgi.rst:225
msgid ""
"In the previous section, you learned to write following code anytime you "
"expected a user to post more than one value under one name::"
msgstr ""
#: library/cgi.rst:227
#: library/cgi.rst:234
msgid ""
"This situation is common for example when a form contains a group of "
"multiple checkboxes with the same name::"
msgstr ""
#: library/cgi.rst:233
#: library/cgi.rst:240
msgid ""
"In most situations, however, there's only one form control with a particular "
"name in a form and then you expect and need only one value associated with "
"this name. So you write a script containing for example this code::"
msgstr ""
#: library/cgi.rst:239
#: library/cgi.rst:246
msgid ""
"The problem with the code is that you should never expect that a client will "
"provide valid input to your scripts. For example, if a curious user appends "
@ -288,21 +308,21 @@ msgid ""
"an :exc:`AttributeError` exception."
msgstr ""
#: library/cgi.rst:247
#: library/cgi.rst:254
msgid ""
"Therefore, the appropriate way to read form data values was to always use "
"the code which checks whether the obtained value is a single value or a list "
"of values. That's annoying and leads to less readable scripts."
msgstr ""
#: library/cgi.rst:251
#: library/cgi.rst:258
msgid ""
"A more convenient approach is to use the methods :meth:`~FieldStorage."
"getfirst` and :meth:`~FieldStorage.getlist` provided by this higher level "
"interface."
msgstr ""
#: library/cgi.rst:257
#: library/cgi.rst:264
msgid ""
"This method always returns only one value associated with form field *name*. "
"The method returns only the first value in case that more values were posted "
@ -313,7 +333,7 @@ msgid ""
"defaults to ``None`` if not specified."
msgstr ""
#: library/cgi.rst:268
#: library/cgi.rst:275
msgid ""
"This method always returns a list of values associated with form field "
"*name*. The method returns an empty list if no such form field or value "
@ -321,28 +341,36 @@ msgid ""
"such value exists."
msgstr ""
#: library/cgi.rst:272
#: library/cgi.rst:279
msgid "Using these methods you can write nice compact code::"
msgstr ""
#: library/cgi.rst:284
#: library/cgi.rst:291
msgid "Functions"
msgstr "Fonctions"
#: library/cgi.rst:286
#: library/cgi.rst:293
msgid ""
"These are useful if you want more control, or if you want to employ some of "
"the algorithms implemented in this module in other circumstances."
msgstr ""
#: library/cgi.rst:292
#: library/cgi.rst:299
msgid ""
"Parse a query in the environment or from a file (the file defaults to ``sys."
"stdin``). The *keep_blank_values*, *strict_parsing* and *separator* "
"parameters are passed to :func:`urllib.parse.parse_qs` unchanged."
msgstr ""
#: library/cgi.rst:299
#: library/cgi.rst:307
msgid ""
"This function, like the rest of the :mod:`cgi` module, is deprecated. It can "
"be replaced by calling :func:`urllib.parse.parse_qs` directly on the desired "
"query string (except for ``multipart/form-data`` input, which can be handled "
"as described for :func:`parse_multipart`)."
msgstr ""
#: library/cgi.rst:312
msgid ""
"Parse input of type :mimetype:`multipart/form-data` (for file uploads). "
"Arguments are *fp* for the input file, *pdict* for a dictionary containing "
@ -350,63 +378,83 @@ msgid ""
"the request encoding."
msgstr ""
#: library/cgi.rst:304
#: library/cgi.rst:317
msgid ""
"Returns a dictionary just like :func:`urllib.parse.parse_qs`: keys are the "
"field names, each value is a list of values for that field. For non-file "
"fields, the value is a list of strings."
msgstr ""
#: library/cgi.rst:308
#: library/cgi.rst:321
msgid ""
"This is easy to use but not much good if you are expecting megabytes to be "
"uploaded --- in that case, use the :class:`FieldStorage` class instead which "
"is much more flexible."
msgstr ""
#: library/cgi.rst:312
#: library/cgi.rst:325
msgid ""
"Added the *encoding* and *errors* parameters. For non-file fields, the "
"value is now a list of strings, not bytes."
msgstr ""
#: library/cgi.rst:316
#: library/cgi.rst:329
msgid "Added the *separator* parameter."
msgstr ""
#: library/cgi.rst:322
#: library/cgi.rst:337
msgid ""
"This function, like the rest of the :mod:`cgi` module, is deprecated. It can "
"be replaced with the functionality in the :mod:`email` package (e.g. :class:"
"`email.message.EmailMessage`/:class:`email.message.Message`) which "
"implements the same MIME RFCs, or with the `multipart <https://pypi.org/"
"project/multipart/>`__ PyPI project."
msgstr ""
#: library/cgi.rst:342
msgid ""
"Parse a MIME header (such as :mailheader:`Content-Type`) into a main value "
"and a dictionary of parameters."
msgstr ""
#: library/cgi.rst:328
#: library/cgi.rst:355
msgid ""
"This function, like the rest of the :mod:`cgi` module, is deprecated. It can "
"be replaced with the functionality in the :mod:`email` package, which "
"implements the same MIME RFCs."
msgstr ""
#: library/cgi.rst:350
msgid "For example, with :class:`email.message.EmailMessage`::"
msgstr ""
#: library/cgi.rst:360
msgid ""
"Robust test CGI script, usable as main program. Writes minimal HTTP headers "
"and formats all information provided to the script in HTML format."
msgstr ""
#: library/cgi.rst:334
#: library/cgi.rst:366
msgid "Format the shell environment in HTML."
msgstr ""
#: library/cgi.rst:339
#: library/cgi.rst:371
msgid "Format a form in HTML."
msgstr ""
#: library/cgi.rst:344
#: library/cgi.rst:376
msgid "Format the current directory in HTML."
msgstr ""
#: library/cgi.rst:349
#: library/cgi.rst:381
msgid "Print a list of useful (used by CGI) environment variables in HTML."
msgstr ""
#: library/cgi.rst:355
#: library/cgi.rst:387
msgid "Caring about security"
msgstr ""
#: library/cgi.rst:359
#: library/cgi.rst:391
msgid ""
"There's one important rule: if you invoke an external program (via :func:`os."
"system`, :func:`os.popen` or other functions with similar functionality), "
@ -417,25 +465,25 @@ msgid ""
"since the request doesn't have to come from your form!"
msgstr ""
#: library/cgi.rst:367
#: library/cgi.rst:399
msgid ""
"To be on the safe side, if you must pass a string gotten from a form to a "
"shell command, you should make sure the string contains only alphanumeric "
"characters, dashes, underscores, and periods."
msgstr ""
#: library/cgi.rst:373
#: library/cgi.rst:405
msgid "Installing your CGI script on a Unix system"
msgstr ""
#: library/cgi.rst:375
#: library/cgi.rst:407
msgid ""
"Read the documentation for your HTTP server and check with your local system "
"administrator to find the directory where CGI scripts should be installed; "
"usually this is in a directory :file:`cgi-bin` in the server tree."
msgstr ""
#: library/cgi.rst:379
#: library/cgi.rst:411
msgid ""
"Make sure that your script is readable and executable by \"others\"; the "
"Unix file mode should be ``0o755`` octal (use ``chmod 0755 filename``). "
@ -443,12 +491,12 @@ msgid ""
"column 1 followed by the pathname of the Python interpreter, for instance::"
msgstr ""
#: library/cgi.rst:386
#: library/cgi.rst:418
msgid ""
"Make sure the Python interpreter exists and is executable by \"others\"."
msgstr ""
#: library/cgi.rst:388
#: library/cgi.rst:420
msgid ""
"Make sure that any files your script needs to read or write are readable or "
"writable, respectively, by \"others\" --- their mode should be ``0o644`` for "
@ -463,28 +511,28 @@ msgid ""
"anything interesting."
msgstr ""
#: library/cgi.rst:399
#: library/cgi.rst:431
msgid ""
"If you need to load modules from a directory which is not on Python's "
"default module search path, you can change the path in your script, before "
"importing other modules. For example::"
msgstr ""
#: library/cgi.rst:407
#: library/cgi.rst:439
msgid "(This way, the directory inserted last will be searched first!)"
msgstr ""
#: library/cgi.rst:409
#: library/cgi.rst:441
msgid ""
"Instructions for non-Unix systems will vary; check your HTTP server's "
"documentation (it will usually have a section on CGI scripts)."
msgstr ""
#: library/cgi.rst:414
#: library/cgi.rst:446
msgid "Testing your CGI script"
msgstr ""
#: library/cgi.rst:416
#: library/cgi.rst:448
msgid ""
"Unfortunately, a CGI script will generally not run when you try it from the "
"command line, and a script that works perfectly from the command line may "
@ -494,17 +542,17 @@ msgid ""
"will most likely send a cryptic error to the client."
msgstr ""
#: library/cgi.rst:423
#: library/cgi.rst:455
msgid ""
"Assuming your script has no syntax errors, yet it does not work, you have no "
"choice but to read the next section."
msgstr ""
#: library/cgi.rst:428
#: library/cgi.rst:460
msgid "Debugging CGI scripts"
msgstr ""
#: library/cgi.rst:432
#: library/cgi.rst:464
msgid ""
"First of all, check for trivial installation errors --- reading the section "
"above on installing your CGI script carefully can save you a lot of time. "
@ -517,7 +565,7 @@ msgid ""
"your browser of the form:"
msgstr ""
#: library/cgi.rst:445
#: library/cgi.rst:477
msgid ""
"If this gives an error of type 404, the server cannot find the script -- "
"perhaps you need to install it in a different directory. If it gives "
@ -529,19 +577,19 @@ msgid ""
"same procedure for your own script, you should now be able to debug it."
msgstr ""
#: library/cgi.rst:454
#: library/cgi.rst:486
msgid ""
"The next step could be to call the :mod:`cgi` module's :func:`test` function "
"from your script: replace its main code with the single statement ::"
msgstr ""
#: library/cgi.rst:459
#: library/cgi.rst:491
msgid ""
"This should produce the same results as those gotten from installing the :"
"file:`cgi.py` file itself."
msgstr ""
#: library/cgi.rst:462
#: library/cgi.rst:494
msgid ""
"When an ordinary Python script raises an unhandled exception (for whatever "
"reason: of a typo in a module name, a file that can't be opened, etc.), the "
@ -551,28 +599,28 @@ msgid ""
"or be discarded altogether."
msgstr ""
#: library/cgi.rst:469
#: library/cgi.rst:501
msgid ""
"Fortunately, once you have managed to get your script to execute *some* "
"code, you can easily send tracebacks to the web browser using the :mod:"
"`cgitb` module. If you haven't done so already, just add the lines::"
msgstr ""
#: library/cgi.rst:476
#: library/cgi.rst:508
msgid ""
"to the top of your script. Then try running it again; when a problem "
"occurs, you should see a detailed report that will likely make apparent the "
"cause of the crash."
msgstr ""
#: library/cgi.rst:480
#: library/cgi.rst:512
msgid ""
"If you suspect that there may be a problem in importing the :mod:`cgitb` "
"module, you can use an even more robust approach (which only uses built-in "
"modules)::"
msgstr ""
#: library/cgi.rst:489
#: library/cgi.rst:521
msgid ""
"This relies on the Python interpreter to print the traceback. The content "
"type of the output is set to plain text, which disables all HTML "
@ -582,47 +630,47 @@ msgid ""
"interpretation is going on, the traceback will be readable."
msgstr ""
#: library/cgi.rst:498
#: library/cgi.rst:530
msgid "Common problems and solutions"
msgstr ""
#: library/cgi.rst:500
#: library/cgi.rst:532
msgid ""
"Most HTTP servers buffer the output from CGI scripts until the script is "
"completed. This means that it is not possible to display a progress report "
"on the client's display while the script is running."
msgstr ""
#: library/cgi.rst:504
#: library/cgi.rst:536
msgid "Check the installation instructions above."
msgstr ""
#: library/cgi.rst:506
#: library/cgi.rst:538
msgid ""
"Check the HTTP server's log files. (``tail -f logfile`` in a separate "
"window may be useful!)"
msgstr ""
#: library/cgi.rst:509
#: library/cgi.rst:541
msgid ""
"Always check a script for syntax errors first, by doing something like "
"``python script.py``."
msgstr ""
#: library/cgi.rst:512
#: library/cgi.rst:544
msgid ""
"If your script does not have any syntax errors, try adding ``import cgitb; "
"cgitb.enable()`` to the top of the script."
msgstr ""
#: library/cgi.rst:515
#: library/cgi.rst:547
msgid ""
"When invoking external programs, make sure they can be found. Usually, this "
"means using absolute path names --- :envvar:`PATH` is usually not set to a "
"very useful value in a CGI script."
msgstr ""
#: library/cgi.rst:519
#: library/cgi.rst:551
msgid ""
"When reading or writing external files, make sure they can be read or "
"written by the userid under which your CGI script will be running: this is "
@ -630,17 +678,17 @@ msgid ""
"explicitly specified userid for a web server's ``suexec`` feature."
msgstr ""
#: library/cgi.rst:524
#: library/cgi.rst:556
msgid ""
"Don't try to give a CGI script a set-uid mode. This doesn't work on most "
"systems, and is a security liability as well."
msgstr ""
#: library/cgi.rst:528
#: library/cgi.rst:560
msgid "Footnotes"
msgstr "Notes"
#: library/cgi.rst:529
#: library/cgi.rst:561
msgid ""
"Note that some recent versions of the HTML specification do state what order "
"the field values should be supplied in, but knowing whether a request was "

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: 2022-04-05 10:05+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 16:06+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -40,11 +40,22 @@ msgstr ""
"disponibles même pour les utilisateurs qui n'ont pas les privilèges "
"d'écriture dans l'emplacement d'installation."
#: library/compileall.rst:19
#: includes/wasm-notavail.rst:None
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/compileall.rst:20
msgid "Command-line use"
msgstr "Utilisation en ligne de commande"
#: library/compileall.rst:21
#: library/compileall.rst:22
msgid ""
"This module can work as a script (using :program:`python -m compileall`) to "
"compile Python sources."
@ -52,7 +63,7 @@ msgstr ""
"On peut se servir de ce module comme d'un script (avec :program:`python -m "
"compileall`) pour compiler les fichiers source Python."
#: library/compileall.rst:29
#: library/compileall.rst:30
msgid ""
"Positional arguments are files to compile or directories that contain source "
"files, traversed recursively. If no argument is given, behave as if the "
@ -64,7 +75,7 @@ msgstr ""
"reçoit aucun argument, il fait comme s'il avait été appelé avec ``-l <tous "
"les dossiers de sys.path>``."
#: library/compileall.rst:35
#: library/compileall.rst:36
msgid ""
"Do not recurse into subdirectories, only compile source code files directly "
"contained in the named or implied directories."
@ -73,11 +84,11 @@ msgstr ""
"en argument ou implicites, sans descendre récursivement dans les sous-"
"dossiers."
#: library/compileall.rst:40
#: library/compileall.rst:41
msgid "Force rebuild even if timestamps are up-to-date."
msgstr "Forcer la recompilation même si les horodatages sont à jour."
#: library/compileall.rst:44
#: library/compileall.rst:45
msgid ""
"Do not print the list of files compiled. If passed once, error messages will "
"still be printed. If passed twice (``-qq``), all output is suppressed."
@ -86,7 +97,7 @@ msgstr ""
"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez "
"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)."
#: library/compileall.rst:49
#: library/compileall.rst:50
msgid ""
"Directory prepended to the path to each file being compiled. This will "
"appear in compilation time tracebacks, and is also compiled in to the byte-"
@ -100,7 +111,7 @@ msgstr ""
"pour utilisation dans les traces d'appels et autres messages si le fichier "
"source n'existe pas au moment de l'exécution."
#: library/compileall.rst:58
#: library/compileall.rst:59
msgid ""
"Remove (``-s``) or append (``-p``) the given prefix of paths recorded in the "
"``.pyc`` files. Cannot be combined with ``-d``."
@ -108,7 +119,7 @@ msgstr ""
"Retire (``-s``) ou ajoute (``-p``) le préfixe aux chemins stockés dans les "
"fichiers ``.pyc``. Cette option ne peut pas être combinée avec ``-d``."
#: library/compileall.rst:64
#: library/compileall.rst:65
msgid ""
"regex is used to search the full path to each file considered for "
"compilation, and if the regex produces a match, the file is skipped."
@ -116,7 +127,7 @@ msgstr ""
"Exclut tous les fichiers dont les noms correspondent à l'expression "
"régulière *regex*."
#: library/compileall.rst:69
#: library/compileall.rst:70
msgid ""
"Read the file ``list`` and add each line that it contains to the list of "
"files and directories to compile. If ``list`` is ``-``, read lines from "
@ -125,7 +136,7 @@ msgstr ""
"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. "
"*list* peut être ``-``, auquel cas le script lit l'entrée standard."
#: library/compileall.rst:75
#: library/compileall.rst:76
msgid ""
"Write the byte-code files to their legacy locations and names, which may "
"overwrite byte-code files created by another version of Python. The default "
@ -138,7 +149,7 @@ msgstr ""
"Elles permettent à différentes versions de l'interpréteur Python de "
"coexister en conservant chacune ses propres fichiers ``.pyc``."
#: library/compileall.rst:82
#: library/compileall.rst:83
msgid ""
"Control the maximum recursion level for subdirectories. If this is given, "
"then ``-l`` option will not be taken into account. :program:`python -m "
@ -150,7 +161,7 @@ msgstr ""
"compileall <dossier> -r 0` revient au même que :program:`python -m "
"compileall <dossier> -l`."
#: library/compileall.rst:89
#: library/compileall.rst:90
msgid ""
"Use *N* workers to compile the files within the given directory. If ``0`` is "
"used, then the result of :func:`os.cpu_count()` will be used."
@ -159,7 +170,7 @@ msgstr ""
"de processus sont créés que la machine dispose de processeurs (résultat de :"
"func:`os.cpu_count()`)."
#: library/compileall.rst:95
#: library/compileall.rst:96
msgid ""
"Control how the generated byte-code files are invalidated at runtime. The "
"``timestamp`` value, means that ``.pyc`` files with the source timestamp and "
@ -182,7 +193,7 @@ msgstr ""
"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient "
"``checked-hash``."
#: library/compileall.rst:108
#: library/compileall.rst:109
msgid ""
"Compile with the given optimization level. May be used multiple times to "
"compile for multiple levels at a time (for example, ``compileall -o 1 -o "
@ -192,11 +203,11 @@ msgstr ""
"plusieurs fois afin de compiler pour plusieurs niveaux d'un seul coup (par "
"exemple, ``compileall -o 1 -o 2``)."
#: library/compileall.rst:114
#: library/compileall.rst:115
msgid "Ignore symlinks pointing outside the given directory."
msgstr "Ignore les liens symboliques qui redirigent en dehors du dossier."
#: library/compileall.rst:118
#: library/compileall.rst:119
msgid ""
"If two ``.pyc`` files with different optimization level have the same "
"content, use hard links to consolidate duplicate files."
@ -205,11 +216,11 @@ msgstr ""
"différents ont finalement le même contenu, emploie des liens physiques pour "
"les fusionner."
#: library/compileall.rst:121
#: library/compileall.rst:122
msgid "Added the ``-i``, ``-b`` and ``-h`` options."
msgstr "ajout des options ``-i``, ``-b`` et ``-h``."
#: library/compileall.rst:124
#: library/compileall.rst:125
msgid ""
"Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed "
"to a multilevel value. ``-b`` will always produce a byte-code file ending "
@ -219,11 +230,11 @@ msgstr ""
"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code "
"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``."
#: library/compileall.rst:129
#: library/compileall.rst:130
msgid "Added the ``--invalidation-mode`` option."
msgstr "ajout de l'option ``--invalidation-mode``."
#: library/compileall.rst:132
#: library/compileall.rst:133
msgid ""
"Added the ``-s``, ``-p``, ``-e`` and ``--hardlink-dupes`` options. Raised "
"the default recursion limit from 10 to :py:func:`sys.getrecursionlimit()`. "
@ -234,7 +245,7 @@ msgstr ""
"getrecursionlimit()` au lieu de 10 précédemment. L'option ``-o`` peut être "
"passée plusieurs fois."
#: library/compileall.rst:139
#: library/compileall.rst:140
msgid ""
"There is no command-line option to control the optimization level used by "
"the :func:`compile` function, because the Python interpreter itself already "
@ -245,7 +256,7 @@ msgstr ""
"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:"
"`python -O -m compileall`."
#: library/compileall.rst:143
#: library/compileall.rst:144
msgid ""
"Similarly, the :func:`compile` function respects the :attr:`sys."
"pycache_prefix` setting. The generated bytecode cache will only be useful "
@ -258,11 +269,11 @@ msgstr ""
"pycache_prefix` (si tant est qu'elle soit définie) que celle en vigueur au "
"moment d'exécuter le programme."
#: library/compileall.rst:149
#: library/compileall.rst:150
msgid "Public functions"
msgstr "Fonctions publiques"
#: library/compileall.rst:153
#: library/compileall.rst:154
msgid ""
"Recursively descend the directory tree named by *dir*, compiling all :file:`."
"py` files along the way. Return a true value if all the files compiled "
@ -272,7 +283,7 @@ msgstr ""
"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés "
"sans erreur, et une valeur fausse dans le cas contraire."
#: library/compileall.rst:157
#: library/compileall.rst:158
msgid ""
"The *maxlevels* parameter is used to limit the depth of the recursion; it "
"defaults to ``sys.getrecursionlimit()``."
@ -280,7 +291,7 @@ msgstr ""
"Le paramètre *maxlevels* permet de limiter la profondeur de récursion. Sa "
"valeur par défaut est celle de ``sys.getrecursionlimit()``."
#: library/compileall.rst:160
#: library/compileall.rst:161
msgid ""
"If *ddir* is given, it is prepended to the path to each file being compiled "
"for use in compilation time tracebacks, and is also compiled in to the byte-"
@ -294,7 +305,7 @@ msgstr ""
"fichiers de code intermédiaire, pour utilisation dans les traces et autres "
"messages si le fichier source n'existe pas au moment de l'exécution."
#: library/compileall.rst:166
#: library/compileall.rst:167
msgid ""
"If *force* is true, modules are re-compiled even if the timestamps are up to "
"date."
@ -302,7 +313,7 @@ msgstr ""
"Si *force* est vrai, les modules sont recompilés même si leurs horodatages "
"sont à jour."
#: library/compileall.rst:169
#: library/compileall.rst:170
msgid ""
"If *rx* is given, its ``search`` method is called on the complete path to "
"each file considered for compilation, and if it returns a true value, the "
@ -314,7 +325,7 @@ msgstr ""
"est sauté. *rx* sera habituellement une expression régulière (objet :ref:`re."
"Pattern <re-objects>`)."
#: library/compileall.rst:251
#: library/compileall.rst:252
msgid ""
"If *quiet* is ``False`` or ``0`` (the default), the filenames and other "
"information are printed to standard out. Set to ``1``, only errors are "
@ -325,7 +336,7 @@ msgstr ""
"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est "
"émise."
#: library/compileall.rst:255
#: library/compileall.rst:256
msgid ""
"If *legacy* is true, byte-code files are written to their legacy locations "
"and names, which may overwrite byte-code files created by another version of "
@ -340,7 +351,7 @@ msgstr ""
"l'interpréteur Python de coexister en conservant chacune ses propres "
"fichiers ``.pyc``."
#: library/compileall.rst:261
#: library/compileall.rst:262
msgid ""
"*optimize* specifies the optimization level for the compiler. It is passed "
"to the built-in :func:`compile` function. Accepts also a sequence of "
@ -353,7 +364,7 @@ msgstr ""
"d'optimisation, ce qui permet de compiler chaque fichier :file:`.py` "
"plusieurs fois en appliquant divers niveaux d'optimisation."
#: library/compileall.rst:188
#: library/compileall.rst:189
msgid ""
"The argument *workers* specifies how many workers are used to compile files "
"in parallel. The default is to not use multiple workers. If the platform "
@ -369,7 +380,7 @@ msgstr ""
"tâches sont lancées que le système comporte de cœurs. Si *workers* est "
"strictement négatif, une exception de type :exc:`ValueError` est levée."
#: library/compileall.rst:265
#: library/compileall.rst:266
msgid ""
"*invalidation_mode* should be a member of the :class:`py_compile."
"PycInvalidationMode` enum and controls how the generated pycs are "
@ -379,17 +390,18 @@ msgstr ""
"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` "
"sont invalidés lorsque l'interpréteur tente de les utiliser."
#: library/compileall.rst:269
#: library/compileall.rst:270
#, fuzzy
msgid ""
"The *stripdir*, *prependdir* and *limit_sl_dest* arguments correspond to the "
"``-s``, ``-p`` and ``-e`` options described above. They may be specified as "
"``str``, ``bytes`` or :py:class:`os.PathLike`."
"``str`` or :py:class:`os.PathLike`."
msgstr ""
"Les arguments *stripdir*, *prependdir* et *limit_sl_dest* correspondent aux "
"options ``-s``, ``-p`` et ``-e`` décrites plus haut. Ils peuvent être de "
"type ``str``, ``bytes`` ou :py:class:`os.PathLike`."
#: library/compileall.rst:273
#: library/compileall.rst:274
msgid ""
"If *hardlink_dupes* is true and two ``.pyc`` files with different "
"optimization level have the same content, use hard links to consolidate "
@ -398,19 +410,19 @@ msgstr ""
"Un argument *hardlink_dupes* vrai correspond à l'utilisation de l'option ``--"
"hardlink-dupes``."
#: library/compileall.rst:304
#: library/compileall.rst:305
msgid "Added the *legacy* and *optimize* parameter."
msgstr "ajout des paramètres *legacy* et *optimize*."
#: library/compileall.rst:209
#: library/compileall.rst:210
msgid "Added the *workers* parameter."
msgstr "ajout du paramètre *workers*."
#: library/compileall.rst:278 library/compileall.rst:307
#: library/compileall.rst:279 library/compileall.rst:308
msgid "*quiet* parameter was changed to a multilevel value."
msgstr "le paramètre *quiet* peut prendre plusieurs niveaux."
#: library/compileall.rst:281 library/compileall.rst:310
#: library/compileall.rst:282 library/compileall.rst:311
msgid ""
"The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no "
"matter what the value of *optimize* is."
@ -418,26 +430,26 @@ msgstr ""
"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``."
"pyo``, sont générés, quel que soit le niveau d'optimisation."
#: library/compileall.rst:219
#: library/compileall.rst:220
msgid "Accepts a :term:`path-like object`."
msgstr "accepte un :term:`objet simili-chemin <path-like object>`."
#: library/compileall.rst:285 library/compileall.rst:314
#: library/compileall.rst:286 library/compileall.rst:315
msgid "The *invalidation_mode* parameter was added."
msgstr "ajout du paramètre *invalidation_mode*."
#: library/compileall.rst:288 library/compileall.rst:317
#: library/compileall.rst:289 library/compileall.rst:318
msgid "The *invalidation_mode* parameter's default value is updated to None."
msgstr ""
"La valeur par défaut du paramètre *invalidation_mode* est changée à ``None``."
#: library/compileall.rst:228
#: library/compileall.rst:229
msgid "Setting *workers* to 0 now chooses the optimal number of cores."
msgstr ""
"Un nombre de processus adapté à la machine est choisi lorsque *workers* vaut "
"0."
#: library/compileall.rst:231
#: library/compileall.rst:232
msgid ""
"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* "
"arguments. Default value of *maxlevels* was changed from ``10`` to ``sys."
@ -447,7 +459,7 @@ msgstr ""
"*hardlink_dupes*. La valeur par défaut de *maxlevels* a été changée pour "
"``sys.getrecursionlimit()`` (elle était de 10 auparavant)."
#: library/compileall.rst:237
#: library/compileall.rst:238
msgid ""
"Compile the file with path *fullname*. Return a true value if the file "
"compiled successfully, and a false value otherwise."
@ -455,7 +467,7 @@ msgstr ""
"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une "
"valeur vraie si et seulement si le fichier est compilé sans erreur."
#: library/compileall.rst:240
#: library/compileall.rst:241
msgid ""
"If *ddir* is given, it is prepended to the path to the file being compiled "
"for use in compilation time tracebacks, and is also compiled in to the byte-"
@ -469,7 +481,7 @@ msgstr ""
"code intermédiaire, pour utilisation dans les traces et autres messages si "
"le fichier source n'existe pas au moment de l'exécution."
#: library/compileall.rst:246
#: library/compileall.rst:247
msgid ""
"If *rx* is given, its ``search`` method is passed the full path name to the "
"file being compiled, and if it returns a true value, the file is not "
@ -482,7 +494,7 @@ msgstr ""
"est sauté. *rx* sera habituellement une expression régulière (objet :ref:`re."
"Pattern <re-objects>`)."
#: library/compileall.rst:291
#: library/compileall.rst:292
msgid ""
"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* "
"arguments."
@ -490,7 +502,7 @@ msgstr ""
"Ajout des arguments *stripdir*, *prependdir*, *limit_sl_dest* et "
"*hardlink_dupes*."
#: library/compileall.rst:296
#: library/compileall.rst:297
msgid ""
"Byte-compile all the :file:`.py` files found along ``sys.path``. Return a "
"true value if all the files compiled successfully, and a false value "
@ -500,7 +512,7 @@ msgstr ""
"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et "
"une valeur fausse dans le cas contraire."
#: library/compileall.rst:299
#: library/compileall.rst:300
msgid ""
"If *skip_curdir* is true (the default), the current directory is not "
"included in the search. All other parameters are passed to the :func:"
@ -512,7 +524,7 @@ msgstr ""
"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la "
"valeur par défaut de ``maxlevels`` est ``0``."
#: library/compileall.rst:320
#: library/compileall.rst:321
msgid ""
"To force a recompile of all the :file:`.py` files in the :file:`Lib/` "
"subdirectory and all its subdirectories::"
@ -520,10 +532,10 @@ msgstr ""
"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le "
"dossier :file:`Lib/` et tous ses sous-dossiers ::"
#: library/compileall.rst:337
#: library/compileall.rst:338
msgid "Module :mod:`py_compile`"
msgstr "Module :mod:`py_compile`"
#: library/compileall.rst:338
#: library/compileall.rst:339
msgid "Byte-compile a single source file."
msgstr "Compiler un fichier source unique."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\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"
@ -39,38 +39,49 @@ msgid ""
"by the abstract :class:`Executor` class."
msgstr ""
#: library/concurrent.futures.rst:24
#: includes/wasm-notavail.rst:None
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: includes/wasm-notavail.rst:5
msgid ""
"This module does not work or is not available on WebAssembly platforms "
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
"more information."
msgstr ""
#: library/concurrent.futures.rst:25
msgid "Executor Objects"
msgstr ""
#: library/concurrent.futures.rst:28
#: library/concurrent.futures.rst:29
msgid ""
"An abstract class that provides methods to execute calls asynchronously. It "
"should not be used directly, but through its concrete subclasses."
msgstr ""
#: library/concurrent.futures.rst:33
#: library/concurrent.futures.rst:34
msgid ""
"Schedules the callable, *fn*, to be executed as ``fn(*args, **kwargs)`` and "
"returns a :class:`Future` object representing the execution of the "
"callable. ::"
msgstr ""
#: library/concurrent.futures.rst:43
#: library/concurrent.futures.rst:44
msgid "Similar to :func:`map(func, *iterables) <map>` except:"
msgstr ""
#: library/concurrent.futures.rst:45
#: library/concurrent.futures.rst:46
msgid "the *iterables* are collected immediately rather than lazily;"
msgstr ""
#: library/concurrent.futures.rst:47
#: library/concurrent.futures.rst:48
msgid ""
"*func* is executed asynchronously and several calls to *func* may be made "
"concurrently."
msgstr ""
#: library/concurrent.futures.rst:50
#: library/concurrent.futures.rst:51
msgid ""
"The returned iterator raises a :exc:`TimeoutError` if :meth:`~iterator."
"__next__` is called and the result isn't available after *timeout* seconds "
@ -79,13 +90,13 @@ msgid ""
"wait time."
msgstr ""
#: library/concurrent.futures.rst:56
#: library/concurrent.futures.rst:57
msgid ""
"If a *func* call raises an exception, then that exception will be raised "
"when its value is retrieved from the iterator."
msgstr ""
#: library/concurrent.futures.rst:59
#: library/concurrent.futures.rst:60
msgid ""
"When using :class:`ProcessPoolExecutor`, this method chops *iterables* into "
"a number of chunks which it submits to the pool as separate tasks. The "
@ -95,11 +106,11 @@ msgid ""
"size of 1. With :class:`ThreadPoolExecutor`, *chunksize* has no effect."
msgstr ""
#: library/concurrent.futures.rst:67
#: library/concurrent.futures.rst:68
msgid "Added the *chunksize* argument."
msgstr ""
#: library/concurrent.futures.rst:72
#: library/concurrent.futures.rst:73
msgid ""
"Signal the executor that it should free any resources that it is using when "
"the currently pending futures are done executing. Calls to :meth:`Executor."
@ -107,7 +118,7 @@ msgid ""
"`RuntimeError`."
msgstr ""
#: library/concurrent.futures.rst:77
#: library/concurrent.futures.rst:78
msgid ""
"If *wait* is ``True`` then this method will not return until all the pending "
"futures are done executing and the resources associated with the executor "
@ -118,58 +129,68 @@ msgid ""
"are done executing."
msgstr ""
#: library/concurrent.futures.rst:85
#: library/concurrent.futures.rst:86
msgid ""
"If *cancel_futures* is ``True``, this method will cancel all pending futures "
"that the executor has not started running. Any futures that are completed or "
"running won't be cancelled, regardless of the value of *cancel_futures*."
msgstr ""
#: library/concurrent.futures.rst:90
#: library/concurrent.futures.rst:91
msgid ""
"If both *cancel_futures* and *wait* are ``True``, all futures that the "
"executor has started running will be completed prior to this method "
"returning. The remaining futures are cancelled."
msgstr ""
#: library/concurrent.futures.rst:94
#: library/concurrent.futures.rst:95
msgid ""
"You can avoid having to call this method explicitly if you use the :keyword:"
"`with` statement, which will shutdown the :class:`Executor` (waiting as if :"
"meth:`Executor.shutdown` were called with *wait* set to ``True``)::"
msgstr ""
#: library/concurrent.futures.rst:106
#: library/concurrent.futures.rst:107
msgid "Added *cancel_futures*."
msgstr ""
#: library/concurrent.futures.rst:111
#: library/concurrent.futures.rst:112
msgid "ThreadPoolExecutor"
msgstr "ThreadPoolExecutor"
#: library/concurrent.futures.rst:113
#: library/concurrent.futures.rst:114
msgid ""
":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a "
"pool of threads to execute calls asynchronously."
msgstr ""
#: library/concurrent.futures.rst:116
#: library/concurrent.futures.rst:117
msgid ""
"Deadlocks can occur when the callable associated with a :class:`Future` "
"waits on the results of another :class:`Future`. For example::"
msgstr ""
#: library/concurrent.futures.rst:135
#: library/concurrent.futures.rst:136
msgid "And::"
msgstr "Et ::"
#: library/concurrent.futures.rst:149
#: library/concurrent.futures.rst:150
msgid ""
"An :class:`Executor` subclass that uses a pool of at most *max_workers* "
"threads to execute calls asynchronously."
msgstr ""
#: library/concurrent.futures.rst:152
#: library/concurrent.futures.rst:153
msgid ""
"All threads enqueued to ``ThreadPoolExecutor`` will be joined before the "
"interpreter can exit. Note that the exit handler which does this is executed "
"*before* any exit handlers added using ``atexit``. This means exceptions in "
"the main thread must be caught and handled in order to signal threads to "
"exit gracefully. For this reason, it is recommended that "
"``ThreadPoolExecutor`` not be used for long-running tasks."
msgstr ""
#: library/concurrent.futures.rst:160
msgid ""
"*initializer* is an optional callable that is called at the start of each "
"worker thread; *initargs* is a tuple of arguments passed to the "
@ -178,7 +199,7 @@ msgid ""
"well as any attempt to submit more jobs to the pool."
msgstr ""
#: library/concurrent.futures.rst:158
#: library/concurrent.futures.rst:166
msgid ""
"If *max_workers* is ``None`` or not given, it will default to the number of "
"processors on the machine, multiplied by ``5``, assuming that :class:"
@ -187,18 +208,18 @@ msgid ""
"`ProcessPoolExecutor`."
msgstr ""
#: library/concurrent.futures.rst:166
#: library/concurrent.futures.rst:174
msgid ""
"The *thread_name_prefix* argument was added to allow users to control the :"
"class:`threading.Thread` names for worker threads created by the pool for "
"easier debugging."
msgstr ""
#: library/concurrent.futures.rst:171 library/concurrent.futures.rst:273
#: library/concurrent.futures.rst:179 library/concurrent.futures.rst:281
msgid "Added the *initializer* and *initargs* arguments."
msgstr ""
#: library/concurrent.futures.rst:174
#: library/concurrent.futures.rst:182
msgid ""
"Default value of *max_workers* is changed to ``min(32, os.cpu_count() + "
"4)``. This default value preserves at least 5 workers for I/O bound tasks. "
@ -206,21 +227,21 @@ msgid ""
"And it avoids using very large resources implicitly on many-core machines."
msgstr ""
#: library/concurrent.futures.rst:180
#: library/concurrent.futures.rst:188
msgid ""
"ThreadPoolExecutor now reuses idle worker threads before starting "
"*max_workers* worker threads too."
msgstr ""
#: library/concurrent.futures.rst:187
#: library/concurrent.futures.rst:195
msgid "ThreadPoolExecutor Example"
msgstr ""
#: library/concurrent.futures.rst:219
#: library/concurrent.futures.rst:227
msgid "ProcessPoolExecutor"
msgstr "ProcessPoolExecutor"
#: library/concurrent.futures.rst:221
#: library/concurrent.futures.rst:229
msgid ""
"The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that "
"uses a pool of processes to execute calls asynchronously. :class:"
@ -230,20 +251,20 @@ msgid ""
"returned."
msgstr ""
#: library/concurrent.futures.rst:228
#: library/concurrent.futures.rst:236
msgid ""
"The ``__main__`` module must be importable by worker subprocesses. This "
"means that :class:`ProcessPoolExecutor` will not work in the interactive "
"interpreter."
msgstr ""
#: library/concurrent.futures.rst:231
#: library/concurrent.futures.rst:239
msgid ""
"Calling :class:`Executor` or :class:`Future` methods from a callable "
"submitted to a :class:`ProcessPoolExecutor` will result in deadlock."
msgstr ""
#: library/concurrent.futures.rst:236
#: library/concurrent.futures.rst:244
msgid ""
"An :class:`Executor` subclass that executes calls asynchronously using a "
"pool of at most *max_workers* processes. If *max_workers* is ``None`` or "
@ -257,7 +278,7 @@ msgid ""
"not given, the default multiprocessing context is used."
msgstr ""
#: library/concurrent.futures.rst:249
#: library/concurrent.futures.rst:257
msgid ""
"*initializer* is an optional callable that is called at the start of each "
"worker process; *initargs* is a tuple of arguments passed to the "
@ -266,18 +287,18 @@ msgid ""
"well as any attempt to submit more jobs to the pool."
msgstr ""
#: library/concurrent.futures.rst:255
#: library/concurrent.futures.rst:263
msgid ""
"*max_tasks_per_child* is an optional argument that specifies the maximum "
"number of tasks a single process can execute before it will exit and be "
"replaced with a fresh worker process. By default *max_tasks_per_child* is "
"``None`` which means worker processes will live as long as the pool. When a "
"max is specified, the \"spawn\" multiprocessing start method will be used by "
"default in absense of a *mp_context* parameter. This feature is incompatible "
"default in absence of a *mp_context* parameter. This feature is incompatible "
"with the \"fork\" start method."
msgstr ""
#: library/concurrent.futures.rst:263
#: library/concurrent.futures.rst:271
msgid ""
"When one of the worker processes terminates abruptly, a :exc:"
"`BrokenProcessPool` error is now raised. Previously, behaviour was "
@ -285,40 +306,40 @@ msgid ""
"or deadlock."
msgstr ""
#: library/concurrent.futures.rst:269
#: library/concurrent.futures.rst:277
msgid ""
"The *mp_context* argument was added to allow users to control the "
"start_method for worker processes created by the pool."
msgstr ""
#: library/concurrent.futures.rst:275
#: library/concurrent.futures.rst:283
msgid ""
"The *max_tasks_per_child* argument was added to allow users to control the "
"lifetime of workers in the pool."
msgstr ""
#: library/concurrent.futures.rst:283
#: library/concurrent.futures.rst:291
msgid "ProcessPoolExecutor Example"
msgstr ""
#: library/concurrent.futures.rst:321
#: library/concurrent.futures.rst:329
msgid "Future Objects"
msgstr ""
#: library/concurrent.futures.rst:323
#: library/concurrent.futures.rst:331
msgid ""
"The :class:`Future` class encapsulates the asynchronous execution of a "
"callable. :class:`Future` instances are created by :meth:`Executor.submit`."
msgstr ""
#: library/concurrent.futures.rst:328
#: library/concurrent.futures.rst:336
msgid ""
"Encapsulates the asynchronous execution of a callable. :class:`Future` "
"instances are created by :meth:`Executor.submit` and should not be created "
"directly except for testing."
msgstr ""
#: library/concurrent.futures.rst:334
#: library/concurrent.futures.rst:342
msgid ""
"Attempt to cancel the call. If the call is currently being executed or "
"finished running and cannot be cancelled then the method will return "
@ -326,22 +347,22 @@ msgid ""
"``True``."
msgstr ""
#: library/concurrent.futures.rst:341
#: library/concurrent.futures.rst:349
msgid "Return ``True`` if the call was successfully cancelled."
msgstr ""
#: library/concurrent.futures.rst:345
#: library/concurrent.futures.rst:353
msgid ""
"Return ``True`` if the call is currently being executed and cannot be "
"cancelled."
msgstr ""
#: library/concurrent.futures.rst:350
#: library/concurrent.futures.rst:358
msgid ""
"Return ``True`` if the call was successfully cancelled or finished running."
msgstr ""
#: library/concurrent.futures.rst:355
#: library/concurrent.futures.rst:363
msgid ""
"Return the value returned by the call. If the call hasn't yet completed then "
"this method will wait up to *timeout* seconds. If the call hasn't completed "
@ -350,18 +371,18 @@ msgid ""
"no limit to the wait time."
msgstr ""
#: library/concurrent.futures.rst:362 library/concurrent.futures.rst:376
#: library/concurrent.futures.rst:370 library/concurrent.futures.rst:384
msgid ""
"If the future is cancelled before completing then :exc:`.CancelledError` "
"will be raised."
msgstr ""
#: library/concurrent.futures.rst:365
#: library/concurrent.futures.rst:373
msgid ""
"If the call raised an exception, this method will raise the same exception."
msgstr ""
#: library/concurrent.futures.rst:369
#: library/concurrent.futures.rst:377
msgid ""
"Return the exception raised by the call. If the call hasn't yet completed "
"then this method will wait up to *timeout* seconds. If the call hasn't "
@ -370,18 +391,18 @@ msgid ""
"``None``, there is no limit to the wait time."
msgstr ""
#: library/concurrent.futures.rst:379
#: library/concurrent.futures.rst:387
msgid "If the call completed without raising, ``None`` is returned."
msgstr ""
#: library/concurrent.futures.rst:383
#: library/concurrent.futures.rst:391
msgid ""
"Attaches the callable *fn* to the future. *fn* will be called, with the "
"future as its only argument, when the future is cancelled or finishes "
"running."
msgstr ""
#: library/concurrent.futures.rst:387
#: library/concurrent.futures.rst:395
msgid ""
"Added callables are called in the order that they were added and are always "
"called in a thread belonging to the process that added them. If the "
@ -390,74 +411,74 @@ msgid ""
"behavior is undefined."
msgstr ""
#: library/concurrent.futures.rst:393
#: library/concurrent.futures.rst:401
msgid ""
"If the future has already completed or been cancelled, *fn* will be called "
"immediately."
msgstr ""
#: library/concurrent.futures.rst:396
#: library/concurrent.futures.rst:404
msgid ""
"The following :class:`Future` methods are meant for use in unit tests and :"
"class:`Executor` implementations."
msgstr ""
#: library/concurrent.futures.rst:401
#: library/concurrent.futures.rst:409
msgid ""
"This method should only be called by :class:`Executor` implementations "
"before executing the work associated with the :class:`Future` and by unit "
"tests."
msgstr ""
#: library/concurrent.futures.rst:405
#: library/concurrent.futures.rst:413
msgid ""
"If the method returns ``False`` then the :class:`Future` was cancelled, i."
"e. :meth:`Future.cancel` was called and returned `True`. Any threads "
"e. :meth:`Future.cancel` was called and returned ``True``. Any threads "
"waiting on the :class:`Future` completing (i.e. through :func:`as_completed` "
"or :func:`wait`) will be woken up."
msgstr ""
#: library/concurrent.futures.rst:410
#: library/concurrent.futures.rst:418
msgid ""
"If the method returns ``True`` then the :class:`Future` was not cancelled "
"and has been put in the running state, i.e. calls to :meth:`Future.running` "
"will return `True`."
"will return ``True``."
msgstr ""
#: library/concurrent.futures.rst:414
#: library/concurrent.futures.rst:422
msgid ""
"This method can only be called once and cannot be called after :meth:`Future."
"set_result` or :meth:`Future.set_exception` have been called."
msgstr ""
#: library/concurrent.futures.rst:420
#: library/concurrent.futures.rst:428
msgid ""
"Sets the result of the work associated with the :class:`Future` to *result*."
msgstr ""
#: library/concurrent.futures.rst:423 library/concurrent.futures.rst:436
#: library/concurrent.futures.rst:431 library/concurrent.futures.rst:444
msgid ""
"This method should only be used by :class:`Executor` implementations and "
"unit tests."
msgstr ""
#: library/concurrent.futures.rst:426 library/concurrent.futures.rst:439
#: library/concurrent.futures.rst:434 library/concurrent.futures.rst:447
msgid ""
"This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:"
"`Future` is already done."
msgstr ""
#: library/concurrent.futures.rst:433
#: library/concurrent.futures.rst:441
msgid ""
"Sets the result of the work associated with the :class:`Future` to the :"
"class:`Exception` *exception*."
msgstr ""
#: library/concurrent.futures.rst:445
#: library/concurrent.futures.rst:453
msgid "Module Functions"
msgstr ""
#: library/concurrent.futures.rst:449
#: library/concurrent.futures.rst:457
msgid ""
"Wait for the :class:`Future` instances (possibly created by different :class:"
"`Executor` instances) given by *fs* to complete. Duplicate futures given to "
@ -468,14 +489,14 @@ msgid ""
"running futures)."
msgstr ""
#: library/concurrent.futures.rst:457
#: library/concurrent.futures.rst:465
msgid ""
"*timeout* can be used to control the maximum number of seconds to wait "
"before returning. *timeout* can be an int or float. If *timeout* is not "
"specified or ``None``, there is no limit to the wait time."
msgstr ""
#: library/concurrent.futures.rst:461
#: library/concurrent.futures.rst:469
msgid ""
"*return_when* indicates when this function should return. It must be one of "
"the following constants:"
@ -483,28 +504,28 @@ msgstr ""
"*return_when* indique quand la fonction doit se terminer. Il peut prendre "
"les valeurs suivantes :"
#: library/concurrent.futures.rst:467
#: library/concurrent.futures.rst:475
msgid "Constant"
msgstr "Constante"
#: library/concurrent.futures.rst:467
#: library/concurrent.futures.rst:475
msgid "Description"
msgstr "Description"
#: library/concurrent.futures.rst:469
#: library/concurrent.futures.rst:477
msgid ":const:`FIRST_COMPLETED`"
msgstr ":const:`FIRST_COMPLETED`"
#: library/concurrent.futures.rst:469
#: library/concurrent.futures.rst:477
msgid "The function will return when any future finishes or is cancelled."
msgstr ""
"La fonction se termine lorsque n'importe quel futur se termine ou est annulé."
#: library/concurrent.futures.rst:472
#: library/concurrent.futures.rst:480
msgid ":const:`FIRST_EXCEPTION`"
msgstr ":const:`FIRST_EXCEPTION`"
#: library/concurrent.futures.rst:472
#: library/concurrent.futures.rst:480
msgid ""
"The function will return when any future finishes by raising an exception. "
"If no future raises an exception then it is equivalent to :const:"
@ -514,16 +535,16 @@ msgstr ""
"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:"
"`ALL_COMPLETED`."
#: library/concurrent.futures.rst:478
#: library/concurrent.futures.rst:486
msgid ":const:`ALL_COMPLETED`"
msgstr ":const:`ALL_COMPLETED`"
#: library/concurrent.futures.rst:478
#: library/concurrent.futures.rst:486
msgid "The function will return when all futures finish or are cancelled."
msgstr ""
"La fonction se termine lorsque les *futurs* sont tous finis ou annulés."
#: library/concurrent.futures.rst:484
#: library/concurrent.futures.rst:492
msgid ""
"Returns an iterator over the :class:`Future` instances (possibly created by "
"different :class:`Executor` instances) given by *fs* that yields futures as "
@ -536,55 +557,55 @@ msgid ""
"*timeout* is not specified or ``None``, there is no limit to the wait time."
msgstr ""
#: library/concurrent.futures.rst:498
#: library/concurrent.futures.rst:506
msgid ":pep:`3148` -- futures - execute computations asynchronously"
msgstr ""
#: library/concurrent.futures.rst:498
#: library/concurrent.futures.rst:506
msgid ""
"The proposal which described this feature for inclusion in the Python "
"standard library."
msgstr ""
#: library/concurrent.futures.rst:503
#: library/concurrent.futures.rst:511
msgid "Exception classes"
msgstr ""
#: library/concurrent.futures.rst:509
#: library/concurrent.futures.rst:517
msgid "Raised when a future is cancelled."
msgstr ""
#: library/concurrent.futures.rst:513
#: library/concurrent.futures.rst:521
msgid ""
"A deprecated alias of :exc:`TimeoutError`, raised when a future operation "
"exceeds the given timeout."
msgstr ""
#: library/concurrent.futures.rst:518
#: library/concurrent.futures.rst:526
msgid "This class was made an alias of :exc:`TimeoutError`."
msgstr ""
#: library/concurrent.futures.rst:523
#: library/concurrent.futures.rst:531
msgid ""
"Derived from :exc:`RuntimeError`, this exception class is raised when an "
"executor is broken for some reason, and cannot be used to submit or execute "
"new tasks."
msgstr ""
#: library/concurrent.futures.rst:531
#: library/concurrent.futures.rst:539
msgid ""
"Raised when an operation is performed on a future that is not allowed in the "
"current state."
msgstr ""
#: library/concurrent.futures.rst:540
#: library/concurrent.futures.rst:548
msgid ""
"Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class "
"is raised when one of the workers of a :class:`ThreadPoolExecutor` has "
"failed initializing."
msgstr ""
#: library/concurrent.futures.rst:550
#: library/concurrent.futures.rst:558
msgid ""
"Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:"
"`RuntimeError`), this exception class is raised when one of the workers of "

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: 2022-05-22 23:13+0200\n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-11-06 21:37+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -105,7 +105,11 @@ msgstr ""
"L'exemple abstrait suivant présente comment assurer une gestion correcte des "
"ressources ::"
#: library/contextlib.rst:73
#: library/contextlib.rst:69
msgid "The function can then be used like this::"
msgstr ""
#: library/contextlib.rst:75
msgid ""
"The function being decorated must return a :term:`generator`-iterator when "
"called. This iterator must yield exactly one value, which will be bound to "
@ -116,7 +120,7 @@ msgstr ""
"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la "
"clause :keyword:`!as` si précisée."
#: library/contextlib.rst:77
#: library/contextlib.rst:79
msgid ""
"At the point where the generator yields, the block nested in the :keyword:"
"`with` statement is executed. The generator is then resumed after the block "
@ -144,7 +148,7 @@ msgstr ""
"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution "
"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`."
#: library/contextlib.rst:89
#: library/contextlib.rst:91
msgid ""
":func:`contextmanager` uses :class:`ContextDecorator` so the context "
"managers it creates can be used as decorators as well as in :keyword:`with` "
@ -163,11 +167,11 @@ msgstr ""
"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs "
"fois afin d'être utilisés comme décorateurs)."
#: library/contextlib.rst:96
#: library/contextlib.rst:98
msgid "Use of :class:`ContextDecorator`."
msgstr "Utilisation de la classe :class:`ContextDecorator`."
#: library/contextlib.rst:102
#: library/contextlib.rst:104
msgid ""
"Similar to :func:`~contextlib.contextmanager`, but creates an :ref:"
"`asynchronous context manager <async-context-managers>`."
@ -175,7 +179,7 @@ msgstr ""
"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:"
"`gestionnaire de contexte asynchrone <async-context-managers>`."
#: library/contextlib.rst:105
#: library/contextlib.rst:107
msgid ""
"This function is a :term:`decorator` that can be used to define a factory "
"function for :keyword:`async with` statement asynchronous context managers, "
@ -190,11 +194,11 @@ msgstr ""
"doit être appliqué à une fonction renvoyant un :term:`asynchronous "
"generator`."
#: library/contextlib.rst:111
#: library/contextlib.rst:113
msgid "A simple example::"
msgstr "Un exemple simple ::"
#: library/contextlib.rst:129
#: library/contextlib.rst:131
msgid ""
"Context managers defined with :func:`asynccontextmanager` can be used either "
"as decorators or with :keyword:`async with` statements::"
@ -203,7 +207,7 @@ msgstr ""
"peuvent s'utiliser comme décorateurs ou dans les instructions :keyword:"
"`async with` :"
#: library/contextlib.rst:147
#: library/contextlib.rst:149
msgid ""
"When used as a decorator, a new generator instance is implicitly created on "
"each function call. This allows the otherwise \"one-shot\" context managers "
@ -211,7 +215,7 @@ msgid ""
"managers support multiple invocations in order to be used as decorators."
msgstr ""
#: library/contextlib.rst:152
#: library/contextlib.rst:154
#, fuzzy
msgid ""
"Async context managers created with :func:`asynccontextmanager` can be used "
@ -220,7 +224,7 @@ msgstr ""
"Une classe mère qui permet à un gestionnaire de contexte d'être aussi "
"utilisé comme décorateur."
#: library/contextlib.rst:159
#: library/contextlib.rst:161
msgid ""
"Return a context manager that closes *thing* upon completion of the block. "
"This is basically equivalent to::"
@ -228,11 +232,11 @@ msgstr ""
"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. "
"C'est essentiellement équivalent à ::"
#: library/contextlib.rst:171
#: library/contextlib.rst:173
msgid "And lets you write code like this::"
msgstr "Et cela vous permet d'écrire du code tel que ::"
#: library/contextlib.rst:180
#: library/contextlib.rst:182
msgid ""
"without needing to explicitly close ``page``. Even if an error occurs, "
"``page.close()`` will be called when the :keyword:`with` block is exited."
@ -240,7 +244,7 @@ msgstr ""
"sans besoin de fermer explicitement ``page``. Même si une erreur survient, "
"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`."
#: library/contextlib.rst:186
#: library/contextlib.rst:188
#, fuzzy
msgid ""
"Return an async context manager that calls the ``aclose()`` method of "
@ -249,14 +253,14 @@ msgstr ""
"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. "
"C'est essentiellement équivalent à ::"
#: library/contextlib.rst:198
#: library/contextlib.rst:200
msgid ""
"Significantly, ``aclosing()`` supports deterministic cleanup of async "
"generators when they happen to exit early by :keyword:`break` or an "
"exception. For example::"
msgstr ""
#: library/contextlib.rst:209
#: library/contextlib.rst:211
msgid ""
"This pattern ensures that the generator's async exit code is executed in the "
"same context as its iterations (so that exceptions and context variables "
@ -264,7 +268,7 @@ msgid ""
"task it depends on)."
msgstr ""
#: library/contextlib.rst:221
#: library/contextlib.rst:223
msgid ""
"Return a context manager that returns *enter_result* from ``__enter__``, but "
"otherwise does nothing. It is intended to be used as a stand-in for an "
@ -274,11 +278,11 @@ msgstr ""
"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme "
"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::"
#: library/contextlib.rst:235
#: library/contextlib.rst:237
msgid "An example using *enter_result*::"
msgstr "Un exemple utilisant *enter_result* ::"
#: library/contextlib.rst:248
#: library/contextlib.rst:250
#, fuzzy
msgid ""
"It can also be used as a stand-in for :ref:`asynchronous context managers "
@ -287,11 +291,11 @@ msgstr ""
"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:"
"`gestionnaire de contexte asynchrone <async-context-managers>`."
#: library/contextlib.rst:264
#: library/contextlib.rst:266
msgid ":term:`asynchronous context manager` support was added."
msgstr ""
#: library/contextlib.rst:271
#: library/contextlib.rst:273
#, fuzzy
msgid ""
"Return a context manager that suppresses any of the specified exceptions if "
@ -303,7 +307,7 @@ msgstr ""
"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend "
"l'exécution sur la première instruction qui suit la fin du bloc *with*."
#: library/contextlib.rst:276
#: library/contextlib.rst:278
msgid ""
"As with any other mechanism that completely suppresses exceptions, this "
"context manager should be used only to cover very specific errors where "
@ -315,19 +319,19 @@ msgstr ""
"très spécifiques d'erreurs où il est certain que continuer silencieusement "
"l'exécution du programme est la bonne chose à faire."
#: library/contextlib.rst:281
#: library/contextlib.rst:283
msgid "For example::"
msgstr "Par exemple ::"
#: library/contextlib.rst:291
#: library/contextlib.rst:293
msgid "This code is equivalent to::"
msgstr "Ce code est équivalent à ::"
#: library/contextlib.rst:343 library/contextlib.rst:370
#: library/contextlib.rst:345 library/contextlib.rst:372
msgid "This context manager is :ref:`reentrant <reentrant-cms>`."
msgstr "Ce gestionnaire de contexte est :ref:`réentrant <reentrant-cms>`."
#: library/contextlib.rst:310
#: library/contextlib.rst:312
msgid ""
"Context manager for temporarily redirecting :data:`sys.stdout` to another "
"file or file-like object."
@ -335,7 +339,7 @@ msgstr ""
"Gestionnaire de contexte servant à rediriger temporairement :data:`sys."
"stdout` vers un autre fichier ou objet fichier-compatible."
#: library/contextlib.rst:313
#: library/contextlib.rst:315
msgid ""
"This tool adds flexibility to existing functions or classes whose output is "
"hardwired to stdout."
@ -343,7 +347,7 @@ msgstr ""
"Cet outil ajoute une certaine flexibilité aux fonctions ou classes "
"existantes dont la sortie est envoyée vers la sortie standard."
#: library/contextlib.rst:316
#: library/contextlib.rst:318
#, fuzzy
msgid ""
"For example, the output of :func:`help` normally is sent to *sys.stdout*. "
@ -356,7 +360,7 @@ msgstr ""
"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:326
#: library/contextlib.rst:328
msgid ""
"To send the output of :func:`help` to a file on disk, redirect the output to "
"a regular file::"
@ -364,11 +368,11 @@ msgstr ""
"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, "
"redirigez-la sur un fichier normal ::"
#: library/contextlib.rst:333
#: library/contextlib.rst:335
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:338
#: library/contextlib.rst:340
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 "
@ -382,7 +386,7 @@ msgstr ""
"Cependant, cela reste une approche utile pour beaucoup de scripts "
"utilitaires."
#: library/contextlib.rst:350
#: library/contextlib.rst:352
msgid ""
"Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys."
"stderr` to another file or file-like object."
@ -390,30 +394,30 @@ msgstr ""
"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys."
"stderr` vers un autre fichier ou objet fichier-compatible."
#: library/contextlib.rst:360
#: library/contextlib.rst:362
msgid ""
"Non parallel-safe context manager to change the current working directory. "
"As this changes a global state, the working directory, it is not suitable "
"for use in most threaded or async contexts. It is also not suitable for most "
"non-linear code execution, like generators, where the program execution is "
"temporarily relinquished -- unless explicitely desired, you should not yield "
"temporarily relinquished -- unless explicitly desired, you should not yield "
"when this context manager is active."
msgstr ""
#: library/contextlib.rst:367
#: library/contextlib.rst:369
msgid ""
"This is a simple wrapper around :func:`~os.chdir`, it changes the current "
"working directory upon entering and restores the old one on exit."
msgstr ""
#: library/contextlib.rst:377
#: library/contextlib.rst:379
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:379
#: library/contextlib.rst:381
msgid ""
"Context managers inheriting from ``ContextDecorator`` have to implement "
"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional "
@ -424,7 +428,7 @@ msgstr ""
"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en "
"décorateur."
#: library/contextlib.rst:383
#: library/contextlib.rst:385
msgid ""
"``ContextDecorator`` is used by :func:`contextmanager`, so you get this "
"functionality automatically."
@ -432,22 +436,26 @@ msgstr ""
"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous "
"bénéficiez automatiquement de cette fonctionnalité."
#: library/contextlib.rst:386
#: library/contextlib.rst:388
msgid "Example of ``ContextDecorator``::"
msgstr "Exemple de ``ContextDecorator`` ::"
#: library/contextlib.rst:415
#: library/contextlib.rst:473
msgid "The class can then be used like this::"
msgstr ""
#: library/contextlib.rst:419
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:421
#: library/contextlib.rst:425
msgid "``ContextDecorator`` lets you instead write::"
msgstr "``ContextDecorator`` vous permet d'écrire à la place ::"
#: library/contextlib.rst:427
#: library/contextlib.rst:431
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)."
@ -456,7 +464,7 @@ msgstr ""
"seulement à un morceau en particulier (et gagner un niveau d'indentation est "
"toujours appréciable)."
#: library/contextlib.rst:430
#: library/contextlib.rst:434
msgid ""
"Existing context managers that already have a base class can be extended by "
"using ``ContextDecorator`` as a mixin class::"
@ -464,7 +472,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:443
#: library/contextlib.rst:447
msgid ""
"As the decorated function must be able to be called multiple times, the "
"underlying context manager must support use in multiple :keyword:`with` "
@ -477,7 +485,7 @@ msgstr ""
"construction d'origine avec de multiples instructions :keyword:`!with` au "
"sein de la fonction doit être utilisée."
#: library/contextlib.rst:453
#: library/contextlib.rst:457
#, fuzzy
msgid ""
"Similar to :class:`ContextDecorator` but only for asynchronous functions."
@ -485,12 +493,12 @@ msgstr ""
"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte "
"asynchrone."
#: library/contextlib.rst:455
#: library/contextlib.rst:459
#, fuzzy
msgid "Example of ``AsyncContextDecorator``::"
msgstr "Exemple de ``ContextDecorator`` ::"
#: library/contextlib.rst:492
#: library/contextlib.rst:498
msgid ""
"A context manager that is designed to make it easy to programmatically "
"combine other context managers and cleanup functions, especially those that "
@ -501,7 +509,7 @@ msgstr ""
"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des "
"données d'entrée."
#: library/contextlib.rst:496
#: library/contextlib.rst:502
msgid ""
"For example, a set of files may easily be handled in a single with statement "
"as follows::"
@ -509,13 +517,13 @@ msgstr ""
"Par exemple, un ensemble de fichiers peut facilement être géré dans une "
"unique instruction *with* comme suit ::"
#: library/contextlib.rst:505
#: library/contextlib.rst:511
msgid ""
"The :meth:`__enter__` method returns the :class:`ExitStack` instance, and "
"performs no additional operations."
msgstr ""
#: library/contextlib.rst:508
#: library/contextlib.rst:514
msgid ""
"Each instance maintains a stack of registered callbacks that are called in "
"reverse order when the instance is closed (either explicitly or implicitly "
@ -528,7 +536,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:513
#: library/contextlib.rst:519
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 "
@ -538,7 +546,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:517
#: library/contextlib.rst:523
msgid ""
"Since registered callbacks are invoked in the reverse order of registration, "
"this ends up behaving as if multiple nested :keyword:`with` statements had "
@ -554,7 +562,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:524
#: library/contextlib.rst:530
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 "
@ -566,7 +574,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:533
#: library/contextlib.rst:539
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 :"
@ -576,7 +584,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:537
#: library/contextlib.rst:543
msgid ""
"These context managers may suppress exceptions just as they normally would "
"if used directly as part of a :keyword:`with` statement."
@ -585,19 +593,19 @@ msgstr ""
"feraient normalement s'ils étaient utilisés directement derrière une "
"instruction :keyword:`with`."
#: library/contextlib.rst:540
#: library/contextlib.rst:546
msgid ""
"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not a "
"context manager."
msgstr ""
#: library/contextlib.rst:546
#: library/contextlib.rst:552
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:548
#: library/contextlib.rst:554
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:"
@ -607,7 +615,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:552
#: library/contextlib.rst:558
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__` "
@ -618,7 +626,7 @@ msgstr ""
"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à "
"la pile d'appels."
#: library/contextlib.rst:556
#: library/contextlib.rst:562
msgid ""
"By returning true values, these callbacks can suppress exceptions the same "
"way context manager :meth:`__exit__` methods can."
@ -627,7 +635,7 @@ msgstr ""
"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` "
"des gestionnaires de contexte."
#: library/contextlib.rst:559
#: library/contextlib.rst:565
msgid ""
"The passed in object is returned from the function, allowing this method to "
"be used as a function decorator."
@ -635,7 +643,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:564
#: library/contextlib.rst:570
msgid ""
"Accepts an arbitrary callback function and arguments and adds it to the "
"callback stack."
@ -643,7 +651,7 @@ msgstr ""
"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des "
"fonctions de rappel."
#: library/contextlib.rst:567
#: library/contextlib.rst:573
msgid ""
"Unlike the other methods, callbacks added this way cannot suppress "
"exceptions (as they are never passed the exception details)."
@ -652,7 +660,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:570
#: library/contextlib.rst:576
msgid ""
"The passed in callback is returned from the function, allowing this method "
"to be used as a function decorator."
@ -660,7 +668,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:575
#: library/contextlib.rst:581
msgid ""
"Transfers the callback stack to a fresh :class:`ExitStack` instance and "
"returns it. No callbacks are invoked by this operation - instead, they will "
@ -672,7 +680,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:580
#: library/contextlib.rst:586
msgid ""
"For example, a group of files can be opened as an \"all or nothing\" "
"operation as follows::"
@ -680,7 +688,7 @@ msgstr ""
"Par exemple, un groupe de fichiers peut être ouvert comme une opération "
 tout ou rien » comme suit ::"
#: library/contextlib.rst:594
#: library/contextlib.rst:600
msgid ""
"Immediately unwinds the callback stack, invoking callbacks in the reverse "
"order of registration. For any context managers and exit callbacks "
@ -691,7 +699,7 @@ msgstr ""
"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune "
"exception n'est survenue."
#: library/contextlib.rst:601
#: library/contextlib.rst:607
msgid ""
"An :ref:`asynchronous context manager <async-context-managers>`, similar to :"
"class:`ExitStack`, that supports combining both synchronous and asynchronous "
@ -702,7 +710,7 @@ msgstr ""
"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines "
"pour la logique de nettoyage."
#: library/contextlib.rst:606
#: library/contextlib.rst:612
msgid ""
"The :meth:`close` method is not implemented, :meth:`aclose` must be used "
"instead."
@ -710,20 +718,20 @@ msgstr ""
"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt "
"être utilisée."
#: library/contextlib.rst:611
#: library/contextlib.rst:617
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:614
#: library/contextlib.rst:620
msgid ""
"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not an "
"asynchronous context manager."
msgstr ""
#: library/contextlib.rst:620
#: library/contextlib.rst:626
msgid ""
"Similar to :meth:`push` but expects either an asynchronous context manager "
"or a coroutine function."
@ -731,24 +739,24 @@ msgstr ""
"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte "
"asynchrone soit une fonction coroutine."
#: library/contextlib.rst:625
#: library/contextlib.rst:631
msgid "Similar to :meth:`callback` but expects a coroutine function."
msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine."
#: library/contextlib.rst:629
#: library/contextlib.rst:635
msgid "Similar to :meth:`close` but properly handles awaitables."
msgstr ""
"Similaire à :meth:`close` mais gère correctement les tâches asynchrones."
#: library/contextlib.rst:631
#: library/contextlib.rst:637
msgid "Continuing the example for :func:`asynccontextmanager`::"
msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::"
#: library/contextlib.rst:643
#: library/contextlib.rst:649
msgid "Examples and Recipes"
msgstr "Exemples et Recettes"
#: library/contextlib.rst:645
#: library/contextlib.rst:651
msgid ""
"This section describes some examples and recipes for making effective use of "
"the tools provided by :mod:`contextlib`."
@ -756,11 +764,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:650
#: library/contextlib.rst:656
msgid "Supporting a variable number of context managers"
msgstr "Gérer un nombre variable de gestionnaires de contexte"
#: library/contextlib.rst:652
#: library/contextlib.rst:658
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 "
@ -777,7 +785,7 @@ msgstr ""
"collection spécifique de fichiers de l'utilisateur), ou de certains "
"gestionnaires de contexte qui peuvent être optionnels ::"
#: library/contextlib.rst:667
#: library/contextlib.rst:673
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 "
@ -787,11 +795,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:673
#: library/contextlib.rst:679
msgid "Catching exceptions from ``__enter__`` methods"
msgstr "Attraper des exceptions depuis les méthodes ``__enter__``"
#: library/contextlib.rst:675
#: library/contextlib.rst:681
msgid ""
"It is occasionally desirable to catch exceptions from an ``__enter__`` "
"method implementation, *without* inadvertently catching exceptions from the :"
@ -806,7 +814,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:690
#: library/contextlib.rst:696
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 :"
@ -825,11 +833,11 @@ msgstr ""
"gestion de plusieurs situations qui ne peuvent pas être traitées directement "
"dans une instruction :keyword:`with`."
#: library/contextlib.rst:700
#: library/contextlib.rst:706
msgid "Cleaning up in an ``__enter__`` implementation"
msgstr "Nettoyer dans une méthode ``__enter__``"
#: library/contextlib.rst:702
#: library/contextlib.rst:708
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 :"
@ -839,7 +847,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:706
#: library/contextlib.rst:712
msgid ""
"Here's an example of doing this for a context manager that accepts resource "
"acquisition and release functions, along with an optional validation "
@ -849,11 +857,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:746
#: library/contextlib.rst:752
msgid "Replacing any use of ``try-finally`` and flag variables"
msgstr "Remplacer un ``try-finally`` avec une option variable"
#: library/contextlib.rst:748
#: library/contextlib.rst:754
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 "
@ -865,7 +873,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:762
#: library/contextlib.rst:768
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 "
@ -876,7 +884,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:766
#: library/contextlib.rst:772
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 "
@ -886,7 +894,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:778
#: library/contextlib.rst:784
msgid ""
"This allows the intended cleanup up behaviour to be made explicit up front, "
"rather than requiring a separate flag variable."
@ -894,7 +902,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:781
#: library/contextlib.rst:787
msgid ""
"If a particular application uses this pattern a lot, it can be simplified "
"even further by means of a small helper class::"
@ -902,7 +910,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:799
#: library/contextlib.rst:805
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:"
@ -913,7 +921,7 @@ msgstr ""
"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en "
"avance ::"
#: library/contextlib.rst:814
#: library/contextlib.rst:820
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 "
@ -924,12 +932,12 @@ msgstr ""
"doivent être récupérées depuis l'extérieur comme des variables de fermeture "
"(*closure*)."
#: library/contextlib.rst:820
#: library/contextlib.rst:826
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:822
#: library/contextlib.rst:828
msgid ""
":class:`ContextDecorator` makes it possible to use a context manager in both "
"an ordinary ``with`` statement and also as a function decorator."
@ -938,7 +946,7 @@ msgstr ""
"contexte à la fois ordinairement avec une instruction ``with`` ou comme un "
"décorateur de fonction."
#: library/contextlib.rst:825
#: library/contextlib.rst:831
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. "
@ -953,17 +961,17 @@ msgstr ""
"`ContextDecorator` fournit les deux fonctionnalités en une seule "
"définition ::"
#: library/contextlib.rst:846
#: library/contextlib.rst:852
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:852
#: library/contextlib.rst:858
msgid "And also as a function decorator::"
msgstr "Et comme décorateurs de fonctions ::"
#: library/contextlib.rst:859
#: library/contextlib.rst:865
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:"
@ -975,11 +983,11 @@ msgstr ""
"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut "
"utiliser explicitement une instruction ``with``."
#: library/contextlib.rst:867
#: library/contextlib.rst:873
msgid ":pep:`343` - The \"with\" statement"
msgstr ":pep:`343` - The \"with\" statement"
#: library/contextlib.rst:867
#: library/contextlib.rst:873
msgid ""
"The specification, background, and examples for the Python :keyword:`with` "
"statement."
@ -987,11 +995,11 @@ msgstr ""
"La spécification, les motivations et des exemples de l'instruction :keyword:"
"`with` en Python."
#: library/contextlib.rst:873
#: library/contextlib.rst:879
msgid "Single use, reusable and reentrant context managers"
msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants"
#: library/contextlib.rst:875
#: library/contextlib.rst:881
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 "
@ -1004,7 +1012,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:881
#: library/contextlib.rst:887
msgid ""
"This common limitation means that it is generally advisable to create "
"context managers directly in the header of the :keyword:`with` statement "
@ -1015,7 +1023,7 @@ msgstr ""
"`with` où ils sont utilisés (comme montré dans tous les exemples "
"d'utilisation au-dessus)."
#: library/contextlib.rst:885
#: library/contextlib.rst:891
msgid ""
"Files are an example of effectively single use context managers, since the "
"first :keyword:`with` statement will close the file, preventing any further "
@ -1026,7 +1034,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:889
#: library/contextlib.rst:895
msgid ""
"Context managers created using :func:`contextmanager` are also single use "
"context managers, and will complain about the underlying generator failing "
@ -1036,11 +1044,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:917
#: library/contextlib.rst:923
msgid "Reentrant context managers"
msgstr "Gestionnaires de contexte réentrants"
#: library/contextlib.rst:919
#: library/contextlib.rst:925
msgid ""
"More sophisticated context managers may be \"reentrant\". These context "
"managers can not only be used in multiple :keyword:`with` statements, but "
@ -1053,7 +1061,7 @@ msgstr ""
"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même "
"gestionnaire de contexte."
#: library/contextlib.rst:924
#: library/contextlib.rst:930
#, fuzzy
msgid ""
":class:`threading.RLock` is an example of a reentrant context manager, as "
@ -1064,7 +1072,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:943
#: library/contextlib.rst:949
msgid ""
"Real world examples of reentrancy are more likely to involve multiple "
"functions calling each other and hence be far more complicated than this "
@ -1074,7 +1082,7 @@ msgstr ""
"fonctions s'entre-appelant, et donc être bien plus compliqués que cet "
"exemple."
#: library/contextlib.rst:947
#: library/contextlib.rst:953
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, "
@ -1086,11 +1094,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:956
#: library/contextlib.rst:962
msgid "Reusable context managers"
msgstr "Gestionnaires de contexte réutilisables"
#: library/contextlib.rst:958
#: library/contextlib.rst:964
msgid ""
"Distinct from both single use and reentrant context managers are "
"\"reusable\" context managers (or, to be completely explicit, \"reusable, "
@ -1108,7 +1116,7 @@ msgstr ""
"contexte référencée a déjà été utilisée dans une instruction *with* "
"englobante."
#: library/contextlib.rst:965
#: library/contextlib.rst:971
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:"
@ -1118,7 +1126,7 @@ msgstr ""
"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la "
"place utiliser :class:`threading.RLock`)."
#: library/contextlib.rst:969
#: library/contextlib.rst:975
msgid ""
"Another example of a reusable, but not reentrant, context manager is :class:"
"`ExitStack`, as it invokes *all* currently registered callbacks when leaving "
@ -1129,7 +1137,7 @@ msgstr ""
"actuellement enregistrées en quittant l'instruction *with*, sans regarder où "
"ces fonctions ont été ajoutées ::"
#: library/contextlib.rst:1000
#: library/contextlib.rst:1006
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 "
@ -1141,7 +1149,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:1005
#: library/contextlib.rst:1011
msgid ""
"Using separate :class:`ExitStack` instances instead of reusing a single "
"instance avoids that problem::"

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: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-05-26 21:26-0400\n"
"Last-Translator: Martin Chlumsky <martin.chlumsky@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -180,10 +180,11 @@ msgstr ""
"créé le token."
#: library/contextvars.rst:111
#, fuzzy
msgid ""
"A read-only property. Set to the value the variable had before the :meth:"
"`ContextVar.set` method call that created the token. It points to :attr:"
"`Token.MISSING` is the variable was not set before the call."
"`Token.MISSING` if the variable was not set before the call."
msgstr ""
"Propriété en lecture seule. Sa valeur est celle que la variable avait avant "
"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe "
@ -233,6 +234,14 @@ msgstr ""
"copy_context`."
#: library/contextvars.rst:147
msgid ""
"Every thread will have a different top-level :class:`~contextvars.Context` "
"object. This means that a :class:`ContextVar` object behaves in a similar "
"fashion to :func:`threading.local()` when values are assigned in different "
"threads."
msgstr ""
#: library/contextvars.rst:152
msgid "Context implements the :class:`collections.abc.Mapping` interface."
msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`."
@ -246,7 +255,7 @@ msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`."
# lequel est appelée la méthode  »run*. Renvoie###
# library/contextvars.po:238: warning: Mot inconnu : run => ###xte sur lequel
# est appelée la méthode  »run*. Renvoie###
#: library/contextvars.rst:151
#: library/contextvars.rst:156
msgid ""
"Execute ``callable(*args, **kwargs)`` code in the context object the *run* "
"method is called on. Return the result of the execution or propagate an "
@ -256,7 +265,7 @@ msgstr ""
"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y "
"en a une qui s'est produite."
#: library/contextvars.rst:155
#: library/contextvars.rst:160
msgid ""
"Any changes to any context variables that *callable* makes will be contained "
"in the context object::"
@ -264,7 +273,7 @@ msgstr ""
"Tout changement apporté aux variables de contexte effectué par *callable* "
"sera contenu dans l'objet de contexte ::"
#: library/contextvars.rst:184
#: library/contextvars.rst:189
msgid ""
"The method raises a :exc:`RuntimeError` when called on the same context "
"object from more than one OS thread, or when called recursively."
@ -273,11 +282,11 @@ msgstr ""
"objet de contexte depuis plus qu'un fil d'exécution ou quand elle est "
"appelée récursivement."
#: library/contextvars.rst:190
#: library/contextvars.rst:195
msgid "Return a shallow copy of the context object."
msgstr "Renvoie une copie de surface de l'objet de contexte."
#: library/contextvars.rst:194
#: library/contextvars.rst:199
msgid ""
"Return ``True`` if the *context* has a value for *var* set; return ``False`` "
"otherwise."
@ -285,7 +294,7 @@ msgstr ""
"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie "
"``False``."
#: library/contextvars.rst:199
#: library/contextvars.rst:204
msgid ""
"Return the value of the *var* :class:`ContextVar` variable. If the variable "
"is not set in the context object, a :exc:`KeyError` is raised."
@ -293,7 +302,7 @@ msgstr ""
"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable "
"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée."
#: library/contextvars.rst:205
#: library/contextvars.rst:210
msgid ""
"Return the value for *var* if *var* has the value in the context object. "
"Return *default* otherwise. If *default* is not given, return ``None``."
@ -301,26 +310,26 @@ msgstr ""
"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de "
"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)."
#: library/contextvars.rst:211
#: library/contextvars.rst:216
msgid "Return an iterator over the variables stored in the context object."
msgstr ""
"Renvoie un itérateur sur les variables stockées dans l'objet de contexte."
#: library/contextvars.rst:216
#: library/contextvars.rst:221
msgid "Return the number of variables set in the context object."
msgstr "Renvoie le nombre de variables définies dans l'objet de contexte."
#: library/contextvars.rst:220
#: library/contextvars.rst:225
msgid "Return a list of all variables in the context object."
msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte."
#: library/contextvars.rst:224
#: library/contextvars.rst:229
msgid "Return a list of all variables' values in the context object."
msgstr ""
"Renvoie une liste de toutes les valeurs des variables dans l'objet de "
"contexte."
#: library/contextvars.rst:229
#: library/contextvars.rst:234
msgid ""
"Return a list of 2-tuples containing all variables and their values in the "
"context object."
@ -328,11 +337,11 @@ msgstr ""
"Renvoie une liste de paires contenant toutes les variables et leurs valeurs "
"dans l'objet de contexte."
#: library/contextvars.rst:234
#: library/contextvars.rst:239
msgid "asyncio support"
msgstr "Gestion avec *asyncio*"
#: library/contextvars.rst:236
#: library/contextvars.rst:241
msgid ""
"Context variables are natively supported in :mod:`asyncio` and are ready to "
"be used without any extra configuration. For example, here is a simple echo "

Some files were not shown because too many files have changed in this diff Show More