# 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: YEAR-MO-DA HO:MI+ZONE\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/structures.rst:6 msgid "Common Object Structures" msgstr "" #: c-api/structures.rst:8 msgid "" "There are a large number of structures which are used in the definition of " "object types for Python. This section describes these structures and how " "they are used." msgstr "" #: c-api/structures.rst:14 msgid "Base object types and macros" msgstr "" #: c-api/structures.rst:16 msgid "" "All Python objects ultimately share a small number of fields at the " "beginning of the object's representation in memory. These are represented " "by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are " "defined, in turn, by the expansions of some macros also used, whether " "directly or indirectly, in the definition of all other Python objects." msgstr "" #: c-api/structures.rst:25 msgid "" "All object types are extensions of this type. This is a type which contains " "the information Python needs to treat a pointer to an object as an object. " "In a normal \"release\" build, it contains only the object's reference count " "and a pointer to the corresponding type object. Nothing is actually declared " "to be a :c:type:`PyObject`, but every pointer to a Python object can be cast " "to a :c:type:`PyObject*`. Access to the members must be done by using the " "macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." msgstr "" #: c-api/structures.rst:37 msgid "" "This is an extension of :c:type:`PyObject` that adds the :attr:`ob_size` " "field. This is only used for objects that have some notion of *length*. " "This type does not often appear in the Python/C API. Access to the members " "must be done by using the macros :c:macro:`Py_REFCNT`, :c:macro:`Py_TYPE`, " "and :c:macro:`Py_SIZE`." msgstr "" #: c-api/structures.rst:46 msgid "" "This is a macro used when declaring new types which represent objects " "without a varying length. The PyObject_HEAD macro expands to::" msgstr "" #: c-api/structures.rst:51 msgid "See documentation of :c:type:`PyObject` above." msgstr "" #: c-api/structures.rst:56 msgid "" "This is a macro used when declaring new types which represent objects with a " "length that varies from instance to instance. The PyObject_VAR_HEAD macro " "expands to::" msgstr "" #: c-api/structures.rst:62 msgid "See documentation of :c:type:`PyVarObject` above." msgstr "" #: c-api/structures.rst:67 msgid "" "This macro is used to access the :attr:`ob_type` member of a Python object. " "It expands to::" msgstr "" #: c-api/structures.rst:75 msgid "" "Return non-zero if the object *o* type is *type*. Return zero otherwise. " "Equivalent to: ``Py_TYPE(o) == type``." msgstr "" #: c-api/structures.rst:83 msgid "Set the object *o* type to *type*." msgstr "" #: c-api/structures.rst:90 msgid "" "This macro is used to access the :attr:`ob_refcnt` member of a Python " "object. It expands to::" msgstr "" #: c-api/structures.rst:99 msgid "Set the object *o* reference counter to *refcnt*." msgstr "" #: c-api/structures.rst:106 msgid "" "This macro is used to access the :attr:`ob_size` member of a Python object. " "It expands to::" msgstr "" #: c-api/structures.rst:114 msgid "Set the object *o* size to *size*." msgstr "" #: c-api/structures.rst:121 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyObject` type. This macro expands to::" msgstr "" #: c-api/structures.rst:130 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyVarObject` type, including the :attr:`ob_size` field. This macro expands " "to::" msgstr "" #: c-api/structures.rst:139 msgid "Implementing functions and methods" msgstr "" #: c-api/structures.rst:143 msgid "" "Type of the functions used to implement most Python callables in C. " "Functions of this type take two :c:type:`PyObject*` parameters and return " "one such value. If the return value is ``NULL``, an exception shall have " "been set. If not ``NULL``, the return value is interpreted as the return " "value of the function as exposed in Python. The function must return a new " "reference." msgstr "" #: c-api/structures.rst:150 msgid "The function signature is::" msgstr "" #: c-api/structures.rst:157 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_VARARGS | METH_KEYWORDS`. The function signature is::" msgstr "" #: c-api/structures.rst:168 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL`. The function signature is::" msgstr "" #: c-api/structures.rst:178 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL | METH_KEYWORDS`. The function signature is::" msgstr "" #: c-api/structures.rst:189 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. The function " "signature is::" msgstr "" #: c-api/structures.rst:204 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" msgstr "" #: c-api/structures.rst:208 c-api/structures.rst:364 c-api/structures.rst:445 msgid "Field" msgstr "Champ" #: c-api/structures.rst:208 c-api/structures.rst:364 c-api/structures.rst:445 msgid "C Type" msgstr "Type C" #: c-api/structures.rst:208 c-api/structures.rst:364 c-api/structures.rst:445 msgid "Meaning" msgstr "Signification" #: c-api/structures.rst:210 msgid ":attr:`ml_name`" msgstr "" #: c-api/structures.rst:210 c-api/structures.rst:218 c-api/structures.rst:366 #: c-api/structures.rst:379 c-api/structures.rst:395 c-api/structures.rst:447 #: c-api/structures.rst:455 msgid "const char \\*" msgstr "" #: c-api/structures.rst:210 msgid "name of the method" msgstr "" #: c-api/structures.rst:212 msgid ":attr:`ml_meth`" msgstr "" #: c-api/structures.rst:212 msgid "PyCFunction" msgstr "PyCFunction" #: c-api/structures.rst:212 msgid "pointer to the C implementation" msgstr "" #: c-api/structures.rst:215 msgid ":attr:`ml_flags`" msgstr "" #: c-api/structures.rst:215 c-api/structures.rst:368 c-api/structures.rst:375 #: c-api/structures.rst:391 msgid "int" msgstr "*int*" #: c-api/structures.rst:215 msgid "flag bits indicating how the call should be constructed" msgstr "" #: c-api/structures.rst:218 msgid ":attr:`ml_doc`" msgstr "" #: c-api/structures.rst:218 c-api/structures.rst:379 msgid "points to the contents of the docstring" msgstr "" #: c-api/structures.rst:222 msgid "" "The :attr:`ml_meth` is a C function pointer. The functions may be of " "different types, but they always return :c:type:`PyObject*`. If the " "function is not of the :c:type:`PyCFunction`, the compiler will require a " "cast in the method table. Even though :c:type:`PyCFunction` defines the " "first parameter as :c:type:`PyObject*`, it is common that the method " "implementation uses the specific C type of the *self* object." msgstr "" #: c-api/structures.rst:229 msgid "" "The :attr:`ml_flags` field is a bitfield which can include the following " "flags. The individual flags indicate either a calling convention or a " "binding convention." msgstr "" #: c-api/structures.rst:233 msgid "There are these calling conventions:" msgstr "" #: c-api/structures.rst:237 msgid "" "This is the typical calling convention, where the methods have the type :c:" "type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The " "first one is the *self* object for methods; for module functions, it is the " "module object. The second parameter (often called *args*) is a tuple object " "representing all arguments. This parameter is typically processed using :c:" "func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" #: c-api/structures.rst:247 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " "The function expects three parameters: *self*, *args*, *kwargs* where " "*kwargs* is a dictionary of all the keyword arguments or possibly ``NULL`` " "if there are no keyword arguments. The parameters are typically processed " "using :c:func:`PyArg_ParseTupleAndKeywords`." msgstr "" #: c-api/structures.rst:256 msgid "" "Fast calling convention supporting only positional arguments. The methods " "have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the " "second parameter is a C array of :c:type:`PyObject*` values indicating the " "arguments and the third parameter is the number of arguments (the length of " "the array)." msgstr "" #: c-api/structures.rst:262 c-api/structures.rst:279 msgid "This is not part of the :ref:`limited API `." msgstr "" #: c-api/structures.rst:269 msgid "" "Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " "methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " "are passed the same way as in the :ref:`vectorcall protocol `: " "there is an additional fourth :c:type:`PyObject*` parameter which is a tuple " "representing the names of the keyword arguments (which are guaranteed to be " "strings) or possibly ``NULL`` if there are no keywords. The values of the " "keyword arguments are stored in the *args* array, after the positional " "arguments." msgstr "" #: c-api/structures.rst:286 msgid "" "Extension of :const:`METH_FASTCALL | METH_KEYWORDS` supporting the *defining " "class*, that is, the class that contains the method in question. The " "defining class might be a superclass of ``Py_TYPE(self)``." msgstr "" #: c-api/structures.rst:290 msgid "" "The method needs to be of type :c:type:`PyCMethod`, the same as for " "``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added " "after ``self``." msgstr "" #: c-api/structures.rst:299 msgid "" "Methods without parameters don't need to check whether arguments are given " "if they are listed with the :const:`METH_NOARGS` flag. They need to be of " "type :c:type:`PyCFunction`. The first parameter is typically named *self* " "and will hold a reference to the module or object instance. In all cases " "the second parameter will be ``NULL``." msgstr "" #: c-api/structures.rst:308 msgid "" "Methods with a single object argument can be listed with the :const:`METH_O` " "flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " "argument. They have the type :c:type:`PyCFunction`, with the *self* " "parameter, and a :c:type:`PyObject*` parameter representing the single " "argument." msgstr "" #: c-api/structures.rst:314 msgid "" "These two constants are not used to indicate the calling convention but the " "binding when use with methods of classes. These may not be used for " "functions defined for modules. At most one of these flags may be set for " "any given method." msgstr "" #: c-api/structures.rst:324 msgid "" "The method will be passed the type object as the first parameter rather than " "an instance of the type. This is used to create *class methods*, similar to " "what is created when using the :func:`classmethod` built-in function." msgstr "" #: c-api/structures.rst:334 msgid "" "The method will be passed ``NULL`` as the first parameter rather than an " "instance of the type. This is used to create *static methods*, similar to " "what is created when using the :func:`staticmethod` built-in function." msgstr "" #: c-api/structures.rst:338 msgid "" "One other constant controls whether a method is loaded in place of another " "definition with the same method name." msgstr "" #: c-api/structures.rst:344 msgid "" "The method will be loaded in place of existing definitions. Without " "*METH_COEXIST*, the default is to skip repeated definitions. Since slot " "wrappers are loaded before the method table, the existence of a " "*sq_contains* slot, for example, would generate a wrapped method named :meth:" "`__contains__` and preclude the loading of a corresponding PyCFunction with " "the same name. With the flag defined, the PyCFunction will be loaded in " "place of the wrapper object and will co-exist with the slot. This is " "helpful because calls to PyCFunctions are optimized more than wrapper object " "calls." msgstr "" #: c-api/structures.rst:356 msgid "Accessing attributes of extension types" msgstr "" #: c-api/structures.rst:360 msgid "" "Structure which describes an attribute of a type which corresponds to a C " "struct member. Its fields are:" msgstr "" #: c-api/structures.rst:366 msgid ":attr:`name`" msgstr "" #: c-api/structures.rst:366 msgid "name of the member" msgstr "" #: c-api/structures.rst:368 msgid ":attr:`!type`" msgstr "" #: c-api/structures.rst:368 msgid "the type of the member in the C struct" msgstr "" #: c-api/structures.rst:371 msgid ":attr:`offset`" msgstr "" #: c-api/structures.rst:371 c-api/structures.rst:407 msgid "Py_ssize_t" msgstr "" #: c-api/structures.rst:371 msgid "" "the offset in bytes that the member is located on the type's object struct" msgstr "" #: c-api/structures.rst:375 msgid ":attr:`flags`" msgstr "" #: c-api/structures.rst:375 msgid "flag bits indicating if the field should be read-only or writable" msgstr "" #: c-api/structures.rst:379 msgid ":attr:`doc`" msgstr "" #: c-api/structures.rst:383 msgid "" ":attr:`!type` can be one of many ``T_`` macros corresponding to various C " "types. When the member is accessed in Python, it will be converted to the " "equivalent Python type." msgstr "" #: c-api/structures.rst:388 msgid "Macro name" msgstr "" #: c-api/structures.rst:388 msgid "C type" msgstr "Type C" #: c-api/structures.rst:390 msgid "T_SHORT" msgstr "" #: c-api/structures.rst:390 msgid "short" msgstr "" #: c-api/structures.rst:391 msgid "T_INT" msgstr "" #: c-api/structures.rst:392 msgid "T_LONG" msgstr "" #: c-api/structures.rst:392 msgid "long" msgstr "" #: c-api/structures.rst:393 msgid "T_FLOAT" msgstr "" #: c-api/structures.rst:393 msgid "float" msgstr "*float*" #: c-api/structures.rst:394 msgid "T_DOUBLE" msgstr "" #: c-api/structures.rst:394 msgid "double" msgstr "double" #: c-api/structures.rst:395 msgid "T_STRING" msgstr "" #: c-api/structures.rst:396 msgid "T_OBJECT" msgstr "" #: c-api/structures.rst:396 c-api/structures.rst:397 msgid "PyObject \\*" msgstr "PyObject \\*" #: c-api/structures.rst:397 msgid "T_OBJECT_EX" msgstr "" #: c-api/structures.rst:398 msgid "T_CHAR" msgstr "" #: c-api/structures.rst:398 c-api/structures.rst:399 c-api/structures.rst:404 msgid "char" msgstr "char" #: c-api/structures.rst:399 msgid "T_BYTE" msgstr "" #: c-api/structures.rst:400 msgid "T_UBYTE" msgstr "" #: c-api/structures.rst:400 msgid "unsigned char" msgstr "``unsigned char``" #: c-api/structures.rst:401 msgid "T_UINT" msgstr "" #: c-api/structures.rst:401 msgid "unsigned int" msgstr "``unsigned int``" #: c-api/structures.rst:402 msgid "T_USHORT" msgstr "" #: c-api/structures.rst:402 msgid "unsigned short" msgstr "``unsigned short``" #: c-api/structures.rst:403 msgid "T_ULONG" msgstr "" #: c-api/structures.rst:403 msgid "unsigned long" msgstr "``unsigned long``" #: c-api/structures.rst:404 msgid "T_BOOL" msgstr "" #: c-api/structures.rst:405 msgid "T_LONGLONG" msgstr "" #: c-api/structures.rst:405 msgid "long long" msgstr "" #: c-api/structures.rst:406 msgid "T_ULONGLONG" msgstr "" #: c-api/structures.rst:406 msgid "unsigned long long" msgstr "``unsigned long long``" #: c-api/structures.rst:407 msgid "T_PYSSIZET" msgstr "" #: c-api/structures.rst:410 msgid "" ":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" "`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:" "`T_OBJECT_EX` raises an :exc:`AttributeError`. Try to use :c:macro:" "`T_OBJECT_EX` over :c:macro:`T_OBJECT` because :c:macro:`T_OBJECT_EX` " "handles use of the :keyword:`del` statement on that attribute more correctly " "than :c:macro:`T_OBJECT`." msgstr "" #: c-api/structures.rst:417 msgid "" ":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` " "for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:" "macro:`READONLY`. :c:macro:`T_STRING` data is interpreted as UTF-8. Only :c:" "macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` members can be deleted. (They " "are set to ``NULL``)." msgstr "" #: c-api/structures.rst:425 msgid "" "Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), " "``PyMemberDef`` may contain definitions for the special members " "``__dictoffset__``, ``__weaklistoffset__`` and ``__vectorcalloffset__``, " "corresponding to :c:member:`~PyTypeObject.tp_dictoffset`, :c:member:" "`~PyTypeObject.tp_weaklistoffset` and :c:member:`~PyTypeObject." "tp_vectorcall_offset` in type objects. These must be defined with " "``T_PYSSIZET`` and ``READONLY``, for example::" msgstr "" #: c-api/structures.rst:441 msgid "" "Structure to define property-like access for a type. See also description of " "the :c:member:`PyTypeObject.tp_getset` slot." msgstr "" #: c-api/structures.rst:447 msgid "name" msgstr "" #: c-api/structures.rst:447 msgid "attribute name" msgstr "" #: c-api/structures.rst:449 msgid "get" msgstr "" #: c-api/structures.rst:449 msgid "getter" msgstr "" #: c-api/structures.rst:449 msgid "C Function to get the attribute" msgstr "" #: c-api/structures.rst:451 msgid "set" msgstr "" #: c-api/structures.rst:451 msgid "setter" msgstr "" #: c-api/structures.rst:451 msgid "" "optional C function to set or delete the attribute, if omitted the attribute " "is readonly" msgstr "" #: c-api/structures.rst:455 msgid "doc" msgstr "" #: c-api/structures.rst:455 msgid "optional docstring" msgstr "" #: c-api/structures.rst:457 msgid "closure" msgstr "" #: c-api/structures.rst:457 msgid "void \\*" msgstr "" #: c-api/structures.rst:457 msgid "" "optional function pointer, providing additional data for getter and setter" msgstr "" #: c-api/structures.rst:462 msgid "" "The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) " "and a function pointer (the associated ``closure``)::" msgstr "" #: c-api/structures.rst:467 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" #: c-api/structures.rst:470 msgid "" "``set`` functions take two :c:type:`PyObject*` parameters (the instance and " "the value to be set) and a function pointer (the associated ``closure``)::" msgstr "" #: c-api/structures.rst:475 msgid "" "In case the attribute should be deleted the second parameter is ``NULL``. " "Should return ``0`` on success or ``-1`` with a set exception on failure." msgstr ""