# 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 <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\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 <stable>`."
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 <vectorcall>`: "
"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 ""
