Make merge
ci/woodpecker/pr/woodpecker Pipeline was successful
Details
ci/woodpecker/pr/woodpecker Pipeline was successful
Details
This commit is contained in:
parent
052245dccd
commit
1d09cfc3be
2
Makefile
2
Makefile
|
@ -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
|
||||
|
||||
|
|
426
c-api/arg.po
426
c-api/arg.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
||||
|
|
|
@ -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`."
|
||||
|
|
112
c-api/bytes.po
112
c-api/bytes.po
|
@ -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 ""
|
||||
|
|
198
c-api/call.po
198
c-api/call.po
|
@ -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."
|
||||
|
|
|
@ -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"
|
||||
|
|
224
c-api/code.po
224
c-api/code.po
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
149
c-api/dict.po
149
c-api/dict.po
|
@ -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
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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``."
|
||||
|
|
|
@ -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*."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
942
c-api/init.po
942
c-api/init.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
132
c-api/intro.po
132
c-api/intro.po
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
158
c-api/long.po
158
c-api/long.po
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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*."
|
||||
|
|
|
@ -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)``"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
187
c-api/object.po
187
c-api/object.po
|
@ -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."
|
||||
|
|
|
@ -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*."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
22
c-api/set.po
22
c-api/set.po
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
||||
|
|
118
c-api/stable.po
118
c-api/stable.po
|
@ -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 l’API 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 l’API 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 l’API 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 l’API "
|
||||
"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 ""
|
|||
"l’ABI stable fonctionnent de la même manière pour tous les cas d’usages de "
|
||||
"l’API — 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 d’inclure ``Python.h`` pour n’inclure que l’API "
|
||||
"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 l’ensemble des éléments de l’API "
|
||||
"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 l’API 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 l’API 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 n’utilisent pas le "
|
||||
"pré-processeur C."
|
||||
|
||||
#: c-api/stable.rst:107
|
||||
#: c-api/stable.rst:77
|
||||
msgid "Limited API Scope and Performance"
|
||||
msgstr "Porté de l’API 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 l’API 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 d’implémentation spécifique "
|
||||
"à l’objet ``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 n’est 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 l’API 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 d’autres "
|
||||
"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 ""
|
|||
"l’objet 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 s’ils ne font pas partie de "
|
||||
"l’API 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 l’API restreinte peuvent "
|
||||
"être dépréciées et retirées tant que l’ABI stable n’est 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 d’exploitation et de "
|
||||
"l’architecture 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 l’API restreinte"
|
||||
|
||||
#: c-api/stable.rst:186
|
||||
#: c-api/stable.rst:156
|
||||
msgid "Currently, the Limited API includes the following items:"
|
||||
msgstr "Pour le moment l’API restreinte inclut les éléments suivants :"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
178
c-api/sys.po
178
c-api/sys.po
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
264
c-api/type.po
264
c-api/type.po
|
@ -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 ""
|
||||
|
|
1366
c-api/typeobj.po
1366
c-api/typeobj.po
File diff suppressed because it is too large
Load Diff
904
c-api/unicode.po
904
c-api/unicode.po
File diff suppressed because it is too large
Load Diff
|
@ -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 "
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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 ""
|
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
|
@ -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 ""
|
|
@ -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. ::"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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."
|
||||
|
|
313
faq/design.po
313
faq/design.po
|
@ -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 d’une 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 d’un itérable fourni, la classe et la renvoie. Par exemple, voici "
|
||||
"comment itérer dans l’ordre sur les clés d’un 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 d’interface "
|
||||
"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."
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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/>`_."
|
||||
|
|
|
@ -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 ::"
|
||||
|
||||
|
|
65
glossary.po
65
glossary.po
|
@ -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."
|
||||
|
|
|
@ -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"
|
||||
|
|
1143
howto/clinic.po
1143
howto/clinic.po
File diff suppressed because it is too large
Load Diff
271
howto/curses.po
271
howto/curses.po
|
@ -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-"
|
||||
|
|
474
howto/enum.po
474
howto/enum.po
File diff suppressed because it is too large
Load Diff
|
@ -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)."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 "
|
||||
|
|
463
howto/logging.po
463
howto/logging.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
383
howto/regex.po
383
howto/regex.po
File diff suppressed because it is too large
Load Diff
450
install/index.po
450
install/index.po
File diff suppressed because it is too large
Load Diff
|
@ -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/>`__"
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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
|
@ -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 :"
|
||||
|
|
471
library/ast.po
471
library/ast.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
|
@ -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
|
@ -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`."
|
||||
|
|
|
@ -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` "
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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)."
|
||||
|
|
|
@ -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
|
@ -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 ""
|
|
@ -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 "
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue