Make merge
ci/woodpecker/pr/woodpecker Pipeline was successful Details

This commit is contained in:
Mathieu Dupuy 2023-07-21 14:56:20 +02:00
parent 052245dccd
commit 1d09cfc3be
No known key found for this signature in database
GPG Key ID: 8A83DA018824DAC3
311 changed files with 46422 additions and 35375 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 := c1aba6a836625d0350fd7450b98d6a5e1778c7c1
CPYTHON_CURRENT_COMMIT := b338ac75405be26b1df6c35e1360a23f0e88f591
LANGUAGE := fr
BRANCH := 3.11

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-10-27 21:13+0200\n"
"Last-Translator: David GIRAUD <davidgiraud@protonmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -721,3 +721,39 @@ msgid ""
"*exporter* MUST be set to the exporting object and *flags* must be passed "
"unmodified. Otherwise, *exporter* MUST be ``NULL``."
msgstr ""
#: c-api/buffer.rst:3
#, fuzzy
msgid "buffer protocol"
msgstr "Protocole tampon"
#: c-api/buffer.rst:3
#, fuzzy
msgid "buffer interface"
msgstr "La structure *buffer*"
#: c-api/buffer.rst:3
#, fuzzy
msgid "(see buffer protocol)"
msgstr "Protocole tampon"
#: c-api/buffer.rst:3
msgid "buffer object"
msgstr ""
#: c-api/buffer.rst:32
#, fuzzy
msgid "PyBufferProcs"
msgstr "Protocole tampon"
#: c-api/buffer.rst:284
msgid "contiguous"
msgstr ""
#: c-api/buffer.rst:284
msgid "C-contiguous"
msgstr ""
#: c-api/buffer.rst:284
msgid "Fortran contiguous"
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-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-05-05 14:32+0200\n"
"Last-Translator: Mindiell <mindiell@mindiell.net>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -118,5 +118,13 @@ msgstr "Version macro de :c:func:`PyByteArray_AsString`."
msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking."
msgstr ""
#: c-api/bytearray.rst:8
msgid "object"
msgstr ""
#: c-api/bytearray.rst:8
msgid "bytearray"
msgstr ""
#~ msgid "Macro version of :c:func:`PyByteArray_Size`."
#~ msgstr "Version macro de :c:func:`PyByteArray_Size`."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2018-07-03 11:50+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -81,187 +81,187 @@ msgid ""
"allowed:"
msgstr ""
#: c-api/bytes.rst:65
#: c-api/bytes.rst:68
msgid "Format Characters"
msgstr "Caractères de format"
#: c-api/bytes.rst:65
#: c-api/bytes.rst:68
msgid "Type"
msgstr "Type"
#: c-api/bytes.rst:65
#: c-api/bytes.rst:68
#, fuzzy
msgid "Comment"
msgstr "Commentaires"
#: c-api/bytes.rst:67
#: c-api/bytes.rst:70
msgid ":attr:`%%`"
msgstr ":attr:`%%`"
#: c-api/bytes.rst:67
#: c-api/bytes.rst:70
msgid "*n/a*"
msgstr ""
#: c-api/bytes.rst:67
#: c-api/bytes.rst:70
msgid "The literal % character."
msgstr ""
#: c-api/bytes.rst:69
#: c-api/bytes.rst:72
msgid ":attr:`%c`"
msgstr ":attr:`%c`"
#: c-api/bytes.rst:72 c-api/bytes.rst:93
#: c-api/bytes.rst:75 c-api/bytes.rst:96
msgid "int"
msgstr "*int*"
#: c-api/bytes.rst:69
#: c-api/bytes.rst:72
msgid "A single byte, represented as a C int."
msgstr ""
#: c-api/bytes.rst:72
#: c-api/bytes.rst:75
msgid ":attr:`%d`"
msgstr ":attr:`%d`"
#: c-api/bytes.rst:72
#: c-api/bytes.rst:75
msgid "Equivalent to ``printf(\"%d\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:75
#: c-api/bytes.rst:78
msgid ":attr:`%u`"
msgstr ":attr:`%u`"
#: c-api/bytes.rst:75
#: c-api/bytes.rst:78
msgid "unsigned int"
msgstr "``unsigned int``"
#: c-api/bytes.rst:75
#: c-api/bytes.rst:78
msgid "Equivalent to ``printf(\"%u\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:78
#: c-api/bytes.rst:81
msgid ":attr:`%ld`"
msgstr ":attr:`%ld`"
#: c-api/bytes.rst:78
#: c-api/bytes.rst:81
msgid "long"
msgstr ""
#: c-api/bytes.rst:78
#: c-api/bytes.rst:81
msgid "Equivalent to ``printf(\"%ld\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:81
#: c-api/bytes.rst:84
msgid ":attr:`%lu`"
msgstr ":attr:`%lu`"
#: c-api/bytes.rst:81
#: c-api/bytes.rst:84
msgid "unsigned long"
msgstr "``unsigned long``"
#: c-api/bytes.rst:81
#: c-api/bytes.rst:84
msgid "Equivalent to ``printf(\"%lu\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:84
#: c-api/bytes.rst:87
msgid ":attr:`%zd`"
msgstr ":attr:`%zd`"
#: c-api/bytes.rst:84
#: c-api/bytes.rst:87
msgid ":c:type:`\\ Py_ssize_t`"
msgstr ""
#: c-api/bytes.rst:84
#: c-api/bytes.rst:87
msgid "Equivalent to ``printf(\"%zd\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:87
#: c-api/bytes.rst:90
msgid ":attr:`%zu`"
msgstr ":attr:`%zu`"
#: c-api/bytes.rst:87
#: c-api/bytes.rst:90
msgid "size_t"
msgstr ""
#: c-api/bytes.rst:87
#: c-api/bytes.rst:90
msgid "Equivalent to ``printf(\"%zu\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:90
#: c-api/bytes.rst:93
msgid ":attr:`%i`"
msgstr ":attr:`%i`"
#: c-api/bytes.rst:90
#: c-api/bytes.rst:93
msgid "Equivalent to ``printf(\"%i\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:93
#: c-api/bytes.rst:96
msgid ":attr:`%x`"
msgstr ":attr:`%x`"
#: c-api/bytes.rst:93
#: c-api/bytes.rst:96
msgid "Equivalent to ``printf(\"%x\")``. [1]_"
msgstr ""
#: c-api/bytes.rst:96
#: c-api/bytes.rst:99
msgid ":attr:`%s`"
msgstr ":attr:`%s`"
#: c-api/bytes.rst:96
#: c-api/bytes.rst:99
msgid "const char\\*"
msgstr ""
#: c-api/bytes.rst:96
#: c-api/bytes.rst:99
msgid "A null-terminated C character array."
msgstr ""
#: c-api/bytes.rst:99
#: c-api/bytes.rst:102
msgid ":attr:`%p`"
msgstr ":attr:`%p`"
#: c-api/bytes.rst:99
#: c-api/bytes.rst:102
msgid "const void\\*"
msgstr ""
#: c-api/bytes.rst:99
#: c-api/bytes.rst:102
msgid ""
"The hex representation of a C pointer. Mostly equivalent to "
"``printf(\"%p\")`` except that it is guaranteed to start with the literal "
"``0x`` regardless of what the platform's ``printf`` yields."
msgstr ""
#: c-api/bytes.rst:108
#: c-api/bytes.rst:111
msgid ""
"An unrecognized format character causes all the rest of the format string to "
"be copied as-is to the result object, and any extra arguments discarded."
msgstr ""
#: c-api/bytes.rst:111
#: c-api/bytes.rst:114
msgid ""
"For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag "
"has effect even when a precision is given."
msgstr ""
#: c-api/bytes.rst:117
#: c-api/bytes.rst:120
msgid ""
"Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two "
"arguments."
msgstr ""
#: c-api/bytes.rst:123
#: c-api/bytes.rst:126
msgid ""
"Return the bytes representation of object *o* that implements the buffer "
"protocol."
msgstr ""
#: c-api/bytes.rst:129
#: c-api/bytes.rst:132
msgid "Return the length of the bytes in bytes object *o*."
msgstr ""
#: c-api/bytes.rst:134
#: c-api/bytes.rst:137
msgid "Similar to :c:func:`PyBytes_Size`, but without error checking."
msgstr ""
#: c-api/bytes.rst:139
#: c-api/bytes.rst:142
msgid ""
"Return a pointer to the contents of *o*. The pointer refers to the internal "
"buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the "
@ -272,24 +272,24 @@ msgid ""
"`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`."
msgstr ""
#: c-api/bytes.rst:151
#: c-api/bytes.rst:154
msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking."
msgstr ""
#: c-api/bytes.rst:156
#: c-api/bytes.rst:159
msgid ""
"Return the null-terminated contents of the object *obj* through the output "
"variables *buffer* and *length*."
msgstr ""
#: c-api/bytes.rst:159
#: c-api/bytes.rst:162
msgid ""
"If *length* is ``NULL``, the bytes object may not contain embedded null "
"bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is "
"raised."
msgstr ""
#: c-api/bytes.rst:163
#: c-api/bytes.rst:166
msgid ""
"The buffer refers to an internal buffer of *obj*, which includes an "
"additional null byte at the end (not counted in *length*). The data must "
@ -299,13 +299,13 @@ msgid ""
"returns ``-1`` and raises :exc:`TypeError`."
msgstr ""
#: c-api/bytes.rst:170
#: c-api/bytes.rst:173
msgid ""
"Previously, :exc:`TypeError` was raised when embedded null bytes were "
"encountered in the bytes object."
msgstr ""
#: c-api/bytes.rst:177
#: c-api/bytes.rst:180
msgid ""
"Create a new bytes object in *\\*bytes* containing the contents of *newpart* "
"appended to *bytes*; the caller will own the new reference. The reference "
@ -314,14 +314,14 @@ msgid ""
"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set."
msgstr ""
#: c-api/bytes.rst:186
#: c-api/bytes.rst:189
msgid ""
"Create a new bytes object in *\\*bytes* containing the contents of *newpart* "
"appended to *bytes*. This version decrements the reference count of "
"*newpart*."
msgstr ""
#: c-api/bytes.rst:193
#: c-api/bytes.rst:196
msgid ""
"A way to resize a bytes object even though it is \"immutable\". Only use "
"this to build up a brand new bytes object; don't use this if the bytes may "
@ -334,3 +334,11 @@ msgid ""
"*\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` "
"is set, and ``-1`` is returned."
msgstr ""
#: c-api/bytes.rst:11
msgid "object"
msgstr ""
#: c-api/bytes.rst:11
msgid "bytes"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -81,17 +81,7 @@ msgid ""
"`~PyTypeObject.tp_call` with the same semantics."
msgstr ""
#: c-api/call.rst:62
msgid ""
"The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class "
"when the class's :py:meth:`~object.__call__` method is reassigned. (This "
"internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it "
"behave differently than the vectorcall function.) In earlier Python "
"versions, vectorcall should only be used with :const:`immutable "
"<Py_TPFLAGS_IMMUTABLETYPE>` or static types."
msgstr ""
#: c-api/call.rst:69
#: c-api/call.rst:60
msgid ""
"A class should not implement vectorcall if that would be slower than "
"*tp_call*. For example, if the callee needs to convert the arguments to an "
@ -99,52 +89,52 @@ msgid ""
"vectorcall."
msgstr ""
#: c-api/call.rst:74
#: c-api/call.rst:65
msgid ""
"Classes can implement the vectorcall protocol by enabling the :const:"
"Classes can implement the vectorcall protocol by enabling the :c:macro:"
"`Py_TPFLAGS_HAVE_VECTORCALL` flag and setting :c:member:`~PyTypeObject."
"tp_vectorcall_offset` to the offset inside the object structure where a "
"*vectorcallfunc* appears. This is a pointer to a function with the following "
"signature:"
msgstr ""
#: c-api/call.rst:82
#: c-api/call.rst:73
msgid "*callable* is the object being called."
msgstr ""
#: c-api/call.rst:84
#: c-api/call.rst:75
msgid ""
"*args* is a C array consisting of the positional arguments followed by the"
msgstr ""
#: c-api/call.rst:84
#: c-api/call.rst:75
msgid ""
"values of the keyword arguments. This can be *NULL* if there are no "
"arguments."
msgstr ""
#: c-api/call.rst:88
#: c-api/call.rst:79
msgid "*nargsf* is the number of positional arguments plus possibly the"
msgstr ""
#: c-api/call.rst:87
#: c-api/call.rst:78
msgid ""
":const:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of "
":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of "
"positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`."
msgstr ""
#: c-api/call.rst:94
#: c-api/call.rst:85
msgid "*kwnames* is a tuple containing the names of the keyword arguments;"
msgstr ""
#: c-api/call.rst:91
#: c-api/call.rst:82
msgid ""
"in other words, the keys of the kwargs dict. These names must be strings "
"(instances of ``str`` or a subclass) and they must be unique. If there are "
"no keyword arguments, then *kwnames* can instead be *NULL*."
msgstr ""
#: c-api/call.rst:98
#: c-api/call.rst:89
msgid ""
"If this flag is set in a vectorcall *nargsf* argument, the callee is allowed "
"to temporarily change ``args[-1]``. In other words, *args* points to "
@ -152,28 +142,28 @@ msgid ""
"value of ``args[-1]`` before returning."
msgstr ""
#: c-api/call.rst:103
#: c-api/call.rst:94
msgid ""
"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that "
"``args[0]`` may be changed."
msgstr ""
#: c-api/call.rst:106
#: c-api/call.rst:97
msgid ""
"Whenever they can do so cheaply (without additional allocation), callers are "
"encouraged to use :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will "
"encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will "
"allow callables such as bound methods to make their onward calls (which "
"include a prepended *self* argument) very efficiently."
msgstr ""
#: c-api/call.rst:111
#: c-api/call.rst:102
msgid ""
"To call an object that implements vectorcall, use a :ref:`call API <capi-"
"call>` function as with any other callable. :c:func:`PyObject_Vectorcall` "
"will usually be most efficient."
msgstr ""
#: c-api/call.rst:118
#: c-api/call.rst:109
msgid ""
"In CPython 3.8, the vectorcall API and related functions were available "
"provisionally under names with a leading underscore: "
@ -185,41 +175,41 @@ msgid ""
"as aliases of the new, non-underscored names."
msgstr ""
#: c-api/call.rst:130
#: c-api/call.rst:121
msgid "Recursion Control"
msgstr "Contrôle de la récursion"
#: c-api/call.rst:132
#: c-api/call.rst:123
msgid ""
"When using *tp_call*, callees do not need to worry about :ref:`recursion "
"<recursion>`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:"
"`Py_LeaveRecursiveCall` for calls made using *tp_call*."
msgstr ""
#: c-api/call.rst:137
#: c-api/call.rst:128
msgid ""
"For efficiency, this is not the case for calls done using vectorcall: the "
"callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if "
"needed."
msgstr ""
#: c-api/call.rst:143
#: c-api/call.rst:134
msgid "Vectorcall Support API"
msgstr ""
#: c-api/call.rst:147
#: c-api/call.rst:138
msgid ""
"Given a vectorcall *nargsf* argument, return the actual number of arguments. "
"Currently equivalent to::"
msgstr ""
#: c-api/call.rst:153
#: c-api/call.rst:144
msgid ""
"However, the function ``PyVectorcall_NARGS`` should be used to allow for "
"future extensions."
msgstr ""
#: c-api/call.rst:160
#: 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*. "
@ -227,31 +217,31 @@ msgid ""
"function never raises an exception."
msgstr ""
#: c-api/call.rst:165
#: 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:172
#: 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:175
#: 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``. "
"It does not check the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does "
"It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does "
"not fall back to ``tp_call``."
msgstr ""
#: c-api/call.rst:186
#: c-api/call.rst:177
msgid "Object Calling API"
msgstr ""
#: c-api/call.rst:188
#: 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 "
@ -259,130 +249,130 @@ msgid ""
"pick one that best fits the format of data you have available."
msgstr ""
#: c-api/call.rst:194
#: c-api/call.rst:185
msgid ""
"The following table summarizes the available functions; please see "
"individual documentation for details."
msgstr ""
#: c-api/call.rst:198
#: c-api/call.rst:189
msgid "Function"
msgstr "Fonction"
#: c-api/call.rst:198
#: c-api/call.rst:189
msgid "callable"
msgstr ""
#: c-api/call.rst:198
#: c-api/call.rst:189
msgid "args"
msgstr ""
#: c-api/call.rst:198
#: c-api/call.rst:189
msgid "kwargs"
msgstr ""
#: c-api/call.rst:200
#: c-api/call.rst:191
msgid ":c:func:`PyObject_Call`"
msgstr ""
#: c-api/call.rst:202 c-api/call.rst:206 c-api/call.rst:212 c-api/call.rst:222
#: 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:200
#: c-api/call.rst:191
msgid "tuple"
msgstr ""
#: c-api/call.rst:222
#: c-api/call.rst:213
msgid "dict/``NULL``"
msgstr ""
#: c-api/call.rst:202
#: c-api/call.rst:193
msgid ":c:func:`PyObject_CallNoArgs`"
msgstr ""
#: c-api/call.rst:204 c-api/call.rst:208 c-api/call.rst:212 c-api/call.rst:216
#: c-api/call.rst:218
#: 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:204
#: c-api/call.rst:195
msgid ":c:func:`PyObject_CallOneArg`"
msgstr ""
#: c-api/call.rst:218
#: c-api/call.rst:209
msgid "1 object"
msgstr ""
#: c-api/call.rst:206
#: c-api/call.rst:197
msgid ":c:func:`PyObject_CallObject`"
msgstr ""
#: c-api/call.rst:206
#: c-api/call.rst:197
msgid "tuple/``NULL``"
msgstr ""
#: c-api/call.rst:208
#: c-api/call.rst:199
msgid ":c:func:`PyObject_CallFunction`"
msgstr ""
#: c-api/call.rst:210
#: c-api/call.rst:201
msgid "format"
msgstr "format"
#: c-api/call.rst:210
#: c-api/call.rst:201
msgid ":c:func:`PyObject_CallMethod`"
msgstr ""
#: c-api/call.rst:210
#: c-api/call.rst:201
msgid "obj + ``char*``"
msgstr ""
#: c-api/call.rst:212
#: c-api/call.rst:203
msgid ":c:func:`PyObject_CallFunctionObjArgs`"
msgstr ""
#: c-api/call.rst:214
#: c-api/call.rst:205
msgid "variadic"
msgstr ""
#: c-api/call.rst:214
#: c-api/call.rst:205
msgid ":c:func:`PyObject_CallMethodObjArgs`"
msgstr ""
#: c-api/call.rst:216 c-api/call.rst:218
#: c-api/call.rst:207 c-api/call.rst:209
msgid "obj + name"
msgstr ""
#: c-api/call.rst:216
#: c-api/call.rst:207
msgid ":c:func:`PyObject_CallMethodNoArgs`"
msgstr ""
#: c-api/call.rst:218
#: c-api/call.rst:209
msgid ":c:func:`PyObject_CallMethodOneArg`"
msgstr ""
#: c-api/call.rst:220
#: c-api/call.rst:211
msgid ":c:func:`PyObject_Vectorcall`"
msgstr ""
#: c-api/call.rst:222 c-api/call.rst:224
#: c-api/call.rst:213 c-api/call.rst:215
msgid "vectorcall"
msgstr ""
#: c-api/call.rst:222
#: c-api/call.rst:213
msgid ":c:func:`PyObject_VectorcallDict`"
msgstr ""
#: c-api/call.rst:224
#: c-api/call.rst:215
msgid ":c:func:`PyObject_VectorcallMethod`"
msgstr ""
#: c-api/call.rst:224
#: c-api/call.rst:215
msgid "arg + name"
msgstr ""
#: c-api/call.rst:230
#: 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*."
@ -391,49 +381,49 @@ msgstr ""
"le *n*-uplet *args*, et des arguments nommés donnés par le dictionnaire "
"*kwargs*."
#: c-api/call.rst:233
#: 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:248 c-api/call.rst:270 c-api/call.rst:302 c-api/call.rst:335
#: c-api/call.rst:356 c-api/call.rst:403
#: 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:239
#: 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:245
#: 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:256
#: 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:267
#: 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:285
#: 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:278
#: 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` "
@ -441,57 +431,57 @@ msgid ""
"are provided."
msgstr ""
#: c-api/call.rst:287
#: c-api/call.rst:278
msgid ""
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:290
#: c-api/call.rst:281
msgid "The type of *format* was changed from ``char *``."
msgstr ""
#: c-api/call.rst:296
#: 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:300
#: c-api/call.rst:291
msgid "The format can be *NULL*, indicating that no arguments are provided."
msgstr ""
#: c-api/call.rst:305
#: c-api/call.rst:296
msgid ""
"This is the equivalent of the Python expression: ``obj.name(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:308
#: c-api/call.rst:299
msgid ""
"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:311
#: c-api/call.rst:302
msgid "The types of *name* and *format* were changed from ``char *``."
msgstr ""
#: c-api/call.rst:317
#: c-api/call.rst:308
msgid ""
"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:324
#: c-api/call.rst:315
msgid ""
"This is the equivalent of the Python expression: ``callable(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:330
#: 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 "
@ -499,34 +489,34 @@ msgid ""
"variable number of parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:341
#: 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:352
#: 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:364
#: 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:376
#: 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:380
#: 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 "
@ -534,29 +524,29 @@ msgid ""
"tuple for the positional arguments."
msgstr ""
#: c-api/call.rst:390
#: 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 "
"is *args[0]*, and the *args* array starting at *args[1]* represents the "
"arguments of the call. There must be at least one positional argument. "
"*nargsf* is the number of positional arguments including *args[0]*, plus :"
"const:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may "
"*nargsf* is the number of positional arguments including *args[0]*, plus :c:"
"macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may "
"temporarily be changed. Keyword arguments can be passed just like in :c:func:"
"`PyObject_Vectorcall`."
msgstr ""
#: c-api/call.rst:399
#: c-api/call.rst:390
msgid ""
"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"will call the unbound method object with the full *args* vector as arguments."
msgstr ""
#: c-api/call.rst:410
#: c-api/call.rst:401
msgid "Call Support API"
msgstr ""
#: c-api/call.rst:414
#: 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: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -199,3 +199,12 @@ msgid ""
"Set the void pointer inside *capsule* to *pointer*. The pointer may not be "
"``NULL``."
msgstr ""
#: c-api/capsule.rst:8
msgid "object"
msgstr ""
#: c-api/capsule.rst:8
#, fuzzy
msgid "Capsule"
msgstr "Capsules"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -56,57 +56,33 @@ msgid "Return the number of free variables in *co*."
msgstr "Renvoie le nombre de variables libres dans *co*."
#: c-api/code.rst:38
msgid ""
"Return a new code object. If you need a dummy code object to create a "
"frame, use :c:func:`PyCode_NewEmpty` instead."
msgstr ""
#: c-api/code.rst:41
msgid ""
"Since the definition of the bytecode changes often, calling :c:func:"
"`PyCode_New` directly can bind you to a precise Python version."
msgstr ""
#: c-api/code.rst:44
#, fuzzy
msgid ""
"The many arguments of this function are inter-dependent in complex ways, "
"meaning that subtle changes to values are likely to result in incorrect "
"execution or VM crashes. Use this function only with extreme care."
"Return a new code object. If you need a dummy code object to create a "
"frame, use :c:func:`PyCode_NewEmpty` instead. Calling :c:func:`PyCode_New` "
"directly will bind you to a precise Python version since the definition of "
"the bytecode changes often. The many arguments of this function are inter-"
"dependent in complex ways, meaning that subtle changes to values are likely "
"to result in incorrect execution or VM crashes. Use this function only with "
"extreme care."
msgstr ""
"Renvoie un nouvel objet *code*. Si vous avez besoin d'un objet code factice "
"pour créer une *frame*, utilisez plutôt :c:func:`PyCode_NewEmpty`. Appeler :"
"c:func:`PyCode_New` peut vous lier directement à une version spécifique de "
"Python, le *bytecode* étant sujet à modifications."
#: c-api/code.rst:68
#: c-api/code.rst:55
msgid "Added ``exceptiontable`` parameter."
msgstr ""
#: c-api/code.rst:55
msgid ""
"Renamed from ``PyCode_New`` as part of :ref:`unstable-c-api`. The old name "
"is deprecated, but will remain available until the signature changes again."
msgstr ""
#: c-api/code.rst:61
#: c-api/code.rst:50
msgid ""
"Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for "
"positional-only arguments. The same caveats that apply to ``PyCode_New`` "
"also apply to this function."
msgstr ""
#: c-api/code.rst:66
msgid "as ``PyCode_NewWithPosOnlyArgs``"
msgstr ""
#: c-api/code.rst:73
msgid ""
"Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is "
"deprecated, but will remain available until the signature changes again."
msgstr ""
#: c-api/code.rst:79
#: c-api/code.rst:60
#, fuzzy
msgid ""
"Return a new empty code object with the specified filename, function name, "
@ -117,53 +93,53 @@ msgstr ""
"et le numéro de première ligne donnés. Il n'est pas permis d'utiliser :func:"
"`exec` ou :func:`eval` sur l'objet renvoyé."
#: c-api/code.rst:85
#: c-api/code.rst:66
msgid ""
"Return the line number of the instruction that occurs on or before "
"``byte_offset`` and ends after it. If you just need the line number of a "
"frame, use :c:func:`PyFrame_GetLineNumber` instead."
msgstr ""
#: c-api/code.rst:88
#: c-api/code.rst:69
msgid ""
"For efficiently iterating over the line numbers in a code object, use `the "
"API described in PEP 626 <https://peps.python.org/pep-0626/#out-of-process-"
"debuggers-and-profilers>`_."
msgstr ""
#: c-api/code.rst:93
#: c-api/code.rst:74
msgid ""
"Sets the passed ``int`` pointers to the source code line and column numbers "
"for the instruction at ``byte_offset``. Sets the value to ``0`` when "
"information is not available for any particular element."
msgstr ""
#: c-api/code.rst:97
#: c-api/code.rst:78
msgid "Returns ``1`` if the function succeeds and 0 otherwise."
msgstr ""
#: c-api/code.rst:103
#: c-api/code.rst:84
msgid ""
"Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong "
"reference to a :c:type:`PyBytesObject` representing the bytecode in a code "
"object. On error, ``NULL`` is returned and an exception is raised."
msgstr ""
#: c-api/code.rst:108
#: c-api/code.rst:89
msgid ""
"This ``PyBytesObject`` may be created on-demand by the interpreter and does "
"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:116
#: c-api/code.rst:97
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:125
#: c-api/code.rst:106
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 "
@ -171,161 +147,23 @@ msgid ""
"returned and an exception is raised."
msgstr ""
#: c-api/code.rst:134
#: c-api/code.rst:115
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 ""
#: c-api/code.rst:142
msgid ""
"Register *callback* as a code object watcher for the current interpreter. "
"Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case "
"of error (e.g. no more watcher IDs available), return ``-1`` and set an "
"exception."
#: c-api/code.rst:3
#, fuzzy
msgid "object"
msgstr "Objets code"
#: c-api/code.rst:3
msgid "code"
msgstr ""
#: c-api/code.rst:151
msgid ""
"Clear watcher identified by *watcher_id* previously returned from :c:func:"
"`PyCode_AddWatcher` for the current interpreter. Return ``0`` on success, or "
"``-1`` and set an exception on error (e.g. if the given *watcher_id* was "
"never registered.)"
msgstr ""
#: c-api/code.rst:160
msgid ""
"Enumeration of possible code object watcher events: - "
"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``"
msgstr ""
#: c-api/code.rst:168
msgid "Type of a code object watcher callback function."
msgstr ""
#: c-api/code.rst:170
msgid ""
"If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after "
"`co` has been fully initialized. Otherwise, the callback is invoked before "
"the destruction of *co* takes place, so the prior state of *co* can be "
"inspected."
msgstr ""
#: c-api/code.rst:175
msgid ""
"If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback "
"to the about-to-be-destroyed code object will resurrect it and prevent it "
"from being freed at this time. When the resurrected object is destroyed "
"later, any watcher callbacks active at that time will be called again."
msgstr ""
#: c-api/code.rst:180
msgid ""
"Users of this API should not rely on internal runtime implementation "
"details. Such details may include, but are not limited to, the exact order "
"and timing of creation and destruction of code objects. While changes in "
"these details may result in differences observable by watchers (including "
"whether a callback is invoked or not), it does not change the semantics of "
"the Python code being executed."
msgstr ""
#: c-api/code.rst:187
msgid ""
"If the callback sets an exception, it must return ``-1``; this exception "
"will be printed as an unraisable exception using :c:func:"
"`PyErr_WriteUnraisable`. Otherwise it should return ``0``."
msgstr ""
#: c-api/code.rst:191
msgid ""
"There may already be a pending exception set on entry to the callback. In "
"this case, the callback should return ``0`` with the same exception still "
"set. This means the callback may not call any other API that can set an "
"exception unless it saves and clears the exception state first, and restores "
"it before returning."
msgstr ""
#: c-api/code.rst:201
msgid "Extra information"
msgstr ""
#: c-api/code.rst:203
msgid ""
"To support low-level extensions to frame evaluation, such as external just-"
"in-time compilers, it is possible to attach arbitrary extra data to code "
"objects."
msgstr ""
#: c-api/code.rst:207
msgid ""
"These functions are part of the unstable C API tier: this functionality is a "
"CPython implementation detail, and the API may change without deprecation "
"warnings."
msgstr ""
#: c-api/code.rst:213
msgid "Return a new an opaque index value used to adding data to code objects."
msgstr ""
#: c-api/code.rst:215
msgid ""
"You generally call this function once (per interpreter) and use the result "
"with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on "
"individual code objects."
msgstr ""
#: c-api/code.rst:219
msgid ""
"If *free* is not ``NULL``: when a code object is deallocated, *free* will be "
"called on non-``NULL`` data stored under the new index. Use :c:func:"
"`Py_DecRef` when storing :c:type:`PyObject`."
msgstr ""
#: c-api/code.rst:225
msgid "as ``_PyEval_RequestCodeExtraIndex``"
msgstr ""
#: c-api/code.rst:229
msgid ""
"Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name "
"is deprecated, but will be available until the API changes."
msgstr ""
#: c-api/code.rst:235
msgid ""
"Set *extra* to the extra data stored under the given index. Return 0 on "
"success. Set an exception and return -1 on failure."
msgstr ""
#: c-api/code.rst:238
msgid ""
"If no data was set under the index, set *extra* to ``NULL`` and return 0 "
"without setting an exception."
msgstr ""
#: c-api/code.rst:243
msgid "as ``_PyCode_GetExtra``"
msgstr ""
#: c-api/code.rst:247
msgid ""
"Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, "
"but will be available until the API changes."
msgstr ""
#: c-api/code.rst:253
msgid ""
"Set the extra data stored under the given index to *extra*. Return 0 on "
"success. Set an exception and return -1 on failure."
msgstr ""
#: c-api/code.rst:258
msgid "as ``_PyCode_SetExtra``"
msgstr ""
#: c-api/code.rst:262
msgid ""
"Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, "
"but will be available until the API changes."
msgstr ""
#: c-api/code.rst:3
#, fuzzy
msgid "code object"
msgstr "Objets code"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -99,9 +99,10 @@ msgstr ""
"`Py_complex` en C."
#: c-api/complex.rst:66
#, fuzzy
msgid ""
"If *divisor* is null, this method returns zero and sets :c:data:`errno` to :"
"c:data:`EDOM`."
"c:macro:`EDOM`."
msgstr ""
"Si *divisor* est nul, cette méthode renvoie zéro et assigne :c:data:`EDOM` "
"à :c:data:`errno`."
@ -115,9 +116,10 @@ msgstr ""
"en C."
#: c-api/complex.rst:75
#, fuzzy
msgid ""
"If *num* is null and *exp* is not a positive real number, this method "
"returns zero and sets :c:data:`errno` to :c:data:`EDOM`."
"returns zero and sets :c:data:`errno` to :c:macro:`EDOM`."
msgstr ""
"Si *num* est nul et *exp* n'est pas un nombre réel positif, cette méthode "
"renvoie zéro et assigne :c:data:`EDOM` à :c:data:`errno`."
@ -196,12 +198,12 @@ msgstr ""
#: c-api/complex.rst:130
#, fuzzy
msgid ""
"If *op* is not a Python complex number object but has a :meth:`__complex__` "
"method, this method will first be called to convert *op* to a Python complex "
"number object. If ``__complex__()`` is not defined then it falls back to :"
"meth:`__float__`. If ``__float__()`` is not defined then it falls back to :"
"meth:`__index__`. Upon failure, this method returns ``-1.0`` as a real "
"value."
"If *op* is not a Python complex number object but has a :meth:`~object."
"__complex__` method, this method will first be called to convert *op* to a "
"Python complex number object. If :meth:`!__complex__` is not defined then "
"it falls back to :meth:`~object.__float__`. If :meth:`!__float__` is not "
"defined then it falls back to :meth:`~object.__index__`. Upon failure, this "
"method returns ``-1.0`` as a real value."
msgstr ""
"Si *op* n'est pas un nombre complexe Python mais a une méthode :meth:"
"`__complex__`, cette méthode est d'abord appelée pour convertir *op* en "
@ -209,5 +211,14 @@ msgstr ""
"tant que nombre réel."
#: c-api/complex.rst:137
msgid "Use :meth:`__index__` if available."
msgid "Use :meth:`~object.__index__` if available."
msgstr ""
#: c-api/complex.rst:8
msgid "object"
msgstr ""
#: c-api/complex.rst:8
#, fuzzy
msgid "complex number"
msgstr "Objets représentant des nombres complexes"

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-01-28 14:56+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -89,3 +89,19 @@ msgstr "Objets fonctions"
#: c-api/concrete.rst:102
msgid "Other Objects"
msgstr "Autres objets"
#: c-api/concrete.rst:58 c-api/concrete.rst:80
msgid "object"
msgstr ""
#: c-api/concrete.rst:43
msgid "numeric"
msgstr ""
#: c-api/concrete.rst:58
msgid "sequence"
msgstr ""
#: c-api/concrete.rst:80
msgid "mapping"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -110,40 +110,41 @@ msgid ""
"``NULL`` if the key *key* is not present, but *without* setting an exception."
msgstr ""
#: c-api/dict.rst:101
#: c-api/dict.rst:103
msgid ""
"Note that exceptions which occur while calling :meth:`__hash__` and :meth:"
"`__eq__` methods will get suppressed. To get error reporting use :c:func:"
"`PyDict_GetItemWithError()` instead."
"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:"
"`~object.__eq__` methods are silently ignored. Prefer the :c:func:"
"`PyDict_GetItemWithError` function instead."
msgstr ""
#: c-api/dict.rst:105
#: c-api/dict.rst:107
msgid ""
"Calling this API without :term:`GIL` held had been allowed for historical "
"reason. It is no longer allowed."
msgstr ""
#: c-api/dict.rst:112
#: c-api/dict.rst:114
msgid ""
"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. "
"Return ``NULL`` **with** an exception set if an exception occurred. Return "
"``NULL`` **without** an exception set if the key wasn't present."
msgstr ""
#: c-api/dict.rst:120
#: c-api/dict.rst:122
msgid ""
"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:"
"expr:`const char*`, rather than a :c:expr:`PyObject*`."
msgstr ""
#: c-api/dict.rst:123
#: c-api/dict.rst:127
msgid ""
"Note that exceptions which occur while calling :meth:`__hash__` and :meth:"
"`__eq__` methods and creating a temporary string object will get suppressed. "
"To get error reporting use :c:func:`PyDict_GetItemWithError()` instead."
"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:"
"`~object.__eq__` methods or while creating the temporary :class:`str` object "
"are silently ignored. Prefer using the :c:func:`PyDict_GetItemWithError` "
"function with your own :c:func:`PyUnicode_FromString` *key* instead."
msgstr ""
#: c-api/dict.rst:131
#: c-api/dict.rst:136
msgid ""
"This is the same as the Python-level :meth:`dict.setdefault`. If present, "
"it returns the value corresponding to *key* from the dictionary *p*. If the "
@ -153,29 +154,29 @@ msgid ""
"the insertion."
msgstr ""
#: c-api/dict.rst:141
#: c-api/dict.rst:146
msgid ""
"Return a :c:type:`PyListObject` containing all the items from the dictionary."
msgstr ""
#: c-api/dict.rst:146
#: c-api/dict.rst:151
msgid ""
"Return a :c:type:`PyListObject` containing all the keys from the dictionary."
msgstr ""
#: c-api/dict.rst:151
#: c-api/dict.rst:156
msgid ""
"Return a :c:type:`PyListObject` containing all the values from the "
"dictionary *p*."
msgstr ""
#: c-api/dict.rst:159
#: c-api/dict.rst:164
msgid ""
"Return the number of items in the dictionary. This is equivalent to "
"``len(p)`` on a dictionary."
msgstr ""
#: c-api/dict.rst:165
#: c-api/dict.rst:170
msgid ""
"Iterate over all key-value pairs in the dictionary *p*. The :c:type:"
"`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the "
@ -189,18 +190,18 @@ msgid ""
"structure is sparse, the offsets are not consecutive."
msgstr ""
#: c-api/dict.rst:176
#: c-api/dict.rst:181
msgid "For example::"
msgstr "Par exemple ::"
#: c-api/dict.rst:186
#: c-api/dict.rst:191
msgid ""
"The dictionary *p* should not be mutated during iteration. It is safe to "
"modify the values of the keys as you iterate over the dictionary, but only "
"so long as the set of keys does not change. For example::"
msgstr ""
#: c-api/dict.rst:211
#: c-api/dict.rst:216
msgid ""
"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. "
"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` "
@ -210,7 +211,7 @@ msgid ""
"or ``-1`` if an exception was raised."
msgstr ""
#: c-api/dict.rst:221
#: c-api/dict.rst:226
msgid ""
"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a."
"update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back "
@ -219,7 +220,7 @@ msgid ""
"exception was raised."
msgstr ""
#: c-api/dict.rst:230
#: c-api/dict.rst:235
msgid ""
"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. "
"*seq2* must be an iterable object producing iterable objects of length 2, "
@ -228,99 +229,23 @@ msgid ""
"if an exception was raised. Equivalent Python (except for the return value)::"
msgstr ""
#: c-api/dict.rst:244
msgid ""
"Register *callback* as a dictionary watcher. Return a non-negative integer "
"id which must be passed to future calls to :c:func:`PyDict_Watch`. In case "
"of error (e.g. no more watcher IDs available), return ``-1`` and set an "
"exception."
#: c-api/dict.rst:8
msgid "object"
msgstr ""
#: c-api/dict.rst:253
msgid ""
"Clear watcher identified by *watcher_id* previously returned from :c:func:"
"`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error (e.g. if the "
"given *watcher_id* was never registered.)"
#: c-api/dict.rst:8
#, fuzzy
msgid "dictionary"
msgstr "Objets dictionnaires"
#: c-api/dict.rst:73
msgid "PyUnicode_FromString()"
msgstr ""
#: c-api/dict.rst:261
msgid ""
"Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:"
"func:`PyDict_AddWatcher` will be called when *dict* is modified or "
"deallocated. Return ``0`` on success or ``-1`` on error."
#: c-api/dict.rst:162
msgid "built-in function"
msgstr ""
#: c-api/dict.rst:269
msgid ""
"Mark dictionary *dict* as no longer watched. The callback granted "
"*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when "
"*dict* is modified or deallocated. The dict must previously have been "
"watched by this watcher. Return ``0`` on success or ``-1`` on error."
msgstr ""
#: c-api/dict.rst:278
msgid ""
"Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, "
"``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, "
"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or "
"``PyDict_EVENT_DEALLOCATED``."
msgstr ""
#: c-api/dict.rst:286
msgid "Type of a dict watcher callback function."
msgstr ""
#: c-api/dict.rst:288
msgid ""
"If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both "
"*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` "
"or ``PyDict_EVENT_MODIFIED``, *new_value* will be the new value for *key*. "
"If *event* is ``PyDict_EVENT_DELETED``, *key* is being deleted from the "
"dictionary and *new_value* will be ``NULL``."
msgstr ""
#: c-api/dict.rst:294
msgid ""
"``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another "
"dict is merged into it. To maintain efficiency of this operation, per-key "
"``PyDict_EVENT_ADDED`` events are not issued in this case; instead a single "
"``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary."
msgstr ""
#: c-api/dict.rst:300
msgid ""
"The callback may inspect but must not modify *dict*; doing so could have "
"unpredictable effects, including infinite recursion. Do not trigger Python "
"code execution in the callback, as it could modify the dict as a side effect."
msgstr ""
#: c-api/dict.rst:304
msgid ""
"If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the "
"callback to the about-to-be-destroyed dictionary will resurrect it and "
"prevent it from being freed at this time. When the resurrected object is "
"destroyed later, any watcher callbacks active at that time will be called "
"again."
msgstr ""
#: c-api/dict.rst:310
msgid ""
"Callbacks occur before the notified modification to *dict* takes place, so "
"the prior state of *dict* can be inspected."
msgstr ""
#: c-api/dict.rst:313
msgid ""
"If the callback sets an exception, it must return ``-1``; this exception "
"will be printed as an unraisable exception using :c:func:"
"`PyErr_WriteUnraisable`. Otherwise it should return ``0``."
msgstr ""
#: c-api/dict.rst:317
msgid ""
"There may already be a pending exception set on entry to the callback. In "
"this case, the callback should return ``0`` with the same exception still "
"set. This means the callback may not call any other API that can set an "
"exception unless it saves and clears the exception state first, and restores "
"it before returning."
#: c-api/dict.rst:162
msgid "len"
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: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-12-11 12:00+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -157,11 +157,12 @@ msgid ""
msgstr ""
#: c-api/file.rst:95
#, fuzzy
msgid ""
"Write object *obj* to file object *p*. The only supported flag for *flags* "
"is :const:`Py_PRINT_RAW`; if given, the :func:`str` of the object is written "
"instead of the :func:`repr`. Return ``0`` on success or ``-1`` on failure; "
"the appropriate exception will be set."
"is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is "
"written instead of the :func:`repr`. Return ``0`` on success or ``-1`` on "
"failure; the appropriate exception will be set."
msgstr ""
"Écrit l'objet *obj* dans l'objet fichier *p*. La seule option gérée pour "
"*flags* est :const:`Py_PRINT_RAW` ; si défini, l'attribut :func:`str` de "
@ -176,3 +177,19 @@ msgstr ""
"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` "
"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise "
"en place."
#: c-api/file.rst:8
msgid "object"
msgstr ""
#: c-api/file.rst:8
msgid "file"
msgstr ""
#: c-api/file.rst:50
msgid "EOFError (built-in exception)"
msgstr ""
#: c-api/file.rst:93
msgid "Py_PRINT_RAW"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -73,11 +73,11 @@ msgstr ""
#, fuzzy
msgid ""
"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__`. "
"This method returns ``-1.0`` upon failure, so one should call :c:func:"
"`PyErr_Occurred` to check for errors."
"*pyfloat* is not a Python floating point object but has a :meth:`~object."
"__float__` method, this method will first be called to convert *pyfloat* "
"into a float. If :meth:`!__float__` is not defined then it falls back to :"
"meth:`~object.__index__`. This method returns ``-1.0`` upon failure, so one "
"should call :c:func:`PyErr_Occurred` to check for errors."
msgstr ""
"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:"
"type:`double` en C. Si le *pyfloat* n'est pas un nombre à virgule flottante "
@ -87,7 +87,7 @@ msgstr ""
"vérifier les erreurs."
#: c-api/float.rst:54
msgid "Use :meth:`__index__` if available."
msgid "Use :meth:`~object.__index__` if available."
msgstr ""
#: c-api/float.rst:60
@ -168,9 +168,9 @@ msgid ""
"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` "
"constant can be used to use the native endian: it is equal to ``1`` on big "
"endian processor, or ``0`` on little endian processor."
"want big-endian format (exponent first, at *p*). The :c:macro:"
"`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal "
"to ``1`` on big endian processor, or ``0`` on little endian processor."
msgstr ""
#: c-api/float.rst:116
@ -212,9 +212,9 @@ msgid ""
"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:"
"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, "
"or ``0`` on little endian processor."
"endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can "
"be used to use the native endian: it is equal to ``1`` on big endian "
"processor, or ``0`` on little endian processor."
msgstr ""
#: c-api/float.rst:147
@ -242,6 +242,15 @@ msgstr ""
msgid "Unpack the IEEE 754 binary64 double precision format as a C double."
msgstr ""
#: c-api/float.rst:8
msgid "object"
msgstr ""
#: c-api/float.rst:8
#, fuzzy
msgid "floating point"
msgstr "Objets représentant les nombres à virgule flottante"
#~ msgid ""
#~ "Clear the float free list. Return the number of items that could not be "
#~ "freed."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-19 18:46+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -98,7 +98,7 @@ msgstr ""
msgid "Get the *frame* code."
msgstr "Obtenir le code *frame*."
#: c-api/frame.rst:125
#: c-api/frame.rst:104
msgid "Return a :term:`strong reference`."
msgstr "Renvoie un :term:`strong reference`."
@ -134,39 +134,18 @@ msgid "Returns -1 if ``frame.f_lasti`` is ``None``."
msgstr "Renvoie -1 si ``frame.f_lasti`` est ``None``."
#: c-api/frame.rst:102
#, fuzzy
msgid "Get the variable *name* of *frame*."
msgstr "Renvoie la *frame* encadrant immédiatement à *frame*."
#: c-api/frame.rst:104
#, fuzzy
msgid "Return a :term:`strong reference` to the variable value on success."
msgstr ""
"Renvoie un :term:`strong reference`. Le résultat ne peut être ``NULL``."
#: c-api/frame.rst:105
msgid ""
"Raise :exc:`NameError` and return ``NULL`` if the variable does not exist."
msgstr ""
#: c-api/frame.rst:106
msgid "Raise an exception and return ``NULL`` on error."
msgstr ""
#: c-api/frame.rst:108
msgid "*name* type must be a :class:`str`."
msgstr ""
#: c-api/frame.rst:115
msgid ""
"Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string "
"encoded in UTF-8."
msgstr ""
#: c-api/frame.rst:123
msgid "Get the *frame*'s ``f_locals`` attribute (:class:`dict`)."
msgstr "Obtenir l'attribut (:class:`dict`) ``f_locals`` de *frame*."
#: c-api/frame.rst:132
#: c-api/frame.rst:111
msgid "Return the line number that *frame* is currently executing."
msgstr "Renvoie le numéro de ligne que cette *frame* est en train d'exécuter."
#, fuzzy
#~ msgid "Get the variable *name* of *frame*."
#~ msgstr "Renvoie la *frame* encadrant immédiatement à *frame*."
#, fuzzy
#~ msgid "Return a :term:`strong reference` to the variable value on success."
#~ msgstr ""
#~ "Renvoie un :term:`strong reference`. Le résultat ne peut être ``NULL``."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-02-20 13:11+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -120,22 +120,11 @@ msgstr ""
"Définir les valeurs par défaut de l'argument pour l'objet de la fonction "
"*op*. *defaults* doit être ``Py_None`` ou un tuple."
#: c-api/function.rst:106 c-api/function.rst:120
#: c-api/function.rst:97 c-api/function.rst:111
msgid "Raises :exc:`SystemError` and returns ``-1`` on failure."
msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec."
#: c-api/function.rst:88
#, fuzzy
msgid "Set the vectorcall field of a given function object *func*."
msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*."
#: c-api/function.rst:90
msgid ""
"Warning: extensions using this API must preserve the behavior of the "
"unaltered (default) vectorcall function!"
msgstr ""
#: c-api/function.rst:97
msgid ""
"Return the closure associated with the function object *op*. This can be "
"``NULL`` or a tuple of cell objects."
@ -143,7 +132,7 @@ msgstr ""
"Renvoie la fermeture associée avec l'objet de la fonction *op*. Cela peut "
"être ``NULL`` ou un tuple d'objets cellule."
#: c-api/function.rst:103
#: c-api/function.rst:94
msgid ""
"Set the closure associated with the function object *op*. *closure* must be "
"``Py_None`` or a tuple of cell objects."
@ -151,7 +140,7 @@ msgstr ""
"Définir la fermeture associée avec l'objet de la fonction *op*. *closure* "
"doit être ``Py_None`` ou un tuple d'objets cellule."
#: c-api/function.rst:111
#: c-api/function.rst:102
msgid ""
"Return the annotations of the function object *op*. This can be a mutable "
"dictionary or ``NULL``."
@ -159,7 +148,7 @@ msgstr ""
"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un "
"dictionnaire mutable ou ``NULL``."
#: c-api/function.rst:117
#: c-api/function.rst:108
msgid ""
"Set the annotations for the function object *op*. *annotations* must be a "
"dictionary or ``Py_None``."
@ -167,80 +156,18 @@ msgstr ""
"Définir les annotations pour l'objet de la fonction *op*. *annotations* doit "
"être un dictionnaire ou ``Py_None``."
#: c-api/function.rst:125
msgid ""
"Register *callback* as a function watcher for the current interpreter. "
"Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In "
"case of error (e.g. no more watcher IDs available), return ``-1`` and set an "
"exception."
#: c-api/function.rst:8
msgid "object"
msgstr ""
#: c-api/function.rst:135
msgid ""
"Clear watcher identified by *watcher_id* previously returned from :c:func:"
"`PyFunction_AddWatcher` for the current interpreter. Return ``0`` on "
"success, or ``-1`` and set an exception on error (e.g. if the given "
"*watcher_id* was never registered.)"
#: c-api/function.rst:8
msgid "function"
msgstr ""
#: c-api/function.rst:145
msgid ""
"Enumeration of possible function watcher events: - "
"``PyFunction_EVENT_CREATE`` - ``PyFunction_EVENT_DESTROY`` - "
"``PyFunction_EVENT_MODIFY_CODE`` - ``PyFunction_EVENT_MODIFY_DEFAULTS`` - "
"``PyFunction_EVENT_MODIFY_KWDEFAULTS``"
#: c-api/function.rst:20
msgid "MethodType (in module types)"
msgstr ""
#: c-api/function.rst:157
msgid "Type of a function watcher callback function."
msgstr ""
#: c-api/function.rst:159
msgid ""
"If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` "
"then *new_value* will be ``NULL``. Otherwise, *new_value* will hold a :term:"
"`borrowed reference` to the new value that is about to be stored in *func* "
"for the attribute that is being modified."
msgstr ""
#: c-api/function.rst:164
msgid ""
"The callback may inspect but must not modify *func*; doing so could have "
"unpredictable effects, including infinite recursion."
msgstr ""
#: c-api/function.rst:167
msgid ""
"If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked "
"after `func` has been fully initialized. Otherwise, the callback is invoked "
"before the modification to *func* takes place, so the prior state of *func* "
"can be inspected. The runtime is permitted to optimize away the creation of "
"function objects when possible. In such cases no event will be emitted. "
"Although this creates the possibility of an observable difference of runtime "
"behavior depending on optimization decisions, it does not change the "
"semantics of the Python code being executed."
msgstr ""
#: c-api/function.rst:176
msgid ""
"If *event* is ``PyFunction_EVENT_DESTROY``, Taking a reference in the "
"callback to the about-to-be-destroyed function will resurrect it, preventing "
"it from being freed at this time. When the resurrected object is destroyed "
"later, any watcher callbacks active at that time will be called again."
msgstr ""
#: c-api/function.rst:181
msgid ""
"If the callback sets an exception, it must return ``-1``; this exception "
"will be printed as an unraisable exception using :c:func:"
"`PyErr_WriteUnraisable`. Otherwise it should return ``0``."
msgstr ""
#: c-api/function.rst:185
msgid ""
"There may already be a pending exception set on entry to the callback. In "
"this case, the callback should return ``0`` with the same exception still "
"set. This means the callback may not call any other API that can set an "
"exception unless it saves and clears the exception state first, and restores "
"it before returning."
msgstr ""
#, fuzzy
#~ msgid "Set the vectorcall field of a given function object *func*."
#~ msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -31,60 +31,64 @@ msgstr ""
#: c-api/gcsupport.rst:15
msgid ""
"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of "
"the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an "
"implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If "
"the type object must include the :c:macro:`Py_TPFLAGS_HAVE_GC` and provide "
"an implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If "
"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` "
"implementation must also be provided."
msgstr ""
#: c-api/gcsupport.rst:24
msgid ":c:macro:`Py_TPFLAGS_HAVE_GC`"
msgstr ""
#: c-api/gcsupport.rst:22
msgid ""
"Objects with a type with this flag set must conform with the rules "
"documented here. For convenience these objects will be referred to as "
"container objects."
msgstr ""
#: c-api/gcsupport.rst:28
#: c-api/gcsupport.rst:26
msgid "Constructors for container types must conform to two rules:"
msgstr ""
#: c-api/gcsupport.rst:30
#: c-api/gcsupport.rst:28
msgid ""
"The memory for the object must be allocated using :c:func:`PyObject_GC_New` "
"or :c:func:`PyObject_GC_NewVar`."
msgstr ""
#: c-api/gcsupport.rst:33
#: c-api/gcsupport.rst:31
msgid ""
"Once all the fields which may contain references to other containers are "
"initialized, it must call :c:func:`PyObject_GC_Track`."
msgstr ""
#: c-api/gcsupport.rst:36
#: c-api/gcsupport.rst:34
msgid ""
"Similarly, the deallocator for the object must conform to a similar pair of "
"rules:"
msgstr ""
#: c-api/gcsupport.rst:39
#: c-api/gcsupport.rst:37
msgid ""
"Before fields which refer to other containers are invalidated, :c:func:"
"`PyObject_GC_UnTrack` must be called."
msgstr ""
#: c-api/gcsupport.rst:42
#: c-api/gcsupport.rst:40
msgid ""
"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`."
msgstr ""
#: c-api/gcsupport.rst:45
#: c-api/gcsupport.rst:43
msgid ""
"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least a :"
"c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from its "
"subclass or subclasses."
msgstr ""
#: c-api/gcsupport.rst:49
#: c-api/gcsupport.rst:47
msgid ""
"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call "
"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the "
@ -92,29 +96,29 @@ msgid ""
"tp_flags`, :c:member:`~PyTypeObject.tp_traverse` and :c:member:"
"`~PyTypeObject.tp_clear` fields if the type inherits from a class that "
"implements the garbage collector protocol and the child class does *not* "
"include the :const:`Py_TPFLAGS_HAVE_GC` flag."
"include the :c:macro:`Py_TPFLAGS_HAVE_GC` flag."
msgstr ""
#: c-api/gcsupport.rst:59
#: c-api/gcsupport.rst:57
msgid ""
"Analogous to :c:func:`PyObject_New` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
"Analogous to :c:func:`PyObject_New` but for container objects with the :c:"
"macro:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:65
#: c-api/gcsupport.rst:63
msgid ""
"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :"
"const:`Py_TPFLAGS_HAVE_GC` flag set."
"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :c:"
"macro:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr ""
#: c-api/gcsupport.rst:71
#: c-api/gcsupport.rst:69
msgid ""
"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the "
"resized object or ``NULL`` on failure. *op* must not be tracked by the "
"collector yet."
msgstr ""
#: c-api/gcsupport.rst:77
#: c-api/gcsupport.rst:75
msgid ""
"Adds the object *op* to the set of container objects tracked by the "
"collector. The collector can run at unexpected times so objects must be "
@ -123,45 +127,45 @@ msgid ""
"usually near the end of the constructor."
msgstr ""
#: c-api/gcsupport.rst:86
#: c-api/gcsupport.rst:84
msgid ""
"Returns non-zero if the object implements the garbage collector protocol, "
"otherwise returns 0."
msgstr ""
#: c-api/gcsupport.rst:89
#: c-api/gcsupport.rst:87
msgid ""
"The object cannot be tracked by the garbage collector if this function "
"returns 0."
msgstr ""
#: c-api/gcsupport.rst:94
#: c-api/gcsupport.rst:92
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* is "
"being currently tracked by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:97
#: c-api/gcsupport.rst:95
msgid "This is analogous to the Python function :func:`gc.is_tracked`."
msgstr ""
#: c-api/gcsupport.rst:104
#: c-api/gcsupport.rst:102
msgid ""
"Returns 1 if the object type of *op* implements the GC protocol and *op* has "
"been already finalized by the garbage collector and 0 otherwise."
msgstr ""
#: c-api/gcsupport.rst:107
#: c-api/gcsupport.rst:105
msgid "This is analogous to the Python function :func:`gc.is_finalized`."
msgstr ""
#: c-api/gcsupport.rst:114
#: c-api/gcsupport.rst:112
msgid ""
"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:"
"func:`PyObject_GC_NewVar`."
msgstr ""
#: c-api/gcsupport.rst:120
#: c-api/gcsupport.rst:118
msgid ""
"Remove the object *op* from the set of container objects tracked by the "
"collector. Note that :c:func:`PyObject_GC_Track` can be called again on "
@ -171,19 +175,19 @@ msgid ""
"handler become invalid."
msgstr ""
#: c-api/gcsupport.rst:129
#: c-api/gcsupport.rst:127
msgid ""
"The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros "
"have been removed from the public C API."
msgstr ""
#: c-api/gcsupport.rst:132
#: c-api/gcsupport.rst:130
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function "
"parameter of this type:"
msgstr ""
#: c-api/gcsupport.rst:137
#: c-api/gcsupport.rst:135
msgid ""
"Type of the visitor function passed to the :c:member:`~PyTypeObject."
"tp_traverse` handler. The function should be called with an object to "
@ -193,13 +197,13 @@ msgid ""
"users will need to write their own visitor functions."
msgstr ""
#: c-api/gcsupport.rst:144
#: c-api/gcsupport.rst:142
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following "
"type:"
msgstr ""
#: c-api/gcsupport.rst:149
#: c-api/gcsupport.rst:147
msgid ""
"Traversal function for a container object. Implementations must call the "
"*visit* function for each object directly contained by *self*, with the "
@ -209,7 +213,7 @@ msgid ""
"returned immediately."
msgstr ""
#: c-api/gcsupport.rst:156
#: c-api/gcsupport.rst:154
msgid ""
"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:"
"func:`Py_VISIT` macro is provided. In order to use this macro, the :c:"
@ -217,20 +221,20 @@ msgid ""
"exactly *visit* and *arg*:"
msgstr ""
#: c-api/gcsupport.rst:163
#: c-api/gcsupport.rst:161
msgid ""
"If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and "
"*arg*. If *visit* returns a non-zero value, then return it. Using this "
"macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::"
msgstr ""
#: c-api/gcsupport.rst:176
#: c-api/gcsupport.rst:174
msgid ""
"The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:"
"`inquiry` type, or ``NULL`` if the object is immutable."
msgstr ""
#: c-api/gcsupport.rst:182
#: c-api/gcsupport.rst:180
msgid ""
"Drop references that may have created reference cycles. Immutable objects "
"do not have to define this method since they can never directly create "
@ -240,23 +244,23 @@ msgid ""
"in a reference cycle."
msgstr ""
#: c-api/gcsupport.rst:191
#: c-api/gcsupport.rst:189
msgid "Controlling the Garbage Collector State"
msgstr ""
#: c-api/gcsupport.rst:193
#: c-api/gcsupport.rst:191
msgid ""
"The C-API provides the following functions for controlling garbage "
"collection runs."
msgstr ""
#: c-api/gcsupport.rst:198
#: c-api/gcsupport.rst:196
msgid ""
"Perform a full garbage collection, if the garbage collector is enabled. "
"(Note that :func:`gc.collect` runs it unconditionally.)"
msgstr ""
#: c-api/gcsupport.rst:201
#: c-api/gcsupport.rst:199
msgid ""
"Returns the number of collected + unreachable objects which cannot be "
"collected. If the garbage collector is disabled or already collecting, "
@ -264,58 +268,20 @@ msgid ""
"data:`sys.unraisablehook`. This function does not raise exceptions."
msgstr ""
#: c-api/gcsupport.rst:211
#: c-api/gcsupport.rst:209
msgid ""
"Enable the garbage collector: similar to :func:`gc.enable`. Returns the "
"previous state, 0 for disabled and 1 for enabled."
msgstr ""
#: c-api/gcsupport.rst:219
#: c-api/gcsupport.rst:217
msgid ""
"Disable the garbage collector: similar to :func:`gc.disable`. Returns the "
"previous state, 0 for disabled and 1 for enabled."
msgstr ""
#: c-api/gcsupport.rst:227
#: c-api/gcsupport.rst:225
msgid ""
"Query the state of the garbage collector: similar to :func:`gc.isenabled`. "
"Returns the current state, 0 for disabled and 1 for enabled."
msgstr ""
#: c-api/gcsupport.rst:234
msgid "Querying Garbage Collector State"
msgstr ""
#: c-api/gcsupport.rst:236
msgid ""
"The C-API provides the following interface for querying information about "
"the garbage collector."
msgstr ""
#: c-api/gcsupport.rst:241
msgid ""
"Run supplied *callback* on all live GC-capable objects. *arg* is passed "
"through to all invocations of *callback*."
msgstr ""
#: c-api/gcsupport.rst:245
msgid ""
"If new objects are (de)allocated by the callback it is undefined if they "
"will be visited."
msgstr ""
#: c-api/gcsupport.rst:248
msgid ""
"Garbage collection is disabled during operation. Explicitly running a "
"collection in the callback may lead to undefined behaviour e.g. visiting the "
"same objects multiple times or not at all."
msgstr ""
#: c-api/gcsupport.rst:256
msgid ""
"Type of the visitor function to be passed to :c:func:"
"`PyUnstable_GC_VisitObjects`. *arg* is the same as the *arg* passed to "
"``PyUnstable_GC_VisitObjects``. Return ``0`` to continue iteration, return "
"``1`` to stop iteration. Other return values are reserved for now so "
"behavior on returning anything else is undefined."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -130,10 +130,10 @@ msgid ""
"object read from a Python bytecode file or obtained from the built-in "
"function :func:`compile`, load the module. Return a new reference to the "
"module object, or ``NULL`` with an exception set if an error occurred. "
"*name* is removed from :attr:`sys.modules` in error cases, even if *name* "
"was already in :attr:`sys.modules` on entry to :c:func:"
"*name* is removed from :data:`sys.modules` in error cases, even if *name* "
"was already in :data:`sys.modules` on entry to :c:func:"
"`PyImport_ExecCodeModule`. Leaving incompletely initialized modules in :"
"attr:`sys.modules` is dangerous, as imports of such modules have no way to "
"data:`sys.modules` is dangerous, as imports of such modules have no way to "
"know that the module object is an unknown (and probably damaged with respect "
"to the module author's intents) state."
msgstr ""
@ -170,36 +170,24 @@ msgid ""
"`PyImport_ExecCodeModuleWithPathnames`."
msgstr ""
#: c-api/import.rst:153
msgid ""
"The setting of :attr:`__cached__` and :attr:`__loader__` is deprecated. See :"
"class:`~importlib.machinery.ModuleSpec` for alternatives."
msgstr ""
#: c-api/import.rst:161
#: c-api/import.rst:156
msgid ""
"Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`__file__` attribute "
"of the module object is set to *pathname* if it is non-``NULL``."
msgstr ""
#: c-api/import.rst:164
#: c-api/import.rst:159
msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`."
msgstr ""
#: c-api/import.rst:169
#: c-api/import.rst:164
msgid ""
"Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`__cached__` "
"attribute of the module object is set to *cpathname* if it is non-``NULL``. "
"Of the three functions, this is the preferred one to use."
msgstr ""
#: c-api/import.rst:175
msgid ""
"Setting :attr:`__cached__` is deprecated. See :class:`~importlib.machinery."
"ModuleSpec` for alternatives."
msgstr ""
#: c-api/import.rst:182
#: c-api/import.rst:173
msgid ""
"Like :c:func:`PyImport_ExecCodeModuleObject`, but *name*, *pathname* and "
"*cpathname* are UTF-8 encoded strings. Attempts are also made to figure out "
@ -207,48 +195,44 @@ msgid ""
"set to ``NULL``."
msgstr ""
#: c-api/import.rst:188
#: c-api/import.rst:179
msgid ""
"Uses :func:`imp.source_from_cache()` in calculating the source path if only "
"the bytecode path is provided."
msgstr ""
#: c-api/import.rst:191
msgid "No longer uses the removed ``imp`` module."
msgstr ""
#: c-api/import.rst:197
#: c-api/import.rst:186
msgid ""
"Return the magic number for Python bytecode files (a.k.a. :file:`.pyc` "
"file). The magic number should be present in the first four bytes of the "
"bytecode file, in little-endian byte order. Returns ``-1`` on error."
msgstr ""
#: c-api/import.rst:201
#: c-api/import.rst:190
msgid "Return value of ``-1`` upon failure."
msgstr ""
#: c-api/import.rst:207
#: c-api/import.rst:196
msgid ""
"Return the magic tag string for :pep:`3147` format Python bytecode file "
"names. Keep in mind that the value at ``sys.implementation.cache_tag`` is "
"authoritative and should be used instead of this function."
msgstr ""
#: c-api/import.rst:215
#: c-api/import.rst:204
msgid ""
"Return the dictionary used for the module administration (a.k.a. ``sys."
"modules``). Note that this is a per-interpreter variable."
msgstr ""
#: c-api/import.rst:220
#: c-api/import.rst:209
msgid ""
"Return the already imported module with the given name. If the module has "
"not been imported yet then returns ``NULL`` but does not set an error. "
"Returns ``NULL`` and sets an error if the lookup failed."
msgstr ""
#: c-api/import.rst:228
#: c-api/import.rst:217
msgid ""
"Return a finder object for a :data:`sys.path`/:attr:`pkg.__path__` item "
"*path*, possibly by fetching it from the :data:`sys.path_importer_cache` "
@ -259,7 +243,7 @@ msgid ""
"path_importer_cache`. Return a new reference to the finder object."
msgstr ""
#: c-api/import.rst:239
#: c-api/import.rst:228
msgid ""
"Load a frozen module named *name*. Return ``1`` for success, ``0`` if the "
"module is not found, and ``-1`` with an exception set if the initialization "
@ -268,17 +252,17 @@ msgid ""
"the module if it was already imported.)"
msgstr ""
#: c-api/import.rst:247
#: c-api/import.rst:236
msgid "The ``__file__`` attribute is no longer set on the module."
msgstr ""
#: c-api/import.rst:253
#: c-api/import.rst:242
msgid ""
"Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a "
"UTF-8 encoded string instead of a Unicode object."
msgstr ""
#: c-api/import.rst:261
#: c-api/import.rst:250
msgid ""
"This is the structure type definition for frozen module descriptors, as "
"generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the "
@ -286,13 +270,13 @@ msgid ""
"h`, is::"
msgstr ""
#: c-api/import.rst:273
#: c-api/import.rst:262
msgid ""
"The new ``is_package`` field indicates whether the module is a package or "
"not. This replaces setting the ``size`` field to a negative value."
msgstr ""
#: c-api/import.rst:279
#: c-api/import.rst:268
#, fuzzy
msgid ""
"This pointer is initialized to point to an array of :c:struct:`_frozen` "
@ -307,7 +291,7 @@ msgstr ""
"tableau. Du code tiers peut jouer avec pour construire dynamiquement une "
"collection de module figés."
#: c-api/import.rst:287
#: c-api/import.rst:276
msgid ""
"Add a single module to the existing table of built-in modules. This is a "
"convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning "
@ -317,7 +301,7 @@ msgid ""
"before :c:func:`Py_Initialize`."
msgstr ""
#: c-api/import.rst:297
#: c-api/import.rst:286
msgid ""
"Structure describing a single entry in the list of built-in modules. Each "
"of these structures gives the name and initialization function for a module "
@ -327,7 +311,7 @@ msgid ""
"structure is defined in :file:`Include/import.h` as::"
msgstr ""
#: c-api/import.rst:312
#: c-api/import.rst:301
msgid ""
"Add a collection of modules to the table of built-in modules. The *newtab* "
"array must end with a sentinel entry which contains ``NULL`` for the :attr:"
@ -338,9 +322,41 @@ msgid ""
"`Py_Initialize`."
msgstr ""
#: c-api/import.rst:319
#: c-api/import.rst:308
msgid ""
"If Python is initialized multiple times, :c:func:`PyImport_AppendInittab` "
"or :c:func:`PyImport_ExtendInittab` must be called before each Python "
"initialization."
msgstr ""
#: c-api/import.rst:11
msgid "package variable"
msgstr ""
#: c-api/import.rst:11
msgid "__all__"
msgstr ""
#: c-api/import.rst:11
msgid "__all__ (package variable)"
msgstr ""
#: c-api/import.rst:11
msgid "modules (in module sys)"
msgstr ""
#: c-api/import.rst:123
msgid "built-in function"
msgstr ""
#: c-api/import.rst:44
msgid "__import__"
msgstr ""
#: c-api/import.rst:123
msgid "compile"
msgstr ""
#: c-api/import.rst:248
msgid "freeze utility"
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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -215,7 +215,7 @@ msgstr ""
#: c-api/intro.rst:155
msgid ""
"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the "
"command line (see :c:member:`PyConfig.use_environment`)."
"command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)."
msgstr ""
#: c-api/intro.rst:160
@ -782,3 +782,131 @@ msgid ""
"Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source "
"distribution for more detailed information."
msgstr ""
#: c-api/intro.rst:264
msgid "object"
msgstr ""
#: c-api/intro.rst:264
msgid "type"
msgstr ""
#: c-api/intro.rst:301
msgid "Py_INCREF()"
msgstr ""
#: c-api/intro.rst:301
msgid "Py_DECREF()"
msgstr ""
#: c-api/intro.rst:372
msgid "PyList_SetItem()"
msgstr ""
#: c-api/intro.rst:372
msgid "PyTuple_SetItem()"
msgstr ""
#: c-api/intro.rst:443
msgid "set_all()"
msgstr ""
#: c-api/intro.rst:462
msgid "PyList_GetItem()"
msgstr ""
#: c-api/intro.rst:462
msgid "PySequence_GetItem()"
msgstr ""
#: c-api/intro.rst:492
msgid "sum_list()"
msgstr ""
#: c-api/intro.rst:616
msgid "sum_sequence()"
msgstr ""
#: c-api/intro.rst:559
msgid "PyErr_Occurred()"
msgstr ""
#: c-api/intro.rst:572
msgid "PyErr_SetString()"
msgstr ""
#: c-api/intro.rst:680
msgid "PyErr_Clear()"
msgstr ""
#: c-api/intro.rst:596
msgid "exc_info() (in module sys)"
msgstr ""
#: c-api/intro.rst:678
msgid "incr_item()"
msgstr ""
#: c-api/intro.rst:680
msgid "PyErr_ExceptionMatches()"
msgstr ""
#: c-api/intro.rst:680
msgid "Py_XDECREF()"
msgstr ""
#: c-api/intro.rst:706
msgid "Py_Initialize()"
msgstr ""
#: c-api/intro.rst:706
msgid "module"
msgstr ""
#: c-api/intro.rst:706
msgid "builtins"
msgstr ""
#: c-api/intro.rst:706
msgid "__main__"
msgstr ""
#: c-api/intro.rst:706
msgid "sys"
msgstr ""
#: c-api/intro.rst:706
msgid "search"
msgstr ""
#: c-api/intro.rst:706
msgid "path"
msgstr ""
#: c-api/intro.rst:706
msgid "path (in module sys)"
msgstr ""
#: c-api/intro.rst:741
msgid "Py_SetProgramName()"
msgstr ""
#: c-api/intro.rst:741
msgid "Py_GetPath()"
msgstr ""
#: c-api/intro.rst:741
msgid "Py_GetPrefix()"
msgstr ""
#: c-api/intro.rst:741
msgid "Py_GetExecPrefix()"
msgstr ""
#: c-api/intro.rst:741
msgid "Py_GetProgramFullPath()"
msgstr ""
#: c-api/intro.rst:756
msgid "Py_IsInitialized()"
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-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -154,3 +154,23 @@ msgid ""
"Return a new tuple object containing the contents of *list*; equivalent to "
"``tuple(list)``."
msgstr ""
#: c-api/list.rst:8
msgid "object"
msgstr ""
#: c-api/list.rst:8
msgid "list"
msgstr ""
#: c-api/list.rst:141
msgid "built-in function"
msgstr ""
#: c-api/list.rst:48
msgid "len"
msgstr ""
#: c-api/list.rst:141
msgid "tuple"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -115,218 +115,216 @@ msgstr ""
#: c-api/long.rst:86
msgid ""
"Return a new :c:type:`PyLongObject` based on the string value in *str*, "
"which is interpreted according to the radix in *base*, or ``NULL`` on "
"failure. If *pend* is non-``NULL``, *\\*pend* will point to the end of "
"*str* on success or to the first character that could not be processed on "
"error. If *base* is ``0``, *str* is interpreted using the :ref:`integers` "
"definition; in this case, leading zeros in a non-zero decimal number raises "
"a :exc:`ValueError`. If *base* is not ``0``, it must be between ``2`` and "
"``36``, inclusive. Leading and trailing whitespace and single underscores "
"after a base specifier and between digits are ignored. If there are no "
"digits or *str* is not NULL-terminated following the digits and trailing "
"whitespace, :exc:`ValueError` will be raised."
"which is interpreted according to the radix in *base*. If *pend* is non-"
"``NULL``, *\\*pend* will point to the first character in *str* which follows "
"the representation of the number. If *base* is ``0``, *str* is interpreted "
"using the :ref:`integers` definition; in this case, leading zeros in a non-"
"zero decimal number raises a :exc:`ValueError`. If *base* is not ``0``, it "
"must be between ``2`` and ``36``, inclusive. Leading spaces and single "
"underscores after a base specifier and between digits are ignored. If there "
"are no digits, :exc:`ValueError` will be raised."
msgstr ""
#: c-api/long.rst:97
#: c-api/long.rst:96
msgid ""
"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :"
"c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can "
"call those from C using :c:func:`PyObject_CallMethod`."
msgstr ""
#: c-api/long.rst:104
#: c-api/long.rst:103
msgid ""
"Convert a sequence of Unicode digits in the string *u* to a Python integer "
"value."
msgstr ""
#: c-api/long.rst:112
#: c-api/long.rst:111
msgid ""
"Create a Python integer from the pointer *p*. The pointer value can be "
"retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`."
msgstr ""
#: c-api/long.rst:141
#: c-api/long.rst:140
msgid ""
"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`."
"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` "
"method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:127
#: c-api/long.rst:126
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"expr:`long`."
msgstr ""
#: c-api/long.rst:150 c-api/long.rst:191 c-api/long.rst:214
#: c-api/long.rst:149 c-api/long.rst:190 c-api/long.rst:213
msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
#: c-api/long.rst:152 c-api/long.rst:195 c-api/long.rst:299
msgid "Use :meth:`__index__` if available."
#: c-api/long.rst:151 c-api/long.rst:194 c-api/long.rst:298
msgid "Use :meth:`~object.__index__` if available."
msgstr ""
#: c-api/long.rst:155 c-api/long.rst:198 c-api/long.rst:302
msgid "This function will no longer use :meth:`__int__`."
#: c-api/long.rst:154 c-api/long.rst:197 c-api/long.rst:301
msgid "This function will no longer use :meth:`~object.__int__`."
msgstr ""
#: c-api/long.rst:145
#: c-api/long.rst:144
msgid ""
"If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:"
"`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return "
"``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception "
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
"If the value of *obj* is greater than :c:macro:`LONG_MAX` or less than :c:"
"macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and "
"return ``-1``; otherwise, set *\\*overflow* to ``0``. If any other "
"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
#: c-api/long.rst:182
#: c-api/long.rst:181
msgid ""
"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`."
"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` "
"method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:168
#: c-api/long.rst:167
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
"expr:`long long`."
msgstr ""
#: c-api/long.rst:186
#: c-api/long.rst:185
msgid ""
"If the value of *obj* is greater than :const:`LLONG_MAX` or less than :const:"
"`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return "
"``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception "
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
"If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less than :c:"
"macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and "
"return ``-1``; otherwise, set *\\*overflow* to ``0``. If any other "
"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
#: c-api/long.rst:208
#: c-api/long.rst:207
msgid ""
"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must "
"be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:211
#: c-api/long.rst:210
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`Py_ssize_t`."
msgstr ""
#: c-api/long.rst:223
#: c-api/long.rst:222
msgid ""
"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* "
"must be an instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:226
#: c-api/long.rst:225
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"expr:`unsigned long`."
msgstr ""
#: c-api/long.rst:229
#: c-api/long.rst:228
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:239
#: c-api/long.rst:238
msgid ""
"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:242
#: c-api/long.rst:241
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`size_t`."
msgstr ""
#: c-api/long.rst:245
#: c-api/long.rst:244
msgid ""
"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:254
#: c-api/long.rst:253
msgid ""
"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:257
#: c-api/long.rst:256
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :"
"c:expr:`unsigned long long`."
msgstr ""
#: c-api/long.rst:260
#: c-api/long.rst:259
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:263
#: c-api/long.rst:262
msgid ""
"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`."
msgstr ""
#: c-api/long.rst:269
#: c-api/long.rst:268
msgid ""
"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`."
"an instance of :c:type:`PyLongObject`, first call its :meth:`~object."
"__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:273
#: c-api/long.rst:272
msgid ""
"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 ""
#: c-api/long.rst:276
#: c-api/long.rst:275
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
#: c-api/long.rst:288
#: c-api/long.rst:287
msgid ""
"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`."
"is not an instance of :c:type:`PyLongObject`, first call its :meth:`~object."
"__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:293
#: c-api/long.rst:292
msgid ""
"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 ""
#: c-api/long.rst:296
#: c-api/long.rst:295
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` "
"to disambiguate."
msgstr ""
#: c-api/long.rst:308
#: c-api/long.rst:307
msgid ""
"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
#: c-api/long.rst:311
#: c-api/long.rst:310
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"expr:`double`."
msgstr ""
#: c-api/long.rst:314
#: c-api/long.rst:313
msgid ""
"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
#: c-api/long.rst:319
#: c-api/long.rst:318
msgid ""
"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 "
@ -334,7 +332,39 @@ msgid ""
"c:func:`PyLong_FromVoidPtr`."
msgstr ""
#: c-api/long.rst:324
#: c-api/long.rst:323
msgid ""
"Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
#: c-api/long.rst:8
msgid "object"
msgstr ""
#: c-api/long.rst:8
msgid "long integer"
msgstr ""
#: c-api/long.rst:8
msgid "integer"
msgstr ""
#: c-api/long.rst:118
msgid "LONG_MAX"
msgstr ""
#: c-api/long.rst:160 c-api/long.rst:218 c-api/long.rst:250
msgid "OverflowError (built-in exception)"
msgstr ""
#: c-api/long.rst:203
msgid "PY_SSIZE_T_MAX"
msgstr ""
#: c-api/long.rst:218
msgid "ULONG_MAX"
msgstr ""
#: c-api/long.rst:234
msgid "SIZE_MAX"
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-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-01-28 14:58+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -152,3 +152,11 @@ msgid ""
msgstr ""
"Renvoie la liste des éléments dans l'objet *o*, où chaque élément est un n-"
"uplet contenant une paire clef-valeur. En cas d'échec, renvoie *NULL*."
#: c-api/mapping.rst:23
msgid "built-in function"
msgstr ""
#: c-api/mapping.rst:23
msgid "len"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -46,55 +46,61 @@ msgid ""
"native :c:expr:`long` type. *version* indicates the file format."
msgstr ""
#: c-api/marshal.rst:31
#: c-api/marshal.rst:36
msgid ""
"This function can fail, in which case it sets the error indicator. Use :c:"
"func:`PyErr_Occurred` to check for that."
msgstr ""
#: c-api/marshal.rst:33
msgid ""
"Marshal a Python object, *value*, to *file*. *version* indicates the file "
"format."
msgstr ""
#: c-api/marshal.rst:37
#: c-api/marshal.rst:41
msgid ""
"Return a bytes object containing the marshalled representation of *value*. "
"*version* indicates the file format."
msgstr ""
#: c-api/marshal.rst:41
#: c-api/marshal.rst:45
msgid "The following functions allow marshalled values to be read back in."
msgstr ""
#: c-api/marshal.rst:46
#: c-api/marshal.rst:50
msgid ""
"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:expr:`long`."
msgstr ""
#: c-api/marshal.rst:60
#: c-api/marshal.rst:64
msgid ""
"On error, sets the appropriate exception (:exc:`EOFError`) and returns "
"``-1``."
msgstr ""
#: c-api/marshal.rst:56
#: c-api/marshal.rst:60
msgid ""
"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:expr:`short`."
msgstr ""
#: c-api/marshal.rst:66
#: c-api/marshal.rst:70
msgid ""
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading."
msgstr ""
#: c-api/marshal.rst:83 c-api/marshal.rst:92
#: c-api/marshal.rst:87 c-api/marshal.rst:96
msgid ""
"On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` "
"or :exc:`TypeError`) and returns ``NULL``."
msgstr ""
#: c-api/marshal.rst:75
#: c-api/marshal.rst:79
msgid ""
"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function "
@ -105,7 +111,7 @@ msgid ""
"anything else from the file."
msgstr ""
#: c-api/marshal.rst:89
#: c-api/marshal.rst:93
msgid ""
"Return a Python object from the data stream in a byte buffer containing "
"*len* bytes pointed to by *data*."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -681,7 +681,7 @@ msgstr ""
#: c-api/memory.rst:473
msgid ""
"For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-"
"For the :c:macro:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-"
"safe: the :term:`GIL <global interpreter lock>` is not held when the "
"allocator is called."
msgstr ""
@ -782,8 +782,9 @@ msgstr ""
#: c-api/memory.rst:538
msgid ""
"Check that the :term:`GIL <global interpreter lock>` is held when allocator "
"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :"
"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called."
"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) "
"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are "
"called."
msgstr ""
#: c-api/memory.rst:543
@ -823,15 +824,15 @@ msgid "API identifier (ASCII character):"
msgstr ""
#: c-api/memory.rst:560
msgid "``'r'`` for :c:data:`PYMEM_DOMAIN_RAW`."
msgid "``'r'`` for :c:macro:`PYMEM_DOMAIN_RAW`."
msgstr ""
#: c-api/memory.rst:561
msgid "``'m'`` for :c:data:`PYMEM_DOMAIN_MEM`."
msgid "``'m'`` for :c:macro:`PYMEM_DOMAIN_MEM`."
msgstr ""
#: c-api/memory.rst:562
msgid "``'o'`` for :c:data:`PYMEM_DOMAIN_OBJ`."
msgid "``'o'`` for :c:macro:`PYMEM_DOMAIN_OBJ`."
msgstr ""
#: c-api/memory.rst:565
@ -903,8 +904,8 @@ msgid ""
"The :c:func:`PyMem_SetupDebugHooks` function now also works on Python "
"compiled in release mode. On error, the debug hooks now use :mod:"
"`tracemalloc` to get the traceback where a memory block was allocated. The "
"debug hooks now also check if the GIL is held when functions of :c:data:"
"`PYMEM_DOMAIN_OBJ` and :c:data:`PYMEM_DOMAIN_MEM` domains are called."
"debug hooks now also check if the GIL is held when functions of :c:macro:"
"`PYMEM_DOMAIN_OBJ` and :c:macro:`PYMEM_DOMAIN_MEM` domains are called."
msgstr ""
#: c-api/memory.rst:607
@ -931,7 +932,7 @@ msgstr ""
#: c-api/memory.rst:624
msgid ""
"*pymalloc* is the :ref:`default allocator <default-memory-allocators>` of "
"the :c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:data:"
"the :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:macro:"
"`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains."
msgstr ""
@ -1059,5 +1060,21 @@ msgid ""
"object types in C."
msgstr ""
#: c-api/memory.rst:43
msgid "malloc()"
msgstr ""
#: c-api/memory.rst:43
msgid "calloc()"
msgstr ""
#: c-api/memory.rst:43
msgid "realloc()"
msgstr ""
#: c-api/memory.rst:43
msgid "free()"
msgstr ""
#~ msgid "``void free(void *ctx, size_t size, void *ptr)``"
#~ msgstr "``void free(void *ctx, size_t size, void *ptr)``"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2020-09-30 11:10+0200\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -104,3 +104,11 @@ msgstr ""
"*memoryview* ou ``NULL`` si la *memoryview* a été crée par :c:func:"
"`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. *mview* "
"**doit** être une instance de *memoryview*."
#: c-api/memoryview.rst:5
msgid "object"
msgstr ""
#: c-api/memoryview.rst:5
msgid "memoryview"
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-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -101,3 +101,20 @@ msgstr ""
#: c-api/method.rst:95
msgid "Macro version of :c:func:`PyMethod_Self` which avoids error checking."
msgstr ""
#: c-api/method.rst:50
#, fuzzy
msgid "object"
msgstr "Objets méthode"
#: c-api/method.rst:8
msgid "instancemethod"
msgstr ""
#: c-api/method.rst:50
msgid "method"
msgstr ""
#: c-api/method.rst:59
msgid "MethodType (in module types)"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-14 13:19+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -143,7 +143,7 @@ msgid ""
msgstr ""
#: c-api/module.rst:148
msgid "Always initialize this member to :const:`PyModuleDef_HEAD_INIT`."
msgid "Always initialize this member to :c:data:`PyModuleDef_HEAD_INIT`."
msgstr ""
#: c-api/module.rst:152
@ -262,7 +262,7 @@ msgstr ""
#: c-api/module.rst:257
msgid ""
"Create a new module object, given the definition in *def*. This behaves "
"like :c:func:`PyModule_Create2` with *module_api_version* set to :const:"
"like :c:func:`PyModule_Create2` with *module_api_version* set to :c:macro:"
"`PYTHON_API_VERSION`."
msgstr ""
@ -439,7 +439,7 @@ msgstr ""
msgid ""
"Create a new module object, given the definition in *def* and the ModuleSpec "
"*spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` with "
"*module_api_version* set to :const:`PYTHON_API_VERSION`."
"*module_api_version* set to :c:macro:`PYTHON_API_VERSION`."
msgstr ""
#: c-api/module.rst:399
@ -645,3 +645,43 @@ msgid ""
"Removes the module object created from *def* from the interpreter state. "
"Return 0 on success or -1 on failure."
msgstr ""
#: c-api/module.rst:8
msgid "object"
msgstr ""
#: c-api/module.rst:8
msgid "module"
msgstr ""
#: c-api/module.rst:13
msgid "ModuleType (in module types)"
msgstr ""
#: c-api/module.rst:74
msgid "__name__ (module attribute)"
msgstr ""
#: c-api/module.rst:33
msgid "__doc__ (module attribute)"
msgstr ""
#: c-api/module.rst:104
msgid "__file__ (module attribute)"
msgstr ""
#: c-api/module.rst:33
msgid "__package__ (module attribute)"
msgstr ""
#: c-api/module.rst:33
msgid "__loader__ (module attribute)"
msgstr ""
#: c-api/module.rst:60
msgid "__dict__ (module attribute)"
msgstr ""
#: c-api/module.rst:104
msgid "SystemError (built-in exception)"
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-07-21 14:55+0200\n"
"PO-Revision-Date: 2017-11-05 11:18+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -47,3 +47,11 @@ msgid ""
msgstr ""
"Renvoie, de la bonne manière, :c:data:`Py_None` depuis une fonction C (c'est "
"à dire en incrémentant les références à ``None`` avant de le donner)."
#: c-api/none.rst:8
msgid "object"
msgstr ""
#: c-api/none.rst:8
msgid "None"
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-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -296,3 +296,27 @@ msgid ""
"``tp_as_number`` structure filled in), and ``0`` otherwise. This function "
"always succeeds."
msgstr ""
#: c-api/number.rst:75 c-api/number.rst:195 c-api/number.rst:249
msgid "built-in function"
msgstr ""
#: c-api/number.rst:67
msgid "divmod"
msgstr ""
#: c-api/number.rst:195
msgid "pow"
msgstr ""
#: c-api/number.rst:97
msgid "abs"
msgstr ""
#: c-api/number.rst:241
msgid "int"
msgstr ""
#: c-api/number.rst:249
msgid "float"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-14 13:19+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -38,10 +38,11 @@ msgstr ""
"référence de ``NotImplemented`` et le renvoie)."
#: c-api/object.rst:24
#, fuzzy
msgid ""
"Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags "
"argument is used to enable certain printing options. The only option "
"currently supported is :const:`Py_PRINT_RAW`; if given, the :func:`str` of "
"currently supported is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of "
"the object is written instead of the :func:`repr`."
msgstr ""
"Écrit un objet *o*, dans le fichier *fp*. Renvoie ``-1`` en cas d'erreur. "
@ -50,7 +51,7 @@ msgstr ""
"est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place "
"de :func:`repr`."
#: c-api/object.rst:43
#: c-api/object.rst:45
msgid ""
"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. "
"This is equivalent to the Python expression ``hasattr(o, attr_name)``. This "
@ -60,26 +61,30 @@ msgstr ""
"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction "
"réussit toujours."
#: c-api/object.rst:36
#: c-api/object.rst:38
#, fuzzy
msgid ""
"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:"
"`__getattribute__` methods will get suppressed. To get error reporting use :"
"c:func:`PyObject_GetAttr()` instead."
"Exceptions that occur when this calls :meth:`~object.__getattr__` and :meth:"
"`~object.__getattribute__` methods are silently ignored. For proper error "
"handling, use :c:func:`PyObject_GetAttr` instead."
msgstr ""
"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:"
"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez "
"plutôt :c:func:`PyObject_GetItem()`."
#: c-api/object.rst:47
#: c-api/object.rst:51
#, fuzzy
msgid ""
"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:"
"`__getattribute__` methods and creating a temporary string object will get "
"suppressed. To get error reporting use :c:func:`PyObject_GetAttrString()` "
"instead."
"Exceptions that occur when this calls :meth:`~object.__getattr__` and :meth:"
"`~object.__getattribute__` methods or while creating the temporary :class:"
"`str` object are silently ignored. For proper error handling, use :c:func:"
"`PyObject_GetAttrString` instead."
msgstr ""
"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:"
"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez "
"plutôt :c:func:`PyObject_GetItem()`."
#: c-api/object.rst:55
#: c-api/object.rst:59
#, fuzzy
msgid ""
"Retrieve an attribute named *attr_name* from object *o*. Returns the "
@ -90,7 +95,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:62
#: c-api/object.rst:66
#, fuzzy
msgid ""
"Retrieve an attribute named *attr_name* from object *o*. Returns the "
@ -101,7 +106,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:69
#: c-api/object.rst:73
msgid ""
"Generic attribute getter function that is meant to be put into a type "
"object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary "
@ -118,7 +123,7 @@ msgstr ""
"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:"
"`AttributeError` est levée."
#: c-api/object.rst:91
#: c-api/object.rst:95
msgid ""
"Set the value of the attribute named *attr_name*, for object *o*, to the "
"value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on "
@ -129,7 +134,7 @@ msgstr ""
"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o."
"attr_name = v``."
#: c-api/object.rst:84
#: c-api/object.rst:88
#, fuzzy
msgid ""
"If *v* is ``NULL``, the attribute is deleted. This behaviour is deprecated "
@ -139,7 +144,7 @@ msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
#: c-api/object.rst:96
#: c-api/object.rst:100
#, fuzzy
msgid ""
"If *v* is ``NULL``, the attribute is deleted, but this feature is deprecated "
@ -148,7 +153,7 @@ msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
#: c-api/object.rst:102
#: c-api/object.rst:106
msgid ""
"Generic attribute setter and deleter function that is meant to be put into a "
"type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a "
@ -168,7 +173,7 @@ msgstr ""
"attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est "
"renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé."
#: c-api/object.rst:120
#: c-api/object.rst:124
msgid ""
"Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on "
"failure. This is the equivalent of the Python statement ``del o.attr_name``."
@ -177,7 +182,7 @@ msgstr ""
"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o."
"attr_name``."
#: c-api/object.rst:126
#: c-api/object.rst:130
msgid ""
"A generic implementation for the getter of a ``__dict__`` descriptor. It "
"creates the dictionary if necessary."
@ -185,7 +190,7 @@ 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:129
#: c-api/object.rst:133
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 "
@ -194,11 +199,11 @@ msgid ""
"the object."
msgstr ""
#: c-api/object.rst:135
#: c-api/object.rst:139
msgid "On failure, returns ``NULL`` with an exception set."
msgstr ""
#: c-api/object.rst:142
#: c-api/object.rst:146
msgid ""
"A generic implementation for the setter of a ``__dict__`` descriptor. This "
"implementation does not allow the dictionary to be deleted."
@ -206,29 +211,29 @@ 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:150
#: c-api/object.rst:154
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
#: c-api/object.rst:157
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
#: c-api/object.rst:164
#, fuzzy
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:"
"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, "
"``==``, ``!=``, ``>``, or ``>=`` respectively. This is the equivalent of the "
"Python expression ``o1 op o2``, where ``op`` is the operator corresponding "
"to *opid*. Returns the value of the comparison on success, or ``NULL`` on "
"failure."
"which must be one of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :"
"c:macro:`Py_NE`, :c:macro:`Py_GT`, or :c:macro:`Py_GE`, corresponding to "
"``<``, ``<=``, ``==``, ``!=``, ``>``, or ``>=`` respectively. This is the "
"equivalent of the Python expression ``o1 op o2``, where ``op`` is the "
"operator corresponding to *opid*. Returns the value of the comparison on "
"success, or ``NULL`` on failure."
msgstr ""
"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par "
"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:"
@ -238,15 +243,16 @@ msgstr ""
"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en "
"cas d'échec."
#: c-api/object.rst:170
#: c-api/object.rst:174
#, fuzzy
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:"
"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, "
"``==``, ``!=``, ``>``, or ``>=`` respectively. Returns ``-1`` on error, "
"``0`` if the result is false, ``1`` otherwise. This is the equivalent of the "
"Python expression ``o1 op o2``, where ``op`` is the operator corresponding "
"to *opid*."
"which must be one of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :"
"c:macro:`Py_NE`, :c:macro:`Py_GT`, or :c:macro:`Py_GE`, corresponding to "
"``<``, ``<=``, ``==``, ``!=``, ``>``, or ``>=`` respectively. Returns ``-1`` "
"on error, ``0`` if the result is false, ``1`` otherwise. This is the "
"equivalent of the Python expression ``o1 op o2``, where ``op`` is the "
"operator corresponding to *opid*."
msgstr ""
"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par "
"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:"
@ -256,29 +262,30 @@ msgstr ""
"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur "
"correspondant à *opid*."
#: c-api/object.rst:179
#: c-api/object.rst:183
#, fuzzy
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`."
"will always return ``1`` for :c:macro:`Py_EQ` and ``0`` for :c:macro:`Py_NE`."
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:184
#: c-api/object.rst:188
#, fuzzy
msgid ""
"Format *obj* using *format_spec*. This is equivalent to the Python "
"expression ``format(obj, format_spec)``."
msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
#: c-api/object.rst:187
#: c-api/object.rst:191
msgid ""
"*format_spec* may be ``NULL``. In this case the call is equivalent to "
"``format(obj)``. Returns the formatted string on success, ``NULL`` on "
"failure."
msgstr ""
#: c-api/object.rst:195
#: c-api/object.rst:199
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -291,7 +298,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:223
#: c-api/object.rst:227
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@ -299,7 +306,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:207
#: c-api/object.rst:211
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:"
@ -314,7 +321,7 @@ msgstr ""
"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction "
"native :func:`ascii`."
#: c-api/object.rst:218
#: c-api/object.rst:222
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@ -328,7 +335,7 @@ msgstr ""
"par la fonction native :func:`str`, et, par conséquent, par la fonction :"
"func:`print`."
#: c-api/object.rst:232
#: c-api/object.rst:236
#, fuzzy
msgid ""
"Compute a bytes representation of object *o*. ``NULL`` is returned on "
@ -343,7 +350,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:241
#: c-api/object.rst:245
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``."
@ -351,7 +358,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:263
#: c-api/object.rst:267
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``, "
@ -361,7 +368,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:248
#: c-api/object.rst:252
msgid ""
"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -373,7 +380,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:253
#: c-api/object.rst:257
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 "
@ -384,7 +391,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:260
#: c-api/object.rst:264
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."
@ -393,7 +400,7 @@ msgstr ""
"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et "
"initialise une exception."
#: c-api/object.rst:267
#: c-api/object.rst:271
msgid ""
"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@ -404,7 +411,7 @@ msgstr ""
"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de "
"*cls*."
#: c-api/object.rst:271
#: c-api/object.rst:275
msgid ""
"An instance *inst* can override what is considered its class by having a :"
"attr:`__class__` attribute."
@ -412,7 +419,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:274
#: c-api/object.rst:278
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 "
@ -422,19 +429,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:283
#: c-api/object.rst:287
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:286
#: c-api/object.rst:290
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:293
#: c-api/object.rst:297
msgid ""
"Set a :exc:`TypeError` indicating that ``type(o)`` is not :term:`hashable` "
"and return ``-1``. This function receives special treatment when stored in a "
@ -442,21 +449,21 @@ msgid ""
"that it is not hashable."
msgstr ""
#: c-api/object.rst:301
#: c-api/object.rst:305
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:308
#: c-api/object.rst:312
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:317
#: c-api/object.rst:321
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 "
@ -467,13 +474,13 @@ msgid ""
"incremented reference count is needed."
msgstr ""
#: c-api/object.rst:328
#: c-api/object.rst:332
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:337
#: c-api/object.rst:341
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, "
@ -481,7 +488,7 @@ msgid ""
"``len(o)``."
msgstr ""
#: c-api/object.rst:344
#: c-api/object.rst:348
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 "
@ -490,7 +497,7 @@ msgid ""
"defaultvalue)``."
msgstr ""
#: c-api/object.rst:354
#: c-api/object.rst:358
#, fuzzy
msgid ""
"Return element of *o* corresponding to the object *key* or ``NULL`` on "
@ -500,7 +507,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:360
#: c-api/object.rst:364
#, fuzzy
msgid ""
"Map the object *key* to the value *v*. Raise an exception and return ``-1`` "
@ -512,7 +519,7 @@ msgstr ""
"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o."
"attr_name = v``."
#: c-api/object.rst:368
#: c-api/object.rst:372
#, fuzzy
msgid ""
"Remove the mapping for the object *key* from the object *o*. Return ``-1`` "
@ -522,7 +529,7 @@ msgstr ""
"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python "
"``del o[key]``."
#: c-api/object.rst:374
#: c-api/object.rst:378
msgid ""
"This is equivalent to the Python expression ``dir(o)``, returning a "
"(possibly empty) list of strings appropriate for the object argument, or "
@ -532,7 +539,7 @@ msgid ""
"`PyErr_Occurred` will return false."
msgstr ""
#: c-api/object.rst:383
#: c-api/object.rst:387
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 "
@ -540,7 +547,7 @@ msgid ""
"object cannot be iterated."
msgstr ""
#: c-api/object.rst:391
#: c-api/object.rst:395
msgid ""
"This is the equivalent to the Python expression ``aiter(o)``. Takes an :"
"class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. "
@ -549,6 +556,42 @@ msgid ""
"``NULL`` if the object cannot be iterated."
msgstr ""
#: c-api/object.rst:209 c-api/object.rst:285 c-api/object.rst:339
msgid "built-in function"
msgstr ""
#: c-api/object.rst:197
msgid "repr"
msgstr ""
#: c-api/object.rst:209
msgid "ascii"
msgstr ""
#: c-api/object.rst:217
msgid "string"
msgstr ""
#: c-api/object.rst:217
msgid "PyObject_Str (C function)"
msgstr ""
#: c-api/object.rst:234
msgid "bytes"
msgstr ""
#: c-api/object.rst:285
msgid "hash"
msgstr ""
#: c-api/object.rst:319
msgid "type"
msgstr ""
#: c-api/object.rst:339
msgid "len"
msgstr ""
#~ 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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-05 22:34+0100\n"
"Last-Translator: Rémi Lapeyre <remi.lapeyre@lenstra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -22,40 +22,17 @@ msgstr ""
#: c-api/refcounting.rst:10
#, fuzzy
msgid ""
"The functions and macros in this section are used for managing reference "
"counts of Python objects."
"The macros in this section are used for managing reference counts of Python "
"objects."
msgstr ""
"Les macros dans cette section permettent de gérer le compteur de références "
"des objets Python."
#: c-api/refcounting.rst:16
#, fuzzy
msgid "Get the reference count of the Python object *o*."
msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:18
msgid ""
"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count."
msgstr ""
#: c-api/refcounting.rst:20
msgid "The parameter type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: c-api/refcounting.rst:23
msgid ":c:func:`Py_REFCNT()` is changed to the inline static function."
msgstr ""
#: c-api/refcounting.rst:29
#, fuzzy
msgid "Set the object *o* reference counter to *refcnt*."
msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:36
msgid "Increment the reference count for object *o*."
msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:38
#: c-api/refcounting.rst:18
msgid ""
"This function is usually used to convert a :term:`borrowed reference` to a :"
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
@ -66,7 +43,7 @@ msgstr ""
"`Py_NewRef` peut être utilisée pour créer une nouvelle :term:`référence "
"forte`."
#: c-api/refcounting.rst:42
#: c-api/refcounting.rst:22
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`."
@ -74,7 +51,7 @@ msgstr ""
"L'objet ne doit pas être ``NULL``, la fonction :c:func:`Py_XINCREF` doit "
"être utilisée s'il est possible qu'il soit ``NULL``."
#: c-api/refcounting.rst:48
#: c-api/refcounting.rst:28
msgid ""
"Increment the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect."
@ -82,11 +59,11 @@ msgstr ""
"Incrémente le compteur de références de l'objet *o*. La macro n'a pas "
"d'effet si l'objet est ``NULL``."
#: c-api/refcounting.rst:51
#: c-api/refcounting.rst:31
msgid "See also :c:func:`Py_XNewRef`."
msgstr "Voir aussi :c:func:`Py_XNewRef`."
#: c-api/refcounting.rst:56
#: c-api/refcounting.rst:36
msgid ""
"Create a new :term:`strong reference` to an object: increment the reference "
"count of the object *o* and return the object *o*."
@ -94,7 +71,7 @@ msgstr ""
"Créer une nouvelle :term:`référence forte` d'un objet : incrémente le "
"compteur de référence de l'objet *o* et renvoie l'objet *o*."
#: c-api/refcounting.rst:59
#: c-api/refcounting.rst:39
msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to decrement the object reference count."
@ -102,7 +79,7 @@ msgstr ""
":c:func:`Py_DECREF` doit être appelée quand la :term:`référence forte` n'est "
"plus utilisée pour décrémenter le compteur de références de l'objet."
#: c-api/refcounting.rst:62
#: c-api/refcounting.rst:42
msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``."
@ -110,31 +87,31 @@ msgstr ""
"L'objet *o* ne doit pas être ``NULL`` et la fonction :c:func:`Py_XNewRef` "
"doit être utilisée si *o* peut être ``NULL``."
#: c-api/refcounting.rst:65
#: c-api/refcounting.rst:45
msgid "For example::"
msgstr "Par exemple ::"
#: c-api/refcounting.rst:70
#: c-api/refcounting.rst:50
msgid "can be written as::"
msgstr "peut s'écrire ::"
#: c-api/refcounting.rst:74
#: c-api/refcounting.rst:54
msgid "See also :c:func:`Py_INCREF`."
msgstr "Voir aussi :c:func:`Py_INCREF`."
#: c-api/refcounting.rst:81
#: c-api/refcounting.rst:61
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``."
#: c-api/refcounting.rst:83
#: c-api/refcounting.rst:63
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
msgstr "Cette fonction renvoie ``NULL`` si l'objet *o* est ``NULL``."
#: c-api/refcounting.rst:90
#: c-api/refcounting.rst:70
msgid "Decrement the reference count for object *o*."
msgstr "Décrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:92
#: c-api/refcounting.rst:72
msgid ""
"If the reference count reaches zero, the object's type's deallocation "
"function (which must not be ``NULL``) is invoked."
@ -142,7 +119,7 @@ msgstr ""
"Si le compteur de références atteint zéro, la fonction de dés-allocation du "
"type de l'objet (qui ne doit pas être ``NULL``) est invoquée."
#: c-api/refcounting.rst:95
#: c-api/refcounting.rst:75
msgid ""
"This function is usually used to delete a :term:`strong reference` before "
"exiting its scope."
@ -150,7 +127,7 @@ msgstr ""
"Cette fonction est généralement utilisée pour supprimer une :term:`référence "
"forte` avant qu'elle ne soit plus accessible."
#: c-api/refcounting.rst:98
#: c-api/refcounting.rst:78
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`."
@ -158,7 +135,7 @@ msgstr ""
"L'objet en argument ne doit pas être ``NULL``. :c:func:`Py_XDECREF` doit "
"être utilisée si l'objet peut être ``NULL``."
#: c-api/refcounting.rst:103
#: c-api/refcounting.rst:83
msgid ""
"The deallocation function can cause arbitrary Python code to be invoked (e."
"g. when a class instance with a :meth:`__del__` method is deallocated). "
@ -180,7 +157,7 @@ msgstr ""
"référence à l'objet dans une variable temporaire, mettre à jour la liste, et "
"enfin appeler :c:func:`Py_DECREF` avec la variable temporaire."
#: c-api/refcounting.rst:115
#: c-api/refcounting.rst:95
msgid ""
"Decrement the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect; otherwise the effect is the same as "
@ -191,7 +168,7 @@ msgstr ""
"comportement est identique à :c:func:`Py_DECREF` et les mêmes avertissements "
"sont de rigueur."
#: c-api/refcounting.rst:122
#: c-api/refcounting.rst:102
msgid ""
"Decrement the reference count for object *o*. The object may be ``NULL``, "
"in which case the macro has no effect; otherwise the effect is the same as "
@ -207,7 +184,7 @@ msgstr ""
"`Py_DECREF` ne s'applique pas car la macro utilise une variable temporaire "
"et met l'objet à ``NULL`` avant de décrémenter le compteur de références."
#: c-api/refcounting.rst:129
#: c-api/refcounting.rst:109
msgid ""
"It is a good idea to use this macro whenever decrementing the reference "
"count of an object that might be traversed during garbage collection."
@ -215,13 +192,7 @@ msgstr ""
"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de "
"référence d'un objet qui peut être parcouru par le ramasse-miette."
#: c-api/refcounting.rst:132
msgid ""
"The macro argument is now only evaluated once. If the argument has side "
"effects, these are no longer duplicated."
msgstr ""
#: c-api/refcounting.rst:139
#: c-api/refcounting.rst:114
msgid ""
"Increment the reference count for object *o*. A function version of :c:func:"
"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python."
@ -230,7 +201,7 @@ msgstr ""
"fonctionnelle de :c:func:`Py_XINCREF`. Elle peut être utilisée lorsque "
"Python est embarqué dynamiquement dans une application."
#: c-api/refcounting.rst:145
#: c-api/refcounting.rst:120
msgid ""
"Decrement the reference count for object *o*. A function version of :c:func:"
"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
@ -239,45 +210,21 @@ msgstr ""
"fonctionnelle de :c:func:`Py_XDECREF`. Elle peut être utilisée lorsque "
"Python est embarqué dynamiquement dans une application."
#: c-api/refcounting.rst:151
#: c-api/refcounting.rst:124
msgid ""
"Macro safely decrementing the `dst` reference count and setting `dst` to "
"`src`."
"The following functions or macros are only for use within the interpreter "
"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"
"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`."
msgstr ""
"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein "
"de l'interpréteur et ne font pas partie de l'API publique : :c:func:"
"`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, "
"ainsi que la variable globale :c:data:`_Py_RefTotal`."
#: c-api/refcounting.rst:154
msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::"
msgstr ""
#, fuzzy
#~ msgid "Get the reference count of the Python object *o*."
#~ msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:159
msgid "The safe way is::"
msgstr ""
#: c-api/refcounting.rst:163
msgid ""
"That arranges to set `dst` to `src` _before_ decrementing reference count of "
"*dst* old value, so that any code triggered as a side-effect of `dst` "
"getting torn down no longer believes `dst` points to a valid object."
msgstr ""
#: c-api/refcounting.rst:181
msgid ""
"The macro arguments are now only evaluated once. If an argument has side "
"effects, these are no longer duplicated."
msgstr ""
#: c-api/refcounting.rst:176
msgid ""
"Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead "
"of :c:func:`Py_DECREF`."
msgstr ""
#~ msgid ""
#~ "The following functions or macros are only for use within the interpreter "
#~ "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:"
#~ "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`."
#~ msgstr ""
#~ "Les fonctions ou macros suivantes doivent être uniquement utilisées au "
#~ "sein de l'interpréteur et ne font pas partie de l'API publique : :c:func:"
#~ "`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, "
#~ "ainsi que la variable globale :c:data:`_Py_RefTotal`."
#, fuzzy
#~ msgid "Set the object *o* reference counter to *refcnt*."
#~ msgstr "Incrémente le compteur de références de l'objet *o*."

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-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -198,3 +198,15 @@ msgid ""
"`PySequence_Check` on *o* is true and without adjustment for negative "
"indices."
msgstr ""
#: c-api/sequence.rst:123
msgid "built-in function"
msgstr ""
#: c-api/sequence.rst:21
msgid "len"
msgstr ""
#: c-api/sequence.rst:123
msgid "tuple"
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-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -187,3 +187,23 @@ msgstr ""
#: c-api/set.rst:166
msgid "Empty an existing set of all elements."
msgstr ""
#: c-api/set.rst:11
msgid "object"
msgstr ""
#: c-api/set.rst:11
msgid "set"
msgstr ""
#: c-api/set.rst:11
msgid "frozenset"
msgstr ""
#: c-api/set.rst:110
msgid "built-in function"
msgstr ""
#: c-api/set.rst:110
msgid "len"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-27 19:26+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -50,7 +50,7 @@ msgstr ""
#: c-api/slice.rst:36
msgid ""
"Returns ``0`` on success and ``-1`` on error with no exception set (unless "
"one of the indices was not :const:`None` and failed to be converted to an "
"one of the indices was not ``None`` and failed to be converted to an "
"integer, in which case ``-1`` is returned with an exception set)."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-05 22:38+0100\n"
"Last-Translator: Rémi Lapeyre <remi.lapeyre@lenstra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -22,10 +22,11 @@ msgstr "Stabilité de lAPI C"
#: c-api/stable.rst:9
#, fuzzy
msgid ""
"Unless documented otherwise, Python's C API is covered by the Backwards "
"Compatibility Policy, :pep:`387`. Most changes to it are source-compatible "
"(typically by only adding new API). Changing existing API or removing API is "
"only done after a deprecation period or to fix serious issues."
"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. "
"While the C API will change with every minor release (e.g. from 3.9 to "
"3.10), most changes will be source-compatible, typically by only adding new "
"API. Changing existing API or removing API is only done after a deprecation "
"period or to fix serious issues."
msgstr ""
"L'API C respecte la politique de rétrocompatibilité de Python, :pep:`387`. "
"Malgré la présence dévolutions dans chaque version mineure (par exemple "
@ -49,66 +50,20 @@ msgstr ""
"inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x."
#: c-api/stable.rst:21
msgid "There are two tiers of C API with different stability exepectations:"
msgstr ""
#: c-api/stable.rst:23
msgid ""
"*Unstable API*, may change in minor versions without a deprecation period. "
"It is marked by the ``PyUnstable`` prefix in names."
msgstr ""
#: c-api/stable.rst:25
msgid ""
"*Limited API*, is compatible across several minor releases. When :c:macro:"
"`Py_LIMITED_API` is defined, only this subset is exposed from ``Python.h``."
msgstr ""
#: c-api/stable.rst:29
msgid "These are discussed in more detail below."
msgstr ""
#: c-api/stable.rst:31
#, fuzzy
msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases. If you need to "
"use this API, consider reaching out to `CPython developers <https://discuss."
"python.org/c/core-dev/c-api/30>`_ to discuss adding public API for your use "
"case."
"API that can change without notice even in patch releases."
msgstr ""
"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, "
"font partie de lAPI privée et peuvent changer sans préavis même dans une "
"version de correctif."
#: c-api/stable.rst:40
msgid "Unstable C API"
msgstr ""
#: c-api/stable.rst:44
msgid ""
"Any API named with the ``PyUnstable`` prefix exposes CPython implementation "
"details, and may change in every minor release (e.g. from 3.9 to 3.10) "
"without any deprecation warnings. However, it will not change in a bugfix "
"release (e.g. from 3.10.0 to 3.10.1)."
msgstr ""
#: c-api/stable.rst:49
msgid ""
"It is generally intended for specialized, low-level tools like debuggers."
msgstr ""
#: c-api/stable.rst:51
msgid ""
"Projects that use this API are expected to follow CPython development and "
"spend extra effort adjusting to changes."
msgstr ""
#: c-api/stable.rst:56
#: c-api/stable.rst:26
msgid "Stable Application Binary Interface"
msgstr "ABI stable"
#: c-api/stable.rst:58
#: c-api/stable.rst:28
msgid ""
"Python 3.2 introduced the *Limited API*, a subset of Python's C API. "
"Extensions that only use the Limited API can be compiled once and work with "
@ -121,7 +76,7 @@ msgstr ""
"de Python. Les objets faisant partie de lAPI restreinte sont :ref:"
"`documentés ci-dessous <stable-abi-list>`."
#: c-api/stable.rst:63
#: c-api/stable.rst:33
msgid ""
"To enable this, Python provides a *Stable ABI*: a set of symbols that will "
"remain compatible across Python 3.x versions. The Stable ABI contains "
@ -134,7 +89,7 @@ msgstr ""
"les fonctions nécessaires pour supporter les versions précédentes de lAPI "
"restreinte en font aussi partie."
#: c-api/stable.rst:68
#: c-api/stable.rst:38
msgid ""
"(For simplicity, this document talks about *extensions*, but the Limited API "
"and Stable ABI work the same way for all uses of the API for example, "
@ -144,7 +99,7 @@ msgstr ""
"lABI stable fonctionnent de la même manière pour tous les cas dusages de "
"lAPI — par exemple pour embarquer Python.)"
#: c-api/stable.rst:74
#: c-api/stable.rst:44
msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version."
@ -152,9 +107,10 @@ msgstr ""
"Définissez cette macro avant dinclure ``Python.h`` pour ninclure que lAPI "
"restreinte et indiquer sa version."
#: c-api/stable.rst:77
#: c-api/stable.rst:47
#, fuzzy
msgid ""
"Define ``Py_LIMITED_API`` to the value of :c:data:`PY_VERSION_HEX` "
"Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX` "
"corresponding to the lowest Python version your extension supports. The "
"extension will work without recompilation with all Python 3 releases from "
"the specified one onward, and can use Limited API introduced up to that "
@ -166,7 +122,7 @@ msgstr ""
"futures de Python 3, et peut utiliser lensemble des éléments de lAPI "
"restreinte présent dans cette version."
#: c-api/stable.rst:83
#: c-api/stable.rst:53
msgid ""
"Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum "
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
@ -177,7 +133,7 @@ msgstr ""
"``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée "
"lors de la compilation."
#: c-api/stable.rst:87
#: c-api/stable.rst:57
msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
@ -186,7 +142,7 @@ msgstr ""
"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version "
"à supporter lAPI restreinte."
#: c-api/stable.rst:90
#: c-api/stable.rst:60
msgid ""
"On Windows, extensions that use the Stable ABI should be linked against "
"``python3.dll`` rather than a version-specific library such as ``python39."
@ -196,7 +152,7 @@ msgstr ""
"avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une "
"version comme ``python39.dll``."
#: c-api/stable.rst:94
#: c-api/stable.rst:64
msgid ""
"On some platforms, Python will look for and load shared library files named "
"with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such "
@ -211,7 +167,7 @@ msgstr ""
"avec une version donnée de lAPI restreinte, par exemple 3.10+, ne sont pas "
"utilisées avec des versions plus anciennes de Python."
#: c-api/stable.rst:101
#: c-api/stable.rst:71
msgid ""
"All functions in the Stable ABI are present as functions in Python's shared "
"library, not solely as macros. This makes them usable from languages that "
@ -222,11 +178,11 @@ msgstr ""
"Elles peuvent donc être utilisées avec des langages qui nutilisent pas le "
"pré-processeur C."
#: c-api/stable.rst:107
#: c-api/stable.rst:77
msgid "Limited API Scope and Performance"
msgstr "Porté de lAPI restreinte et performance"
#: c-api/stable.rst:109
#: c-api/stable.rst:79
msgid ""
"The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty."
@ -235,7 +191,7 @@ msgstr ""
"possibles avec lAPI C étendue, mais peut avoir un impact sur les "
"performances."
#: c-api/stable.rst:112
#: c-api/stable.rst:82
msgid ""
"For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro "
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
@ -246,7 +202,7 @@ msgstr ""
"peut être plus rapide car elle dépend de détails dimplémentation spécifique "
"à lobjet ``list``."
#: c-api/stable.rst:117
#: c-api/stable.rst:87
msgid ""
"Without ``Py_LIMITED_API`` defined, some C API functions are inlined or "
"replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, "
@ -259,7 +215,7 @@ msgstr ""
"contre les évolutions des structures de données utilisées par Python, et "
"peut réduire les performances."
#: c-api/stable.rst:122
#: c-api/stable.rst:92
msgid ""
"By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile "
"a Limited API extension with a version-specific ABI. This can improve "
@ -276,11 +232,11 @@ msgstr ""
"à une version nest pas disponible — par exemple pour une version alpha de "
"Python."
#: c-api/stable.rst:131
#: c-api/stable.rst:101
msgid "Limited API Caveats"
msgstr "Inconvénients de lAPI restreinte"
#: c-api/stable.rst:133
#: c-api/stable.rst:103
msgid ""
"Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee "
"that code conforms to the Limited API or the Stable ABI. ``Py_LIMITED_API`` "
@ -292,7 +248,7 @@ msgstr ""
"ne concerne que la définition des objets, mais une API inclut aussi dautres "
"spécificités comme le comportement attendu."
#: c-api/stable.rst:138
#: c-api/stable.rst:108
msgid ""
"One issue that ``Py_LIMITED_API`` does not guard against is calling a "
"function with arguments that are invalid in a lower Python version. For "
@ -309,7 +265,7 @@ msgstr ""
"lobjet pointé et dé-référencera ``NULL``, causant un crash. Des problèmes "
"similaires peuvent se produire avec les attributs des structures."
#: c-api/stable.rst:145
#: c-api/stable.rst:115
msgid ""
"Another issue is that some struct fields are currently not hidden when "
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
@ -318,7 +274,7 @@ msgstr ""
"lorsque ``Py_LIMITED_API`` est défini, même sils ne font pas partie de "
"lAPI restreinte."
#: c-api/stable.rst:148
#: c-api/stable.rst:118
msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version."
@ -327,7 +283,7 @@ msgstr ""
"des versions mineures* supportées de Python, et généralement de la compiler "
"avec la plus *ancienne* de ces versions."
#: c-api/stable.rst:151
#: c-api/stable.rst:121
msgid ""
"We also recommend reviewing documentation of all used API to check if it is "
"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a "
@ -340,7 +296,7 @@ msgstr ""
"peuvent être exposées aux utilisateurs pour des raisons techniques, ou par "
"erreur."
#: c-api/stable.rst:156
#: c-api/stable.rst:126
msgid ""
"Also note that the Limited API is not necessarily stable: compiling with "
"``Py_LIMITED_API`` with Python 3.8 means that the extension will run with "
@ -354,11 +310,11 @@ msgstr ""
"Python 3.12. En particulier certaines parties de lAPI restreinte peuvent "
"être dépréciées et retirées tant que lABI stable nest pas modifiée."
#: c-api/stable.rst:166
#: c-api/stable.rst:136
msgid "Platform Considerations"
msgstr "Considérations relatives aux plateformes"
#: c-api/stable.rst:168
#: c-api/stable.rst:138
msgid ""
"ABI stability depends not only on Python, but also on the compiler used, "
"lower-level libraries and compiler options. For the purposes of the Stable "
@ -371,7 +327,7 @@ msgstr ""
 plateforme ». Ils dépendent généralement du système dexploitation et de "
"larchitecture du processeur."
#: c-api/stable.rst:173
#: c-api/stable.rst:143
msgid ""
"It is the responsibility of each particular distributor of Python to ensure "
"that all Python versions on a particular platform are built in a way that "
@ -384,10 +340,10 @@ msgstr ""
"Windows et macOS de ``python.org`` et de la plupart des distributions "
"tierces."
#: c-api/stable.rst:183
#: c-api/stable.rst:153
msgid "Contents of Limited API"
msgstr "Contenu de lAPI restreinte"
#: c-api/stable.rst:186
#: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:"
msgstr "Pour le moment lAPI restreinte inclut les éléments suivants :"

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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -32,17 +32,13 @@ msgstr ""
msgid ""
"Return true (nonzero) if the standard I/O file *fp* with name *filename* is "
"deemed interactive. This is the case for files for which "
"``isatty(fileno(fp))`` is true. If the :c:member:`PyConfig.interactive` is "
"non-zero, this function also returns true if the *filename* pointer is "
"``NULL`` or if the name is equal to one of the strings ``'<stdin>'`` or "
"``'???'``."
"``isatty(fileno(fp))`` is true. If the global flag :c:data:"
"`Py_InteractiveFlag` is true, this function also returns true if the "
"*filename* pointer is ``NULL`` or if the name is equal to one of the strings "
"``'<stdin>'`` or ``'???'``."
msgstr ""
#: c-api/sys.rst:28
msgid "This function must not be called before Python is initialized."
msgstr ""
#: c-api/sys.rst:33
#: c-api/sys.rst:31
msgid ""
"Function to prepare some internal state before a process fork. This should "
"be called before calling :c:func:`fork` or any similar function that clones "
@ -50,14 +46,14 @@ msgid ""
"defined."
msgstr ""
#: c-api/sys.rst:39
#: c-api/sys.rst:37
msgid ""
"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread "
"<fork-and-threads>` (of the :ref:`\"main\" interpreter <sub-interpreter-"
"support>`). The same is true for ``PyOS_BeforeFork()``."
msgstr ""
#: c-api/sys.rst:49
#: c-api/sys.rst:47
msgid ""
"Function to update some internal state after a process fork. This should be "
"called from the parent process after calling :c:func:`fork` or any similar "
@ -66,14 +62,14 @@ msgid ""
"defined."
msgstr ""
#: c-api/sys.rst:56
#: c-api/sys.rst:54
msgid ""
"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread "
"<fork-and-threads>` (of the :ref:`\"main\" interpreter <sub-interpreter-"
"support>`). The same is true for ``PyOS_AfterFork_Parent()``."
msgstr ""
#: c-api/sys.rst:66
#: c-api/sys.rst:64
msgid ""
"Function to update internal interpreter state after a process fork. This "
"must be called from the child process after calling :c:func:`fork`, or any "
@ -82,21 +78,21 @@ msgid ""
"systems where :c:func:`fork` is defined."
msgstr ""
#: c-api/sys.rst:73
#: c-api/sys.rst:71
msgid ""
"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread "
"<fork-and-threads>` (of the :ref:`\"main\" interpreter <sub-interpreter-"
"support>`). The same is true for ``PyOS_AfterFork_Child()``."
msgstr ""
#: c-api/sys.rst:81
#: c-api/sys.rst:79
msgid ""
":func:`os.register_at_fork` allows registering custom Python functions to be "
"called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` and :"
"c:func:`PyOS_AfterFork_Child`."
msgstr ""
#: c-api/sys.rst:88
#: c-api/sys.rst:86
msgid ""
"Function to update some internal state after a process fork; this should be "
"called in the new process if the Python interpreter will continue to be "
@ -104,20 +100,20 @@ msgid ""
"not need to be called."
msgstr ""
#: c-api/sys.rst:93
#: c-api/sys.rst:91
msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`."
msgstr ""
#: c-api/sys.rst:99
#: c-api/sys.rst:97
msgid ""
"Return true when the interpreter runs out of stack space. This is a "
"reliable check, but is only available when :const:`USE_STACKCHECK` is "
"reliable check, but is only available when :c:macro:`USE_STACKCHECK` is "
"defined (currently on certain versions of Windows using the Microsoft Visual "
"C++ compiler). :const:`USE_STACKCHECK` will be defined automatically; you "
"C++ compiler). :c:macro:`USE_STACKCHECK` will be defined automatically; you "
"should never change the definition in your own code."
msgstr ""
#: c-api/sys.rst:108
#: c-api/sys.rst:106
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 "
@ -125,7 +121,7 @@ msgid ""
"expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:116
#: c-api/sys.rst:114
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:"
@ -133,21 +129,21 @@ msgid ""
"`PyOS_sighandler_t` is a typedef alias for :c:expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:124
#: c-api/sys.rst:122
msgid ""
"This function should not be called directly: use the :c:type:`PyConfig` API "
"with the :c:func:`PyConfig_SetBytesString` function which ensures that :ref:"
"`Python is preinitialized <c-preinit>`."
msgstr ""
#: c-api/sys.rst:195
#: c-api/sys.rst:193
msgid ""
"This function must not be called before :ref:`Python is preinitialized <c-"
"preinit>` and so that the LC_CTYPE locale is properly configured: see the :c:"
"func:`Py_PreInitialize` function."
msgstr ""
#: c-api/sys.rst:132
#: c-api/sys.rst:130
msgid ""
"Decode a byte string from the :term:`filesystem encoding and error handler`. "
"If the error handler is :ref:`surrogateescape error handler "
@ -157,57 +153,57 @@ msgid ""
"instead of decoding them."
msgstr ""
#: c-api/sys.rst:139
#: c-api/sys.rst:137
msgid ""
"Return a pointer to a newly allocated wide character string, use :c:func:"
"`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the "
"number of wide characters excluding the null character into ``*size``"
msgstr ""
#: c-api/sys.rst:143
#: c-api/sys.rst:141
msgid ""
"Return ``NULL`` on decoding error or memory allocation error. If *size* is "
"not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to "
"``(size_t)-2`` on decoding error."
msgstr ""
#: c-api/sys.rst:187
#: c-api/sys.rst:185
msgid ""
"The :term:`filesystem encoding and error handler` are selected by :c:func:"
"`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` and :c:member:"
"`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`."
msgstr ""
#: c-api/sys.rst:151
#: c-api/sys.rst:149
msgid ""
"Decoding errors should never happen, unless there is a bug in the C library."
msgstr ""
#: c-api/sys.rst:154
#: c-api/sys.rst:152
msgid ""
"Use the :c:func:`Py_EncodeLocale` function to encode the character string "
"back to a byte string."
msgstr ""
#: c-api/sys.rst:159
#: c-api/sys.rst:157
msgid ""
"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:"
"`PyUnicode_DecodeLocaleAndSize` functions."
msgstr ""
#: c-api/sys.rst:206
#: c-api/sys.rst:204
msgid ""
"The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode "
"<utf8-mode>`."
msgstr ""
#: c-api/sys.rst:168
#: c-api/sys.rst:166
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:member:`PyConfig."
"legacy_windows_fs_encoding` is zero;"
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero;"
msgstr ""
#: c-api/sys.rst:175
#: c-api/sys.rst:173
msgid ""
"Encode a wide character string to the :term:`filesystem encoding and error "
"handler`. If the error handler is :ref:`surrogateescape error handler "
@ -215,42 +211,42 @@ msgid ""
"converted to bytes 0x80..0xFF."
msgstr ""
#: c-api/sys.rst:180
#: c-api/sys.rst:178
msgid ""
"Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` "
"to free the memory. Return ``NULL`` on encoding error or memory allocation "
"error."
msgstr ""
#: c-api/sys.rst:184
#: c-api/sys.rst:182
msgid ""
"If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on "
"success, or set to the index of the invalid character on encoding error."
msgstr ""
#: c-api/sys.rst:191
#: c-api/sys.rst:189
msgid ""
"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back "
"to a wide character string."
msgstr ""
#: c-api/sys.rst:201
#: c-api/sys.rst:199
msgid ""
"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` "
"functions."
msgstr ""
#: c-api/sys.rst:210
#: c-api/sys.rst:208
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:member:`PyConfig."
"legacy_windows_fs_encoding` is zero."
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero."
msgstr ""
#: c-api/sys.rst:218
#: c-api/sys.rst:216
msgid "System Functions"
msgstr ""
#: c-api/sys.rst:220
#: c-api/sys.rst:218
msgid ""
"These are utility functions that make functionality from the :mod:`sys` "
"module accessible to C code. They all work with the current interpreter "
@ -258,43 +254,43 @@ msgid ""
"state structure."
msgstr ""
#: c-api/sys.rst:226
#: c-api/sys.rst:224
msgid ""
"Return the object *name* from the :mod:`sys` module or ``NULL`` if it does "
"not exist, without setting an exception."
msgstr ""
#: c-api/sys.rst:231
#: c-api/sys.rst:229
msgid ""
"Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which "
"case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` "
"on error."
msgstr ""
#: c-api/sys.rst:237
#: c-api/sys.rst:235
msgid ""
"Reset :data:`sys.warnoptions` to an empty list. This function may be called "
"prior to :c:func:`Py_Initialize`."
msgstr ""
#: c-api/sys.rst:253
#: c-api/sys.rst:251
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"warnoptions` should be used instead, see :ref:`Python Initialization "
"Configuration <init-config>`."
msgstr ""
#: c-api/sys.rst:246
#: c-api/sys.rst:244
msgid ""
"Append *s* to :data:`sys.warnoptions`. This function must be called prior "
"to :c:func:`Py_Initialize` in order to affect the warnings filter list."
msgstr ""
#: c-api/sys.rst:257
#: c-api/sys.rst:255
msgid "Append *unicode* to :data:`sys.warnoptions`."
msgstr ""
#: c-api/sys.rst:259
#: c-api/sys.rst:257
msgid ""
"Note: this function is not currently usable from outside the CPython "
"implementation, as it must be called prior to the implicit import of :mod:"
@ -303,7 +299,7 @@ msgid ""
"Unicode objects."
msgstr ""
#: c-api/sys.rst:269
#: c-api/sys.rst:267
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"module_search_paths` and :c:member:`PyConfig.module_search_paths_set` should "
@ -311,20 +307,20 @@ msgid ""
"config>`."
msgstr ""
#: c-api/sys.rst:274
#: c-api/sys.rst:272
msgid ""
"Set :data:`sys.path` to a list object of paths found in *path* which should "
"be a list of paths separated with the platform's search path delimiter (``:"
"`` on Unix, ``;`` on Windows)."
msgstr ""
#: c-api/sys.rst:282
#: c-api/sys.rst:280
msgid ""
"Write the output string described by *format* to :data:`sys.stdout`. No "
"exceptions are raised, even if truncation occurs (see below)."
msgstr ""
#: c-api/sys.rst:285
#: c-api/sys.rst:283
msgid ""
"*format* should limit the total size of the formatted output string to 1000 "
"bytes or less -- after 1000 bytes, the output string is truncated. In "
@ -335,58 +331,58 @@ msgid ""
"of digits for very large numbers."
msgstr ""
#: c-api/sys.rst:293
#: c-api/sys.rst:291
msgid ""
"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message "
"is written to the real (C level) *stdout*."
msgstr ""
#: c-api/sys.rst:298
#: c-api/sys.rst:296
msgid ""
"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* "
"instead."
msgstr ""
#: c-api/sys.rst:303
#: c-api/sys.rst:301
msgid ""
"Function similar to PySys_WriteStdout() but format the message using :c:func:"
"`PyUnicode_FromFormatV` and don't truncate the message to an arbitrary "
"length."
msgstr ""
#: c-api/sys.rst:311
#: c-api/sys.rst:309
msgid ""
"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* "
"instead."
msgstr ""
#: c-api/sys.rst:318
#: c-api/sys.rst:316
msgid ""
"This API is kept for backward compatibility: setting :c:member:`PyConfig."
"xoptions` should be used instead, see :ref:`Python Initialization "
"Configuration <init-config>`."
msgstr ""
#: c-api/sys.rst:322
#: c-api/sys.rst:320
msgid ""
"Parse *s* as a set of :option:`-X` options and add them to the current "
"options mapping as returned by :c:func:`PySys_GetXOptions`. This function "
"may be called prior to :c:func:`Py_Initialize`."
msgstr ""
#: c-api/sys.rst:332
#: c-api/sys.rst:330
msgid ""
"Return the current dictionary of :option:`-X` options, similarly to :data:"
"`sys._xoptions`. On error, ``NULL`` is returned and an exception is set."
msgstr ""
#: c-api/sys.rst:341
#: c-api/sys.rst:339
msgid ""
"Raise an auditing event with any active hooks. Return zero for success and "
"non-zero with an exception set on failure."
msgstr ""
#: c-api/sys.rst:344
#: c-api/sys.rst:342
msgid ""
"If any hooks have been added, *format* and other arguments will be used to "
"construct a tuple to pass. Apart from ``N``, the same format characters as "
@ -397,23 +393,23 @@ msgid ""
"leaks.)"
msgstr ""
#: c-api/sys.rst:352
#: c-api/sys.rst:350
msgid ""
"Note that ``#`` format characters should always be treated as :c:type:"
"`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined."
msgstr ""
#: c-api/sys.rst:355
#: c-api/sys.rst:353
msgid ":func:`sys.audit` performs the same function from Python code."
msgstr ""
#: c-api/sys.rst:361
#: c-api/sys.rst:359
msgid ""
"Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an "
"unavoidable deprecation warning was raised."
msgstr ""
#: c-api/sys.rst:367
#: c-api/sys.rst:365
msgid ""
"Append the callable *hook* to the list of active auditing hooks. Return zero "
"on success and non-zero on failure. If the runtime has been initialized, "
@ -421,14 +417,14 @@ msgid ""
"all interpreters created by the runtime."
msgstr ""
#: c-api/sys.rst:373
#: c-api/sys.rst:371
msgid ""
"The *userData* pointer is passed into the hook function. Since hook "
"functions may be called from different runtimes, this pointer should not "
"refer directly to Python state."
msgstr ""
#: c-api/sys.rst:377
#: c-api/sys.rst:375
msgid ""
"This function is safe to call before :c:func:`Py_Initialize`. When called "
"after runtime initialization, existing audit hooks are notified and may "
@ -436,7 +432,7 @@ msgid ""
"`Exception` (other errors will not be silenced)."
msgstr ""
#: c-api/sys.rst:382
#: c-api/sys.rst:380
msgid ""
"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:"
@ -444,14 +440,14 @@ msgid ""
"Python interpreter that raised the event."
msgstr ""
#: c-api/sys.rst:387
#: c-api/sys.rst:385
msgid ""
"See :pep:`578` for a detailed description of auditing. Functions in the "
"runtime and standard library that raise events are listed in the :ref:`audit "
"events table <audit-events>`. Details are in each function's documentation."
msgstr ""
#: c-api/sys.rst:392
#: c-api/sys.rst:390
msgid ""
"Raises an :ref:`auditing event <auditing>` ``sys.addaudithook`` with no "
"arguments."
@ -459,7 +455,7 @@ msgstr ""
"Déclenche un :ref:`événement d'audit <auditing>` ``sys.addaudithook`` sans "
"arguments."
#: c-api/sys.rst:394
#: c-api/sys.rst:392
msgid ""
"If the interpreter is initialized, this function raises a auditing event "
"``sys.addaudithook`` with no arguments. If any existing hooks raise an "
@ -468,11 +464,11 @@ msgid ""
"hook has been added unless they control all existing hooks."
msgstr ""
#: c-api/sys.rst:406
#: c-api/sys.rst:404
msgid "Process Control"
msgstr ""
#: c-api/sys.rst:413
#: c-api/sys.rst:411
msgid ""
"Print a fatal error message and kill the process. No cleanup is performed. "
"This function should only be invoked when a condition is detected that would "
@ -482,29 +478,29 @@ msgid ""
"file:`core` file."
msgstr ""
#: c-api/sys.rst:420
#: c-api/sys.rst:418
msgid ""
"The ``Py_FatalError()`` function is replaced with a macro which logs "
"automatically the name of the current function, unless the "
"``Py_LIMITED_API`` macro is defined."
msgstr ""
#: c-api/sys.rst:424
#: c-api/sys.rst:422
msgid "Log the function name automatically."
msgstr ""
#: c-api/sys.rst:434
#: c-api/sys.rst:432
msgid ""
"Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls "
"the standard C library function ``exit(status)``. If :c:func:"
"`Py_FinalizeEx` indicates an error, the exit status is set to 120."
msgstr ""
#: c-api/sys.rst:438
#: c-api/sys.rst:436
msgid "Errors from finalization no longer ignored."
msgstr ""
#: c-api/sys.rst:448
#: c-api/sys.rst:446
msgid ""
"Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The "
"cleanup function will be called with no arguments and should return no "
@ -515,3 +511,19 @@ msgid ""
"finalization will have completed before the cleanup function, no Python APIs "
"should be called by *func*."
msgstr ""
#: c-api/sys.rst:409
msgid "abort()"
msgstr ""
#: c-api/sys.rst:442
msgid "Py_FinalizeEx()"
msgstr ""
#: c-api/sys.rst:428
msgid "exit()"
msgstr ""
#: c-api/sys.rst:442
msgid "cleanup functions"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -82,7 +82,7 @@ msgstr ""
msgid ""
"Return the slice of the tuple pointed to by *p* between *low* and *high*, or "
"``NULL`` on failure. This is the equivalent of the Python expression "
"``p[low:high]``. Indexing from the end of the tuple is not supported."
"``p[low:high]``. Indexing from the end of the list is not supported."
msgstr ""
#: c-api/tuple.rst:77
@ -273,3 +273,11 @@ msgid ""
"Similar to :c:func:`PyStructSequence_SetItem`, but implemented as a static "
"inlined function."
msgstr ""
#: c-api/tuple.rst:8
msgid "object"
msgstr ""
#: c-api/tuple.rst:8
msgid "tuple"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -67,91 +67,42 @@ msgstr ""
#: c-api/type.rst:62
msgid ""
"Register *callback* as a type watcher. Return a non-negative integer ID "
"which must be passed to future calls to :c:func:`PyType_Watch`. In case of "
"error (e.g. no more watcher IDs available), return ``-1`` and set an "
"exception."
msgstr ""
#: c-api/type.rst:72
msgid ""
"Clear watcher identified by *watcher_id* (previously returned from :c:func:"
"`PyType_AddWatcher`). Return ``0`` on success, ``-1`` on error (e.g. if "
"*watcher_id* was never registered.)"
msgstr ""
#: c-api/type.rst:76
msgid ""
"An extension should never call ``PyType_ClearWatcher`` with a *watcher_id* "
"that was not returned to it by a previous call to :c:func:"
"`PyType_AddWatcher`."
msgstr ""
#: c-api/type.rst:85
msgid ""
"Mark *type* as watched. The callback granted *watcher_id* by :c:func:"
"`PyType_AddWatcher` will be called whenever :c:func:`PyType_Modified` "
"reports a change to *type*. (The callback may be called only once for a "
"series of consecutive modifications to *type*, if :c:func:`PyType_Lookup` is "
"not called on *type* between the modifications; this is an implementation "
"detail and subject to change.)"
msgstr ""
#: c-api/type.rst:92
msgid ""
"An extension should never call ``PyType_Watch`` with a *watcher_id* that was "
"not returned to it by a previous call to :c:func:`PyType_AddWatcher`."
msgstr ""
#: c-api/type.rst:100
msgid "Type of a type-watcher callback function."
msgstr ""
#: c-api/type.rst:102
msgid ""
"The callback must not modify *type* or cause :c:func:`PyType_Modified` to be "
"called on *type* or any type in its MRO; violating this rule could cause "
"infinite recursion."
msgstr ""
#: c-api/type.rst:111
msgid ""
"Return non-zero if the type object *o* sets the feature *feature*. Type "
"features are denoted by single bit flags."
msgstr ""
#: c-api/type.rst:117
#: c-api/type.rst:68
msgid ""
"Return true if the type object includes support for the cycle detector; this "
"tests the type flag :const:`Py_TPFLAGS_HAVE_GC`."
"tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`."
msgstr ""
#: c-api/type.rst:123
#: c-api/type.rst:74
msgid "Return true if *a* is a subtype of *b*."
msgstr ""
#: c-api/type.rst:125
#: c-api/type.rst:76
msgid ""
"This function only checks for actual subtypes, which means that :meth:"
"`~class.__subclasscheck__` is not called on *b*. Call :c:func:"
"`PyObject_IsSubclass` to do the same check that :func:`issubclass` would do."
msgstr ""
#: c-api/type.rst:133
#: c-api/type.rst:84
msgid ""
"Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type "
"object. Use Python's default memory allocation mechanism to allocate a new "
"instance and initialize all its contents to ``NULL``."
msgstr ""
#: c-api/type.rst:139
#: c-api/type.rst:90
msgid ""
"Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type "
"object. Create a new instance using the type's :c:member:`~PyTypeObject."
"tp_alloc` slot."
msgstr ""
#: c-api/type.rst:144
#: c-api/type.rst:95
msgid ""
"Finalize a type object. This should be called on all type objects to finish "
"their initialization. This function is responsible for adding inherited "
@ -159,29 +110,30 @@ msgid ""
"and sets an exception on error."
msgstr ""
#: c-api/type.rst:150
#: c-api/type.rst:101
msgid ""
"If some of the base classes implements the GC protocol and the provided type "
"does not include the :const:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC "
"does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC "
"protocol will be automatically implemented from its parents. On the "
"contrary, if the type being created does include :const:`Py_TPFLAGS_HAVE_GC` "
"in its flags then it **must** implement the GC protocol itself by at least "
"implementing the :c:member:`~PyTypeObject.tp_traverse` handle."
"contrary, if the type being created does include :c:macro:"
"`Py_TPFLAGS_HAVE_GC` in its flags then it **must** implement the GC protocol "
"itself by at least implementing the :c:member:`~PyTypeObject.tp_traverse` "
"handle."
msgstr ""
#: c-api/type.rst:160
#: c-api/type.rst:111
msgid ""
"Return the type's name. Equivalent to getting the type's ``__name__`` "
"attribute."
msgstr ""
#: c-api/type.rst:166
#: c-api/type.rst:117
msgid ""
"Return the type's qualified name. Equivalent to getting the type's "
"``__qualname__`` attribute."
msgstr ""
#: c-api/type.rst:173
#: c-api/type.rst:124
msgid ""
"Return the function pointer stored in the given slot. If the result is "
"``NULL``, this indicates that either the slot is ``NULL``, or that the "
@ -189,30 +141,30 @@ msgid ""
"result pointer into the appropriate function type."
msgstr ""
#: c-api/type.rst:179
#: c-api/type.rst:130
msgid ""
"See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument."
msgstr ""
#: c-api/type.rst:183
#: c-api/type.rst:134
msgid ""
":c:func:`PyType_GetSlot` can now accept all types. Previously, it was "
"limited to :ref:`heap types <heap-types>`."
msgstr ""
#: c-api/type.rst:189
#: c-api/type.rst:140
msgid ""
"Return the module object associated with the given type when the type was "
"created using :c:func:`PyType_FromModuleAndSpec`."
msgstr ""
#: c-api/type.rst:212
#: c-api/type.rst:163
msgid ""
"If no module is associated with the given type, sets :py:class:`TypeError` "
"and returns ``NULL``."
msgstr ""
#: c-api/type.rst:195
#: c-api/type.rst:146
msgid ""
"This function is usually used to get the module in which a method is "
"defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may "
@ -223,31 +175,31 @@ msgid ""
"``PyCMethod`` cannot be used."
msgstr ""
#: c-api/type.rst:208
#: c-api/type.rst:159
msgid ""
"Return the state of the module object associated with the given type. This "
"is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:"
"func:`PyType_GetModule`."
msgstr ""
#: c-api/type.rst:215
#: c-api/type.rst:166
msgid ""
"If the *type* has an associated module but its state is ``NULL``, returns "
"``NULL`` without setting an exception."
msgstr ""
#: c-api/type.rst:222
#: c-api/type.rst:173
msgid ""
"Find the first superclass whose module was created from the given :c:type:"
"`PyModuleDef` *def*, and return that module."
msgstr ""
#: c-api/type.rst:225
#: c-api/type.rst:176
msgid ""
"If no module is found, raises a :py:class:`TypeError` and returns ``NULL``."
msgstr ""
#: c-api/type.rst:227
#: c-api/type.rst:178
msgid ""
"This function is intended to be used together with :c:func:"
"`PyModule_GetState()` to get module state from slot methods (such as :c:"
@ -256,41 +208,23 @@ msgid ""
"type:`PyCMethod` calling convention."
msgstr ""
#: c-api/type.rst:237
msgid "Attempt to assign a version tag to the given type."
msgstr ""
#: c-api/type.rst:239
msgid ""
"Returns 1 if the type already had a valid version tag or a new one was "
"assigned, or 0 if a new tag could not be assigned."
msgstr ""
#: c-api/type.rst:246
#: c-api/type.rst:188
msgid "Creating Heap-Allocated Types"
msgstr ""
#: c-api/type.rst:248
#: c-api/type.rst:190
msgid ""
"The following functions and structs are used to create :ref:`heap types "
"<heap-types>`."
msgstr ""
#: c-api/type.rst:253
#: c-api/type.rst:195
msgid ""
"Create and return a :ref:`heap type <heap-types>` from the *spec* (see :"
"const:`Py_TPFLAGS_HEAPTYPE`)."
"Creates and returns a :ref:`heap type <heap-types>` from the *spec* (:c:"
"macro:`Py_TPFLAGS_HEAPTYPE`)."
msgstr ""
#: c-api/type.rst:256
msgid ""
"The metaclass *metaclass* is used to construct the resulting type object. "
"When *metaclass* is ``NULL``, the metaclass is derived from *bases* (or "
"*Py_tp_base[s]* slots if *bases* is ``NULL``, see below). Note that "
"metaclasses that override :c:member:`~PyTypeObject.tp_new` are not supported."
msgstr ""
#: c-api/type.rst:262
#: c-api/type.rst:198
msgid ""
"The *bases* argument can be used to specify base classes; it can either be "
"only one class or a tuple of classes. If *bases* is ``NULL``, the "
@ -299,7 +233,7 @@ msgid ""
"derives from :class:`object`."
msgstr ""
#: c-api/type.rst:268
#: c-api/type.rst:204
msgid ""
"The *module* argument can be used to record the module in which the new "
"class is defined. It must be a module object or ``NULL``. If not ``NULL``, "
@ -308,113 +242,65 @@ msgid ""
"subclasses; it must be specified for each class individually."
msgstr ""
#: c-api/type.rst:275
#: c-api/type.rst:211
msgid "This function calls :c:func:`PyType_Ready` on the new type."
msgstr ""
#: c-api/type.rst:277
msgid ""
"Note that this function does *not* fully match the behavior of calling :py:"
"class:`type() <type>` or using the :keyword:`class` statement. With user-"
"provided base types or metaclasses, prefer :ref:`calling <capi-call>` :py:"
"class:`type` (or the metaclass) over ``PyType_From*`` functions. "
"Specifically:"
msgstr ""
#: c-api/type.rst:284
msgid ""
":py:meth:`~object.__new__` is not called on the new class (and it must be "
"set to ``type.__new__``)."
msgstr ""
#: c-api/type.rst:286
msgid ":py:meth:`~object.__init__` is not called on the new class."
msgstr ""
#: c-api/type.rst:287
msgid ":py:meth:`~object.__init_subclass__` is not called on any bases."
msgstr ""
#: c-api/type.rst:288
msgid ":py:meth:`~object.__set_name__` is not called on new descriptors."
msgstr ""
#: c-api/type.rst:294
msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``."
msgstr ""
#: c-api/type.rst:300
#: c-api/type.rst:217
msgid ""
"The function now accepts a single class as the *bases* argument and ``NULL`` "
"as the ``tp_doc`` slot."
msgstr ""
#: c-api/type.rst:317
msgid ""
"The function now finds and uses a metaclass corresponding to the provided "
"base classes. Previously, only :class:`type` instances were returned."
#: c-api/type.rst:222
msgid "Equivalent to ``PyType_FromModuleAndSpec(NULL, spec, bases)``."
msgstr ""
#: c-api/type.rst:311
msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``."
#: c-api/type.rst:228
msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``."
msgstr ""
#: c-api/type.rst:322
msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``."
msgstr ""
#: c-api/type.rst:326
msgid ""
"The function now finds and uses a metaclass corresponding to the base "
"classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` "
"instances were returned."
msgstr ""
#: c-api/type.rst:332
#: c-api/type.rst:232
msgid "Structure defining a type's behavior."
msgstr ""
#: c-api/type.rst:336
#: c-api/type.rst:236
msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`."
msgstr ""
#: c-api/type.rst:341
#: c-api/type.rst:241
msgid ""
"Size of the instance in bytes, used to set :c:member:`PyTypeObject."
"tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`."
msgstr ""
#: c-api/type.rst:347
#: c-api/type.rst:247
msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`."
msgstr ""
#: c-api/type.rst:349
#: c-api/type.rst:249
msgid ""
"If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:"
"`PyType_FromSpecWithBases` sets it automatically."
msgstr ""
#: c-api/type.rst:354
#: c-api/type.rst:254
msgid ""
"Array of :c:type:`PyType_Slot` structures. Terminated by the special slot "
"value ``{0, NULL}``."
msgstr ""
#: c-api/type.rst:357
msgid "Each slot ID should be specified at most once."
msgstr ""
#: c-api/type.rst:361
#: c-api/type.rst:259
msgid ""
"Structure defining optional functionality of a type, containing a slot ID "
"and a value pointer."
msgstr ""
#: c-api/type.rst:366
#: c-api/type.rst:264
msgid "A slot ID."
msgstr ""
#: c-api/type.rst:368
#: c-api/type.rst:266
msgid ""
"Slot IDs are named like the field names of the structures :c:type:"
"`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:"
@ -422,89 +308,97 @@ msgid ""
"prefix. For example, use:"
msgstr ""
#: c-api/type.rst:374
#: c-api/type.rst:272
msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`"
msgstr ""
#: c-api/type.rst:375
#: c-api/type.rst:273
msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`"
msgstr ""
#: c-api/type.rst:376
#: c-api/type.rst:274
msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`"
msgstr ""
#: c-api/type.rst:378
#: c-api/type.rst:276
msgid ""
"The following fields cannot be set at all using :c:type:`PyType_Spec` and :c:"
"type:`PyType_Slot`:"
msgstr ""
#: c-api/type.rst:381
#: c-api/type.rst:279
msgid ":c:member:`~PyTypeObject.tp_dict`"
msgstr ""
#: c-api/type.rst:382
#: c-api/type.rst:280
msgid ":c:member:`~PyTypeObject.tp_mro`"
msgstr ""
#: c-api/type.rst:383
#: c-api/type.rst:281
msgid ":c:member:`~PyTypeObject.tp_cache`"
msgstr ""
#: c-api/type.rst:384
#: c-api/type.rst:282
msgid ":c:member:`~PyTypeObject.tp_subclasses`"
msgstr ""
#: c-api/type.rst:385
#: c-api/type.rst:283
msgid ":c:member:`~PyTypeObject.tp_weaklist`"
msgstr ""
#: c-api/type.rst:386
#: c-api/type.rst:284
msgid ":c:member:`~PyTypeObject.tp_vectorcall`"
msgstr ""
#: c-api/type.rst:387
#: c-api/type.rst:285
msgid ""
":c:member:`~PyTypeObject.tp_weaklistoffset` (use :const:"
"`Py_TPFLAGS_MANAGED_WEAKREF` instead)"
":c:member:`~PyTypeObject.tp_weaklistoffset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:389
#: c-api/type.rst:287
msgid ""
":c:member:`~PyTypeObject.tp_dictoffset` (use :const:"
"`Py_TPFLAGS_MANAGED_DICT` instead)"
":c:member:`~PyTypeObject.tp_dictoffset` (see :ref:`PyMemberDef <pymemberdef-"
"offsets>`)"
msgstr ""
#: c-api/type.rst:391
#: c-api/type.rst:289
msgid ""
":c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef "
"<pymemberdef-offsets>`)"
msgstr ""
#: c-api/type.rst:394
#: c-api/type.rst:292
msgid ""
"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on "
"some platforms. To avoid issues, use the *bases* argument of :py:func:"
"`PyType_FromSpecWithBases` instead."
msgstr ""
#: c-api/type.rst:401
#: c-api/type.rst:299
msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API."
msgstr ""
#: c-api/type.rst:403
#: c-api/type.rst:301
msgid ""
":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs."
"bf_releasebuffer` are now available under the limited API."
msgstr ""
#: c-api/type.rst:410
#: c-api/type.rst:308
msgid ""
"The desired value of the slot. In most cases, this is a pointer to a "
"function."
msgstr ""
#: c-api/type.rst:413
#: c-api/type.rst:311
msgid "Slots other than ``Py_tp_doc`` may not be ``NULL``."
msgstr ""
#: c-api/type.rst:8
msgid "object"
msgstr ""
#: c-api/type.rst:8
msgid "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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -28,8 +28,8 @@ msgstr ""
#: c-api/veryhigh.rst:14
msgid ""
"Several of these functions accept a start symbol from the grammar as a "
"parameter. The available start symbols are :const:`Py_eval_input`, :const:"
"`Py_file_input`, and :const:`Py_single_input`. These are described "
"parameter. The available start symbols are :c:data:`Py_eval_input`, :c:data:"
"`Py_file_input`, and :c:data:`Py_single_input`. These are described "
"following the functions which accept them as parameters."
msgstr ""
@ -61,8 +61,8 @@ msgstr ""
#: c-api/veryhigh.rst:40
msgid ""
"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this "
"function will not return ``1``, but exit the process, as long as :c:member:"
"`PyConfig.inspect` is zero."
"function will not return ``1``, but exit the process, as long as "
"``Py_InspectFlag`` is not set."
msgstr ""
#: c-api/veryhigh.rst:47
@ -116,8 +116,8 @@ msgstr ""
#: c-api/veryhigh.rst:96
msgid ""
"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this "
"function will not return ``-1``, but exit the process, as long as :c:member:"
"`PyConfig.inspect` is zero."
"function will not return ``-1``, but exit the process, as long as "
"``Py_InspectFlag`` is not set."
msgstr ""
#: c-api/veryhigh.rst:103
@ -283,8 +283,8 @@ msgstr ""
msgid ""
"Parse and compile the Python source code in *str*, returning the resulting "
"code object. The start token is given by *start*; this can be used to "
"constrain the code which can be compiled and should be :const:"
"`Py_eval_input`, :const:`Py_file_input`, or :const:`Py_single_input`. The "
"constrain the code which can be compiled and should be :c:data:"
"`Py_eval_input`, :c:data:`Py_file_input`, or :c:data:`Py_single_input`. The "
"filename specified by *filename* is used to construct the code object and "
"may appear in tracebacks or :exc:`SyntaxError` exception messages. This "
"returns ``NULL`` if the code cannot be parsed or compiled."
@ -412,6 +412,10 @@ msgid ""
"interpreted as \"true division\" according to :pep:`238`."
msgstr ""
#: c-api/veryhigh.rst:325 c-api/veryhigh.rst:334
msgid "Py_CompileString()"
msgstr ""
#, fuzzy
#~ msgid ""
#~ "The C structure of the objects used to describe frame objects. The fields "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-12-16 02:36+0100\n"
"Last-Translator: Fipaddict <fipaddict@protonmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -92,7 +92,8 @@ msgid ""
"developers and documentation authors responsible for the maintenance and "
"evolution of the standard packaging tools and the associated metadata and "
"file format standards. They maintain a variety of tools, documentation and "
"issue trackers on `GitHub <https://github.com/pypa>`__."
"issue trackers on both `GitHub <https://github.com/pypa>`__ and `Bitbucket "
"<https://bitbucket.org/pypa/>`__."
msgstr ""
"Le `Python Packaging Authority <https://www.pypa.io>`__ est le groupe de "
"développeurs et d'auteurs de documentation responsables de la maintenance et "
@ -101,15 +102,15 @@ msgstr ""
"documentation, et gestionnaires de ticket, aussi bien sur `GitHub <https://"
"github.com/pypa>`__ que sur `Bitbucket <https://bitbucket.org/pypa/>`__."
#: distributing/index.rst:43
#: distributing/index.rst:44
#, fuzzy
msgid ""
"``distutils`` is the original build and distribution system first added to "
"the Python standard library in 1998. While direct use of ``distutils`` is "
"being phased out, it still laid the foundation for the current packaging and "
"distribution infrastructure, and it not only remains part of the standard "
"library, but its name lives on in other ways (such as the name of the "
"mailing list used to coordinate Python packaging standards development)."
":mod:`distutils` is the original build and distribution system first added "
"to the Python standard library in 1998. While direct use of :mod:`distutils` "
"is being phased out, it still laid the foundation for the current packaging "
"and distribution infrastructure, and it not only remains part of the "
"standard library, but its name lives on in other ways (such as the name of "
"the mailing list used to coordinate Python packaging standards development)."
msgstr ""
":mod:`distutils` est le premier système de construction et de distribution "
"ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe "
@ -119,15 +120,15 @@ msgstr ""
"d'autres formes, tel que la liste de diffusion utilisée pour coordonner le "
"développement et les standards de la création de paquet."
#: distributing/index.rst:50
#: distributing/index.rst:51
#, fuzzy
msgid ""
"`setuptools`_ is a (largely) drop-in replacement for ``distutils`` first "
"published in 2004. Its most notable addition over the unmodified "
"``distutils`` tools was the ability to declare dependencies on other "
"packages. It is currently recommended as a more regularly updated "
"alternative to ``distutils`` that offers consistent support for more recent "
"packaging standards across a wide range of Python versions."
"`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first "
"published in 2004. Its most notable addition over the unmodified :mod:"
"`distutils` tools was the ability to declare dependencies on other packages. "
"It is currently recommended as a more regularly updated alternative to :mod:"
"`distutils` that offers consistent support for more recent packaging "
"standards across a wide range of Python versions."
msgstr ""
"`setuptools`_, d'abord publié en 2004, est (en grande partie) le remplaçant "
"de :mod:`distutils`. La nouveauté la plus notable, au-delà des outils non "
@ -136,11 +137,11 @@ msgstr ""
"régulièrement mise à jour que :mod:`distutils` et gère mieux les standards "
"de création de paquets actuels, pour un large choix de version de Python."
#: distributing/index.rst:56
#: distributing/index.rst:57
#, fuzzy
msgid ""
"`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` "
"command to ``distutils``/`setuptools`_. This produces a cross platform "
"command to :mod:`distutils`/`setuptools`_. This produces a cross platform "
"binary packaging format (called \"wheels\" or \"wheel files\" and defined "
"in :pep:`427`) that allows Python libraries, even those including binary "
"extensions, to be installed on a system without needing to be built locally."
@ -152,11 +153,11 @@ msgstr ""
"incluant des extensions binaires, d'être installées sur un système sans "
"avoir à les compiler localement."
#: distributing/index.rst:67
#: distributing/index.rst:68
msgid "Open source licensing and collaboration"
msgstr "Licence libre et collaboration"
#: distributing/index.rst:69
#: distributing/index.rst:70
msgid ""
"In most parts of the world, software is automatically covered by copyright. "
"This means that other developers require explicit permission to copy, use, "
@ -167,7 +168,7 @@ msgstr ""
"besoin d'une autorisation explicite pour copier, utiliser, modifier, et "
"redistribuer le logiciel."
#: distributing/index.rst:73
#: distributing/index.rst:74
msgid ""
"Open source licensing is a way of explicitly granting such permission in a "
"relatively consistent way, allowing developers to share and collaborate "
@ -182,7 +183,7 @@ msgstr ""
"de dépenser plus de temps concentrés sur des problèmes relativement uniques "
"à leur cas spécifique."
#: distributing/index.rst:79
#: distributing/index.rst:80
msgid ""
"The distribution tools provided with Python are designed to make it "
"reasonably straightforward for developers to make their own contributions "
@ -192,7 +193,7 @@ msgstr ""
"vie des développeurs relativement simple lorsqu'ils souhaitent contribuer, "
"s'ils le désirent, à ces ressources communes."
#: distributing/index.rst:83
#: distributing/index.rst:84
msgid ""
"The same distribution tools can also be used to distribute software within "
"an organisation, regardless of whether that software is published as open "
@ -202,11 +203,11 @@ msgstr ""
"du logiciel à l'intérieur d'une organisation, que ce soit du logiciel libre "
"ou non."
#: distributing/index.rst:89
#: distributing/index.rst:90
msgid "Installing the tools"
msgstr "Installer les outils"
#: distributing/index.rst:91
#: distributing/index.rst:92
msgid ""
"The standard library does not include build tools that support modern Python "
"packaging standards, as the core development team has found that it is "
@ -219,7 +220,7 @@ msgstr ""
"fonctionnent de manière cohérente, même avec de plus vieilles versions de "
"Python."
#: distributing/index.rst:96
#: distributing/index.rst:97
msgid ""
"The currently recommended build and distribution tools can be installed by "
"invoking the ``pip`` module at the command line::"
@ -228,7 +229,7 @@ msgstr ""
"recommandées peuvent être installées en invoquant le module ``pip`` dans une "
"invite de commande ::"
#: distributing/index.rst:103
#: distributing/index.rst:104
msgid ""
"For POSIX users (including macOS and Linux users), these instructions assume "
"the use of a :term:`virtual environment`."
@ -237,7 +238,7 @@ msgstr ""
"instructions supposent l'utilisation d'un :term:`environnement virtuel "
"<virtual environment>`."
#: distributing/index.rst:106
#: distributing/index.rst:107
msgid ""
"For Windows users, these instructions assume that the option to adjust the "
"system PATH environment variable was selected when installing Python."
@ -246,7 +247,7 @@ msgstr ""
"proposant de modifier la variable d'environnement PATH a été cochée lors de "
"l'installation de Python."
#: distributing/index.rst:110
#: distributing/index.rst:111
msgid ""
"The Python Packaging User Guide includes more details on the `currently "
"recommended tools`_."
@ -254,11 +255,11 @@ msgstr ""
"Le *Python Packaging User Guide* contient plus de détails sur les `(en) "
"outils actuellement recommandés <currently recommended tools_>`_."
#: distributing/index.rst:122
#: distributing/index.rst:123
msgid "Reading the Python Packaging User Guide"
msgstr "Consultez le *Python Packaging User Guide*"
#: distributing/index.rst:124
#: distributing/index.rst:125
msgid ""
"The Python Packaging User Guide covers the various key steps and elements "
"involved in creating and publishing a project:"
@ -266,48 +267,48 @@ msgstr ""
"Le *Python Packaging User Guide* couvre les différentes étapes et les "
"éléments clés de la création et publication d'un projet :"
#: distributing/index.rst:127
#: distributing/index.rst:128
msgid "`Project structure`_"
msgstr "`(en) Structure d'un projet <Project structure_>`_ ;"
#: distributing/index.rst:128
#: distributing/index.rst:129
msgid "`Building and packaging the project`_"
msgstr ""
"`(en) Construire et empaqueter le projet <Building and packaging the "
"project_>`_ ;"
#: distributing/index.rst:129
#: distributing/index.rst:130
msgid "`Uploading the project to the Python Package Index`_"
msgstr ""
"`(en) Téléverser le projet sur le Python Packaging Index <Uploading the "
"project to the Python Packaging Index_>`_ ;"
#: distributing/index.rst:130
#: distributing/index.rst:131
msgid "`The .pypirc file`_"
msgstr "`(en) Le fichier .pypirc <The .pypirc file_>`_."
#: distributing/index.rst:139
#: distributing/index.rst:140
msgid "How do I...?"
msgstr "Comment puis-je… ?"
#: distributing/index.rst:141
#: distributing/index.rst:142
msgid "These are quick answers or links for some common tasks."
msgstr ""
"Ce sont des réponses rapides ou des liens pour certaines tâches courantes."
#: distributing/index.rst:144
#: distributing/index.rst:145
msgid "... choose a name for my project?"
msgstr "… choisir un nom pour mon projet ?"
#: distributing/index.rst:146
#: distributing/index.rst:147
msgid "This isn't an easy topic, but here are a few tips:"
msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :"
#: distributing/index.rst:148
#: distributing/index.rst:149
msgid "check the Python Package Index to see if the name is already in use"
msgstr "vérifiez dans le *Python Package Index* si le nom est déjà utilisé ;"
#: distributing/index.rst:149
#: distributing/index.rst:150
msgid ""
"check popular hosting sites like GitHub, Bitbucket, etc to see if there is "
"already a project with that name"
@ -315,12 +316,12 @@ msgstr ""
"vérifiez sur quelques sites d'hébergement populaires tels que GitHub, "
"Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom ;"
#: distributing/index.rst:151
#: distributing/index.rst:152
msgid "check what comes up in a web search for the name you're considering"
msgstr ""
"vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez ;"
#: distributing/index.rst:152
#: distributing/index.rst:153
msgid ""
"avoid particularly common words, especially ones with multiple meanings, as "
"they can make it difficult for users to find your software when searching "
@ -330,11 +331,11 @@ msgstr ""
"significations, car pour vos utilisateurs, cela complique la recherche de "
"votre logiciel."
#: distributing/index.rst:158
#: distributing/index.rst:159
msgid "... create and distribute binary extensions?"
msgstr "… créer et distribuer des extensions binaires ?"
#: distributing/index.rst:160
#: distributing/index.rst:161
msgid ""
"This is actually quite a complex topic, with a variety of alternatives "
"available depending on exactly what you're aiming to achieve. See the Python "
@ -344,10 +345,22 @@ msgstr ""
"disponibles dont le choix dépend de votre objectif exact. Voir le *Python "
"Packaging User Guide* pour plus d'informations et de recommandations."
#: distributing/index.rst:166
#: distributing/index.rst:167
msgid ""
"`Python Packaging User Guide: Binary Extensions <https://packaging.python."
"org/guides/packaging-binary-extensions/>`__"
msgstr ""
"`Python Packaging User Guide: Binary Extensions <https://packaging.python."
"org/guides/packaging-binary-extensions/>`__"
#: distributing/index.rst:116
msgid "Python Package Index (PyPI)"
msgstr ""
#: distributing/index.rst:116
msgid "PyPI"
msgstr ""
#: distributing/index.rst:116
msgid "(see Python Package Index (PyPI))"
msgstr ""

View File

@ -0,0 +1,24 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""

2496
distutils/apiref.po Normal file

File diff suppressed because it is too large Load Diff

701
distutils/builtdist.po Normal file
View File

@ -0,0 +1,701 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/builtdist.rst:5
msgid "Creating Built Distributions"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/builtdist.rst:9
msgid ""
"A \"built distribution\" is what you're probably used to thinking of either "
"as a \"binary package\" or an \"installer\" (depending on your background). "
"It's not necessarily binary, though, because it might contain only Python "
"source code and/or byte-code; and we don't call it a package, because that "
"word is already spoken for in Python. (And \"installer\" is a term specific "
"to the world of mainstream desktop systems.)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:16
msgid ""
"A built distribution is how you make life as easy as possible for installers "
"of your module distribution: for users of RPM-based Linux systems, it's a "
"binary RPM; for Windows users, it's an executable installer; for Debian-"
"based Linux users, it's a Debian package; and so forth. Obviously, no one "
"person will be able to create built distributions for every platform under "
"the sun, so the Distutils are designed to enable module developers to "
"concentrate on their specialty---writing code and creating source "
"distributions---while an intermediary species called *packagers* springs up "
"to turn source distributions into built distributions for as many platforms "
"as there are packagers."
msgstr ""
#: ../Doc/distutils/builtdist.rst:26
msgid ""
"Of course, the module developer could be their own packager; or the packager "
"could be a volunteer \"out there\" somewhere who has access to a platform "
"which the original developer does not; or it could be software periodically "
"grabbing new source distributions and turning them into built distributions "
"for as many platforms as the software has access to. Regardless of who they "
"are, a packager uses the setup script and the :command:`bdist` command "
"family to generate built distributions."
msgstr ""
#: ../Doc/distutils/builtdist.rst:34
msgid ""
"As a simple example, if I run the following command in the Distutils source "
"tree::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:39
msgid ""
"then the Distutils builds my module distribution (the Distutils itself in "
"this case), does a \"fake\" installation (also in the :file:`build` "
"directory), and creates the default type of built distribution for my "
"platform. The default format for built distributions is a \"dumb\" tar file "
"on Unix, and a simple executable installer on Windows. (That tar file is "
"considered \"dumb\" because it has to be unpacked in a specific location to "
"work.)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:46
msgid ""
"Thus, the above command on a Unix system creates :file:`Distutils-1.0.{plat}."
"tar.gz`; unpacking this tarball from the right place installs the Distutils "
"just as though you had downloaded the source distribution and run ``python "
"setup.py install``. (The \"right place\" is either the root of the "
"filesystem or Python's :file:`{prefix}` directory, depending on the options "
"given to the :command:`bdist_dumb` command; the default is to make dumb "
"distributions relative to :file:`{prefix}`.)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:54
msgid ""
"Obviously, for pure Python distributions, this isn't any simpler than just "
"running ``python setup.py install``\\ ---but for non-pure distributions, "
"which include extensions that would need to be compiled, it can mean the "
"difference between someone being able to use your extensions or not. And "
"creating \"smart\" built distributions, such as an RPM package or an "
"executable installer for Windows, is far more convenient for users even if "
"your distribution doesn't include any extensions."
msgstr ""
#: ../Doc/distutils/builtdist.rst:62
msgid ""
"The :command:`bdist` command has a :option:`!--formats` option, similar to "
"the :command:`sdist` command, which you can use to select the types of built "
"distribution to generate: for example, ::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:68
msgid ""
"would, when run on a Unix system, create :file:`Distutils-1.0.{plat}.zip`\\ "
"---again, this archive would be unpacked from the root directory to install "
"the Distutils."
msgstr ""
#: ../Doc/distutils/builtdist.rst:72
msgid "The available formats for built distributions are:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:75
msgid "Format"
msgstr ""
#: ../Doc/distutils/builtdist.rst:75
msgid "Description"
msgstr ""
#: ../Doc/distutils/builtdist.rst:75
msgid "Notes"
msgstr ""
#: ../Doc/distutils/builtdist.rst:77
msgid "``gztar``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:77
msgid "gzipped tar file (:file:`.tar.gz`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:77
msgid "\\(1)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:80
msgid "``bztar``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:80
msgid "bzipped tar file (:file:`.tar.bz2`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:83
msgid "``xztar``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:83
msgid "xzipped tar file (:file:`.tar.xz`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:86
msgid "``ztar``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:86
msgid "compressed tar file (:file:`.tar.Z`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:86
msgid "\\(3)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:89
msgid "``tar``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:89
msgid "tar file (:file:`.tar`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:91
msgid "``zip``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:91
msgid "zip file (:file:`.zip`)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:91
msgid "(2),(4)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:93
msgid "``rpm``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:93
msgid "RPM"
msgstr ""
#: ../Doc/distutils/builtdist.rst:93
msgid "\\(5)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:95
msgid "``pkgtool``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:95
msgid "Solaris :program:`pkgtool`"
msgstr ""
#: ../Doc/distutils/builtdist.rst:97
msgid "``sdux``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:97
msgid "HP-UX :program:`swinstall`"
msgstr ""
#: ../Doc/distutils/builtdist.rst:99
msgid "``msi``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:99
msgid "Microsoft Installer."
msgstr ""
#: ../Doc/distutils/builtdist.rst:102
msgid "Added support for the ``xztar`` format."
msgstr ""
#: ../Doc/distutils/builtdist.rst:106
msgid "Notes:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:109
msgid "default on Unix"
msgstr ""
#: ../Doc/distutils/builtdist.rst:112
msgid "default on Windows"
msgstr ""
#: ../Doc/distutils/builtdist.rst:115
msgid "requires external :program:`compress` utility."
msgstr ""
#: ../Doc/distutils/builtdist.rst:118
msgid ""
"requires either external :program:`zip` utility or :mod:`zipfile` module "
"(part of the standard Python library since Python 1.6)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:122
msgid ""
"requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm "
"--version`` to find out which version you have)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:125
msgid ""
"You don't have to use the :command:`bdist` command with the :option:`!--"
"formats` option; you can also use the command that directly implements the "
"format you're interested in. Some of these :command:`bdist` \"sub-"
"commands\" actually generate several similar formats; for instance, the :"
"command:`bdist_dumb` command generates all the \"dumb\" archive formats "
"(``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :"
"command:`bdist_rpm` generates both binary and source RPMs. The :command:"
"`bdist` sub-commands, and the formats generated by each, are:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:135
msgid "Command"
msgstr ""
#: ../Doc/distutils/builtdist.rst:135
msgid "Formats"
msgstr ""
#: ../Doc/distutils/builtdist.rst:137
msgid ":command:`bdist_dumb`"
msgstr ""
#: ../Doc/distutils/builtdist.rst:137
msgid "tar, gztar, bztar, xztar, ztar, zip"
msgstr ""
#: ../Doc/distutils/builtdist.rst:139
msgid ":command:`bdist_rpm`"
msgstr ""
#: ../Doc/distutils/builtdist.rst:139
msgid "rpm, srpm"
msgstr ""
#: ../Doc/distutils/builtdist.rst:142
msgid ""
"The following sections give details on the individual :command:`bdist_\\*` "
"commands."
msgstr ""
#: ../Doc/distutils/builtdist.rst:158
msgid "Creating RPM packages"
msgstr ""
#: ../Doc/distutils/builtdist.rst:160
msgid ""
"The RPM format is used by many popular Linux distributions, including Red "
"Hat, SuSE, and Mandrake. If one of these (or any of the other RPM-based "
"Linux distributions) is your usual environment, creating RPM packages for "
"other users of that same distribution is trivial. Depending on the "
"complexity of your module distribution and differences between Linux "
"distributions, you may also be able to create RPMs that work on different "
"RPM-based distributions."
msgstr ""
#: ../Doc/distutils/builtdist.rst:167
msgid ""
"The usual way to create an RPM of your module distribution is to run the :"
"command:`bdist_rpm` command::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:172
msgid "or the :command:`bdist` command with the :option:`!--format` option::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:176
msgid ""
"The former allows you to specify RPM-specific options; the latter allows "
"you to easily specify multiple formats in one run. If you need to do both, "
"you can explicitly specify multiple :command:`bdist_\\*` commands and their "
"options::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:182
msgid ""
"Creating RPM packages is driven by a :file:`.spec` file, much as using the "
"Distutils is driven by the setup script. To make your life easier, the :"
"command:`bdist_rpm` command normally creates a :file:`.spec` file based on "
"the information you supply in the setup script, on the command line, and in "
"any Distutils configuration files. Various options and sections in the :"
"file:`.spec` file are derived from options in the setup script as follows:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:190 ../Doc/distutils/builtdist.rst:214
msgid "RPM :file:`.spec` file option or section"
msgstr ""
#: ../Doc/distutils/builtdist.rst:190
msgid "Distutils setup script option"
msgstr ""
#: ../Doc/distutils/builtdist.rst:192
msgid "Name"
msgstr ""
#: ../Doc/distutils/builtdist.rst:192
msgid "``name``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:194
msgid "Summary (in preamble)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:194
msgid "``description``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:196
msgid "Version"
msgstr ""
#: ../Doc/distutils/builtdist.rst:196
msgid "``version``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:198 ../Doc/distutils/builtdist.rst:221
msgid "Vendor"
msgstr ""
#: ../Doc/distutils/builtdist.rst:198
msgid ""
"``author`` and ``author_email``, or --- & ``maintainer`` and "
"``maintainer_email``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:202
msgid "Copyright"
msgstr ""
#: ../Doc/distutils/builtdist.rst:202
msgid "``license``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:204
msgid "Url"
msgstr ""
#: ../Doc/distutils/builtdist.rst:204
msgid "``url``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:206
msgid "%description (section)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:206
msgid "``long_description``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:209
msgid ""
"Additionally, there are many options in :file:`.spec` files that don't have "
"corresponding options in the setup script. Most of these are handled "
"through options to the :command:`bdist_rpm` command as follows:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:214
msgid ":command:`bdist_rpm` option"
msgstr ""
#: ../Doc/distutils/builtdist.rst:214
msgid "default value"
msgstr ""
#: ../Doc/distutils/builtdist.rst:217
msgid "Release"
msgstr ""
#: ../Doc/distutils/builtdist.rst:217
msgid "``release``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:217
msgid "\"1\""
msgstr ""
#: ../Doc/distutils/builtdist.rst:219
msgid "Group"
msgstr ""
#: ../Doc/distutils/builtdist.rst:219
msgid "``group``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:219
msgid "\"Development/Libraries\""
msgstr ""
#: ../Doc/distutils/builtdist.rst:221
msgid "``vendor``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:221
msgid "(see above)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:223
msgid "Packager"
msgstr ""
#: ../Doc/distutils/builtdist.rst:223
msgid "``packager``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:223 ../Doc/distutils/builtdist.rst:225
#: ../Doc/distutils/builtdist.rst:227 ../Doc/distutils/builtdist.rst:229
#: ../Doc/distutils/builtdist.rst:231 ../Doc/distutils/builtdist.rst:233
#: ../Doc/distutils/builtdist.rst:235 ../Doc/distutils/builtdist.rst:237
msgid "(none)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:225
msgid "Provides"
msgstr ""
#: ../Doc/distutils/builtdist.rst:225
msgid "``provides``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:227
msgid "Requires"
msgstr ""
#: ../Doc/distutils/builtdist.rst:227
msgid "``requires``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:229
msgid "Conflicts"
msgstr ""
#: ../Doc/distutils/builtdist.rst:229
msgid "``conflicts``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:231
msgid "Obsoletes"
msgstr ""
#: ../Doc/distutils/builtdist.rst:231
msgid "``obsoletes``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:233
msgid "Distribution"
msgstr ""
#: ../Doc/distutils/builtdist.rst:233
msgid "``distribution_name``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:235
msgid "BuildRequires"
msgstr ""
#: ../Doc/distutils/builtdist.rst:235
msgid "``build_requires``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:237
msgid "Icon"
msgstr ""
#: ../Doc/distutils/builtdist.rst:237
msgid "``icon``"
msgstr ""
#: ../Doc/distutils/builtdist.rst:240
msgid ""
"Obviously, supplying even a few of these options on the command-line would "
"be tedious and error-prone, so it's usually best to put them in the setup "
"configuration file, :file:`setup.cfg`\\ ---see section :ref:`setup-config`. "
"If you distribute or package many Python module distributions, you might "
"want to put options that apply to all of them in your personal Distutils "
"configuration file (:file:`~/.pydistutils.cfg`). If you want to temporarily "
"disable this file, you can pass the :option:`!--no-user-cfg` option to :file:"
"`setup.py`."
msgstr ""
#: ../Doc/distutils/builtdist.rst:248
msgid ""
"There are three steps to building a binary RPM package, all of which are "
"handled automatically by the Distutils:"
msgstr ""
#: ../Doc/distutils/builtdist.rst:251
msgid ""
"create a :file:`.spec` file, which describes the package (analogous to the "
"Distutils setup script; in fact, much of the information in the setup "
"script winds up in the :file:`.spec` file)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:255
msgid "create the source RPM"
msgstr ""
#: ../Doc/distutils/builtdist.rst:257
msgid ""
"create the \"binary\" RPM (which may or may not contain binary code, "
"depending on whether your module distribution contains Python extensions)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:260
msgid ""
"Normally, RPM bundles the last two steps together; when you use the "
"Distutils, all three steps are typically bundled together."
msgstr ""
#: ../Doc/distutils/builtdist.rst:263
msgid ""
"If you wish, you can separate these three steps. You can use the :option:"
"`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`."
"spec` file and exit; in this case, the :file:`.spec` file will be written to "
"the \"distribution directory\"---normally :file:`dist/`, but customizable "
"with the :option:`!--dist-dir` option. (Normally, the :file:`.spec` file "
"winds up deep in the \"build tree,\" in a temporary directory created by :"
"command:`bdist_rpm`.)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:291
msgid "Cross-compiling on Windows"
msgstr ""
#: ../Doc/distutils/builtdist.rst:293
msgid ""
"Starting with Python 2.6, distutils is capable of cross-compiling between "
"Windows platforms. In practice, this means that with the correct tools "
"installed, you can use a 32bit version of Windows to create 64bit extensions "
"and vice-versa."
msgstr ""
#: ../Doc/distutils/builtdist.rst:298
msgid ""
"To build for an alternate platform, specify the :option:`!--plat-name` "
"option to the build command. Valid values are currently 'win32', and 'win-"
"amd64'. For example, on a 32bit version of Windows, you could execute::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:304
msgid "to build a 64bit version of your extension."
msgstr ""
#: ../Doc/distutils/builtdist.rst:306
msgid ""
"would create a 64bit installation executable on your 32bit version of "
"Windows."
msgstr ""
#: ../Doc/distutils/builtdist.rst:308
msgid ""
"To cross-compile, you must download the Python source code and cross-compile "
"Python itself for the platform you are targeting - it is not possible from a "
"binary installation of Python (as the .lib etc file for other platforms are "
"not included.) In practice, this means the user of a 32 bit operating "
"system will need to use Visual Studio 2008 to open the :file:`PCbuild/"
"PCbuild.sln` solution in the Python source tree and build the \"x64\" "
"configuration of the 'pythoncore' project before cross-compiling extensions "
"is possible."
msgstr ""
#: ../Doc/distutils/builtdist.rst:317
msgid ""
"Note that by default, Visual Studio 2008 does not install 64bit compilers or "
"tools. You may need to reexecute the Visual Studio setup process and select "
"these tools (using Control Panel->[Add/Remove] Programs is a convenient way "
"to check or modify your existing install.)"
msgstr ""
#: ../Doc/distutils/builtdist.rst:325
msgid "The Postinstallation script"
msgstr ""
#: ../Doc/distutils/builtdist.rst:327
msgid ""
"Starting with Python 2.3, a postinstallation script can be specified with "
"the :option:`!--install-script` option. The basename of the script must be "
"specified, and the script filename must also be listed in the scripts "
"argument to the setup function."
msgstr ""
#: ../Doc/distutils/builtdist.rst:332
msgid ""
"This script will be run at installation time on the target system after all "
"the files have been copied, with ``argv[1]`` set to :option:`!-install`, and "
"again at uninstallation time before the files are removed with ``argv[1]`` "
"set to :option:`!-remove`."
msgstr ""
#: ../Doc/distutils/builtdist.rst:337
msgid ""
"The installation script runs embedded in the windows installer, every output "
"(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be "
"displayed in the GUI after the script has finished."
msgstr ""
#: ../Doc/distutils/builtdist.rst:341
msgid ""
"Some functions especially useful in this context are available as additional "
"built-in functions in the installation script."
msgstr ""
#: ../Doc/distutils/builtdist.rst:348
msgid ""
"These functions should be called when a directory or file is created by the "
"postinstall script at installation time. It will register *path* with the "
"uninstaller, so that it will be removed when the distribution is "
"uninstalled. To be safe, directories are only removed if they are empty."
msgstr ""
#: ../Doc/distutils/builtdist.rst:356
msgid ""
"This function can be used to retrieve special folder locations on Windows "
"like the Start Menu or the Desktop. It returns the full path to the folder. "
"*csidl_string* must be one of the following strings::"
msgstr ""
#: ../Doc/distutils/builtdist.rst:376
msgid "If the folder cannot be retrieved, :exc:`OSError` is raised."
msgstr ""
#: ../Doc/distutils/builtdist.rst:378
msgid ""
"Which folders are available depends on the exact Windows version, and "
"probably also the configuration. For details refer to Microsoft's "
"documentation of the :c:func:`SHGetSpecialFolderPath` function."
msgstr ""
#: ../Doc/distutils/builtdist.rst:385
msgid ""
"This function creates a shortcut. *target* is the path to the program to be "
"started by the shortcut. *description* is the description of the shortcut. "
"*filename* is the title of the shortcut that the user will see. *arguments* "
"specifies the command line arguments, if any. *workdir* is the working "
"directory for the program. *iconpath* is the file containing the icon for "
"the shortcut, and *iconindex* is the index of the icon in the file "
"*iconpath*. Again, for details consult the Microsoft documentation for the :"
"class:`IShellLink` interface."
msgstr ""

149
distutils/commandref.po Normal file
View File

@ -0,0 +1,149 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/commandref.rst:5
msgid "Command Reference"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/commandref.rst:24
msgid "Installing modules: the :command:`install` command family"
msgstr ""
#: ../Doc/distutils/commandref.rst:26
msgid ""
"The install command ensures that the build commands have been run and then "
"runs the subcommands :command:`install_lib`, :command:`install_data` and :"
"command:`install_scripts`."
msgstr ""
#: ../Doc/distutils/commandref.rst:37
msgid ":command:`install_data`"
msgstr ""
#: ../Doc/distutils/commandref.rst:39
msgid "This command installs all data files provided with the distribution."
msgstr ""
#: ../Doc/distutils/commandref.rst:45
msgid ":command:`install_scripts`"
msgstr ""
#: ../Doc/distutils/commandref.rst:47
msgid "This command installs all (Python) scripts in the distribution."
msgstr ""
#: ../Doc/distutils/commandref.rst:56
msgid "Creating a source distribution: the :command:`sdist` command"
msgstr ""
#: ../Doc/distutils/commandref.rst:60
msgid "The manifest template commands are:"
msgstr ""
#: ../Doc/distutils/commandref.rst:63
msgid "Command"
msgstr ""
#: ../Doc/distutils/commandref.rst:63
msgid "Description"
msgstr ""
#: ../Doc/distutils/commandref.rst:65
msgid ":command:`include pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:65
msgid "include all files matching any of the listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:68
msgid ":command:`exclude pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:68
msgid "exclude all files matching any of the listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:71
msgid ":command:`recursive-include dir pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:71
msgid "include all files under *dir* matching any of the listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:74
msgid ":command:`recursive-exclude dir pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:74
msgid "exclude all files under *dir* matching any of the listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:77
msgid ":command:`global-include pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:77
msgid ""
"include all files anywhere in the source tree matching --- & any of the "
"listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:80
msgid ":command:`global-exclude pat1 pat2 ...`"
msgstr ""
#: ../Doc/distutils/commandref.rst:80
msgid ""
"exclude all files anywhere in the source tree matching --- & any of the "
"listed patterns"
msgstr ""
#: ../Doc/distutils/commandref.rst:83
msgid ":command:`prune dir`"
msgstr ""
#: ../Doc/distutils/commandref.rst:83
msgid "exclude all files under *dir*"
msgstr ""
#: ../Doc/distutils/commandref.rst:85
msgid ":command:`graft dir`"
msgstr ""
#: ../Doc/distutils/commandref.rst:85
msgid "include all files under *dir*"
msgstr ""
#: ../Doc/distutils/commandref.rst:88
msgid ""
"The patterns here are Unix-style \"glob\" patterns: ``*`` matches any "
"sequence of regular filename characters, ``?`` matches any single regular "
"filename character, and ``[range]`` matches any of the characters in *range* "
"(e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). The definition of \"regular "
"filename character\" is platform-specific: on Unix it is anything except "
"slash; on Windows anything except backslash or colon."
msgstr ""

166
distutils/configfile.po Normal file
View File

@ -0,0 +1,166 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/configfile.rst:5
msgid "Writing the Setup Configuration File"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/configfile.rst:9
msgid ""
"Often, it's not possible to write down everything needed to build a "
"distribution *a priori*: you may need to get some information from the user, "
"or from the user's system, in order to proceed. As long as that information "
"is fairly simple---a list of directories to search for C header files or "
"libraries, for example---then providing a configuration file, :file:`setup."
"cfg`, for users to edit is a cheap and easy way to solicit it. "
"Configuration files also let you provide default values for any command "
"option, which the installer can then override either on the command-line or "
"by editing the config file."
msgstr ""
#: ../Doc/distutils/configfile.rst:18
msgid ""
"The setup configuration file is a useful middle-ground between the setup "
"script---which, ideally, would be opaque to installers [#]_---and the "
"command-line to the setup script, which is outside of your control and "
"entirely up to the installer. In fact, :file:`setup.cfg` (and any other "
"Distutils configuration files present on the target system) are processed "
"after the contents of the setup script, but before the command-line. This "
"has several useful consequences:"
msgstr ""
#: ../Doc/distutils/configfile.rst:32
msgid ""
"installers can override some of what you put in :file:`setup.py` by editing :"
"file:`setup.cfg`"
msgstr ""
#: ../Doc/distutils/configfile.rst:35
msgid ""
"you can provide non-standard defaults for options that are not easily set "
"in :file:`setup.py`"
msgstr ""
#: ../Doc/distutils/configfile.rst:38
msgid ""
"installers can override anything in :file:`setup.cfg` using the command-line "
"options to :file:`setup.py`"
msgstr ""
#: ../Doc/distutils/configfile.rst:41
msgid "The basic syntax of the configuration file is simple:"
msgstr ""
#: ../Doc/distutils/configfile.rst:49
msgid ""
"where *command* is one of the Distutils commands (e.g. :command:`build_py`, :"
"command:`install`), and *option* is one of the options that command "
"supports. Any number of options can be supplied for each command, and any "
"number of command sections can be included in the file. Blank lines are "
"ignored, as are comments, which run from a ``'#'`` character until the end "
"of the line. Long option values can be split across multiple lines simply "
"by indenting the continuation lines."
msgstr ""
#: ../Doc/distutils/configfile.rst:57
msgid ""
"You can find out the list of options supported by a particular command with "
"the universal :option:`!--help` option, e.g."
msgstr ""
#: ../Doc/distutils/configfile.rst:75
msgid ""
"Note that an option spelled :option:`!--foo-bar` on the command-line is "
"spelled ``foo_bar`` in configuration files."
msgstr ""
#: ../Doc/distutils/configfile.rst:80
msgid ""
"For example, say you want your extensions to be built \"in-place\"---that "
"is, you have an extension :mod:`pkg.ext`, and you want the compiled "
"extension file (:file:`ext.so` on Unix, say) to be put in the same source "
"directory as your pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. "
"You can always use the :option:`!--inplace` option on the command-line to "
"ensure this:"
msgstr ""
#: ../Doc/distutils/configfile.rst:90
msgid ""
"But this requires that you always specify the :command:`build_ext` command "
"explicitly, and remember to provide :option:`!--inplace`. An easier way is "
"to \"set and forget\" this option, by encoding it in :file:`setup.cfg`, the "
"configuration file for this distribution:"
msgstr ""
#: ../Doc/distutils/configfile.rst:100
msgid ""
"This will affect all builds of this module distribution, whether or not you "
"explicitly specify :command:`build_ext`. If you include :file:`setup.cfg` "
"in your source distribution, it will also affect end-user builds---which is "
"probably a bad idea for this option, since always building extensions in-"
"place would break installation of the module distribution. In certain "
"peculiar cases, though, modules are built right in their installation "
"directory, so this is conceivably a useful ability. (Distributing "
"extensions that expect to be built in their installation directory is almost "
"always a bad idea, though.)"
msgstr ""
#: ../Doc/distutils/configfile.rst:109
msgid ""
"Another example: certain commands take a lot of options that don't change "
"from run to run; for example, :command:`bdist_rpm` needs to know everything "
"required to generate a \"spec\" file for creating an RPM distribution. Some "
"of this information comes from the setup script, and some is automatically "
"generated by the Distutils (such as the list of files installed). But some "
"of it has to be supplied as options to :command:`bdist_rpm`, which would be "
"very tedious to do on the command-line for every run. Hence, here is a "
"snippet from the Distutils' own :file:`setup.cfg`:"
msgstr ""
#: ../Doc/distutils/configfile.rst:129
msgid ""
"Note that the ``doc_files`` option is simply a whitespace-separated string "
"split across multiple lines for readability."
msgstr ""
#: ../Doc/distutils/configfile.rst:136
msgid ":ref:`inst-config-syntax` in \"Installing Python Modules\""
msgstr ""
#: ../Doc/distutils/configfile.rst:136
msgid ""
"More information on the configuration files is available in the manual for "
"system administrators."
msgstr ""
#: ../Doc/distutils/configfile.rst:141
msgid "Footnotes"
msgstr ""
#: ../Doc/distutils/configfile.rst:142
msgid ""
"This ideal probably won't be achieved until auto-configuration is fully "
"supported by the Distutils."
msgstr ""

285
distutils/examples.po Normal file
View File

@ -0,0 +1,285 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/examples.rst:5
msgid "Distutils Examples"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/examples.rst:9
msgid ""
"This chapter provides a number of basic examples to help get started with "
"distutils. Additional information about using distutils can be found in the "
"Distutils Cookbook."
msgstr ""
#: ../Doc/distutils/examples.rst:16
msgid "`Distutils Cookbook <https://wiki.python.org/moin/Distutils/Cookbook>`_"
msgstr ""
#: ../Doc/distutils/examples.rst:17
msgid ""
"Collection of recipes showing how to achieve more control over distutils."
msgstr ""
#: ../Doc/distutils/examples.rst:23
msgid "Pure Python distribution (by module)"
msgstr ""
#: ../Doc/distutils/examples.rst:25
msgid ""
"If you're just distributing a couple of modules, especially if they don't "
"live in a particular package, you can specify them individually using the "
"``py_modules`` option in the setup script."
msgstr ""
#: ../Doc/distutils/examples.rst:29
msgid ""
"In the simplest case, you'll have two files to worry about: a setup script "
"and the single module you're distributing, :file:`foo.py` in this example::"
msgstr ""
#: ../Doc/distutils/examples.rst:36
msgid ""
"(In all diagrams in this section, *<root>* will refer to the distribution "
"root directory.) A minimal setup script to describe this situation would "
"be::"
msgstr ""
#: ../Doc/distutils/examples.rst:45
msgid ""
"Note that the name of the distribution is specified independently with the "
"``name`` option, and there's no rule that says it has to be the same as the "
"name of the sole module in the distribution (although that's probably a good "
"convention to follow). However, the distribution name is used to generate "
"filenames, so you should stick to letters, digits, underscores, and hyphens."
msgstr ""
#: ../Doc/distutils/examples.rst:51
msgid ""
"Since ``py_modules`` is a list, you can of course specify multiple modules, "
"eg. if you're distributing modules :mod:`foo` and :mod:`bar`, your setup "
"might look like this::"
msgstr ""
#: ../Doc/distutils/examples.rst:60
msgid "and the setup script might be ::"
msgstr ""
#: ../Doc/distutils/examples.rst:68
msgid ""
"You can put module source files into another directory, but if you have "
"enough modules to do that, it's probably easier to specify modules by "
"package rather than listing them individually."
msgstr ""
#: ../Doc/distutils/examples.rst:76
msgid "Pure Python distribution (by package)"
msgstr ""
#: ../Doc/distutils/examples.rst:78
msgid ""
"If you have more than a couple of modules to distribute, especially if they "
"are in multiple packages, it's probably easier to specify whole packages "
"rather than individual modules. This works even if your modules are not in "
"a package; you can just tell the Distutils to process modules from the root "
"package, and that works the same as any other package (except that you don't "
"have to have an :file:`__init__.py` file)."
msgstr ""
#: ../Doc/distutils/examples.rst:85
msgid "The setup script from the last example could also be written as ::"
msgstr ""
#: ../Doc/distutils/examples.rst:93
msgid "(The empty string stands for the root package.)"
msgstr ""
#: ../Doc/distutils/examples.rst:95
msgid ""
"If those two files are moved into a subdirectory, but remain in the root "
"package, e.g.::"
msgstr ""
#: ../Doc/distutils/examples.rst:103
msgid ""
"then you would still specify the root package, but you have to tell the "
"Distutils where source files in the root package live::"
msgstr ""
#: ../Doc/distutils/examples.rst:113
msgid ""
"More typically, though, you will want to distribute multiple modules in the "
"same package (or in sub-packages). For example, if the :mod:`foo` and :mod:"
"`bar` modules belong in package :mod:`foobar`, one way to layout your source "
"tree is ::"
msgstr ""
#: ../Doc/distutils/examples.rst:125
msgid ""
"This is in fact the default layout expected by the Distutils, and the one "
"that requires the least work to describe in your setup script::"
msgstr ""
#: ../Doc/distutils/examples.rst:134
msgid ""
"If you want to put modules in directories not named for their package, then "
"you need to use the ``package_dir`` option again. For example, if the :file:"
"`src` directory holds modules in the :mod:`foobar` package::"
msgstr ""
#: ../Doc/distutils/examples.rst:145
msgid "an appropriate setup script would be ::"
msgstr ""
#: ../Doc/distutils/examples.rst:154
msgid ""
"Or, you might put modules from your main package right in the distribution "
"root::"
msgstr ""
#: ../Doc/distutils/examples.rst:163
msgid "in which case your setup script would be ::"
msgstr ""
#: ../Doc/distutils/examples.rst:172
msgid "(The empty string also stands for the current directory.)"
msgstr ""
#: ../Doc/distutils/examples.rst:174
msgid ""
"If you have sub-packages, they must be explicitly listed in ``packages``, "
"but any entries in ``package_dir`` automatically extend to sub-packages. (In "
"other words, the Distutils does *not* scan your source tree, trying to "
"figure out which directories correspond to Python packages by looking for :"
"file:`__init__.py` files.) Thus, if the default layout grows a sub-package::"
msgstr ""
#: ../Doc/distutils/examples.rst:190
msgid "then the corresponding setup script would be ::"
msgstr ""
#: ../Doc/distutils/examples.rst:202
msgid "Single extension module"
msgstr ""
#: ../Doc/distutils/examples.rst:204
msgid ""
"Extension modules are specified using the ``ext_modules`` option. "
"``package_dir`` has no effect on where extension source files are found; it "
"only affects the source for pure Python modules. The simplest case, a "
"single extension module in a single C source file, is::"
msgstr ""
#: ../Doc/distutils/examples.rst:213
msgid ""
"If the :mod:`foo` extension belongs in the root package, the setup script "
"for this could be ::"
msgstr ""
#: ../Doc/distutils/examples.rst:223
msgid "If the extension actually belongs in a package, say :mod:`foopkg`, then"
msgstr ""
#: ../Doc/distutils/examples.rst:225
msgid ""
"With exactly the same source tree layout, this extension can be put in the :"
"mod:`foopkg` package simply by changing the name of the extension::"
msgstr ""
#: ../Doc/distutils/examples.rst:236
msgid "Checking a package"
msgstr ""
#: ../Doc/distutils/examples.rst:238
msgid ""
"The ``check`` command allows you to verify if your package meta-data meet "
"the minimum requirements to build a distribution."
msgstr ""
#: ../Doc/distutils/examples.rst:241
msgid ""
"To run it, just call it using your :file:`setup.py` script. If something is "
"missing, ``check`` will display a warning."
msgstr ""
#: ../Doc/distutils/examples.rst:244
msgid "Let's take an example with a simple script::"
msgstr ""
#: ../Doc/distutils/examples.rst:250
msgid "Running the ``check`` command will display some warnings:"
msgstr ""
#: ../Doc/distutils/examples.rst:261
msgid ""
"If you use the reStructuredText syntax in the ``long_description`` field and "
"`docutils`_ is installed you can check if the syntax is fine with the "
"``check`` command, using the ``restructuredtext`` option."
msgstr ""
#: ../Doc/distutils/examples.rst:265
msgid "For example, if the :file:`setup.py` script is changed like this::"
msgstr ""
#: ../Doc/distutils/examples.rst:280
msgid ""
"Where the long description is broken, ``check`` will be able to detect it by "
"using the :mod:`docutils` parser:"
msgstr ""
#: ../Doc/distutils/examples.rst:291
msgid "Reading the metadata"
msgstr ""
#: ../Doc/distutils/examples.rst:293
msgid ""
"The :func:`distutils.core.setup` function provides a command-line interface "
"that allows you to query the metadata fields of a project through the "
"``setup.py`` script of a given project:"
msgstr ""
#: ../Doc/distutils/examples.rst:302
msgid ""
"This call reads the ``name`` metadata by running the :func:`distutils.core."
"setup` function. Although, when a source or binary distribution is created "
"with Distutils, the metadata fields are written in a static file called :"
"file:`PKG-INFO`. When a Distutils-based project is installed in Python, the :"
"file:`PKG-INFO` file is copied alongside the modules and packages of the "
"distribution under :file:`NAME-VERSION-pyX.X.egg-info`, where ``NAME`` is "
"the name of the project, ``VERSION`` its version as defined in the Metadata, "
"and ``pyX.X`` the major and minor version of Python like ``2.7`` or ``3.2``."
msgstr ""
#: ../Doc/distutils/examples.rst:312
msgid ""
"You can read back this static file, by using the :class:`distutils.dist."
"DistributionMetadata` class and its :func:`read_pkg_file` method::"
msgstr ""
#: ../Doc/distutils/examples.rst:326
msgid ""
"Notice that the class can also be instantiated with a metadata file path to "
"loads its values::"
msgstr ""

127
distutils/extending.po Normal file
View File

@ -0,0 +1,127 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/extending.rst:5
msgid "Extending Distutils"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/extending.rst:9
msgid ""
"Distutils can be extended in various ways. Most extensions take the form of "
"new commands or replacements for existing commands. New commands may be "
"written to support new types of platform-specific packaging, for example, "
"while replacements for existing commands may be made to modify details of "
"how the command operates on a package."
msgstr ""
#: ../Doc/distutils/extending.rst:15
msgid ""
"Most extensions of the distutils are made within :file:`setup.py` scripts "
"that want to modify existing commands; many simply add a few file extensions "
"that should be copied into packages in addition to :file:`.py` files as a "
"convenience."
msgstr ""
#: ../Doc/distutils/extending.rst:20
msgid ""
"Most distutils command implementations are subclasses of the :class:"
"`distutils.cmd.Command` class. New commands may directly inherit from :"
"class:`Command`, while replacements often derive from :class:`Command` "
"indirectly, directly subclassing the command they are replacing. Commands "
"are required to derive from :class:`Command`."
msgstr ""
#: ../Doc/distutils/extending.rst:35
msgid "Integrating new commands"
msgstr ""
#: ../Doc/distutils/extending.rst:37
msgid ""
"There are different ways to integrate new command implementations into "
"distutils. The most difficult is to lobby for the inclusion of the new "
"features in distutils itself, and wait for (and require) a version of Python "
"that provides that support. This is really hard for many reasons."
msgstr ""
#: ../Doc/distutils/extending.rst:42
msgid ""
"The most common, and possibly the most reasonable for most needs, is to "
"include the new implementations with your :file:`setup.py` script, and cause "
"the :func:`distutils.core.setup` function use them::"
msgstr ""
#: ../Doc/distutils/extending.rst:57
msgid ""
"This approach is most valuable if the new implementations must be used to "
"use a particular package, as everyone interested in the package will need to "
"have the new command implementation."
msgstr ""
#: ../Doc/distutils/extending.rst:61
msgid ""
"Beginning with Python 2.4, a third option is available, intended to allow "
"new commands to be added which can support existing :file:`setup.py` scripts "
"without requiring modifications to the Python installation. This is "
"expected to allow third-party extensions to provide support for additional "
"packaging systems, but the commands can be used for anything distutils "
"commands can be used for. A new configuration option, ``command_packages`` "
"(command-line option :option:`!--command-packages`), can be used to specify "
"additional packages to be searched for modules implementing commands. Like "
"all distutils options, this can be specified on the command line or in a "
"configuration file. This option can only be set in the ``[global]`` section "
"of a configuration file, or before any commands on the command line. If set "
"in a configuration file, it can be overridden from the command line; setting "
"it to an empty string on the command line causes the default to be used. "
"This should never be set in a configuration file provided with a package."
msgstr ""
#: ../Doc/distutils/extending.rst:76
msgid ""
"This new option can be used to add any number of packages to the list of "
"packages searched for command implementations; multiple package names should "
"be separated by commas. When not specified, the search is only performed in "
"the :mod:`distutils.command` package. When :file:`setup.py` is run with the "
"option ``--command-packages distcmds,buildcmds``, however, the packages :mod:"
"`distutils.command`, :mod:`distcmds`, and :mod:`buildcmds` will be searched "
"in that order. New commands are expected to be implemented in modules of "
"the same name as the command by classes sharing the same name. Given the "
"example command line option above, the command :command:`bdist_openpkg` "
"could be implemented by the class :class:`distcmds.bdist_openpkg."
"bdist_openpkg` or :class:`buildcmds.bdist_openpkg.bdist_openpkg`."
msgstr ""
#: ../Doc/distutils/extending.rst:90
msgid "Adding new distribution types"
msgstr ""
#: ../Doc/distutils/extending.rst:92
msgid ""
"Commands that create distributions (files in the :file:`dist/` directory) "
"need to add ``(command, filename)`` pairs to ``self.distribution."
"dist_files`` so that :command:`upload` can upload it to PyPI. The "
"*filename* in the pair contains no path information, only the name of the "
"file itself. In dry-run mode, pairs should still be added to represent what "
"would have been created."
msgstr ""

77
distutils/index.po Normal file
View File

@ -0,0 +1,77 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/index.rst:5
msgid "Distributing Python Modules (Legacy version)"
msgstr ""
#: ../Doc/distutils/index.rst:0
msgid "Authors"
msgstr ""
#: ../Doc/distutils/index.rst:7
msgid "Greg Ward, Anthony Baxter"
msgstr ""
#: ../Doc/distutils/index.rst:0
msgid "Email"
msgstr ""
#: ../Doc/distutils/index.rst:8
msgid "distutils-sig@python.org"
msgstr ""
#: ../Doc/distutils/index.rst:12
msgid ":ref:`distributing-index`"
msgstr ""
#: ../Doc/distutils/index.rst:13
msgid "The up to date module distribution documentations"
msgstr ""
#: ../Doc/distutils/index.rst:17
msgid ""
"The entire ``distutils`` package has been deprecated and will be removed in "
"Python 3.12. This documentation is retained as a reference only, and will be "
"removed with the package. See the :ref:`What's New <distutils-deprecated>` "
"entry for more information."
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/index.rst:26
msgid ""
"This guide only covers the basic tools for building and distributing "
"extensions that are provided as part of this version of Python. Third party "
"tools offer easier to use and more secure alternatives. Refer to the `quick "
"recommendations section <https://packaging.python.org/guides/tool-"
"recommendations/>`__ in the Python Packaging User Guide for more information."
msgstr ""
#: ../Doc/distutils/index.rst:32
msgid ""
"This document describes the Python Distribution Utilities (\"Distutils\") "
"from the module developer's point of view, describing the underlying "
"capabilities that ``setuptools`` builds on to allow Python developers to "
"make Python modules and extensions readily available to a wider audience."
msgstr ""

325
distutils/introduction.po Normal file
View File

@ -0,0 +1,325 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/introduction.rst:5
msgid "An Introduction to Distutils"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/introduction.rst:9
msgid ""
"This document covers using the Distutils to distribute your Python modules, "
"concentrating on the role of developer/distributor: if you're looking for "
"information on installing Python modules, you should refer to the :ref:"
"`install-index` chapter."
msgstr ""
#: ../Doc/distutils/introduction.rst:18
msgid "Concepts & Terminology"
msgstr ""
#: ../Doc/distutils/introduction.rst:20
msgid ""
"Using the Distutils is quite simple, both for module developers and for "
"users/administrators installing third-party modules. As a developer, your "
"responsibilities (apart from writing solid, well-documented and well-tested "
"code, of course!) are:"
msgstr ""
#: ../Doc/distutils/introduction.rst:25
msgid "write a setup script (:file:`setup.py` by convention)"
msgstr ""
#: ../Doc/distutils/introduction.rst:27
msgid "(optional) write a setup configuration file"
msgstr ""
#: ../Doc/distutils/introduction.rst:29
msgid "create a source distribution"
msgstr ""
#: ../Doc/distutils/introduction.rst:31
msgid "(optional) create one or more built (binary) distributions"
msgstr ""
#: ../Doc/distutils/introduction.rst:33
msgid "Each of these tasks is covered in this document."
msgstr ""
#: ../Doc/distutils/introduction.rst:35
msgid ""
"Not all module developers have access to a multitude of platforms, so it's "
"not always feasible to expect them to create a multitude of built "
"distributions. It is hoped that a class of intermediaries, called "
"*packagers*, will arise to address this need. Packagers will take source "
"distributions released by module developers, build them on one or more "
"platforms, and release the resulting built distributions. Thus, users on "
"the most popular platforms will be able to install most popular Python "
"module distributions in the most natural way for their platform, without "
"having to run a single setup script or compile a line of code."
msgstr ""
#: ../Doc/distutils/introduction.rst:49
msgid "A Simple Example"
msgstr ""
#: ../Doc/distutils/introduction.rst:51
msgid ""
"The setup script is usually quite simple, although since it's written in "
"Python, there are no arbitrary limits to what you can do with it, though you "
"should be careful about putting arbitrarily expensive operations in your "
"setup script. Unlike, say, Autoconf-style configure scripts, the setup "
"script may be run multiple times in the course of building and installing "
"your module distribution."
msgstr ""
#: ../Doc/distutils/introduction.rst:58
msgid ""
"If all you want to do is distribute a module called :mod:`foo`, contained in "
"a file :file:`foo.py`, then your setup script can be as simple as this::"
msgstr ""
#: ../Doc/distutils/introduction.rst:67
msgid "Some observations:"
msgstr ""
#: ../Doc/distutils/introduction.rst:69
msgid ""
"most information that you supply to the Distutils is supplied as keyword "
"arguments to the :func:`setup` function"
msgstr ""
#: ../Doc/distutils/introduction.rst:72
msgid ""
"those keyword arguments fall into two categories: package metadata (name, "
"version number) and information about what's in the package (a list of pure "
"Python modules, in this case)"
msgstr ""
#: ../Doc/distutils/introduction.rst:76
msgid ""
"modules are specified by module name, not filename (the same will hold true "
"for packages and extensions)"
msgstr ""
#: ../Doc/distutils/introduction.rst:79
msgid ""
"it's recommended that you supply a little more metadata, in particular your "
"name, email address and a URL for the project (see section :ref:`setup-"
"script` for an example)"
msgstr ""
#: ../Doc/distutils/introduction.rst:83
msgid ""
"To create a source distribution for this module, you would create a setup "
"script, :file:`setup.py`, containing the above code, and run this command "
"from a terminal::"
msgstr ""
#: ../Doc/distutils/introduction.rst:89
msgid ""
"For Windows, open a command prompt window (:menuselection:`Start --> "
"Accessories`) and change the command to::"
msgstr ""
#: ../Doc/distutils/introduction.rst:94
msgid ""
":command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP "
"file on Windows) containing your setup script :file:`setup.py`, and your "
"module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` "
"(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`."
msgstr ""
#: ../Doc/distutils/introduction.rst:99
msgid ""
"If an end-user wishes to install your :mod:`foo` module, all they have to do "
"is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from "
"the :file:`foo-1.0` directory---run ::"
msgstr ""
#: ../Doc/distutils/introduction.rst:105
msgid ""
"which will ultimately copy :file:`foo.py` to the appropriate directory for "
"third-party modules in their Python installation."
msgstr ""
#: ../Doc/distutils/introduction.rst:108
msgid ""
"This simple example demonstrates some fundamental concepts of the Distutils. "
"First, both developers and installers have the same basic user interface, i."
"e. the setup script. The difference is which Distutils *commands* they use: "
"the :command:`sdist` command is almost exclusively for module developers, "
"while :command:`install` is more often for installers (although most "
"developers will want to install their own code occasionally)."
msgstr ""
#: ../Doc/distutils/introduction.rst:115
msgid ""
"Other useful built distribution formats are RPM, implemented by the :command:"
"`bdist_rpm` command, Solaris :program:`pkgtool` (:command:`bdist_pkgtool`), "
"and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the "
"following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::"
msgstr ""
#: ../Doc/distutils/introduction.rst:123
msgid ""
"(The :command:`bdist_rpm` command uses the :command:`rpm` executable, "
"therefore this has to be run on an RPM-based system such as Red Hat Linux, "
"SuSE Linux, or Mandrake Linux.)"
msgstr ""
#: ../Doc/distutils/introduction.rst:127
msgid ""
"You can find out what distribution formats are available at any time by "
"running ::"
msgstr ""
#: ../Doc/distutils/introduction.rst:136
msgid "General Python terminology"
msgstr ""
#: ../Doc/distutils/introduction.rst:138
msgid ""
"If you're reading this document, you probably have a good idea of what "
"modules, extensions, and so forth are. Nevertheless, just to be sure that "
"everyone is operating from a common starting point, we offer the following "
"glossary of common Python terms:"
msgstr ""
#: ../Doc/distutils/introduction.rst:146
msgid "module"
msgstr ""
#: ../Doc/distutils/introduction.rst:144
msgid ""
"the basic unit of code reusability in Python: a block of code imported by "
"some other code. Three types of modules concern us here: pure Python "
"modules, extension modules, and packages."
msgstr ""
#: ../Doc/distutils/introduction.rst:151
msgid "pure Python module"
msgstr ""
#: ../Doc/distutils/introduction.rst:149
msgid ""
"a module written in Python and contained in a single :file:`.py` file (and "
"possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure "
"module.\""
msgstr ""
#: ../Doc/distutils/introduction.rst:159
msgid "extension module"
msgstr ""
#: ../Doc/distutils/introduction.rst:154
msgid ""
"a module written in the low-level language of the Python implementation: C/C+"
"+ for Python, Java for Jython. Typically contained in a single dynamically "
"loadable pre-compiled file, e.g. a shared object (:file:`.so`) file for "
"Python extensions on Unix, a DLL (given the :file:`.pyd` extension) for "
"Python extensions on Windows, or a Java class file for Jython extensions. "
"(Note that currently, the Distutils only handles C/C++ extensions for "
"Python.)"
msgstr ""
#: ../Doc/distutils/introduction.rst:164
msgid "package"
msgstr ""
#: ../Doc/distutils/introduction.rst:162
msgid ""
"a module that contains other modules; typically contained in a directory in "
"the filesystem and distinguished from other directories by the presence of a "
"file :file:`__init__.py`."
msgstr ""
#: ../Doc/distutils/introduction.rst:174
msgid "root package"
msgstr ""
#: ../Doc/distutils/introduction.rst:167
msgid ""
"the root of the hierarchy of packages. (This isn't really a package, since "
"it doesn't have an :file:`__init__.py` file. But we have to call it "
"something.) The vast majority of the standard library is in the root "
"package, as are many small, standalone third-party modules that don't belong "
"to a larger module collection. Unlike regular packages, modules in the root "
"package can be found in many directories: in fact, every directory listed in "
"``sys.path`` contributes modules to the root package."
msgstr ""
#: ../Doc/distutils/introduction.rst:179
msgid "Distutils-specific terminology"
msgstr ""
#: ../Doc/distutils/introduction.rst:181
msgid ""
"The following terms apply more specifically to the domain of distributing "
"Python modules using the Distutils:"
msgstr ""
#: ../Doc/distutils/introduction.rst:190
msgid "module distribution"
msgstr ""
#: ../Doc/distutils/introduction.rst:185
msgid ""
"a collection of Python modules distributed together as a single downloadable "
"resource and meant to be installed *en masse*. Examples of some well-known "
"module distributions are NumPy, SciPy, Pillow, or mxBase. (This would be "
"called a *package*, except that term is already taken in the Python context: "
"a single module distribution may contain zero, one, or many Python packages.)"
msgstr ""
#: ../Doc/distutils/introduction.rst:194
msgid "pure module distribution"
msgstr ""
#: ../Doc/distutils/introduction.rst:193
msgid ""
"a module distribution that contains only pure Python modules and packages. "
"Sometimes referred to as a \"pure distribution.\""
msgstr ""
#: ../Doc/distutils/introduction.rst:198
msgid "non-pure module distribution"
msgstr ""
#: ../Doc/distutils/introduction.rst:197
msgid ""
"a module distribution that contains at least one extension module. "
"Sometimes referred to as a \"non-pure distribution.\""
msgstr ""
#: ../Doc/distutils/introduction.rst:202
msgid "distribution root"
msgstr ""
#: ../Doc/distutils/introduction.rst:201
msgid ""
"the top-level directory of your source tree (or source distribution); the "
"directory where :file:`setup.py` exists. Generally :file:`setup.py` will "
"be run from this directory."
msgstr ""

34
distutils/packageindex.po Normal file
View File

@ -0,0 +1,34 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/packageindex.rst:7
msgid "The Python Package Index (PyPI)"
msgstr ""
#: ../Doc/distutils/packageindex.rst:9
msgid ""
"The `Python Package Index (PyPI)`_ stores metadata describing distributions "
"packaged with distutils and other publishing tools, as well the distribution "
"archives themselves."
msgstr ""
#: ../Doc/distutils/packageindex.rst:13
msgid ""
"References to up to date PyPI documentation can be found at :ref:`publishing-"
"python-packages`."
msgstr ""

1040
distutils/setupscript.po Normal file

File diff suppressed because it is too large Load Diff

437
distutils/sourcedist.po Normal file
View File

@ -0,0 +1,437 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/sourcedist.rst:5
msgid "Creating a Source Distribution"
msgstr ""
#: ../Doc/distutils/_setuptools_disclaimer.rst:3
msgid ""
"This document is being retained solely until the ``setuptools`` "
"documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html "
"independently covers all of the relevant information currently included here."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:9
msgid ""
"As shown in section :ref:`distutils-simple-example`, you use the :command:"
"`sdist` command to create a source distribution. In the simplest case, ::"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:14
msgid ""
"(assuming you haven't specified any :command:`sdist` options in the setup "
"script or config file), :command:`sdist` creates the archive of the default "
"format for the current platform. The default format is a gzip'ed tar file (:"
"file:`.tar.gz`) on Unix, and ZIP file on Windows."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:19
msgid ""
"You can specify as many formats as you like using the :option:`!--formats` "
"option, for example::"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:24
msgid "to create a gzipped tarball and a zip file. The available formats are:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:27
msgid "Format"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:27
msgid "Description"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:27
msgid "Notes"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:29
msgid "``zip``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:29
msgid "zip file (:file:`.zip`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:29
msgid "(1),(3)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:31
msgid "``gztar``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:31
msgid "gzip'ed tar file (:file:`.tar.gz`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:31
msgid "\\(2)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:34
msgid "``bztar``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:34
msgid "bzip2'ed tar file (:file:`.tar.bz2`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:34 ../Doc/distutils/sourcedist.rst:37
#: ../Doc/distutils/sourcedist.rst:43
msgid "\\(5)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:37
msgid "``xztar``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:37
msgid "xz'ed tar file (:file:`.tar.xz`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:40
msgid "``ztar``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:40
msgid "compressed tar file (:file:`.tar.Z`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:40
msgid "(4),(5)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:43
msgid "``tar``"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:43
msgid "tar file (:file:`.tar`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:46
msgid "Added support for the ``xztar`` format."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:49
msgid "Notes:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:52
msgid "default on Windows"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:55
msgid "default on Unix"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:58
msgid ""
"requires either external :program:`zip` utility or :mod:`zipfile` module "
"(part of the standard Python library since Python 1.6)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:62
msgid ""
"requires the :program:`compress` program. Notice that this format is now "
"pending for deprecation and will be removed in the future versions of Python."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:65
msgid ""
"deprecated by `PEP 527 <https://peps.python.org/pep-0527/>`_; `PyPI <https://"
"pypi.org>`_ only accepts ``.zip`` and ``.tar.gz`` files."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:68
msgid ""
"When using any ``tar`` format (``gztar``, ``bztar``, ``xztar``, ``ztar`` or "
"``tar``), under Unix you can specify the ``owner`` and ``group`` names that "
"will be set for each member of the archive."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:72
msgid "For example, if you want all files of the archive to be owned by root::"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:80
msgid "Specifying the files to distribute"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:82
msgid ""
"If you don't supply an explicit list of files (or instructions on how to "
"generate one), the :command:`sdist` command puts a minimal default set into "
"the source distribution:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:86
msgid ""
"all Python source files implied by the ``py_modules`` and ``packages`` "
"options"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:89
msgid ""
"all C source files mentioned in the ``ext_modules`` or ``libraries`` options"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:95
msgid ""
"scripts identified by the ``scripts`` option See :ref:`distutils-installing-"
"scripts`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:98
msgid ""
"anything that looks like a test script: :file:`test/test\\*.py` (currently, "
"the Distutils don't do anything with test scripts except include them in "
"source distributions, but in the future there will be a standard for testing "
"Python module distributions)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:103
msgid ""
"Any of the standard README files (:file:`README`, :file:`README.txt`, or :"
"file:`README.rst`), :file:`setup.py` (or whatever you called your setup "
"script), and :file:`setup.cfg`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:107
msgid ""
"all files that matches the ``package_data`` metadata. See :ref:`distutils-"
"installing-package-data`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:110
msgid ""
"all files that matches the ``data_files`` metadata. See :ref:`distutils-"
"additional-files`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:113
msgid ""
"Sometimes this is enough, but usually you will want to specify additional "
"files to distribute. The typical way to do this is to write a *manifest "
"template*, called :file:`MANIFEST.in` by default. The manifest template is "
"just a list of instructions for how to generate your manifest file, :file:"
"`MANIFEST`, which is the exact list of files to include in your source "
"distribution. The :command:`sdist` command processes this template and "
"generates a manifest based on its instructions and what it finds in the "
"filesystem."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:121
msgid ""
"If you prefer to roll your own manifest file, the format is simple: one "
"filename per line, regular files (or symlinks to them) only. If you do "
"supply your own :file:`MANIFEST`, you must specify everything: the default "
"set of files described above does not apply in this case."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:126
msgid ""
"An existing generated :file:`MANIFEST` will be regenerated without :command:"
"`sdist` comparing its modification time to the one of :file:`MANIFEST.in` "
"or :file:`setup.py`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:131
msgid ""
":file:`MANIFEST` files start with a comment indicating they are generated. "
"Files without this comment are not overwritten or removed."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:135
msgid ""
":command:`sdist` will read a :file:`MANIFEST` file if no :file:`MANIFEST.in` "
"exists, like it used to do."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:139
msgid ""
":file:`README.rst` is now included in the list of distutils standard READMEs."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:143
msgid ""
"The manifest template has one command per line, where each command specifies "
"a set of files to include or exclude from the source distribution. For an "
"example, again we turn to the Distutils' own manifest template:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:153
msgid ""
"The meanings should be fairly clear: include all files in the distribution "
"root matching :file:`\\*.txt`, all files anywhere under the :file:`examples` "
"directory matching :file:`\\*.txt` or :file:`\\*.py`, and exclude all "
"directories matching :file:`examples/sample?/build`. All of this is done "
"*after* the standard include set, so you can exclude files from the standard "
"set with explicit instructions in the manifest template. (Or, you can use "
"the :option:`!--no-defaults` option to disable the standard set entirely.) "
"There are several other commands available in the manifest template mini-"
"language; see section :ref:`sdist-cmd`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:163
msgid ""
"The order of commands in the manifest template matters: initially, we have "
"the list of default files as described above, and each command in the "
"template adds to or removes from that list of files. Once we have fully "
"processed the manifest template, we remove files that should not be included "
"in the source distribution:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:169
msgid "all files in the Distutils \"build\" tree (default :file:`build/`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:171
msgid ""
"all files in directories named :file:`RCS`, :file:`CVS`, :file:`.svn`, :file:"
"`.hg`, :file:`.git`, :file:`.bzr` or :file:`_darcs`"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:174
msgid ""
"Now we have our complete list of files, which is written to the manifest for "
"future reference, and then used to build the source distribution archive(s)."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:177
msgid ""
"You can disable the default set of included files with the :option:`!--no-"
"defaults` option, and you can disable the standard exclude set with :option:"
"`!--no-prune`."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:181
msgid ""
"Following the Distutils' own manifest template, let's trace how the :command:"
"`sdist` command builds the list of files to include in the Distutils source "
"distribution:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:185
msgid ""
"include all Python source files in the :file:`distutils` and :file:"
"`distutils/command` subdirectories (because packages corresponding to those "
"two directories were mentioned in the ``packages`` option in the setup "
"script---see section :ref:`setup-script`)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:190
msgid ""
"include :file:`README.txt`, :file:`setup.py`, and :file:`setup.cfg` "
"(standard files)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:193
msgid "include :file:`test/test\\*.py` (standard files)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:195
msgid ""
"include :file:`\\*.txt` in the distribution root (this will find :file:"
"`README.txt` a second time, but such redundancies are weeded out later)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:198
msgid ""
"include anything matching :file:`\\*.txt` or :file:`\\*.py` in the sub-tree "
"under :file:`examples`,"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:201
msgid ""
"exclude all files in the sub-trees starting at directories matching :file:"
"`examples/sample?/build`\\ ---this may exclude files included by the "
"previous two steps, so it's important that the ``prune`` command in the "
"manifest template comes after the ``recursive-include`` command"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:206
msgid ""
"exclude the entire :file:`build` tree, and any :file:`RCS`, :file:`CVS`, :"
"file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` and :file:`_darcs` "
"directories"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:210
msgid ""
"Just like in the setup script, file and directory names in the manifest "
"template should always be slash-separated; the Distutils will take care of "
"converting them to the standard representation on your platform. That way, "
"the manifest template is portable across operating systems."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:219
msgid "Manifest-related options"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:221
msgid ""
"The normal course of operations for the :command:`sdist` command is as "
"follows:"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:223
msgid ""
"if the manifest file (:file:`MANIFEST` by default) exists and the first line "
"does not have a comment indicating it is generated from :file:`MANIFEST.in`, "
"then it is used as is, unaltered"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:227
msgid ""
"if the manifest file doesn't exist or has been previously automatically "
"generated, read :file:`MANIFEST.in` and create the manifest"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:230
msgid ""
"if neither :file:`MANIFEST` nor :file:`MANIFEST.in` exist, create a manifest "
"with just the default file set"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:233
msgid ""
"use the list of files now in :file:`MANIFEST` (either just generated or read "
"in) to create the source distribution archive(s)"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:236
msgid ""
"There are a couple of options that modify this behaviour. First, use the :"
"option:`!--no-defaults` and :option:`!--no-prune` to disable the standard "
"\"include\" and \"exclude\" sets."
msgstr ""
#: ../Doc/distutils/sourcedist.rst:240
msgid ""
"Second, you might just want to (re)generate the manifest, but not create a "
"source distribution::"
msgstr ""
#: ../Doc/distutils/sourcedist.rst:245
msgid ":option:`!-o` is a shortcut for :option:`!--manifest-only`."
msgstr ""

27
distutils/uploading.po Normal file
View File

@ -0,0 +1,27 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/distutils/uploading.rst:5
msgid "Uploading Packages to the Package Index"
msgstr ""
#: ../Doc/distutils/uploading.rst:7
msgid ""
"References to up to date PyPI documentation can be found at :ref:`publishing-"
"python-packages`."
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -32,7 +32,7 @@ msgstr ""
msgid ""
"To be importable, the shared library must be available on :envvar:"
"`PYTHONPATH`, and must be named after the module name, with an appropriate "
"extension. When using setuptools, the correct filename is generated "
"extension. When using distutils, the correct filename is generated "
"automatically."
msgstr ""
"Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être "
@ -87,158 +87,160 @@ msgstr ""
"au nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one "
"library\"* dans la :pep:`489` pour plus d'informations."
#: extending/building.rst:51
#: extending/building.rst:49
#, fuzzy
msgid "Building C and C++ Extensions with setuptools"
msgid "Building C and C++ Extensions with distutils"
msgstr "Construire les extensions C et C++ avec *distutils*"
#: extending/building.rst:53
msgid ""
"Python 3.12 and newer no longer come with distutils. Please refer to the "
"``setuptools`` documentation at https://setuptools.readthedocs.io/en/latest/"
"setuptools.html to learn more about how build and distribute C/C++ "
"extensions with setuptools."
"Extension modules can be built using distutils, which is included in "
"Python. Since distutils also supports creation of binary packages, users "
"don't necessarily need a compiler and distutils to install the extension."
msgstr ""
"Des modules d'extension peuvent être construits avec *distutils*, qui est "
"inclus dans Python. Puisque *distutils* gère aussi la création de paquets "
"binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un "
"compilateur ni de *distutils* pour installer l'extension."
#~ msgid ""
#~ "Extension modules can be built using distutils, which is included in "
#~ "Python. Since distutils also supports creation of binary packages, users "
#~ "don't necessarily need a compiler and distutils to install the extension."
#~ msgstr ""
#~ "Des modules d'extension peuvent être construits avec *distutils*, qui est "
#~ "inclus dans Python. Puisque *distutils* gère aussi la création de paquets "
#~ "binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un "
#~ "compilateur ni de *distutils* pour installer l'extension."
#: extending/building.rst:57
msgid ""
"A distutils package contains a driver script, :file:`setup.py`. This is a "
"plain Python file, which, in the most simple case, could look like this:"
msgstr ""
"Un paquet *distutils* contient un script :file:`setup.py`. C'est un simple "
"fichier Python, ressemblant dans la plupart des cas à :"
#~ msgid ""
#~ "A distutils package contains a driver script, :file:`setup.py`. This is a "
#~ "plain Python file, which, in the most simple case, could look like this:"
#~ msgstr ""
#~ "Un paquet *distutils* contient un script :file:`setup.py`. C'est un "
#~ "simple fichier Python, ressemblant dans la plupart des cas à :"
#: extending/building.rst:73
msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::"
msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::"
#~ msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::"
#~ msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::"
#: extending/building.rst:77
msgid ""
"will compile :file:`demo.c`, and produce an extension module named ``demo`` "
"in the :file:`build` directory. Depending on the system, the module file "
"will end up in a subdirectory :file:`build/lib.system`, and may have a name "
"like :file:`demo.so` or :file:`demo.pyd`."
msgstr ""
"compilera :file:`demo.c`, et produira un module d'extension nommé ``demo`` "
"dans le dossier :file:`build`. En fonction du système, le fichier du module "
"peut se retrouver dans :file:`build/lib.system`, et son nom peut être :file:"
"`demo.py` ou :file:`demo.pyd`."
#~ msgid ""
#~ "will compile :file:`demo.c`, and produce an extension module named "
#~ "``demo`` in the :file:`build` directory. Depending on the system, the "
#~ "module file will end up in a subdirectory :file:`build/lib.system`, and "
#~ "may have a name like :file:`demo.so` or :file:`demo.pyd`."
#~ msgstr ""
#~ "compilera :file:`demo.c`, et produira un module d'extension nommé "
#~ "``demo`` dans le dossier :file:`build`. En fonction du système, le "
#~ "fichier du module peut se retrouver dans :file:`build/lib.system`, et son "
#~ "nom peut être :file:`demo.py` ou :file:`demo.pyd`."
#: extending/building.rst:82
msgid ""
"In the :file:`setup.py`, all execution is performed by calling the ``setup`` "
"function. This takes a variable number of keyword arguments, of which the "
"example above uses only a subset. Specifically, the example specifies meta-"
"information to build packages, and it specifies the contents of the "
"package. Normally, a package will contain additional modules, like Python "
"source modules, documentation, subpackages, etc. Please refer to the "
"distutils documentation in :ref:`distutils-index` to learn more about the "
"features of distutils; this section explains building extension modules only."
msgstr ""
"Dans le fichier :file:`setup.py`, tout est exécuté en appelant la fonction "
"``setup``. Elle prend un nombre variable d'arguments nommés, dont l'exemple "
"précédent n'utilise qu'une partie. L'exemple précise des méta-informations "
"pour construire les paquets, et définir le contenu du paquet. Normalement un "
"paquet contient des modules additionnels, comme des modules sources, "
"documentation, sous paquets, etc. Référez-vous à la documentation de "
"*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les "
"fonctionnalités de *distutils*. Cette section n'explique que la construction "
"de modules d'extension."
#~ msgid ""
#~ "In the :file:`setup.py`, all execution is performed by calling the "
#~ "``setup`` function. This takes a variable number of keyword arguments, of "
#~ "which the example above uses only a subset. Specifically, the example "
#~ "specifies meta-information to build packages, and it specifies the "
#~ "contents of the package. Normally, a package will contain additional "
#~ "modules, like Python source modules, documentation, subpackages, etc. "
#~ "Please refer to the distutils documentation in :ref:`distutils-index` to "
#~ "learn more about the features of distutils; this section explains "
#~ "building extension modules only."
#~ msgstr ""
#~ "Dans le fichier :file:`setup.py`, tout est exécuté en appelant la "
#~ "fonction ``setup``. Elle prend un nombre variable d'arguments nommés, "
#~ "dont l'exemple précédent n'utilise qu'une partie. L'exemple précise des "
#~ "méta-informations pour construire les paquets, et définir le contenu du "
#~ "paquet. Normalement un paquet contient des modules additionnels, comme "
#~ "des modules sources, documentation, sous paquets, etc. Référez-vous à la "
#~ "documentation de *distutils* dans :ref:`distutils-index` pour en "
#~ "apprendre plus sur les fonctionnalités de *distutils*. Cette section "
#~ "n'explique que la construction de modules d'extension."
#: extending/building.rst:91
msgid ""
"It is common to pre-compute arguments to :func:`setup`, to better structure "
"the driver script. In the example above, the ``ext_modules`` argument to :"
"func:`~distutils.core.setup` is a list of extension modules, each of which "
"is an instance of the :class:`~distutils.extension.Extension`. In the "
"example, the instance defines an extension named ``demo`` which is build by "
"compiling a single source file, :file:`demo.c`."
msgstr ""
"Il est classique de pré-calculer les arguments à la fonction :func:`setup`, "
"pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument "
"``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules "
"d'extension, chacun est une instance de la classe :class:`~distutils."
"extension.Extension`. Dans l'exemple, l'instance définit une extension "
"nommée ``demo`` construite par la compilation d'un seul fichier source :file:"
"`demo.c`."
#~ msgid ""
#~ "It is common to pre-compute arguments to :func:`setup`, to better "
#~ "structure the driver script. In the example above, the ``ext_modules`` "
#~ "argument to :func:`~distutils.core.setup` is a list of extension modules, "
#~ "each of which is an instance of the :class:`~distutils.extension."
#~ "Extension`. In the example, the instance defines an extension named "
#~ "``demo`` which is build by compiling a single source file, :file:`demo.c`."
#~ msgstr ""
#~ "Il est classique de pré-calculer les arguments à la fonction :func:"
#~ "`setup`, pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument "
#~ "``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules "
#~ "d'extension, chacun est une instance de la classe :class:`~distutils."
#~ "extension.Extension`. Dans l'exemple, l'instance définit une extension "
#~ "nommée ``demo`` construite par la compilation d'un seul fichier source :"
#~ "file:`demo.c`."
#: extending/building.rst:99
msgid ""
"In many cases, building an extension is more complex, since additional "
"preprocessor defines and libraries may be needed. This is demonstrated in "
"the example below."
msgstr ""
"Dans la plupart des cas, construire une extension est plus complexe à cause "
"des bibliothèques et définitions de préprocesseurs dont la compilation "
"pourrait dépendre. C'est ce qu'on remarque dans l'exemple plus bas."
#~ msgid ""
#~ "In many cases, building an extension is more complex, since additional "
#~ "preprocessor defines and libraries may be needed. This is demonstrated in "
#~ "the example below."
#~ msgstr ""
#~ "Dans la plupart des cas, construire une extension est plus complexe à "
#~ "cause des bibliothèques et définitions de préprocesseurs dont la "
#~ "compilation pourrait dépendre. C'est ce qu'on remarque dans l'exemple "
#~ "plus bas."
#: extending/building.rst:127
msgid ""
"In this example, :func:`~distutils.core.setup` is called with additional "
"meta-information, which is recommended when distribution packages have to be "
"built. For the extension itself, it specifies preprocessor defines, include "
"directories, library directories, and libraries. Depending on the compiler, "
"distutils passes this information in different ways to the compiler. For "
"example, on Unix, this may result in the compilation commands ::"
msgstr ""
"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée avec "
"quelques autres méta-informations, ce qui est recommandé pour distribuer des "
"paquets. En ce qui concerne l'extension, sont définis quelques macros "
"préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du "
"compilateur, *distutils* peut donner ces informations de manière différente. "
"Par exemple, sur Unix, ça peut ressembler aux commandes ::"
#~ msgid ""
#~ "In this example, :func:`~distutils.core.setup` is called with additional "
#~ "meta-information, which is recommended when distribution packages have to "
#~ "be built. For the extension itself, it specifies preprocessor defines, "
#~ "include directories, library directories, and libraries. Depending on the "
#~ "compiler, distutils passes this information in different ways to the "
#~ "compiler. For example, on Unix, this may result in the compilation "
#~ "commands ::"
#~ msgstr ""
#~ "Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée "
#~ "avec quelques autres méta-informations, ce qui est recommandé pour "
#~ "distribuer des paquets. En ce qui concerne l'extension, sont définis "
#~ "quelques macros préprocesseur, dossiers pour les en-têtes et "
#~ "bibliothèques. En fonction du compilateur, *distutils* peut donner ces "
#~ "informations de manière différente. Par exemple, sur Unix, ça peut "
#~ "ressembler aux commandes ::"
#: extending/building.rst:139
msgid ""
"These lines are for demonstration purposes only; distutils users should "
"trust that distutils gets the invocations right."
msgstr ""
"Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* "
"doivent avoir confiance en *distutils* qui fera les appels correctement."
#~ msgid ""
#~ "These lines are for demonstration purposes only; distutils users should "
#~ "trust that distutils gets the invocations right."
#~ msgstr ""
#~ "Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* "
#~ "doivent avoir confiance en *distutils* qui fera les appels correctement."
#: extending/building.rst:146
msgid "Distributing your extension modules"
msgstr "Distribuer vos modules d'extension"
#~ msgid "Distributing your extension modules"
#~ msgstr "Distribuer vos modules d'extension"
#: extending/building.rst:148
msgid ""
"When an extension has been successfully built, there are three ways to use "
"it."
msgstr ""
"Lorsqu'une extension a été construite avec succès, il existe trois moyens de "
"l'utiliser."
#~ msgid ""
#~ "When an extension has been successfully built, there are three ways to "
#~ "use it."
#~ msgstr ""
#~ "Lorsqu'une extension a été construite avec succès, il existe trois moyens "
#~ "de l'utiliser."
#: extending/building.rst:150
msgid ""
"End-users will typically want to install the module, they do so by running ::"
msgstr ""
"Typiquement, les utilisateurs vont vouloir installer le module, ils le font "
"en exécutant ::"
#~ msgid ""
#~ "End-users will typically want to install the module, they do so by "
#~ "running ::"
#~ msgstr ""
#~ "Typiquement, les utilisateurs vont vouloir installer le module, ils le "
#~ "font en exécutant ::"
#: extending/building.rst:154
msgid ""
"Module maintainers should produce source packages; to do so, they run ::"
msgstr ""
"Les mainteneurs de modules voudront produire des paquets source, pour ce "
"faire ils exécuteront ::"
#~ msgid ""
#~ "Module maintainers should produce source packages; to do so, they run ::"
#~ msgstr ""
#~ "Les mainteneurs de modules voudront produire des paquets source, pour ce "
#~ "faire ils exécuteront ::"
#: extending/building.rst:158
msgid ""
"In some cases, additional files need to be included in a source "
"distribution; this is done through a :file:`MANIFEST.in` file; see :ref:"
"`manifest` for details."
msgstr ""
"Dans certains cas, des fichiers supplémentaires doivent être inclus dans une "
"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c."
"f. :ref:`manifest`."
#~ msgid ""
#~ "In some cases, additional files need to be included in a source "
#~ "distribution; this is done through a :file:`MANIFEST.in` file; see :ref:"
#~ "`manifest` for details."
#~ msgstr ""
#~ "Dans certains cas, des fichiers supplémentaires doivent être inclus dans "
#~ "une distribution source : c'est possible via un fichier :file:`MANIFEST."
#~ "in`, c.f. :ref:`manifest`."
#~ msgid ""
#~ "If the source distribution has been built successfully, maintainers can "
#~ "also create binary distributions. Depending on the platform, one of the "
#~ "following commands can be used to do so. ::"
#~ msgstr ""
#~ "Si la distribution source a été construite avec succès, les mainteneurs "
#~ "peuvent aussi créer une distribution binaire. En fonction de la "
#~ "plateforme, une des commandes suivantes peut être utilisée. ::"
#: extending/building.rst:161
msgid ""
"If the source distribution has been built successfully, maintainers can also "
"create binary distributions. Depending on the platform, one of the following "
"commands can be used to do so. ::"
msgstr ""
"Si la distribution source a été construite avec succès, les mainteneurs "
"peuvent aussi créer une distribution binaire. En fonction de la plateforme, "
"une des commandes suivantes peut être utilisée. ::"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -605,8 +605,9 @@ msgstr ""
"fournies plus bas."
#: extending/extending.rst:338
#, fuzzy
msgid ""
"The :const:`METH_KEYWORDS` bit may be set in the third field if keyword "
"The :c:macro:`METH_KEYWORDS` bit may be set in the third field if keyword "
"arguments should be passed to the function. In this case, the C function "
"should accept a third ``PyObject *`` parameter which will be a dictionary of "
"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments "
@ -798,8 +799,9 @@ msgid ""
msgstr ""
#: extending/extending.rst:529
#, fuzzy
msgid ""
"This function must be registered with the interpreter using the :const:"
"This function must be registered with the interpreter using the :c:macro:"
"`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :"
"c:func:`PyArg_ParseTuple` function and its arguments are documented in "
"section :ref:`parsetuple`."
@ -1838,3 +1840,19 @@ msgstr ""
"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de "
"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code "
"existant."
#: extending/extending.rst:539
msgid "PyObject_CallObject()"
msgstr ""
#: extending/extending.rst:630
msgid "PyArg_ParseTuple()"
msgstr ""
#: extending/extending.rst:722
msgid "PyArg_ParseTupleAndKeywords()"
msgstr ""
#: extending/extending.rst:743
msgid "Philbrick, Geoff"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-02-07 20:03+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -287,14 +287,55 @@ msgstr ""
msgid ""
"For each entry in the table, a :term:`descriptor` will be constructed and "
"added to the type which will be able to extract a value from the instance "
"structure. The :attr:`type` field should contain a type code like :c:macro:"
"`Py_T_INT` or :c:macro:`Py_T_DOUBLE`; the value will be used to determine "
"how to convert Python values to and from C values. The :attr:`flags` field "
"is used to store flags which control how the attribute can be accessed: you "
"can set it to :c:macro:`Py_READONLY` to prevent Python code from setting it."
"structure. The :attr:`type` field should contain one of the type codes "
"defined in the :file:`structmember.h` header; the value will be used to "
"determine how to convert Python values to and from C values. The :attr:"
"`flags` field is used to store flags which control how the attribute can be "
"accessed."
msgstr ""
#: extending/newtypes.rst:295
#: extending/newtypes.rst:294
msgid ""
"The following flag constants are defined in :file:`structmember.h`; they may "
"be combined using bitwise-OR."
msgstr ""
#: extending/newtypes.rst:298
msgid "Constant"
msgstr "Constante"
#: extending/newtypes.rst:298
msgid "Meaning"
msgstr "Signification"
#: extending/newtypes.rst:300
msgid ":const:`READONLY`"
msgstr ":const:`READONLY`"
#: extending/newtypes.rst:300
msgid "Never writable."
msgstr "Jamais disponible en écriture."
#: extending/newtypes.rst:302
#, fuzzy
msgid ":const:`PY_AUDIT_READ`"
msgstr ":const:`READONLY`"
#: extending/newtypes.rst:302
msgid ""
"Emit an ``object.__getattr__`` :ref:`audit events <audit-events>` before "
"reading."
msgstr ""
#: extending/newtypes.rst:307
msgid ""
":const:`RESTRICTED`, :const:`READ_RESTRICTED` and :const:`WRITE_RESTRICTED` "
"are deprecated. However, :const:`READ_RESTRICTED` is an alias for :const:"
"`PY_AUDIT_READ`, so fields that specify either :const:`RESTRICTED` or :const:"
"`READ_RESTRICTED` will also raise an audit event."
msgstr ""
#: extending/newtypes.rst:320
msgid ""
"An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` "
"table to build descriptors that are used at runtime is that any attribute "
@ -311,17 +352,17 @@ msgstr ""
"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` "
"pour renvoyer le *docstring*."
#: extending/newtypes.rst:301
#: extending/newtypes.rst:326
msgid ""
"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry "
"with a :attr:`name` value of ``NULL`` is required."
msgstr ""
#: extending/newtypes.rst:315
#: extending/newtypes.rst:340
msgid "Type-specific Attribute Management"
msgstr "Gestion des attributs de type spécifiques"
#: extending/newtypes.rst:317
#: extending/newtypes.rst:342
msgid ""
"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:"
@ -332,18 +373,18 @@ msgid ""
"functionality, you'll understand what needs to be done."
msgstr ""
#: extending/newtypes.rst:325
#: extending/newtypes.rst:350
msgid ""
"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object "
"requires an attribute look-up. It is called in the same situations where "
"the :meth:`__getattr__` method of a class would be called."
msgstr ""
#: extending/newtypes.rst:329
#: extending/newtypes.rst:354
msgid "Here is an example::"
msgstr "Voici un exemple ::"
#: extending/newtypes.rst:345
#: extending/newtypes.rst:370
msgid ""
"The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:"
"`__setattr__` or :meth:`__delattr__` method of a class instance would be "
@ -353,11 +394,11 @@ msgid ""
"should be set to ``NULL``. ::"
msgstr ""
#: extending/newtypes.rst:359
#: extending/newtypes.rst:384
msgid "Object Comparison"
msgstr "Comparaison des objets"
#: extending/newtypes.rst:365
#: extending/newtypes.rst:390
msgid ""
"The :c:member:`~PyTypeObject.tp_richcompare` handler is called when "
"comparisons are needed. It is analogous to the :ref:`rich comparison "
@ -365,7 +406,7 @@ msgid ""
"`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`."
msgstr ""
#: extending/newtypes.rst:370
#: extending/newtypes.rst:395
msgid ""
"This function is called with two Python objects and the operator as "
"arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, "
@ -376,23 +417,23 @@ msgid ""
"should be tried, or ``NULL`` if an exception was set."
msgstr ""
#: extending/newtypes.rst:378
#: extending/newtypes.rst:403
msgid ""
"Here is a sample implementation, for a datatype that is considered equal if "
"the size of an internal pointer is equal::"
msgstr ""
#: extending/newtypes.rst:408
#: extending/newtypes.rst:433
msgid "Abstract Protocol Support"
msgstr "Support pour le protocole abstrait"
#: extending/newtypes.rst:410
#: extending/newtypes.rst:435
msgid ""
"Python supports a variety of *abstract* 'protocols;' the specific interfaces "
"provided to use these interfaces are documented in :ref:`abstract`."
msgstr ""
#: extending/newtypes.rst:414
#: extending/newtypes.rst:439
msgid ""
"A number of these abstract interfaces were defined early in the development "
"of the Python implementation. In particular, the number, mapping, and "
@ -407,7 +448,7 @@ msgid ""
"slot, but a slot may still be unfilled.) ::"
msgstr ""
#: extending/newtypes.rst:429
#: extending/newtypes.rst:454
msgid ""
"If you wish your object to be able to act like a number, a sequence, or a "
"mapping object, then you place the address of a structure that implements "
@ -418,13 +459,13 @@ msgid ""
"distribution. ::"
msgstr ""
#: extending/newtypes.rst:438
#: extending/newtypes.rst:463
msgid ""
"This function, if you choose to provide it, should return a hash number for "
"an instance of your data type. Here is a simple example::"
msgstr ""
#: extending/newtypes.rst:451
#: extending/newtypes.rst:476
msgid ""
":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. "
"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, "
@ -432,7 +473,7 @@ msgid ""
"computation is successful, as seen above."
msgstr ""
#: extending/newtypes.rst:460
#: extending/newtypes.rst:485
msgid ""
"This function is called when an instance of your data type is \"called\", "
"for example, if ``obj1`` is an instance of your data type and the Python "
@ -440,23 +481,23 @@ msgid ""
"handler is invoked."
msgstr ""
#: extending/newtypes.rst:464
#: extending/newtypes.rst:489
msgid "This function takes three arguments:"
msgstr "Cette fonction prend trois arguments :"
#: extending/newtypes.rst:466
#: extending/newtypes.rst:491
msgid ""
"*self* is the instance of the data type which is the subject of the call. If "
"the call is ``obj1('hello')``, then *self* is ``obj1``."
msgstr ""
#: extending/newtypes.rst:469
#: extending/newtypes.rst:494
msgid ""
"*args* is a tuple containing the arguments to the call. You can use :c:func:"
"`PyArg_ParseTuple` to extract the arguments."
msgstr ""
#: extending/newtypes.rst:472
#: extending/newtypes.rst:497
msgid ""
"*kwds* is a dictionary of keyword arguments that were passed. If this is non-"
"``NULL`` and you support keyword arguments, use :c:func:"
@ -465,11 +506,11 @@ msgid ""
"`TypeError` with a message saying that keyword arguments are not supported."
msgstr ""
#: extending/newtypes.rst:478
#: extending/newtypes.rst:503
msgid "Here is a toy ``tp_call`` implementation::"
msgstr "Ceci est une implémentation ``tp_call`` très simple ::"
#: extending/newtypes.rst:504
#: extending/newtypes.rst:529
msgid ""
"These functions provide support for the iterator protocol. Both handlers "
"take exactly one parameter, the instance for which they are being called, "
@ -480,7 +521,7 @@ msgid ""
"__next__` method."
msgstr ""
#: extending/newtypes.rst:511
#: extending/newtypes.rst:536
msgid ""
"Any :term:`iterable` object must implement the :c:member:`~PyTypeObject."
"tp_iter` handler, which must return an :term:`iterator` object. Here the "
@ -491,7 +532,7 @@ msgstr ""
"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que "
"pour les classes *Python* :"
#: extending/newtypes.rst:515
#: extending/newtypes.rst:540
msgid ""
"For collections (such as lists and tuples) which can support multiple "
"independent iterators, a new iterator should be created and returned by each "
@ -501,7 +542,7 @@ msgstr ""
"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être "
"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`."
#: extending/newtypes.rst:518
#: extending/newtypes.rst:543
msgid ""
"Objects which can only be iterated over once (usually due to side effects of "
"iteration, such as file objects) can implement :c:member:`~PyTypeObject."
@ -509,7 +550,7 @@ msgid ""
"therefore implement the :c:member:`~PyTypeObject.tp_iternext` handler."
msgstr ""
#: extending/newtypes.rst:523
#: extending/newtypes.rst:548
msgid ""
"Any :term:`iterator` object should implement both :c:member:`~PyTypeObject."
"tp_iter` and :c:member:`~PyTypeObject.tp_iternext`. An iterator's :c:member:"
@ -524,11 +565,11 @@ msgid ""
"``NULL``."
msgstr ""
#: extending/newtypes.rst:539
#: extending/newtypes.rst:564
msgid "Weak Reference Support"
msgstr "Prise en charge de la référence faible"
#: extending/newtypes.rst:541
#: extending/newtypes.rst:566
msgid ""
"One of the goals of Python's weak reference implementation is to allow any "
"type to participate in the weak reference mechanism without incurring the "
@ -539,40 +580,72 @@ msgstr ""
"faible sans avoir à supporter le surcoût de la performance critique des "
"certains objets, tels que les nombres."
#: extending/newtypes.rst:546
#: extending/newtypes.rst:571
msgid "Documentation for the :mod:`weakref` module."
msgstr "Documentation pour le module :mod:`weakref`."
#: extending/newtypes.rst:548
#: extending/newtypes.rst:573
msgid ""
"For an object to be weakly referencable, the extension type must set the "
"``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` "
"field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should "
"be left as zero."
"For an object to be weakly referencable, the extension type must do two "
"things:"
msgstr ""
"Pour qu'un objet soit faiblement référençable, le type d'extension doit "
"faire deux choses :"
#: extending/newtypes.rst:553
#: extending/newtypes.rst:575
#, fuzzy
msgid ""
"Concretely, here is how the statically declared type object would look::"
"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`)."
msgstr ""
"Inclure un champ :c:type:`PyObject\\*` dans la structure d'objet C dédiée au "
"mécanisme de référence faible. Le constructeur de l'objet doit le laisser à "
"la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise le champ par "
"défaut :c:member:`~PyTypeObject.tp_alloc`)."
#: extending/newtypes.rst:580
msgid ""
"Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the "
"offset of the aforementioned field in the C object structure, so that the "
"interpreter knows how to access and modify that field."
msgstr ""
"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à "
"la valeur de décalage (*offset*) du champ susmentionné dans la structure de "
"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le "
"modifier."
#: extending/newtypes.rst:584
msgid ""
"Concretely, here is how a trivial object structure would be augmented with "
"the required field::"
msgstr ""
"Concrètement, voici comment une structure d'objet simple serait complétée "
"par le champ requis ::"
#: extending/newtypes.rst:592
#, 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 ::"
#: extending/newtypes.rst:562
#: extending/newtypes.rst:600
#, fuzzy
msgid ""
"The only further addition is that ``tp_dealloc`` needs to clear any weak "
"references (by calling :c:func:`PyObject_ClearWeakRefs`)::"
"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-"
"``NULL``::"
msgstr ""
"Le seul ajout supplémentaire est que ``tp_dealloc`` doit effacer toute "
"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ "
"est non ``NULL`` ::"
#: extending/newtypes.rst:576
#: extending/newtypes.rst:616
msgid "More Suggestions"
msgstr "Plus de suggestions"
#: extending/newtypes.rst:578
#: extending/newtypes.rst:618
msgid ""
"In order to learn how to implement any specific method for your new data "
"type, get the :term:`CPython` source code. Go to the :file:`Objects` "
@ -587,7 +660,7 @@ msgstr ""
"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous "
"voulez implémenter."
#: extending/newtypes.rst:584
#: extending/newtypes.rst:624
msgid ""
"When you need to verify that an object is a concrete instance of the type "
"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A "
@ -597,90 +670,99 @@ msgstr ""
"du type que vous implémentez, utilisez la fonction :c:func:"
"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::"
#: extending/newtypes.rst:595
#: extending/newtypes.rst:635
msgid "Download CPython source releases."
msgstr "Télécharger les versions sources de *CPython*."
#: extending/newtypes.rst:595
#: extending/newtypes.rst:635
msgid "https://www.python.org/downloads/source/"
msgstr "https://www.python.org/downloads/source/"
#: extending/newtypes.rst:597
#: extending/newtypes.rst:637
msgid ""
"The CPython project on GitHub, where the CPython source code is developed."
msgstr ""
"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*."
#: extending/newtypes.rst:598
#: extending/newtypes.rst:638
msgid "https://github.com/python/cpython"
msgstr "https://github.com/python/cpython"
#~ msgid "Constant"
#~ msgstr "Constante"
#: extending/newtypes.rst:56
msgid "object"
msgstr ""
#~ msgid "Meaning"
#~ msgstr "Signification"
#: extending/newtypes.rst:56
msgid "deallocation"
msgstr ""
#~ msgid ":const:`READONLY`"
#~ msgstr ":const:`READONLY`"
#: extending/newtypes.rst:56
msgid "deallocation, object"
msgstr ""
#~ msgid "Never writable."
#~ msgstr "Jamais disponible en écriture."
#: extending/newtypes.rst:56
msgid "finalization"
msgstr ""
#: extending/newtypes.rst:56
msgid "finalization, of objects"
msgstr ""
#: extending/newtypes.rst:91
msgid "PyErr_Fetch()"
msgstr ""
#: extending/newtypes.rst:91
msgid "PyErr_Restore()"
msgstr ""
#: extending/newtypes.rst:150
msgid "string"
msgstr ""
#: extending/newtypes.rst:150
#, fuzzy
#~ msgid ":const:`PY_AUDIT_READ`"
#~ msgstr ":const:`READONLY`"
msgid "object representation"
msgstr "Présentation de l'objet"
#~ msgid ""
#~ "For an object to be weakly referencable, the extension type must do two "
#~ "things:"
#~ msgstr ""
#~ "Pour qu'un objet soit faiblement référençable, le type d'extension doit "
#~ "faire deux choses :"
#: extending/newtypes.rst:150
msgid "built-in function"
msgstr ""
#: extending/newtypes.rst:150
msgid "repr"
msgstr ""
#: extending/newtypes.rst:313
#, fuzzy
#~ msgid ""
#~ "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`)."
#~ msgstr ""
#~ "Inclure un champ :c:type:`PyObject\\*` dans la structure d'objet C dédiée "
#~ "au mécanisme de référence faible. Le constructeur de l'objet doit le "
#~ "laisser à la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise "
#~ "le champ par défaut :c:member:`~PyTypeObject.tp_alloc`)."
msgid "READONLY"
msgstr ":const:`READONLY`"
#~ msgid ""
#~ "Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the "
#~ "offset of the aforementioned field in the C object structure, so that the "
#~ "interpreter knows how to access and modify that field."
#~ msgstr ""
#~ "Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` "
#~ "à la valeur de décalage (*offset*) du champ susmentionné dans la "
#~ "structure de l'objet *C*, afin que l'interpréteur sache comment accéder à "
#~ "ce champ et le modifier."
#: extending/newtypes.rst:313
#, fuzzy
msgid "READ_RESTRICTED"
msgstr ":const:`READ_RESTRICTED`"
#~ msgid ""
#~ "Concretely, here is how a trivial object structure would be augmented "
#~ "with the required field::"
#~ msgstr ""
#~ "Concrètement, voici comment une structure d'objet simple serait complétée "
#~ "par le champ requis ::"
#: extending/newtypes.rst:313
#, fuzzy
msgid "WRITE_RESTRICTED"
msgstr ":const:`WRITE_RESTRICTED`"
#~ msgid ":const:`READ_RESTRICTED`"
#~ msgstr ":const:`READ_RESTRICTED`"
#: extending/newtypes.rst:313
#, fuzzy
msgid "RESTRICTED"
msgstr ":const:`RESTRICTED`"
#: extending/newtypes.rst:313
#, fuzzy
msgid "PY_AUDIT_READ"
msgstr ":const:`READONLY`"
#~ msgid "Not readable in restricted mode."
#~ msgstr "Non disponible en lecture, dans le mode restreint."
#~ msgid ":const:`WRITE_RESTRICTED`"
#~ msgstr ":const:`WRITE_RESTRICTED`"
#~ msgid "Not writable in restricted mode."
#~ msgstr "Non disponible en écriture dans le mode restreint."
#~ msgid ":const:`RESTRICTED`"
#~ msgstr ":const:`RESTRICTED`"
#~ msgid "Not readable or writable in restricted mode."
#~ msgstr "Non disponible en lecture ou écriture, en mode restreint."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -263,7 +263,8 @@ msgstr ""
"augmentant ainsi sa taille)."
#: extending/newtypes_tutorial.rst:154
msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::"
#, fuzzy
msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::"
msgstr ""
"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de "
"type. ::"
@ -381,6 +382,16 @@ msgid "This version of the module has a number of changes."
msgstr ""
#: extending/newtypes_tutorial.rst:242
msgid "We've added an extra include::"
msgstr ""
#: extending/newtypes_tutorial.rst:246
msgid ""
"This include provides declarations that we use to handle attributes, as "
"described a bit later."
msgstr ""
#: extending/newtypes_tutorial.rst:249
msgid ""
"The :class:`Custom` type now has three data attributes in its C struct, "
"*first*, *last*, and *number*. The *first* and *last* variables are Python "
@ -388,21 +399,21 @@ msgid ""
"integer."
msgstr ""
#: extending/newtypes_tutorial.rst:246
#: extending/newtypes_tutorial.rst:253
msgid "The object structure is updated accordingly::"
msgstr ""
#: extending/newtypes_tutorial.rst:255
#: extending/newtypes_tutorial.rst:262
msgid ""
"Because we now have data to manage, we have to be more careful about object "
"allocation and deallocation. At a minimum, we need a deallocation method::"
msgstr ""
#: extending/newtypes_tutorial.rst:266
#: extending/newtypes_tutorial.rst:273
msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::"
msgstr ""
#: extending/newtypes_tutorial.rst:270
#: extending/newtypes_tutorial.rst:277
msgid ""
"This method first clears the reference counts of the two Python attributes. :"
"c:func:`Py_XDECREF` correctly handles the case where its argument is "
@ -413,7 +424,7 @@ msgid ""
"instance of a subclass."
msgstr ""
#: extending/newtypes_tutorial.rst:279
#: extending/newtypes_tutorial.rst:286
msgid ""
"The explicit cast to ``destructor`` above is needed because we defined "
"``Custom_dealloc`` to take a ``CustomObject *`` argument, but the "
@ -422,17 +433,17 @@ msgid ""
"oriented polymorphism, in C!"
msgstr ""
#: extending/newtypes_tutorial.rst:285
#: extending/newtypes_tutorial.rst:292
msgid ""
"We want to make sure that the first and last names are initialized to empty "
"strings, so we provide a ``tp_new`` implementation::"
msgstr ""
#: extending/newtypes_tutorial.rst:309
#: extending/newtypes_tutorial.rst:316
msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::"
msgstr ""
#: extending/newtypes_tutorial.rst:313
#: extending/newtypes_tutorial.rst:320
msgid ""
"The ``tp_new`` handler is responsible for creating (as opposed to "
"initializing) objects of the type. It is exposed in Python as the :meth:"
@ -443,7 +454,7 @@ msgid ""
"attributes to non-``NULL`` default values."
msgstr ""
#: extending/newtypes_tutorial.rst:321
#: extending/newtypes_tutorial.rst:328
msgid ""
"``tp_new`` is passed the type being instantiated (not necessarily "
"``CustomType``, if a subclass is instantiated) and any arguments passed when "
@ -453,25 +464,25 @@ msgid ""
"k.a. ``tp_init`` in C or ``__init__`` in Python) methods."
msgstr ""
#: extending/newtypes_tutorial.rst:329
#: extending/newtypes_tutorial.rst:336
msgid ""
"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do "
"it itself."
msgstr ""
#: extending/newtypes_tutorial.rst:332
#: extending/newtypes_tutorial.rst:339
msgid ""
"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` "
"slot to allocate memory::"
msgstr ""
#: extending/newtypes_tutorial.rst:337
#: extending/newtypes_tutorial.rst:344
msgid ""
"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject."
"tp_alloc` result against ``NULL`` before proceeding."
msgstr ""
#: extending/newtypes_tutorial.rst:341
#: extending/newtypes_tutorial.rst:348
msgid ""
"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. "
"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base "
@ -479,7 +490,7 @@ msgid ""
"allocation strategy."
msgstr ""
#: extending/newtypes_tutorial.rst:347
#: extending/newtypes_tutorial.rst:354
msgid ""
"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one "
"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:"
@ -492,17 +503,17 @@ msgid ""
"subclasses without getting a :exc:`TypeError`.)"
msgstr ""
#: extending/newtypes_tutorial.rst:357
#: extending/newtypes_tutorial.rst:364
msgid ""
"We also define an initialization function which accepts arguments to provide "
"initial values for our instance::"
msgstr ""
#: extending/newtypes_tutorial.rst:386
#: extending/newtypes_tutorial.rst:393
msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:390
#: extending/newtypes_tutorial.rst:397
msgid ""
"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:"
"`__init__` method. It is used to initialize an object after it's created. "
@ -510,7 +521,7 @@ msgid ""
"return either ``0`` on success or ``-1`` on error."
msgstr ""
#: extending/newtypes_tutorial.rst:395
#: extending/newtypes_tutorial.rst:402
msgid ""
"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is "
"called at all (for example, the :mod:`pickle` module by default doesn't "
@ -521,7 +532,7 @@ msgid ""
"``first`` member like this::"
msgstr ""
#: extending/newtypes_tutorial.rst:409
#: extending/newtypes_tutorial.rst:416
msgid ""
"But this would be risky. Our type doesn't restrict the type of the "
"``first`` member, so it could be any kind of object. It could have a "
@ -531,49 +542,49 @@ msgid ""
"accesses and modifies our object."
msgstr ""
#: extending/newtypes_tutorial.rst:416
#: extending/newtypes_tutorial.rst:423
msgid ""
"To be paranoid and protect ourselves against this possibility, we almost "
"always reassign members before decrementing their reference counts. When "
"don't we have to do this?"
msgstr ""
#: extending/newtypes_tutorial.rst:420
#: extending/newtypes_tutorial.rst:427
msgid "when we absolutely know that the reference count is greater than 1;"
msgstr ""
#: extending/newtypes_tutorial.rst:422
#: extending/newtypes_tutorial.rst:429
msgid ""
"when we know that deallocation of the object [#]_ will neither release the :"
"term:`GIL` nor cause any calls back into our type's code;"
msgstr ""
#: extending/newtypes_tutorial.rst:425
#: extending/newtypes_tutorial.rst:432
msgid ""
"when decrementing a reference count in a :c:member:`~PyTypeObject."
"tp_dealloc` handler on a type which doesn't support cyclic garbage "
"collection [#]_."
msgstr ""
#: extending/newtypes_tutorial.rst:428
#: extending/newtypes_tutorial.rst:435
msgid ""
"We want to expose our instance variables as attributes. There are a number "
"of ways to do that. The simplest way is to define member definitions::"
msgstr ""
#: extending/newtypes_tutorial.rst:441
#: extending/newtypes_tutorial.rst:448
msgid ""
"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:445
#: extending/newtypes_tutorial.rst:452
msgid ""
"Each member definition has a member name, type, offset, access flags and "
"documentation string. See the :ref:`Generic-Attribute-Management` section "
"below for details."
msgstr ""
#: extending/newtypes_tutorial.rst:449
#: extending/newtypes_tutorial.rst:456
msgid ""
"A disadvantage of this approach is that it doesn't provide a way to restrict "
"the types of objects that can be assigned to the Python attributes. We "
@ -584,13 +595,13 @@ msgid ""
"deleted."
msgstr ""
#: extending/newtypes_tutorial.rst:456
#: extending/newtypes_tutorial.rst:463
msgid ""
"We define a single method, :meth:`Custom.name()`, that outputs the objects "
"name as the concatenation of the first and last names. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:473
#: extending/newtypes_tutorial.rst:480
msgid ""
"The method is implemented as a C function that takes a :class:`Custom` (or :"
"class:`Custom` subclass) instance as the first argument. Methods always "
@ -600,7 +611,7 @@ msgid ""
"method is equivalent to the Python method:"
msgstr ""
#: extending/newtypes_tutorial.rst:485
#: extending/newtypes_tutorial.rst:492
msgid ""
"Note that we have to check for the possibility that our :attr:`first` and :"
"attr:`last` members are ``NULL``. This is because they can be deleted, in "
@ -609,46 +620,46 @@ msgid ""
"We'll see how to do that in the next section."
msgstr ""
#: extending/newtypes_tutorial.rst:491
#: extending/newtypes_tutorial.rst:498
msgid ""
"Now that we've defined the method, we need to create an array of method "
"definitions::"
msgstr ""
#: extending/newtypes_tutorial.rst:501
#: extending/newtypes_tutorial.rst:508
msgid ""
"(note that we used the :const:`METH_NOARGS` flag to indicate that the method "
"is expecting no arguments other than *self*)"
"(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the "
"method is expecting no arguments other than *self*)"
msgstr ""
#: extending/newtypes_tutorial.rst:504
#: extending/newtypes_tutorial.rst:511
msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:508
#: extending/newtypes_tutorial.rst:515
msgid ""
"Finally, we'll make our type usable as a base class for subclassing. We've "
"written our methods carefully so far so that they don't make any assumptions "
"about the type of the object being created or used, so all we need to do is "
"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::"
"to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::"
msgstr ""
#: extending/newtypes_tutorial.rst:515
#: extending/newtypes_tutorial.rst:522
msgid ""
"We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the "
"module name in the :c:type:`PyModuleDef` struct, and update the full class "
"name in the :c:type:`PyTypeObject` struct."
msgstr ""
#: extending/newtypes_tutorial.rst:519
#: extending/newtypes_tutorial.rst:526
msgid "Finally, we update our :file:`setup.py` file to build the new module:"
msgstr ""
#: extending/newtypes_tutorial.rst:532
#: extending/newtypes_tutorial.rst:539
msgid "Providing finer control over data attributes"
msgstr ""
#: extending/newtypes_tutorial.rst:534
#: extending/newtypes_tutorial.rst:541
msgid ""
"In this section, we'll provide finer control over how the :attr:`first` and :"
"attr:`last` attributes are set in the :class:`Custom` example. In the "
@ -657,14 +668,14 @@ msgid ""
"make sure that these attributes always contain strings."
msgstr ""
#: extending/newtypes_tutorial.rst:543
#: extending/newtypes_tutorial.rst:550
msgid ""
"To provide greater control, over the :attr:`first` and :attr:`last` "
"attributes, we'll use custom getter and setter functions. Here are the "
"functions for getting and setting the :attr:`first` attribute::"
msgstr ""
#: extending/newtypes_tutorial.rst:574
#: extending/newtypes_tutorial.rst:581
msgid ""
"The getter function is passed a :class:`Custom` object and a \"closure\", "
"which is a void pointer. In this case, the closure is ignored. (The "
@ -674,7 +685,7 @@ msgid ""
"data in the closure.)"
msgstr ""
#: extending/newtypes_tutorial.rst:580
#: extending/newtypes_tutorial.rst:587
msgid ""
"The setter function is passed the :class:`Custom` object, the new value, and "
"the closure. The new value may be ``NULL``, in which case the attribute is "
@ -682,32 +693,32 @@ msgid ""
"or if its new value is not a string."
msgstr ""
#: extending/newtypes_tutorial.rst:585
#: extending/newtypes_tutorial.rst:592
msgid "We create an array of :c:type:`PyGetSetDef` structures::"
msgstr ""
#: extending/newtypes_tutorial.rst:595
#: extending/newtypes_tutorial.rst:602
msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::"
msgstr ""
#: extending/newtypes_tutorial.rst:599
#: extending/newtypes_tutorial.rst:606
msgid ""
"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" "
"mentioned above. In this case, we aren't using a closure, so we just pass "
"``NULL``."
msgstr ""
#: extending/newtypes_tutorial.rst:602
#: extending/newtypes_tutorial.rst:609
msgid "We also remove the member definitions for these attributes::"
msgstr ""
#: extending/newtypes_tutorial.rst:610
#: extending/newtypes_tutorial.rst:617
msgid ""
"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only "
"allow strings [#]_ to be passed::"
msgstr ""
#: extending/newtypes_tutorial.rst:639
#: extending/newtypes_tutorial.rst:646
msgid ""
"With these changes, we can assure that the ``first`` and ``last`` members "
"are never ``NULL`` so we can remove checks for ``NULL`` values in almost all "
@ -717,25 +728,25 @@ msgid ""
"possibility that the initialization of these members failed in ``tp_new``."
msgstr ""
#: extending/newtypes_tutorial.rst:646
#: extending/newtypes_tutorial.rst:653
msgid ""
"We also rename the module initialization function and module name in the "
"initialization function, as we did before, and we add an extra definition to "
"the :file:`setup.py` file."
msgstr ""
#: extending/newtypes_tutorial.rst:652
#: extending/newtypes_tutorial.rst:659
msgid "Supporting cyclic garbage collection"
msgstr ""
#: extending/newtypes_tutorial.rst:654
#: extending/newtypes_tutorial.rst:661
msgid ""
"Python has a :term:`cyclic garbage collector (GC) <garbage collection>` that "
"can identify unneeded objects even when their reference counts are not zero. "
"This can happen when objects are involved in cycles. For example, consider:"
msgstr ""
#: extending/newtypes_tutorial.rst:664
#: extending/newtypes_tutorial.rst:671
msgid ""
"In this example, we create a list that contains itself. When we delete it, "
"it still has a reference from itself. Its reference count doesn't drop to "
@ -743,7 +754,7 @@ msgid ""
"out that the list is garbage and free it."
msgstr ""
#: extending/newtypes_tutorial.rst:669
#: extending/newtypes_tutorial.rst:676
msgid ""
"In the second version of the :class:`Custom` example, we allowed any kind of "
"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. "
@ -752,7 +763,7 @@ msgid ""
"reasons, :class:`Custom` objects can participate in cycles:"
msgstr ""
#: extending/newtypes_tutorial.rst:683
#: extending/newtypes_tutorial.rst:690
msgid ""
"To allow a :class:`Custom` instance participating in a reference cycle to be "
"properly detected and collected by the cyclic GC, our :class:`Custom` type "
@ -760,13 +771,13 @@ msgid ""
"slots:"
msgstr ""
#: extending/newtypes_tutorial.rst:690
#: extending/newtypes_tutorial.rst:697
msgid ""
"First, the traversal method lets the cyclic GC know about subobjects that "
"could participate in cycles::"
msgstr ""
#: extending/newtypes_tutorial.rst:710
#: extending/newtypes_tutorial.rst:717
msgid ""
"For each subobject that can participate in cycles, we need to call the :c:"
"func:`visit` function, which is passed to the traversal method. The :c:func:"
@ -775,26 +786,26 @@ msgid ""
"be returned if it is non-zero."
msgstr ""
#: extending/newtypes_tutorial.rst:716
#: extending/newtypes_tutorial.rst:723
msgid ""
"Python provides a :c:func:`Py_VISIT` macro that automates calling visit "
"functions. With :c:func:`Py_VISIT`, we can minimize the amount of "
"boilerplate in ``Custom_traverse``::"
msgstr ""
#: extending/newtypes_tutorial.rst:729
#: extending/newtypes_tutorial.rst:736
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its "
"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`."
msgstr ""
#: extending/newtypes_tutorial.rst:732
#: extending/newtypes_tutorial.rst:739
msgid ""
"Second, we need to provide a method for clearing any subobjects that can "
"participate in cycles::"
msgstr ""
#: extending/newtypes_tutorial.rst:743
#: extending/newtypes_tutorial.rst:750
msgid ""
"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and "
"safe way to clear data attributes of arbitrary types while decrementing "
@ -804,18 +815,18 @@ msgid ""
"again (*especially* if there is a reference cycle)."
msgstr ""
#: extending/newtypes_tutorial.rst:751
#: extending/newtypes_tutorial.rst:758
msgid "You could emulate :c:func:`Py_CLEAR` by writing::"
msgstr ""
#: extending/newtypes_tutorial.rst:758
#: extending/newtypes_tutorial.rst:765
msgid ""
"Nevertheless, it is much easier and less error-prone to always use :c:func:"
"`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the "
"expense of robustness!"
msgstr ""
#: extending/newtypes_tutorial.rst:762
#: extending/newtypes_tutorial.rst:769
msgid ""
"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing "
"attributes. It means the circular GC can be triggered inside the function. "
@ -825,12 +836,12 @@ msgid ""
"`PyObject_GC_UnTrack` and ``Custom_clear``::"
msgstr ""
#: extending/newtypes_tutorial.rst:777
#: extending/newtypes_tutorial.rst:784
msgid ""
"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::"
"Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::"
msgstr ""
#: extending/newtypes_tutorial.rst:781
#: extending/newtypes_tutorial.rst:788
msgid ""
"That's pretty much it. If we had written custom :c:member:`~PyTypeObject."
"tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify "
@ -838,11 +849,11 @@ msgid ""
"automatically provided."
msgstr ""
#: extending/newtypes_tutorial.rst:787
#: extending/newtypes_tutorial.rst:794
msgid "Subclassing other types"
msgstr ""
#: extending/newtypes_tutorial.rst:789
#: extending/newtypes_tutorial.rst:796
msgid ""
"It is possible to create new extension types that are derived from existing "
"types. It is easiest to inherit from the built in types, since an extension "
@ -850,7 +861,7 @@ msgid ""
"share these :c:type:`PyTypeObject` structures between extension modules."
msgstr ""
#: extending/newtypes_tutorial.rst:794
#: extending/newtypes_tutorial.rst:801
msgid ""
"In this example we will create a :class:`SubList` type that inherits from "
"the built-in :class:`list` type. The new type will be completely compatible "
@ -858,34 +869,34 @@ msgid ""
"that increases an internal counter:"
msgstr ""
#: extending/newtypes_tutorial.rst:814
#: extending/newtypes_tutorial.rst:821
msgid ""
"As you can see, the source code closely resembles the :class:`Custom` "
"examples in previous sections. We will break down the main differences "
"between them. ::"
msgstr ""
#: extending/newtypes_tutorial.rst:822
#: extending/newtypes_tutorial.rst:829
msgid ""
"The primary difference for derived type objects is that the base type's "
"object structure must be the first value. The base type will already "
"include the :c:func:`PyObject_HEAD` at the beginning of its structure."
msgstr ""
#: extending/newtypes_tutorial.rst:826
#: extending/newtypes_tutorial.rst:833
msgid ""
"When a Python object is a :class:`SubList` instance, its ``PyObject *`` "
"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject "
"*``::"
msgstr ""
#: extending/newtypes_tutorial.rst:838
#: extending/newtypes_tutorial.rst:845
msgid ""
"We see above how to call through to the :attr:`__init__` method of the base "
"type."
msgstr ""
#: extending/newtypes_tutorial.rst:841
#: extending/newtypes_tutorial.rst:848
msgid ""
"This pattern is important when writing a type with custom :c:member:"
"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. "
@ -894,7 +905,7 @@ msgid ""
"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`."
msgstr ""
#: extending/newtypes_tutorial.rst:847
#: extending/newtypes_tutorial.rst:854
msgid ""
"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject."
"tp_base` specifying the type's concrete base class. Due to cross-platform "
@ -903,7 +914,7 @@ msgid ""
"function::"
msgstr ""
#: extending/newtypes_tutorial.rst:875
#: extending/newtypes_tutorial.rst:882
msgid ""
"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:"
"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an "
@ -912,29 +923,29 @@ msgid ""
"from the base type will be inherited."
msgstr ""
#: extending/newtypes_tutorial.rst:881
#: extending/newtypes_tutorial.rst:888
msgid ""
"After that, calling :c:func:`PyType_Ready` and adding the type object to the "
"module is the same as with the basic :class:`Custom` examples."
msgstr ""
#: extending/newtypes_tutorial.rst:886
#: extending/newtypes_tutorial.rst:893
msgid "Footnotes"
msgstr "Notes"
#: extending/newtypes_tutorial.rst:887
#: extending/newtypes_tutorial.rst:894
msgid ""
"This is true when we know that the object is a basic type, like a string or "
"a float."
msgstr ""
#: extending/newtypes_tutorial.rst:890
#: extending/newtypes_tutorial.rst:897
msgid ""
"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in "
"this example, because our type doesn't support garbage collection."
msgstr ""
#: extending/newtypes_tutorial.rst:893
#: extending/newtypes_tutorial.rst:900
msgid ""
"We now know that the first and last members are strings, so perhaps we could "
"be less careful about decrementing their reference counts, however, we "
@ -944,7 +955,7 @@ msgid ""
"objects."
msgstr ""
#: extending/newtypes_tutorial.rst:899
#: extending/newtypes_tutorial.rst:906
msgid ""
"Also, even with our attributes restricted to strings instances, the user "
"could pass arbitrary :class:`str` subclasses and therefore still create "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2020-06-28 15:18+0200\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -70,10 +70,10 @@ msgstr "Une approche \"recette de cuisine\""
#, fuzzy
msgid ""
"There are two approaches to building extension modules on Windows, just as "
"there are on Unix: use the ``setuptools`` package to control the build "
"process, or do things manually. The setuptools approach works well for most "
"extensions; documentation on using ``setuptools`` to build and package "
"extension modules is available in :ref:`setuptools-index`. If you find you "
"there are on Unix: use the :mod:`distutils` package to control the build "
"process, or do things manually. The distutils approach works well for most "
"extensions; documentation on using :mod:`distutils` to build and package "
"extension modules is available in :ref:`distutils-index`. If you find you "
"really need to do things manually, it may be instructive to study the "
"project file for the :source:`winsound <PCbuild/winsound.vcxproj>` standard "
"library module."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-26 17:18+0200\n"
"Last-Translator: Mathieu Dupuy\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -260,9 +260,9 @@ msgid ""
"you want to use a method from a base class which is overridden in a derived "
"class, you have to use the ``::`` operator -- in Python you can write "
"``baseclass.methodname(self, <argument list>)``. This is particularly "
"useful for :meth:`~object.__init__` methods, and in general in cases where a "
"derived class method wants to extend the base class method of the same name "
"and thus has to call the base class method somehow."
"useful for :meth:`__init__` methods, and in general in cases where a derived "
"class method wants to extend the base class method of the same name and thus "
"has to call the base class method somehow."
msgstr ""
"Ensuite, ça veut dire qu'aucune syntaxe spéciale n'est nécessaire si vous "
"souhaitez explicitement référencer ou appeler la méthode depuis une classe "
@ -468,15 +468,15 @@ msgstr "À quel point les exceptions sont-elles rapides ?"
#: faq/design.rst:235
#, fuzzy
msgid ""
"A :keyword:`try`/:keyword:`except` block is extremely efficient if no "
"exceptions are raised. Actually catching an exception is expensive. In "
"versions of Python prior to 2.0 it was common to use this idiom::"
"A try/except block is extremely efficient if no exceptions are raised. "
"Actually catching an exception is expensive. In versions of Python prior to "
"2.0 it was common to use this idiom::"
msgstr ""
"Un bloc ``try`` … ``except`` est extrêmement efficient tant qu'aucune "
"exception n'est levée. En effet, intercepter une exception s'avère coûteux. "
"Dans les versions antérieures à Python 2.0, il était courant d'écrire ceci ::"
#: faq/design.rst:246
#: faq/design.rst:245
msgid ""
"This only made sense when you expected the dict to have the key almost all "
"the time. If that wasn't the case, you coded it like this::"
@ -485,7 +485,7 @@ msgstr ""
"clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé "
"comme suit ::"
#: faq/design.rst:254
#: faq/design.rst:253
msgid ""
"For this specific case, you could also use ``value = dict.setdefault(key, "
"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough "
@ -495,13 +495,13 @@ msgstr ""
"getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est "
"suffisamment peu coûteux car il est évalué dans tous les cas."
#: faq/design.rst:260
#: faq/design.rst:259
msgid "Why isn't there a switch or case statement in Python?"
msgstr ""
"Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire "
"à *switch / case* en Python ?"
#: faq/design.rst:262
#: faq/design.rst:261
msgid ""
"You can do this easily enough with a sequence of ``if... elif... elif... "
"else``. For literal values, or constants within a namespace, you can also "
@ -512,7 +512,7 @@ msgstr ""
"encapsulées dans un espace de nommage, on peut aussi utiliser l'instruction "
"``match ... case``."
#: faq/design.rst:266
#: faq/design.rst:265
msgid ""
"For cases where you need to choose from a very large number of "
"possibilities, you can create a dictionary mapping case values to functions "
@ -522,7 +522,7 @@ msgstr ""
"possibilités, vous pouvez créer un dictionnaire faisant correspondre des "
"valeurs à des fonctions à appeler. Par exemple ::"
#: faq/design.rst:277
#: faq/design.rst:276
msgid ""
"For calling methods on objects, you can simplify yet further by using the :"
"func:`getattr` built-in to retrieve methods with a particular name::"
@ -531,7 +531,7 @@ msgstr ""
"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes "
"avec un nom donné ::"
#: faq/design.rst:289
#: faq/design.rst:288
msgid ""
"It's suggested that you use a prefix for the method names, such as "
"``visit_`` in this example. Without such a prefix, if values are coming "
@ -543,7 +543,7 @@ msgstr ""
"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler "
"n'importe quelle méthode sur votre objet."
#: faq/design.rst:295
#: faq/design.rst:294
msgid ""
"Can't you emulate threads in the interpreter instead of relying on an OS-"
"specific thread implementation?"
@ -551,7 +551,7 @@ msgstr ""
"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que "
"se baser sur les implémentations spécifiques aux systèmes d'exploitation ?"
#: faq/design.rst:297
#: faq/design.rst:296
msgid ""
"Answer 1: Unfortunately, the interpreter pushes at least one C stack frame "
"for each Python stack frame. Also, extensions can call back into Python at "
@ -564,7 +564,7 @@ msgstr ""
"conséquent, une implémentation complète des fils d'exécution nécessiterait "
"une gestion complète pour le C."
#: faq/design.rst:302
#: faq/design.rst:301
msgid ""
"Answer 2: Fortunately, there is `Stackless Python <https://github.com/"
"stackless-dev/stackless/wiki>`_, which has a completely redesigned "
@ -574,12 +574,12 @@ msgstr ""
"stackless-dev/stackless/wiki>`_, qui a complètement ré-architecturé la "
"boucle principale de l'interpréteur afin de ne pas utiliser la pile C."
#: faq/design.rst:307
#: faq/design.rst:306
msgid "Why can't lambda expressions contain statements?"
msgstr ""
"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?"
#: faq/design.rst:309
#: faq/design.rst:308
msgid ""
"Python lambda expressions cannot contain statements because Python's "
"syntactic framework can't handle statements nested inside expressions. "
@ -595,7 +595,7 @@ msgstr ""
"Python sont seulement une notation concise si vous êtes trop paresseux pour "
"définir une fonction."
#: faq/design.rst:315
#: faq/design.rst:314
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 "
@ -611,12 +611,12 @@ msgstr ""
"variable locale à laquelle est affecté l'objet fonction (qui est exactement "
"le même type d'objet que celui renvoyé par une expression lambda) !"
#: faq/design.rst:323
#: faq/design.rst:322
msgid "Can Python be compiled to machine code, C or some other language?"
msgstr ""
"Python peut-il être compilé en code machine, en C ou dans un autre langage ?"
#: faq/design.rst:325
#: faq/design.rst:324
msgid ""
"`Cython <https://cython.org/>`_ compiles a modified version of Python with "
"optional annotations into C extensions. `Nuitka <https://www.nuitka.net/>`_ "
@ -628,11 +628,11 @@ msgstr ""
"net/>`_ est un compilateur en devenir de Python vers C++, visant à supporter "
"le langage Python dans son entièreté."
#: 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,7 +651,7 @@ 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
msgid ""
"Other implementations (such as `Jython <https://www.jython.org>`_ or `PyPy "
"<https://www.pypy.org>`_), however, can rely on a different mechanism such "
@ -665,7 +665,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,20 +674,20 @@ msgstr ""
"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de "
"fichiers ::"
#: faq/design.rst:355
#: faq/design.rst:354
#, fuzzy
msgid ""
"Indeed, using CPython's reference counting and destructor scheme, each new "
"assignment to ``f`` closes the previous file. With a traditional GC, "
"however, those file objects will only get collected (and closed) at varying "
"and possibly long intervals."
"assignment to *f* closes the previous file. With a traditional GC, however, "
"those file objects will only get collected (and closed) at varying and "
"possibly long intervals."
msgstr ""
"En effet, à l'aide du comptage de références et du destructeur d'objets de "
"*CPython*, chaque nouvelle affectation à *f* ferme le fichier précédent. "
"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 "
@ -698,13 +698,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 "
@ -719,16 +719,15 @@ 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
#, fuzzy
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 "
"standard ``malloc()`` and ``free()`` with versions provided by the GC "
"library, an application embedding Python may want to have its *own* "
"substitute for ``malloc()`` and ``free()``, and may not want Python's. "
"Right now, CPython works with anything that implements ``malloc()`` and "
"``free()`` properly."
"standard malloc() and free() with versions provided by the GC library, an "
"application embedding Python may want to have its *own* substitute for "
"malloc() and free(), and may not want Python's. Right now, CPython works "
"with anything that implements malloc() and free() properly."
msgstr ""
"Un ramasse-miettes classique devient également un problème lorsque Python "
"est incorporé dans d'autres applications. Bien que dans une application "
@ -739,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 "
@ -761,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."
@ -770,20 +769,20 @@ 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
#, fuzzy
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 "
"Pascal ``records`` or C ``structs``; they're small collections of related "
"data which may be of different types which are operated on as a group. For "
"example, a Cartesian coordinate is appropriately represented as a tuple of "
"two or three numbers."
"Pascal records or C structs; they're small collections of related data which "
"may be of different types which are operated on as a group. For example, a "
"Cartesian coordinate is appropriately represented as a tuple of two or three "
"numbers."
msgstr ""
"Les listes et les *n*-uplets, bien que semblables à bien des égards, sont "
"généralement utilisés de façons fondamentalement différentes. Les *n*-uplets "
@ -793,15 +792,15 @@ 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
#, fuzzy
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 "
"which are operated on one-by-one. For example, :func:`os.listdir('.') <os."
"listdir>` returns a list of strings representing the files in the current "
"directory. Functions which operate on this output would generally not break "
"if you added another file or two to the directory."
"which are operated on one-by-one. For example, ``os.listdir('.')`` returns "
"a list of strings representing the files in the current directory. "
"Functions which operate on this output would generally not break if you "
"added another file or two to the directory."
msgstr ""
"Les listes, ressemblent davantage à des tableaux dans d'autres langages. "
"Elles ont tendance à contenir un nombre variable d'objets de même type "
@ -811,7 +810,7 @@ msgstr ""
"problème que vous ajoutiez un ou deux fichiers supplémentaires dans le "
"dossier."
#: faq/design.rst:418
#: 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 "
@ -826,11 +825,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:425
#: 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:427
#: 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 "
@ -843,7 +842,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:431
#: 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."
@ -851,7 +850,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:434
#: 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 "
@ -864,11 +863,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:441
#: 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:443
#: 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 "
@ -880,18 +879,18 @@ 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:447
#: faq/design.rst:445
#, fuzzy
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 "
"widely depending on the key and a per-process seed; for example, "
"``'Python'`` could hash to ``-539294296`` while ``'python'``, a string that "
"differs by a single bit, could hash to ``1142331976``. The hash code is "
"then used to calculate a location in an internal array where the value will "
"be stored. Assuming that you're storing keys that all have different hash "
"values, this means that dictionaries take constant time -- O(1), in Big-O "
"notation -- to retrieve a key."
"widely depending on the key and a per-process seed; for example, \"Python\" "
"could hash to -539294296 while \"python\", a string that differs by a single "
"bit, could hash to 1142331976. The hash code is then used to calculate a "
"location in an internal array where the value will be stored. Assuming that "
"you're storing keys that all have different hash values, this means that "
"dictionaries take constant time -- O(1), in Big-O notation -- to retrieve a "
"key."
msgstr ""
"Les dictionnaires fonctionnent en calculant un condensat pour chaque clé "
"stockée dans le dictionnaire à l'aide de la fonction :func:`hash`. La valeur "
@ -905,11 +904,11 @@ msgstr ""
"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:458
#: faq/design.rst:456
msgid "Why must dictionary keys be immutable?"
msgstr "Pourquoi les clés du dictionnaire sont immuables ?"
#: faq/design.rst:460
#: 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 "
@ -932,7 +931,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:469
#: 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 "
@ -944,11 +943,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:473
#: faq/design.rst:471
msgid "Some unacceptable solutions that have been proposed:"
msgstr "Certaines solutions insatisfaisantes ont été proposées :"
#: faq/design.rst:475
#: 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.::"
@ -957,7 +956,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:481
#: 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 "
@ -969,7 +968,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:485
#: 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 "
@ -980,7 +979,7 @@ msgstr ""
"une référence à elle-même ou avoir une boucle infinie au niveau du code "
"copié."
#: faq/design.rst:489
#: 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 "
@ -993,7 +992,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:494
#: 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 "
@ -1011,15 +1010,15 @@ msgstr ""
"encore une fois, les objets se faisant référence pourraient provoquer une "
"boucle infinie."
#: faq/design.rst:500
#: faq/design.rst:498
#, fuzzy
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 "
"both a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You "
"must then make sure that the hash value for all such wrapper objects that "
"reside in a dictionary (or other hash based structure), remain fixed while "
"the object is in the dictionary (or other structure). ::"
"both a :meth:`__eq__` and a :meth:`__hash__` method. You must then make "
"sure that the hash value for all such wrapper objects that reside in a "
"dictionary (or other hash based structure), remain fixed while the object is "
"in the dictionary (or other structure). ::"
msgstr ""
"Il y a un truc pour contourner ceci si vous en avez besoin, mais utilisez-le "
"à vos risques et périls. Vous pouvez encapsuler une structure mutable à "
@ -1029,7 +1028,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:525
#: 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 "
@ -1039,7 +1038,7 @@ msgstr ""
"certains membres de la liste soient impossibles à hacher et aussi par la "
"possibilité de débordement arithmétique."
#: faq/design.rst:529
#: 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__() == "
@ -1053,13 +1052,13 @@ msgstr ""
"ne remplissez pas ces conditions, les dictionnaires et autres structures "
"basées sur le hachage se comporteront mal."
#: faq/design.rst:534
#: faq/design.rst:531
#, fuzzy
msgid ""
"In the case of :class:`!ListWrapper`, whenever the wrapper object is in a "
"dictionary the wrapped list must not change to avoid anomalies. Don't do "
"this unless you are prepared to think hard about the requirements and the "
"consequences of not meeting them correctly. Consider yourself warned."
"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 "
"you are prepared to think hard about the requirements and the consequences "
"of not meeting them correctly. Consider yourself warned."
msgstr ""
"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un "
"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les "
@ -1067,11 +1066,11 @@ msgstr ""
"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été "
"prévenus."
#: faq/design.rst:541
#: 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:543
#: 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 "
@ -1087,7 +1086,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:549
#: 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 "
@ -1099,13 +1098,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:559
#: 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:561
#: 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 "
@ -1117,7 +1116,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:566
#: 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` "
@ -1134,7 +1133,7 @@ msgstr ""
"class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` et :"
"class:`collections.abc.MutableMapping`."
#: faq/design.rst:573
#: faq/design.rst:570
msgid ""
"For Python, many of the advantages of interface specifications can be "
"obtained by an appropriate test discipline for components."
@ -1142,7 +1141,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:576
#: 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 "
@ -1163,17 +1162,16 @@ 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:584
#: faq/design.rst:581
#, fuzzy
msgid ""
"An appropriate testing discipline can help build large complex applications "
"in Python as well as having interface specifications would. In fact, it can "
"be better because an interface specification cannot test certain properties "
"of a program. For example, the :meth:`list.append` method is expected to "
"add new elements to the end of some internal list; an interface "
"specification cannot test that your :meth:`list.append` implementation will "
"actually do this correctly, but it's trivial to check this property in a "
"test suite."
"of a program. For example, the :meth:`append` method is expected to add new "
"elements to the end of some internal list; an interface specification cannot "
"test that your :meth:`append` implementation will actually do this "
"correctly, but it's trivial to check this property in a test suite."
msgstr ""
"Une discipline de test appropriée peut aider à construire des applications "
"complexes de grande taille en Python aussi bien que le feraient des "
@ -1185,7 +1183,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:592
#: 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 "
@ -1200,20 +1198,19 @@ 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:600
#: 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:602
#: faq/design.rst:599
#, fuzzy
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 "
"language, it is also unneeded as long as there are ways to branch (in "
"Python, with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, "
"and :keyword:`if`/:keyword:`else` expressions) and loop (with :keyword:"
"`while` and :keyword:`for` statements, possibly containing :keyword:"
"`continue` and :keyword:`break`)."
"Python, with ``if`` statements and ``or``, ``and``, and ``if-else`` "
"expressions) and loop (with ``while`` and ``for`` statements, possibly "
"containing ``continue`` and ``break``)."
msgstr ""
"Dans les années 1970, les gens se sont aperçus que le foisonnement de *goto* "
"conduisait à du code « spaghetti » difficile à comprendre et à modifier. "
@ -1223,12 +1220,12 @@ msgstr ""
"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir "
"des ``continue`` et ``break``)."
#: faq/design.rst:609
#: faq/design.rst:606
#, fuzzy
msgid ""
"One can also use exceptions to provide a \"structured goto\" that works even "
"across function calls. Many feel that exceptions can conveniently emulate "
"all reasonable uses of the ``go`` or ``goto`` constructs of C, Fortran, and "
"all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and "
"other languages. For example::"
msgstr ""
"Vous pouvez utiliser les exceptions afin de mettre en place un « *goto* "
@ -1237,23 +1234,23 @@ msgstr ""
"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran "
"ou d'autres langages de programmation. Par exemple ::"
#: faq/design.rst:625
#: faq/design.rst:622
#, fuzzy
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."
"considered an abuse of goto anyway. Use sparingly."
msgstr ""
"Cela ne vous permet pas de sauter au milieu d'une boucle mais, ceci est de "
"toute façon généralement considéré comme un abus de ``goto``. À Utiliser "
"avec parcimonie."
#: faq/design.rst:630
#: 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:632
#: 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 "
@ -1263,7 +1260,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:636
#: 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 "
@ -1281,7 +1278,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:643
#: faq/design.rst:640
msgid ""
"If you're trying to build Windows pathnames, note that all Windows system "
"calls accept forward slashes too::"
@ -1290,35 +1287,35 @@ msgstr ""
"les appels système Windows acceptent également les *slashes* "
 classiques » ::"
#: faq/design.rst:648
#: 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:656
#: 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:658
#: faq/design.rst:655
#, fuzzy
msgid ""
"Python has a :keyword:`with` statement that wraps the execution of a block, "
"calling code on the entrance and exit from the block. Some languages have a "
"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 "
"construct that looks like this::"
msgstr ""
"Python a une instruction ``with`` qui encapsule l'exécution d'un bloc, en "
"appelant du code à l'entrée et la sortie du bloc. Certains langages "
"possèdent une construction qui ressemble à ceci ::"
#: faq/design.rst:666
#: faq/design.rst:663
msgid "In Python, such a construct would be ambiguous."
msgstr "En Python, une telle construction serait ambiguë."
#: faq/design.rst:668
#: 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 "
@ -1331,7 +1328,7 @@ msgstr ""
"le compilateur connaît *toujours* la portée de toutes les variables au "
"moment de la compilation."
#: faq/design.rst:673
#: 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 "
@ -1345,18 +1342,18 @@ 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:679
#: faq/design.rst:676
msgid "For instance, take the following incomplete snippet::"
msgstr "Prenons par exemple l'extrait incomplet suivant ::"
#: faq/design.rst:685
#: faq/design.rst:682
#, fuzzy
msgid ""
"The snippet assumes that ``a`` must have a member attribute called ``x``. "
"The snippet assumes that \"a\" must have a member attribute called \"x\". "
"However, there is nothing in Python that tells the interpreter this. What "
"should happen if ``a`` is, let us say, an integer? If there is a global "
"variable named ``x``, will it be used inside the :keyword:`with` block? As "
"you see, the dynamic nature of Python makes such choices much harder."
"should happen if \"a\" is, let us say, an integer? If there is a global "
"variable named \"x\", will it be used inside the with block? As you see, "
"the dynamic nature of Python makes such choices much harder."
msgstr ""
"L'extrait suppose que « a » doit avoir un attribut membre appelé « x ». "
"Néanmoins, il n'y a rien en Python qui en informe l'interpréteur. Que se "
@ -1364,22 +1361,22 @@ 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:691
#: faq/design.rst:688
#, fuzzy
msgid ""
"The primary benefit of :keyword:`with` and similar language features "
"(reduction of code volume) can, however, easily be achieved in Python by "
"assignment. Instead of::"
"The primary benefit of \"with\" and similar language features (reduction of "
"code volume) can, however, easily be achieved in Python by assignment. "
"Instead of::"
msgstr ""
"L'avantage principal de ``with`` et des fonctionnalités de langage "
"similaires (réduction du volume de code) peut, cependant, être facilement "
"réalisé en Python par assignation. Au lieu de ::"
#: faq/design.rst:698
#: faq/design.rst:695
msgid "write this::"
msgstr "écrivez ceci ::"
#: faq/design.rst:705
#: 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 "
@ -1389,26 +1386,18 @@ 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
msgid ""
"Similar proposals that would introduce syntax to further reduce code volume, "
"such as using a 'leading dot', have been rejected in favour of explicitness "
"(see https://mail.python.org/pipermail/python-ideas/2016-May/040070.html)."
msgstr ""
#: faq/design.rst:715
#: 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:717
#: faq/design.rst:710
#, fuzzy
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 "
"iterator run to completion, no closing is needed. When it is, wrap it as :"
"func:`contextlib.closing(generator) <contextlib.closing>` in the :keyword:"
"`with` statement."
"iterator run to completion, no closing is needed. When it is, wrap it as "
"\"contextlib.closing(generator)\" in the 'with' statement."
msgstr ""
"Pour des raisons d'ordre technique, un générateur utilisé directement comme "
"gestionnaire de contexte ne pourrait pas fonctionner. Dans le cas le plus "
@ -1416,13 +1405,13 @@ msgstr ""
"besoin de le fermer. Sinon, on peut toujours mettre ``contextlib."
"closing(générateur)`` dans la ligne du ``with``."
#: faq/design.rst:725
#: 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:727
#: faq/design.rst:719
msgid ""
"The colon is required primarily to enhance readability (one of the results "
"of the experimental ABC language). Consider this::"
@ -1430,11 +1419,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:733
#: faq/design.rst:725
msgid "versus ::"
msgstr "et cela ::"
#: faq/design.rst:738
#: 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 "
@ -1444,7 +1433,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:741
#: 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 "
@ -1456,13 +1445,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:747
#: 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:749
#: faq/design.rst:741
msgid ""
"Python lets you add a trailing comma at the end of lists, tuples, and "
"dictionaries::"
@ -1470,11 +1459,11 @@ msgstr ""
"Python vous permet d'ajouter une virgule à la fin des listes, des *n*-uplets "
"et des dictionnaires ::"
#: faq/design.rst:760
#: faq/design.rst:752
msgid "There are several reasons to allow this."
msgstr "Il y a plusieurs raisons d'accepter cela."
#: faq/design.rst:762
#: 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 "
@ -1487,7 +1476,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:767
#: faq/design.rst:759
msgid ""
"Accidentally omitting the comma can lead to errors that are hard to "
"diagnose. For example::"
@ -1495,7 +1484,7 @@ msgstr ""
"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles "
"à diagnostiquer, par exemple ::"
#: faq/design.rst:777
#: 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 "
@ -1505,7 +1494,7 @@ msgstr ""
"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule "
"permet d'éviter cette source d'erreur."
#: faq/design.rst:780
#: 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: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -75,7 +75,7 @@ msgstr ""
#: faq/extending.rst:44
#, fuzzy
msgid ""
"`Cython <https://cython.org>`_ and its relative `Pyrex <https://www.cosc."
"`Cython <https://cython.org>`_ and its relative `Pyrex <https://www.csse."
"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 "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-12 11:56+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-27 16:40+0200\n"
"Last-Translator: Mathieu Dupuy\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -123,9 +123,10 @@ msgstr ""
"Python."
#: faq/general.rst:57
#, fuzzy
msgid ""
"See `the PSF license page <https://www.python.org/psf/license/>`_ to find "
"further explanations and a link to the full text of the license."
"See `the license page <https://docs.python.org/3/license.html>`_ to find "
"further explanations and the full text of the PSF License."
msgstr ""
"Voir `la page de licence d'utilisation de la PSF <https://www.python.org/psf/"
"license/>`_ pour trouver davantage d'informations et un lien vers la version "
@ -308,14 +309,15 @@ msgid "See :pep:`6` for more information about bugfix releases."
msgstr ""
#: faq/general.rst:138
#, fuzzy
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 "
"finalized; it's not unexpected to see an interface change between two alpha "
"releases. Betas are more stable, preserving existing interfaces but possibly "
"adding new modules, and release candidates are frozen, making no changes "
"except as needed to fix critical bugs."
"Not all releases are bugfix releases. In the run-up to a new feature "
"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 finalized; it's not unexpected to see an interface change between two "
"alpha releases. Betas are more stable, preserving existing interfaces but "
"possibly adding new modules, and release candidates are frozen, making no "
"changes except as needed to fix critical bugs."
msgstr ""
"Toutes les sorties ne concernent pas la correction de bogues. A l'approche "
"de la sortie d'une nouvelle version majeure, une série de versions de "
@ -481,11 +483,12 @@ msgstr ""
"souvent plus capables de faire face à ce volume."
#: faq/general.rst:215
#, fuzzy
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 "
"postings per day. It's available as `the python-announce mailing list "
"<https://mail.python.org/mailman/listinfo/python-announce-list>`_."
"<https://mail.python.org/mailman3/lists/python-announce-list.python.org/>`_."
msgstr ""
"Les annonces pour les nouvelles versions et événements peuvent êtres "
"trouvées dans *comp.lang.python.announce*, une liste diminuée peu active qui "
@ -647,20 +650,22 @@ msgid "How stable is Python?"
msgstr "Quel est le niveau de stabilité de Python ?"
#: faq/general.rst:298
#, fuzzy
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, "
"Python will have a major new release every 12 months (:pep:`602`)."
"Python will have a new feature release every 12 months (:pep:`602`)."
msgstr ""
"Très stable. Les versions stables sont sorties environ tous les 6 à 18 mois "
"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:302
#, fuzzy
msgid ""
"The developers issue \"bugfix\" releases of older versions, so the stability "
"of existing releases gradually improves. Bugfix releases, indicated by a "
"third component of the version number (e.g. 3.5.3, 3.6.2), are managed for "
"The developers issue bugfix releases of older versions, so the stability of "
"existing releases gradually improves. Bugfix releases, indicated by a third "
"component of the version number (e.g. 3.5.3, 3.6.2), are managed for "
"stability; only fixes for known problems are included in a bugfix release, "
"and it's guaranteed that interfaces will remain the same throughout a series "
"of bugfix releases."
@ -772,9 +777,10 @@ msgstr ""
"Y est la version qui n'a pas encore été publiée."
#: faq/general.rst:354
#, fuzzy
msgid ""
"New development is discussed on `the python-dev mailing list <https://mail."
"python.org/mailman/listinfo/python-dev/>`_."
"python.org/mailman3/lists/python-dev.python.org/>`_."
msgstr ""
"Le nouveau développement est discuté sur `la liste de diffusion python-dev "
"<https://mail.python.org/mailman/listinfo/python-dev/>`_."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-07-08 12:37+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -150,10 +150,11 @@ msgstr ""
"aideront à trouver des bogues plus tôt."
#: faq/programming.rst:64
#, fuzzy
msgid ""
"Static type checkers such as `Mypy <http://mypy-lang.org/>`_, `Pyre <https://"
"pyre-check.org/>`_, and `Pytype <https://github.com/google/pytype>`_ can "
"check type hints in Python source code."
"Static type checkers such as `Mypy <https://mypy-lang.org/>`_, `Pyre "
"<https://pyre-check.org/>`_, and `Pytype <https://github.com/google/"
"pytype>`_ can check type hints in Python source code."
msgstr ""
"Les vérificateurs statiques de typage comme `Mypy <http://mypy-lang.org/>`_, "
"`Pyre <https://pyre-check.org/>`_, et `Pytype <https://github.com/google/"
@ -3321,6 +3322,22 @@ msgstr ""
"La nature du problème apparaît clairement en affichant « l'identité » des "
"objets de la classe ::"
#: faq/programming.rst:408
msgid "argument"
msgstr ""
#: faq/programming.rst:408
msgid "difference from parameter"
msgstr ""
#: faq/programming.rst:408
msgid "parameter"
msgstr ""
#: faq/programming.rst:408
msgid "difference from argument"
msgstr ""
#~ msgid "Use a list comprehension::"
#~ msgstr "Utilisez une liste en compréhension ::"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-19 13:06+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -211,10 +211,11 @@ msgid "asynchronous context manager"
msgstr "gestionnaire de contexte asynchrone"
#: glossary.rst:94
#, fuzzy
msgid ""
"An object which controls the environment seen in an :keyword:`async with` "
"statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. "
"Introduced by :pep:`492`."
"statement by defining :meth:`~object.__aenter__` and :meth:`~object."
"__aexit__` methods. Introduced by :pep:`492`."
msgstr ""
"(*asynchronous context manager* en anglais) Objet contrôlant l'environnement "
"à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :"
@ -266,23 +267,25 @@ msgstr ""
"Objet créé par un :term:`générateur asynchrone <asynchronous generator>`."
#: glossary.rst:115
#, fuzzy
msgid ""
"This is an :term:`asynchronous iterator` which when called using the :meth:"
"`__anext__` method returns an awaitable object which will execute the body "
"of the asynchronous generator function until the next :keyword:`yield` "
"expression."
"`~object.__anext__` method returns an awaitable object which will execute "
"the body of the asynchronous generator function until the next :keyword:"
"`yield` expression."
msgstr ""
"C'est un :term:`asynchronous iterator` qui, lorsqu'il est appelé via la "
"méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécute le corps "
"de la fonction du générateur asynchrone jusqu'au prochain :keyword:`yield`."
#: glossary.rst:120
#, fuzzy
msgid ""
"Each :keyword:`yield` temporarily suspends processing, remembering the "
"location execution state (including local variables and pending try-"
"statements). When the *asynchronous generator iterator* effectively resumes "
"with another awaitable returned by :meth:`__anext__`, it picks up where it "
"left off. See :pep:`492` and :pep:`525`."
"with another awaitable returned by :meth:`~object.__anext__`, it picks up "
"where it left off. See :pep:`492` and :pep:`525`."
msgstr ""
"Chaque :keyword:`yield` suspend temporairement l'exécution, en gardant en "
"mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables "
@ -296,10 +299,11 @@ msgid "asynchronous iterable"
msgstr "itérable asynchrone"
#: glossary.rst:127
#, fuzzy
msgid ""
"An object, that can be used in an :keyword:`async for` statement. Must "
"return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. "
"Introduced by :pep:`492`."
"return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` "
"method. Introduced by :pep:`492`."
msgstr ""
"Objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa "
"méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A "
@ -310,12 +314,13 @@ msgid "asynchronous iterator"
msgstr "itérateur asynchrone"
#: glossary.rst:132
#, fuzzy
msgid ""
"An object that implements the :meth:`__aiter__` and :meth:`__anext__` "
"methods. ``__anext__`` must return an :term:`awaitable` object. :keyword:"
"`async for` resolves the awaitables returned by an asynchronous iterator's :"
"meth:`__anext__` method until it raises a :exc:`StopAsyncIteration` "
"exception. Introduced by :pep:`492`."
"An object that implements the :meth:`~object.__aiter__` and :meth:`~object."
"__anext__` methods. :meth:`~object.__anext__` must return an :term:"
"`awaitable` object. :keyword:`async for` resolves the awaitables returned by "
"an asynchronous iterator's :meth:`~object.__anext__` method until it raises "
"a :exc:`StopAsyncIteration` exception. Introduced by :pep:`492`."
msgstr ""
"Objet qui implémente les méthodes :meth:`__aiter__` et :meth:`__anext__`. "
"``__anext__`` doit renvoyer un objet :term:`awaitable`. Tant que la méthode :"
@ -357,10 +362,11 @@ msgid "awaitable"
msgstr "attendable (*awaitable*)"
#: glossary.rst:151
#, fuzzy
msgid ""
"An object that can be used in an :keyword:`await` expression. Can be a :"
"term:`coroutine` or an object with an :meth:`__await__` method. See also :"
"pep:`492`."
"term:`coroutine` or an object with an :meth:`~object.__await__` method. See "
"also :pep:`492`."
msgstr ""
"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut "
"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. "
@ -1167,7 +1173,7 @@ msgstr ""
"et casser les références circulaires. Le ramasse-miettes peut être contrôlé "
"en utilisant le module :mod:`gc`."
#: glossary.rst:490
#: glossary.rst:489
msgid "generator"
msgstr "générateur"
@ -1215,7 +1221,7 @@ msgstr ""
"il en était (contrairement à une fonction qui prendrait un nouveau départ à "
"chaque invocation)."
#: glossary.rst:511
#: glossary.rst:510
msgid "generator expression"
msgstr "expression génératrice"
@ -1900,7 +1906,7 @@ msgstr ""
msgid "More information can be found in :ref:`metaclasses`."
msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`."
#: glossary.rst:788
#: glossary.rst:1120
msgid "method"
msgstr "méthode"
@ -2957,6 +2963,25 @@ msgstr ""
"langage. Cette liste peut être obtenue en tapant \"``import this``\" dans "
"une invite Python interactive."
#: glossary.rst:263
#, fuzzy
msgid "C-contiguous"
msgstr "contigu"
#: glossary.rst:263
#, fuzzy
msgid "Fortran contiguous"
msgstr "contigu"
#: glossary.rst:756
msgid "magic"
msgstr ""
#: glossary.rst:1120
#, fuzzy
msgid "special"
msgstr "méthode spéciale"
#~ msgid ""
#~ "Python uses the :term:`filesystem encoding and error handler` to convert "
#~ "between Unicode filenames and bytes filenames."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2022-10-18 12:22+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -24,8 +24,8 @@ msgid "author"
msgstr "auteur"
#: howto/argparse.rst:7
msgid "Tshepang Mbambo"
msgstr ""
msgid "Tshepang Lekhonkhobe"
msgstr "Tshepang Lekhonkhobe"
#: howto/argparse.rst:11
msgid ""
@ -561,22 +561,11 @@ msgstr ""
"pour *changer* le texte qui est affiché. L'exemple suivant au contraire "
"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::"
#: howto/argparse.rst:672
msgid "Specifying ambiguous arguments"
msgstr ""
#: howto/argparse.rst:674
msgid ""
"When there is ambiguity in deciding whether an argument is positional or for "
"an argument, ``--`` can be used to tell :meth:`~ArgumentParser.parse_args` "
"that everything after that is a positional argument::"
msgstr ""
#: howto/argparse.rst:699
#: howto/argparse.rst:670
msgid "Conflicting options"
msgstr "Paramètres en conflit"
#: howto/argparse.rst:701
#: howto/argparse.rst:672
#, fuzzy
msgid ""
"So far, we have been working with two methods of an :class:`argparse."
@ -594,7 +583,7 @@ msgstr ""
"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--"
"verbose`` ::"
#: howto/argparse.rst:727
#: howto/argparse.rst:698
msgid ""
"Our program is now simpler, and we've lost some functionality for the sake "
"of demonstration. Anyways, here's the output:"
@ -603,7 +592,7 @@ msgstr ""
"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie "
"du programme :"
#: howto/argparse.rst:745
#: howto/argparse.rst:716
msgid ""
"That should be easy to follow. I've added that last output so you can see "
"the sort of flexibility you get, i.e. mixing long form options with short "
@ -613,7 +602,7 @@ msgstr ""
"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par "
"exemple pour faire un mélange entre des paramètres courts et longs."
#: howto/argparse.rst:749
#: howto/argparse.rst:720
msgid ""
"Before we conclude, you probably want to tell your users the main purpose of "
"your program, just in case they don't know::"
@ -622,7 +611,7 @@ msgstr ""
"le but principal de votre programme, juste dans le cas ou ils ne le "
"sauraient pas ::"
#: howto/argparse.rst:770
#: howto/argparse.rst:741
msgid ""
"Note that slight difference in the usage text. Note the ``[-v | -q]``, which "
"tells us that we can either use ``-v`` or ``-q``, but not both at the same "
@ -632,11 +621,11 @@ msgstr ""
"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas "
"les deux ensemble :"
#: howto/argparse.rst:792
#: howto/argparse.rst:763
msgid "Conclusion"
msgstr "Conclusion"
#: howto/argparse.rst:794
#: howto/argparse.rst:765
msgid ""
"The :mod:`argparse` module offers a lot more than shown here. Its docs are "
"quite detailed and thorough, and full of examples. Having gone through this "
@ -646,6 +635,3 @@ msgstr ""
"documentation est assez détaillée, complète et pleine d'exemples. En ayant "
"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation "
"sans vous sentir dépassé."
#~ msgid "Tshepang Lekhonkhobe"
#~ msgstr "Tshepang Lekhonkhobe"

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: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -23,7 +23,7 @@ msgstr "Programmation *Curses* avec Python"
msgid "Author"
msgstr "Auteur"
#: howto/curses.rst:7
#: howto/curses.rst:9
msgid "A.M. Kuchling, Eric S. Raymond"
msgstr "A.M. Kuchling, Eric S. Raymond"
@ -31,7 +31,7 @@ msgstr "A.M. Kuchling, Eric S. Raymond"
msgid "Release"
msgstr "Version"
#: howto/curses.rst:8
#: howto/curses.rst:10
msgid "2.04"
msgstr "2.04"
@ -39,7 +39,7 @@ msgstr "2.04"
msgid "Abstract"
msgstr "Résumé"
#: howto/curses.rst:13
#: howto/curses.rst:15
msgid ""
"This document describes how to use the :mod:`curses` extension module to "
"control text-mode displays."
@ -47,11 +47,11 @@ msgstr ""
"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour "
"contrôler l'affichage en mode texte."
#: howto/curses.rst:18
#: howto/curses.rst:20
msgid "What is curses?"
msgstr "Qu'est-ce que *curses* ?"
#: howto/curses.rst:20
#: howto/curses.rst:22
msgid ""
"The curses library supplies a terminal-independent screen-painting and "
"keyboard-handling facility for text-based terminals; such terminals include "
@ -70,7 +70,7 @@ msgstr ""
"Différents terminaux utilisent des codes très différents et ont souvent "
"leurs propres bizarreries mineures."
#: howto/curses.rst:28
#: howto/curses.rst:30
msgid ""
"In a world of graphical displays, one might ask \"why bother\"? It's true "
"that character-cell display terminals are an obsolete technology, but there "
@ -89,7 +89,7 @@ msgstr ""
"noyau qui doivent être exécutés avant qu'un support graphique ne soit "
"disponible."
#: howto/curses.rst:36
#: howto/curses.rst:38
msgid ""
"The curses library provides fairly basic functionality, providing the "
"programmer with an abstraction of a display containing multiple non-"
@ -112,7 +112,7 @@ msgstr ""
"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface "
"utilisateur comme `Urwid <https://pypi.org/project/urwid/>`_."
#: howto/curses.rst:46
#: howto/curses.rst:48
msgid ""
"The curses library was originally written for BSD Unix; the later System V "
"versions of Unix from AT&T added many enhancements and new functions. BSD "
@ -135,7 +135,7 @@ msgstr ""
"disponibles. Les anciennes versions de *curses* portées par certains Unix "
"propriétaires pourraient ne pas gérer toutes les fonctions."
#: howto/curses.rst:56
#: howto/curses.rst:58
msgid ""
"The Windows version of Python doesn't include the :mod:`curses` module. A "
"ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is "
@ -145,18 +145,19 @@ msgstr ""
"version portée appelée `UniCurses <https://pypi.org/project/UniCurses>`_ est "
"disponible."
#: howto/curses.rst:62
#: howto/curses.rst:64
msgid "The Python curses module"
msgstr "Le module *curses* de Python"
#: howto/curses.rst:64
#: howto/curses.rst:66
#, fuzzy
msgid ""
"The Python module is a fairly simple wrapper over the C functions provided "
"by curses; if you're already familiar with curses programming in C, it's "
"really easy to transfer that knowledge to Python. The biggest difference is "
"that the Python interface makes things simpler by merging different C "
"functions such as :c:func:`addstr`, :c:func:`mvaddstr`, and :c:func:"
"`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see "
"functions such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!"
"mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see "
"this covered in more detail later."
msgstr ""
"Le module Python est une surcouche assez simple enrobant les fonctions C "
@ -167,7 +168,7 @@ msgstr ""
"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window."
"addstr`. Nous voyons cela plus en détail ci-après."
#: howto/curses.rst:72
#: howto/curses.rst:74
msgid ""
"This HOWTO is an introduction to writing text-mode programs with curses and "
"Python. It doesn't attempt to be a complete guide to the curses API; for "
@ -180,16 +181,17 @@ msgstr ""
"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne "
"cependant les idées de base."
#: howto/curses.rst:79
#: howto/curses.rst:81
msgid "Starting and ending a curses application"
msgstr "Lancement et arrêt une application *curses*"
#: howto/curses.rst:81
#: howto/curses.rst:83
#, fuzzy
msgid ""
"Before doing anything, curses must be initialized. This is done by calling "
"the :func:`~curses.initscr` function, which will determine the terminal "
"type, send any required setup codes to the terminal, and create various "
"internal data structures. If successful, :func:`initscr` returns a window "
"internal data structures. If successful, :func:`!initscr` returns a window "
"object representing the entire screen; this is usually called ``stdscr`` "
"after the name of the corresponding C variable. ::"
msgstr ""
@ -200,7 +202,7 @@ msgstr ""
"renvoie un objet fenêtre représentant l'écran entier ; il est généralement "
"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::"
#: howto/curses.rst:92
#: howto/curses.rst:94
msgid ""
"Usually curses applications turn off automatic echoing of keys to the "
"screen, in order to be able to read keys and only display them under certain "
@ -211,7 +213,7 @@ msgstr ""
"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:"
"`~curses.noecho`. ::"
#: howto/curses.rst:99
#: howto/curses.rst:101
msgid ""
"Applications will also commonly need to react to keys instantly, without "
"requiring the Enter key to be pressed; this is called cbreak mode, as "
@ -222,7 +224,7 @@ msgstr ""
"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel "
"avec un tampon. ::"
#: howto/curses.rst:105
#: howto/curses.rst:107
msgid ""
"Terminals usually return special keys, such as the cursor keys or navigation "
"keys such as Page Up and Home, as a multibyte escape sequence. While you "
@ -239,7 +241,7 @@ msgstr ""
"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que "
"*curses* fasse le travail, vous devez activer le mode *keypad*. ::"
#: howto/curses.rst:114
#: howto/curses.rst:116
msgid ""
"Terminating a curses application is much easier than starting one. You'll "
"need to call::"
@ -247,7 +249,7 @@ msgstr ""
"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer "
"une. Appelez ::"
#: howto/curses.rst:121
#: howto/curses.rst:123
msgid ""
"to reverse the curses-friendly terminal settings. Then call the :func:"
"`~curses.endwin` function to restore the terminal to its original operating "
@ -257,7 +259,7 @@ msgstr ""
"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans "
"son mode de fonctionnement original. ::"
#: howto/curses.rst:127
#: howto/curses.rst:129
msgid ""
"A common problem when debugging a curses application is to get your terminal "
"messed up when the application dies without restoring the terminal to its "
@ -273,7 +275,7 @@ msgstr ""
"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* "
"difficile."
#: howto/curses.rst:133
#: howto/curses.rst:135
msgid ""
"In Python you can avoid these complications and make debugging much easier "
"by importing the :func:`curses.wrapper` function and using it like this::"
@ -281,12 +283,13 @@ msgstr ""
"En Python, vous pouvez éviter ces complications et faciliter le débogage en "
"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::"
#: howto/curses.rst:152
#: howto/curses.rst:154
#, fuzzy
msgid ""
"The :func:`~curses.wrapper` function takes a callable object and does the "
"initializations described above, also initializing colors if color support "
"is present. :func:`wrapper` then runs your provided callable. Once the "
"callable returns, :func:`wrapper` will restore the original state of the "
"is present. :func:`!wrapper` then runs your provided callable. Once the "
"callable returns, :func:`!wrapper` will restore the original state of the "
"terminal. The callable is called inside a :keyword:`try`...\\ :keyword:"
"`except` that catches exceptions, restores the state of the terminal, and "
"then re-raises the exception. Therefore your terminal won't be left in a "
@ -303,11 +306,11 @@ msgstr ""
"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le "
"message de l'exception et la trace de la pile d'appels."
#: howto/curses.rst:164
#: howto/curses.rst:166
msgid "Windows and Pads"
msgstr "Fenêtres et tampons (*pads* en anglais)"
#: howto/curses.rst:166
#: howto/curses.rst:168
msgid ""
"Windows are the basic abstraction in curses. A window object represents a "
"rectangular area of the screen, and supports methods to display text, erase "
@ -318,7 +321,7 @@ msgstr ""
"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des "
"chaînes, etc."
#: howto/curses.rst:170
#: howto/curses.rst:172
msgid ""
"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a "
"window object that covers the entire screen. Many programs may need only "
@ -334,7 +337,7 @@ msgstr ""
"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre "
"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::"
#: howto/curses.rst:181
#: howto/curses.rst:183
msgid ""
"Note that the coordinate system used in curses is unusual. Coordinates are "
"always passed in the order *y,x*, and the top-left corner of a window is "
@ -351,7 +354,7 @@ msgstr ""
"applications informatiques, mais elle fait partie de *curses* depuis qu'il a "
"été écrit et il est trop tard pour changer les choses maintenant."
#: howto/curses.rst:189
#: howto/curses.rst:191
msgid ""
"Your application can determine the size of the screen by using the :data:"
"`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* "
@ -363,7 +366,7 @@ msgstr ""
"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à "
"``(curses.LINES - 1, curses.COLS - 1)``."
#: howto/curses.rst:194
#: howto/curses.rst:196
msgid ""
"When you call a method to display or erase text, the effect doesn't "
"immediately show up on the display. Instead you must call the :meth:"
@ -373,14 +376,15 @@ msgstr ""
"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :"
"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran."
#: howto/curses.rst:199
#: howto/curses.rst:201
#, fuzzy
msgid ""
"This is because curses was originally written with slow 300-baud terminal "
"connections in mind; with these terminals, minimizing the time required to "
"redraw the screen was very important. Instead curses accumulates changes to "
"the screen and displays them in the most efficient manner when you call :"
"meth:`refresh`. For example, if your program displays some text in a window "
"and then clears the window, there's no need to send the original text "
"meth:`!refresh`. For example, if your program displays some text in a "
"window and then clears the window, there's no need to send the original text "
"because they're never visible."
msgstr ""
"C'est parce que *curses* a été écrit du temps des terminaux avec une "
@ -392,14 +396,15 @@ msgstr ""
"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais "
"visible."
#: howto/curses.rst:208
#: howto/curses.rst:210
#, fuzzy
msgid ""
"In practice, explicitly telling curses to redraw a window doesn't really "
"complicate programming with curses much. Most programs go into a flurry of "
"activity, and then pause waiting for a keypress or some other action on the "
"part of the user. All you have to do is to be sure that the screen has been "
"redrawn before pausing to wait for user input, by first calling ``stdscr."
"refresh()`` or the :meth:`refresh` method of some other relevant window."
"redrawn before pausing to wait for user input, by first calling :meth:`!"
"stdscr.refresh` or the :meth:`!refresh` method of some other relevant window."
msgstr ""
"Pratiquement, le fait de devoir indiquer explicitement à *curses* de "
"redessiner une fenêtre ne rend pas la programmation plus compliquée. La "
@ -410,7 +415,7 @@ msgstr ""
"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la "
"fenêtre adéquate."
#: howto/curses.rst:216
#: howto/curses.rst:218
msgid ""
"A pad is a special case of a window; it can be larger than the actual "
"display screen, and only a portion of the pad displayed at a time. Creating "
@ -425,9 +430,10 @@ msgstr ""
"devez fournir les coordonnées de la zone de l'écran où une partie du tampon "
"sera affichée. ::"
#: howto/curses.rst:237
#: howto/curses.rst:239
#, fuzzy
msgid ""
"The :meth:`refresh` call displays a section of the pad in the rectangle "
"The :meth:`!refresh` call displays a section of the pad in the rectangle "
"extending from coordinate (5,5) to coordinate (20,75) on the screen; the "
"upper left corner of the displayed section is coordinate (0,0) on the pad. "
"Beyond that difference, pads are exactly like ordinary windows and support "
@ -439,17 +445,18 @@ msgstr ""
"tampon. À part cette différence, les tampons sont exactement comme les "
"fenêtres ordinaires et gèrent les mêmes méthodes."
#: howto/curses.rst:243
#: howto/curses.rst:245
#, fuzzy
msgid ""
"If you have multiple windows and pads on screen there is a more efficient "
"way to update the screen and prevent annoying screen flicker as each part of "
"the screen gets updated. :meth:`refresh` actually does two things:"
"the screen gets updated. :meth:`!refresh` actually does two things:"
msgstr ""
"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen "
"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants "
"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :"
#: howto/curses.rst:248
#: howto/curses.rst:250
msgid ""
"Calls the :meth:`~curses.window.noutrefresh` method of each window to update "
"an underlying data structure representing the desired state of the screen."
@ -458,7 +465,7 @@ msgstr ""
"pour mettre à jour les données sous-jacentes qui permettent d'obtenir "
"l'affichage voulu ;"
#: howto/curses.rst:251
#: howto/curses.rst:253
msgid ""
"Calls the function :func:`~curses.doupdate` function to change the physical "
"screen to match the desired state recorded in the data structure."
@ -466,28 +473,31 @@ msgstr ""
"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran "
"physique afin de correspondre à l'état défini par les données sous-jacentes."
#: howto/curses.rst:254
#: howto/curses.rst:256
#, fuzzy
msgid ""
"Instead you can call :meth:`noutrefresh` on a number of windows to update "
"the data structure, and then call :func:`doupdate` to update the screen."
"Instead you can call :meth:`!noutrefresh` on a number of windows to update "
"the data structure, and then call :func:`!doupdate` to update the screen."
msgstr ""
"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous "
"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour "
"l'écran."
#: howto/curses.rst:260
#: howto/curses.rst:262
msgid "Displaying Text"
msgstr "Affichage de texte"
#: howto/curses.rst:262
#: howto/curses.rst:264
#, fuzzy
msgid ""
"From a C programmer's point of view, curses may sometimes look like a twisty "
"maze of functions, all subtly different. For example, :c:func:`addstr` "
"maze of functions, all subtly different. For example, :c:func:`!addstr` "
"displays a string at the current cursor location in the ``stdscr`` window, "
"while :c:func:`mvaddstr` moves to a given y,x coordinate first before "
"displaying the string. :c:func:`waddstr` is just like :c:func:`addstr`, but "
"allows specifying a window to use instead of using ``stdscr`` by default. :c:"
"func:`mvwaddstr` allows specifying both a window and a coordinate."
"while :c:func:`!mvaddstr` moves to a given y,x coordinate first before "
"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, "
"but allows specifying a window to use instead of using ``stdscr`` by "
"default. :c:func:`!mvwaddstr` allows specifying both a window and a "
"coordinate."
msgstr ""
"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un "
"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:"
@ -498,7 +508,7 @@ msgstr ""
"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à "
"la fois les coordonnées et la fenêtre."
#: howto/curses.rst:271
#: howto/curses.rst:273
msgid ""
"Fortunately the Python interface hides all these details. ``stdscr`` is a "
"window object like any other, and methods such as :meth:`~curses.window."
@ -510,27 +520,27 @@ msgstr ""
"window.addstr` acceptent leurs arguments sous de multiples formes, "
"habituellement quatre."
#: howto/curses.rst:277
#: howto/curses.rst:279
msgid "Form"
msgstr "Forme"
#: howto/curses.rst:345
#: howto/curses.rst:347
msgid "Description"
msgstr "Description"
#: howto/curses.rst:279
#: howto/curses.rst:281
msgid "*str* or *ch*"
msgstr "*str* ou *ch*"
#: howto/curses.rst:279
#: howto/curses.rst:281
msgid "Display the string *str* or character *ch* at the current position"
msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle"
#: howto/curses.rst:282
#: howto/curses.rst:284
msgid "*str* or *ch*, *attr*"
msgstr "*str* ou *ch*, *attr*"
#: howto/curses.rst:282
#: howto/curses.rst:284
msgid ""
"Display the string *str* or character *ch*, using attribute *attr* at the "
"current position"
@ -538,21 +548,21 @@ msgstr ""
"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* "
"à la position actuelle"
#: howto/curses.rst:286
#: howto/curses.rst:288
msgid "*y*, *x*, *str* or *ch*"
msgstr "*y*, *x*, *str* ou *ch*"
#: howto/curses.rst:286
#: howto/curses.rst:288
msgid "Move to position *y,x* within the window, and display *str* or *ch*"
msgstr ""
"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou "
"le caractère *ch*"
#: howto/curses.rst:289
#: howto/curses.rst:291
msgid "*y*, *x*, *str* or *ch*, *attr*"
msgstr "*y*, *x*, *str* ou *ch*, *attr*"
#: howto/curses.rst:289
#: howto/curses.rst:291
msgid ""
"Move to position *y,x* within the window, and display *str* or *ch*, using "
"attribute *attr*"
@ -560,7 +570,7 @@ msgstr ""
"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou "
"le caractère *ch* en utilisant l'attribut *attr*"
#: howto/curses.rst:293
#: howto/curses.rst:295
msgid ""
"Attributes allow displaying text in highlighted forms such as boldface, "
"underline, reverse code, or in color. They'll be explained in more detail "
@ -570,13 +580,14 @@ msgstr ""
"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section "
"suivante."
#: howto/curses.rst:298
#: howto/curses.rst:300
#, fuzzy
msgid ""
"The :meth:`~curses.window.addstr` method takes a Python string or bytestring "
"as the value to be displayed. The contents of bytestrings are sent to the "
"terminal as-is. Strings are encoded to bytes using the value of the "
"window's :attr:`encoding` attribute; this defaults to the default system "
"encoding as returned by :func:`locale.getencoding`."
"window's :attr:`~window.encoding` attribute; this defaults to the default "
"system encoding as returned by :func:`locale.getencoding`."
msgstr ""
"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une "
"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le "
@ -584,7 +595,7 @@ msgstr ""
"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut "
"l'encodage du système tel que renvoyé par :func:`locale.getencoding`."
#: howto/curses.rst:304
#: howto/curses.rst:306
msgid ""
"The :meth:`~curses.window.addch` methods take a character, which can be "
"either a string of length 1, a bytestring of length 1, or an integer."
@ -593,7 +604,7 @@ msgstr ""
"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou "
"d'un entier."
#: howto/curses.rst:307
#: howto/curses.rst:309
msgid ""
"Constants are provided for extension characters; these constants are "
"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- "
@ -606,7 +617,7 @@ msgstr ""
"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous "
"pouvez aussi utiliser les caractères Unicode adéquats."
#: howto/curses.rst:313
#: howto/curses.rst:315
msgid ""
"Windows remember where the cursor was left after the last operation, so if "
"you leave out the *y,x* coordinates, the string or character will be "
@ -625,7 +636,7 @@ msgstr ""
"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des "
"endroits apparemment aléatoires)."
#: howto/curses.rst:321
#: howto/curses.rst:323
msgid ""
"If your application doesn't need a blinking cursor at all, you can call "
"``curs_set(False)`` to make it invisible. For compatibility with older "
@ -642,11 +653,11 @@ msgstr ""
"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser "
"trainer à des endroits bizarres."
#: howto/curses.rst:330
#: howto/curses.rst:332
msgid "Attributes and Color"
msgstr "Attributs et couleurs"
#: howto/curses.rst:332
#: howto/curses.rst:334
msgid ""
"Characters can be displayed in different ways. Status lines in a text-based "
"application are commonly shown in reverse video, or a text viewer may need "
@ -659,7 +670,7 @@ msgstr ""
"À ces fins, *curses* vous permet de spécifier un attribut pour chaque "
"caractère à l'écran."
#: howto/curses.rst:337
#: howto/curses.rst:339
msgid ""
"An attribute is an integer, each bit representing a different attribute. "
"You can try to display text with multiple attribute bits set, but curses "
@ -676,59 +687,59 @@ msgstr ""
"se cantonner aux attributs les plus communément utilisés, dont la liste est "
"fournie ci-dessous."
#: howto/curses.rst:345
#: howto/curses.rst:347
msgid "Attribute"
msgstr "Attribut"
#: howto/curses.rst:347
#: howto/curses.rst:349
msgid ":const:`A_BLINK`"
msgstr ":const:`A_BLINK`"
#: howto/curses.rst:347
#: howto/curses.rst:349
msgid "Blinking text"
msgstr "Texte clignotant"
#: howto/curses.rst:349
#: howto/curses.rst:351
msgid ":const:`A_BOLD`"
msgstr ":const:`A_BOLD`"
#: howto/curses.rst:349
#: howto/curses.rst:351
msgid "Extra bright or bold text"
msgstr "Texte en surbrillance ou en gras"
#: howto/curses.rst:351
#: howto/curses.rst:353
msgid ":const:`A_DIM`"
msgstr ":const:`A_DIM`"
#: howto/curses.rst:351
#: howto/curses.rst:353
msgid "Half bright text"
msgstr "Texte en demi-ton"
#: howto/curses.rst:353
#: howto/curses.rst:355
msgid ":const:`A_REVERSE`"
msgstr ":const:`A_REVERSE`"
#: howto/curses.rst:353
#: howto/curses.rst:355
msgid "Reverse-video text"
msgstr "Texte en mode vidéo inversé"
#: howto/curses.rst:355
#: howto/curses.rst:357
msgid ":const:`A_STANDOUT`"
msgstr ":const:`A_STANDOUT`"
#: howto/curses.rst:355
#: howto/curses.rst:357
msgid "The best highlighting mode available"
msgstr "Le meilleur mode de mis en valeur pour le texte"
#: howto/curses.rst:357
#: howto/curses.rst:359
msgid ":const:`A_UNDERLINE`"
msgstr ":const:`A_UNDERLINE`"
#: howto/curses.rst:357
#: howto/curses.rst:359
msgid "Underlined text"
msgstr "Texte souligné"
#: howto/curses.rst:360
#: howto/curses.rst:362
msgid ""
"So, to display a reverse-video status line on the top line of the screen, "
"you could code::"
@ -736,7 +747,7 @@ msgstr ""
"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode "
"vidéo inversé, vous pouvez coder ::"
#: howto/curses.rst:367
#: howto/curses.rst:369
msgid ""
"The curses library also supports color on those terminals that provide it. "
"The most common such terminal is probably the Linux console, followed by "
@ -746,7 +757,7 @@ msgstr ""
"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, "
"suivie par *xterm* en couleurs."
#: howto/curses.rst:371
#: howto/curses.rst:373
msgid ""
"To use color, you must call the :func:`~curses.start_color` function soon "
"after calling :func:`~curses.initscr`, to initialize the default color set "
@ -766,7 +777,7 @@ msgstr ""
"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez "
"vous résigner à mal l'orthographier tant que vous utilisez *curses*)."
#: howto/curses.rst:381
#: howto/curses.rst:383
msgid ""
"The curses library maintains a finite number of color pairs, containing a "
"foreground (or text) color and a background color. You can get the "
@ -783,13 +794,13 @@ msgstr ""
"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles "
"combinaisons risquent de ne pas fonctionner sur tous les terminaux."
#: howto/curses.rst:388
#: howto/curses.rst:390
msgid "An example, which displays a line of text using color pair 1::"
msgstr ""
"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur "
"1 ::"
#: howto/curses.rst:393
#: howto/curses.rst:395
msgid ""
"As I said before, a color pair consists of a foreground and background "
"color. The ``init_pair(n, f, b)`` function changes the definition of color "
@ -802,7 +813,7 @@ msgstr ""
"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en "
"dur à blanc sur noir et ne peut être modifiée."
#: howto/curses.rst:398
#: howto/curses.rst:400
msgid ""
"Colors are numbered, and :func:`start_color` initializes 8 basic colors when "
"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:"
@ -818,14 +829,14 @@ msgstr ""
"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses."
"COLOR_RED` et ainsi de suite."
#: howto/curses.rst:404
#: howto/curses.rst:406
msgid ""
"Let's put all this together. To change color 1 to red text on a white "
"background, you would call::"
msgstr ""
"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::"
#: howto/curses.rst:409
#: howto/curses.rst:411
msgid ""
"When you change a color pair, any text already displayed using that color "
"pair will change to the new colors. You can also display new text in this "
@ -835,7 +846,7 @@ msgstr ""
"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à "
"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::"
#: howto/curses.rst:415
#: howto/curses.rst:417
msgid ""
"Very fancy terminals can change the definitions of the actual colors to a "
"given RGB value. This lets you change color 1, which is usually red, to "
@ -856,11 +867,11 @@ msgstr ""
"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel "
"de votre système pour obtenir plus d'informations."
#: howto/curses.rst:426
#: howto/curses.rst:428
msgid "User Input"
msgstr "Entrées de l'utilisateur"
#: howto/curses.rst:428
#: howto/curses.rst:430
msgid ""
"The C curses library offers only very simple input mechanisms. Python's :mod:"
"`curses` module adds a basic text-input widget. (Other libraries such as "
@ -872,11 +883,11 @@ msgstr ""
"d'entrée de texte (d'autres bibliothèques telles que `Urwid <https://pypi."
"org/project/urwid/>`_ ont un ensemble de *widgets* plus conséquent)."
#: howto/curses.rst:433
#: howto/curses.rst:435
msgid "There are two methods for getting input from a window:"
msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :"
#: howto/curses.rst:435
#: howto/curses.rst:437
msgid ""
":meth:`~curses.window.getch` refreshes the screen and then waits for the "
"user to hit a key, displaying the key if :func:`~curses.echo` has been "
@ -888,7 +899,7 @@ msgstr ""
"appelé auparavant. Vous pouvez en option spécifier des coordonnées où "
"positionner le curseur avant la mise en pause ;"
#: howto/curses.rst:440
#: howto/curses.rst:442
msgid ""
":meth:`~curses.window.getkey` does the same thing but converts the integer "
"to a string. Individual characters are returned as 1-character strings, and "
@ -901,15 +912,16 @@ msgstr ""
"renvoient des chaînes plus longues contenant le nom de la touche (tel que "
"``KEY_UP`` ou ``^G``)."
#: howto/curses.rst:445
#: howto/curses.rst:447
#, fuzzy
msgid ""
"It's possible to not wait for the user using the :meth:`~curses.window."
"nodelay` window method. After ``nodelay(True)``, :meth:`getch` and :meth:"
"`getkey` for the window become non-blocking. To signal that no input is "
"ready, :meth:`getch` returns ``curses.ERR`` (a value of -1) and :meth:"
"`getkey` raises an exception. There's also a :func:`~curses.halfdelay` "
"function, which can be used to (in effect) set a timer on each :meth:"
"`getch`; if no input becomes available within a specified delay (measured in "
"nodelay` window method. After ``nodelay(True)``, :meth:`!getch` and :meth:`!"
"getkey` for the window become non-blocking. To signal that no input is "
"ready, :meth:`!getch` returns ``curses.ERR`` (a value of -1) and :meth:`!"
"getkey` raises an exception. There's also a :func:`~curses.halfdelay` "
"function, which can be used to (in effect) set a timer on each :meth:`!"
"getch`; if no input becomes available within a specified delay (measured in "
"tenths of a second), curses raises an exception."
msgstr ""
"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de "
@ -922,9 +934,10 @@ msgstr ""
"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de "
"seconde), *curses* lève une exception."
#: howto/curses.rst:455
#: howto/curses.rst:457
#, fuzzy
msgid ""
"The :meth:`getch` method returns an integer; if it's between 0 and 255, it "
"The :meth:`!getch` method returns an integer; if it's between 0 and 255, it "
"represents the ASCII code of the key pressed. Values greater than 255 are "
"special keys such as Page Up, Home, or the cursor keys. You can compare the "
"value returned to constants such as :const:`curses.KEY_PPAGE`, :const:"
@ -939,7 +952,7 @@ msgstr ""
"La boucle principale de votre programme pourrait ressembler à quelque chose "
"comme ::"
#: howto/curses.rst:471
#: howto/curses.rst:473
msgid ""
"The :mod:`curses.ascii` module supplies ASCII class membership functions "
"that take either integer or 1-character string arguments; these may be "
@ -956,7 +969,7 @@ msgstr ""
"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii."
"ctrl` renvoie le caractère de contrôle correspondant à son paramètre."
#: howto/curses.rst:478
#: howto/curses.rst:480
msgid ""
"There's also a method to retrieve an entire string, :meth:`~curses.window."
"getstr`. It isn't used very often, because its functionality is quite "
@ -970,7 +983,7 @@ msgstr ""
"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, "
"être limitée à un nombre fixé de caractères. ::"
#: howto/curses.rst:489
#: howto/curses.rst:491
msgid ""
"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-"
"like set of keybindings. Various methods of the :class:`~curses.textpad."
@ -983,18 +996,18 @@ msgstr ""
"des entrées et le regroupement de l'entrée avec ou sans les espaces de début "
"et de fin. Par exemple ::"
#: howto/curses.rst:513
#: howto/curses.rst:515
msgid ""
"See the library documentation on :mod:`curses.textpad` for more details."
msgstr ""
"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:"
"`curses.textpad`."
#: howto/curses.rst:517
#: howto/curses.rst:519
msgid "For More Information"
msgstr "Pour aller plus loin"
#: howto/curses.rst:519
#: howto/curses.rst:521
msgid ""
"This HOWTO doesn't cover some advanced topics, such as reading the contents "
"of the screen or capturing mouse events from an xterm instance, but the "
@ -1007,7 +1020,7 @@ msgstr ""
"`curses` est maintenant suffisamment complète. Nous vous encourageons à la "
"parcourir."
#: howto/curses.rst:524
#: howto/curses.rst:526
msgid ""
"If you're in doubt about the detailed behavior of the curses functions, "
"consult the manual pages for your curses implementation, whether it's "
@ -1022,7 +1035,7 @@ msgstr ""
"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des "
"caractères disponibles."
#: howto/curses.rst:531
#: howto/curses.rst:533
msgid ""
"Because the curses API is so large, some functions aren't supported in the "
"Python interface. Often this isn't because they're difficult to implement, "
@ -1040,7 +1053,7 @@ msgstr ""
"du développeur Python <https://devguide.python.org/>`_ pour apprendre "
"comment soumettre des améliorations à Python."
#: howto/curses.rst:539
#: howto/curses.rst:541
#, fuzzy
msgid ""
"`Writing Programs with NCURSES <https://invisible-island.net/ncurses/ncurses-"
@ -1050,11 +1063,11 @@ msgstr ""
"intro.html>`_ : un long tutoriel pour les programmeurs C (ressource en "
"anglais)."
#: howto/curses.rst:541
#: howto/curses.rst:543
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
#: howto/curses.rst:544
#, fuzzy
msgid ""
"`The ncurses FAQ <https://invisible-island.net/ncurses/ncurses.faq.html>`_"
@ -1062,7 +1075,7 @@ msgstr ""
"`La FAQ ncurses <http://invisible-island.net/ncurses/ncurses.faq.html>`_ "
"(ressource en anglais)"
#: howto/curses.rst:543
#: howto/curses.rst:545
msgid ""
"`\"Use curses... don't swear\" <https://www.youtube.com/watch?"
"v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using "
@ -1072,7 +1085,7 @@ msgstr ""
"v=eN1eZtjLEnU>`_ : vidéo d'une conférence lors de la PyCon 2013 sur la "
"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)."
#: howto/curses.rst:545
#: howto/curses.rst:547
#, fuzzy
msgid ""
"`\"Console Applications with Urwid\" <https://pyvideo.org/video/1568/console-"

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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2022-05-12 09:39+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -1955,26 +1955,17 @@ msgstr ""
"https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines."
#: howto/functional.rst:1226
#, fuzzy
msgid ""
"https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of "
"partial function application."
msgstr ""
"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de "
"curryfication (création d'applications partielles)."
#: howto/functional.rst:1228
msgid ""
"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying."
msgstr ""
"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de "
"curryfication (création d'applications partielles)."
#: howto/functional.rst:1231
#: howto/functional.rst:1229
msgid "Python-specific"
msgstr "Spécifique à Python"
#: howto/functional.rst:1233
#: howto/functional.rst:1231
#, fuzzy
msgid ""
"https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-"
@ -1987,7 +1978,7 @@ msgstr ""
"programmation fonctionnelle pour le traitement de texte dans la section "
 Utilisation des fonctions d'ordre supérieur pour le traitement de texte »."
#: howto/functional.rst:1238
#: howto/functional.rst:1236
msgid ""
"Mertz also wrote a 3-part series of articles on functional programming for "
"IBM's DeveloperWorks site; see `part 1 <https://developer.ibm.com/articles/l-"
@ -2000,30 +1991,38 @@ msgstr ""
"developer.ibm.com/tutorials/l-prog2/>`__ et `partie 3 <https://developer.ibm."
"com/tutorials/l-prog3/>`__,"
#: howto/functional.rst:1246
#: howto/functional.rst:1244
msgid "Python documentation"
msgstr "Documentation Python"
#: howto/functional.rst:1248
#: howto/functional.rst:1246
msgid "Documentation for the :mod:`itertools` module."
msgstr "Documentation du module :mod:`itertools`."
#: howto/functional.rst:1250
#: howto/functional.rst:1248
msgid "Documentation for the :mod:`functools` module."
msgstr "Documentation du module :mod:`functools`."
#: howto/functional.rst:1252
#: howto/functional.rst:1250
msgid "Documentation for the :mod:`operator` module."
msgstr "Documentation du module :mod:`operator`."
#: howto/functional.rst:1254
#: howto/functional.rst:1252
msgid ":pep:`289`: \"Generator Expressions\""
msgstr ":pep:`289`: *\"Generator Expressions\"*"
#: howto/functional.rst:1256
#: howto/functional.rst:1254
msgid ""
":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new "
"generator features in Python 2.5."
msgstr ""
":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles "
"fonctionnalités des générateurs en Python 2.5."
#, fuzzy
#~ msgid ""
#~ "https://en.wikipedia.org/wiki/Partial_application: Entry for the concept "
#~ "of partial function application."
#~ msgstr ""
#~ "https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de "
#~ "curryfication (création d'applications partielles)."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -378,14 +378,14 @@ 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."
"macro:`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."
"with the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag."
msgstr ""
#: howto/isolating-extensions.rst:308
@ -430,7 +430,7 @@ msgid ""
msgstr ""
#: howto/isolating-extensions.rst:336
msgid "Have the :c:data:`Py_TPFLAGS_HAVE_GC` flag."
msgid "Have the :c:macro:`Py_TPFLAGS_HAVE_GC` flag."
msgstr ""
#: howto/isolating-extensions.rst:337
@ -441,7 +441,7 @@ msgstr ""
#: howto/isolating-extensions.rst:340
msgid ""
"Please refer to the :ref:`the documentation <type-structs>` of :c:data:"
"Please refer to the :ref:`the documentation <type-structs>` of :c:macro:"
"`Py_TPFLAGS_HAVE_GC` and :c:member:`~PyTypeObject.tp_traverse` for "
"additional considerations."
msgstr ""
@ -518,9 +518,10 @@ 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::"
"For a method to get its \"defining class\", it must use the :ref:"
"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS <METH_METHOD-METH_FASTCALL-"
"METH_KEYWORDS>` :c:type:`calling convention <PyMethodDef>` and the "
"corresponding :c:type:`PyCMethod` signature::"
msgstr ""
#: howto/isolating-extensions.rst:425

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-02-01 22:16+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -2495,7 +2495,7 @@ msgstr ""
#: howto/logging-cookbook.rst:3635
msgid ""
"Although :rfc:`5424` dates from 2009, most syslog servers are configured by "
"default to use the older :rfc:`3164`, which hails from 2001. When "
"detault to use the older :rfc:`3164`, which hails from 2001. When "
"``logging`` was added to Python in 2003, it supported the earlier (and only "
"existing) protocol at the time. Since RFC5424 came out, as there has not "
"been widespread deployment of it in syslog servers, the :class:`~logging."
@ -2569,7 +2569,7 @@ msgstr ""
#: howto/logging-cookbook.rst:3825
msgid ""
"As you can see, this output isn't ideal. That's because the underlying code "
"which writes to ``sys.stderr`` makes multiple writes, each of which results "
"which writes to ``sys.stderr`` makes mutiple writes, each of which results "
"in a separate logged line (for example, the last three lines above). To get "
"around this problem, you need to buffer things and only output log lines "
"when newlines are seen. Let's use a slghtly better implementation of "

File diff suppressed because it is too large Load Diff

View File

@ -1,151 +0,0 @@
# 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.12\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:21+0200\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: howto/perf_profiling.rst:7
msgid "Python support for the Linux ``perf`` profiler"
msgstr ""
#: howto/perf_profiling.rst:0
msgid "author"
msgstr ""
#: howto/perf_profiling.rst:9
msgid "Pablo Galindo"
msgstr ""
#: howto/perf_profiling.rst:11
msgid ""
"`The Linux perf profiler <https://perf.wiki.kernel.org>`_ is a very powerful "
"tool that allows you to profile and obtain information about the performance "
"of your application. ``perf`` also has a very vibrant ecosystem of tools "
"that aid with the analysis of the data that it produces."
msgstr ""
#: howto/perf_profiling.rst:17
msgid ""
"The main problem with using the ``perf`` profiler with Python applications "
"is that ``perf`` only gets information about native symbols, that is, the "
"names of functions and procedures written in C. This means that the names "
"and file names of Python functions in your code will not appear in the "
"output of ``perf``."
msgstr ""
#: howto/perf_profiling.rst:22
msgid ""
"Since Python 3.12, the interpreter can run in a special mode that allows "
"Python functions to appear in the output of the ``perf`` profiler. When this "
"mode is enabled, the interpreter will interpose a small piece of code "
"compiled on the fly before the execution of every Python function and it "
"will teach ``perf`` the relationship between this piece of code and the "
"associated Python function using `perf map files`_."
msgstr ""
#: howto/perf_profiling.rst:31
msgid ""
"Support for the ``perf`` profiler is currently only available for Linux on "
"select architectures. Check the output of the ``configure`` build step or "
"check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` to "
"see if your system is supported."
msgstr ""
#: howto/perf_profiling.rst:36
msgid "For example, consider the following script:"
msgstr ""
#: howto/perf_profiling.rst:55
msgid "We can run ``perf`` to sample CPU stack traces at 9999 hertz::"
msgstr ""
#: howto/perf_profiling.rst:59
msgid "Then we can use ``perf report`` to analyze the data:"
msgstr ""
#: howto/perf_profiling.rst:100
msgid ""
"As you can see, the Python functions are not shown in the output, only "
"``_Py_Eval_EvalFrameDefault`` (the function that evaluates the Python "
"bytecode) shows up. Unfortunately that's not very useful because all Python "
"functions use the same C function to evaluate bytecode so we cannot know "
"which Python function corresponds to which bytecode-evaluating function."
msgstr ""
#: howto/perf_profiling.rst:105
msgid ""
"Instead, if we run the same experiment with ``perf`` support enabled we get:"
msgstr ""
#: howto/perf_profiling.rst:152
msgid "How to enable ``perf`` profiling support"
msgstr ""
#: howto/perf_profiling.rst:154
msgid ""
"``perf`` profiling support can be enabled either from the start using the "
"environment variable :envvar:`PYTHONPERFSUPPORT` or the :option:`-X perf <-"
"X>` option, or dynamically using :func:`sys.activate_stack_trampoline` and :"
"func:`sys.deactivate_stack_trampoline`."
msgstr ""
#: howto/perf_profiling.rst:160
msgid ""
"The :mod:`!sys` functions take precedence over the :option:`!-X` option, "
"the :option:`!-X` option takes precedence over the environment variable."
msgstr ""
#: howto/perf_profiling.rst:163
msgid "Example, using the environment variable::"
msgstr ""
#: howto/perf_profiling.rst:169
msgid "Example, using the :option:`!-X` option::"
msgstr ""
#: howto/perf_profiling.rst:174
msgid "Example, using the :mod:`sys` APIs in file :file:`example.py`:"
msgstr ""
#: howto/perf_profiling.rst:186
msgid "...then::"
msgstr ""
#: howto/perf_profiling.rst:193
msgid "How to obtain the best results"
msgstr ""
#: howto/perf_profiling.rst:195
msgid ""
"For best results, Python should be compiled with ``CFLAGS=\"-fno-omit-frame-"
"pointer -mno-omit-leaf-frame-pointer\"`` as this allows profilers to unwind "
"using only the frame pointer and not on DWARF debug information. This is "
"because as the code that is interposed to allow ``perf`` support is "
"dynamically generated it doesn't have any DWARF debugging information "
"available."
msgstr ""
#: howto/perf_profiling.rst:202
msgid ""
"You can check if your system has been compiled with this flag by running::"
msgstr ""
#: howto/perf_profiling.rst:206
msgid ""
"If you don't see any output it means that your interpreter has not been "
"compiled with frame pointers and therefore it may not be able to show Python "
"functions in the output of ``perf``."
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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-03-26 12:02+0200\n"
"Last-Translator: Mathieu Dupuy\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -131,7 +131,8 @@ msgid ""
"developers and documentation authors responsible for the maintenance and "
"evolution of the standard packaging tools and the associated metadata and "
"file format standards. They maintain a variety of tools, documentation, and "
"issue trackers on `GitHub <https://github.com/pypa>`__."
"issue trackers on both `GitHub <https://github.com/pypa>`__ and `Bitbucket "
"<https://bitbucket.org/pypa/>`__."
msgstr ""
"le `Python Packaging Authority <https://www.pypa.io/>`__ est le groupe de "
"développeurs et d'auteurs de documentation responsable de la maintenance et "
@ -140,7 +141,7 @@ msgstr ""
"documentation, et d'outils de suivi des problèmes sur les deux sites `GitHub "
"<https://github.com/pypa>`__ et `Bitbucket <https://bitbucket.org/pypa/>`__."
#: installing/index.rst:56
#: installing/index.rst:57
msgid ""
"``distutils`` is the original build and distribution system first added to "
"the Python standard library in 1998. While direct use of ``distutils`` is "
@ -157,14 +158,14 @@ msgstr ""
"d'autres formes, tel que la liste de diffusion utilisée pour coordonner le "
"développement et les standards de la création de paquet."
#: installing/index.rst:64
#: installing/index.rst:65
msgid ""
"The use of ``venv`` is now recommended for creating virtual environments."
msgstr ""
"L'utilisation de ``venv`` est maintenant recommandée pour créer vos "
"environnements virtuels."
#: installing/index.rst:69
#: installing/index.rst:70
msgid ""
"`Python Packaging User Guide: Creating and using virtual environments "
"<https://packaging.python.org/installing/#creating-virtual-environments>`__"
@ -173,11 +174,11 @@ msgstr ""
"environnements virtuels <https://packaging.python.org/installing/#creating-"
"virtual-environments>`__"
#: installing/index.rst:74
#: installing/index.rst:75
msgid "Basic usage"
msgstr "Utilisation de base"
#: installing/index.rst:76
#: installing/index.rst:77
msgid ""
"The standard packaging tools are all designed to be used from the command "
"line."
@ -185,7 +186,7 @@ msgstr ""
"Les outils standards de création de paquets sont tous conçus pour être "
"utilisés à partir de la ligne de commande."
#: installing/index.rst:79
#: installing/index.rst:80
msgid ""
"The following command will install the latest version of a module and its "
"dependencies from the Python Package Index::"
@ -193,7 +194,7 @@ msgstr ""
"La commande suivante va installer la dernière version d'un module et ses "
"dépendances depuis le *Python Package Index* ::"
#: installing/index.rst:86
#: installing/index.rst:87
msgid ""
"For POSIX users (including macOS and Linux users), the examples in this "
"guide assume the use of a :term:`virtual environment`."
@ -201,7 +202,7 @@ msgstr ""
"Pour les utilisateurs POSIX (y compris Mac OS X et Linux), les exemples de "
"ce guide supposent l'utilisation d'un :term:`environnement virtuel`."
#: installing/index.rst:89
#: installing/index.rst:90
msgid ""
"For Windows users, the examples in this guide assume that the option to "
"adjust the system PATH environment variable was selected when installing "
@ -211,7 +212,7 @@ msgstr ""
"l'option proposant de modifier la variable d'environnement PATH à été cochée "
"lors de l'installation de Python."
#: installing/index.rst:93
#: installing/index.rst:94
msgid ""
"It's also possible to specify an exact or minimum version directly on the "
"command line. When using comparator operators such as ``>``, ``<`` or some "
@ -223,7 +224,7 @@ msgstr ""
"``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le "
"*shell*, le nom du paquet et la version doivent être mis entre guillemets ::"
#: installing/index.rst:101
#: installing/index.rst:102
msgid ""
"Normally, if a suitable module is already installed, attempting to install "
"it again will have no effect. Upgrading existing modules must be requested "
@ -233,7 +234,7 @@ msgstr ""
"n'aura aucun effet. La mise à jour de modules existants doit être demandée "
"explicitement ::"
#: installing/index.rst:107
#: installing/index.rst:108
msgid ""
"More information and resources regarding ``pip`` and its capabilities can be "
"found in the `Python Packaging User Guide <https://packaging.python.org>`__."
@ -242,7 +243,7 @@ msgstr ""
"peuvent être trouvées dans le `Python Packaging User Guide <https://"
"packaging.python.org>`__."
#: installing/index.rst:110
#: installing/index.rst:111
msgid ""
"Creation of virtual environments is done through the :mod:`venv` module. "
"Installing packages into an active virtual environment uses the commands "
@ -252,7 +253,7 @@ msgstr ""
"`venv`. Installer des paquets au sein de l'environnement virtuel courant "
"utilise les commandes montrées précédemment."
#: installing/index.rst:116
#: installing/index.rst:117
msgid ""
"`Python Packaging User Guide: Installing Python Distribution Packages "
"<https://packaging.python.org/installing/>`__"
@ -260,21 +261,21 @@ msgstr ""
"`Guide Utilisateur de l'Empaquetage Python : Installer les paquets de la "
"distribution Python <https://packaging.python.org/installing/>`__"
#: installing/index.rst:121
#: installing/index.rst:122
msgid "How do I ...?"
msgstr "Comment puis-je … ?"
#: installing/index.rst:123
#: installing/index.rst:124
msgid "These are quick answers or links for some common tasks."
msgstr ""
"Ce sont des réponses rapides ou des liens pour certaines tâches courantes."
#: installing/index.rst:126
#: installing/index.rst:127
msgid "... install ``pip`` in versions of Python prior to Python 3.4?"
msgstr ""
"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?"
#: installing/index.rst:128
#: installing/index.rst:129
msgid ""
"Python only started bundling ``pip`` with Python 3.4. For earlier versions, "
"``pip`` needs to be \"bootstrapped\" as described in the Python Packaging "
@ -284,7 +285,7 @@ msgstr ""
"précédentes, ``pip`` a besoin d'être \"amorcé\" tel que décrit dans le "
"*Python Packaging User Guide*."
#: installing/index.rst:134
#: installing/index.rst:135
msgid ""
"`Python Packaging User Guide: Requirements for Installing Packages <https://"
"packaging.python.org/installing/#requirements-for-installing-packages>`__"
@ -293,11 +294,11 @@ msgstr ""
"paquets <https://packaging.python.org/installing/#requirements-for-"
"installing-packages>`__"
#: installing/index.rst:141
#: installing/index.rst:142
msgid "... install packages just for the current user?"
msgstr "... Installer des paquets juste pour l'utilisateur actuel ?"
#: installing/index.rst:143
#: installing/index.rst:144
msgid ""
"Passing the ``--user`` option to ``python -m pip install`` will install a "
"package just for the current user, rather than for all users of the system."
@ -306,11 +307,11 @@ msgstr ""
"paquet juste pour l'utilisateur en cours, plutôt que pour tous les "
"utilisateurs du système."
#: installing/index.rst:148
#: installing/index.rst:149
msgid "... install scientific Python packages?"
msgstr "... Installer des paquets Python scientifiques ?"
#: installing/index.rst:150
#: installing/index.rst:151
msgid ""
"A number of scientific Python packages have complex binary dependencies, and "
"aren't currently easy to install using ``pip`` directly. At this point in "
@ -325,7 +326,7 @@ msgstr ""
"packaging.python.org/science/>`__ plutôt que d'essayer de les installer avec "
"``pip``."
#: installing/index.rst:158
#: installing/index.rst:159
msgid ""
"`Python Packaging User Guide: Installing Scientific Packages <https://"
"packaging.python.org/science/>`__"
@ -333,12 +334,12 @@ msgstr ""
"`Guide Utilisateur de l'Empaquetage Python : Installer des paquets "
"scientifiques <https://packaging.python.org/science/>`__"
#: installing/index.rst:163
#: installing/index.rst:164
msgid "... work with multiple versions of Python installed in parallel?"
msgstr ""
"... Travailler avec plusieurs versions de Python installés en parallèle ?"
#: installing/index.rst:165
#: installing/index.rst:166
msgid ""
"On Linux, macOS, and other POSIX systems, use the versioned Python commands "
"in combination with the ``-m`` switch to run the appropriate copy of "
@ -348,13 +349,13 @@ msgstr ""
"de la version souhaitée en combinaison avec l'option ``-m`` permet de lancer "
"la version appropriée de ``pip`` ::"
#: installing/index.rst:174
#: installing/index.rst:175
msgid "Appropriately versioned ``pip`` commands may also be available."
msgstr ""
"Les versions appropriées des commandes ``pip`` peuvent aussi être "
"disponibles."
#: installing/index.rst:176
#: installing/index.rst:177
msgid ""
"On Windows, use the ``py`` Python launcher in combination with the ``-m`` "
"switch::"
@ -362,15 +363,15 @@ msgstr ""
"Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option "
"``-m`` ::"
#: installing/index.rst:193
#: installing/index.rst:194
msgid "Common installation issues"
msgstr "Les problèmes d'installation typiques"
#: installing/index.rst:196
#: installing/index.rst:197
msgid "Installing into the system Python on Linux"
msgstr "Installer dans le Python du système sur Linux"
#: installing/index.rst:198
#: installing/index.rst:199
msgid ""
"On Linux systems, a Python installation will typically be included as part "
"of the distribution. Installing into this Python installation requires root "
@ -385,7 +386,7 @@ msgstr ""
"du système si un composant est mis à jour de façon inattendue en utilisant "
"``pip``."
#: installing/index.rst:204
#: installing/index.rst:205
msgid ""
"On such systems, it is often better to use a virtual environment or a per-"
"user installation when installing packages with ``pip``."
@ -394,11 +395,11 @@ msgstr ""
"virtuel ou une installation par l'utilisateur lors de l'installation des "
"paquets avec ``pip``."
#: installing/index.rst:209
#: installing/index.rst:210
msgid "Pip not installed"
msgstr "``Pip`` n'est pas installé"
#: installing/index.rst:211
#: installing/index.rst:212
msgid ""
"It is possible that ``pip`` does not get installed by default. One potential "
"fix is::"
@ -406,7 +407,7 @@ msgstr ""
"Il est possible que ``pip`` ne soit pas installé par défaut. Une solution "
"est ::"
#: installing/index.rst:215
#: installing/index.rst:216
msgid ""
"There are also additional resources for `installing pip. <https://packaging."
"python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-"
@ -416,11 +417,11 @@ msgstr ""
"<https://packaging.python.org/en/latest/tutorials/installing-packages/"
"#ensure-pip-setuptools-and-wheel-are-up-to-date>`__"
#: installing/index.rst:220
#: installing/index.rst:221
msgid "Installing binary extensions"
msgstr "Installation d'extensions binaires"
#: installing/index.rst:222
#: installing/index.rst:223
msgid ""
"Python has typically relied heavily on source based distribution, with end "
"users being expected to compile extension modules from source as part of the "
@ -430,7 +431,7 @@ msgstr ""
"sources, avec laquelle les utilisateurs finaux devaient compiler, lors de "
"l'installation, les modules d'extension à partir des sources."
#: installing/index.rst:226
#: installing/index.rst:227
msgid ""
"With the introduction of support for the binary ``wheel`` format, and the "
"ability to publish wheels for at least Windows and macOS through the Python "
@ -444,7 +445,7 @@ msgstr ""
"utilisateurs sont plus régulièrement en mesure d'installer des extensions "
"pré-compilées plutôt que de devoir les compiler eux-mêmes."
#: installing/index.rst:232
#: installing/index.rst:233
msgid ""
"Some of the solutions for installing `scientific software <https://packaging."
"python.org/science/>`__ that are not yet available as pre-built ``wheel`` "
@ -456,7 +457,7 @@ msgstr ""
"``wheel`` pré-construites peuvent aussi aider à obtenir d'autres extensions "
"binaires sans devoir les construire localement."
#: installing/index.rst:239
#: installing/index.rst:240
msgid ""
"`Python Packaging User Guide: Binary Extensions <https://packaging.python."
"org/extensions/>`__"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2022-05-18 13:39+0200\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -261,8 +261,8 @@ msgstr ""
#, fuzzy
msgid ""
"By proactively following this convention ourselves, our module will have the "
"same behavior when run directly (i.e. ``python echo.py``) as it will have if "
"we later package it as a console script entry-point in a pip-installable "
"same behavior when run directly (i.e. ``python3 echo.py``) as it will have "
"if we later package it as a console script entry-point in a pip-installable "
"package."
msgstr ""
"Il est utile de se conformer à cette convention. De cette manière, le module "
@ -461,13 +461,14 @@ msgstr ""
"``start`` ?"
#: library/__main__.rst:339
#, fuzzy
msgid ""
"Python inserts an empty ``__main__`` module in :attr:`sys.modules` at "
"Python inserts an empty ``__main__`` module in :data:`sys.modules` at "
"interpreter startup, and populates it by running top-level code. In our "
"example this is the ``start`` module which runs line by line and imports "
"``namely``. In turn, ``namely`` imports ``__main__`` (which is really "
"``start``). That's an import cycle! Fortunately, since the partially "
"populated ``__main__`` module is present in :attr:`sys.modules`, Python "
"populated ``__main__`` module is present in :data:`sys.modules`, Python "
"passes that to ``namely``. See :ref:`Special considerations for __main__ "
"<import-dunder-main>` in the import system's reference for details on how "
"this works."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -94,18 +94,12 @@ msgstr ""
"silencieusement."
#: library/_thread.rst:60
msgid ""
"Raises an :ref:`auditing event <auditing>` ``_thread.start_new_thread`` with "
"arguments ``function``, ``args``, ``kwargs``."
msgstr ""
#: library/_thread.rst:62
msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions."
msgstr ""
":func:`sys.unraisablehook` est maintenant utilisée pour s'occuper des "
"exceptions non gérées."
#: library/_thread.rst:68
#: library/_thread.rst:66
msgid ""
"Simulate the effect of a signal arriving in the main thread. A thread can "
"use this function to interrupt the main thread, though there is no guarantee "
@ -115,27 +109,29 @@ msgstr ""
"d'exécution peut utiliser cette fonction pour interrompre le fil d'exécution "
"principal, bien qu'une interruption immédiate ne soit pas garantie."
#: library/_thread.rst:72
#: library/_thread.rst:70
#, fuzzy
msgid ""
"If given, *signum* is the number of the signal to simulate. If *signum* is "
"not given, :data:`signal.SIGINT` is simulated."
"not given, :const:`signal.SIGINT` is simulated."
msgstr ""
"Le signal simulé est *signum*. La valeur par défaut est :data:`signal."
"SIGINT`."
#: library/_thread.rst:75
#: library/_thread.rst:73
#, fuzzy
msgid ""
"If the given signal isn't handled by Python (it was set to :data:`signal."
"SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing."
"If the given signal isn't handled by Python (it was set to :const:`signal."
"SIG_DFL` or :const:`signal.SIG_IGN`), this function does nothing."
msgstr ""
"Si le signal n'est pas géré par Python (s'il a été paramétré à :data:`signal."
"SIG_DFL` ou :data:`signal.SIG_IGN`), cette fonction ne fait rien."
#: library/_thread.rst:79
#: library/_thread.rst:77
msgid "The *signum* argument is added to customize the signal number."
msgstr "Ajout du paramètre *signum* pour modifier le numéro du signal."
#: library/_thread.rst:83
#: library/_thread.rst:81
msgid ""
"This does not emit the corresponding signal but schedules a call to the "
"associated handler (if it exists). If you want to truly emit the signal, "
@ -145,7 +141,7 @@ msgstr ""
"gestionnaire associé (à condition qu'il existe). Pour émettre réellement le "
"signal, utilisez :func:`signal.raise_signal`."
#: library/_thread.rst:90
#: library/_thread.rst:88
msgid ""
"Raise the :exc:`SystemExit` exception. When not caught, this will cause the "
"thread to exit silently."
@ -153,7 +149,7 @@ msgstr ""
"Lève une exception :exc:`SystemExit`. Quand elle n'est pas interceptée, le "
"fil d'exécution se terminera silencieusement."
#: library/_thread.rst:104
#: library/_thread.rst:102
msgid ""
"Return a new lock object. Methods of locks are described below. The lock "
"is initially unlocked."
@ -161,7 +157,7 @@ msgstr ""
"Renvoie un nouveau verrou. Les méthodes des verrous sont décrites ci-"
"dessous. Le verrou est initialement déverrouillé."
#: library/_thread.rst:110
#: library/_thread.rst:108
msgid ""
"Return the 'thread identifier' of the current thread. This is a nonzero "
"integer. Its value has no direct meaning; it is intended as a magic cookie "
@ -176,7 +172,7 @@ msgstr ""
"être recyclés lorsqu'un fil d'exécution se termine et qu'un autre fil est "
"créé."
#: library/_thread.rst:118
#: library/_thread.rst:116
msgid ""
"Return the native integral Thread ID of the current thread assigned by the "
"kernel. This is a non-negative integer. Its value may be used to uniquely "
@ -189,16 +185,16 @@ msgstr ""
"fil d'exécution se termine, après quoi la valeur peut être recyclée par le "
"système d'exploitation)."
#: library/_thread.rst:123
#: library/_thread.rst:121
#, fuzzy
msgid ""
":ref:`Availability <availability>`: Windows, FreeBSD, Linux, macOS, OpenBSD, "
"NetBSD, AIX, DragonFlyBSD."
"NetBSD, AIX."
msgstr ""
":ref:`Disponibilité <availability>` : Windows, FreeBSD, Linux, macOS, "
"OpenBSD, NetBSD, AIX."
#: library/_thread.rst:130
#: library/_thread.rst:128
msgid ""
"Return the thread stack size used when creating new threads. The optional "
"*size* argument specifies the stack size to be used for subsequently created "
@ -235,18 +231,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:145
#: library/_thread.rst:143
#, 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:147
#: library/_thread.rst:145
msgid "Unix platforms with POSIX threads support."
msgstr ""
#: library/_thread.rst:152
#: 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:"
@ -256,11 +252,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:159
#: library/_thread.rst:157
msgid "Lock objects have the following methods:"
msgstr "Les verrous ont les méthodes suivantes :"
#: library/_thread.rst:164
#: 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 "
@ -272,7 +268,7 @@ 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:168
#: library/_thread.rst:166
#, fuzzy
msgid ""
"If the *blocking* argument is present, the action depends on its value: if "
@ -285,7 +281,7 @@ msgstr ""
"acquis immédiatement, sans attendre, sinon le verrou est acquis "
"inconditionnellement comme ci-dessus."
#: library/_thread.rst:173
#: library/_thread.rst:171
#, fuzzy
msgid ""
"If the floating-point *timeout* argument is present and positive, it "
@ -298,7 +294,7 @@ msgstr ""
"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:178
#: library/_thread.rst:176
msgid ""
"The return value is ``True`` if the lock is acquired successfully, ``False`` "
"if not."
@ -306,16 +302,16 @@ msgstr ""
"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon "
"``False``."
#: library/_thread.rst:181
#: library/_thread.rst:179
msgid "The *timeout* parameter is new."
msgstr "Le paramètre *timeout* est nouveau."
#: library/_thread.rst:184
#: 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:190
#: library/_thread.rst:188
msgid ""
"Releases the lock. The lock must have been acquired earlier, but not "
"necessarily by the same thread."
@ -323,7 +319,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:196
#: library/_thread.rst:194
msgid ""
"Return the status of the lock: ``True`` if it has been acquired by some "
"thread, ``False`` if not."
@ -331,7 +327,7 @@ msgstr ""
"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils "
"d'exécution, sinon ``False``."
#: library/_thread.rst:199
#: library/_thread.rst:197
msgid ""
"In addition to these methods, lock objects can also be used via the :keyword:"
"`with` statement, e.g.::"
@ -339,11 +335,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:209
#: library/_thread.rst:207
msgid "**Caveats:**"
msgstr "**Avertissements :**"
#: library/_thread.rst:213
#: 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` "
@ -354,7 +350,7 @@ msgstr ""
"arbitraire. (Quand le module :mod:`signal` est disponible, les interruptions "
"vont toujours au fil d'exécution principal)."
#: library/_thread.rst:217
#: library/_thread.rst:215
msgid ""
"Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is "
"equivalent to calling :func:`_thread.exit`."
@ -362,7 +358,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:220
#: 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 "
@ -372,7 +368,7 @@ msgstr ""
"— l'exception :exc:`KeyboardInterrupt` surviendra après que le verrou a été "
"acquis."
#: library/_thread.rst:223
#: 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:"
@ -383,7 +379,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:228
#: 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 "
@ -392,3 +388,39 @@ msgstr ""
"Quand le fil d'exécution principal s'arrête, il ne fait pas son nettoyage "
"habituel (excepté que les clauses :keyword:`try`… :keyword:`finally` sont "
"honorées) et les fichiers d'entrée/sortie standards ne sont pas nettoyés."
#: library/_thread.rst:7
msgid "light-weight processes"
msgstr ""
#: library/_thread.rst:7
msgid "processes, light-weight"
msgstr ""
#: library/_thread.rst:7
msgid "binary semaphores"
msgstr ""
#: library/_thread.rst:7
msgid "semaphores, binary"
msgstr ""
#: library/_thread.rst:22
msgid "pthreads"
msgstr ""
#: library/_thread.rst:22
msgid "threads"
msgstr ""
#: library/_thread.rst:22
msgid "POSIX"
msgstr ""
#: library/_thread.rst:209
msgid "module"
msgstr ""
#: library/_thread.rst:209
msgid "signal"
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-07-21 14:55+0200\n"
"PO-Revision-Date: 2020-12-11 15:56+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -259,3 +259,27 @@ msgid ""
"actual size of the audio data. After calling this method, the object can no "
"longer be used."
msgstr ""
#: library/aifc.rst:10
msgid "Audio Interchange File Format"
msgstr ""
#: library/aifc.rst:10
msgid "AIFF"
msgstr ""
#: library/aifc.rst:10
msgid "AIFF-C"
msgstr ""
#: library/aifc.rst:190
msgid "u-LAW"
msgstr ""
#: library/aifc.rst:190
msgid "A-LAW"
msgstr ""
#: library/aifc.rst:190
msgid "G.722"
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: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\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"
@ -530,6 +530,10 @@ msgstr ""
msgid "The NumPy package defines another array type."
msgstr ""
#: library/array.rst:7
msgid "arrays"
msgstr ""
#~ msgid "The following data items and methods are also supported:"
#~ msgstr ""
#~ "Les éléments de données et méthodes suivants sont également supportés :"

File diff suppressed because it is too large Load Diff

243
library/asynchat.po Normal file
View File

@ -0,0 +1,243 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/library/asynchat.rst:2
msgid ":mod:`asynchat` --- Asynchronous socket command/response handler"
msgstr ""
#: ../Doc/library/asynchat.rst:11
msgid "**Source code:** :source:`Lib/asynchat.py`"
msgstr ""
#: ../Doc/library/asynchat.rst:17
msgid ""
"The :mod:`asynchat` module is deprecated (see :pep:`PEP 594 <594#asynchat>` "
"for details). Please use :mod:`asyncio` instead."
msgstr ""
#: ../Doc/library/asynchat.rst:22
msgid ""
"This module exists for backwards compatibility only. For new code we "
"recommend using :mod:`asyncio`."
msgstr ""
#: ../Doc/library/asynchat.rst:25
msgid ""
"This module builds on the :mod:`asyncore` infrastructure, simplifying "
"asynchronous clients and servers and making it easier to handle protocols "
"whose elements are terminated by arbitrary strings, or are of variable "
"length. :mod:`asynchat` defines the abstract class :class:`async_chat` that "
"you subclass, providing implementations of the :meth:`collect_incoming_data` "
"and :meth:`found_terminator` methods. It uses the same asynchronous loop as :"
"mod:`asyncore`, and the two types of channel, :class:`asyncore.dispatcher` "
"and :class:`asynchat.async_chat`, can freely be mixed in the channel map. "
"Typically an :class:`asyncore.dispatcher` server channel generates new :"
"class:`asynchat.async_chat` channel objects as it receives incoming "
"connection requests."
msgstr ""
#: ../Doc/includes/wasm-notavail.rst:3
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 "
"meaningful :meth:`collect_incoming_data` and :meth:`found_terminator` "
"methods. The :class:`asyncore.dispatcher` methods can be used, although not "
"all make sense in a message/response context."
msgstr ""
#: ../Doc/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:"
"func:`select` call. Once the polling loop has been started the :class:"
"`async_chat` object's methods are called by the event-processing framework "
"with no action on the part of the programmer."
msgstr ""
#: ../Doc/library/asynchat.rst:54
msgid ""
"Two class attributes can be modified, to improve performance, or possibly "
"even to conserve memory."
msgstr ""
#: ../Doc/library/asynchat.rst:60
msgid "The asynchronous input buffer size (default ``4096``)."
msgstr ""
#: ../Doc/library/asynchat.rst:65
msgid "The asynchronous output buffer size (default ``4096``)."
msgstr ""
#: ../Doc/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 "
"need have only one method, :meth:`more`, which should return data to be "
"transmitted on the channel. The producer indicates exhaustion (*i.e.* that "
"it contains no more data) by having its :meth:`more` method return the empty "
"bytes object. At this point the :class:`async_chat` object removes the "
"producer from the queue and starts using the next producer, if any. When the "
"producer queue is empty the :meth:`handle_write` method does nothing. You "
"use the channel object's :meth:`set_terminator` method to describe how to "
"recognize the end of, or an important breakpoint in, an incoming "
"transmission from the remote endpoint."
msgstr ""
#: ../Doc/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 "
"data that the channel receives asynchronously. The methods are described "
"below."
msgstr ""
#: ../Doc/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."
msgstr ""
#: ../Doc/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:"
"`NotImplementedError` exception."
msgstr ""
#: ../Doc/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."
msgstr ""
#: ../Doc/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, "
"raises a :exc:`NotImplementedError` exception. The buffered input data "
"should be available via an instance attribute."
msgstr ""
#: ../Doc/library/asynchat.rst:115
msgid "Returns the current terminator for the channel."
msgstr ""
#: ../Doc/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, "
"although it is possible to use your own producers in more complex schemes to "
"implement encryption and chunking, for example."
msgstr ""
#: ../Doc/library/asynchat.rst:128
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 "
"channel will consume this producer's data by calling its :meth:`more` method "
"and send the data to the remote endpoint."
msgstr ""
#: ../Doc/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 "
"handle incoming protocol data."
msgstr ""
#: ../Doc/library/asynchat.rst:141
msgid "term"
msgstr ""
#: ../Doc/library/asynchat.rst:141
msgid "Description"
msgstr ""
#: ../Doc/library/asynchat.rst:143
msgid "*string*"
msgstr ""
#: ../Doc/library/asynchat.rst:143
msgid ""
"Will call :meth:`found_terminator` when the string is found in the input "
"stream"
msgstr ""
#: ../Doc/library/asynchat.rst:146
msgid "*integer*"
msgstr ""
#: ../Doc/library/asynchat.rst:146
msgid ""
"Will call :meth:`found_terminator` when the indicated number of characters "
"have been received"
msgstr ""
#: ../Doc/library/asynchat.rst:150
msgid "``None``"
msgstr ""
#: ../Doc/library/asynchat.rst:150
msgid "The channel continues to collect data forever"
msgstr ""
#: ../Doc/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."
msgstr ""
#: ../Doc/library/asynchat.rst:161
msgid "asynchat Example"
msgstr ""
#: ../Doc/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:"
"`http_request_handler` object for each incoming client connection. Notice "
"that initially the channel terminator is set to match the blank line at the "
"end of the HTTP headers, and a flag indicates that the headers are being "
"read."
msgstr ""
#: ../Doc/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:"
"`` header is used to set a numeric terminator to read the right amount of "
"data from the channel."
msgstr ""
#: ../Doc/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 "
"any extraneous data sent by the web client are ignored. ::"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-19 22:57+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -74,9 +74,10 @@ msgid "In addition to enabling the debug mode, consider also:"
msgstr "En plus d'activer le mode débogage, vous pouvez également :"
#: library/asyncio-dev.rst:36
#, fuzzy
msgid ""
"setting the log level of the :ref:`asyncio logger <asyncio-logger>` to :py:"
"data:`logging.DEBUG`, for example the following snippet of code can be run "
"const:`logging.DEBUG`, for example the following snippet of code can be run "
"at startup of the application::"
msgstr ""
"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:"
@ -276,8 +277,9 @@ msgstr ""
"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``."
#: library/asyncio-dev.rst:145
#, fuzzy
msgid ""
"The default log level is :py:data:`logging.INFO`, which can be easily "
"The default log level is :py:const:`logging.INFO`, which can be easily "
"adjusted::"
msgstr ""
"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut "

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-11 22:40+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -50,7 +50,10 @@ msgstr ""
"toutes les situations, l'exception doit être relancée."
#: library/asyncio-exceptions.rst:34
msgid ":exc:`CancelledError` is now a subclass of :class:`BaseException`."
#, fuzzy
msgid ""
":exc:`CancelledError` is now a subclass of :class:`BaseException` rather "
"than :class:`Exception`."
msgstr ""
":exc:`CancelledError` est maintenant une sous-classe de :class:"
"`BaseException`."

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-17 17:57+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -67,9 +67,10 @@ msgstr ""
"suivantes :"
#: library/asyncio-platforms.rst:38
#, fuzzy
msgid ""
":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are "
"not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix."
"not supported. The :const:`socket.AF_UNIX` socket family is specific to Unix."
msgstr ""
":meth:`loop.create_unix_connection` et :meth:`loop.create_unix_server` ne "
"sont pas prises en charge. La famille de connecteurs :data:`socket.AF_UNIX` "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-17 17:44+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -141,19 +141,19 @@ msgstr ""
"Renvoie un objet observateur implémentant l'interface :class:"
"`AbstractChildWatcher`."
#: library/asyncio-policy.rst:97
#: library/asyncio-policy.rst:95
msgid "This function is Unix specific."
msgstr "Cette fonction est spécifique à Unix."
#: library/asyncio-policy.rst:95
#: 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:104
#: library/asyncio-policy.rst:100
msgid "asyncio ships with the following built-in policies:"
msgstr "*asyncio* est livré avec les politiques intégrées suivantes :"
#: library/asyncio-policy.rst:109
#: library/asyncio-policy.rst:105
msgid ""
"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :"
"class:`ProactorEventLoop` on Windows."
@ -161,7 +161,7 @@ msgstr ""
"La politique *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"les plates-formes Unix et :class:`ProactorEventLoop` sur Windows."
#: library/asyncio-policy.rst:112
#: 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."
@ -170,18 +170,18 @@ msgstr ""
"*asyncio* est configuré pour utiliser automatiquement la politique par "
"défaut."
#: library/asyncio-policy.rst:117
#: library/asyncio-policy.rst:113
msgid "On Windows, :class:`ProactorEventLoop` is now used by default."
msgstr ""
"Sous Windows, :class:`ProactorEventLoop` est désormais utilisée par défaut."
#: library/asyncio-policy.rst:119
#: library/asyncio-policy.rst:116
#, fuzzy
msgid ""
"The :meth:`get_event_loop` method of the default asyncio policy now emits a :"
"exc:`DeprecationWarning` if there is no current event loop set and it "
"decides to create one. In some future Python release this will become an "
"error."
"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 ""
"Dans les versions Python 3.10.9, 3.11.1 et 3.12, la méthode :meth:"
"`get_event_loop` de la politique *asyncio* par défaut lève un :exc:"
@ -189,7 +189,7 @@ msgstr ""
"qu'aucune boucle actuelle n'est définie. Dans une future version de Python, "
"cela deviendra une erreur."
#: library/asyncio-policy.rst:128
#: library/asyncio-policy.rst:124
msgid ""
"An alternative event loop policy that uses the :class:`SelectorEventLoop` "
"event loop implementation."
@ -197,11 +197,11 @@ msgstr ""
"Politique de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:139
#: library/asyncio-policy.rst:135
msgid ":ref:`Availability <availability>`: Windows."
msgstr ":ref:`Disponibilité <availability>` : Windows."
#: library/asyncio-policy.rst:136
#: library/asyncio-policy.rst:132
msgid ""
"An alternative event loop policy that uses the :class:`ProactorEventLoop` "
"event loop implementation."
@ -209,11 +209,11 @@ msgstr ""
"Politique de boucle d'événements alternative utilisant l'implémentation de "
"la boucle d'événements :class:`ProactorEventLoop`."
#: library/asyncio-policy.rst:145
#: library/asyncio-policy.rst:141
msgid "Process Watchers"
msgstr "Observateurs de processus"
#: library/asyncio-policy.rst:147
#: 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 "
@ -224,7 +224,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:151
#: library/asyncio-policy.rst:147
msgid ""
"In asyncio, child processes are created with :func:`create_subprocess_exec` "
"and :meth:`loop.subprocess_exec` functions."
@ -232,7 +232,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:155
#: library/asyncio-policy.rst:151
msgid ""
"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which "
"child watchers should implement, and has four different implementations: :"
@ -246,7 +246,7 @@ msgstr ""
"être utilisé par défaut), :class:`MultiLoopChildWatcher`, :class:"
"`SafeChildWatcher` et :class:`FastChildWatcher`."
#: library/asyncio-policy.rst:161
#: library/asyncio-policy.rst:157
msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
@ -254,7 +254,7 @@ msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <asyncio-"
"subprocess-threads>`."
#: library/asyncio-policy.rst:164
#: 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:"
@ -263,11 +263,11 @@ msgstr ""
"l'implémentation de l'observateur de processus enfant utilisé par la boucle "
"d'événements *asyncio* :"
#: library/asyncio-policy.rst:169
#: library/asyncio-policy.rst:165
msgid "Return the current child watcher for the current policy."
msgstr "Renvoie l'observateur enfant actuel pour la politique actuelle."
#: library/asyncio-policy.rst:175
#: 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:"
@ -277,7 +277,7 @@ msgstr ""
"*watcher* doit implémenter les méthodes définies dans la classe de base :"
"class:`AbstractChildWatcher`."
#: library/asyncio-policy.rst:182
#: 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 "
@ -288,11 +288,11 @@ msgstr ""
"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou "
"n'avoir aucun effet."
#: library/asyncio-policy.rst:190
#: library/asyncio-policy.rst:182
msgid "Register a new child handler."
msgstr "Enregistre un nouveau gestionnaire."
#: library/asyncio-policy.rst:192
#: 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 "
@ -302,17 +302,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:197
#: 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:201
#: 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:203
#: library/asyncio-policy.rst:195
msgid ""
"The function returns ``True`` if the handler was successfully removed, "
"``False`` if there was nothing to remove."
@ -320,11 +320,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:208
#: 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:210
#: 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."
@ -332,15 +332,15 @@ 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:213
#: library/asyncio-policy.rst:205
msgid "Note: loop may be ``None``."
msgstr "Remarque : la boucle peut être ``None``."
#: library/asyncio-policy.rst:217
#: library/asyncio-policy.rst:209
msgid "Return ``True`` if the watcher is ready to use."
msgstr "Renvoie ``True`` si l'observateur est prêt à être utilisé."
#: library/asyncio-policy.rst:219
#: library/asyncio-policy.rst:211
msgid ""
"Spawning a subprocess with *inactive* current child watcher raises :exc:"
"`RuntimeError`."
@ -348,11 +348,11 @@ msgstr ""
"La création d'un sous-processus avec un observateur enfant actuel *inactif* "
"lève une :exc:`RuntimeError`."
#: library/asyncio-policy.rst:226
#: library/asyncio-policy.rst:218
msgid "Close the watcher."
msgstr "Ferme l'observateur."
#: library/asyncio-policy.rst:228
#: library/asyncio-policy.rst:220
msgid ""
"This method has to be called to ensure that underlying resources are cleaned-"
"up."
@ -360,14 +360,14 @@ msgstr ""
"Cette méthode doit être appelée pour s'assurer que les ressources sous-"
"jacentes sont nettoyées."
#: library/asyncio-policy.rst:236
#: library/asyncio-policy.rst:225
msgid ""
"This implementation starts a new waiting thread for every subprocess spawn."
msgstr ""
"Cette implémentation démarre un nouveau fil d'exécution en attente pour "
"chaque génération de sous-processus."
#: library/asyncio-policy.rst:238
#: library/asyncio-policy.rst:227
msgid ""
"It works reliably even when the asyncio event loop is run in a non-main OS "
"thread."
@ -375,7 +375,7 @@ msgstr ""
"Il fonctionne de manière fiable même lorsque la boucle d'événements "
"*asyncio* est exécutée dans un fil d'exécution non principal."
#: library/asyncio-policy.rst:240
#: library/asyncio-policy.rst:229
msgid ""
"There is no noticeable overhead when handling a big number of children "
"(*O(1)* each time a child terminates), but starting a thread per process "
@ -384,11 +384,11 @@ 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:243
#: library/asyncio-policy.rst:232
msgid "This watcher is used by default."
msgstr "Cet observateur est utilisé par défaut."
#: library/asyncio-policy.rst:249
#: 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 "
@ -398,7 +398,7 @@ msgstr ""
"lors de l'instanciation. Cela peut casser le code tiers qui installe un "
"gestionnaire personnalisé pour le signal :py:data:`SIGCHLD`."
#: library/asyncio-policy.rst:273
#: 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."
@ -406,7 +406,7 @@ msgstr ""
"L'observateur évite de perturber un autre code qui crée des processus en "
"interrogeant explicitement chaque processus sur un signal :py:data:`SIGCHLD`."
#: library/asyncio-policy.rst:256
#: library/asyncio-policy.rst:245
msgid ""
"There is no limitation for running subprocesses from different threads once "
"the watcher is installed."
@ -414,7 +414,7 @@ msgstr ""
"Il n'y a aucune limitation pour l'exécution de sous-processus à partir de "
"différents fils d'exécution une fois l'observateur installé."
#: library/asyncio-policy.rst:259
#: 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)."
@ -423,7 +423,7 @@ msgstr ""
"d'un grand nombre de processus (*O(n)* chaque fois qu'un :py:data:`SIGCHLD` "
"est reçu)."
#: library/asyncio-policy.rst:269
#: 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 "
@ -435,7 +435,7 @@ msgstr ""
"un autre fil ne pourra pas générer de sous-processus (une :exc:"
"`RuntimeError` est levée)."
#: library/asyncio-policy.rst:276
#: 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 "
@ -445,7 +445,7 @@ msgstr ""
"même complexité en *O(N)* mais nécessite une boucle d'événements en cours "
"d'exécution dans le fil d'exécution principal pour fonctionner."
#: library/asyncio-policy.rst:283
#: 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 "
@ -455,7 +455,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:287
#: 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)."
@ -463,7 +463,7 @@ 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:290
#: library/asyncio-policy.rst:275
msgid ""
"This solution requires a running event loop in the main thread to work, as :"
"class:`SafeChildWatcher`."
@ -472,7 +472,7 @@ msgstr ""
"le fil d'exécution principal pour fonctionner, comme :class:"
"`SafeChildWatcher`."
#: library/asyncio-policy.rst:297
#: 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 "
@ -491,11 +491,11 @@ msgstr ""
"d'événements. Le principal inconvénient est que les *pidfds* sont "
"spécifiques à Linux et ne fonctionnent que sur les noyaux récents (5.3+)."
#: library/asyncio-policy.rst:311
#: library/asyncio-policy.rst:294
msgid "Custom Policies"
msgstr "Politiques personnalisées"
#: library/asyncio-policy.rst:313
#: 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 "

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-29 21:12+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -51,13 +51,13 @@ msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat."
#, fuzzy
msgid ""
"This function runs the passed coroutine, taking care of managing the asyncio "
"event loop, *finalizing asynchronous generators*, and closing the executor."
"event loop, *finalizing asynchronous generators*, and closing the threadpool."
msgstr ""
"Cette fonction exécute la coroutine transmise, en s'occupant de gérer la "
"boucle d'événements *asyncio*, de *finaliser les générateurs asynchrones* et "
"de terminer correctement les fils d'exécution."
#: library/asyncio-runner.rst:113
#: library/asyncio-runner.rst:103
msgid ""
"This function cannot be called when another asyncio event loop is running in "
"the same thread."
@ -65,7 +65,7 @@ msgstr ""
"Cette fonction ne peut pas être appelée lorsqu'une autre boucle d'événement "
"asynchrone est en cours d'exécution dans le même fil d'exécution."
#: library/asyncio-runner.rst:83
#: library/asyncio-runner.rst:73
msgid ""
"If *debug* is ``True``, the event loop will be run in debug mode. ``False`` "
"disables debug mode explicitly. ``None`` is used to respect the global :ref:"
@ -78,45 +78,35 @@ msgstr ""
#: library/asyncio-runner.rst:40
msgid ""
"If *loop_factory* is not ``None``, it is used to create a new event loop; "
"otherwise :func:`asyncio.new_event_loop` is used. The loop is closed at the "
"end. This function should be used as a main entry point for asyncio "
"programs, and should ideally only be called once. It is recommended to use "
"*loop_factory* to configure the event loop instead of policies."
"This function always creates a new event loop and closes it at the end. It "
"should be used as a main entry point for asyncio programs, and should "
"ideally only be called once."
msgstr ""
"Cette fonction crée toujours une nouvelle boucle d'événements et la ferme à "
"la fin. Elle doit être utilisée comme point d'entrée principal pour les "
"programmes asynchrones et ne doit idéalement être appelée qu'une seule fois."
#: library/asyncio-runner.rst:46
msgid ""
"The executor is given a timeout duration of 5 minutes to shutdown. If the "
"executor hasn't finished within that duration, a warning is emitted and the "
"executor is closed."
msgstr ""
#: library/asyncio-runner.rst:50
#: library/asyncio-runner.rst:44
msgid "Example::"
msgstr "Exemple ::"
# suit un :
#: library/asyncio-runner.rst:60
#: library/asyncio-runner.rst:54
msgid "Updated to use :meth:`loop.shutdown_default_executor`."
msgstr "mise à jour pour utiliser :meth:`loop.shutdown_default_executor`."
#: library/asyncio-runner.rst:65
#: library/asyncio-runner.rst:59
msgid ""
"*debug* is ``None`` by default to respect the global debug mode settings."
msgstr ""
"*debug* vaut ``None`` par défaut pour respecter les paramètres du mode de "
"débogage global."
#: library/asyncio-runner.rst:69
msgid "Added *loop_factory* parameter."
msgstr ""
#: library/asyncio-runner.rst:73
#: library/asyncio-runner.rst:63
msgid "Runner context manager"
msgstr "Gestionnaire de contexte de l'exécuteur"
#: library/asyncio-runner.rst:77
#: library/asyncio-runner.rst:67
msgid ""
"A context manager that simplifies *multiple* async function calls in the "
"same context."
@ -124,7 +114,7 @@ msgstr ""
"Gestionnaire de contexte englobant *plusieurs* appels de fonctions "
"asynchrones dans le même contexte."
#: library/asyncio-runner.rst:80
#: library/asyncio-runner.rst:70
msgid ""
"Sometimes several top-level async functions should be called in the same :"
"ref:`event loop <asyncio-event-loop>` and :class:`contextvars.Context`."
@ -133,7 +123,7 @@ msgstr ""
"appelées dans la même :ref:`boucle d'événements <asyncio-event-loop>` et le "
"même :class:`contextvars.Context`."
#: library/asyncio-runner.rst:87
#: library/asyncio-runner.rst:77
msgid ""
"*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 "
@ -146,7 +136,7 @@ msgstr ""
"comme boucle d'événements actuelle avec :func:`asyncio.set_event_loop` si "
"*loop_factory* vaut ``None``."
#: library/asyncio-runner.rst:92
#: library/asyncio-runner.rst:82
msgid ""
"Basically, :func:`asyncio.run()` example can be rewritten with the runner "
"usage::"
@ -154,17 +144,17 @@ msgstr ""
"Fondamentalement, l'exemple :func:`asyncio.run()` peut être réécrit avec "
"l'utilisation de l'exécuteur suivant ::"
#: library/asyncio-runner.rst:105
#: library/asyncio-runner.rst:95
msgid "Run a :term:`coroutine <coroutine>` *coro* in the embedded loop."
msgstr ""
"Exécute la :term:`coroutine <coroutine>` *coro* dans la boucle d'événements "
"en cours."
#: library/asyncio-runner.rst:107
#: library/asyncio-runner.rst:97
msgid "Return the coroutine's result or raise its exception."
msgstr "Renvoie le résultat de la coroutine ou lève les exceptions afférentes."
#: library/asyncio-runner.rst:109
#: 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 "
@ -174,11 +164,11 @@ msgstr ""
"class:`contextvars.Context` personnalisé pour la coroutine à exécuter. Le "
"contexte par défaut de l'exécuteur est utilisé si *context* est ``None``."
#: library/asyncio-runner.rst:118
#: library/asyncio-runner.rst:108
msgid "Close the runner."
msgstr "Termine l'exécuteur."
#: library/asyncio-runner.rst:120
#: library/asyncio-runner.rst:110
msgid ""
"Finalize asynchronous generators, shutdown default executor, close the event "
"loop and release embedded :class:`contextvars.Context`."
@ -186,11 +176,11 @@ msgstr ""
"Finalise les générateurs asynchrones, arrête l'exécuteur par défaut, ferme "
"la boucle d'événements et libère le :class:`contextvars.Context` en cours."
#: library/asyncio-runner.rst:125
#: library/asyncio-runner.rst:115
msgid "Return the event loop associated with the runner instance."
msgstr "Renvoie la boucle d'événements associée à l'instance de l'exécuteur."
#: library/asyncio-runner.rst:129
#: library/asyncio-runner.rst:119
msgid ""
":class:`Runner` uses the lazy initialization strategy, its constructor "
"doesn't initialize underlying low-level structures."
@ -198,7 +188,7 @@ msgstr ""
":class:`Runner` utilise la stratégie d'initialisation paresseuse, son "
"constructeur n'initialise pas les structures de bas niveau sous-jacentes."
#: library/asyncio-runner.rst:132
#: 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`."
@ -207,11 +197,11 @@ msgstr ""
"l'entrée du corps de :keyword:`with` ou au premier appel de :meth:`run` ou :"
"meth:`get_loop`."
#: library/asyncio-runner.rst:137
#: library/asyncio-runner.rst:127
msgid "Handling Keyboard Interruption"
msgstr "Gestion de l'interruption par le clavier"
#: library/asyncio-runner.rst:141
#: 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. "
@ -224,7 +214,7 @@ msgstr ""
"peut interrompre le fonctionnement interne de *asyncio* et empêcher le "
"programme de se terminer."
#: library/asyncio-runner.rst:146
#: library/asyncio-runner.rst:136
msgid ""
"To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as "
"follows:"
@ -232,7 +222,7 @@ msgstr ""
"Pour contrer ce problème, :mod:`asyncio` gère :const:`signal.SIGINT` comme "
"suit :"
#: library/asyncio-runner.rst:148
#: 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 "
@ -242,7 +232,7 @@ msgstr ""
"personnalisé avant l'exécution de tout code utilisateur et le supprime à la "
"sortie de la fonction."
#: library/asyncio-runner.rst:150
#: library/asyncio-runner.rst:140
msgid ""
"The :class:`~asyncio.Runner` creates the main task for the passed coroutine "
"for its execution."
@ -250,7 +240,7 @@ msgstr ""
"Le :class:`~asyncio.Runner` crée la tâche principale pour la coroutine "
"transmise pour son exécution."
#: library/asyncio-runner.rst:152
#: 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 "
@ -267,7 +257,7 @@ msgstr ""
"pour le nettoyage des ressources. Une fois la tâche principale annulée, :"
"meth:`asyncio.Runner.run` lève :exc:`KeyboardInterrupt`."
#: library/asyncio-runner.rst:158
#: 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` "
@ -278,13 +268,3 @@ msgstr ""
"être interrompue par :meth:`asyncio.Task.cancel` ; dans ce cas la seconde "
"suivante :kbd:`Ctrl-C` lève immédiatement le :exc:`KeyboardInterrupt` sans "
"annuler la tâche principale."
#~ msgid ""
#~ "This function always creates a new event loop and closes it at the end. "
#~ "It should be used as a main entry point for asyncio programs, and should "
#~ "ideally only be called once."
#~ msgstr ""
#~ "Cette fonction crée toujours une nouvelle boucle d'événements et la ferme "
#~ "à la fin. Elle doit être utilisée comme point d'entrée principal pour les "
#~ "programmes asynchrones et ne doit idéalement être appelée qu'une seule "
#~ "fois."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-07-04 23:07+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -116,7 +116,6 @@ msgstr "suppression du paramètre *loop*."
# suit un :
#: library/asyncio-stream.rst:128 library/asyncio-stream.rst:190
#: library/asyncio-stream.rst:368
msgid "Added the *ssl_shutdown_timeout* parameter."
msgstr "ajout du paramètre *ssl_shutdown_timeout*."
@ -481,27 +480,16 @@ msgstr ""
"poignée de main TLS se termine avant d'abandonner la connexion. ``60.0`` "
"secondes si ``None`` (par défaut)."
#: library/asyncio-stream.rst:362
#, fuzzy
msgid ""
"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown "
"to complete before aborting the connection. ``30.0`` seconds if ``None`` "
"(default)."
msgstr ""
"*ssl_handshake_timeout* est le temps en secondes à attendre pour que la "
"poignée de main TLS se termine avant d'abandonner la connexion. ``60.0`` "
"secondes si ``None`` (par défaut)."
#: library/asyncio-stream.rst:374
#: library/asyncio-stream.rst:366
msgid ""
"Return ``True`` if the stream is closed or in the process of being closed."
msgstr "Renvoie ``True`` si le flux est fermé ou en cours de fermeture."
#: library/asyncio-stream.rst:381
#: library/asyncio-stream.rst:373
msgid "Wait until the stream is closed."
msgstr "Attend que le flux soit fermé."
#: library/asyncio-stream.rst:383
#: library/asyncio-stream.rst:375
msgid ""
"Should be called after :meth:`close` to wait until the underlying connection "
"is closed, ensuring that all data has been flushed before e.g. exiting the "
@ -511,20 +499,20 @@ msgstr ""
"jacente soit fermée, en s'assurant que toutes les données ont été vidées "
"avant, par exemple, de quitter le programme."
#: library/asyncio-stream.rst:391
#: library/asyncio-stream.rst:383
msgid "Examples"
msgstr "Exemples"
#: library/asyncio-stream.rst:396
#: library/asyncio-stream.rst:388
msgid "TCP echo client using streams"
msgstr "Client d'écho TCP utilisant des flux"
#: library/asyncio-stream.rst:398
#: library/asyncio-stream.rst:390
msgid "TCP echo client using the :func:`asyncio.open_connection` function::"
msgstr ""
"Client d'écho TCP utilisant la fonction :func:`asyncio.open_connection` ::"
#: library/asyncio-stream.rst:422
#: library/asyncio-stream.rst:414
msgid ""
"The :ref:`TCP echo client protocol "
"<asyncio_example_tcp_echo_client_protocol>` example uses the low-level :meth:"
@ -533,16 +521,16 @@ msgstr ""
"L'exemple :ref:`asyncio_example_tcp_echo_client_protocol` utilise la méthode "
"de bas niveau :meth:`loop.create_connection`."
#: library/asyncio-stream.rst:429
#: library/asyncio-stream.rst:421
msgid "TCP echo server using streams"
msgstr "Serveur d'écho TCP utilisant des flux"
#: library/asyncio-stream.rst:431
#: library/asyncio-stream.rst:423
msgid "TCP echo server using the :func:`asyncio.start_server` function::"
msgstr ""
"Serveur d'écho TCP utilisant la fonction :func:`asyncio.start_server` ::"
#: library/asyncio-stream.rst:465
#: library/asyncio-stream.rst:457
msgid ""
"The :ref:`TCP echo server protocol "
"<asyncio_example_tcp_echo_server_protocol>` example uses the :meth:`loop."
@ -551,30 +539,30 @@ msgstr ""
"L'exemple de :ref:`asyncio_example_tcp_echo_server_protocol` utilise la "
"méthode :meth:`loop.create_server`."
#: library/asyncio-stream.rst:470
#: library/asyncio-stream.rst:462
msgid "Get HTTP headers"
msgstr "Récupération des en-têtes HTTP"
#: library/asyncio-stream.rst:472
#: library/asyncio-stream.rst:464
msgid ""
"Simple example querying HTTP headers of the URL passed on the command line::"
msgstr ""
"Exemple simple d'interrogation des en-têtes HTTP de l'URL transmise sur la "
"ligne de commande ::"
#: library/asyncio-stream.rst:511
#: library/asyncio-stream.rst:503
msgid "Usage::"
msgstr "Utilisation ::"
#: library/asyncio-stream.rst:515
#: library/asyncio-stream.rst:507
msgid "or with HTTPS::"
msgstr "ou avec HTTPS ::"
#: library/asyncio-stream.rst:523
#: library/asyncio-stream.rst:515
msgid "Register an open socket to wait for data using streams"
msgstr "Ouverture d'un connecteur pour attendre les données à l'aide de flux"
#: library/asyncio-stream.rst:525
#: library/asyncio-stream.rst:517
msgid ""
"Coroutine waiting until a socket receives data using the :func:"
"`open_connection` function::"
@ -582,7 +570,7 @@ msgstr ""
"Coroutine attendant qu'un connecteur reçoive des données en utilisant la "
"fonction :func:`open_connection` ::"
#: library/asyncio-stream.rst:560
#: library/asyncio-stream.rst:552
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 "
@ -591,7 +579,7 @@ msgstr ""
"L'exemple :ref:`asyncio_example_create_connection` utilise un protocole de "
"bas niveau et la méthode :meth:`loop.create_connection`."
#: library/asyncio-stream.rst:564
#: library/asyncio-stream.rst:556
msgid ""
"The :ref:`watch a file descriptor for read events "
"<asyncio_example_watch_fd>` example uses the low-level :meth:`loop."
@ -599,3 +587,13 @@ msgid ""
msgstr ""
"L'exemple :ref:`asyncio_example_watch_fd` utilise la méthode de bas niveau :"
"meth:`loop.add_reader` pour surveiller un descripteur de fichier."
#, fuzzy
#~ msgid ""
#~ "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL "
#~ "shutdown to complete before aborting the connection. ``30.0`` seconds if "
#~ "``None`` (default)."
#~ msgstr ""
#~ "*ssl_handshake_timeout* est le temps en secondes à attendre pour que la "
#~ "poignée de main TLS se termine avant d'abandonner la connexion. ``60.0`` "
#~ "secondes si ``None`` (par défaut)."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-18 17:17+0200\n"
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
"PO-Revision-Date: 2023-06-17 10:31+0200\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -73,9 +73,10 @@ msgid "Create a subprocess."
msgstr "Crée un sous-processus."
#: library/asyncio-subprocess.rst:69 library/asyncio-subprocess.rst:87
#, fuzzy
msgid ""
"The *limit* argument sets the buffer limit for :class:`StreamReader` "
"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:"
"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :const:"
"`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)."
msgstr ""
"Le paramètre *limit* définit la taille maximale du tampon pour les instances "
@ -309,20 +310,16 @@ msgid "send data to *stdin* (if *input* is not ``None``);"
msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``) ;"
#: library/asyncio-subprocess.rst:210
msgid "closes *stdin*;"
msgstr ""
#: library/asyncio-subprocess.rst:211
msgid "read data from *stdout* and *stderr*, until EOF is reached;"
msgstr ""
"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit "
"atteint ;"
#: library/asyncio-subprocess.rst:212
#: library/asyncio-subprocess.rst:211
msgid "wait for process to terminate."
msgstr "attend que le processus s'arrête."
#: library/asyncio-subprocess.rst:214
#: library/asyncio-subprocess.rst:213
msgid ""
"The optional *input* argument is the data (:class:`bytes` object) that will "
"be sent to the child process."
@ -330,11 +327,11 @@ msgstr ""
"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les "
"données transmises au sous-processus."
#: library/asyncio-subprocess.rst:217
#: library/asyncio-subprocess.rst:216
msgid "Return a tuple ``(stdout_data, stderr_data)``."
msgstr "Renvoie un *n*-uplet ``(stdout_data, stderr_data)``."
#: library/asyncio-subprocess.rst:219
#: library/asyncio-subprocess.rst:218
msgid ""
"If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is "
"raised when writing *input* into *stdin*, the exception is ignored. This "
@ -346,7 +343,7 @@ msgstr ""
"l'exception est ignorée. Cette condition se produit lorsque le processus se "
"termine avant que toutes les données ne soient écrites dans *stdin*."
#: library/asyncio-subprocess.rst:224
#: library/asyncio-subprocess.rst:223
msgid ""
"If it is desired to send data to the process' *stdin*, the process needs to "
"be created with ``stdin=PIPE``. Similarly, to get anything other than "
@ -358,7 +355,7 @@ msgstr ""
"``None`` dans le *n*-uplet résultat, le processus doit être créé avec les "
"arguments ``stdout=PIPE`` et/ou ``stderr=PIPE``."
#: library/asyncio-subprocess.rst:230
#: library/asyncio-subprocess.rst:229
msgid ""
"Note, that the data read is buffered in memory, so do not use this method if "
"the data size is large or unlimited."
@ -366,16 +363,12 @@ msgstr ""
"Notez que les données lues sont mises en cache en mémoire, donc n'utilisez "
"pas cette méthode si la taille des données est importante voire illimitée."
#: library/asyncio-subprocess.rst:235
msgid "*stdin* gets closed when `input=None` too."
msgstr ""
#: library/asyncio-subprocess.rst:239
#: library/asyncio-subprocess.rst:234
msgid "Sends the signal *signal* to the child process."
msgstr "Envoie le signal *signal* au sous-processus."
# suit un :
#: library/asyncio-subprocess.rst:243
#: library/asyncio-subprocess.rst:238
msgid ""
"On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. "
"``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started "
@ -386,19 +379,20 @@ msgstr ""
"démarrés avec un paramètre *creationflags* incluant "
"``CREATE_NEW_PROCESS_GROUP``."
#: library/asyncio-subprocess.rst:250
#: library/asyncio-subprocess.rst:245
msgid "Stop the child process."
msgstr "Arrête le sous-processus."
#: library/asyncio-subprocess.rst:252
#: library/asyncio-subprocess.rst:247
#, fuzzy
msgid ""
"On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child "
"On POSIX systems this method sends :py:const:`signal.SIGTERM` to the child "
"process."
msgstr ""
"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au "
"sous-processus."
#: library/asyncio-subprocess.rst:255
#: library/asyncio-subprocess.rst:250
msgid ""
"On Windows the Win32 API function :c:func:`TerminateProcess` is called to "
"stop the child process."
@ -406,22 +400,22 @@ msgstr ""
"Sous Windows, la fonction API Win32 :c:func:`TerminateProcess` est appelée "
"pour arrêter le processus enfant."
#: library/asyncio-subprocess.rst:260
#: library/asyncio-subprocess.rst:255
msgid "Kill the child process."
msgstr "Arrête le sous-processus."
#: library/asyncio-subprocess.rst:262
#: library/asyncio-subprocess.rst:257
msgid ""
"On POSIX systems this method sends :py:data:`SIGKILL` to the child process."
msgstr ""
"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au "
"sous-processus."
#: library/asyncio-subprocess.rst:265
#: library/asyncio-subprocess.rst:260
msgid "On Windows this method is an alias for :meth:`terminate`."
msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`."
#: library/asyncio-subprocess.rst:269
#: library/asyncio-subprocess.rst:264
msgid ""
"Standard input stream (:class:`StreamWriter`) or ``None`` if the process was "
"created with ``stdin=None``."
@ -429,7 +423,7 @@ msgstr ""
"Flux d'entrée standard (:class:`StreamWriter`) ou ``None`` si le processus a "
"été créé avec ``stdin=None``."
#: library/asyncio-subprocess.rst:274
#: library/asyncio-subprocess.rst:269
msgid ""
"Standard output stream (:class:`StreamReader`) or ``None`` if the process "
"was created with ``stdout=None``."
@ -437,7 +431,7 @@ msgstr ""
"Flux de sortie standard (:class:`StreamReader`) ou ``None`` si le processus "
"a été créé avec ``stdout=None``."
#: library/asyncio-subprocess.rst:279
#: library/asyncio-subprocess.rst:274
msgid ""
"Standard error stream (:class:`StreamReader`) or ``None`` if the process was "
"created with ``stderr=None``."
@ -446,7 +440,7 @@ msgstr ""
"été créé avec ``stderr=None``."
# suit un :
#: library/asyncio-subprocess.rst:284
#: library/asyncio-subprocess.rst:279
msgid ""
"Use the :meth:`communicate` method rather than :attr:`process.stdin.write() "
"<stdin>`, :attr:`await process.stdout.read() <stdout>` or :attr:`await "
@ -458,13 +452,13 @@ msgstr ""
"process.stderr.read() <stderr>`. Cela évite les interblocages dus aux flux "
"qui interrompent la lecture ou l'écriture et bloquent le processus enfant."
#: library/asyncio-subprocess.rst:293
#: library/asyncio-subprocess.rst:288
msgid "Process identification number (PID)."
msgstr ""
"Numéro d'identification du processus (PID, pour *Process Identification "
"Number* en anglais)."
#: library/asyncio-subprocess.rst:295
#: library/asyncio-subprocess.rst:290
msgid ""
"Note that for processes created by the :func:`create_subprocess_shell` "
"function, this attribute is the PID of the spawned shell."
@ -472,15 +466,15 @@ msgstr ""
"Notez que pour les processus créés par la fonction :func:"
"`create_subprocess_shell`, cet attribut est le PID du shell généré."
#: library/asyncio-subprocess.rst:300
#: library/asyncio-subprocess.rst:295
msgid "Return code of the process when it exits."
msgstr "Code de retour du processus quand il se termine."
#: library/asyncio-subprocess.rst:302
#: library/asyncio-subprocess.rst:297
msgid "A ``None`` value indicates that the process has not terminated yet."
msgstr "Une valeur ``None`` indique que le processus n'est pas encore terminé."
#: library/asyncio-subprocess.rst:304
#: library/asyncio-subprocess.rst:299
msgid ""
"A negative value ``-N`` indicates that the child was terminated by signal "
"``N`` (POSIX only)."
@ -488,11 +482,11 @@ msgstr ""
"Une valeur négative ``-N`` indique que le sous-processus a été terminé par "
"le signal ``N`` (seulement sur les systèmes *POSIX*)."
#: library/asyncio-subprocess.rst:311
#: library/asyncio-subprocess.rst:306
msgid "Subprocess and Threads"
msgstr "Sous-processus et fils d'exécution"
#: library/asyncio-subprocess.rst:313
#: library/asyncio-subprocess.rst:308
msgid ""
"Standard asyncio event loop supports running subprocesses from different "
"threads by default."
@ -500,7 +494,7 @@ msgstr ""
"La boucle d'événement asynchrone standard prend en charge l'exécution de "
"sous-processus à partir de différents fils d'exécution par défaut."
#: library/asyncio-subprocess.rst:316
#: library/asyncio-subprocess.rst:311
msgid ""
"On Windows subprocesses are provided by :class:`ProactorEventLoop` only "
"(default), :class:`SelectorEventLoop` has no subprocess support."
@ -509,7 +503,7 @@ msgstr ""
"uniquement (par défaut), :class:`SelectorEventLoop` ne prend pas en charge "
"les sous-processus."
#: library/asyncio-subprocess.rst:319
#: library/asyncio-subprocess.rst:314
msgid ""
"On UNIX *child watchers* are used for subprocess finish waiting, see :ref:"
"`asyncio-watchers` for more info."
@ -518,7 +512,7 @@ msgstr ""
"l'attente de fin de sous-processus, voir :ref:`asyncio-watchers` pour plus "
"d'informations."
#: library/asyncio-subprocess.rst:325
#: library/asyncio-subprocess.rst:320
msgid ""
"UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses "
"from different threads without any limitation."
@ -526,7 +520,7 @@ msgstr ""
"UNIX est passé à l'utilisation de :class:`ThreadedChildWatcher` pour générer "
"des sous-processus à partir de différents threads sans aucune limitation."
#: library/asyncio-subprocess.rst:328
#: library/asyncio-subprocess.rst:323
msgid ""
"Spawning a subprocess with *inactive* current child watcher raises :exc:"
"`RuntimeError`."
@ -534,7 +528,7 @@ msgstr ""
"Instancier un sous-processus avec un observateur enfant actuel *inactif* "
"lève l'exception :exc:`RuntimeError`."
#: library/asyncio-subprocess.rst:331
#: library/asyncio-subprocess.rst:326
msgid ""
"Note that alternative event loop implementations might have own limitations; "
"please refer to their documentation."
@ -544,7 +538,7 @@ msgstr ""
"documentation."
# suit un :
#: library/asyncio-subprocess.rst:336
#: library/asyncio-subprocess.rst:331
msgid ""
"The :ref:`Concurrency and multithreading in asyncio <asyncio-"
"multithreading>` section."
@ -552,11 +546,11 @@ msgstr ""
"la section :ref:`Exécution concurrente et multi-fils d'exécution <asyncio-"
"multithreading>`."
#: library/asyncio-subprocess.rst:341
#: library/asyncio-subprocess.rst:336
msgid "Examples"
msgstr "Exemples"
#: library/asyncio-subprocess.rst:343
#: library/asyncio-subprocess.rst:338
msgid ""
"An example using the :class:`~asyncio.subprocess.Process` class to control a "
"subprocess and the :class:`StreamReader` class to read from its standard "
@ -566,13 +560,13 @@ msgstr ""
"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa "
"sortie standard."
#: library/asyncio-subprocess.rst:349
#: library/asyncio-subprocess.rst:344
msgid ""
"The subprocess is created by the :func:`create_subprocess_exec` function::"
msgstr ""
"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::"
#: library/asyncio-subprocess.rst:376
#: library/asyncio-subprocess.rst:371
msgid ""
"See also the :ref:`same example <asyncio_example_subprocess_proto>` written "
"using low-level APIs."

File diff suppressed because it is too large Load Diff

375
library/asyncore.po Normal file
View File

@ -0,0 +1,375 @@
# 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-07-21 14:55+0200\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"
#: ../Doc/library/asyncore.rst:2
msgid ":mod:`asyncore` --- Asynchronous socket handler"
msgstr ""
#: ../Doc/library/asyncore.rst:14
msgid "**Source code:** :source:`Lib/asyncore.py`"
msgstr ""
#: ../Doc/library/asyncore.rst:20
msgid ""
"The :mod:`asyncore` module is deprecated (see :pep:`PEP 594 <594#asyncore>` "
"for details). Please use :mod:`asyncio` instead."
msgstr ""
#: ../Doc/library/asyncore.rst:25
msgid ""
"This module exists for backwards compatibility only. For new code we "
"recommend using :mod:`asyncio`."
msgstr ""
#: ../Doc/library/asyncore.rst:28
msgid ""
"This module provides the basic infrastructure for writing asynchronous "
"socket service clients and servers."
msgstr ""
#: ../Doc/includes/wasm-notavail.rst:3
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 "
"most popular way to do it, but there is another very different technique, "
"that lets you have nearly all the advantages of multi-threading, without "
"actually using multiple threads. It's really only practical if your "
"program is largely I/O bound. If your program is processor bound, then pre-"
"emptive scheduled threads are probably what you really need. Network "
"servers are rarely processor bound, however."
msgstr ""
#: ../Doc/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 "
"communication channels at once; doing other work while your I/O is taking "
"place in the \"background.\" Although this strategy can seem strange and "
"complex, especially at first, it is in many ways easier to understand and "
"control than multi-threaded programming. The :mod:`asyncore` module solves "
"many of the difficult problems for you, making the task of building "
"sophisticated high-performance network servers and clients a snap. For "
"\"conversational\" applications and protocols the companion :mod:`asynchat` "
"module is invaluable."
msgstr ""
#: ../Doc/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:"
"`asynchat.async_chat`. Creating the channels adds them to a global map, "
"used by the :func:`loop` function if you do not provide it with your own "
"*map*."
msgstr ""
#: ../Doc/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 "
"(including any that have been added to the map during asynchronous service) "
"is closed."
msgstr ""
#: ../Doc/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 "
"defaults to ``None``, resulting in the loop terminating only when all "
"channels have been closed. The *timeout* argument sets the timeout "
"parameter for the appropriate :func:`~select.select` or :func:`~select.poll` "
"call, measured in seconds; the default is 30 seconds. The *use_poll* "
"parameter, if true, indicates that :func:`~select.poll` should be used in "
"preference to :func:`~select.select` (the default is ``False``)."
msgstr ""
#: ../Doc/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 "
"omitted, a global map is used. Channels (instances of :class:`asyncore."
"dispatcher`, :class:`asynchat.async_chat` and subclasses thereof) can freely "
"be mixed in the map."
msgstr ""
#: ../Doc/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 "
"which are called from the asynchronous loop. Otherwise, it can be treated "
"as a normal non-blocking socket object."
msgstr ""
#: ../Doc/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 "
"taken place. For example, if we have asked for a socket to connect to "
"another host, we know that the connection has been made when the socket "
"becomes writable for the first time (at this point you know that you may "
"write to it with the expectation of success). The implied higher-level "
"events are:"
msgstr ""
#: ../Doc/library/asyncore.rst:98
msgid "Event"
msgstr ""
#: ../Doc/library/asyncore.rst:98
msgid "Description"
msgstr ""
#: ../Doc/library/asyncore.rst:100
msgid "``handle_connect()``"
msgstr ""
#: ../Doc/library/asyncore.rst:100
msgid "Implied by the first read or write event"
msgstr ""
#: ../Doc/library/asyncore.rst:103
msgid "``handle_close()``"
msgstr ""
#: ../Doc/library/asyncore.rst:103
msgid "Implied by a read event with no data available"
msgstr ""
#: ../Doc/library/asyncore.rst:106
msgid "``handle_accepted()``"
msgstr ""
#: ../Doc/library/asyncore.rst:106
msgid "Implied by a read event on a listening socket"
msgstr ""
#: ../Doc/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 "
"should be added to the list of channels :c:func:`select`\\ ed or :c:func:"
"`poll`\\ ed for read and write events."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/library/asyncore.rst:121
msgid ""
"Called when the asynchronous loop detects that a :meth:`read` call on the "
"channel's socket will succeed."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/library/asyncore.rst:151
msgid "Called when the socket is closed."
msgstr ""
#: ../Doc/library/asyncore.rst:156
msgid ""
"Called when an exception is raised and not otherwise handled. The default "
"version prints a condensed traceback."
msgstr ""
#: ../Doc/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` "
"call for the local endpoint. Deprecated in version 3.2; use :meth:"
"`handle_accepted` instead."
msgstr ""
#: ../Doc/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` "
"call for the local endpoint. *sock* is a *new* socket object usable to send "
"and receive data on the connection, and *addr* is the address bound to the "
"socket on the other end of the connection."
msgstr ""
#: ../Doc/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 "
"occur. The default method simply returns ``True``, indicating that by "
"default, all channels will be interested in read events."
msgstr ""
#: ../Doc/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 "
"occur. The default method simply returns ``True``, indicating that by "
"default, all channels will be interested in write events."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/library/asyncore.rst:207
msgid "*family* and *type* arguments can be omitted."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/library/asyncore.rst:219
msgid "Send *data* to the remote end-point of the socket."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/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:"
"`socket` documentation for more information.) To mark the socket as re-"
"usable (setting the :const:`SO_REUSEADDR` option), call the :class:"
"`dispatcher` object's :meth:`set_reuse_addr` method."
msgstr ""
#: ../Doc/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, "
"address)`` where *conn* is a *new* socket object usable to send and receive "
"data on the connection, and *address* is the address bound to the socket on "
"the other end of the connection. When ``None`` is returned it means the "
"connection didn't take place, in which case the server should just ignore "
"this event and keep listening for further incoming connections."
msgstr ""
#: ../Doc/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 ""
#: ../Doc/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 ""
#: ../Doc/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:"
"func:`loop` functions. If provided a file object or anything with a :c:func:"
"`fileno` method, that method will be called and passed to the :class:"
"`file_wrapper` constructor."
msgstr ""
#: ../Doc/library/asyncore.rst:283 ../Doc/library/asyncore.rst:292
msgid ":ref:`Availability <availability>`: Unix."
msgstr ""
#: ../Doc/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 "
"of the file_wrapper. This class implements sufficient methods to emulate a "
"socket for use by the :class:`file_dispatcher` class."
msgstr ""
#: ../Doc/library/asyncore.rst:298
msgid "asyncore Example basic HTTP client"
msgstr ""
#: ../Doc/library/asyncore.rst:300
msgid ""
"Here is a very basic HTTP client that uses the :class:`dispatcher` class to "
"implement its socket handling::"
msgstr ""
#: ../Doc/library/asyncore.rst:337
msgid "asyncore Example basic echo server"
msgstr ""
#: ../Doc/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::"
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-07-21 14:55+0200\n"
"PO-Revision-Date: 2022-03-23 13:05-0600\n"
"Last-Translator: Yannick Gingras <ygingras@ygingras.net>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -48,6 +48,12 @@ msgstr ""
#: library/atexit.rst:23
msgid ""
"**Note:** The effect of registering or unregistering functions from within a "
"cleanup function is undefined."
msgstr ""
#: library/atexit.rst:26
msgid ""
"When used with C-API subinterpreters, registered functions are local to the "
"interpreter they were registered in."
msgstr ""
@ -55,7 +61,7 @@ msgstr ""
"fonctions inscrites sont locales à l'interpréteur dans lequel elles ont été "
"inscrites."
#: library/atexit.rst:29
#: library/atexit.rst:32
msgid ""
"Register *func* as a function to be executed at termination. Any optional "
"arguments that are to be passed to *func* must be passed as arguments to :"
@ -67,7 +73,7 @@ msgstr ""
"être passé comme argument à :func:`register`. Il est possible d'inscrire les "
"mêmes fonctions et arguments plus d'une fois."
#: library/atexit.rst:34
#: library/atexit.rst:37
msgid ""
"At normal program termination (for instance, if :func:`sys.exit` is called "
"or the main module's execution completes), all functions registered are "
@ -82,7 +88,7 @@ msgstr ""
"normalement être importés avant les modules haut niveau et ainsi être "
"nettoyés en dernier."
#: library/atexit.rst:40
#: library/atexit.rst:43
msgid ""
"If an exception is raised during execution of the exit handlers, a traceback "
"is printed (unless :exc:`SystemExit` is raised) and the exception "
@ -95,7 +101,7 @@ msgstr ""
"fois que tous les gestionnaires de fin de programme ont eu une chance de "
"s'exécuter, la dernière exception à avoir été levée l'est de nouveau."
#: library/atexit.rst:45
#: library/atexit.rst:48
msgid ""
"This function returns *func*, which makes it possible to use it as a "
"decorator."
@ -103,7 +109,7 @@ msgstr ""
"Cette fonction renvoie *func*, ce qui rend possible de l'utiliser en tant "
"que décorateur."
#: library/atexit.rst:51
#: library/atexit.rst:54
msgid ""
"Remove *func* from the list of functions to be run at interpreter shutdown. :"
"func:`unregister` silently does nothing if *func* was not previously "
@ -120,11 +126,11 @@ msgstr ""
"utilisée dans l'implémentation interne de la désinscription. Les références "
"des fonctions n'ont donc pas besoin d'avoir la même identité."
#: library/atexit.rst:62
#: library/atexit.rst:65
msgid "Module :mod:`readline`"
msgstr "Module :mod:`readline`"
#: library/atexit.rst:62
#: library/atexit.rst:65
msgid ""
"Useful example of :mod:`atexit` to read and write :mod:`readline` history "
"files."
@ -132,11 +138,11 @@ msgstr ""
"Un exemple utile de l'usage de :mod:`atexit` pour lire et écrire des "
"fichiers d'historique :mod:`readline`."
#: library/atexit.rst:69
#: library/atexit.rst:72
msgid ":mod:`atexit` Example"
msgstr "Exemple avec :mod:`atexit`"
#: library/atexit.rst:71
#: library/atexit.rst:74
msgid ""
"The following simple example demonstrates how a module can initialize a "
"counter from a file when it is imported and save the counter's updated value "
@ -149,7 +155,7 @@ msgstr ""
"besoin que l'application fasse un appel explicite dans ce module au moment "
"de l'arrêt de l'interpréteur. ::"
#: library/atexit.rst:94
#: library/atexit.rst:97
msgid ""
"Positional and keyword arguments may also be passed to :func:`register` to "
"be passed along to the registered function when it is called::"
@ -157,11 +163,11 @@ msgstr ""
"Les arguments positionnels et nommés peuvent aussi être passés à :func:"
"`register` afin d'être repassés à la fonction inscrite lors de son appel ::"
#: library/atexit.rst:106
#: library/atexit.rst:109
msgid "Usage as a :term:`decorator`::"
msgstr "Utilisation en tant que :term:`décorateur <decorator>` ::"
#: library/atexit.rst:114
#: library/atexit.rst:117
msgid "This only works with functions that can be called without arguments."
msgstr ""
"Ceci fonctionne uniquement avec des fonctions qui peuvent être appelées sans "

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2021-11-15 19:06-0500\n"
"Last-Translator: Edith Viau <info@eviau.net>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -356,3 +356,19 @@ msgid ""
"is to pick the most energetic piece of the output sample, locate that in the "
"input sample and subtract the whole output sample from the input sample::"
msgstr ""
#: library/audioop.rst:24
msgid "Intel/DVI ADPCM"
msgstr ""
#: library/audioop.rst:24
msgid "ADPCM, Intel/DVI"
msgstr ""
#: library/audioop.rst:24
msgid "a-LAW"
msgstr ""
#: library/audioop.rst:24
msgid "u-LAW"
msgstr ""

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-07-21 14:55+0200\n"
"PO-Revision-Date: 2022-11-15 14:54+0100\n"
"Last-Translator: Lucie Roux <lucie.roux@supdevinci-edu.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -130,3 +130,8 @@ msgstr "ctypes.PyObj_FromPtr"
#: library/audit_events.rst:46
msgid "``obj``"
msgstr "``obj``"
#: library/audit_events.rst:3
#, fuzzy
msgid "audit events"
msgstr "Table des évènements d'audit"

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