Compare commits

...

5 Commits

Author SHA1 Message Date
Rémi Lapeyre
4a0f037161 Merge remote-tracking branch 'origin/3.11' into apiabiversion 2023-02-17 18:05:06 +01:00
92e43cb2cb library-typing (#84)
Closes #49

Co-authored-by: Zoe Drey <zoe.drey@sinch.com>
Co-authored-by: Nicolas <nicolas.gibaud7@gmail.com>
Reviewed-on: AFPy/python-docs-fr#84
Co-authored-by: NicolasGibaud <nicolas.gibaud7@gmail.com>
Co-committed-by: NicolasGibaud <nicolas.gibaud7@gmail.com>
2023-02-17 16:53:03 +00:00
fa5ab2955f Add initial translation for c-api/stable.po (#85)
Co-authored-by: Rémi Lapeyre <remi.lapeyre@lenstra.fr>
Reviewed-on: AFPy/python-docs-fr#85
Co-authored-by: remil <remi@lenstra.fr>
Co-committed-by: remil <remi@lenstra.fr>
2023-02-17 16:46:19 +00:00
4232990623 feature/library-itertools closes #63 (#68)
Co-authored-by: finevine <finevine@gmail.com>
Reviewed-on: AFPy/python-docs-fr#68
Co-authored-by: finevine <finevine@noreply.localhost>
Co-committed-by: finevine <finevine@noreply.localhost>
2023-02-17 16:41:17 +00:00
f20eb52ad6 Translate fuzzy close #38 (#46)
Co-authored-by: finevine <finevine@gmail.com>
Co-authored-by: Vinz <finevine@gmail.com>
Reviewed-on: AFPy/python-docs-fr#46
Co-authored-by: finevine <finevine@noreply.localhost>
Co-committed-by: finevine <finevine@noreply.localhost>
2023-02-17 16:39:19 +00:00
4 changed files with 417 additions and 249 deletions

View File

@ -6,20 +6,24 @@ msgstr ""
"Project-Id-Version: Python 3\n" "Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-23 16:16+0200\n" "POT-Creation-Date: 2021-09-23 16:16+0200\n"
"PO-Revision-Date: 2018-10-04 12:26+0200\n" "PO-Revision-Date: 2023-02-17 17:33+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n" "Last-Translator: Rémi Lapeyre <remi.lapeyre@lenstra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n" "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.2.2\n"
#: c-api/stable.rst:7 #: c-api/stable.rst:7
msgid "C API Stability" msgid "C API Stability"
<<<<<<< HEAD
msgstr "Stabilité de l'API C" msgstr "Stabilité de l'API C"
=======
msgstr "Stabilité de lAPI C"
>>>>>>> origin/3.11
#: c-api/stable.rst:9 #: c-api/stable.rst:9
#, fuzzy
msgid "" msgid ""
"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. " "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 " "While the C API will change with every minor release (e.g. from 3.9 to "
@ -27,10 +31,12 @@ msgid ""
"API. Changing existing API or removing API is only done after a deprecation " "API. Changing existing API or removing API is only done after a deprecation "
"period or to fix serious issues." "period or to fix serious issues."
msgstr "" msgstr ""
"L'API C de Python change à chaque version. La majorité de ces changement " "L'API C respecte la politique de rétrocompatibilité de Python, :pep:`387`. "
"n'affecte cependant pas la compatibilité du code source. Typiquement, des " "Malgré la présence dévolutions dans chaque version mineure (par exemple "
"API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines " "entre 3.9 et 3.10), la majorité de ces changement n'affecte pas la "
"interfaces puissent être supprimées, après avoir d'abord été dépréciées)." "compatibilité du code source. Typiquement des APIs 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 #: c-api/stable.rst:15
msgid "" msgid ""
@ -40,16 +46,24 @@ msgid ""
"work on 3.10.8 and vice versa, but will need to be compiled separately for " "work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.10.x." "3.9.x and 3.10.x."
msgstr "" msgstr ""
"Linterface binaire de CPython (ABI) est entièrement compatible au sein "
"dune 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 #: c-api/stable.rst:21
msgid "" msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private " "Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases." "API that can change without notice even in patch releases."
msgstr "" msgstr ""
"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, "
"font partie de lAPI privée et peuvent changer sans préavis même dans une "
"version de correctif."
#: c-api/stable.rst:26 #: c-api/stable.rst:26
msgid "Stable Application Binary Interface" msgid "Stable Application Binary Interface"
msgstr "ABI Stable" msgstr "ABI stable"
#: c-api/stable.rst:28 #: c-api/stable.rst:28
msgid "" msgid ""
@ -58,6 +72,11 @@ msgid ""
"multiple versions of Python. Contents of the Limited API are :ref:`listed " "multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below <stable-abi-list>`." "below <stable-abi-list>`."
msgstr "" msgstr ""
"Le concept d*API restreinte*, un sous-ensemble de lAPI C de Python, existe "
"depuis Python 3.2. Les extensions qui utilisent uniquement lAPI restreinte "
"peuvent être compilées une seule fois et fonctionner avec plusieurs versions "
"de Python. Les objets faisant partie de lAPI restreinte sont :ref:`documentés "
"ci-dessous <stable-abi-list>`."
#: c-api/stable.rst:33 #: c-api/stable.rst:33
msgid "" msgid ""
@ -66,6 +85,11 @@ msgid ""
"symbols exposed in the Limited API, but also other ones for example, " "symbols exposed in the Limited API, but also other ones for example, "
"functions necessary to support older versions of the Limited API." "functions necessary to support older versions of the Limited API."
msgstr "" msgstr ""
"Python a aussi une *ABI stable* : un ensemble de symboles qui sont "
"compatibles avec lensemble des versions Python 3.x. LABI stable contient "
"les symboles utilisés par lAPI restreinte, mais pas seulement — par exemple "
"les fonctions nécessaires pour supporter les versions précédentes de lAPI "
"restreinte en font aussi partie."
#: c-api/stable.rst:38 #: c-api/stable.rst:38
msgid "" msgid ""
@ -73,12 +97,17 @@ msgid ""
"and Stable ABI work the same way for all uses of the API for example, " "and Stable ABI work the same way for all uses of the API for example, "
"embedding Python.)" "embedding Python.)"
msgstr "" msgstr ""
"(Par simplicité ce document parle *dextensions*, mais lAPI restreinte et "
"lABI stable fonctionnent de la même manière pour tous les cas dusages de "
"lAPI — par exemple pour embarquer Python.)"
#: c-api/stable.rst:44 #: c-api/stable.rst:44
msgid "" msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the " "Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version." "Limited API, and to select the Limited API version."
msgstr "" msgstr ""
"Définissez cette macro avant dinclure ``Python.h`` pour ninclure que lAPI "
"restreinte et indiquer sa version."
#: c-api/stable.rst:47 #: c-api/stable.rst:47
msgid "" msgid ""
@ -88,6 +117,11 @@ msgid ""
"the specified one onward, and can use Limited API introduced up to that " "the specified one onward, and can use Limited API introduced up to that "
"version." "version."
msgstr "" 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 lensemble des éléments de lAPI "
"restreinte présent dans cette version."
#: c-api/stable.rst:53 #: c-api/stable.rst:53
msgid "" msgid ""
@ -95,12 +129,19 @@ msgid ""
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when " "minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions." "compiling with future Python versions."
msgstr "" msgstr ""
"Il est recommandé de renseigner une version mineure minimale (par exemple "
"``0x030A0000`` pour Python 3.10) plutôt que dutiliser 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 #: c-api/stable.rst:57
msgid "" msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as " "You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)." "``0x03020000`` (Python 3.2, the version that introduced Limited API)."
msgstr "" msgstr ""
"Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est "
"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version "
"à supporter lAPI restreinte."
#: c-api/stable.rst:60 #: c-api/stable.rst:60
msgid "" msgid ""
@ -108,6 +149,9 @@ msgid ""
"``python3.dll`` rather than a version-specific library such as ``python39." "``python3.dll`` rather than a version-specific library such as ``python39."
"dll``." "dll``."
msgstr "" msgstr ""
"Sur Windows les extensions qui utilisent lABI 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 #: c-api/stable.rst:64
msgid "" msgid ""
@ -117,6 +161,12 @@ msgid ""
"to ensure that, for example, extensions built with the 3.10+ Limited API are " "to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python." "not installed for lower versions of Python."
msgstr "" 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 lABI stable. Lutilisateur "
"(ou ses outils dadministration) doit sassurer que les extensions compilées "
"avec une version donnée de lAPI restreinte, par exemple 3.10+, ne sont pas "
"utilisées avec des versions plus anciennes de Python."
#: c-api/stable.rst:71 #: c-api/stable.rst:71
msgid "" msgid ""
@ -124,16 +174,23 @@ msgid ""
"library, not solely as macros. This makes them usable from languages that " "library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor." "don't use the C preprocessor."
msgstr "" msgstr ""
"Toutes les fonctions de lABI 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 nutilisent pas le "
"pré-processeur C."
#: c-api/stable.rst:77 #: c-api/stable.rst:77
msgid "Limited API Scope and Performance" msgid "Limited API Scope and Performance"
msgstr "" msgstr "Porté de lAPI restreinte et performance"
#: c-api/stable.rst:79 #: c-api/stable.rst:79
msgid "" msgid ""
"The goal for the Limited API is to allow everything that is possible with " "The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty." "the full C API, but possibly with a performance penalty."
msgstr "" msgstr ""
"Lobjectif de lAPI restreinte est de permettre lensemble des opérations "
"possibles avec lAPI C étendue, mais peut avoir un impact sur les "
"performances."
#: c-api/stable.rst:82 #: c-api/stable.rst:82
msgid "" msgid ""
@ -141,6 +198,10 @@ msgid ""
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it " "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." "can rely on version-specific implementation details of the list object."
msgstr "" msgstr ""
"Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la "
"macro « dangereuse » :c:func:`PyList_GET_ITEM` ne lest pas. Cette macro "
"peut être plus rapide car elle dépend de détails dimplémentation spécifique "
"à lobjet ``list``."
#: c-api/stable.rst:87 #: c-api/stable.rst:87
msgid "" msgid ""
@ -149,6 +210,11 @@ msgid ""
"allowing stability as Python's data structures are improved, but possibly " "allowing stability as Python's data structures are improved, but possibly "
"reducing performance." "reducing performance."
msgstr "" msgstr ""
"Si ``Py_LIMITED_API`` nest pas défini certaines fonctions de lAPI 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 #: c-api/stable.rst:92
msgid "" msgid ""
@ -159,10 +225,17 @@ msgid ""
"where a version-specific one is not available for example, for prereleases " "where a version-specific one is not available for example, for prereleases "
"of an upcoming Python version." "of an upcoming Python version."
msgstr "" msgstr ""
"En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler "
"une extension utilisant lAPI restreinte avec une version spécifique de lABI. "
"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 nest pas disponible — par exemple pour une version alpha de "
"Python."
#: c-api/stable.rst:101 #: c-api/stable.rst:101
msgid "Limited API Caveats" msgid "Limited API Caveats"
msgstr "" msgstr "Inconvénients de lAPI restreinte"
#: c-api/stable.rst:103 #: c-api/stable.rst:103
msgid "" msgid ""
@ -171,6 +244,10 @@ msgid ""
"only covers definitions, but an API also includes other issues, such as " "only covers definitions, but an API also includes other issues, such as "
"expected semantics." "expected semantics."
msgstr "" msgstr ""
"Compiler avec ``Py_LIMITED_API`` *nest pas* une garantie absolue que le "
"code est conforme à lAPI restreinte ou à lABI stable. ``Py_LIMITED_API`` ne "
"concerne que la définition des objets, mais une API inclut aussi dautres "
"spécificités comme le comportement attendu."
#: c-api/stable.rst:108 #: c-api/stable.rst:108
msgid "" msgid ""
@ -181,18 +258,31 @@ msgid ""
"the argument will be used directly, causing a ``NULL`` dereference and " "the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs." "crash. A similar argument works for fields of structs."
msgstr "" msgstr ""
"Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre lappel "
"dune 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 "
"dutiliser le comportement par défaut, mais Python 3.8 essayera daccéder à "
"lobjet 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 #: c-api/stable.rst:115
msgid "" msgid ""
"Another issue is that some struct fields are currently not hidden when " "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." "``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
msgstr "" msgstr ""
"Un autre problème est que certains attributs ne sont pas encore cachés "
"lorsque ``Py_LIMITED_API`` est défini, même sil ne font pas partie de lAPI "
"restreinte."
#: c-api/stable.rst:118 #: c-api/stable.rst:118
msgid "" msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python " "For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version." "versions it supports, and preferably to build with the *lowest* such version."
msgstr "" msgstr ""
"Pour ces raisons il est recommandé de tester une extension avec *lensemble "
"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 #: c-api/stable.rst:121
msgid "" msgid ""
@ -201,6 +291,10 @@ msgid ""
"few private declarations are exposed for technical reasons (or even " "few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)." "unintentionally, as bugs)."
msgstr "" msgstr ""
"Il est aussi recommandé de vérifier la documentation de toutes les API "
"utilisées pour vérifier quelles fassent bien partie de lAPI 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 #: c-api/stable.rst:126
msgid "" msgid ""
@ -210,10 +304,15 @@ msgid ""
"particular, parts of the Limited API may be deprecated and removed, provided " "particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable." "that the Stable ABI stays stable."
msgstr "" msgstr ""
"Notez aussi que lAPI restreinte nest pas forcément stable : compiler avec "
"Python 3.8 en définissant ``Py_LIMITED_API`` garanti que lextension "
"fonctionnera avec Python 3.12, mais pas quelle pourra *être compilée* avec "
"Python 3.12. En particulier certaines parties de lAPI restreinte peuvent être "
"dépréciées et retirées tant que lABI stable nest pas modifiée."
#: c-api/stable.rst:136 #: c-api/stable.rst:136
msgid "Platform Considerations" msgid "Platform Considerations"
msgstr "" msgstr "Considérations relatives aux plateformes"
#: c-api/stable.rst:138 #: c-api/stable.rst:138
msgid "" msgid ""
@ -222,6 +321,11 @@ msgid ""
"ABI, these details define a “platform”. They usually depend on the OS type " "ABI, these details define a “platform”. They usually depend on the OS type "
"and processor architecture" "and processor architecture"
msgstr "" msgstr ""
"La stabilité de lABI ne dépend pas que de Python mais aussi du compilateur "
"utilisé, des bibliothèques systèmes et des options du compilateur. "
"Lensemble de ces détails correspondent à ce que lABI stable appelle une "
 plateforme ». Ils dépendent généralement du système dexploitation et de "
"larchitecture du processeur."
#: c-api/stable.rst:143 #: c-api/stable.rst:143
msgid "" msgid ""
@ -230,76 +334,16 @@ msgid ""
"does not break the Stable ABI. This is the case with Windows and macOS " "does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors." "releases from ``python.org`` and many third-party distributors."
msgstr "" msgstr ""
"Les distributeurs de Python doivent sassurer que toutes les versions de "
"Python pour une plateforme donnée sont compilées de manière à ne pas rompre "
"la compatibilité de lABI stable. Cest le cas des versions produites pour "
"Windows et macOS de ``python.org`` et de la plupart des distributions "
"tierces."
#: c-api/stable.rst:153 #: c-api/stable.rst:153
msgid "Contents of Limited API" msgid "Contents of Limited API"
msgstr "" msgstr "Contenu de lAPI restreinte"
#: c-api/stable.rst:156 #: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:" msgid "Currently, the Limited API includes the following items:"
msgstr "" msgstr "Pour le moment lAPI restreinte inclut les éléments suivants :"
#~ msgid ""
#~ "Unfortunately, the API compatibility does not extend to binary "
#~ "compatibility (the ABI). The reason is primarily the evolution of struct "
#~ "definitions, where addition of a new field, or changing the type of a "
#~ "field, might not break the API, but can break the ABI. As a consequence, "
#~ "extension modules need to be recompiled for every Python release "
#~ "(although an exception is possible on Unix when none of the affected "
#~ "interfaces are used). In addition, on Windows, extension modules link "
#~ "with a specific pythonXY.dll and need to be recompiled to link with a "
#~ "newer one."
#~ msgstr ""
#~ "Malheureusement, la compatibilité de l'API ne s'étend pas à une "
#~ "compatibilité binaire (l'ABI). L'évolution des structures en est la "
#~ "raison principale : l'ajout de nouveaux attributs, ou le changement du "
#~ "type d'un attribut peut ne pas casser l'API mais casser l'ABI. Par "
#~ "conséquent, les modules d'extension doivent être recompilés à chaque "
#~ "nouvelle version de Python (ce n'est exceptionnellement pas nécessaire "
#~ "sur Unix, si aucune des interfaces modifiées n'est utilisée). De plus, "
#~ "sous Windows, les modules d'extension sont liés à un *pythonXY.dll* "
#~ "spécifique, ils est donc nécessaire de les recompiler pour les lier au "
#~ "nouveau DLL."
#~ msgid ""
#~ "Since Python 3.2, a subset of the API has been declared to guarantee a "
#~ "stable ABI. Extension modules wishing to use this API (called \"limited "
#~ "API\") need to define ``Py_LIMITED_API``. A number of interpreter details "
#~ "then become hidden from the extension module; in return, a module is "
#~ "built that works on any 3.x version (x>=2) without recompilation."
#~ msgstr ""
#~ "Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera "
#~ "une ABI stable. Les modules d'extension souhaitant utiliser cette API "
#~ "(Appellée \"API limitée\") doivent définir ``Py_LIMITED_API``. Des "
#~ "spécificités de l'interpréteur sont alors cachées au module, en "
#~ "contrepartie le module devient compatible avec toutes les versions de "
#~ "Python 3.x (x>=2) sans recompilation."
#~ msgid ""
#~ "In some cases, the stable ABI needs to be extended with new functions. "
#~ "Extension modules wishing to use these new APIs need to set "
#~ "``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:"
#~ "`apiabiversion`) of the minimum Python version they want to support (e.g. "
#~ "``0x03030000`` for Python 3.3). Such modules will work on all subsequent "
#~ "Python releases, but fail to load (because of missing symbols) on the "
#~ "older releases."
#~ msgstr ""
#~ "Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de "
#~ "nouvelles fonctions. Les modules d'extension souhaitant utiliser ces "
#~ "nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur "
#~ "``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python "
#~ "qu'ils souhaitent supporter (voir :ref:`apiabiversion`, par exemple "
#~ "``0x03030000`` pour Python 3.3). De tels modules fonctionneront dans "
#~ "toutes les versions ultérieures de Python, mais ne pourront pas se "
#~ "charger (dû à des symboles manquants) sur les versions plus anciennes."
#~ msgid ""
#~ "As of Python 3.2, the set of functions available to the limited API is "
#~ "documented in :pep:`384`. In the C API documentation, API elements that "
#~ "are not part of the limited API are marked as \"Not part of the limited "
#~ "API.\""
#~ msgstr ""
#~ "Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée "
#~ "est documentée dans la :pep:`384`. Dans la documentation de l'API C, les "
#~ "éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant "
#~ "pas partie de l'API limitée\" (*\"Not part of the limited API\"*)."

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n" "Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n" "POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-10-18 12:27+0200\n" "PO-Revision-Date: 2023-02-16 15:07+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n" "Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n" "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n" "X-Generator: Poedit 3.2.2\n"
#: howto/sockets.rst:5 #: howto/sockets.rst:5
msgid "Socket Programming HOWTO" msgid "Socket Programming HOWTO"
@ -481,7 +481,6 @@ msgid ""
msgstr "" msgstr ""
#: howto/sockets.rst:262 #: howto/sockets.rst:262
#, fuzzy
msgid "" msgid ""
"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, " "Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, "
"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, " "htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, "
@ -489,21 +488,14 @@ msgid ""
"order, these do nothing, but where the machine is byte-reversed, these swap " "order, these do nothing, but where the machine is byte-reversed, these swap "
"the bytes around appropriately." "the bytes around appropriately."
msgstr "" msgstr ""
"Il est parfaitement possible denvoyer des données binaires sur un " "Les bibliothèques de sockets ont des appels pour convertir les entiers 16 et "
"connecteur. Le gros problème est que toutes les machines nutilisent pas les " "32 bits - ``ntohl, htonl, ntohs, htons`` où « n » signifie *network* "
"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " "(réseau) et « h » signifie *host* (hôte), « s » signifie *short* (court) et "
"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et "  l » signifie *long*. Lorsque lordre du réseau est lordre de lhôte, ils "
"DEC, cependant, utilisent lordre doctets inverse — ce même 1 est codé 01 " "ne font rien, mais lorsque la machine fonctionne en ordre inversé, ils "
"00. Les bibliothèques de connecteurs ont des appels pour convertir des " "échangent les octets de manière appropriée."
"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie "
"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie "
"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque lordre du "
"réseau est lordre de lhôte, ceux-ci ne font rien, mais lorsque la machine "
"utilise lordre doctets inverse, ceux-ci échangent les octets de manière "
"appropriée."
#: howto/sockets.rst:268 #: howto/sockets.rst:268
#, fuzzy
msgid "" msgid ""
"In these days of 64-bit machines, the ASCII representation of binary data is " "In these days of 64-bit machines, the ASCII representation of binary data is "
"frequently smaller than the binary representation. That's because a " "frequently smaller than the binary representation. That's because a "
@ -512,13 +504,13 @@ msgid ""
"be 8. Of course, this doesn't fit well with fixed-length messages. " "be 8. Of course, this doesn't fit well with fixed-length messages. "
"Decisions, decisions." "Decisions, decisions."
msgstr "" msgstr ""
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " "De nos jours, avec les machines 64 bits, la représentation *ASCII* des "
"données binaires est souvent plus compacte que la représentation binaire. " "données binaires est souvent plus compacte que la représentation binaire. "
"Cest parce quun nombre surprenant de fois, tous ces *longs* ont la valeur " "Cest parce que dans un nombre surprenant de cas, tous ces *entiers* ont la "
"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " "valeur 0 et parfois 1. La chaîne « 0 » serait codée sur deux octets, alors "
"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " "qu'elle le serait sur 8 en tant que binaire 64 bits. Bien sûr, cela ne "
"très bien avec les messages de longueur fixe. Ah, les décisions, les " "fonctionne pas très bien avec les messages de longueur fixe. Cest une "
"décisions…" "affaire de choix."
#: howto/sockets.rst:277 #: howto/sockets.rst:277
msgid "Disconnecting" msgid "Disconnecting"

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n" "Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n" "POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2021-11-06 21:59+0100\n" "PO-Revision-Date: 2023-02-17 11:56+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n" "Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n" "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n" "X-Generator: Poedit 3.2.2\n"
#: library/itertools.rst:2 #: library/itertools.rst:2
msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" msgid ":mod:`itertools` --- Functions creating iterators for efficient looping"
@ -54,7 +54,6 @@ msgstr ""
"count())``." "count())``."
#: library/itertools.rst:33 #: library/itertools.rst:33
#, fuzzy
msgid "" msgid ""
"These tools and their built-in counterparts also work well with the high-" "These tools and their built-in counterparts also work well with the high-"
"speed functions in the :mod:`operator` module. For example, the " "speed functions in the :mod:`operator` module. For example, the "
@ -437,11 +436,10 @@ msgid ""
"`~fractions.Fraction`.)" "`~fractions.Fraction`.)"
msgstr "" msgstr ""
"Si *func* est renseigné, il doit être une fonction à deux arguments. Les " "Si *func* est renseigné, il doit être une fonction à deux arguments. Les "
"éléments de l'entrée *iterable* peuvent être de n'importe quel type " "éléments de *iterable* peuvent être de n'importe quel type acceptable comme "
"acceptable comme arguments de *func*. Par exemple, avec l'opération par " "arguments de *func*. Par exemple, avec l'opération par défaut d'addition, "
"défaut d'addition, les éléments peuvent être de n'importe quel type " "les éléments peuvent être de n'importe quel type additionnable, :class:"
"additionnable, :class:`~decimal.Decimal` ou :class:`~fractions.Fraction` " "`~decimal.Decimal` ou :class:`~fractions.Fraction` inclus."
"inclus."
#: library/itertools.rst:112 #: library/itertools.rst:112
msgid "" msgid ""
@ -462,7 +460,6 @@ msgid "Roughly equivalent to::"
msgstr "À peu près équivalent à ::" msgstr "À peu près équivalent à ::"
#: library/itertools.rst:136 #: library/itertools.rst:136
#, fuzzy
msgid "" msgid ""
"There are a number of uses for the *func* argument. It can be set to :func:" "There are a number of uses for the *func* argument. It can be set to :func:"
"`min` for a running minimum, :func:`max` for a running maximum, or :func:" "`min` for a running minimum, :func:`max` for a running maximum, or :func:"
@ -473,11 +470,7 @@ msgstr ""
"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum " "func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum "
"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de " "glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de "
"remboursements peuvent être construits en ajoutant les intérêts et en " "remboursements peuvent être construits en ajoutant les intérêts et en "
"soustrayant les paiements. Des `suites par récurrence <https://fr.wikipedia." "soustrayant les paiements:"
"org/wiki/Suite_d%C3%A9finie_par_r%C3%A9currence>`_ de premier ordre peuvent "
"être modélisées en en passant la valeur initiale dans *iterable* et en "
"n'utilisant que le premier argument de *func*, qui contient le résultat des "
"évaluations précédentes ::"
#: library/itertools.rst:154 #: library/itertools.rst:154
msgid "" msgid ""
@ -521,18 +514,16 @@ msgid "Return *r* length subsequences of elements from the input *iterable*."
msgstr "Renvoie les combinaisons de longueur *r* de *iterable*." msgstr "Renvoie les combinaisons de longueur *r* de *iterable*."
#: library/itertools.rst:244 #: library/itertools.rst:244
#, fuzzy
msgid "" msgid ""
"The combination tuples are emitted in lexicographic ordering according to " "The combination tuples are emitted in lexicographic ordering according to "
"the order of the input *iterable*. So, if the input *iterable* is sorted, " "the order of the input *iterable*. So, if the input *iterable* is sorted, "
"the output tuples will be produced in sorted order." "the output tuples will be produced in sorted order."
msgstr "" msgstr ""
"Les combinaisons sont produites dans l'ordre lexicographique dérivé de " "Les combinaisons sont produites dans l'ordre lexicographique dérivé de "
"l'ordre des éléments de l'itérable *iterable*. Ainsi, si *iterable* est " "l'ordre des éléments de *iterable*. Ainsi, si *iterable* est ordonné, les "
"ordonné, les *n*-uplets de combinaison produits le sont aussi." "*n*-uplets de combinaison produits le sont aussi."
#: library/itertools.rst:199 #: library/itertools.rst:199
#, fuzzy
msgid "" msgid ""
"Elements are treated as unique based on their position, not on their value. " "Elements are treated as unique based on their position, not on their value. "
"So if the input elements are unique, there will be no repeated values in " "So if the input elements are unique, there will be no repeated values in "
@ -724,7 +715,6 @@ msgid ":func:`groupby` is roughly equivalent to::"
msgstr ":func:`groupby` est à peu près équivalente à ::" msgstr ":func:`groupby` est à peu près équivalente à ::"
#: library/itertools.rst:437 #: library/itertools.rst:437
#, fuzzy
msgid "" msgid ""
"Make an iterator that returns selected elements from the iterable. If " "Make an iterator that returns selected elements from the iterable. If "
"*start* is non-zero, then elements from the iterable are skipped until start " "*start* is non-zero, then elements from the iterable are skipped until start "
@ -739,12 +729,7 @@ msgstr ""
"consécutivement sauf si *step* est plus grand que 1, auquel cas certains " "consécutivement sauf si *step* est plus grand que 1, auquel cas certains "
"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue " "éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue "
"jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il " "jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il "
"s'arrête à la position spécifiée. À la différence des tranches standards, :" "s'arrête à la position spécifiée."
"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou "
"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des "
"données dont la structure interne a été aplatie (par exemple, un rapport "
"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu "
"près similaire à ::"
#: library/itertools.rst:444 #: library/itertools.rst:444
msgid "" msgid ""
@ -792,18 +777,16 @@ msgstr ""
"sont générées." "sont générées."
#: library/itertools.rst:507 #: library/itertools.rst:507
#, fuzzy
msgid "" msgid ""
"The permutation tuples are emitted in lexicographic order according to the " "The permutation tuples are emitted in lexicographic order according to the "
"order of the input *iterable*. So, if the input *iterable* is sorted, the " "order of the input *iterable*. So, if the input *iterable* is sorted, the "
"output tuples will be produced in sorted order." "output tuples will be produced in sorted order."
msgstr "" msgstr ""
"Les combinaisons sont produites dans l'ordre lexicographique qui provient de " "Les combinaisons sont produites dans l'ordre lexicographique qui provient de "
"l'ordre des éléments de l'itérable *iterable*. Ainsi, si *iterable* est " "l'ordre des éléments de *iterable*. Ainsi, si *iterable* est ordonné, les "
"ordonné, les *n*-uplets de combinaison produits le sont aussi." "*n*-uplets de combinaison produits le sont aussi."
#: library/itertools.rst:511 #: library/itertools.rst:511
#, fuzzy
msgid "" msgid ""
"Elements are treated as unique based on their position, not on their value. " "Elements are treated as unique based on their position, not on their value. "
"So if the input elements are unique, there will be no repeated values within " "So if the input elements are unique, there will be no repeated values within "
@ -887,27 +870,22 @@ msgstr ""
"cette fonction ne sert que sur des itérables finis." "cette fonction ne sert que sur des itérables finis."
#: library/itertools.rst:592 #: library/itertools.rst:592
#, fuzzy
msgid "" msgid ""
"Make an iterator that returns *object* over and over again. Runs " "Make an iterator that returns *object* over and over again. Runs "
"indefinitely unless the *times* argument is specified." "indefinitely unless the *times* argument is specified."
msgstr "" msgstr ""
"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " "Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment "
"sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:" "sauf si l'argument *times* est spécifié."
"`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée "
"avec :func:`zip` pour créer une partie invariante d'un *n*-uplet."
#: library/itertools.rst:606 #: library/itertools.rst:606
#, fuzzy
msgid "" msgid ""
"A common use for *repeat* is to supply a stream of constant values to *map* " "A common use for *repeat* is to supply a stream of constant values to *map* "
"or *zip*:" "or *zip*:"
msgstr "" msgstr ""
"Une utilisation courante de *repeat* est de fournir un flux constant de " "Une utilisation courante de *repeat* est de fournir un flux constant de "
"valeurs à *map* ou *zip* ::" "valeurs à *map* ou *zip* :"
#: library/itertools.rst:616 #: library/itertools.rst:616
#, fuzzy
msgid "" msgid ""
"Make an iterator that computes the function using arguments obtained from " "Make an iterator that computes the function using arguments obtained from "
"the iterable. Used instead of :func:`map` when argument parameters are " "the iterable. Used instead of :func:`map` when argument parameters are "
@ -917,9 +895,7 @@ msgstr ""
"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis " "Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis "
"l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà " "l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà "
"groupés en *n*-uplets depuis un seul itérable  la donnée a déjà été « pré-" "groupés en *n*-uplets depuis un seul itérable  la donnée a déjà été « pré-"
"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à " "zippée »."
"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près "
"équivalent à ::"
#: library/itertools.rst:621 #: library/itertools.rst:621
msgid "" msgid ""
@ -941,7 +917,6 @@ msgid "Return *n* independent iterators from a single iterable."
msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable." msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable."
#: library/itertools.rst:649 #: library/itertools.rst:649
#, fuzzy
msgid "" msgid ""
"The following Python code helps explain what *tee* does (although the actual " "The following Python code helps explain what *tee* does (although the actual "
"implementation is more complex and uses only a single underlying :abbr:`FIFO " "implementation is more complex and uses only a single underlying :abbr:`FIFO "
@ -949,18 +924,17 @@ msgid ""
msgstr "" msgstr ""
"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la " "Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la "
"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO " "vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO "
"(premier entré, premier sorti ou *first-in, first-out* en anglais)`." "(premier entré, premier sorti ou *first-in, first-out* en anglais)` :"
#: library/itertools.rst:668 #: library/itertools.rst:668
#, fuzzy
msgid "" msgid ""
"Once a :func:`tee` has been created, the original *iterable* should not be " "Once a :func:`tee` has been created, the original *iterable* should not be "
"used anywhere else; otherwise, the *iterable* could get advanced without the " "used anywhere else; otherwise, the *iterable* could get advanced without the "
"tee objects being informed." "tee objects being informed."
msgstr "" msgstr ""
"Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne " "Une fois quun :func:`tee` a été créé, loriginal de *iterable* ne doit être "
"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " "utilisé nulle part ailleurs ; sinon *iterable* pourrait être avancé sans que "
"avancé sans que les objets tee ne soient informés." "les objets *tee* nen soient informés."
#: library/itertools.rst:672 #: library/itertools.rst:672
msgid "" msgid ""
@ -1053,7 +1027,6 @@ msgstr ""
"disponible dans le Python Package Index ::" "disponible dans le Python Package Index ::"
#: library/itertools.rst:742 #: library/itertools.rst:742
#, fuzzy
msgid "" msgid ""
"Many of the recipes offer the same high performance as the underlying " "Many of the recipes offer the same high performance as the underlying "
"toolset. Superior memory performance is kept by processing elements one at a " "toolset. Superior memory performance is kept by processing elements one at a "

File diff suppressed because it is too large Load Diff