python-docs-fr/c-api/call.po

564 lines
16 KiB
Plaintext
Raw Normal View History

2020-06-05 07:32:47 +00:00
# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
2020-09-11 07:11:46 +00:00
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
2020-07-20 13:06:06 +00:00
"PO-Revision-Date: 2020-07-20 15:07+0200\n"
2020-06-05 07:32:47 +00:00
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
2020-07-20 13:06:06 +00:00
"Language: fr\n"
2020-06-05 07:32:47 +00:00
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: c-api/call.rst:6
2020-06-05 07:32:47 +00:00
msgid "Call Protocol"
msgstr ""
#: c-api/call.rst:8
2020-06-05 07:32:47 +00:00
msgid ""
"CPython supports two different calling protocols: *tp_call* and vectorcall."
msgstr ""
#: c-api/call.rst:12
2020-06-05 07:32:47 +00:00
msgid "The *tp_call* Protocol"
msgstr ""
#: c-api/call.rst:14
2020-06-05 07:32:47 +00:00
msgid ""
"Instances of classes that set :c:member:`~PyTypeObject.tp_call` are "
"callable. The signature of the slot is::"
msgstr ""
#: c-api/call.rst:19
2020-06-05 07:32:47 +00:00
msgid ""
"A call is made using a tuple for the positional arguments and a dict for the "
"keyword arguments, similarly to ``callable(*args, **kwargs)`` in Python "
"code. *args* must be non-NULL (use an empty tuple if there are no arguments) "
"but *kwargs* may be *NULL* if there are no keyword arguments."
msgstr ""
#: c-api/call.rst:25
2020-06-05 07:32:47 +00:00
msgid ""
"This convention is not only used by *tp_call*: :c:member:`~PyTypeObject."
"tp_new` and :c:member:`~PyTypeObject.tp_init` also pass arguments this way."
msgstr ""
#: c-api/call.rst:29
2020-06-05 07:32:47 +00:00
msgid ""
"To call an object, use :c:func:`PyObject_Call` or other :ref:`call API <capi-"
"call>`."
msgstr ""
#: c-api/call.rst:36
2020-06-05 07:32:47 +00:00
msgid "The Vectorcall Protocol"
msgstr ""
#: c-api/call.rst:40
2020-06-05 07:32:47 +00:00
msgid ""
"The vectorcall protocol was introduced in :pep:`590` as an additional "
"protocol for making calls more efficient."
msgstr ""
#: c-api/call.rst:43
2020-06-05 07:32:47 +00:00
msgid ""
"As rule of thumb, CPython will prefer the vectorcall for internal calls if "
"the callable supports it. However, this is not a hard rule. Additionally, "
"some third-party extensions use *tp_call* directly (rather than using :c:"
"func:`PyObject_Call`). Therefore, a class supporting vectorcall must also "
"implement :c:member:`~PyTypeObject.tp_call`. Moreover, the callable must "
"behave the same regardless of which protocol is used. The recommended way to "
"achieve this is by setting :c:member:`~PyTypeObject.tp_call` to :c:func:"
"`PyVectorcall_Call`. This bears repeating:"
msgstr ""
#: c-api/call.rst:57
2020-06-05 07:32:47 +00:00
msgid ""
"A class supporting vectorcall **must** also implement :c:member:"
"`~PyTypeObject.tp_call` with the same semantics."
msgstr ""
#: c-api/call.rst:60
2020-06-05 07:32:47 +00:00
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 "
"args tuple and kwargs dict anyway, then there is no point in implementing "
"vectorcall."
msgstr ""
#: c-api/call.rst:65
2020-06-05 07:32:47 +00:00
msgid ""
"Classes can implement the vectorcall protocol by enabling the :const:"
"`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:73
2020-06-05 07:32:47 +00:00
msgid "*callable* is the object being called."
msgstr ""
#: c-api/call.rst:75
2020-06-05 07:32:47 +00:00
msgid ""
"*args* is a C array consisting of the positional arguments followed by the"
msgstr ""
#: c-api/call.rst:75
2020-06-05 07:32:47 +00:00
msgid ""
"values of the keyword arguments. This can be *NULL* if there are no "
"arguments."
msgstr ""
#: c-api/call.rst:79
2020-06-05 07:32:47 +00:00
msgid "*nargsf* is the number of positional arguments plus possibly the"
msgstr ""
#: c-api/call.rst:78
2020-06-05 07:32:47 +00:00
msgid ""
":const:`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:85
2020-06-05 07:32:47 +00:00
msgid "*kwnames* is a tuple containing the names of the keyword arguments;"
msgstr ""
#: c-api/call.rst:82
2020-06-05 07:32:47 +00:00
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:89
2020-06-05 07:32:47 +00:00
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 "
"argument 1 (not 0) in the allocated vector. The callee must restore the "
"value of ``args[-1]`` before returning."
msgstr ""
#: c-api/call.rst:94
2020-06-05 07:32:47 +00:00
msgid ""
"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that "
"``args[0]`` may be changed."
msgstr ""
#: c-api/call.rst:97
2020-06-05 07:32:47 +00:00
msgid ""
"Whenever they can do so cheaply (without additional allocation), callers are "
"encouraged to use :const:`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:102
2020-06-05 07:32:47 +00:00
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:109
2020-06-05 07:32:47 +00:00
msgid ""
"In CPython 3.8, the vectorcall API and related functions were available "
"provisionally under names with a leading underscore: "
"``_PyObject_Vectorcall``, ``_Py_TPFLAGS_HAVE_VECTORCALL``, "
"``_PyObject_VectorcallMethod``, ``_PyVectorcall_Function``, "
"``_PyObject_CallOneArg``, ``_PyObject_CallMethodNoArgs``, "
"``_PyObject_CallMethodOneArg``. Additionally, ``PyObject_VectorcallDict`` "
"was available as ``_PyObject_FastCallDict``. The old names are still defined "
"as aliases of the new, non-underscored names."
msgstr ""
#: c-api/call.rst:121
2020-06-05 07:32:47 +00:00
msgid "Recursion Control"
msgstr "Contrôle de la récursion"
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:123
2020-06-05 07:32:47 +00:00
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:128
2020-06-05 07:32:47 +00:00
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:134
2020-06-05 07:32:47 +00:00
msgid "Vectorcall Support API"
msgstr ""
#: c-api/call.rst:138
2020-06-05 07:32:47 +00:00
msgid ""
"Given a vectorcall *nargsf* argument, return the actual number of arguments. "
"Currently equivalent to::"
msgstr ""
#: c-api/call.rst:144
2020-06-05 07:32:47 +00:00
msgid ""
"However, the function ``PyVectorcall_NARGS`` should be used to allow for "
"future extensions."
msgstr ""
#: c-api/call.rst:147 c-api/call.rst:161 c-api/call.rst:175 c-api/call.rst:259
#: c-api/call.rst:346 c-api/call.rst:360 c-api/call.rst:375 c-api/call.rst:391
#: c-api/call.rst:413
2020-06-05 07:32:47 +00:00
msgid "This function is not part of the :ref:`limited API <stable>`."
msgstr ""
#: c-api/call.rst:153
2020-06-05 07:32:47 +00:00
msgid ""
"If *op* does not support the vectorcall protocol (either because the type "
"does not or because the specific instance does not), return *NULL*. "
"Otherwise, return the vectorcall function pointer stored in *op*. This "
"function never raises an exception."
msgstr ""
#: c-api/call.rst:158
2020-06-05 07:32:47 +00:00
msgid ""
"This is mostly useful to check whether or not *op* supports vectorcall, "
"which can be done by checking ``PyVectorcall_Function(op) != NULL``."
msgstr ""
#: c-api/call.rst:167
2020-06-05 07:32:47 +00:00
msgid ""
"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword "
"arguments given in a tuple and dict, respectively."
msgstr ""
#: c-api/call.rst:170
2020-06-05 07:32:47 +00:00
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 "
"not fall back to ``tp_call``."
msgstr ""
#: c-api/call.rst:183
2020-06-05 07:32:47 +00:00
msgid "Object Calling API"
msgstr ""
#: c-api/call.rst:185
2020-06-05 07:32:47 +00:00
msgid ""
"Various functions are available for calling a Python object. Each converts "
"its arguments to a convention supported by the called object either "
"*tp_call* or vectorcall. In order to do as litle conversion as possible, "
"pick one that best fits the format of data you have available."
msgstr ""
#: c-api/call.rst:191
2020-06-05 07:32:47 +00:00
msgid ""
"The following table summarizes the available functions; please see "
"individual documentation for details."
msgstr ""
#: c-api/call.rst:195
2020-06-05 07:32:47 +00:00
msgid "Function"
msgstr "Fonction"
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:195
2020-06-05 07:32:47 +00:00
msgid "callable"
msgstr ""
#: c-api/call.rst:195
2020-06-05 07:32:47 +00:00
msgid "args"
msgstr ""
#: c-api/call.rst:195
2020-06-05 07:32:47 +00:00
msgid "kwargs"
msgstr ""
#: c-api/call.rst:197
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_Call`"
msgstr ""
#: c-api/call.rst:197 c-api/call.rst:199 c-api/call.rst:201 c-api/call.rst:203
#: c-api/call.rst:205 c-api/call.rst:209 c-api/call.rst:217 c-api/call.rst:219
2020-06-05 07:32:47 +00:00
msgid "``PyObject *``"
msgstr ""
#: c-api/call.rst:197
2020-06-05 07:32:47 +00:00
msgid "tuple"
msgstr ""
#: c-api/call.rst:197 c-api/call.rst:219
2020-06-05 07:32:47 +00:00
msgid "dict/``NULL``"
msgstr ""
#: c-api/call.rst:199
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallNoArgs`"
msgstr ""
#: c-api/call.rst:199 c-api/call.rst:201 c-api/call.rst:203 c-api/call.rst:205
#: c-api/call.rst:207 c-api/call.rst:209 c-api/call.rst:211 c-api/call.rst:213
#: c-api/call.rst:215
2020-06-05 07:32:47 +00:00
msgid "---"
msgstr ""
#: c-api/call.rst:201
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallOneArg`"
msgstr ""
#: c-api/call.rst:201 c-api/call.rst:215
2020-06-05 07:32:47 +00:00
msgid "1 object"
msgstr ""
#: c-api/call.rst:203
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallObject`"
msgstr ""
#: c-api/call.rst:203
2020-06-05 07:32:47 +00:00
msgid "tuple/``NULL``"
msgstr ""
#: c-api/call.rst:205
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallFunction`"
msgstr ""
#: c-api/call.rst:205 c-api/call.rst:207
2020-06-05 07:32:47 +00:00
msgid "format"
msgstr "format"
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:207
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallMethod`"
msgstr ""
#: c-api/call.rst:207
2020-06-05 07:32:47 +00:00
msgid "obj + ``char*``"
msgstr ""
#: c-api/call.rst:209
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallFunctionObjArgs`"
msgstr ""
#: c-api/call.rst:209 c-api/call.rst:211
2020-06-05 07:32:47 +00:00
msgid "variadic"
msgstr ""
#: c-api/call.rst:211
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallMethodObjArgs`"
msgstr ""
#: c-api/call.rst:211 c-api/call.rst:213 c-api/call.rst:215
2020-06-05 07:32:47 +00:00
msgid "obj + name"
msgstr ""
#: c-api/call.rst:213
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallMethodNoArgs`"
msgstr ""
#: c-api/call.rst:215
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_CallMethodOneArg`"
msgstr ""
#: c-api/call.rst:217
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_Vectorcall`"
msgstr ""
#: c-api/call.rst:217 c-api/call.rst:219 c-api/call.rst:221
2020-06-05 07:32:47 +00:00
msgid "vectorcall"
msgstr ""
#: c-api/call.rst:219
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_VectorcallDict`"
msgstr ""
#: c-api/call.rst:221
2020-06-05 07:32:47 +00:00
msgid ":c:func:`PyObject_VectorcallMethod`"
msgstr ""
#: c-api/call.rst:221
2020-06-05 07:32:47 +00:00
msgid "arg + name"
msgstr ""
#: c-api/call.rst:227
2020-06-05 07:32:47 +00:00
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*, and named arguments given by the dictionary *kwargs*."
msgstr ""
"Appelle un objet Python appelable *callable*, avec des arguments donnés par "
"le tuple *args*, et des arguments nommés donnés par le dictionnaire *kwargs*."
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:230
2020-06-05 07:32:47 +00:00
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:233 c-api/call.rst:245 c-api/call.rst:256 c-api/call.rst:269
#: c-api/call.rst:281 c-api/call.rst:301 c-api/call.rst:320 c-api/call.rst:334
#: c-api/call.rst:343 c-api/call.rst:357 c-api/call.rst:372 c-api/call.rst:410
2020-06-05 07:32:47 +00:00
msgid ""
"Return the result of the call on success, or raise an exception and return "
"*NULL* on failure."
msgstr ""
#: c-api/call.rst:236
2020-06-05 07:32:47 +00:00
msgid ""
"This is the equivalent of the Python expression: ``callable(*args, "
"**kwargs)``."
msgstr ""
"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``."
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:242
2020-06-05 07:32:47 +00:00
msgid ""
"Call a callable Python object *callable* without any arguments. It is the "
"most efficient way to call a callable Python object without any argument."
msgstr ""
#: c-api/call.rst:253
2020-06-05 07:32:47 +00:00
msgid ""
"Call a callable Python object *callable* with exactly 1 positional argument "
"*arg* and no keyword arguments."
msgstr ""
#: c-api/call.rst:266
2020-06-05 07:32:47 +00:00
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:272 c-api/call.rst:284
2020-06-05 07:32:47 +00:00
msgid "This is the equivalent of the Python expression: ``callable(*args)``."
msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
2020-06-05 07:32:47 +00:00
#: c-api/call.rst:277
2020-06-05 07:32:47 +00:00
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` "
"style format string. The format can be *NULL*, indicating that no arguments "
"are provided."
msgstr ""
#: c-api/call.rst:286
2020-06-05 07:32:47 +00:00
msgid ""
2020-09-11 07:11:46 +00:00
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
2020-06-05 07:32:47 +00:00
"`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:289
2020-06-05 07:32:47 +00:00
msgid "The type of *format* was changed from ``char *``."
msgstr ""
#: c-api/call.rst:295
2020-06-05 07:32:47 +00:00
msgid ""
"Call the method named *name* of object *obj* with a variable number of C "
"arguments. The C arguments are described by a :c:func:`Py_BuildValue` "
"format string that should produce a tuple."
msgstr ""
#: c-api/call.rst:299
2020-06-05 07:32:47 +00:00
msgid "The format can be *NULL*, indicating that no arguments are provided."
msgstr ""
#: c-api/call.rst:304
2020-06-05 07:32:47 +00:00
msgid ""
"This is the equivalent of the Python expression: ``obj.name(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:307
2020-06-05 07:32:47 +00:00
msgid ""
2020-09-11 07:11:46 +00:00
"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
2020-06-05 07:32:47 +00:00
"`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr ""
#: c-api/call.rst:310
2020-06-05 07:32:47 +00:00
msgid "The types of *name* and *format* were changed from ``char *``."
msgstr ""
#: c-api/call.rst:316
2020-06-05 07:32:47 +00:00
msgid ""
"Call a callable Python object *callable*, with a variable number of :c:type:"
2020-09-11 07:11:46 +00:00
"`PyObject *` arguments. The arguments are provided as a variable number of "
"parameters followed by *NULL*."
2020-06-05 07:32:47 +00:00
msgstr ""
#: c-api/call.rst:323
2020-06-05 07:32:47 +00:00
msgid ""
"This is the equivalent of the Python expression: ``callable(arg1, "
"arg2, ...)``."
msgstr ""
#: c-api/call.rst:329
2020-06-05 07:32:47 +00:00
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 "
2020-09-11 07:11:46 +00:00
"number of :c:type:`PyObject *` arguments. The arguments are provided as a "
2020-06-05 07:32:47 +00:00
"variable number of parameters followed by *NULL*."
msgstr ""
#: c-api/call.rst:340
2020-06-05 07:32:47 +00:00
msgid ""
"Call a method of the Python object *obj* without arguments, where the name "
"of the method is given as a Python string object in *name*."
msgstr ""
#: c-api/call.rst:353
2020-06-05 07:32:47 +00:00
msgid ""
"Call a method of the Python object *obj* with a single positional argument "
"*arg*, where the name of the method is given as a Python string object in "
"*name*."
msgstr ""
#: c-api/call.rst:367
2020-06-05 07:32:47 +00:00
msgid ""
"Call a callable Python object *callable*. The arguments are the same as for :"
"c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly "
"calls the vectorcall function stored in *callable*."
msgstr ""
#: c-api/call.rst:381
2020-06-05 07:32:47 +00:00
msgid ""
"Call *callable* with positional arguments passed exactly as in the "
"vectorcall_ protocol, but with keyword arguments passed as a dictionary "
"*kwdict*. The *args* array contains only the positional arguments."
msgstr ""
#: c-api/call.rst:385
2020-06-05 07:32:47 +00:00
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 "
"already has a dictionary ready to use for the keyword arguments, but not a "
"tuple for the positional arguments."
msgstr ""
#: c-api/call.rst:397
2020-06-05 07:32:47 +00:00
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 "
"temporarily be changed. Keyword arguments can be passed just like in :c:func:"
"`PyObject_Vectorcall`."
msgstr ""
#: c-api/call.rst:406
2020-06-05 07:32:47 +00:00
msgid ""
"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"will call the unbound method object with the full *args* vector as arguments."
msgstr ""
#: c-api/call.rst:419
2020-06-05 07:32:47 +00:00
msgid "Call Support API"
msgstr ""
#: c-api/call.rst:423
2020-06-05 07:32:47 +00:00
msgid ""
"Determine if the object *o* is callable. Return ``1`` if the object is "
"callable and ``0`` otherwise. This function always succeeds."
msgstr ""
"Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et "
"``0`` sinon. Cette fonction réussit toujours."