# 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: 2021-09-23 16:16+0200\n" "PO-Revision-Date: 2023-03-05 22:38+0100\n" "Last-Translator: Rémi Lapeyre \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" "X-Generator: Poedit 3.2.1\n" #: c-api/stable.rst:7 msgid "C API Stability" msgstr "Stabilité de l’API C" #: c-api/stable.rst:9 msgid "" "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 " "entre 3.9 et 3.10), la majorité de ces changements n'affecte pas la " "compatibilité du code source. Typiquement des API sont ajoutées mais pas " "modifiées ou supprimées, bien que cela puisse arriver après une période de " "dépréciation ou pour corriger un problème important." #: c-api/stable.rst:15 msgid "" "CPython's Application Binary Interface (ABI) is forward- and backwards-" "compatible across a minor release (if these are compiled the same way; see :" "ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 will " "work on 3.10.8 and vice versa, but will need to be compiled separately for " "3.9.x and 3.10.x." msgstr "" "L’interface binaire de CPython (ABI) est entièrement compatible au sein " "d’une version mineure (à condition que la compilation soit toujours faite de " "même manière, comme indiqué dans :ref:`stable-abi-platform` ci-dessous). " "Ainsi le code compilé pour Python 3.10.0 fonctionnera avec Python 3.10.8 et " "inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x." #: c-api/stable.rst:21 msgid "" "Names prefixed by an underscore, such as ``_Py_InternalState``, are private " "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:26 msgid "Stable Application Binary Interface" msgstr "ABI stable" #: 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 " "multiple versions of Python. Contents of the Limited API are :ref:`listed " "below `." msgstr "" "Le concept d’*API restreinte*, un sous-ensemble de l’API C de Python, existe " "depuis Python 3.2. Les extensions qui utilisent uniquement l’API restreinte " "peuvent être compilées une seule fois et fonctionner avec plusieurs versions " "de Python. Les objets faisant partie de l’API restreinte sont :ref:" "`documentés ci-dessous `." #: 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 " "symbols exposed in the Limited API, but also other ones – for example, " "functions necessary to support older versions of the Limited API." msgstr "" "Python a aussi une *ABI stable* : un ensemble de symboles qui sont " "compatibles avec l’ensemble des versions Python 3.x. L’ABI stable contient " "les symboles utilisés par l’API restreinte, mais pas seulement — par exemple " "les fonctions nécessaires pour supporter les versions précédentes de l’API " "restreinte en font aussi partie." #: 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, " "embedding Python.)" msgstr "" "(Par simplicité ce document parle *d’extensions*, mais l’API restreinte et " "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: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." 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:47 msgid "" "Define ``Py_LIMITED_API`` to the value of :c:data:`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 " "version." msgstr "" "Définissez ``Py_LIMITED_API`` à la valeur de :c:data:`PY_VERSION_HEX` " "correspond à la version minimale de Python que votre extension supporte. " "Cette extension fonctionnera sans re-compilation avec toutes les versions " "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: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 " "compiling with future Python versions." msgstr "" "Il est recommandé de renseigner une version mineure minimale (par exemple " "``0x030A0000`` pour Python 3.10) plutôt que d’utiliser directement la macro " "``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée " "lors de la compilation." #: 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)." msgstr "" "Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est " "équivalente à ``0x03020000`` correspondant à Python 3.2, la première version " "à supporter l’API restreinte." #: 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." "dll``." msgstr "" "Sur Windows les extensions qui utilisent l’ABI stable doivent être liées " "avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une " "version comme ``python39.dll``." #: 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 " "extensions conform to a Stable ABI. The user (or their packaging tools) need " "to ensure that, for example, extensions built with the 3.10+ Limited API are " "not installed for lower versions of Python." msgstr "" "Sur certaines plateformes Python essaiera de charger une bibliothèque " "partagée dont le nom contient ``abi3`` (par exemple ``mymodule.abi3.so``). " "Il ne vérifie pas si ces extensions respectent l’ABI stable. L’utilisateur " "(ou ses outils d’administration) doit s’assurer que les extensions compilées " "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: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 " "don't use the C preprocessor." msgstr "" "Toutes les fonctions de l’ABI stable sont présentes dans la bibliothèque " "dynamique de Python en tant que fonction, et pas uniquement comme macro. " "Elles peuvent donc être utilisées avec des langages qui n’utilisent pas le " "pré-processeur C." #: c-api/stable.rst:77 msgid "Limited API Scope and Performance" msgstr "Porté de l’API restreinte et performance" #: 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." msgstr "" "L’objectif de l’API restreinte est de permettre l’ensemble des opérations " "possibles avec l’API C étendue, mais peut avoir un impact sur les " "performances." #: 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 " "can rely on version-specific implementation details of the list object." msgstr "" "Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la " "macro « dangereuse » :c:func:`PyList_GET_ITEM` ne l’est pas. Cette macro " "peut être plus rapide car elle dépend de détails d’implémentation spécifique " "à l’objet ``list``." #: 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, " "allowing stability as Python's data structures are improved, but possibly " "reducing performance." msgstr "" "Si ``Py_LIMITED_API`` n’est pas défini certaines fonctions de l’API C seront " "remplacées par des macros ou une version en-ligne. Définir " "``Py_LIMITED_API`` désactive cette optimisation, permettant de se garantir " "contre les évolutions des structures de données utilisées par Python, et " "peut réduire les performances." #: 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 " "performance for that Python version, but will limit compatibility. Compiling " "with ``Py_LIMITED_API`` will then yield an extension that can be distributed " "where a version-specific one is not available – for example, for prereleases " "of an upcoming Python version." msgstr "" "En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler " "une extension utilisant l’API restreinte avec une version spécifique de " "l’ABI. Les performances seront meilleures pour cette version de Python, mais " "la compatibilité sera réduite. Compiler en définissant ``Py_LIMITED_API`` " "produira une extension qui peut être utilisée quand une variante spécifique " "à une version n’est pas disponible — par exemple pour une version alpha de " "Python." #: c-api/stable.rst:101 msgid "Limited API Caveats" msgstr "Inconvénients de l’API restreinte" #: 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`` " "only covers definitions, but an API also includes other issues, such as " "expected semantics." msgstr "" "Compiler avec ``Py_LIMITED_API`` *n’est pas* une garantie absolue que le " "code est conforme à l’API restreinte ou à l’ABI stable. ``Py_LIMITED_API`` " "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: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 " "example, consider a function that starts accepting ``NULL`` for an argument. " "In Python 3.9, ``NULL`` now selects a default behavior, but in Python 3.8, " "the argument will be used directly, causing a ``NULL`` dereference and " "crash. A similar argument works for fields of structs." msgstr "" "Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre l’appel " "d’une fonction avec des arguments qui sont invalides pour une version de " "Python plus ancienne. Par exemple considérons une fonction qui accepte " "``NULL`` comme argument à partir de 3.9. ``NULL`` permet maintenant " "d’utiliser le comportement par défaut, mais Python 3.8 essayera d’accéder à " "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: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." msgstr "" "Un autre problème est que certains attributs ne sont pas encore cachés " "lorsque ``Py_LIMITED_API`` est défini, même s’ils ne font pas partie de " "l’API restreinte." #: 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." msgstr "" "Pour ces raisons il est recommandé de tester une extension avec *l’ensemble " "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: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 " "few private declarations are exposed for technical reasons (or even " "unintentionally, as bugs)." msgstr "" "Il est aussi recommandé de vérifier la documentation de toutes les API " "utilisées pour vérifier qu’elles fassent bien partie de l’API restreinte. " "Même lorsque ``Py_LIMITED_API`` est défini quelques fonctions privées " "peuvent être exposées aux utilisateurs pour des raisons techniques, ou par " "erreur." #: 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 " "Python 3.12, but it will not necessarily *compile* with Python 3.12. In " "particular, parts of the Limited API may be deprecated and removed, provided " "that the Stable ABI stays stable." msgstr "" "Notez aussi que l’API restreinte n’est pas forcément stable : compiler avec " "Python 3.8 en définissant ``Py_LIMITED_API`` garanti que l’extension " "fonctionnera avec Python 3.12, mais pas qu’elle pourra *être compilée* avec " "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:136 msgid "Platform Considerations" msgstr "Considérations relatives aux plateformes" #: 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 " "ABI, these details define a “platform”. They usually depend on the OS type " "and processor architecture" msgstr "" "La stabilité de l’ABI ne dépend pas que de Python mais aussi du compilateur " "utilisé, des bibliothèques systèmes et des options du compilateur. " "L’ensemble de ces détails correspondent à ce que l’ABI stable appelle une " "« plateforme ». Ils dépendent généralement du système d’exploitation et de " "l’architecture du processeur." #: 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 " "does not break the Stable ABI. This is the case with Windows and macOS " "releases from ``python.org`` and many third-party distributors." msgstr "" "Les distributeurs de Python doivent s’assurer que toutes les versions de " "Python pour une plateforme donnée sont compilées de manière à ne pas rompre " "la compatibilité de l’ABI stable. C’est le cas des versions produites pour " "Windows et macOS de ``python.org`` et de la plupart des distributions " "tierces." #: c-api/stable.rst:153 msgid "Contents of Limited API" msgstr "Contenu de l’API restreinte" #: 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 :"