# 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" "POT-Creation-Date: 2020-08-24 09:01+0200\n" "PO-Revision-Date: 2020-07-20 15:07+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: c-api/call.rst:6 msgid "Call Protocol" msgstr "" #: c-api/call.rst:8 msgid "" "CPython supports two different calling protocols: *tp_call* and vectorcall." msgstr "" #: c-api/call.rst:12 msgid "The *tp_call* Protocol" msgstr "" #: c-api/call.rst:14 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 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 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 msgid "" "To call an object, use :c:func:`PyObject_Call` or other :ref:`call API `." msgstr "" #: c-api/call.rst:36 msgid "The Vectorcall Protocol" msgstr "" #: c-api/call.rst:40 msgid "" "The vectorcall protocol was introduced in :pep:`590` as an additional " "protocol for making calls more efficient." msgstr "" #: c-api/call.rst:43 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 msgid "" "A class supporting vectorcall **must** also implement :c:member:" "`~PyTypeObject.tp_call` with the same semantics." msgstr "" #: 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 " "args tuple and kwargs dict anyway, then there is no point in implementing " "vectorcall." msgstr "" #: c-api/call.rst:65 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 msgid "*callable* is the object being called." msgstr "" #: c-api/call.rst:75 msgid "" "*args* is a C array consisting of the positional arguments followed by the" msgstr "" #: 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:79 msgid "*nargsf* is the number of positional arguments plus possibly the" msgstr "" #: c-api/call.rst:78 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 msgid "*kwnames* is a tuple containing the names of the keyword arguments;" msgstr "" #: 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: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 " "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 msgid "" "For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " "``args[0]`` may be changed." msgstr "" #: 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 " "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 msgid "" "To call an object that implements vectorcall, use a :ref:`call API ` function as with any other callable. :c:func:`PyObject_Vectorcall` " "will usually be most efficient." msgstr "" #: 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: " "``_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 msgid "Recursion Control" msgstr "Contrôle de la récursion" #: c-api/call.rst:123 msgid "" "When using *tp_call*, callees do not need to worry about :ref:`recursion " "`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:" "`Py_LeaveRecursiveCall` for calls made using *tp_call*." msgstr "" #: 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:134 msgid "Vectorcall Support API" msgstr "" #: 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:144 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 msgid "This function is not part of the :ref:`limited API `." msgstr "" #: c-api/call.rst:153 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 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 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 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 msgid "Object Calling API" msgstr "" #: c-api/call.rst:185 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 msgid "" "The following table summarizes the available functions; please see " "individual documentation for details." msgstr "" #: c-api/call.rst:195 msgid "Function" msgstr "Fonction" #: c-api/call.rst:195 msgid "callable" msgstr "" #: c-api/call.rst:195 msgid "args" msgstr "" #: c-api/call.rst:195 msgid "kwargs" msgstr "" #: c-api/call.rst:197 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 msgid "``PyObject *``" msgstr "" #: c-api/call.rst:197 msgid "tuple" msgstr "" #: c-api/call.rst:197 c-api/call.rst:219 msgid "dict/``NULL``" msgstr "" #: c-api/call.rst:199 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 msgid "---" msgstr "" #: c-api/call.rst:201 msgid ":c:func:`PyObject_CallOneArg`" msgstr "" #: c-api/call.rst:201 c-api/call.rst:215 msgid "1 object" msgstr "" #: c-api/call.rst:203 msgid ":c:func:`PyObject_CallObject`" msgstr "" #: c-api/call.rst:203 msgid "tuple/``NULL``" msgstr "" #: c-api/call.rst:205 msgid ":c:func:`PyObject_CallFunction`" msgstr "" #: c-api/call.rst:205 c-api/call.rst:207 msgid "format" msgstr "format" #: c-api/call.rst:207 msgid ":c:func:`PyObject_CallMethod`" msgstr "" #: c-api/call.rst:207 msgid "obj + ``char*``" msgstr "" #: c-api/call.rst:209 msgid ":c:func:`PyObject_CallFunctionObjArgs`" msgstr "" #: c-api/call.rst:209 c-api/call.rst:211 msgid "variadic" msgstr "" #: c-api/call.rst:211 msgid ":c:func:`PyObject_CallMethodObjArgs`" msgstr "" #: c-api/call.rst:211 c-api/call.rst:213 c-api/call.rst:215 msgid "obj + name" msgstr "" #: c-api/call.rst:213 msgid ":c:func:`PyObject_CallMethodNoArgs`" msgstr "" #: c-api/call.rst:215 msgid ":c:func:`PyObject_CallMethodOneArg`" msgstr "" #: c-api/call.rst:217 msgid ":c:func:`PyObject_Vectorcall`" msgstr "" #: c-api/call.rst:217 c-api/call.rst:219 c-api/call.rst:221 msgid "vectorcall" msgstr "" #: c-api/call.rst:219 msgid ":c:func:`PyObject_VectorcallDict`" msgstr "" #: c-api/call.rst:221 msgid ":c:func:`PyObject_VectorcallMethod`" msgstr "" #: c-api/call.rst:221 msgid "arg + name" msgstr "" #: c-api/call.rst:227 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*." #: c-api/call.rst:230 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 msgid "" "Return the result of the call on success, or raise an exception and return " "*NULL* on failure." msgstr "" #: c-api/call.rst:236 msgid "" "This is the equivalent of the Python expression: ``callable(*args, " "**kwargs)``." msgstr "" "Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." #: c-api/call.rst:242 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 msgid "" "Call a callable Python object *callable* with exactly 1 positional argument " "*arg* and no keyword arguments." msgstr "" #: c-api/call.rst:266 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 msgid "This is the equivalent of the Python expression: ``callable(*args)``." msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``." #: c-api/call.rst:277 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 msgid "" "Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" #: c-api/call.rst:289 msgid "The type of *format* was changed from ``char *``." msgstr "" #: c-api/call.rst:295 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 msgid "The format can be *NULL*, indicating that no arguments are provided." msgstr "" #: c-api/call.rst:304 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." msgstr "" #: c-api/call.rst:307 msgid "" "Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" #: c-api/call.rst:310 msgid "The types of *name* and *format* were changed from ``char *``." msgstr "" #: c-api/call.rst:316 msgid "" "Call a callable Python object *callable*, with a variable number of :c:type:" "`PyObject *` arguments. The arguments are provided as a variable number of " "parameters followed by *NULL*." msgstr "" #: c-api/call.rst:323 msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." msgstr "" #: c-api/call.rst:329 msgid "" "Call a method of the Python object *obj*, where the name of the method is " "given as a Python string object in *name*. It is called with a variable " "number of :c:type:`PyObject *` arguments. The arguments are provided as a " "variable number of parameters followed by *NULL*." msgstr "" #: c-api/call.rst:340 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 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 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 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 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 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 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 msgid "Call Support API" msgstr "" #: c-api/call.rst:423 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."